1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-07-03 20:29:34 +00:00

Improved number formatting of inegers in log/messages.

This commit is contained in:
jespergravgaard 2019-03-08 06:54:45 +01:00
parent 39e727711a
commit ac73bb15e3
514 changed files with 21388 additions and 21387 deletions

View File

@ -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<Long> {
@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);
}
}

View File

@ -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()

View File

@ -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()

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 ]

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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 ]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 ]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
sta cursor
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
sta cursor
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
sta cursor
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

View File

@ -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

View File

@ -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

View File

@ -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 #<screen
clc
adc idx
@ -437,7 +437,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] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- vwuz1=vwuz1_plus_vbuc1
//SEG29 [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- vwuz1=vwuz1_plus_vbuc1
clc
lda idx
adc #<$28
@ -471,16 +471,16 @@ main: {
}
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [6] *((const byte[40*25]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:2 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) always clobbers reg byte a
Statement [6] *((const byte[$28*$19]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:2 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::x#2 main::x#1 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ main::e#3 main::e#5 main::e#1 main::e#2 ]
Removing always clobbered register reg byte a 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::idx#1 main::e#1 ] ( main:2 [ main::y#2 main::x#1 main::idx#1 main::e#1 ] ) always clobbers reg byte a
Statement [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::x#1 main::e#1 main::y#1 main::idx#2 ] ( main:2 [ main::x#1 main::e#1 main::y#1 main::idx#2 ] ) always clobbers reg byte a
Statement [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::x#1 main::e#1 main::y#1 main::idx#2 ] ( main:2 [ main::x#1 main::e#1 main::y#1 main::idx#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::idx#2 main::e#2 ] ( main:2 [ main::x#1 main::y#1 main::idx#2 main::e#2 ] ) always clobbers reg byte a
Statement [6] *((const byte[40*25]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:2 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) always clobbers reg byte a
Statement [6] *((const byte[$28*$19]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:2 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) always clobbers reg byte a
Statement [9] (byte) main::e#1 ← (byte) main::e#3 + (const byte) main::yd#0 [ main::y#2 main::x#1 main::idx#1 main::e#1 ] ( main:2 [ main::y#2 main::x#1 main::idx#1 main::e#1 ] ) always clobbers reg byte a
Statement [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::x#1 main::e#1 main::y#1 main::idx#2 ] ( main:2 [ main::x#1 main::e#1 main::y#1 main::idx#2 ] ) always clobbers reg byte a
Statement [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::x#1 main::e#1 main::y#1 main::idx#2 ] ( main:2 [ main::x#1 main::e#1 main::y#1 main::idx#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::idx#2 main::e#2 ] ( main:2 [ main::x#1 main::y#1 main::idx#2 main::e#2 ] ) always clobbers reg byte a
Potential registers zp ZP_WORD:2 [ main::idx#3 main::idx#5 main::idx#1 main::idx#2 ] : zp ZP_WORD:2 ,
Potential registers zp ZP_BYTE:4 [ main::x#2 main::x#1 ] : zp ZP_BYTE:4 , reg byte x , reg byte y ,
@ -554,7 +554,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 #<screen
clc
adc idx
@ -586,7 +586,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] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- vwuz1=vwuz1_plus_vbuc1
//SEG29 [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- vwuz1=vwuz1_plus_vbuc1
clc
lda idx
adc #<$28
@ -664,7 +664,7 @@ FINAL SYMBOL TABLE
(label) main::@3
(label) main::@return
(byte) main::STAR
(const byte) main::STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) 81
(const byte) main::STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) $51
(byte) main::e
(byte) main::e#1 reg byte y 11.0
(byte) main::e#2 reg byte y 22.0
@ -675,14 +675,14 @@ FINAL SYMBOL TABLE
(word) main::idx#2 idx zp ZP_WORD:2 11.0
(word) main::idx#3 idx zp ZP_WORD:2 11.0
(word) main::idx#5 idx zp ZP_WORD:2 16.5
(byte[40*25]) main::screen
(const byte[40*25]) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024
(byte[$28*$19]) main::screen
(const byte[$28*$19]) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400
(byte) main::x
(byte) main::x#1 reg byte x 3.666666666666667
(byte) main::x#2 reg byte x 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) 0
(byte) main::y
@ -691,7 +691,7 @@ FINAL SYMBOL TABLE
(byte) main::y#4 y zp ZP_BYTE:4 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) 0
@ -745,7 +745,7 @@ main: {
//SEG20 [5] phi (word) main::idx#3 = (word) main::idx#5 [phi:main::@2->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 #<screen
clc
adc idx
@ -775,7 +775,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] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- vwuz1=vwuz1_plus_vbuc1
//SEG29 [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- vwuz1=vwuz1_plus_vbuc1
clc
lda idx
adc #<$28

View File

@ -7,7 +7,7 @@
(label) main::@3
(label) main::@return
(byte) main::STAR
(const byte) main::STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) 81
(const byte) main::STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) $51
(byte) main::e
(byte) main::e#1 reg byte y 11.0
(byte) main::e#2 reg byte y 22.0
@ -18,14 +18,14 @@
(word) main::idx#2 idx zp ZP_WORD:2 11.0
(word) main::idx#3 idx zp ZP_WORD:2 11.0
(word) main::idx#5 idx zp ZP_WORD:2 16.5
(byte[40*25]) main::screen
(const byte[40*25]) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024
(byte[$28*$19]) main::screen
(const byte[$28*$19]) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400
(byte) main::x
(byte) main::x#1 reg byte x 3.666666666666667
(byte) main::x#2 reg byte x 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) 0
(byte) main::y
@ -34,7 +34,7 @@
(byte) main::y#4 y zp ZP_BYTE:4 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) 0

View File

@ -31,14 +31,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 }
@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 ]

View File

@ -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

View File

@ -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 }

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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) }

View File

@ -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 ]

View File

@ -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 ]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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]

View File

@ -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 ]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More