diff --git a/src/main/java/dk/camelot64/kickc/fragment/AsmFragmentManager.java b/src/main/java/dk/camelot64/kickc/fragment/AsmFragmentManager.java index 0172068d8..10b968b0d 100644 --- a/src/main/java/dk/camelot64/kickc/fragment/AsmFragmentManager.java +++ b/src/main/java/dk/camelot64/kickc/fragment/AsmFragmentManager.java @@ -108,7 +108,7 @@ public class AsmFragmentManager { } } if (signature.startsWith("zpby1=")) { - String subSignature = "aby=" + signature.substring(6).replace("zpby2", "zpby1").replace("zpby3", "zpby2"); + String subSignature = "aby=" + signature.substring(6).replace("zpby1", "aby").replace("zpby2", "zpby1").replace("zpby3", "zpby2"); CharStream subCharStream = loadOrSynthesizeFragment(subSignature); if (subCharStream != null) { CharStream result = CharStreams.fromString(subCharStream.toString().replace("zpby2", "zpby3").replace("zpby1", "zpby2") + "\nsta {zpby1}\n"); diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/aby=aby_rol_1.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/aby=aby_rol_1.asm new file mode 100644 index 000000000..8b3bd1475 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/aby=aby_rol_1.asm @@ -0,0 +1 @@ +asl \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/aby=aby_rol_2.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/aby=aby_rol_2.asm new file mode 100644 index 000000000..0f737d7a7 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/aby=aby_rol_2.asm @@ -0,0 +1,2 @@ +asl +asl \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/aby=aby_ror_1.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/aby=aby_ror_1.asm new file mode 100644 index 000000000..bc6437f1f --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/aby=aby_ror_1.asm @@ -0,0 +1 @@ +lsr \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/zpptrby1=_inc_zpptrby2.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/zpptrby1=_inc_zpptrby2.asm new file mode 100644 index 000000000..5a3da4fe9 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/zpptrby1=_inc_zpptrby2.asm @@ -0,0 +1,7 @@ +lda {zpptrby2} +clc +adc #1 +sta {zpptrby1} +lda {zpptrby2}+1 +adc #0 +sta {zpptrby1}+1 \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/test/halfscii.kc b/src/main/java/dk/camelot64/kickc/test/halfscii.kc index 461f6c762..fd8028c68 100644 --- a/src/main/java/dk/camelot64/kickc/test/halfscii.kc +++ b/src/main/java/dk/camelot64/kickc/test/halfscii.kc @@ -5,22 +5,38 @@ byte* PROCPORT = $01; byte* D018 = $d018; byte* CHARSET4 = $2800; +byte[] bits_count = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }; + main(); void main() { *PROCPORT = $32; byte* chargen = CHARGEN; byte* charset4 = CHARSET4; - byte* chargen1 = chargen+1; - byte bits = (*chargen & %11000000) >>2 | (*chargen1 & %11000000); - - *SCREEN = bits; - + do { + byte bits_gen = 0; + byte* chargen1 = chargen+1; + byte bits = bits_count[((*chargen & %01100000) | (*chargen1 & %01100000)>>2)>>1>>2]; + if(bits>=2) { bits_gen = bits_gen + 1; } + bits_gen = bits_gen<<1; + bits = bits_count[((*chargen & %00011000) | (*chargen1 & %00011000)>>2)>>1]; + if(bits>=2) { bits_gen = bits_gen + 1; } + bits_gen = bits_gen<<1; + bits = bits_count[((*chargen & %00000110)<<1 | (*chargen1 & %00000110)>>1)]; + if(bits>=2) { bits_gen = bits_gen + 1; } + bits_gen = bits_gen<<1; + bits = bits_count[((*chargen & %00000001)<<2 | (*chargen1 & %00000001))]; + if(bits>=2) { bits_gen = bits_gen + 1; } + bits_gen = bits_gen<<1; + *charset4 = bits_gen; + charset4++; + chargen = chargen+2; + } while (chargenCHARSET4 + sta charset4+1 + lda #CHARGEN + sta chargen+1 + b1: + lda chargen + clc + adc #1 + sta chargen1 + lda chargen+1 + adc #0 + sta chargen1+1 + ldy #0 + lda (chargen),y + and #$60 + sta _2 + lda (chargen1),y + and #$60 + lsr + lsr + ora _2 + lsr + lsr + lsr + tax + lda bits_count,x + cmp #2 + bcc b2_from_b1 + lda #0+1 + jmp b2 + b2_from_b1: + lda #0 + b2: + asl + sta bits_gen + ldy #0 + lda (chargen),y + and #$18 + sta _15 + lda (chargen1),y + and #$18 + lsr + lsr + ora _15 + lsr + tax + lda bits_count,x + cmp #2 + bcc b3 + inc bits_gen + b3: + asl + sta bits_gen + ldy #0 + lda (chargen),y + and #6 + asl + sta _28 + lda (chargen1),y + and #6 + lsr + ora _28 + tax + lda bits_count,x + cmp #2 + bcc b4 + inc bits_gen + b4: + asl + sta bits_gen + ldy #0 + lda (chargen),y + and #1 + asl + asl + sta _40 + lda (chargen1),y + and #1 + ora _40 + tax + lda bits_count,x + cmp #2 + bcc b5 + inc bits_gen + b5: + lda bits_gen + asl + ldy #0 + sta (charset4),y + inc charset4 + bne !+ + inc charset4+1 + !: + lda chargen + clc + adc #2 + sta chargen + bcc !+ + inc chargen+1 + !: + lda chargen+1 + cmp #>CHARGEN+$800 + bcc b1 + bne !+ + lda chargen + cmp #> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] + [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] + [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] + [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] + [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] + [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] + to:main::@7 +main::@7: scope:[main] from main::@1 + to:main::@2 +main::@2: scope:[main] from main::@1 main::@7 + [14] (byte) main::bits_gen#9 ← phi( main::@1/(byte) 0 main::@7/(byte) 0+(byte) 1 ) [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#9 ] + [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] + [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] + [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] + [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] + [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] + [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] + [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] + [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] + [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] + [24] if((byte) main::bits#1<(byte) 2) goto main::@3 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] + to:main::@8 +main::@8: scope:[main] from main::@2 + [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] + to:main::@3 +main::@3: scope:[main] from main::@2 main::@8 + [26] (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#11 ] + [27] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] + [28] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] + [29] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] + [30] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] + [31] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] + [32] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] + [33] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] + [34] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] + [35] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] + [36] if((byte) main::bits#2<(byte) 2) goto main::@4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] + to:main::@9 +main::@9: scope:[main] from main::@3 + [37] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] + to:main::@4 +main::@4: scope:[main] from main::@3 main::@9 + [38] (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#13 ] + [39] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] + [40] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] + [41] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] + [42] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] + [43] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] + [44] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] + [45] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] + [46] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] + [47] if((byte) main::bits#3<(byte) 2) goto main::@5 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] + to:main::@10 +main::@10: scope:[main] from main::@4 + [48] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] + to:main::@5 +main::@5: scope:[main] from main::@10 main::@4 + [49] (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) [ main::chargen#2 main::charset4#10 main::bits_gen#15 ] + [50] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] + [51] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] + [52] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] + [53] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::chargen#1 main::charset4#1 ] + [54] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] + to:main::@11 +main::@11: scope:[main] from main::@5 + [55] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + [56] (byte) main::i#2 ← phi( main::@11/(byte) 0 main::@6/(byte) main::i#1 ) [ main::i#2 ] + [57] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] + [58] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] + [59] if((byte) main::i#1!=(byte) 0) goto main::@6 [ main::i#1 ] + to:main::@12 +main::@12: scope:[main] from main::@6 + [60] *((const byte*) D018#0) ← (byte) 25 [ ] + to:main::@return +main::@return: scope:[main] from main::@12 + [61] return [ ] + to:@return diff --git a/src/main/java/dk/camelot64/kickc/test/ref/halfscii.log b/src/main/java/dk/camelot64/kickc/test/ref/halfscii.log new file mode 100644 index 000000000..f2aea9ffe --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/ref/halfscii.log @@ -0,0 +1,5779 @@ +byte* SCREEN = $0400; +byte* CHARSET = $2000; +byte* CHARGEN = $D000; +byte* PROCPORT = $01; +byte* D018 = $d018; +byte* CHARSET4 = $2800; + +byte[] bits_count = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }; + +main(); +void main() { + *PROCPORT = $32; + byte* chargen = CHARGEN; + byte* charset4 = CHARSET4; + do { + byte bits_gen = 0; + byte* chargen1 = chargen+1; + byte bits = bits_count[((*chargen & %01100000) | (*chargen1 & %01100000)>>2)>>1>>2]; + if(bits>=2) { bits_gen = bits_gen + 1; } + bits_gen = bits_gen<<1; + bits = bits_count[((*chargen & %00011000) | (*chargen1 & %00011000)>>2)>>1]; + if(bits>=2) { bits_gen = bits_gen + 1; } + bits_gen = bits_gen<<1; + bits = bits_count[((*chargen & %00000110)<<1 | (*chargen1 & %00000110)>>1)]; + if(bits>=2) { bits_gen = bits_gen + 1; } + bits_gen = bits_gen<<1; + bits = bits_count[((*chargen & %00000001)<<2 | (*chargen1 & %00000001))]; + if(bits>=2) { bits_gen = bits_gen + 1; } + bits_gen = bits_gen<<1; + *charset4 = bits_gen; + charset4++; + chargen = chargen+2; + } while (chargen> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte~) main::$9 ← (byte[]) bits_count *idx (byte~) main::$8 + (byte) main::bits ← (byte~) main::$9 + (boolean~) main::$10 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$11 ← ! (boolean~) main::$10 + if((boolean~) main::$11) goto main::@2 + (byte~) main::$12 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$12 +main::@2: + (byte~) main::$13 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$13 + (byte~) main::$14 ← * (byte*) main::chargen + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte~) main::$21 ← (byte[]) bits_count *idx (byte~) main::$20 + (byte) main::bits ← (byte~) main::$21 + (boolean~) main::$22 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$23 ← ! (boolean~) main::$22 + if((boolean~) main::$23) goto main::@3 + (byte~) main::$24 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$24 +main::@3: + (byte~) main::$25 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$25 + (byte~) main::$26 ← * (byte*) main::chargen + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte~) main::$33 ← (byte[]) bits_count *idx (byte~) main::$32 + (byte) main::bits ← (byte~) main::$33 + (boolean~) main::$34 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$35 ← ! (boolean~) main::$34 + if((boolean~) main::$35) goto main::@4 + (byte~) main::$36 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$36 +main::@4: + (byte~) main::$37 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$37 + (byte~) main::$38 ← * (byte*) main::chargen + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte~) main::$44 ← (byte[]) bits_count *idx (byte~) main::$43 + (byte) main::bits ← (byte~) main::$44 + (boolean~) main::$45 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$46 ← ! (boolean~) main::$45 + if((boolean~) main::$46) goto main::@5 + (byte~) main::$47 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$47 +main::@5: + (byte~) main::$48 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$48 + *((byte*) main::charset4) ← (byte) main::bits_gen + (byte*) main::charset4 ← ++ (byte*) main::charset4 + (byte*~) main::$49 ← (byte*) main::chargen + (byte) 2 + (byte*) main::chargen ← (byte*~) main::$49 + (byte*~) main::$50 ← (byte*) CHARGEN + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + *((byte*) PROCPORT) ← (byte) 55 + (byte) main::i ← (byte) 0 +main::@6: + *((byte*) SCREEN + (byte) main::i) ← (byte) main::i + (byte) main::i ← ++ (byte) main::i + (boolean~) main::$52 ← (byte) main::i != (byte) 0 + if((boolean~) main::$52) goto main::@6 + *((byte*) D018) ← (byte) 25 +main::@return: + return +endproc // main() + +SYMBOLS +(void~) $0 +(byte*) CHARGEN +(byte*) CHARSET +(byte*) CHARSET4 +(byte*) D018 +(byte*) PROCPORT +(byte*) SCREEN +(byte[]) bits_count +(void()) main() +(byte*~) main::$0 +(byte~) main::$1 +(boolean~) main::$10 +(boolean~) main::$11 +(byte~) main::$12 +(byte~) main::$13 +(byte~) main::$14 +(byte~) main::$15 +(byte~) main::$16 +(byte~) main::$17 +(byte~) main::$18 +(byte~) main::$19 +(byte~) main::$2 +(byte~) main::$20 +(byte~) main::$21 +(boolean~) main::$22 +(boolean~) main::$23 +(byte~) main::$24 +(byte~) main::$25 +(byte~) main::$26 +(byte~) main::$27 +(byte~) main::$28 +(byte~) main::$29 +(byte~) main::$3 +(byte~) main::$30 +(byte~) main::$31 +(byte~) main::$32 +(byte~) main::$33 +(boolean~) main::$34 +(boolean~) main::$35 +(byte~) main::$36 +(byte~) main::$37 +(byte~) main::$38 +(byte~) main::$39 +(byte~) main::$4 +(byte~) main::$40 +(byte~) main::$41 +(byte~) main::$42 +(byte~) main::$43 +(byte~) main::$44 +(boolean~) main::$45 +(boolean~) main::$46 +(byte~) main::$47 +(byte~) main::$48 +(byte*~) main::$49 +(byte~) main::$5 +(byte*~) main::$50 +(boolean~) main::$51 +(boolean~) main::$52 +(byte~) main::$6 +(byte~) main::$7 +(byte~) main::$8 +(byte~) main::$9 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@return +(byte) main::bits +(byte) main::bits_gen +(byte*) main::chargen +(byte*) main::chargen1 +(byte*) main::charset4 +(byte) main::i + +INITIAL CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN ← (word) 1024 + (byte*) CHARSET ← (word) 8192 + (byte*) CHARGEN ← (word) 53248 + (byte*) PROCPORT ← (byte) 1 + (byte*) D018 ← (word) 53272 + (byte*) CHARSET4 ← (word) 10240 + (byte[]) bits_count ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + (void~) $0 ← call main + to:@1 +main: scope:[main] from + *((byte*) PROCPORT) ← (byte) 50 + (byte*) main::chargen ← (byte*) CHARGEN + (byte*) main::charset4 ← (byte*) CHARSET4 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte) main::bits_gen ← (byte) 0 + (byte*~) main::$0 ← (byte*) main::chargen + (byte) 1 + (byte*) main::chargen1 ← (byte*~) main::$0 + (byte~) main::$1 ← * (byte*) main::chargen + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte~) main::$9 ← (byte[]) bits_count *idx (byte~) main::$8 + (byte) main::bits ← (byte~) main::$9 + (boolean~) main::$10 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$11 ← ! (boolean~) main::$10 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte~) main::$13 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$13 + (byte~) main::$14 ← * (byte*) main::chargen + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte~) main::$21 ← (byte[]) bits_count *idx (byte~) main::$20 + (byte) main::bits ← (byte~) main::$21 + (boolean~) main::$22 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$23 ← ! (boolean~) main::$22 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte~) main::$12 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$12 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte~) main::$25 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$25 + (byte~) main::$26 ← * (byte*) main::chargen + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte~) main::$33 ← (byte[]) bits_count *idx (byte~) main::$32 + (byte) main::bits ← (byte~) main::$33 + (boolean~) main::$34 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$35 ← ! (boolean~) main::$34 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte~) main::$24 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$24 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte~) main::$37 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$37 + (byte~) main::$38 ← * (byte*) main::chargen + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte~) main::$44 ← (byte[]) bits_count *idx (byte~) main::$43 + (byte) main::bits ← (byte~) main::$44 + (boolean~) main::$45 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$46 ← ! (boolean~) main::$45 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte~) main::$36 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$36 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte~) main::$48 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$48 + *((byte*) main::charset4) ← (byte) main::bits_gen + (byte*) main::charset4 ← ++ (byte*) main::charset4 + (byte*~) main::$49 ← (byte*) main::chargen + (byte) 2 + (byte*) main::chargen ← (byte*~) main::$49 + (byte*~) main::$50 ← (byte*) CHARGEN + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte~) main::$47 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$47 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((byte*) PROCPORT) ← (byte) 55 + (byte) main::i ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + *((byte*) SCREEN + (byte) main::i) ← (byte) main::i + (byte) main::i ← ++ (byte) main::i + (boolean~) main::$52 ← (byte) main::i != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((byte*) D018) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@1: scope:[] from @begin + to:@end +@end: scope:[] from @1 + +Removing empty block @1 +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN ← (word) 1024 + (byte*) CHARSET ← (word) 8192 + (byte*) CHARGEN ← (word) 53248 + (byte*) PROCPORT ← (byte) 1 + (byte*) D018 ← (word) 53272 + (byte*) CHARSET4 ← (word) 10240 + (byte[]) bits_count ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + (void~) $0 ← call main + to:@end +main: scope:[main] from + *((byte*) PROCPORT) ← (byte) 50 + (byte*) main::chargen ← (byte*) CHARGEN + (byte*) main::charset4 ← (byte*) CHARSET4 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte) main::bits_gen ← (byte) 0 + (byte*~) main::$0 ← (byte*) main::chargen + (byte) 1 + (byte*) main::chargen1 ← (byte*~) main::$0 + (byte~) main::$1 ← * (byte*) main::chargen + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte~) main::$9 ← (byte[]) bits_count *idx (byte~) main::$8 + (byte) main::bits ← (byte~) main::$9 + (boolean~) main::$10 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$11 ← ! (boolean~) main::$10 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte~) main::$13 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$13 + (byte~) main::$14 ← * (byte*) main::chargen + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte~) main::$21 ← (byte[]) bits_count *idx (byte~) main::$20 + (byte) main::bits ← (byte~) main::$21 + (boolean~) main::$22 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$23 ← ! (boolean~) main::$22 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte~) main::$12 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$12 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte~) main::$25 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$25 + (byte~) main::$26 ← * (byte*) main::chargen + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte~) main::$33 ← (byte[]) bits_count *idx (byte~) main::$32 + (byte) main::bits ← (byte~) main::$33 + (boolean~) main::$34 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$35 ← ! (boolean~) main::$34 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte~) main::$24 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$24 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte~) main::$37 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$37 + (byte~) main::$38 ← * (byte*) main::chargen + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte~) main::$44 ← (byte[]) bits_count *idx (byte~) main::$43 + (byte) main::bits ← (byte~) main::$44 + (boolean~) main::$45 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$46 ← ! (boolean~) main::$45 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte~) main::$36 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$36 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte~) main::$48 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$48 + *((byte*) main::charset4) ← (byte) main::bits_gen + (byte*) main::charset4 ← ++ (byte*) main::charset4 + (byte*~) main::$49 ← (byte*) main::chargen + (byte) 2 + (byte*) main::chargen ← (byte*~) main::$49 + (byte*~) main::$50 ← (byte*) CHARGEN + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte~) main::$47 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$47 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((byte*) PROCPORT) ← (byte) 55 + (byte) main::i ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + *((byte*) SCREEN + (byte) main::i) ← (byte) main::i + (byte) main::i ← ++ (byte) main::i + (boolean~) main::$52 ← (byte) main::i != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((byte*) D018) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +PROCEDURE MODIFY VARIABLE ANALYSIS + +CONTROL FLOW GRAPH WITH ASSIGNMENT CALL +@begin: scope:[] from + (byte*) SCREEN ← (word) 1024 + (byte*) CHARSET ← (word) 8192 + (byte*) CHARGEN ← (word) 53248 + (byte*) PROCPORT ← (byte) 1 + (byte*) D018 ← (word) 53272 + (byte*) CHARSET4 ← (word) 10240 + (byte[]) bits_count ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + call main param-assignment + to:@2 +@2: scope:[] from @begin + to:@end +main: scope:[main] from @begin + *((byte*) PROCPORT) ← (byte) 50 + (byte*) main::chargen ← (byte*) CHARGEN + (byte*) main::charset4 ← (byte*) CHARSET4 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte) main::bits_gen ← (byte) 0 + (byte*~) main::$0 ← (byte*) main::chargen + (byte) 1 + (byte*) main::chargen1 ← (byte*~) main::$0 + (byte~) main::$1 ← * (byte*) main::chargen + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte~) main::$9 ← (byte[]) bits_count *idx (byte~) main::$8 + (byte) main::bits ← (byte~) main::$9 + (boolean~) main::$10 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$11 ← ! (boolean~) main::$10 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte~) main::$13 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$13 + (byte~) main::$14 ← * (byte*) main::chargen + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte~) main::$21 ← (byte[]) bits_count *idx (byte~) main::$20 + (byte) main::bits ← (byte~) main::$21 + (boolean~) main::$22 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$23 ← ! (boolean~) main::$22 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte~) main::$12 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$12 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte~) main::$25 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$25 + (byte~) main::$26 ← * (byte*) main::chargen + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte~) main::$33 ← (byte[]) bits_count *idx (byte~) main::$32 + (byte) main::bits ← (byte~) main::$33 + (boolean~) main::$34 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$35 ← ! (boolean~) main::$34 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte~) main::$24 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$24 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte~) main::$37 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$37 + (byte~) main::$38 ← * (byte*) main::chargen + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte~) main::$44 ← (byte[]) bits_count *idx (byte~) main::$43 + (byte) main::bits ← (byte~) main::$44 + (boolean~) main::$45 ← (byte) main::bits >= (byte) 2 + (boolean~) main::$46 ← ! (boolean~) main::$45 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte~) main::$36 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$36 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte~) main::$48 ← (byte) main::bits_gen << (byte) 1 + (byte) main::bits_gen ← (byte~) main::$48 + *((byte*) main::charset4) ← (byte) main::bits_gen + (byte*) main::charset4 ← ++ (byte*) main::charset4 + (byte*~) main::$49 ← (byte*) main::chargen + (byte) 2 + (byte*) main::chargen ← (byte*~) main::$49 + (byte*~) main::$50 ← (byte*) CHARGEN + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte~) main::$47 ← (byte) main::bits_gen + (byte) 1 + (byte) main::bits_gen ← (byte~) main::$47 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((byte*) PROCPORT) ← (byte) 55 + (byte) main::i ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + *((byte*) SCREEN + (byte) main::i) ← (byte) main::i + (byte) main::i ← ++ (byte) main::i + (boolean~) main::$52 ← (byte) main::i != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((byte*) D018) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @2 + +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +CONTROL FLOW GRAPH SSA +@begin: scope:[] from + (byte*) SCREEN#0 ← (word) 1024 + (byte*) CHARSET#0 ← (word) 8192 + (byte*) CHARGEN#0 ← (word) 53248 + (byte*) PROCPORT#0 ← (byte) 1 + (byte*) D018#0 ← (word) 53272 + (byte*) CHARSET4#0 ← (word) 10240 + (byte[]) bits_count#0 ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + call main param-assignment + to:@2 +@2: scope:[] from @begin + to:@end +main: scope:[main] from @begin + (byte*) D018#13 ← phi( @begin/(byte*) D018#0 ) + (byte*) SCREEN#12 ← phi( @begin/(byte*) SCREEN#0 ) + (byte[]) bits_count#5 ← phi( @begin/(byte[]) bits_count#0 ) + (byte*) CHARSET4#1 ← phi( @begin/(byte*) CHARSET4#0 ) + (byte*) CHARGEN#1 ← phi( @begin/(byte*) CHARGEN#0 ) + (byte*) PROCPORT#1 ← phi( @begin/(byte*) PROCPORT#0 ) + *((byte*) PROCPORT#1) ← (byte) 50 + (byte*) main::chargen#0 ← (byte*) CHARGEN#1 + (byte*) main::charset4#0 ← (byte*) CHARSET4#1 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) D018#11 ← phi( main/(byte*) D018#13 main::@5/(byte*) D018#4 ) + (byte*) SCREEN#10 ← phi( main/(byte*) SCREEN#12 main::@5/(byte*) SCREEN#3 ) + (byte*) PROCPORT#10 ← phi( main/(byte*) PROCPORT#1 main::@5/(byte*) PROCPORT#3 ) + (byte*) CHARGEN#9 ← phi( main/(byte*) CHARGEN#1 main::@5/(byte*) CHARGEN#2 ) + (byte*) main::charset4#9 ← phi( main/(byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte[]) bits_count#1 ← phi( main/(byte[]) bits_count#5 main::@5/(byte[]) bits_count#6 ) + (byte*) main::chargen#2 ← phi( main/(byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte) main::bits_gen#0 ← (byte) 0 + (byte*~) main::$0 ← (byte*) main::chargen#2 + (byte) 1 + (byte*) main::chargen1#0 ← (byte*~) main::$0 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte~) main::$9 ← (byte[]) bits_count#1 *idx (byte~) main::$8 + (byte) main::bits#0 ← (byte~) main::$9 + (boolean~) main::$10 ← (byte) main::bits#0 >= (byte) 2 + (boolean~) main::$11 ← ! (boolean~) main::$10 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte*) D018#9 ← phi( main::@1/(byte*) D018#11 main::@7/(byte*) D018#12 ) + (byte*) SCREEN#8 ← phi( main::@1/(byte*) SCREEN#10 main::@7/(byte*) SCREEN#11 ) + (byte*) PROCPORT#8 ← phi( main::@1/(byte*) PROCPORT#10 main::@7/(byte*) PROCPORT#11 ) + (byte*) CHARGEN#7 ← phi( main::@1/(byte*) CHARGEN#9 main::@7/(byte*) CHARGEN#10 ) + (byte*) main::charset4#7 ← phi( main::@1/(byte*) main::charset4#9 main::@7/(byte*) main::charset4#10 ) + (byte[]) bits_count#2 ← phi( main::@1/(byte[]) bits_count#1 main::@7/(byte[]) bits_count#7 ) + (byte*) main::chargen1#1 ← phi( main::@1/(byte*) main::chargen1#0 main::@7/(byte*) main::chargen1#4 ) + (byte*) main::chargen#3 ← phi( main::@1/(byte*) main::chargen#2 main::@7/(byte*) main::chargen#7 ) + (byte) main::bits_gen#9 ← phi( main::@1/(byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) + (byte~) main::$13 ← (byte) main::bits_gen#9 << (byte) 1 + (byte) main::bits_gen#1 ← (byte~) main::$13 + (byte~) main::$14 ← * (byte*) main::chargen#3 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#1 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte~) main::$21 ← (byte[]) bits_count#2 *idx (byte~) main::$20 + (byte) main::bits#1 ← (byte~) main::$21 + (boolean~) main::$22 ← (byte) main::bits#1 >= (byte) 2 + (boolean~) main::$23 ← ! (boolean~) main::$22 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte*) D018#12 ← phi( main::@1/(byte*) D018#11 ) + (byte*) SCREEN#11 ← phi( main::@1/(byte*) SCREEN#10 ) + (byte*) PROCPORT#11 ← phi( main::@1/(byte*) PROCPORT#10 ) + (byte*) CHARGEN#10 ← phi( main::@1/(byte*) CHARGEN#9 ) + (byte*) main::charset4#10 ← phi( main::@1/(byte*) main::charset4#9 ) + (byte[]) bits_count#7 ← phi( main::@1/(byte[]) bits_count#1 ) + (byte*) main::chargen1#4 ← phi( main::@1/(byte*) main::chargen1#0 ) + (byte*) main::chargen#7 ← phi( main::@1/(byte*) main::chargen#2 ) + (byte) main::bits_gen#10 ← phi( main::@1/(byte) main::bits_gen#0 ) + (byte~) main::$12 ← (byte) main::bits_gen#10 + (byte) 1 + (byte) main::bits_gen#2 ← (byte~) main::$12 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte*) D018#7 ← phi( main::@2/(byte*) D018#9 main::@8/(byte*) D018#10 ) + (byte*) SCREEN#6 ← phi( main::@2/(byte*) SCREEN#8 main::@8/(byte*) SCREEN#9 ) + (byte*) PROCPORT#6 ← phi( main::@2/(byte*) PROCPORT#8 main::@8/(byte*) PROCPORT#9 ) + (byte*) CHARGEN#5 ← phi( main::@2/(byte*) CHARGEN#7 main::@8/(byte*) CHARGEN#8 ) + (byte*) main::charset4#5 ← phi( main::@2/(byte*) main::charset4#7 main::@8/(byte*) main::charset4#8 ) + (byte[]) bits_count#3 ← phi( main::@2/(byte[]) bits_count#2 main::@8/(byte[]) bits_count#8 ) + (byte*) main::chargen1#2 ← phi( main::@2/(byte*) main::chargen1#1 main::@8/(byte*) main::chargen1#5 ) + (byte*) main::chargen#4 ← phi( main::@2/(byte*) main::chargen#3 main::@8/(byte*) main::chargen#8 ) + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte~) main::$25 ← (byte) main::bits_gen#11 << (byte) 1 + (byte) main::bits_gen#3 ← (byte~) main::$25 + (byte~) main::$26 ← * (byte*) main::chargen#4 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#2 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte~) main::$33 ← (byte[]) bits_count#3 *idx (byte~) main::$32 + (byte) main::bits#2 ← (byte~) main::$33 + (boolean~) main::$34 ← (byte) main::bits#2 >= (byte) 2 + (boolean~) main::$35 ← ! (boolean~) main::$34 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte*) D018#10 ← phi( main::@2/(byte*) D018#9 ) + (byte*) SCREEN#9 ← phi( main::@2/(byte*) SCREEN#8 ) + (byte*) PROCPORT#9 ← phi( main::@2/(byte*) PROCPORT#8 ) + (byte*) CHARGEN#8 ← phi( main::@2/(byte*) CHARGEN#7 ) + (byte*) main::charset4#8 ← phi( main::@2/(byte*) main::charset4#7 ) + (byte[]) bits_count#8 ← phi( main::@2/(byte[]) bits_count#2 ) + (byte*) main::chargen1#5 ← phi( main::@2/(byte*) main::chargen1#1 ) + (byte*) main::chargen#8 ← phi( main::@2/(byte*) main::chargen#3 ) + (byte) main::bits_gen#12 ← phi( main::@2/(byte) main::bits_gen#1 ) + (byte~) main::$24 ← (byte) main::bits_gen#12 + (byte) 1 + (byte) main::bits_gen#4 ← (byte~) main::$24 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte*) D018#6 ← phi( main::@3/(byte*) D018#7 main::@9/(byte*) D018#8 ) + (byte*) SCREEN#5 ← phi( main::@3/(byte*) SCREEN#6 main::@9/(byte*) SCREEN#7 ) + (byte*) PROCPORT#5 ← phi( main::@3/(byte*) PROCPORT#6 main::@9/(byte*) PROCPORT#7 ) + (byte*) CHARGEN#4 ← phi( main::@3/(byte*) CHARGEN#5 main::@9/(byte*) CHARGEN#6 ) + (byte*) main::charset4#4 ← phi( main::@3/(byte*) main::charset4#5 main::@9/(byte*) main::charset4#6 ) + (byte[]) bits_count#4 ← phi( main::@3/(byte[]) bits_count#3 main::@9/(byte[]) bits_count#9 ) + (byte*) main::chargen1#3 ← phi( main::@3/(byte*) main::chargen1#2 main::@9/(byte*) main::chargen1#6 ) + (byte*) main::chargen#5 ← phi( main::@3/(byte*) main::chargen#4 main::@9/(byte*) main::chargen#9 ) + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#3 main::@9/(byte) main::bits_gen#6 ) + (byte~) main::$37 ← (byte) main::bits_gen#13 << (byte) 1 + (byte) main::bits_gen#5 ← (byte~) main::$37 + (byte~) main::$38 ← * (byte*) main::chargen#5 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#3 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte~) main::$44 ← (byte[]) bits_count#4 *idx (byte~) main::$43 + (byte) main::bits#3 ← (byte~) main::$44 + (boolean~) main::$45 ← (byte) main::bits#3 >= (byte) 2 + (boolean~) main::$46 ← ! (boolean~) main::$45 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte*) D018#8 ← phi( main::@3/(byte*) D018#7 ) + (byte*) SCREEN#7 ← phi( main::@3/(byte*) SCREEN#6 ) + (byte*) PROCPORT#7 ← phi( main::@3/(byte*) PROCPORT#6 ) + (byte*) CHARGEN#6 ← phi( main::@3/(byte*) CHARGEN#5 ) + (byte*) main::charset4#6 ← phi( main::@3/(byte*) main::charset4#5 ) + (byte[]) bits_count#9 ← phi( main::@3/(byte[]) bits_count#3 ) + (byte*) main::chargen1#6 ← phi( main::@3/(byte*) main::chargen1#2 ) + (byte*) main::chargen#9 ← phi( main::@3/(byte*) main::chargen#4 ) + (byte) main::bits_gen#14 ← phi( main::@3/(byte) main::bits_gen#3 ) + (byte~) main::$36 ← (byte) main::bits_gen#14 + (byte) 1 + (byte) main::bits_gen#6 ← (byte~) main::$36 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte*) D018#4 ← phi( main::@10/(byte*) D018#5 main::@4/(byte*) D018#6 ) + (byte*) SCREEN#3 ← phi( main::@10/(byte*) SCREEN#4 main::@4/(byte*) SCREEN#5 ) + (byte*) PROCPORT#3 ← phi( main::@10/(byte*) PROCPORT#4 main::@4/(byte*) PROCPORT#5 ) + (byte[]) bits_count#6 ← phi( main::@10/(byte[]) bits_count#10 main::@4/(byte[]) bits_count#4 ) + (byte*) CHARGEN#2 ← phi( main::@10/(byte*) CHARGEN#3 main::@4/(byte*) CHARGEN#4 ) + (byte*) main::chargen#6 ← phi( main::@10/(byte*) main::chargen#10 main::@4/(byte*) main::chargen#5 ) + (byte*) main::charset4#2 ← phi( main::@10/(byte*) main::charset4#3 main::@4/(byte*) main::charset4#4 ) + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#5 ) + (byte~) main::$48 ← (byte) main::bits_gen#15 << (byte) 1 + (byte) main::bits_gen#7 ← (byte~) main::$48 + *((byte*) main::charset4#2) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#2 + (byte*~) main::$49 ← (byte*) main::chargen#6 + (byte) 2 + (byte*) main::chargen#1 ← (byte*~) main::$49 + (byte*~) main::$50 ← (byte*) CHARGEN#2 + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen#1 < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte*) D018#5 ← phi( main::@4/(byte*) D018#6 ) + (byte*) SCREEN#4 ← phi( main::@4/(byte*) SCREEN#5 ) + (byte*) PROCPORT#4 ← phi( main::@4/(byte*) PROCPORT#5 ) + (byte[]) bits_count#10 ← phi( main::@4/(byte[]) bits_count#4 ) + (byte*) CHARGEN#3 ← phi( main::@4/(byte*) CHARGEN#4 ) + (byte*) main::chargen#10 ← phi( main::@4/(byte*) main::chargen#5 ) + (byte*) main::charset4#3 ← phi( main::@4/(byte*) main::charset4#4 ) + (byte) main::bits_gen#16 ← phi( main::@4/(byte) main::bits_gen#5 ) + (byte~) main::$47 ← (byte) main::bits_gen#16 + (byte) 1 + (byte) main::bits_gen#8 ← (byte~) main::$47 + to:main::@5 +main::@11: scope:[main] from main::@5 + (byte*) D018#3 ← phi( main::@5/(byte*) D018#4 ) + (byte*) SCREEN#2 ← phi( main::@5/(byte*) SCREEN#3 ) + (byte*) PROCPORT#2 ← phi( main::@5/(byte*) PROCPORT#3 ) + *((byte*) PROCPORT#2) ← (byte) 55 + (byte) main::i#0 ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#2 ← phi( main::@11/(byte*) D018#3 main::@6/(byte*) D018#2 ) + (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#2 main::@6/(byte*) SCREEN#1 ) + (byte) main::i#2 ← phi( main::@11/(byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$52 ← (byte) main::i#1 != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + (byte*) D018#1 ← phi( main::@6/(byte*) D018#2 ) + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @2 + +CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN +@begin: scope:[] from + (byte*) SCREEN#0 ← (word) 1024 + (byte*) CHARSET#0 ← (word) 8192 + (byte*) CHARGEN#0 ← (word) 53248 + (byte*) PROCPORT#0 ← (byte) 1 + (byte*) D018#0 ← (word) 53272 + (byte*) CHARSET4#0 ← (word) 10240 + (byte[]) bits_count#0 ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + call main param-assignment + to:@2 +@2: scope:[] from @begin + to:@end +main: scope:[main] from @begin + (byte*) D018#13 ← phi( @begin/(byte*) D018#0 ) + (byte*) SCREEN#12 ← phi( @begin/(byte*) SCREEN#0 ) + (byte[]) bits_count#5 ← phi( @begin/(byte[]) bits_count#0 ) + (byte*) CHARSET4#1 ← phi( @begin/(byte*) CHARSET4#0 ) + (byte*) CHARGEN#1 ← phi( @begin/(byte*) CHARGEN#0 ) + (byte*) PROCPORT#1 ← phi( @begin/(byte*) PROCPORT#0 ) + *((byte*) PROCPORT#1) ← (byte) 50 + (byte*) main::chargen#0 ← (byte*) CHARGEN#1 + (byte*) main::charset4#0 ← (byte*) CHARSET4#1 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) D018#11 ← phi( main/(byte*) D018#13 main::@5/(byte*) D018#4 ) + (byte*) SCREEN#10 ← phi( main/(byte*) SCREEN#12 main::@5/(byte*) SCREEN#3 ) + (byte*) PROCPORT#10 ← phi( main/(byte*) PROCPORT#1 main::@5/(byte*) PROCPORT#3 ) + (byte*) CHARGEN#9 ← phi( main/(byte*) CHARGEN#1 main::@5/(byte*) CHARGEN#2 ) + (byte*) main::charset4#9 ← phi( main/(byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte[]) bits_count#1 ← phi( main/(byte[]) bits_count#5 main::@5/(byte[]) bits_count#6 ) + (byte*) main::chargen#2 ← phi( main/(byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte) main::bits_gen#0 ← (byte) 0 + (byte*~) main::$0 ← (byte*) main::chargen#2 + (byte) 1 + (byte*) main::chargen1#0 ← (byte*~) main::$0 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte~) main::$9 ← (byte[]) bits_count#1 *idx (byte~) main::$8 + (byte) main::bits#0 ← (byte~) main::$9 + (boolean~) main::$10 ← (byte) main::bits#0 >= (byte) 2 + (boolean~) main::$11 ← ! (boolean~) main::$10 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte*) D018#9 ← phi( main::@1/(byte*) D018#11 main::@7/(byte*) D018#12 ) + (byte*) SCREEN#8 ← phi( main::@1/(byte*) SCREEN#10 main::@7/(byte*) SCREEN#11 ) + (byte*) PROCPORT#8 ← phi( main::@1/(byte*) PROCPORT#10 main::@7/(byte*) PROCPORT#11 ) + (byte*) CHARGEN#7 ← phi( main::@1/(byte*) CHARGEN#9 main::@7/(byte*) CHARGEN#10 ) + (byte*) main::charset4#7 ← phi( main::@1/(byte*) main::charset4#9 main::@7/(byte*) main::charset4#10 ) + (byte[]) bits_count#2 ← phi( main::@1/(byte[]) bits_count#1 main::@7/(byte[]) bits_count#7 ) + (byte*) main::chargen1#1 ← phi( main::@1/(byte*) main::chargen1#0 main::@7/(byte*) main::chargen1#4 ) + (byte*) main::chargen#3 ← phi( main::@1/(byte*) main::chargen#2 main::@7/(byte*) main::chargen#7 ) + (byte) main::bits_gen#9 ← phi( main::@1/(byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) + (byte~) main::$13 ← (byte) main::bits_gen#9 << (byte) 1 + (byte) main::bits_gen#1 ← (byte~) main::$13 + (byte~) main::$14 ← * (byte*) main::chargen#3 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#1 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte~) main::$21 ← (byte[]) bits_count#2 *idx (byte~) main::$20 + (byte) main::bits#1 ← (byte~) main::$21 + (boolean~) main::$22 ← (byte) main::bits#1 >= (byte) 2 + (boolean~) main::$23 ← ! (boolean~) main::$22 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte*) D018#12 ← phi( main::@1/(byte*) D018#11 ) + (byte*) SCREEN#11 ← phi( main::@1/(byte*) SCREEN#10 ) + (byte*) PROCPORT#11 ← phi( main::@1/(byte*) PROCPORT#10 ) + (byte*) CHARGEN#10 ← phi( main::@1/(byte*) CHARGEN#9 ) + (byte*) main::charset4#10 ← phi( main::@1/(byte*) main::charset4#9 ) + (byte[]) bits_count#7 ← phi( main::@1/(byte[]) bits_count#1 ) + (byte*) main::chargen1#4 ← phi( main::@1/(byte*) main::chargen1#0 ) + (byte*) main::chargen#7 ← phi( main::@1/(byte*) main::chargen#2 ) + (byte) main::bits_gen#10 ← phi( main::@1/(byte) main::bits_gen#0 ) + (byte~) main::$12 ← (byte) main::bits_gen#10 + (byte) 1 + (byte) main::bits_gen#2 ← (byte~) main::$12 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte*) D018#7 ← phi( main::@2/(byte*) D018#9 main::@8/(byte*) D018#10 ) + (byte*) SCREEN#6 ← phi( main::@2/(byte*) SCREEN#8 main::@8/(byte*) SCREEN#9 ) + (byte*) PROCPORT#6 ← phi( main::@2/(byte*) PROCPORT#8 main::@8/(byte*) PROCPORT#9 ) + (byte*) CHARGEN#5 ← phi( main::@2/(byte*) CHARGEN#7 main::@8/(byte*) CHARGEN#8 ) + (byte*) main::charset4#5 ← phi( main::@2/(byte*) main::charset4#7 main::@8/(byte*) main::charset4#8 ) + (byte[]) bits_count#3 ← phi( main::@2/(byte[]) bits_count#2 main::@8/(byte[]) bits_count#8 ) + (byte*) main::chargen1#2 ← phi( main::@2/(byte*) main::chargen1#1 main::@8/(byte*) main::chargen1#5 ) + (byte*) main::chargen#4 ← phi( main::@2/(byte*) main::chargen#3 main::@8/(byte*) main::chargen#8 ) + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte~) main::$25 ← (byte) main::bits_gen#11 << (byte) 1 + (byte) main::bits_gen#3 ← (byte~) main::$25 + (byte~) main::$26 ← * (byte*) main::chargen#4 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#2 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte~) main::$33 ← (byte[]) bits_count#3 *idx (byte~) main::$32 + (byte) main::bits#2 ← (byte~) main::$33 + (boolean~) main::$34 ← (byte) main::bits#2 >= (byte) 2 + (boolean~) main::$35 ← ! (boolean~) main::$34 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte*) D018#10 ← phi( main::@2/(byte*) D018#9 ) + (byte*) SCREEN#9 ← phi( main::@2/(byte*) SCREEN#8 ) + (byte*) PROCPORT#9 ← phi( main::@2/(byte*) PROCPORT#8 ) + (byte*) CHARGEN#8 ← phi( main::@2/(byte*) CHARGEN#7 ) + (byte*) main::charset4#8 ← phi( main::@2/(byte*) main::charset4#7 ) + (byte[]) bits_count#8 ← phi( main::@2/(byte[]) bits_count#2 ) + (byte*) main::chargen1#5 ← phi( main::@2/(byte*) main::chargen1#1 ) + (byte*) main::chargen#8 ← phi( main::@2/(byte*) main::chargen#3 ) + (byte) main::bits_gen#12 ← phi( main::@2/(byte) main::bits_gen#1 ) + (byte~) main::$24 ← (byte) main::bits_gen#12 + (byte) 1 + (byte) main::bits_gen#4 ← (byte~) main::$24 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte*) D018#6 ← phi( main::@3/(byte*) D018#7 main::@9/(byte*) D018#8 ) + (byte*) SCREEN#5 ← phi( main::@3/(byte*) SCREEN#6 main::@9/(byte*) SCREEN#7 ) + (byte*) PROCPORT#5 ← phi( main::@3/(byte*) PROCPORT#6 main::@9/(byte*) PROCPORT#7 ) + (byte*) CHARGEN#4 ← phi( main::@3/(byte*) CHARGEN#5 main::@9/(byte*) CHARGEN#6 ) + (byte*) main::charset4#4 ← phi( main::@3/(byte*) main::charset4#5 main::@9/(byte*) main::charset4#6 ) + (byte[]) bits_count#4 ← phi( main::@3/(byte[]) bits_count#3 main::@9/(byte[]) bits_count#9 ) + (byte*) main::chargen1#3 ← phi( main::@3/(byte*) main::chargen1#2 main::@9/(byte*) main::chargen1#6 ) + (byte*) main::chargen#5 ← phi( main::@3/(byte*) main::chargen#4 main::@9/(byte*) main::chargen#9 ) + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#3 main::@9/(byte) main::bits_gen#6 ) + (byte~) main::$37 ← (byte) main::bits_gen#13 << (byte) 1 + (byte) main::bits_gen#5 ← (byte~) main::$37 + (byte~) main::$38 ← * (byte*) main::chargen#5 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#3 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte~) main::$44 ← (byte[]) bits_count#4 *idx (byte~) main::$43 + (byte) main::bits#3 ← (byte~) main::$44 + (boolean~) main::$45 ← (byte) main::bits#3 >= (byte) 2 + (boolean~) main::$46 ← ! (boolean~) main::$45 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte*) D018#8 ← phi( main::@3/(byte*) D018#7 ) + (byte*) SCREEN#7 ← phi( main::@3/(byte*) SCREEN#6 ) + (byte*) PROCPORT#7 ← phi( main::@3/(byte*) PROCPORT#6 ) + (byte*) CHARGEN#6 ← phi( main::@3/(byte*) CHARGEN#5 ) + (byte*) main::charset4#6 ← phi( main::@3/(byte*) main::charset4#5 ) + (byte[]) bits_count#9 ← phi( main::@3/(byte[]) bits_count#3 ) + (byte*) main::chargen1#6 ← phi( main::@3/(byte*) main::chargen1#2 ) + (byte*) main::chargen#9 ← phi( main::@3/(byte*) main::chargen#4 ) + (byte) main::bits_gen#14 ← phi( main::@3/(byte) main::bits_gen#3 ) + (byte~) main::$36 ← (byte) main::bits_gen#14 + (byte) 1 + (byte) main::bits_gen#6 ← (byte~) main::$36 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte*) D018#4 ← phi( main::@10/(byte*) D018#5 main::@4/(byte*) D018#6 ) + (byte*) SCREEN#3 ← phi( main::@10/(byte*) SCREEN#4 main::@4/(byte*) SCREEN#5 ) + (byte*) PROCPORT#3 ← phi( main::@10/(byte*) PROCPORT#4 main::@4/(byte*) PROCPORT#5 ) + (byte[]) bits_count#6 ← phi( main::@10/(byte[]) bits_count#10 main::@4/(byte[]) bits_count#4 ) + (byte*) CHARGEN#2 ← phi( main::@10/(byte*) CHARGEN#3 main::@4/(byte*) CHARGEN#4 ) + (byte*) main::chargen#6 ← phi( main::@10/(byte*) main::chargen#10 main::@4/(byte*) main::chargen#5 ) + (byte*) main::charset4#2 ← phi( main::@10/(byte*) main::charset4#3 main::@4/(byte*) main::charset4#4 ) + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#5 ) + (byte~) main::$48 ← (byte) main::bits_gen#15 << (byte) 1 + (byte) main::bits_gen#7 ← (byte~) main::$48 + *((byte*) main::charset4#2) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#2 + (byte*~) main::$49 ← (byte*) main::chargen#6 + (byte) 2 + (byte*) main::chargen#1 ← (byte*~) main::$49 + (byte*~) main::$50 ← (byte*) CHARGEN#2 + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen#1 < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte*) D018#5 ← phi( main::@4/(byte*) D018#6 ) + (byte*) SCREEN#4 ← phi( main::@4/(byte*) SCREEN#5 ) + (byte*) PROCPORT#4 ← phi( main::@4/(byte*) PROCPORT#5 ) + (byte[]) bits_count#10 ← phi( main::@4/(byte[]) bits_count#4 ) + (byte*) CHARGEN#3 ← phi( main::@4/(byte*) CHARGEN#4 ) + (byte*) main::chargen#10 ← phi( main::@4/(byte*) main::chargen#5 ) + (byte*) main::charset4#3 ← phi( main::@4/(byte*) main::charset4#4 ) + (byte) main::bits_gen#16 ← phi( main::@4/(byte) main::bits_gen#5 ) + (byte~) main::$47 ← (byte) main::bits_gen#16 + (byte) 1 + (byte) main::bits_gen#8 ← (byte~) main::$47 + to:main::@5 +main::@11: scope:[main] from main::@5 + (byte*) D018#3 ← phi( main::@5/(byte*) D018#4 ) + (byte*) SCREEN#2 ← phi( main::@5/(byte*) SCREEN#3 ) + (byte*) PROCPORT#2 ← phi( main::@5/(byte*) PROCPORT#3 ) + *((byte*) PROCPORT#2) ← (byte) 55 + (byte) main::i#0 ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#2 ← phi( main::@11/(byte*) D018#3 main::@6/(byte*) D018#2 ) + (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#2 main::@6/(byte*) SCREEN#1 ) + (byte) main::i#2 ← phi( main::@11/(byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$52 ← (byte) main::i#1 != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + (byte*) D018#1 ← phi( main::@6/(byte*) D018#2 ) + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @2 + +INITIAL SSA SYMBOL TABLE +(label) @2 +(label) @begin +(label) @end +(byte*) CHARGEN +(byte*) CHARGEN#0 +(byte*) CHARGEN#1 +(byte*) CHARGEN#10 +(byte*) CHARGEN#2 +(byte*) CHARGEN#3 +(byte*) CHARGEN#4 +(byte*) CHARGEN#5 +(byte*) CHARGEN#6 +(byte*) CHARGEN#7 +(byte*) CHARGEN#8 +(byte*) CHARGEN#9 +(byte*) CHARSET +(byte*) CHARSET#0 +(byte*) CHARSET4 +(byte*) CHARSET4#0 +(byte*) CHARSET4#1 +(byte*) D018 +(byte*) D018#0 +(byte*) D018#1 +(byte*) D018#10 +(byte*) D018#11 +(byte*) D018#12 +(byte*) D018#13 +(byte*) D018#2 +(byte*) D018#3 +(byte*) D018#4 +(byte*) D018#5 +(byte*) D018#6 +(byte*) D018#7 +(byte*) D018#8 +(byte*) D018#9 +(byte*) PROCPORT +(byte*) PROCPORT#0 +(byte*) PROCPORT#1 +(byte*) PROCPORT#10 +(byte*) PROCPORT#11 +(byte*) PROCPORT#2 +(byte*) PROCPORT#3 +(byte*) PROCPORT#4 +(byte*) PROCPORT#5 +(byte*) PROCPORT#6 +(byte*) PROCPORT#7 +(byte*) PROCPORT#8 +(byte*) PROCPORT#9 +(byte*) SCREEN +(byte*) SCREEN#0 +(byte*) SCREEN#1 +(byte*) SCREEN#10 +(byte*) SCREEN#11 +(byte*) SCREEN#12 +(byte*) SCREEN#2 +(byte*) SCREEN#3 +(byte*) SCREEN#4 +(byte*) SCREEN#5 +(byte*) SCREEN#6 +(byte*) SCREEN#7 +(byte*) SCREEN#8 +(byte*) SCREEN#9 +(byte[]) bits_count +(byte[]) bits_count#0 +(byte[]) bits_count#1 +(byte[]) bits_count#10 +(byte[]) bits_count#2 +(byte[]) bits_count#3 +(byte[]) bits_count#4 +(byte[]) bits_count#5 +(byte[]) bits_count#6 +(byte[]) bits_count#7 +(byte[]) bits_count#8 +(byte[]) bits_count#9 +(void()) main() +(byte*~) main::$0 +(byte~) main::$1 +(boolean~) main::$10 +(boolean~) main::$11 +(byte~) main::$12 +(byte~) main::$13 +(byte~) main::$14 +(byte~) main::$15 +(byte~) main::$16 +(byte~) main::$17 +(byte~) main::$18 +(byte~) main::$19 +(byte~) main::$2 +(byte~) main::$20 +(byte~) main::$21 +(boolean~) main::$22 +(boolean~) main::$23 +(byte~) main::$24 +(byte~) main::$25 +(byte~) main::$26 +(byte~) main::$27 +(byte~) main::$28 +(byte~) main::$29 +(byte~) main::$3 +(byte~) main::$30 +(byte~) main::$31 +(byte~) main::$32 +(byte~) main::$33 +(boolean~) main::$34 +(boolean~) main::$35 +(byte~) main::$36 +(byte~) main::$37 +(byte~) main::$38 +(byte~) main::$39 +(byte~) main::$4 +(byte~) main::$40 +(byte~) main::$41 +(byte~) main::$42 +(byte~) main::$43 +(byte~) main::$44 +(boolean~) main::$45 +(boolean~) main::$46 +(byte~) main::$47 +(byte~) main::$48 +(byte*~) main::$49 +(byte~) main::$5 +(byte*~) main::$50 +(boolean~) main::$51 +(boolean~) main::$52 +(byte~) main::$6 +(byte~) main::$7 +(byte~) main::$8 +(byte~) main::$9 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::bits +(byte) main::bits#0 +(byte) main::bits#1 +(byte) main::bits#2 +(byte) main::bits#3 +(byte) main::bits_gen +(byte) main::bits_gen#0 +(byte) main::bits_gen#1 +(byte) main::bits_gen#10 +(byte) main::bits_gen#11 +(byte) main::bits_gen#12 +(byte) main::bits_gen#13 +(byte) main::bits_gen#14 +(byte) main::bits_gen#15 +(byte) main::bits_gen#16 +(byte) main::bits_gen#2 +(byte) main::bits_gen#3 +(byte) main::bits_gen#4 +(byte) main::bits_gen#5 +(byte) main::bits_gen#6 +(byte) main::bits_gen#7 +(byte) main::bits_gen#8 +(byte) main::bits_gen#9 +(byte*) main::chargen +(byte*) main::chargen#0 +(byte*) main::chargen#1 +(byte*) main::chargen#10 +(byte*) main::chargen#2 +(byte*) main::chargen#3 +(byte*) main::chargen#4 +(byte*) main::chargen#5 +(byte*) main::chargen#6 +(byte*) main::chargen#7 +(byte*) main::chargen#8 +(byte*) main::chargen#9 +(byte*) main::chargen1 +(byte*) main::chargen1#0 +(byte*) main::chargen1#1 +(byte*) main::chargen1#2 +(byte*) main::chargen1#3 +(byte*) main::chargen1#4 +(byte*) main::chargen1#5 +(byte*) main::chargen1#6 +(byte*) main::charset4 +(byte*) main::charset4#0 +(byte*) main::charset4#1 +(byte*) main::charset4#10 +(byte*) main::charset4#2 +(byte*) main::charset4#3 +(byte*) main::charset4#4 +(byte*) main::charset4#5 +(byte*) main::charset4#6 +(byte*) main::charset4#7 +(byte*) main::charset4#8 +(byte*) main::charset4#9 +(byte) main::i +(byte) main::i#0 +(byte) main::i#1 +(byte) main::i#2 + +Culled Empty Block (label) @2 +Succesful SSA optimization Pass2CullEmptyBlocks +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN#0 ← (word) 1024 + (byte*) CHARSET#0 ← (word) 8192 + (byte*) CHARGEN#0 ← (word) 53248 + (byte*) PROCPORT#0 ← (byte) 1 + (byte*) D018#0 ← (word) 53272 + (byte*) CHARSET4#0 ← (word) 10240 + (byte[]) bits_count#0 ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + call main param-assignment + to:@end +main: scope:[main] from @begin + (byte*) D018#13 ← phi( @begin/(byte*) D018#0 ) + (byte*) SCREEN#12 ← phi( @begin/(byte*) SCREEN#0 ) + (byte[]) bits_count#5 ← phi( @begin/(byte[]) bits_count#0 ) + (byte*) CHARSET4#1 ← phi( @begin/(byte*) CHARSET4#0 ) + (byte*) CHARGEN#1 ← phi( @begin/(byte*) CHARGEN#0 ) + (byte*) PROCPORT#1 ← phi( @begin/(byte*) PROCPORT#0 ) + *((byte*) PROCPORT#1) ← (byte) 50 + (byte*) main::chargen#0 ← (byte*) CHARGEN#1 + (byte*) main::charset4#0 ← (byte*) CHARSET4#1 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) D018#11 ← phi( main/(byte*) D018#13 main::@5/(byte*) D018#4 ) + (byte*) SCREEN#10 ← phi( main/(byte*) SCREEN#12 main::@5/(byte*) SCREEN#3 ) + (byte*) PROCPORT#10 ← phi( main/(byte*) PROCPORT#1 main::@5/(byte*) PROCPORT#3 ) + (byte*) CHARGEN#9 ← phi( main/(byte*) CHARGEN#1 main::@5/(byte*) CHARGEN#2 ) + (byte*) main::charset4#9 ← phi( main/(byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte[]) bits_count#1 ← phi( main/(byte[]) bits_count#5 main::@5/(byte[]) bits_count#6 ) + (byte*) main::chargen#2 ← phi( main/(byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte) main::bits_gen#0 ← (byte) 0 + (byte*~) main::$0 ← (byte*) main::chargen#2 + (byte) 1 + (byte*) main::chargen1#0 ← (byte*~) main::$0 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte~) main::$9 ← (byte[]) bits_count#1 *idx (byte~) main::$8 + (byte) main::bits#0 ← (byte~) main::$9 + (boolean~) main::$10 ← (byte) main::bits#0 >= (byte) 2 + (boolean~) main::$11 ← ! (boolean~) main::$10 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte*) D018#9 ← phi( main::@1/(byte*) D018#11 main::@7/(byte*) D018#12 ) + (byte*) SCREEN#8 ← phi( main::@1/(byte*) SCREEN#10 main::@7/(byte*) SCREEN#11 ) + (byte*) PROCPORT#8 ← phi( main::@1/(byte*) PROCPORT#10 main::@7/(byte*) PROCPORT#11 ) + (byte*) CHARGEN#7 ← phi( main::@1/(byte*) CHARGEN#9 main::@7/(byte*) CHARGEN#10 ) + (byte*) main::charset4#7 ← phi( main::@1/(byte*) main::charset4#9 main::@7/(byte*) main::charset4#10 ) + (byte[]) bits_count#2 ← phi( main::@1/(byte[]) bits_count#1 main::@7/(byte[]) bits_count#7 ) + (byte*) main::chargen1#1 ← phi( main::@1/(byte*) main::chargen1#0 main::@7/(byte*) main::chargen1#4 ) + (byte*) main::chargen#3 ← phi( main::@1/(byte*) main::chargen#2 main::@7/(byte*) main::chargen#7 ) + (byte) main::bits_gen#9 ← phi( main::@1/(byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) + (byte~) main::$13 ← (byte) main::bits_gen#9 << (byte) 1 + (byte) main::bits_gen#1 ← (byte~) main::$13 + (byte~) main::$14 ← * (byte*) main::chargen#3 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#1 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte~) main::$21 ← (byte[]) bits_count#2 *idx (byte~) main::$20 + (byte) main::bits#1 ← (byte~) main::$21 + (boolean~) main::$22 ← (byte) main::bits#1 >= (byte) 2 + (boolean~) main::$23 ← ! (boolean~) main::$22 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte*) D018#12 ← phi( main::@1/(byte*) D018#11 ) + (byte*) SCREEN#11 ← phi( main::@1/(byte*) SCREEN#10 ) + (byte*) PROCPORT#11 ← phi( main::@1/(byte*) PROCPORT#10 ) + (byte*) CHARGEN#10 ← phi( main::@1/(byte*) CHARGEN#9 ) + (byte*) main::charset4#10 ← phi( main::@1/(byte*) main::charset4#9 ) + (byte[]) bits_count#7 ← phi( main::@1/(byte[]) bits_count#1 ) + (byte*) main::chargen1#4 ← phi( main::@1/(byte*) main::chargen1#0 ) + (byte*) main::chargen#7 ← phi( main::@1/(byte*) main::chargen#2 ) + (byte) main::bits_gen#10 ← phi( main::@1/(byte) main::bits_gen#0 ) + (byte~) main::$12 ← (byte) main::bits_gen#10 + (byte) 1 + (byte) main::bits_gen#2 ← (byte~) main::$12 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte*) D018#7 ← phi( main::@2/(byte*) D018#9 main::@8/(byte*) D018#10 ) + (byte*) SCREEN#6 ← phi( main::@2/(byte*) SCREEN#8 main::@8/(byte*) SCREEN#9 ) + (byte*) PROCPORT#6 ← phi( main::@2/(byte*) PROCPORT#8 main::@8/(byte*) PROCPORT#9 ) + (byte*) CHARGEN#5 ← phi( main::@2/(byte*) CHARGEN#7 main::@8/(byte*) CHARGEN#8 ) + (byte*) main::charset4#5 ← phi( main::@2/(byte*) main::charset4#7 main::@8/(byte*) main::charset4#8 ) + (byte[]) bits_count#3 ← phi( main::@2/(byte[]) bits_count#2 main::@8/(byte[]) bits_count#8 ) + (byte*) main::chargen1#2 ← phi( main::@2/(byte*) main::chargen1#1 main::@8/(byte*) main::chargen1#5 ) + (byte*) main::chargen#4 ← phi( main::@2/(byte*) main::chargen#3 main::@8/(byte*) main::chargen#8 ) + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte~) main::$25 ← (byte) main::bits_gen#11 << (byte) 1 + (byte) main::bits_gen#3 ← (byte~) main::$25 + (byte~) main::$26 ← * (byte*) main::chargen#4 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#2 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte~) main::$33 ← (byte[]) bits_count#3 *idx (byte~) main::$32 + (byte) main::bits#2 ← (byte~) main::$33 + (boolean~) main::$34 ← (byte) main::bits#2 >= (byte) 2 + (boolean~) main::$35 ← ! (boolean~) main::$34 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte*) D018#10 ← phi( main::@2/(byte*) D018#9 ) + (byte*) SCREEN#9 ← phi( main::@2/(byte*) SCREEN#8 ) + (byte*) PROCPORT#9 ← phi( main::@2/(byte*) PROCPORT#8 ) + (byte*) CHARGEN#8 ← phi( main::@2/(byte*) CHARGEN#7 ) + (byte*) main::charset4#8 ← phi( main::@2/(byte*) main::charset4#7 ) + (byte[]) bits_count#8 ← phi( main::@2/(byte[]) bits_count#2 ) + (byte*) main::chargen1#5 ← phi( main::@2/(byte*) main::chargen1#1 ) + (byte*) main::chargen#8 ← phi( main::@2/(byte*) main::chargen#3 ) + (byte) main::bits_gen#12 ← phi( main::@2/(byte) main::bits_gen#1 ) + (byte~) main::$24 ← (byte) main::bits_gen#12 + (byte) 1 + (byte) main::bits_gen#4 ← (byte~) main::$24 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte*) D018#6 ← phi( main::@3/(byte*) D018#7 main::@9/(byte*) D018#8 ) + (byte*) SCREEN#5 ← phi( main::@3/(byte*) SCREEN#6 main::@9/(byte*) SCREEN#7 ) + (byte*) PROCPORT#5 ← phi( main::@3/(byte*) PROCPORT#6 main::@9/(byte*) PROCPORT#7 ) + (byte*) CHARGEN#4 ← phi( main::@3/(byte*) CHARGEN#5 main::@9/(byte*) CHARGEN#6 ) + (byte*) main::charset4#4 ← phi( main::@3/(byte*) main::charset4#5 main::@9/(byte*) main::charset4#6 ) + (byte[]) bits_count#4 ← phi( main::@3/(byte[]) bits_count#3 main::@9/(byte[]) bits_count#9 ) + (byte*) main::chargen1#3 ← phi( main::@3/(byte*) main::chargen1#2 main::@9/(byte*) main::chargen1#6 ) + (byte*) main::chargen#5 ← phi( main::@3/(byte*) main::chargen#4 main::@9/(byte*) main::chargen#9 ) + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#3 main::@9/(byte) main::bits_gen#6 ) + (byte~) main::$37 ← (byte) main::bits_gen#13 << (byte) 1 + (byte) main::bits_gen#5 ← (byte~) main::$37 + (byte~) main::$38 ← * (byte*) main::chargen#5 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#3 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte~) main::$44 ← (byte[]) bits_count#4 *idx (byte~) main::$43 + (byte) main::bits#3 ← (byte~) main::$44 + (boolean~) main::$45 ← (byte) main::bits#3 >= (byte) 2 + (boolean~) main::$46 ← ! (boolean~) main::$45 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte*) D018#8 ← phi( main::@3/(byte*) D018#7 ) + (byte*) SCREEN#7 ← phi( main::@3/(byte*) SCREEN#6 ) + (byte*) PROCPORT#7 ← phi( main::@3/(byte*) PROCPORT#6 ) + (byte*) CHARGEN#6 ← phi( main::@3/(byte*) CHARGEN#5 ) + (byte*) main::charset4#6 ← phi( main::@3/(byte*) main::charset4#5 ) + (byte[]) bits_count#9 ← phi( main::@3/(byte[]) bits_count#3 ) + (byte*) main::chargen1#6 ← phi( main::@3/(byte*) main::chargen1#2 ) + (byte*) main::chargen#9 ← phi( main::@3/(byte*) main::chargen#4 ) + (byte) main::bits_gen#14 ← phi( main::@3/(byte) main::bits_gen#3 ) + (byte~) main::$36 ← (byte) main::bits_gen#14 + (byte) 1 + (byte) main::bits_gen#6 ← (byte~) main::$36 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte*) D018#4 ← phi( main::@10/(byte*) D018#5 main::@4/(byte*) D018#6 ) + (byte*) SCREEN#3 ← phi( main::@10/(byte*) SCREEN#4 main::@4/(byte*) SCREEN#5 ) + (byte*) PROCPORT#3 ← phi( main::@10/(byte*) PROCPORT#4 main::@4/(byte*) PROCPORT#5 ) + (byte[]) bits_count#6 ← phi( main::@10/(byte[]) bits_count#10 main::@4/(byte[]) bits_count#4 ) + (byte*) CHARGEN#2 ← phi( main::@10/(byte*) CHARGEN#3 main::@4/(byte*) CHARGEN#4 ) + (byte*) main::chargen#6 ← phi( main::@10/(byte*) main::chargen#10 main::@4/(byte*) main::chargen#5 ) + (byte*) main::charset4#2 ← phi( main::@10/(byte*) main::charset4#3 main::@4/(byte*) main::charset4#4 ) + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#5 ) + (byte~) main::$48 ← (byte) main::bits_gen#15 << (byte) 1 + (byte) main::bits_gen#7 ← (byte~) main::$48 + *((byte*) main::charset4#2) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#2 + (byte*~) main::$49 ← (byte*) main::chargen#6 + (byte) 2 + (byte*) main::chargen#1 ← (byte*~) main::$49 + (byte*~) main::$50 ← (byte*) CHARGEN#2 + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen#1 < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte*) D018#5 ← phi( main::@4/(byte*) D018#6 ) + (byte*) SCREEN#4 ← phi( main::@4/(byte*) SCREEN#5 ) + (byte*) PROCPORT#4 ← phi( main::@4/(byte*) PROCPORT#5 ) + (byte[]) bits_count#10 ← phi( main::@4/(byte[]) bits_count#4 ) + (byte*) CHARGEN#3 ← phi( main::@4/(byte*) CHARGEN#4 ) + (byte*) main::chargen#10 ← phi( main::@4/(byte*) main::chargen#5 ) + (byte*) main::charset4#3 ← phi( main::@4/(byte*) main::charset4#4 ) + (byte) main::bits_gen#16 ← phi( main::@4/(byte) main::bits_gen#5 ) + (byte~) main::$47 ← (byte) main::bits_gen#16 + (byte) 1 + (byte) main::bits_gen#8 ← (byte~) main::$47 + to:main::@5 +main::@11: scope:[main] from main::@5 + (byte*) D018#3 ← phi( main::@5/(byte*) D018#4 ) + (byte*) SCREEN#2 ← phi( main::@5/(byte*) SCREEN#3 ) + (byte*) PROCPORT#2 ← phi( main::@5/(byte*) PROCPORT#3 ) + *((byte*) PROCPORT#2) ← (byte) 55 + (byte) main::i#0 ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#2 ← phi( main::@11/(byte*) D018#3 main::@6/(byte*) D018#2 ) + (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#2 main::@6/(byte*) SCREEN#1 ) + (byte) main::i#2 ← phi( main::@11/(byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$52 ← (byte) main::i#1 != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + (byte*) D018#1 ← phi( main::@6/(byte*) D018#2 ) + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +Inversing boolean not (boolean~) main::$11 ← (byte) main::bits#0 < (byte) 2 from (boolean~) main::$10 ← (byte) main::bits#0 >= (byte) 2 +Inversing boolean not (boolean~) main::$23 ← (byte) main::bits#1 < (byte) 2 from (boolean~) main::$22 ← (byte) main::bits#1 >= (byte) 2 +Inversing boolean not (boolean~) main::$35 ← (byte) main::bits#2 < (byte) 2 from (boolean~) main::$34 ← (byte) main::bits#2 >= (byte) 2 +Inversing boolean not (boolean~) main::$46 ← (byte) main::bits#3 < (byte) 2 from (boolean~) main::$45 ← (byte) main::bits#3 >= (byte) 2 +Succesful SSA optimization Pass2UnaryNotSimplification +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN#0 ← (word) 1024 + (byte*) CHARSET#0 ← (word) 8192 + (byte*) CHARGEN#0 ← (word) 53248 + (byte*) PROCPORT#0 ← (byte) 1 + (byte*) D018#0 ← (word) 53272 + (byte*) CHARSET4#0 ← (word) 10240 + (byte[]) bits_count#0 ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + call main param-assignment + to:@end +main: scope:[main] from @begin + (byte*) D018#13 ← phi( @begin/(byte*) D018#0 ) + (byte*) SCREEN#12 ← phi( @begin/(byte*) SCREEN#0 ) + (byte[]) bits_count#5 ← phi( @begin/(byte[]) bits_count#0 ) + (byte*) CHARSET4#1 ← phi( @begin/(byte*) CHARSET4#0 ) + (byte*) CHARGEN#1 ← phi( @begin/(byte*) CHARGEN#0 ) + (byte*) PROCPORT#1 ← phi( @begin/(byte*) PROCPORT#0 ) + *((byte*) PROCPORT#1) ← (byte) 50 + (byte*) main::chargen#0 ← (byte*) CHARGEN#1 + (byte*) main::charset4#0 ← (byte*) CHARSET4#1 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) D018#11 ← phi( main/(byte*) D018#13 main::@5/(byte*) D018#4 ) + (byte*) SCREEN#10 ← phi( main/(byte*) SCREEN#12 main::@5/(byte*) SCREEN#3 ) + (byte*) PROCPORT#10 ← phi( main/(byte*) PROCPORT#1 main::@5/(byte*) PROCPORT#3 ) + (byte*) CHARGEN#9 ← phi( main/(byte*) CHARGEN#1 main::@5/(byte*) CHARGEN#2 ) + (byte*) main::charset4#9 ← phi( main/(byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte[]) bits_count#1 ← phi( main/(byte[]) bits_count#5 main::@5/(byte[]) bits_count#6 ) + (byte*) main::chargen#2 ← phi( main/(byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte) main::bits_gen#0 ← (byte) 0 + (byte*~) main::$0 ← (byte*) main::chargen#2 + (byte) 1 + (byte*) main::chargen1#0 ← (byte*~) main::$0 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte~) main::$9 ← (byte[]) bits_count#1 *idx (byte~) main::$8 + (byte) main::bits#0 ← (byte~) main::$9 + (boolean~) main::$11 ← (byte) main::bits#0 < (byte) 2 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte*) D018#9 ← phi( main::@1/(byte*) D018#11 main::@7/(byte*) D018#12 ) + (byte*) SCREEN#8 ← phi( main::@1/(byte*) SCREEN#10 main::@7/(byte*) SCREEN#11 ) + (byte*) PROCPORT#8 ← phi( main::@1/(byte*) PROCPORT#10 main::@7/(byte*) PROCPORT#11 ) + (byte*) CHARGEN#7 ← phi( main::@1/(byte*) CHARGEN#9 main::@7/(byte*) CHARGEN#10 ) + (byte*) main::charset4#7 ← phi( main::@1/(byte*) main::charset4#9 main::@7/(byte*) main::charset4#10 ) + (byte[]) bits_count#2 ← phi( main::@1/(byte[]) bits_count#1 main::@7/(byte[]) bits_count#7 ) + (byte*) main::chargen1#1 ← phi( main::@1/(byte*) main::chargen1#0 main::@7/(byte*) main::chargen1#4 ) + (byte*) main::chargen#3 ← phi( main::@1/(byte*) main::chargen#2 main::@7/(byte*) main::chargen#7 ) + (byte) main::bits_gen#9 ← phi( main::@1/(byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) + (byte~) main::$13 ← (byte) main::bits_gen#9 << (byte) 1 + (byte) main::bits_gen#1 ← (byte~) main::$13 + (byte~) main::$14 ← * (byte*) main::chargen#3 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#1 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte~) main::$21 ← (byte[]) bits_count#2 *idx (byte~) main::$20 + (byte) main::bits#1 ← (byte~) main::$21 + (boolean~) main::$23 ← (byte) main::bits#1 < (byte) 2 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte*) D018#12 ← phi( main::@1/(byte*) D018#11 ) + (byte*) SCREEN#11 ← phi( main::@1/(byte*) SCREEN#10 ) + (byte*) PROCPORT#11 ← phi( main::@1/(byte*) PROCPORT#10 ) + (byte*) CHARGEN#10 ← phi( main::@1/(byte*) CHARGEN#9 ) + (byte*) main::charset4#10 ← phi( main::@1/(byte*) main::charset4#9 ) + (byte[]) bits_count#7 ← phi( main::@1/(byte[]) bits_count#1 ) + (byte*) main::chargen1#4 ← phi( main::@1/(byte*) main::chargen1#0 ) + (byte*) main::chargen#7 ← phi( main::@1/(byte*) main::chargen#2 ) + (byte) main::bits_gen#10 ← phi( main::@1/(byte) main::bits_gen#0 ) + (byte~) main::$12 ← (byte) main::bits_gen#10 + (byte) 1 + (byte) main::bits_gen#2 ← (byte~) main::$12 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte*) D018#7 ← phi( main::@2/(byte*) D018#9 main::@8/(byte*) D018#10 ) + (byte*) SCREEN#6 ← phi( main::@2/(byte*) SCREEN#8 main::@8/(byte*) SCREEN#9 ) + (byte*) PROCPORT#6 ← phi( main::@2/(byte*) PROCPORT#8 main::@8/(byte*) PROCPORT#9 ) + (byte*) CHARGEN#5 ← phi( main::@2/(byte*) CHARGEN#7 main::@8/(byte*) CHARGEN#8 ) + (byte*) main::charset4#5 ← phi( main::@2/(byte*) main::charset4#7 main::@8/(byte*) main::charset4#8 ) + (byte[]) bits_count#3 ← phi( main::@2/(byte[]) bits_count#2 main::@8/(byte[]) bits_count#8 ) + (byte*) main::chargen1#2 ← phi( main::@2/(byte*) main::chargen1#1 main::@8/(byte*) main::chargen1#5 ) + (byte*) main::chargen#4 ← phi( main::@2/(byte*) main::chargen#3 main::@8/(byte*) main::chargen#8 ) + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte~) main::$25 ← (byte) main::bits_gen#11 << (byte) 1 + (byte) main::bits_gen#3 ← (byte~) main::$25 + (byte~) main::$26 ← * (byte*) main::chargen#4 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#2 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte~) main::$33 ← (byte[]) bits_count#3 *idx (byte~) main::$32 + (byte) main::bits#2 ← (byte~) main::$33 + (boolean~) main::$35 ← (byte) main::bits#2 < (byte) 2 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte*) D018#10 ← phi( main::@2/(byte*) D018#9 ) + (byte*) SCREEN#9 ← phi( main::@2/(byte*) SCREEN#8 ) + (byte*) PROCPORT#9 ← phi( main::@2/(byte*) PROCPORT#8 ) + (byte*) CHARGEN#8 ← phi( main::@2/(byte*) CHARGEN#7 ) + (byte*) main::charset4#8 ← phi( main::@2/(byte*) main::charset4#7 ) + (byte[]) bits_count#8 ← phi( main::@2/(byte[]) bits_count#2 ) + (byte*) main::chargen1#5 ← phi( main::@2/(byte*) main::chargen1#1 ) + (byte*) main::chargen#8 ← phi( main::@2/(byte*) main::chargen#3 ) + (byte) main::bits_gen#12 ← phi( main::@2/(byte) main::bits_gen#1 ) + (byte~) main::$24 ← (byte) main::bits_gen#12 + (byte) 1 + (byte) main::bits_gen#4 ← (byte~) main::$24 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte*) D018#6 ← phi( main::@3/(byte*) D018#7 main::@9/(byte*) D018#8 ) + (byte*) SCREEN#5 ← phi( main::@3/(byte*) SCREEN#6 main::@9/(byte*) SCREEN#7 ) + (byte*) PROCPORT#5 ← phi( main::@3/(byte*) PROCPORT#6 main::@9/(byte*) PROCPORT#7 ) + (byte*) CHARGEN#4 ← phi( main::@3/(byte*) CHARGEN#5 main::@9/(byte*) CHARGEN#6 ) + (byte*) main::charset4#4 ← phi( main::@3/(byte*) main::charset4#5 main::@9/(byte*) main::charset4#6 ) + (byte[]) bits_count#4 ← phi( main::@3/(byte[]) bits_count#3 main::@9/(byte[]) bits_count#9 ) + (byte*) main::chargen1#3 ← phi( main::@3/(byte*) main::chargen1#2 main::@9/(byte*) main::chargen1#6 ) + (byte*) main::chargen#5 ← phi( main::@3/(byte*) main::chargen#4 main::@9/(byte*) main::chargen#9 ) + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#3 main::@9/(byte) main::bits_gen#6 ) + (byte~) main::$37 ← (byte) main::bits_gen#13 << (byte) 1 + (byte) main::bits_gen#5 ← (byte~) main::$37 + (byte~) main::$38 ← * (byte*) main::chargen#5 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#3 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte~) main::$44 ← (byte[]) bits_count#4 *idx (byte~) main::$43 + (byte) main::bits#3 ← (byte~) main::$44 + (boolean~) main::$46 ← (byte) main::bits#3 < (byte) 2 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte*) D018#8 ← phi( main::@3/(byte*) D018#7 ) + (byte*) SCREEN#7 ← phi( main::@3/(byte*) SCREEN#6 ) + (byte*) PROCPORT#7 ← phi( main::@3/(byte*) PROCPORT#6 ) + (byte*) CHARGEN#6 ← phi( main::@3/(byte*) CHARGEN#5 ) + (byte*) main::charset4#6 ← phi( main::@3/(byte*) main::charset4#5 ) + (byte[]) bits_count#9 ← phi( main::@3/(byte[]) bits_count#3 ) + (byte*) main::chargen1#6 ← phi( main::@3/(byte*) main::chargen1#2 ) + (byte*) main::chargen#9 ← phi( main::@3/(byte*) main::chargen#4 ) + (byte) main::bits_gen#14 ← phi( main::@3/(byte) main::bits_gen#3 ) + (byte~) main::$36 ← (byte) main::bits_gen#14 + (byte) 1 + (byte) main::bits_gen#6 ← (byte~) main::$36 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte*) D018#4 ← phi( main::@10/(byte*) D018#5 main::@4/(byte*) D018#6 ) + (byte*) SCREEN#3 ← phi( main::@10/(byte*) SCREEN#4 main::@4/(byte*) SCREEN#5 ) + (byte*) PROCPORT#3 ← phi( main::@10/(byte*) PROCPORT#4 main::@4/(byte*) PROCPORT#5 ) + (byte[]) bits_count#6 ← phi( main::@10/(byte[]) bits_count#10 main::@4/(byte[]) bits_count#4 ) + (byte*) CHARGEN#2 ← phi( main::@10/(byte*) CHARGEN#3 main::@4/(byte*) CHARGEN#4 ) + (byte*) main::chargen#6 ← phi( main::@10/(byte*) main::chargen#10 main::@4/(byte*) main::chargen#5 ) + (byte*) main::charset4#2 ← phi( main::@10/(byte*) main::charset4#3 main::@4/(byte*) main::charset4#4 ) + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#5 ) + (byte~) main::$48 ← (byte) main::bits_gen#15 << (byte) 1 + (byte) main::bits_gen#7 ← (byte~) main::$48 + *((byte*) main::charset4#2) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#2 + (byte*~) main::$49 ← (byte*) main::chargen#6 + (byte) 2 + (byte*) main::chargen#1 ← (byte*~) main::$49 + (byte*~) main::$50 ← (byte*) CHARGEN#2 + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen#1 < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte*) D018#5 ← phi( main::@4/(byte*) D018#6 ) + (byte*) SCREEN#4 ← phi( main::@4/(byte*) SCREEN#5 ) + (byte*) PROCPORT#4 ← phi( main::@4/(byte*) PROCPORT#5 ) + (byte[]) bits_count#10 ← phi( main::@4/(byte[]) bits_count#4 ) + (byte*) CHARGEN#3 ← phi( main::@4/(byte*) CHARGEN#4 ) + (byte*) main::chargen#10 ← phi( main::@4/(byte*) main::chargen#5 ) + (byte*) main::charset4#3 ← phi( main::@4/(byte*) main::charset4#4 ) + (byte) main::bits_gen#16 ← phi( main::@4/(byte) main::bits_gen#5 ) + (byte~) main::$47 ← (byte) main::bits_gen#16 + (byte) 1 + (byte) main::bits_gen#8 ← (byte~) main::$47 + to:main::@5 +main::@11: scope:[main] from main::@5 + (byte*) D018#3 ← phi( main::@5/(byte*) D018#4 ) + (byte*) SCREEN#2 ← phi( main::@5/(byte*) SCREEN#3 ) + (byte*) PROCPORT#2 ← phi( main::@5/(byte*) PROCPORT#3 ) + *((byte*) PROCPORT#2) ← (byte) 55 + (byte) main::i#0 ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#2 ← phi( main::@11/(byte*) D018#3 main::@6/(byte*) D018#2 ) + (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#2 main::@6/(byte*) SCREEN#1 ) + (byte) main::i#2 ← phi( main::@11/(byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$52 ← (byte) main::i#1 != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + (byte*) D018#1 ← phi( main::@6/(byte*) D018#2 ) + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +Not aliassing across scopes: main::chargen#0 CHARGEN#1 +Not aliassing across scopes: main::charset4#0 CHARSET4#1 +Alias (byte*) PROCPORT#0 = (byte*) PROCPORT#1 +Alias (byte*) CHARGEN#0 = (byte*) CHARGEN#1 +Alias (byte*) CHARSET4#0 = (byte*) CHARSET4#1 +Alias (byte[]) bits_count#0 = (byte[]) bits_count#5 +Alias (byte*) SCREEN#0 = (byte*) SCREEN#12 +Alias (byte*) D018#0 = (byte*) D018#13 +Alias (byte*) main::chargen1#0 = (byte*~) main::$0 (byte*) main::chargen1#4 +Alias (byte) main::bits#0 = (byte~) main::$9 +Alias (byte) main::bits_gen#1 = (byte~) main::$13 (byte) main::bits_gen#12 +Alias (byte) main::bits#1 = (byte~) main::$21 +Alias (byte) main::bits_gen#0 = (byte) main::bits_gen#10 +Alias (byte*) main::chargen#2 = (byte*) main::chargen#7 +Alias (byte[]) bits_count#1 = (byte[]) bits_count#7 +Alias (byte*) main::charset4#10 = (byte*) main::charset4#9 +Alias (byte*) CHARGEN#10 = (byte*) CHARGEN#9 +Alias (byte*) PROCPORT#10 = (byte*) PROCPORT#11 +Alias (byte*) SCREEN#10 = (byte*) SCREEN#11 +Alias (byte*) D018#11 = (byte*) D018#12 +Alias (byte) main::bits_gen#2 = (byte~) main::$12 +Alias (byte) main::bits_gen#14 = (byte) main::bits_gen#3 (byte~) main::$25 +Alias (byte) main::bits#2 = (byte~) main::$33 +Alias (byte*) main::chargen#3 = (byte*) main::chargen#8 +Alias (byte*) main::chargen1#1 = (byte*) main::chargen1#5 +Alias (byte[]) bits_count#2 = (byte[]) bits_count#8 +Alias (byte*) main::charset4#7 = (byte*) main::charset4#8 +Alias (byte*) CHARGEN#7 = (byte*) CHARGEN#8 +Alias (byte*) PROCPORT#8 = (byte*) PROCPORT#9 +Alias (byte*) SCREEN#8 = (byte*) SCREEN#9 +Alias (byte*) D018#10 = (byte*) D018#9 +Alias (byte) main::bits_gen#4 = (byte~) main::$24 +Alias (byte) main::bits_gen#16 = (byte) main::bits_gen#5 (byte~) main::$37 +Alias (byte) main::bits#3 = (byte~) main::$44 +Alias (byte*) main::chargen#4 = (byte*) main::chargen#9 +Alias (byte*) main::chargen1#2 = (byte*) main::chargen1#6 +Alias (byte[]) bits_count#3 = (byte[]) bits_count#9 +Alias (byte*) main::charset4#5 = (byte*) main::charset4#6 +Alias (byte*) CHARGEN#5 = (byte*) CHARGEN#6 +Alias (byte*) PROCPORT#6 = (byte*) PROCPORT#7 +Alias (byte*) SCREEN#6 = (byte*) SCREEN#7 +Alias (byte*) D018#7 = (byte*) D018#8 +Alias (byte) main::bits_gen#6 = (byte~) main::$36 +Alias (byte) main::bits_gen#7 = (byte~) main::$48 +Alias (byte*) main::chargen#1 = (byte*~) main::$49 +Alias (byte*) main::charset4#3 = (byte*) main::charset4#4 +Alias (byte*) main::chargen#10 = (byte*) main::chargen#5 +Alias (byte*) CHARGEN#3 = (byte*) CHARGEN#4 +Alias (byte[]) bits_count#10 = (byte[]) bits_count#4 +Alias (byte*) PROCPORT#4 = (byte*) PROCPORT#5 +Alias (byte*) SCREEN#4 = (byte*) SCREEN#5 +Alias (byte*) D018#5 = (byte*) D018#6 +Alias (byte) main::bits_gen#8 = (byte~) main::$47 +Alias (byte*) PROCPORT#2 = (byte*) PROCPORT#3 +Alias (byte*) SCREEN#2 = (byte*) SCREEN#3 +Alias (byte*) D018#3 = (byte*) D018#4 +Alias (byte*) D018#1 = (byte*) D018#2 +Succesful SSA optimization Pass2AliasElimination +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN#0 ← (word) 1024 + (byte*) CHARSET#0 ← (word) 8192 + (byte*) CHARGEN#0 ← (word) 53248 + (byte*) PROCPORT#0 ← (byte) 1 + (byte*) D018#0 ← (word) 53272 + (byte*) CHARSET4#0 ← (word) 10240 + (byte[]) bits_count#0 ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + call main param-assignment + to:@end +main: scope:[main] from @begin + *((byte*) PROCPORT#0) ← (byte) 50 + (byte*) main::chargen#0 ← (byte*) CHARGEN#0 + (byte*) main::charset4#0 ← (byte*) CHARSET4#0 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) D018#11 ← phi( main/(byte*) D018#0 main::@5/(byte*) D018#3 ) + (byte*) SCREEN#10 ← phi( main/(byte*) SCREEN#0 main::@5/(byte*) SCREEN#2 ) + (byte*) PROCPORT#10 ← phi( main/(byte*) PROCPORT#0 main::@5/(byte*) PROCPORT#2 ) + (byte*) CHARGEN#10 ← phi( main/(byte*) CHARGEN#0 main::@5/(byte*) CHARGEN#2 ) + (byte*) main::charset4#10 ← phi( main/(byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte[]) bits_count#1 ← phi( main/(byte[]) bits_count#0 main::@5/(byte[]) bits_count#6 ) + (byte*) main::chargen#2 ← phi( main/(byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte) main::bits_gen#0 ← (byte) 0 + (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte) main::bits#0 ← (byte[]) bits_count#1 *idx (byte~) main::$8 + (boolean~) main::$11 ← (byte) main::bits#0 < (byte) 2 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte*) D018#10 ← phi( main::@1/(byte*) D018#11 main::@7/(byte*) D018#11 ) + (byte*) SCREEN#8 ← phi( main::@1/(byte*) SCREEN#10 main::@7/(byte*) SCREEN#10 ) + (byte*) PROCPORT#8 ← phi( main::@1/(byte*) PROCPORT#10 main::@7/(byte*) PROCPORT#10 ) + (byte*) CHARGEN#7 ← phi( main::@1/(byte*) CHARGEN#10 main::@7/(byte*) CHARGEN#10 ) + (byte*) main::charset4#7 ← phi( main::@1/(byte*) main::charset4#10 main::@7/(byte*) main::charset4#10 ) + (byte[]) bits_count#2 ← phi( main::@1/(byte[]) bits_count#1 main::@7/(byte[]) bits_count#1 ) + (byte*) main::chargen1#1 ← phi( main::@1/(byte*) main::chargen1#0 main::@7/(byte*) main::chargen1#0 ) + (byte*) main::chargen#3 ← phi( main::@1/(byte*) main::chargen#2 main::@7/(byte*) main::chargen#2 ) + (byte) main::bits_gen#9 ← phi( main::@1/(byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) + (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 + (byte~) main::$14 ← * (byte*) main::chargen#3 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#1 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte) main::bits#1 ← (byte[]) bits_count#2 *idx (byte~) main::$20 + (boolean~) main::$23 ← (byte) main::bits#1 < (byte) 2 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte) main::bits_gen#2 ← (byte) main::bits_gen#0 + (byte) 1 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte*) D018#7 ← phi( main::@2/(byte*) D018#10 main::@8/(byte*) D018#10 ) + (byte*) SCREEN#6 ← phi( main::@2/(byte*) SCREEN#8 main::@8/(byte*) SCREEN#8 ) + (byte*) PROCPORT#6 ← phi( main::@2/(byte*) PROCPORT#8 main::@8/(byte*) PROCPORT#8 ) + (byte*) CHARGEN#5 ← phi( main::@2/(byte*) CHARGEN#7 main::@8/(byte*) CHARGEN#7 ) + (byte*) main::charset4#5 ← phi( main::@2/(byte*) main::charset4#7 main::@8/(byte*) main::charset4#7 ) + (byte[]) bits_count#3 ← phi( main::@2/(byte[]) bits_count#2 main::@8/(byte[]) bits_count#2 ) + (byte*) main::chargen1#2 ← phi( main::@2/(byte*) main::chargen1#1 main::@8/(byte*) main::chargen1#1 ) + (byte*) main::chargen#4 ← phi( main::@2/(byte*) main::chargen#3 main::@8/(byte*) main::chargen#3 ) + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 + (byte~) main::$26 ← * (byte*) main::chargen#4 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#2 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte) main::bits#2 ← (byte[]) bits_count#3 *idx (byte~) main::$32 + (boolean~) main::$35 ← (byte) main::bits#2 < (byte) 2 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte*) D018#5 ← phi( main::@3/(byte*) D018#7 main::@9/(byte*) D018#7 ) + (byte*) SCREEN#4 ← phi( main::@3/(byte*) SCREEN#6 main::@9/(byte*) SCREEN#6 ) + (byte*) PROCPORT#4 ← phi( main::@3/(byte*) PROCPORT#6 main::@9/(byte*) PROCPORT#6 ) + (byte*) CHARGEN#3 ← phi( main::@3/(byte*) CHARGEN#5 main::@9/(byte*) CHARGEN#5 ) + (byte*) main::charset4#3 ← phi( main::@3/(byte*) main::charset4#5 main::@9/(byte*) main::charset4#5 ) + (byte[]) bits_count#10 ← phi( main::@3/(byte[]) bits_count#3 main::@9/(byte[]) bits_count#3 ) + (byte*) main::chargen1#3 ← phi( main::@3/(byte*) main::chargen1#2 main::@9/(byte*) main::chargen1#2 ) + (byte*) main::chargen#10 ← phi( main::@3/(byte*) main::chargen#4 main::@9/(byte*) main::chargen#4 ) + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) + (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 + (byte~) main::$38 ← * (byte*) main::chargen#10 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#3 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte) main::bits#3 ← (byte[]) bits_count#10 *idx (byte~) main::$43 + (boolean~) main::$46 ← (byte) main::bits#3 < (byte) 2 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte*) D018#3 ← phi( main::@10/(byte*) D018#5 main::@4/(byte*) D018#5 ) + (byte*) SCREEN#2 ← phi( main::@10/(byte*) SCREEN#4 main::@4/(byte*) SCREEN#4 ) + (byte*) PROCPORT#2 ← phi( main::@10/(byte*) PROCPORT#4 main::@4/(byte*) PROCPORT#4 ) + (byte[]) bits_count#6 ← phi( main::@10/(byte[]) bits_count#10 main::@4/(byte[]) bits_count#10 ) + (byte*) CHARGEN#2 ← phi( main::@10/(byte*) CHARGEN#3 main::@4/(byte*) CHARGEN#3 ) + (byte*) main::chargen#6 ← phi( main::@10/(byte*) main::chargen#10 main::@4/(byte*) main::chargen#10 ) + (byte*) main::charset4#2 ← phi( main::@10/(byte*) main::charset4#3 main::@4/(byte*) main::charset4#3 ) + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) + (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 + *((byte*) main::charset4#2) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#2 + (byte*) main::chargen#1 ← (byte*) main::chargen#6 + (byte) 2 + (byte*~) main::$50 ← (byte*) CHARGEN#2 + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen#1 < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((byte*) PROCPORT#2) ← (byte) 55 + (byte) main::i#0 ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#1 ← phi( main::@11/(byte*) D018#3 main::@6/(byte*) D018#1 ) + (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#2 main::@6/(byte*) SCREEN#1 ) + (byte) main::i#2 ← phi( main::@11/(byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$52 ← (byte) main::i#1 != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +Not aliassing across scopes: main::chargen#0 CHARGEN#0 +Not aliassing across scopes: main::charset4#0 CHARSET4#0 +Redundant Phi (byte*) main::chargen#3 (byte*) main::chargen#2 +Redundant Phi (byte*) main::chargen1#1 (byte*) main::chargen1#0 +Redundant Phi (byte[]) bits_count#2 (byte[]) bits_count#1 +Redundant Phi (byte*) main::charset4#7 (byte*) main::charset4#10 +Redundant Phi (byte*) CHARGEN#7 (byte*) CHARGEN#10 +Redundant Phi (byte*) PROCPORT#8 (byte*) PROCPORT#10 +Redundant Phi (byte*) SCREEN#8 (byte*) SCREEN#10 +Redundant Phi (byte*) D018#10 (byte*) D018#11 +Redundant Phi (byte*) main::chargen#4 (byte*) main::chargen#3 +Redundant Phi (byte*) main::chargen1#2 (byte*) main::chargen1#1 +Redundant Phi (byte[]) bits_count#3 (byte[]) bits_count#2 +Redundant Phi (byte*) main::charset4#5 (byte*) main::charset4#7 +Redundant Phi (byte*) CHARGEN#5 (byte*) CHARGEN#7 +Redundant Phi (byte*) PROCPORT#6 (byte*) PROCPORT#8 +Redundant Phi (byte*) SCREEN#6 (byte*) SCREEN#8 +Redundant Phi (byte*) D018#7 (byte*) D018#10 +Redundant Phi (byte*) main::chargen#10 (byte*) main::chargen#4 +Redundant Phi (byte*) main::chargen1#3 (byte*) main::chargen1#2 +Redundant Phi (byte[]) bits_count#10 (byte[]) bits_count#3 +Redundant Phi (byte*) main::charset4#3 (byte*) main::charset4#5 +Redundant Phi (byte*) CHARGEN#3 (byte*) CHARGEN#5 +Redundant Phi (byte*) PROCPORT#4 (byte*) PROCPORT#6 +Redundant Phi (byte*) SCREEN#4 (byte*) SCREEN#6 +Redundant Phi (byte*) D018#5 (byte*) D018#7 +Redundant Phi (byte*) main::charset4#2 (byte*) main::charset4#3 +Redundant Phi (byte*) main::chargen#6 (byte*) main::chargen#10 +Redundant Phi (byte*) CHARGEN#2 (byte*) CHARGEN#3 +Redundant Phi (byte[]) bits_count#6 (byte[]) bits_count#10 +Redundant Phi (byte*) PROCPORT#2 (byte*) PROCPORT#4 +Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#4 +Redundant Phi (byte*) D018#3 (byte*) D018#5 +Succesful SSA optimization Pass2RedundantPhiElimination +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN#0 ← (word) 1024 + (byte*) CHARSET#0 ← (word) 8192 + (byte*) CHARGEN#0 ← (word) 53248 + (byte*) PROCPORT#0 ← (byte) 1 + (byte*) D018#0 ← (word) 53272 + (byte*) CHARSET4#0 ← (word) 10240 + (byte[]) bits_count#0 ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + call main param-assignment + to:@end +main: scope:[main] from @begin + *((byte*) PROCPORT#0) ← (byte) 50 + (byte*) main::chargen#0 ← (byte*) CHARGEN#0 + (byte*) main::charset4#0 ← (byte*) CHARSET4#0 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) D018#11 ← phi( main/(byte*) D018#0 main::@5/(byte*) D018#11 ) + (byte*) SCREEN#10 ← phi( main/(byte*) SCREEN#0 main::@5/(byte*) SCREEN#10 ) + (byte*) PROCPORT#10 ← phi( main/(byte*) PROCPORT#0 main::@5/(byte*) PROCPORT#10 ) + (byte*) CHARGEN#10 ← phi( main/(byte*) CHARGEN#0 main::@5/(byte*) CHARGEN#10 ) + (byte*) main::charset4#10 ← phi( main/(byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte[]) bits_count#1 ← phi( main/(byte[]) bits_count#0 main::@5/(byte[]) bits_count#1 ) + (byte*) main::chargen#2 ← phi( main/(byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte) main::bits_gen#0 ← (byte) 0 + (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte) main::bits#0 ← (byte[]) bits_count#1 *idx (byte~) main::$8 + (boolean~) main::$11 ← (byte) main::bits#0 < (byte) 2 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte) main::bits_gen#9 ← phi( main::@1/(byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) + (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 + (byte~) main::$14 ← * (byte*) main::chargen#2 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#0 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte) main::bits#1 ← (byte[]) bits_count#1 *idx (byte~) main::$20 + (boolean~) main::$23 ← (byte) main::bits#1 < (byte) 2 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte) main::bits_gen#2 ← (byte) main::bits_gen#0 + (byte) 1 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 + (byte~) main::$26 ← * (byte*) main::chargen#2 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#0 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte) main::bits#2 ← (byte[]) bits_count#1 *idx (byte~) main::$32 + (boolean~) main::$35 ← (byte) main::bits#2 < (byte) 2 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) + (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 + (byte~) main::$38 ← * (byte*) main::chargen#2 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#0 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte) main::bits#3 ← (byte[]) bits_count#1 *idx (byte~) main::$43 + (boolean~) main::$46 ← (byte) main::bits#3 < (byte) 2 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) + (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 + *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 + (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 + (byte*~) main::$50 ← (byte*) CHARGEN#10 + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen#1 < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((byte*) PROCPORT#10) ← (byte) 55 + (byte) main::i#0 ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#1 ← phi( main::@11/(byte*) D018#11 main::@6/(byte*) D018#1 ) + (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#10 main::@6/(byte*) SCREEN#1 ) + (byte) main::i#2 ← phi( main::@11/(byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$52 ← (byte) main::i#1 != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +Self Phi Eliminated (byte[]) bits_count#1 +Self Phi Eliminated (byte*) CHARGEN#10 +Self Phi Eliminated (byte*) PROCPORT#10 +Self Phi Eliminated (byte*) SCREEN#10 +Self Phi Eliminated (byte*) D018#11 +Self Phi Eliminated (byte*) SCREEN#1 +Self Phi Eliminated (byte*) D018#1 +Succesful SSA optimization Pass2SelfPhiElimination +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN#0 ← (word) 1024 + (byte*) CHARSET#0 ← (word) 8192 + (byte*) CHARGEN#0 ← (word) 53248 + (byte*) PROCPORT#0 ← (byte) 1 + (byte*) D018#0 ← (word) 53272 + (byte*) CHARSET4#0 ← (word) 10240 + (byte[]) bits_count#0 ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + call main param-assignment + to:@end +main: scope:[main] from @begin + *((byte*) PROCPORT#0) ← (byte) 50 + (byte*) main::chargen#0 ← (byte*) CHARGEN#0 + (byte*) main::charset4#0 ← (byte*) CHARSET4#0 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) D018#11 ← phi( main/(byte*) D018#0 ) + (byte*) SCREEN#10 ← phi( main/(byte*) SCREEN#0 ) + (byte*) PROCPORT#10 ← phi( main/(byte*) PROCPORT#0 ) + (byte*) CHARGEN#10 ← phi( main/(byte*) CHARGEN#0 ) + (byte*) main::charset4#10 ← phi( main/(byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte[]) bits_count#1 ← phi( main/(byte[]) bits_count#0 ) + (byte*) main::chargen#2 ← phi( main/(byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte) main::bits_gen#0 ← (byte) 0 + (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte) main::bits#0 ← (byte[]) bits_count#1 *idx (byte~) main::$8 + (boolean~) main::$11 ← (byte) main::bits#0 < (byte) 2 + if((boolean~) main::$11) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte) main::bits_gen#9 ← phi( main::@1/(byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) + (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 + (byte~) main::$14 ← * (byte*) main::chargen#2 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#0 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte) main::bits#1 ← (byte[]) bits_count#1 *idx (byte~) main::$20 + (boolean~) main::$23 ← (byte) main::bits#1 < (byte) 2 + if((boolean~) main::$23) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte) main::bits_gen#2 ← (byte) main::bits_gen#0 + (byte) 1 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 + (byte~) main::$26 ← * (byte*) main::chargen#2 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#0 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte) main::bits#2 ← (byte[]) bits_count#1 *idx (byte~) main::$32 + (boolean~) main::$35 ← (byte) main::bits#2 < (byte) 2 + if((boolean~) main::$35) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) + (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 + (byte~) main::$38 ← * (byte*) main::chargen#2 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#0 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte) main::bits#3 ← (byte[]) bits_count#1 *idx (byte~) main::$43 + (boolean~) main::$46 ← (byte) main::bits#3 < (byte) 2 + if((boolean~) main::$46) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) + (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 + *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 + (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 + (byte*~) main::$50 ← (byte*) CHARGEN#10 + (word) 2048 + (boolean~) main::$51 ← (byte*) main::chargen#1 < (byte*~) main::$50 + if((boolean~) main::$51) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((byte*) PROCPORT#10) ← (byte) 55 + (byte) main::i#0 ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#1 ← phi( main::@11/(byte*) D018#11 ) + (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#10 ) + (byte) main::i#2 ← phi( main::@11/(byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$52 ← (byte) main::i#1 != (byte) 0 + if((boolean~) main::$52) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +Simple Condition (boolean~) main::$11 if((byte) main::bits#0<(byte) 2) goto main::@2 +Simple Condition (boolean~) main::$23 if((byte) main::bits#1<(byte) 2) goto main::@3 +Simple Condition (boolean~) main::$35 if((byte) main::bits#2<(byte) 2) goto main::@4 +Simple Condition (boolean~) main::$46 if((byte) main::bits#3<(byte) 2) goto main::@5 +Simple Condition (boolean~) main::$51 if((byte*) main::chargen#1<(byte*~) main::$50) goto main::@1 +Simple Condition (boolean~) main::$52 if((byte) main::i#1!=(byte) 0) goto main::@6 +Succesful SSA optimization Pass2ConditionalJumpSimplification +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN#0 ← (word) 1024 + (byte*) CHARSET#0 ← (word) 8192 + (byte*) CHARGEN#0 ← (word) 53248 + (byte*) PROCPORT#0 ← (byte) 1 + (byte*) D018#0 ← (word) 53272 + (byte*) CHARSET4#0 ← (word) 10240 + (byte[]) bits_count#0 ← { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } + call main param-assignment + to:@end +main: scope:[main] from @begin + *((byte*) PROCPORT#0) ← (byte) 50 + (byte*) main::chargen#0 ← (byte*) CHARGEN#0 + (byte*) main::charset4#0 ← (byte*) CHARSET4#0 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) D018#11 ← phi( main/(byte*) D018#0 ) + (byte*) SCREEN#10 ← phi( main/(byte*) SCREEN#0 ) + (byte*) PROCPORT#10 ← phi( main/(byte*) PROCPORT#0 ) + (byte*) CHARGEN#10 ← phi( main/(byte*) CHARGEN#0 ) + (byte*) main::charset4#10 ← phi( main/(byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte[]) bits_count#1 ← phi( main/(byte[]) bits_count#0 ) + (byte*) main::chargen#2 ← phi( main/(byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte) main::bits_gen#0 ← (byte) 0 + (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte) main::bits#0 ← (byte[]) bits_count#1 *idx (byte~) main::$8 + if((byte) main::bits#0<(byte) 2) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte) main::bits_gen#9 ← phi( main::@1/(byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) + (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 + (byte~) main::$14 ← * (byte*) main::chargen#2 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#0 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte) main::bits#1 ← (byte[]) bits_count#1 *idx (byte~) main::$20 + if((byte) main::bits#1<(byte) 2) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte) main::bits_gen#2 ← (byte) main::bits_gen#0 + (byte) 1 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 + (byte~) main::$26 ← * (byte*) main::chargen#2 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#0 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte) main::bits#2 ← (byte[]) bits_count#1 *idx (byte~) main::$32 + if((byte) main::bits#2<(byte) 2) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) + (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 + (byte~) main::$38 ← * (byte*) main::chargen#2 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#0 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte) main::bits#3 ← (byte[]) bits_count#1 *idx (byte~) main::$43 + if((byte) main::bits#3<(byte) 2) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) + (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 + *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 + (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 + (byte*~) main::$50 ← (byte*) CHARGEN#10 + (word) 2048 + if((byte*) main::chargen#1<(byte*~) main::$50) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((byte*) PROCPORT#10) ← (byte) 55 + (byte) main::i#0 ← (byte) 0 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#1 ← phi( main::@11/(byte*) D018#11 ) + (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#10 ) + (byte) main::i#2 ← phi( main::@11/(byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + if((byte) main::i#1!=(byte) 0) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +Constant (const byte*) SCREEN#0 = 1024 +Constant (const byte*) CHARSET#0 = 8192 +Constant (const byte*) CHARGEN#0 = 53248 +Constant (const byte*) PROCPORT#0 = 1 +Constant (const byte*) D018#0 = 53272 +Constant (const byte*) CHARSET4#0 = 10240 +Constant (const byte[]) bits_count#0 = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 } +Constant (const byte) main::bits_gen#0 = 0 +Constant (const byte) main::i#0 = 0 +Succesful SSA optimization Pass2ConstantIdentification +CONTROL FLOW GRAPH +@begin: scope:[] from + call main param-assignment + to:@end +main: scope:[main] from @begin + *((const byte*) PROCPORT#0) ← (byte) 50 + (byte*) main::chargen#0 ← (const byte*) CHARGEN#0 + (byte*) main::charset4#0 ← (const byte*) CHARSET4#0 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) D018#11 ← phi( main/(const byte*) D018#0 ) + (byte*) SCREEN#10 ← phi( main/(const byte*) SCREEN#0 ) + (byte*) PROCPORT#10 ← phi( main/(const byte*) PROCPORT#0 ) + (byte*) CHARGEN#10 ← phi( main/(const byte*) CHARGEN#0 ) + (byte*) main::charset4#10 ← phi( main/(byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte[]) bits_count#1 ← phi( main/(const byte[]) bits_count#0 ) + (byte*) main::chargen#2 ← phi( main/(byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte) main::bits#0 ← (byte[]) bits_count#1 *idx (byte~) main::$8 + if((byte) main::bits#0<(byte) 2) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte) main::bits_gen#9 ← phi( main::@1/(const byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) + (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 + (byte~) main::$14 ← * (byte*) main::chargen#2 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#0 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte) main::bits#1 ← (byte[]) bits_count#1 *idx (byte~) main::$20 + if((byte) main::bits#1<(byte) 2) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + (byte) main::bits_gen#2 ← (const byte) main::bits_gen#0 + (byte) 1 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 + (byte~) main::$26 ← * (byte*) main::chargen#2 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#0 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte) main::bits#2 ← (byte[]) bits_count#1 *idx (byte~) main::$32 + if((byte) main::bits#2<(byte) 2) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) + (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 + (byte~) main::$38 ← * (byte*) main::chargen#2 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#0 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte) main::bits#3 ← (byte[]) bits_count#1 *idx (byte~) main::$43 + if((byte) main::bits#3<(byte) 2) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) + (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 + *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 + (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 + (byte*~) main::$50 ← (byte*) CHARGEN#10 + (word) 2048 + if((byte*) main::chargen#1<(byte*~) main::$50) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((byte*) PROCPORT#10) ← (byte) 55 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#1 ← phi( main::@11/(byte*) D018#11 ) + (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#10 ) + (byte) main::i#2 ← phi( main::@11/(const byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + if((byte) main::i#1!=(byte) 0) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +Constant (const byte*) main::chargen#0 = CHARGEN#0 +Constant (const byte*) main::charset4#0 = CHARSET4#0 +Constant (const byte[]) bits_count#1 = bits_count#0 +Constant (const byte*) CHARGEN#10 = CHARGEN#0 +Constant (const byte*) PROCPORT#10 = PROCPORT#0 +Constant (const byte*) SCREEN#10 = SCREEN#0 +Constant (const byte*) D018#11 = D018#0 +Constant (const byte) main::bits_gen#2 = main::bits_gen#0+1 +Succesful SSA optimization Pass2ConstantIdentification +CONTROL FLOW GRAPH +@begin: scope:[] from + call main param-assignment + to:@end +main: scope:[main] from @begin + *((const byte*) PROCPORT#0) ← (byte) 50 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) main::charset4#10 ← phi( main/(const byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte*) main::chargen#2 ← phi( main/(const byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte) main::bits#0 ← (const byte[]) bits_count#1 *idx (byte~) main::$8 + if((byte) main::bits#0<(byte) 2) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte) main::bits_gen#9 ← phi( main::@1/(const byte) main::bits_gen#0 main::@7/(const byte) main::bits_gen#2 ) + (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 + (byte~) main::$14 ← * (byte*) main::chargen#2 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#0 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte) main::bits#1 ← (const byte[]) bits_count#1 *idx (byte~) main::$20 + if((byte) main::bits#1<(byte) 2) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 + (byte~) main::$26 ← * (byte*) main::chargen#2 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#0 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte) main::bits#2 ← (const byte[]) bits_count#1 *idx (byte~) main::$32 + if((byte) main::bits#2<(byte) 2) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) + (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 + (byte~) main::$38 ← * (byte*) main::chargen#2 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#0 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte) main::bits#3 ← (const byte[]) bits_count#1 *idx (byte~) main::$43 + if((byte) main::bits#3<(byte) 2) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) + (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 + *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 + (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 + (byte*~) main::$50 ← (const byte*) CHARGEN#10 + (word) 2048 + if((byte*) main::chargen#1<(byte*~) main::$50) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((const byte*) PROCPORT#10) ← (byte) 55 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte*) D018#1 ← phi( main::@11/(const byte*) D018#11 ) + (byte*) SCREEN#1 ← phi( main::@11/(const byte*) SCREEN#10 ) + (byte) main::i#2 ← phi( main::@11/(const byte) main::i#0 main::@6/(byte) main::i#1 ) + *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + if((byte) main::i#1!=(byte) 0) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +Constant (const byte*) main::$50 = CHARGEN#10+2048 +Constant (const byte*) SCREEN#1 = SCREEN#10 +Constant (const byte*) D018#1 = D018#11 +Succesful SSA optimization Pass2ConstantIdentification +CONTROL FLOW GRAPH +@begin: scope:[] from + call main param-assignment + to:@end +main: scope:[main] from @begin + *((const byte*) PROCPORT#0) ← (byte) 50 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) main::charset4#10 ← phi( main/(const byte*) main::charset4#0 main::@5/(byte*) main::charset4#1 ) + (byte*) main::chargen#2 ← phi( main/(const byte*) main::chargen#0 main::@5/(byte*) main::chargen#1 ) + (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte) main::bits#0 ← (const byte[]) bits_count#1 *idx (byte~) main::$8 + if((byte) main::bits#0<(byte) 2) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte) main::bits_gen#9 ← phi( main::@1/(const byte) main::bits_gen#0 main::@7/(const byte) main::bits_gen#2 ) + (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 + (byte~) main::$14 ← * (byte*) main::chargen#2 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#0 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte) main::bits#1 ← (const byte[]) bits_count#1 *idx (byte~) main::$20 + if((byte) main::bits#1<(byte) 2) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 + (byte~) main::$26 ← * (byte*) main::chargen#2 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#0 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte) main::bits#2 ← (const byte[]) bits_count#1 *idx (byte~) main::$32 + if((byte) main::bits#2<(byte) 2) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) + (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 + (byte~) main::$38 ← * (byte*) main::chargen#2 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#0 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte) main::bits#3 ← (const byte[]) bits_count#1 *idx (byte~) main::$43 + if((byte) main::bits#3<(byte) 2) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) + (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 + *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 + (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 + if((byte*) main::chargen#1<(const byte*) main::$50) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((const byte*) PROCPORT#10) ← (byte) 55 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte) main::i#2 ← phi( main::@11/(const byte) main::i#0 main::@6/(byte) main::i#1 ) + *((const byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + if((byte) main::i#1!=(byte) 0) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((const byte*) D018#1) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +Multiple usages for variable. Not optimizing sub-constant (byte*) main::chargen#2 +Multiple usages for variable. Not optimizing sub-constant (byte) main::bits_gen#1 +Multiple usages for variable. Not optimizing sub-constant (byte) main::bits_gen#14 +Multiple usages for variable. Not optimizing sub-constant (byte*) main::chargen#2 +Multiple usages for variable. Not optimizing sub-constant (byte) main::bits_gen#16 +Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2 +Not culling empty block because it shares successor with its predecessor. (label) main::@7 +Multiple usages for variable. Not optimizing sub-constant (byte*) main::chargen#2 +Multiple usages for variable. Not optimizing sub-constant (byte) main::bits_gen#1 +Multiple usages for variable. Not optimizing sub-constant (byte) main::bits_gen#14 +Multiple usages for variable. Not optimizing sub-constant (byte*) main::chargen#2 +Multiple usages for variable. Not optimizing sub-constant (byte) main::bits_gen#16 +Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2 +Constant inlined main::$50 = (const byte*) CHARGEN#0+(word) 2048 +Constant inlined SCREEN#1 = (const byte*) SCREEN#0 +Constant inlined PROCPORT#10 = (const byte*) PROCPORT#0 +Constant inlined bits_count#1 = (const byte[]) bits_count#0 +Constant inlined D018#11 = (const byte*) D018#0 +Constant inlined CHARGEN#10 = (const byte*) CHARGEN#0 +Constant inlined main::bits_gen#0 = (byte) 0 +Constant inlined main::bits_gen#2 = (byte) 0+(byte) 1 +Constant inlined SCREEN#10 = (const byte*) SCREEN#0 +Constant inlined main::charset4#0 = (const byte*) CHARSET4#0 +Constant inlined D018#1 = (const byte*) D018#0 +Constant inlined main::chargen#0 = (const byte*) CHARGEN#0 +Constant inlined main::i#0 = (byte) 0 +Succesful SSA optimization Pass2ConstantInlining +CONTROL FLOW GRAPH +@begin: scope:[] from + call main param-assignment + to:@end +main: scope:[main] from @begin + *((const byte*) PROCPORT#0) ← (byte) 50 + to:main::@1 +main::@1: scope:[main] from main main::@5 + (byte*) main::charset4#10 ← phi( main/(const byte*) CHARSET4#0 main::@5/(byte*) main::charset4#1 ) + (byte*) main::chargen#2 ← phi( main/(const byte*) CHARGEN#0 main::@5/(byte*) main::chargen#1 ) + (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 + if((byte) main::bits#0<(byte) 2) goto main::@2 + to:main::@7 +main::@2: scope:[main] from main::@1 main::@7 + (byte) main::bits_gen#9 ← phi( main::@1/(byte) 0 main::@7/(byte) 0+(byte) 1 ) + (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 + (byte~) main::$14 ← * (byte*) main::chargen#2 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#0 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 + if((byte) main::bits#1<(byte) 2) goto main::@3 + to:main::@8 +main::@7: scope:[main] from main::@1 + to:main::@2 +main::@3: scope:[main] from main::@2 main::@8 + (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) + (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 + (byte~) main::$26 ← * (byte*) main::chargen#2 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#0 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 + if((byte) main::bits#2<(byte) 2) goto main::@4 + to:main::@9 +main::@8: scope:[main] from main::@2 + (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 + to:main::@3 +main::@4: scope:[main] from main::@3 main::@9 + (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) + (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 + (byte~) main::$38 ← * (byte*) main::chargen#2 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#0 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 + if((byte) main::bits#3<(byte) 2) goto main::@5 + to:main::@10 +main::@9: scope:[main] from main::@3 + (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 + to:main::@4 +main::@5: scope:[main] from main::@10 main::@4 + (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) + (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 + *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 + (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 + if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 + to:main::@11 +main::@10: scope:[main] from main::@4 + (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 + to:main::@5 +main::@11: scope:[main] from main::@5 + *((const byte*) PROCPORT#0) ← (byte) 55 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + (byte) main::i#2 ← phi( main::@11/(byte) 0 main::@6/(byte) main::i#1 ) + *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + if((byte) main::i#1!=(byte) 0) goto main::@6 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((const byte*) D018#0) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +@end: scope:[] from @begin + +FINAL SYMBOL TABLE +(label) @begin +(label) @end +(byte*) CHARGEN +(const byte*) CHARGEN#0 = (word) 53248 +(byte*) CHARSET +(const byte*) CHARSET#0 = (word) 8192 +(byte*) CHARSET4 +(const byte*) CHARSET4#0 = (word) 10240 +(byte*) D018 +(const byte*) D018#0 = (word) 53272 +(byte*) PROCPORT +(const byte*) PROCPORT#0 = (byte) 1 +(byte*) SCREEN +(const byte*) SCREEN#0 = (word) 1024 +(byte[]) bits_count +(const byte[]) bits_count#0 = { (byte) 0, (byte) 1, (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 1, (byte) 2, (byte) 2, (byte) 3, (byte) 2, (byte) 3, (byte) 3, (byte) 4 } +(void()) main() +(byte~) main::$1 +(byte~) main::$14 +(byte~) main::$15 +(byte~) main::$16 +(byte~) main::$17 +(byte~) main::$18 +(byte~) main::$19 +(byte~) main::$2 +(byte~) main::$20 +(byte~) main::$26 +(byte~) main::$27 +(byte~) main::$28 +(byte~) main::$29 +(byte~) main::$3 +(byte~) main::$30 +(byte~) main::$31 +(byte~) main::$32 +(byte~) main::$38 +(byte~) main::$39 +(byte~) main::$4 +(byte~) main::$40 +(byte~) main::$41 +(byte~) main::$42 +(byte~) main::$43 +(byte~) main::$5 +(byte~) main::$6 +(byte~) main::$7 +(byte~) main::$8 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::bits +(byte) main::bits#0 +(byte) main::bits#1 +(byte) main::bits#2 +(byte) main::bits#3 +(byte) main::bits_gen +(byte) main::bits_gen#1 +(byte) main::bits_gen#11 +(byte) main::bits_gen#13 +(byte) main::bits_gen#14 +(byte) main::bits_gen#15 +(byte) main::bits_gen#16 +(byte) main::bits_gen#4 +(byte) main::bits_gen#6 +(byte) main::bits_gen#7 +(byte) main::bits_gen#8 +(byte) main::bits_gen#9 +(byte*) main::chargen +(byte*) main::chargen#1 +(byte*) main::chargen#2 +(byte*) main::chargen1 +(byte*) main::chargen1#0 +(byte*) main::charset4 +(byte*) main::charset4#1 +(byte*) main::charset4#10 +(byte) main::i +(byte) main::i#1 +(byte) main::i#2 + +Block Sequence Planned @begin @end main main::@1 main::@7 main::@2 main::@8 main::@3 main::@9 main::@4 main::@10 main::@5 main::@11 main::@6 main::@12 main::@return +Added new block during phi lifting main::@13(between main::@5 and main::@1) +Added new block during phi lifting main::@14(between main::@2 and main::@3) +Added new block during phi lifting main::@15(between main::@3 and main::@4) +Added new block during phi lifting main::@16(between main::@4 and main::@5) +Added new block during phi lifting main::@17(between main::@6 and main::@6) +Block Sequence Planned @begin @end main main::@1 main::@7 main::@2 main::@8 main::@3 main::@9 main::@4 main::@10 main::@5 main::@11 main::@6 main::@12 main::@return main::@17 main::@13 main::@16 main::@15 main::@14 +CONTROL FLOW GRAPH - PHI LIFTED +@begin: scope:[] from + call main param-assignment + to:@end +@end: scope:[] from @begin +main: scope:[main] from @begin + *((const byte*) PROCPORT#0) ← (byte) 50 + to:main::@1 +main::@1: scope:[main] from main main::@13 + (byte*) main::charset4#10 ← phi( main/(const byte*) CHARSET4#0 main::@13/(byte*~) main::charset4#11 ) + (byte*) main::chargen#2 ← phi( main/(const byte*) CHARGEN#0 main::@13/(byte*~) main::chargen#11 ) + (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 + (byte~) main::$1 ← * (byte*) main::chargen#2 + (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 + (byte~) main::$3 ← * (byte*) main::chargen1#0 + (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 + (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 + (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 + (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 + (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 + (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 + if((byte) main::bits#0<(byte) 2) goto main::@2 + to:main::@7 +main::@7: scope:[main] from main::@1 + to:main::@2 +main::@2: scope:[main] from main::@1 main::@7 + (byte) main::bits_gen#9 ← phi( main::@1/(byte) 0 main::@7/(byte) 0+(byte) 1 ) + (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 + (byte~) main::$14 ← * (byte*) main::chargen#2 + (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 + (byte~) main::$16 ← * (byte*) main::chargen1#0 + (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 + (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 + (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 + (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 + (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 + if((byte) main::bits#1<(byte) 2) goto main::@14 + to:main::@8 +main::@8: scope:[main] from main::@2 + (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 + (byte~) main::bits_gen#18 ← (byte) main::bits_gen#4 + to:main::@3 +main::@3: scope:[main] from main::@14 main::@8 + (byte) main::bits_gen#11 ← phi( main::@14/(byte~) main::bits_gen#17 main::@8/(byte~) main::bits_gen#18 ) + (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 + (byte~) main::$26 ← * (byte*) main::chargen#2 + (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 + (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 + (byte~) main::$29 ← * (byte*) main::chargen1#0 + (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 + (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 + (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 + (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 + if((byte) main::bits#2<(byte) 2) goto main::@15 + to:main::@9 +main::@9: scope:[main] from main::@3 + (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 + (byte~) main::bits_gen#20 ← (byte) main::bits_gen#6 + to:main::@4 +main::@4: scope:[main] from main::@15 main::@9 + (byte) main::bits_gen#13 ← phi( main::@15/(byte~) main::bits_gen#19 main::@9/(byte~) main::bits_gen#20 ) + (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 + (byte~) main::$38 ← * (byte*) main::chargen#2 + (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 + (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 + (byte~) main::$41 ← * (byte*) main::chargen1#0 + (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 + (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 + (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 + if((byte) main::bits#3<(byte) 2) goto main::@16 + to:main::@10 +main::@10: scope:[main] from main::@4 + (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 + (byte~) main::bits_gen#21 ← (byte) main::bits_gen#8 + to:main::@5 +main::@5: scope:[main] from main::@10 main::@16 + (byte) main::bits_gen#15 ← phi( main::@10/(byte~) main::bits_gen#21 main::@16/(byte~) main::bits_gen#22 ) + (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 + *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 + (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 + (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 + if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@13 + to:main::@11 +main::@11: scope:[main] from main::@5 + *((const byte*) PROCPORT#0) ← (byte) 55 + to:main::@6 +main::@6: scope:[main] from main::@11 main::@17 + (byte) main::i#2 ← phi( main::@11/(byte) 0 main::@17/(byte~) main::i#3 ) + *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + if((byte) main::i#1!=(byte) 0) goto main::@17 + to:main::@12 +main::@12: scope:[main] from main::@6 + *((const byte*) D018#0) ← (byte) 25 + to:main::@return +main::@return: scope:[main] from main::@12 + return + to:@return +main::@17: scope:[main] from main::@6 + (byte~) main::i#3 ← (byte) main::i#1 + to:main::@6 +main::@13: scope:[main] from main::@5 + (byte*~) main::chargen#11 ← (byte*) main::chargen#1 + (byte*~) main::charset4#11 ← (byte*) main::charset4#1 + to:main::@1 +main::@16: scope:[main] from main::@4 + (byte~) main::bits_gen#22 ← (byte) main::bits_gen#16 + to:main::@5 +main::@15: scope:[main] from main::@3 + (byte~) main::bits_gen#19 ← (byte) main::bits_gen#14 + to:main::@4 +main::@14: scope:[main] from main::@2 + (byte~) main::bits_gen#17 ← (byte) main::bits_gen#1 + to:main::@3 + +CALL GRAPH +Calls in [] to 0:main + +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +CONTROL FLOW GRAPH - LIVE RANGES FOUND +@begin: scope:[] from + [0] call main param-assignment [ ] + to:@end +@end: scope:[] from @begin +main: scope:[main] from @begin + [1] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] + to:main::@1 +main::@1: scope:[main] from main main::@13 + [2] (byte*) main::charset4#10 ← phi( main/(const byte*) CHARSET4#0 main::@13/(byte*~) main::charset4#11 ) [ main::chargen#2 main::charset4#10 ] + [2] (byte*) main::chargen#2 ← phi( main/(const byte*) CHARGEN#0 main::@13/(byte*~) main::chargen#11 ) [ main::chargen#2 main::charset4#10 ] + [3] (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] + [4] (byte~) main::$1 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$1 ] + [5] (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 ] + [6] (byte~) main::$3 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$3 ] + [7] (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$4 ] + [8] (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] + [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] + [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] + [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] + [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] + [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] + to:main::@7 +main::@7: scope:[main] from main::@1 + to:main::@2 +main::@2: scope:[main] from main::@1 main::@7 + [14] (byte) main::bits_gen#9 ← phi( main::@1/(byte) 0 main::@7/(byte) 0+(byte) 1 ) [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#9 ] + [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] + [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] + [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] + [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] + [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] + [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] + [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] + [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] + [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] + [24] if((byte) main::bits#1<(byte) 2) goto main::@14 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] + to:main::@8 +main::@8: scope:[main] from main::@2 + [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] + [26] (byte~) main::bits_gen#18 ← (byte) main::bits_gen#4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#18 ] + to:main::@3 +main::@3: scope:[main] from main::@14 main::@8 + [27] (byte) main::bits_gen#11 ← phi( main::@14/(byte~) main::bits_gen#17 main::@8/(byte~) main::bits_gen#18 ) [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#11 ] + [28] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] + [29] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] + [30] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] + [31] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] + [32] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] + [33] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] + [34] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] + [35] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] + [36] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] + [37] if((byte) main::bits#2<(byte) 2) goto main::@15 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] + to:main::@9 +main::@9: scope:[main] from main::@3 + [38] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] + [39] (byte~) main::bits_gen#20 ← (byte) main::bits_gen#6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#20 ] + to:main::@4 +main::@4: scope:[main] from main::@15 main::@9 + [40] (byte) main::bits_gen#13 ← phi( main::@15/(byte~) main::bits_gen#19 main::@9/(byte~) main::bits_gen#20 ) [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#13 ] + [41] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] + [42] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] + [43] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] + [44] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] + [45] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] + [46] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] + [47] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] + [48] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] + [49] if((byte) main::bits#3<(byte) 2) goto main::@16 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] + to:main::@10 +main::@10: scope:[main] from main::@4 + [50] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] + [51] (byte~) main::bits_gen#21 ← (byte) main::bits_gen#8 [ main::chargen#2 main::charset4#10 main::bits_gen#21 ] + to:main::@5 +main::@5: scope:[main] from main::@10 main::@16 + [52] (byte) main::bits_gen#15 ← phi( main::@10/(byte~) main::bits_gen#21 main::@16/(byte~) main::bits_gen#22 ) [ main::chargen#2 main::charset4#10 main::bits_gen#15 ] + [53] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] + [54] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] + [55] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] + [56] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::charset4#1 main::chargen#1 ] + [57] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@13 [ main::charset4#1 main::chargen#1 ] + to:main::@11 +main::@11: scope:[main] from main::@5 + [58] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] + to:main::@6 +main::@6: scope:[main] from main::@11 main::@17 + [59] (byte) main::i#2 ← phi( main::@11/(byte) 0 main::@17/(byte~) main::i#3 ) [ main::i#2 ] + [60] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] + [61] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] + [62] if((byte) main::i#1!=(byte) 0) goto main::@17 [ main::i#1 ] + to:main::@12 +main::@12: scope:[main] from main::@6 + [63] *((const byte*) D018#0) ← (byte) 25 [ ] + to:main::@return +main::@return: scope:[main] from main::@12 + [64] return [ ] + to:@return +main::@17: scope:[main] from main::@6 + [65] (byte~) main::i#3 ← (byte) main::i#1 [ main::i#3 ] + to:main::@6 +main::@13: scope:[main] from main::@5 + [66] (byte*~) main::chargen#11 ← (byte*) main::chargen#1 [ main::chargen#11 main::charset4#1 ] + [67] (byte*~) main::charset4#11 ← (byte*) main::charset4#1 [ main::chargen#11 main::charset4#11 ] + to:main::@1 +main::@16: scope:[main] from main::@4 + [68] (byte~) main::bits_gen#22 ← (byte) main::bits_gen#16 [ main::chargen#2 main::charset4#10 main::bits_gen#22 ] + to:main::@5 +main::@15: scope:[main] from main::@3 + [69] (byte~) main::bits_gen#19 ← (byte) main::bits_gen#14 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#19 ] + to:main::@4 +main::@14: scope:[main] from main::@2 + [70] (byte~) main::bits_gen#17 ← (byte) main::bits_gen#1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#17 ] + to:main::@3 + +Created 7 initial phi equivalence classes +Coalesced [26] main::bits_gen#18 ← main::bits_gen#4 +Coalesced [39] main::bits_gen#20 ← main::bits_gen#6 +Coalesced [51] main::bits_gen#21 ← main::bits_gen#8 +Coalesced [65] main::i#3 ← main::i#1 +Coalesced [66] main::chargen#11 ← main::chargen#1 +Coalesced [67] main::charset4#11 ← main::charset4#1 +Coalesced [68] main::bits_gen#22 ← main::bits_gen#16 +Coalesced [69] main::bits_gen#19 ← main::bits_gen#14 +Coalesced [70] main::bits_gen#17 ← main::bits_gen#1 +Coalesced down to 7 phi equivalence classes +Not culling empty block because it shares successor with its predecessor. (label) main::@7 +Culled Empty Block (label) main::@17 +Culled Empty Block (label) main::@13 +Culled Empty Block (label) main::@16 +Culled Empty Block (label) main::@15 +Culled Empty Block (label) main::@14 +Block Sequence Planned @begin @end main main::@1 main::@7 main::@2 main::@8 main::@3 main::@9 main::@4 main::@10 main::@5 main::@11 main::@6 main::@12 main::@return +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +Propagating live ranges... +CONTROL FLOW GRAPH - PHI MEM COALESCED +@begin: scope:[] from + [0] call main param-assignment [ ] + to:@end +@end: scope:[] from @begin +main: scope:[main] from @begin + [1] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] + to:main::@1 +main::@1: scope:[main] from main main::@5 + [2] (byte*) main::charset4#10 ← phi( main/(const byte*) CHARSET4#0 main::@5/(byte*) main::charset4#1 ) [ main::chargen#2 main::charset4#10 ] + [2] (byte*) main::chargen#2 ← phi( main/(const byte*) CHARGEN#0 main::@5/(byte*) main::chargen#1 ) [ main::chargen#2 main::charset4#10 ] + [3] (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] + [4] (byte~) main::$1 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$1 ] + [5] (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 ] + [6] (byte~) main::$3 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$3 ] + [7] (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$4 ] + [8] (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] + [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] + [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] + [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] + [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] + [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] + to:main::@7 +main::@7: scope:[main] from main::@1 + to:main::@2 +main::@2: scope:[main] from main::@1 main::@7 + [14] (byte) main::bits_gen#9 ← phi( main::@1/(byte) 0 main::@7/(byte) 0+(byte) 1 ) [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#9 ] + [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] + [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] + [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] + [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] + [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] + [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] + [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] + [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] + [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] + [24] if((byte) main::bits#1<(byte) 2) goto main::@3 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] + to:main::@8 +main::@8: scope:[main] from main::@2 + [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] + to:main::@3 +main::@3: scope:[main] from main::@2 main::@8 + [26] (byte) main::bits_gen#11 ← phi( main::@2/(byte) main::bits_gen#1 main::@8/(byte) main::bits_gen#4 ) [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#11 ] + [27] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] + [28] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] + [29] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] + [30] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] + [31] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] + [32] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] + [33] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] + [34] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] + [35] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] + [36] if((byte) main::bits#2<(byte) 2) goto main::@4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] + to:main::@9 +main::@9: scope:[main] from main::@3 + [37] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] + to:main::@4 +main::@4: scope:[main] from main::@3 main::@9 + [38] (byte) main::bits_gen#13 ← phi( main::@3/(byte) main::bits_gen#14 main::@9/(byte) main::bits_gen#6 ) [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#13 ] + [39] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] + [40] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] + [41] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] + [42] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] + [43] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] + [44] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] + [45] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] + [46] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] + [47] if((byte) main::bits#3<(byte) 2) goto main::@5 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] + to:main::@10 +main::@10: scope:[main] from main::@4 + [48] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] + to:main::@5 +main::@5: scope:[main] from main::@10 main::@4 + [49] (byte) main::bits_gen#15 ← phi( main::@10/(byte) main::bits_gen#8 main::@4/(byte) main::bits_gen#16 ) [ main::chargen#2 main::charset4#10 main::bits_gen#15 ] + [50] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] + [51] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] + [52] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] + [53] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::chargen#1 main::charset4#1 ] + [54] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] + to:main::@11 +main::@11: scope:[main] from main::@5 + [55] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] + to:main::@6 +main::@6: scope:[main] from main::@11 main::@6 + [56] (byte) main::i#2 ← phi( main::@11/(byte) 0 main::@6/(byte) main::i#1 ) [ main::i#2 ] + [57] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] + [58] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] + [59] if((byte) main::i#1!=(byte) 0) goto main::@6 [ main::i#1 ] + to:main::@12 +main::@12: scope:[main] from main::@6 + [60] *((const byte*) D018#0) ← (byte) 25 [ ] + to:main::@return +main::@return: scope:[main] from main::@12 + [61] return [ ] + to:@return + +DOMINATORS +@begin dominated by @begin +@end dominated by @end @begin +main dominated by @begin main +main::@1 dominated by @begin main::@1 main +main::@7 dominated by @begin main::@1 main main::@7 +main::@2 dominated by @begin main::@2 main::@1 main +main::@8 dominated by @begin main::@2 main::@1 main main::@8 +main::@3 dominated by @begin main::@2 main::@1 main::@3 main +main::@9 dominated by @begin main::@2 main::@1 main::@3 main main::@9 +main::@4 dominated by @begin main::@2 main::@1 main::@4 main::@3 main +main::@10 dominated by @begin main::@2 main::@1 main::@4 main::@3 main main::@10 +main::@5 dominated by @begin main::@2 main::@1 main::@4 main::@3 main::@5 main +main::@11 dominated by @begin main::@2 main::@1 main::@4 main::@3 main main::@5 main::@11 +main::@6 dominated by @begin main::@2 main::@1 main::@4 main::@3 main::@6 main main::@5 main::@11 +main::@12 dominated by @begin main::@2 main::@1 main::@4 main::@3 main::@6 main main::@5 main::@12 main::@11 +main::@return dominated by @begin main::@2 main::@1 main::@4 main::@3 main::@6 main main::@5 main::@12 main::@return main::@11 + +Found back edge: Loop head: main::@1 tails: main::@5 blocks: null +Found back edge: Loop head: main::@6 tails: main::@6 blocks: null +Populated: Loop head: main::@1 tails: main::@5 blocks: main::@5 main::@10 main::@4 main::@3 main::@9 main::@2 main::@8 main::@1 main::@7 +Populated: Loop head: main::@6 tails: main::@6 blocks: main::@6 +NATURAL LOOPS +Loop head: main::@1 tails: main::@5 blocks: main::@5 main::@10 main::@4 main::@3 main::@9 main::@2 main::@8 main::@1 main::@7 +Loop head: main::@6 tails: main::@6 blocks: main::@6 + +Found 0 loops in scope [] +Found 2 loops in scope [main] + Loop head: main::@1 tails: main::@5 blocks: main::@5 main::@10 main::@4 main::@3 main::@9 main::@2 main::@8 main::@1 main::@7 + Loop head: main::@6 tails: main::@6 blocks: main::@6 +NATURAL LOOPS WITH DEPTH +Loop head: main::@1 tails: main::@5 blocks: main::@5 main::@10 main::@4 main::@3 main::@9 main::@2 main::@8 main::@1 main::@7 depth: 1 +Loop head: main::@6 tails: main::@6 blocks: main::@6 depth: 1 + + +VARIABLE REGISTER WEIGHTS +(byte*) CHARGEN +(byte*) CHARSET +(byte*) CHARSET4 +(byte*) D018 +(byte*) PROCPORT +(byte*) SCREEN +(byte[]) bits_count +(void()) main() +(byte~) main::$1 22.0 +(byte~) main::$14 22.0 +(byte~) main::$15 5.5 +(byte~) main::$16 22.0 +(byte~) main::$17 22.0 +(byte~) main::$18 22.0 +(byte~) main::$19 22.0 +(byte~) main::$2 5.5 +(byte~) main::$20 22.0 +(byte~) main::$26 22.0 +(byte~) main::$27 22.0 +(byte~) main::$28 5.5 +(byte~) main::$29 22.0 +(byte~) main::$3 22.0 +(byte~) main::$30 22.0 +(byte~) main::$31 22.0 +(byte~) main::$32 22.0 +(byte~) main::$38 22.0 +(byte~) main::$39 22.0 +(byte~) main::$4 22.0 +(byte~) main::$40 7.333333333333333 +(byte~) main::$41 22.0 +(byte~) main::$42 22.0 +(byte~) main::$43 22.0 +(byte~) main::$5 22.0 +(byte~) main::$6 22.0 +(byte~) main::$7 22.0 +(byte~) main::$8 22.0 +(byte) main::bits +(byte) main::bits#0 22.0 +(byte) main::bits#1 22.0 +(byte) main::bits#2 22.0 +(byte) main::bits#3 22.0 +(byte) main::bits_gen +(byte) main::bits_gen#1 3.3000000000000003 +(byte) main::bits_gen#11 33.0 +(byte) main::bits_gen#13 33.0 +(byte) main::bits_gen#14 3.3000000000000003 +(byte) main::bits_gen#15 33.0 +(byte) main::bits_gen#16 3.666666666666667 +(byte) main::bits_gen#4 22.0 +(byte) main::bits_gen#6 22.0 +(byte) main::bits_gen#7 22.0 +(byte) main::bits_gen#8 22.0 +(byte) main::bits_gen#9 11.0 +(byte*) main::chargen +(byte*) main::chargen#1 16.5 +(byte*) main::chargen#2 1.5098039215686279 +(byte*) main::chargen1 +(byte*) main::chargen1#0 1.375 +(byte*) main::charset4 +(byte*) main::charset4#1 7.333333333333333 +(byte*) main::charset4#10 0.66 +(byte) main::i +(byte) main::i#1 16.5 +(byte) main::i#2 22.0 + +Initial phi equivalence classes +[ main::chargen#2 main::chargen#1 ] +[ main::charset4#10 main::charset4#1 ] +[ main::bits_gen#9 ] +[ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] +[ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ] +[ main::bits_gen#15 main::bits_gen#8 main::bits_gen#16 ] +[ main::i#2 main::i#1 ] +Added variable main::chargen1#0 to zero page equivalence class [ main::chargen1#0 ] +Added variable main::$1 to zero page equivalence class [ main::$1 ] +Added variable main::$2 to zero page equivalence class [ main::$2 ] +Added variable main::$3 to zero page equivalence class [ main::$3 ] +Added variable main::$4 to zero page equivalence class [ main::$4 ] +Added variable main::$5 to zero page equivalence class [ main::$5 ] +Added variable main::$6 to zero page equivalence class [ main::$6 ] +Added variable main::$7 to zero page equivalence class [ main::$7 ] +Added variable main::$8 to zero page equivalence class [ main::$8 ] +Added variable main::bits#0 to zero page equivalence class [ main::bits#0 ] +Added variable main::$14 to zero page equivalence class [ main::$14 ] +Added variable main::$15 to zero page equivalence class [ main::$15 ] +Added variable main::$16 to zero page equivalence class [ main::$16 ] +Added variable main::$17 to zero page equivalence class [ main::$17 ] +Added variable main::$18 to zero page equivalence class [ main::$18 ] +Added variable main::$19 to zero page equivalence class [ main::$19 ] +Added variable main::$20 to zero page equivalence class [ main::$20 ] +Added variable main::bits#1 to zero page equivalence class [ main::bits#1 ] +Added variable main::$26 to zero page equivalence class [ main::$26 ] +Added variable main::$27 to zero page equivalence class [ main::$27 ] +Added variable main::$28 to zero page equivalence class [ main::$28 ] +Added variable main::$29 to zero page equivalence class [ main::$29 ] +Added variable main::$30 to zero page equivalence class [ main::$30 ] +Added variable main::$31 to zero page equivalence class [ main::$31 ] +Added variable main::$32 to zero page equivalence class [ main::$32 ] +Added variable main::bits#2 to zero page equivalence class [ main::bits#2 ] +Added variable main::$38 to zero page equivalence class [ main::$38 ] +Added variable main::$39 to zero page equivalence class [ main::$39 ] +Added variable main::$40 to zero page equivalence class [ main::$40 ] +Added variable main::$41 to zero page equivalence class [ main::$41 ] +Added variable main::$42 to zero page equivalence class [ main::$42 ] +Added variable main::$43 to zero page equivalence class [ main::$43 ] +Added variable main::bits#3 to zero page equivalence class [ main::bits#3 ] +Added variable main::bits_gen#7 to zero page equivalence class [ main::bits_gen#7 ] +Complete equivalence classes +[ main::chargen#2 main::chargen#1 ] +[ main::charset4#10 main::charset4#1 ] +[ main::bits_gen#9 ] +[ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] +[ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ] +[ main::bits_gen#15 main::bits_gen#8 main::bits_gen#16 ] +[ main::i#2 main::i#1 ] +[ main::chargen1#0 ] +[ main::$1 ] +[ main::$2 ] +[ main::$3 ] +[ main::$4 ] +[ main::$5 ] +[ main::$6 ] +[ main::$7 ] +[ main::$8 ] +[ main::bits#0 ] +[ main::$14 ] +[ main::$15 ] +[ main::$16 ] +[ main::$17 ] +[ main::$18 ] +[ main::$19 ] +[ main::$20 ] +[ main::bits#1 ] +[ main::$26 ] +[ main::$27 ] +[ main::$28 ] +[ main::$29 ] +[ main::$30 ] +[ main::$31 ] +[ main::$32 ] +[ main::bits#2 ] +[ main::$38 ] +[ main::$39 ] +[ main::$40 ] +[ main::$41 ] +[ main::$42 ] +[ main::$43 ] +[ main::bits#3 ] +[ main::bits_gen#7 ] +Allocated zp ZP_PTR_BYTE:2 [ main::chargen#2 main::chargen#1 ] +Allocated zp ZP_PTR_BYTE:4 [ main::charset4#10 main::charset4#1 ] +Allocated zp ZP_BYTE:6 [ main::bits_gen#9 ] +Allocated zp ZP_BYTE:7 [ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] +Allocated zp ZP_BYTE:8 [ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ] +Allocated zp ZP_BYTE:9 [ main::bits_gen#15 main::bits_gen#8 main::bits_gen#16 ] +Allocated zp ZP_BYTE:10 [ main::i#2 main::i#1 ] +Allocated zp ZP_PTR_BYTE:11 [ main::chargen1#0 ] +Allocated zp ZP_BYTE:13 [ main::$1 ] +Allocated zp ZP_BYTE:14 [ main::$2 ] +Allocated zp ZP_BYTE:15 [ main::$3 ] +Allocated zp ZP_BYTE:16 [ main::$4 ] +Allocated zp ZP_BYTE:17 [ main::$5 ] +Allocated zp ZP_BYTE:18 [ main::$6 ] +Allocated zp ZP_BYTE:19 [ main::$7 ] +Allocated zp ZP_BYTE:20 [ main::$8 ] +Allocated zp ZP_BYTE:21 [ main::bits#0 ] +Allocated zp ZP_BYTE:22 [ main::$14 ] +Allocated zp ZP_BYTE:23 [ main::$15 ] +Allocated zp ZP_BYTE:24 [ main::$16 ] +Allocated zp ZP_BYTE:25 [ main::$17 ] +Allocated zp ZP_BYTE:26 [ main::$18 ] +Allocated zp ZP_BYTE:27 [ main::$19 ] +Allocated zp ZP_BYTE:28 [ main::$20 ] +Allocated zp ZP_BYTE:29 [ main::bits#1 ] +Allocated zp ZP_BYTE:30 [ main::$26 ] +Allocated zp ZP_BYTE:31 [ main::$27 ] +Allocated zp ZP_BYTE:32 [ main::$28 ] +Allocated zp ZP_BYTE:33 [ main::$29 ] +Allocated zp ZP_BYTE:34 [ main::$30 ] +Allocated zp ZP_BYTE:35 [ main::$31 ] +Allocated zp ZP_BYTE:36 [ main::$32 ] +Allocated zp ZP_BYTE:37 [ main::bits#2 ] +Allocated zp ZP_BYTE:38 [ main::$38 ] +Allocated zp ZP_BYTE:39 [ main::$39 ] +Allocated zp ZP_BYTE:40 [ main::$40 ] +Allocated zp ZP_BYTE:41 [ main::$41 ] +Allocated zp ZP_BYTE:42 [ main::$42 ] +Allocated zp ZP_BYTE:43 [ main::$43 ] +Allocated zp ZP_BYTE:44 [ main::bits#3 ] +Allocated zp ZP_BYTE:45 [ main::bits_gen#7 ] +INITIAL ASM +//SEG0 Global Constants & labels + .const SCREEN = $400 + .const CHARSET = $2000 + .const CHARGEN = $d000 + .const PROCPORT = 1 + .const D018 = $d018 + .const CHARSET4 = $2800 + bits_count: .byte 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 +//SEG1 @begin +bbegin: +//SEG2 [0] call main param-assignment [ ] + jsr main + jmp bend +//SEG3 @end +bend: +//SEG4 main +main: { + .label _1 = 13 + .label _2 = 14 + .label _3 = 15 + .label _4 = 16 + .label _5 = 17 + .label _6 = 18 + .label _7 = 19 + .label _8 = 20 + .label _14 = 22 + .label _15 = 23 + .label _16 = 24 + .label _17 = 25 + .label _18 = 26 + .label _19 = 27 + .label _20 = 28 + .label _26 = 30 + .label _27 = 31 + .label _28 = 32 + .label _29 = 33 + .label _30 = 34 + .label _31 = 35 + .label _32 = 36 + .label _38 = 38 + .label _39 = 39 + .label _40 = 40 + .label _41 = 41 + .label _42 = 42 + .label _43 = 43 + .label chargen1 = 11 + .label bits = 21 + .label bits_gen = 7 + .label bits_1 = 29 + .label bits_2 = 37 + .label bits_3 = 44 + .label bits_gen_6 = 8 + .label bits_gen_7 = 45 + .label charset4 = 4 + .label chargen = 2 + .label bits_gen_8 = 9 + .label i = 10 + .label bits_gen_9 = 6 + .label bits_gen_13 = 8 + .label bits_gen_14 = 8 + .label bits_gen_15 = 9 + .label bits_gen_16 = 9 + //SEG5 [1] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] -- _star_cowo1=coby2 + lda #$32 + sta PROCPORT + //SEG6 [2] phi from main to main::@1 + b1_from_main: + //SEG7 [2] phi (byte*) main::charset4#10 = (const byte*) CHARSET4#0 -- zpptrby1=cowo1 + lda #CHARSET4 + sta charset4+1 + //SEG8 [2] phi (byte*) main::chargen#2 = (const byte*) CHARGEN#0 -- zpptrby1=cowo1 + lda #CHARGEN + sta chargen+1 + jmp b1 + //SEG9 [2] phi from main::@5 to main::@1 + b1_from_b5: + //SEG10 [2] phi (byte*) main::charset4#10 = (byte*) main::charset4#1 -- register_copy + //SEG11 [2] phi (byte*) main::chargen#2 = (byte*) main::chargen#1 -- register_copy + jmp b1 + //SEG12 main::@1 + b1: + //SEG13 [3] (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- zpptrby1=zpptrby2_plus_1 + lda chargen + clc + adc #1 + sta chargen1 + lda chargen+1 + adc #0 + sta chargen1+1 + //SEG14 [4] (byte~) main::$1 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$1 ] -- zpby1=_star_zpptrby1 + ldy #0 + lda (chargen),y + sta _1 + //SEG15 [5] (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 ] -- zpby1=zpby2_band_coby1 + lda _1 + and #$60 + sta _2 + //SEG16 [6] (byte~) main::$3 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$3 ] -- zpby1=_star_zpptrby1 + ldy #0 + lda (chargen1),y + sta _3 + //SEG17 [7] (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$4 ] -- zpby1=zpby2_band_coby1 + lda _3 + and #$60 + sta _4 + //SEG18 [8] (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] -- zpby1=zpby2_ror_2 + lda _4 + lsr + lsr + sta _5 + //SEG19 [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] -- zpby1=zpby2_bor_zpby3 + lda _2 + ora _5 + sta _6 + //SEG20 [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] -- zpby1=zpby2_ror_1 + lda _6 + lsr + sta _7 + //SEG21 [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] -- zpby1=zpby2_ror_2 + lda _7 + lsr + lsr + sta _8 + //SEG22 [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] -- zpby1=cowo1_staridx_zpby2 + ldx _8 + lda bits_count,x + sta bits + //SEG23 [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- zpby1_lt_coby1_then_la1 + lda bits + cmp #2 + bcc b2_from_b1 + jmp b7 + //SEG24 main::@7 + b7: + //SEG25 [14] phi from main::@7 to main::@2 + b2_from_b7: + //SEG26 [14] phi (byte) main::bits_gen#9 = (byte) 0+(byte) 1 -- zpby1=coby1 + lda #0+1 + sta bits_gen_9 + jmp b2 + //SEG27 [14] phi from main::@1 to main::@2 + b2_from_b1: + //SEG28 [14] phi (byte) main::bits_gen#9 = (byte) 0 -- zpby1=coby1 + lda #0 + sta bits_gen_9 + jmp b2 + //SEG29 main::@2 + b2: + //SEG30 [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- zpby1=zpby2_rol_1 + lda bits_gen_9 + asl + sta bits_gen + //SEG31 [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] -- zpby1=_star_zpptrby1 + ldy #0 + lda (chargen),y + sta _14 + //SEG32 [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] -- zpby1=zpby2_band_coby1 + lda _14 + and #$18 + sta _15 + //SEG33 [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] -- zpby1=_star_zpptrby1 + ldy #0 + lda (chargen1),y + sta _16 + //SEG34 [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] -- zpby1=zpby2_band_coby1 + lda _16 + and #$18 + sta _17 + //SEG35 [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] -- zpby1=zpby2_ror_2 + lda _17 + lsr + lsr + sta _18 + //SEG36 [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] -- zpby1=zpby2_bor_zpby3 + lda _15 + ora _18 + sta _19 + //SEG37 [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] -- zpby1=zpby2_ror_1 + lda _19 + lsr + sta _20 + //SEG38 [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] -- zpby1=cowo1_staridx_zpby2 + ldx _20 + lda bits_count,x + sta bits_1 + //SEG39 [24] if((byte) main::bits#1<(byte) 2) goto main::@3 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- zpby1_lt_coby1_then_la1 + lda bits_1 + cmp #2 + bcc b3_from_b2 + jmp b8 + //SEG40 main::@8 + b8: + //SEG41 [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG42 [26] phi from main::@2 main::@8 to main::@3 + b3_from_b2: + b3_from_b8: + //SEG43 [26] phi (byte) main::bits_gen#11 = (byte) main::bits_gen#1 -- register_copy + jmp b3 + //SEG44 main::@3 + b3: + //SEG45 [27] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- zpby1=zpby2_rol_1 + lda bits_gen + asl + sta bits_gen_14 + //SEG46 [28] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] -- zpby1=_star_zpptrby1 + ldy #0 + lda (chargen),y + sta _26 + //SEG47 [29] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] -- zpby1=zpby2_band_coby1 + lda _26 + and #6 + sta _27 + //SEG48 [30] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] -- zpby1=zpby2_rol_1 + lda _27 + asl + sta _28 + //SEG49 [31] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] -- zpby1=_star_zpptrby1 + ldy #0 + lda (chargen1),y + sta _29 + //SEG50 [32] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] -- zpby1=zpby2_band_coby1 + lda _29 + and #6 + sta _30 + //SEG51 [33] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] -- zpby1=zpby2_ror_1 + lda _30 + lsr + sta _31 + //SEG52 [34] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] -- zpby1=zpby2_bor_zpby3 + lda _28 + ora _31 + sta _32 + //SEG53 [35] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] -- zpby1=cowo1_staridx_zpby2 + ldx _32 + lda bits_count,x + sta bits_2 + //SEG54 [36] if((byte) main::bits#2<(byte) 2) goto main::@4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- zpby1_lt_coby1_then_la1 + lda bits_2 + cmp #2 + bcc b4_from_b3 + jmp b9 + //SEG55 main::@9 + b9: + //SEG56 [37] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] -- zpby1=zpby1_plus_1 + inc bits_gen_6 + //SEG57 [38] phi from main::@3 main::@9 to main::@4 + b4_from_b3: + b4_from_b9: + //SEG58 [38] phi (byte) main::bits_gen#13 = (byte) main::bits_gen#14 -- register_copy + jmp b4 + //SEG59 main::@4 + b4: + //SEG60 [39] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] -- zpby1=zpby2_rol_1 + lda bits_gen_13 + asl + sta bits_gen_16 + //SEG61 [40] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] -- zpby1=_star_zpptrby1 + ldy #0 + lda (chargen),y + sta _38 + //SEG62 [41] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] -- zpby1=zpby2_band_coby1 + lda _38 + and #1 + sta _39 + //SEG63 [42] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] -- zpby1=zpby2_rol_2 + lda _39 + asl + asl + sta _40 + //SEG64 [43] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] -- zpby1=_star_zpptrby1 + ldy #0 + lda (chargen1),y + sta _41 + //SEG65 [44] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] -- zpby1=zpby2_band_coby1 + lda _41 + and #1 + sta _42 + //SEG66 [45] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] -- zpby1=zpby2_bor_zpby3 + lda _40 + ora _42 + sta _43 + //SEG67 [46] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] -- zpby1=cowo1_staridx_zpby2 + ldx _43 + lda bits_count,x + sta bits_3 + //SEG68 [47] if((byte) main::bits#3<(byte) 2) goto main::@5 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] -- zpby1_lt_coby1_then_la1 + lda bits_3 + cmp #2 + bcc b5_from_b4 + jmp b10 + //SEG69 main::@10 + b10: + //SEG70 [48] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] -- zpby1=zpby1_plus_1 + inc bits_gen_8 + //SEG71 [49] phi from main::@10 main::@4 to main::@5 + b5_from_b10: + b5_from_b4: + //SEG72 [49] phi (byte) main::bits_gen#15 = (byte) main::bits_gen#8 -- register_copy + jmp b5 + //SEG73 main::@5 + b5: + //SEG74 [50] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] -- zpby1=zpby2_rol_1 + lda bits_gen_15 + asl + sta bits_gen_7 + //SEG75 [51] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] -- _star_zpptrby1=zpby1 + ldy #0 + lda bits_gen_7 + sta (charset4),y + //SEG76 [52] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] -- zpptrby1=_inc_zpptrby1 + inc charset4 + bne !+ + inc charset4+1 + !: + //SEG77 [53] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::chargen#1 main::charset4#1 ] -- zpptrby1=zpptrby1_plus_coby1 + lda chargen + clc + adc #2 + sta chargen + bcc !+ + inc chargen+1 + !: + //SEG78 [54] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] -- zpptrby1_lt_cowo1_then_la1 + lda chargen+1 + cmp #>CHARGEN+$800 + bcc b1_from_b5 + bne !+ + lda chargen + cmp #CHARSET4 + sta charset4+1 + //SEG8 [2] phi (byte*) main::chargen#2 = (const byte*) CHARGEN#0 -- zpptrby1=cowo1 + lda #CHARGEN + sta chargen+1 + jmp b1 + //SEG9 [2] phi from main::@5 to main::@1 + b1_from_b5: + //SEG10 [2] phi (byte*) main::charset4#10 = (byte*) main::charset4#1 -- register_copy + //SEG11 [2] phi (byte*) main::chargen#2 = (byte*) main::chargen#1 -- register_copy + //SEG12 main::@1 + b1: + //SEG13 [3] (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- zpptrby1=zpptrby2_plus_1 + lda chargen + clc + adc #1 + sta chargen1 + lda chargen+1 + adc #0 + sta chargen1+1 + //SEG14 [4] (byte~) main::$1 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$1 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG15 [5] (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 ] -- zpby1=aby_band_coby1 + and #$60 + sta _2 + //SEG16 [6] (byte~) main::$3 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$3 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen1),y + //SEG17 [7] (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$4 ] -- aby=aby_band_coby1 + and #$60 + //SEG18 [8] (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] -- aby=aby_ror_2 + lsr + lsr + //SEG19 [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] -- aby=zpby1_bor_aby + ora _2 + //SEG20 [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] -- aby=aby_ror_1 + lsr + //SEG21 [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] -- aby=aby_ror_2 + lsr + lsr + //SEG22 [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG23 [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b2_from_b1 + //SEG24 main::@7 + b7: + //SEG25 [14] phi from main::@7 to main::@2 + b2_from_b7: + //SEG26 [14] phi (byte) main::bits_gen#9 = (byte) 0+(byte) 1 -- aby=coby1 + lda #0+1 + jmp b2 + //SEG27 [14] phi from main::@1 to main::@2 + b2_from_b1: + //SEG28 [14] phi (byte) main::bits_gen#9 = (byte) 0 -- aby=coby1 + lda #0 + //SEG29 main::@2 + b2: + //SEG30 [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- zpby1=aby_rol_1 + asl + sta bits_gen + //SEG31 [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG32 [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] -- zpby1=aby_band_coby1 + and #$18 + sta _15 + //SEG33 [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen1),y + //SEG34 [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] -- aby=aby_band_coby1 + and #$18 + //SEG35 [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] -- aby=aby_ror_2 + lsr + lsr + //SEG36 [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] -- aby=zpby1_bor_aby + ora _15 + //SEG37 [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] -- aby=aby_ror_1 + lsr + //SEG38 [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG39 [24] if((byte) main::bits#1<(byte) 2) goto main::@3 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b3_from_b2 + //SEG40 main::@8 + b8: + //SEG41 [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG42 [26] phi from main::@2 main::@8 to main::@3 + b3_from_b2: + b3_from_b8: + //SEG43 [26] phi (byte) main::bits_gen#11 = (byte) main::bits_gen#1 -- register_copy + //SEG44 main::@3 + b3: + //SEG45 [27] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG46 [28] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG47 [29] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] -- aby=aby_band_coby1 + and #6 + //SEG48 [30] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] -- zpby1=aby_rol_1 + asl + sta _28 + //SEG49 [31] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen1),y + //SEG50 [32] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] -- aby=aby_band_coby1 + and #6 + //SEG51 [33] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] -- aby=aby_ror_1 + lsr + //SEG52 [34] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] -- aby=zpby1_bor_aby + ora _28 + //SEG53 [35] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG54 [36] if((byte) main::bits#2<(byte) 2) goto main::@4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b4_from_b3 + //SEG55 main::@9 + b9: + //SEG56 [37] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG57 [38] phi from main::@3 main::@9 to main::@4 + b4_from_b3: + b4_from_b9: + //SEG58 [38] phi (byte) main::bits_gen#13 = (byte) main::bits_gen#14 -- register_copy + //SEG59 main::@4 + b4: + //SEG60 [39] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG61 [40] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG62 [41] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] -- aby=aby_band_coby1 + and #1 + //SEG63 [42] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] -- zpby1=aby_rol_2 + asl + asl + sta _40 + //SEG64 [43] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen1),y + //SEG65 [44] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] -- aby=aby_band_coby1 + and #1 + //SEG66 [45] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] -- aby=zpby1_bor_aby + ora _40 + //SEG67 [46] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG68 [47] if((byte) main::bits#3<(byte) 2) goto main::@5 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b5_from_b4 + //SEG69 main::@10 + b10: + //SEG70 [48] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG71 [49] phi from main::@10 main::@4 to main::@5 + b5_from_b10: + b5_from_b4: + //SEG72 [49] phi (byte) main::bits_gen#15 = (byte) main::bits_gen#8 -- register_copy + //SEG73 main::@5 + b5: + //SEG74 [50] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] -- aby=zpby1_rol_1 + lda bits_gen + asl + //SEG75 [51] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] -- _star_zpptrby1=aby + ldy #0 + sta (charset4),y + //SEG76 [52] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] -- zpptrby1=_inc_zpptrby1 + inc charset4 + bne !+ + inc charset4+1 + !: + //SEG77 [53] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::chargen#1 main::charset4#1 ] -- zpptrby1=zpptrby1_plus_coby1 + lda chargen + clc + adc #2 + sta chargen + bcc !+ + inc chargen+1 + !: + //SEG78 [54] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] -- zpptrby1_lt_cowo1_then_la1 + lda chargen+1 + cmp #>CHARGEN+$800 + bcc b1_from_b5 + bne !+ + lda chargen + cmp #CHARSET4 + sta charset4+1 + //SEG8 [2] phi (byte*) main::chargen#2 = (const byte*) CHARGEN#0 -- zpptrby1=cowo1 + lda #CHARGEN + sta chargen+1 + jmp b1 + //SEG9 [2] phi from main::@5 to main::@1 + b1_from_b5: + //SEG10 [2] phi (byte*) main::charset4#10 = (byte*) main::charset4#1 -- register_copy + //SEG11 [2] phi (byte*) main::chargen#2 = (byte*) main::chargen#1 -- register_copy + //SEG12 main::@1 + b1: + //SEG13 [3] (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- zpptrby1=zpptrby2_plus_1 + lda chargen + clc + adc #1 + sta chargen1 + lda chargen+1 + adc #0 + sta chargen1+1 + //SEG14 [4] (byte~) main::$1 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$1 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG15 [5] (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 ] -- zpby1=aby_band_coby1 + and #$60 + sta _2 + //SEG16 [6] (byte~) main::$3 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$3 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG17 [7] (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$4 ] -- aby=aby_band_coby1 + and #$60 + //SEG18 [8] (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] -- aby=aby_ror_2 + lsr + lsr + //SEG19 [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] -- aby=zpby1_bor_aby + ora _2 + //SEG20 [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] -- aby=aby_ror_1 + lsr + //SEG21 [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] -- aby=aby_ror_2 + lsr + lsr + //SEG22 [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG23 [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b2_from_b1 + //SEG24 main::@7 + b7: + //SEG25 [14] phi from main::@7 to main::@2 + b2_from_b7: + //SEG26 [14] phi (byte) main::bits_gen#9 = (byte) 0+(byte) 1 -- aby=coby1 + lda #0+1 + jmp b2 + //SEG27 [14] phi from main::@1 to main::@2 + b2_from_b1: + //SEG28 [14] phi (byte) main::bits_gen#9 = (byte) 0 -- aby=coby1 + lda #0 + //SEG29 main::@2 + b2: + //SEG30 [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- zpby1=aby_rol_1 + asl + sta bits_gen + //SEG31 [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG32 [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] -- zpby1=aby_band_coby1 + and #$18 + sta _15 + //SEG33 [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG34 [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] -- aby=aby_band_coby1 + and #$18 + //SEG35 [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] -- aby=aby_ror_2 + lsr + lsr + //SEG36 [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] -- aby=zpby1_bor_aby + ora _15 + //SEG37 [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] -- aby=aby_ror_1 + lsr + //SEG38 [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG39 [24] if((byte) main::bits#1<(byte) 2) goto main::@3 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b3_from_b2 + //SEG40 main::@8 + b8: + //SEG41 [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG42 [26] phi from main::@2 main::@8 to main::@3 + b3_from_b2: + b3_from_b8: + //SEG43 [26] phi (byte) main::bits_gen#11 = (byte) main::bits_gen#1 -- register_copy + //SEG44 main::@3 + b3: + //SEG45 [27] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG46 [28] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG47 [29] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] -- aby=aby_band_coby1 + and #6 + //SEG48 [30] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] -- zpby1=aby_rol_1 + asl + sta _28 + //SEG49 [31] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG50 [32] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] -- aby=aby_band_coby1 + and #6 + //SEG51 [33] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] -- aby=aby_ror_1 + lsr + //SEG52 [34] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] -- aby=zpby1_bor_aby + ora _28 + //SEG53 [35] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG54 [36] if((byte) main::bits#2<(byte) 2) goto main::@4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b4_from_b3 + //SEG55 main::@9 + b9: + //SEG56 [37] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG57 [38] phi from main::@3 main::@9 to main::@4 + b4_from_b3: + b4_from_b9: + //SEG58 [38] phi (byte) main::bits_gen#13 = (byte) main::bits_gen#14 -- register_copy + //SEG59 main::@4 + b4: + //SEG60 [39] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG61 [40] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG62 [41] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] -- aby=aby_band_coby1 + and #1 + //SEG63 [42] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] -- zpby1=aby_rol_2 + asl + asl + sta _40 + //SEG64 [43] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG65 [44] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] -- aby=aby_band_coby1 + and #1 + //SEG66 [45] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] -- aby=zpby1_bor_aby + ora _40 + //SEG67 [46] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG68 [47] if((byte) main::bits#3<(byte) 2) goto main::@5 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b5_from_b4 + //SEG69 main::@10 + b10: + //SEG70 [48] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG71 [49] phi from main::@10 main::@4 to main::@5 + b5_from_b10: + b5_from_b4: + //SEG72 [49] phi (byte) main::bits_gen#15 = (byte) main::bits_gen#8 -- register_copy + //SEG73 main::@5 + b5: + //SEG74 [50] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] -- aby=zpby1_rol_1 + lda bits_gen + asl + //SEG75 [51] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] -- _star_zpptrby1=aby + ldy #0 + sta (charset4),y + //SEG76 [52] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] -- zpptrby1=_inc_zpptrby1 + inc charset4 + bne !+ + inc charset4+1 + !: + //SEG77 [53] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::chargen#1 main::charset4#1 ] -- zpptrby1=zpptrby1_plus_coby1 + lda chargen + clc + adc #2 + sta chargen + bcc !+ + inc chargen+1 + !: + //SEG78 [54] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] -- zpptrby1_lt_cowo1_then_la1 + lda chargen+1 + cmp #>CHARGEN+$800 + bcc b1_from_b5 + bne !+ + lda chargen + cmp #CHARSET4 + sta charset4+1 + //SEG8 [2] phi (byte*) main::chargen#2 = (const byte*) CHARGEN#0 -- zpptrby1=cowo1 + lda #CHARGEN + sta chargen+1 + jmp b1 + //SEG9 [2] phi from main::@5 to main::@1 + //SEG10 [2] phi (byte*) main::charset4#10 = (byte*) main::charset4#1 -- register_copy + //SEG11 [2] phi (byte*) main::chargen#2 = (byte*) main::chargen#1 -- register_copy + //SEG12 main::@1 + b1: + //SEG13 [3] (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- zpptrby1=zpptrby2_plus_1 + lda chargen + clc + adc #1 + sta chargen1 + lda chargen+1 + adc #0 + sta chargen1+1 + //SEG14 [4] (byte~) main::$1 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$1 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG15 [5] (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 ] -- zpby1=aby_band_coby1 + and #$60 + sta _2 + //SEG16 [6] (byte~) main::$3 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$3 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG17 [7] (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$4 ] -- aby=aby_band_coby1 + and #$60 + //SEG18 [8] (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] -- aby=aby_ror_2 + lsr + lsr + //SEG19 [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] -- aby=zpby1_bor_aby + ora _2 + //SEG20 [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] -- aby=aby_ror_1 + lsr + //SEG21 [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] -- aby=aby_ror_2 + lsr + lsr + //SEG22 [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG23 [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b2_from_b1 + //SEG24 main::@7 + b7: + //SEG25 [14] phi from main::@7 to main::@2 + //SEG26 [14] phi (byte) main::bits_gen#9 = (byte) 0+(byte) 1 -- aby=coby1 + lda #0+1 + jmp b2 + //SEG27 [14] phi from main::@1 to main::@2 + b2_from_b1: + //SEG28 [14] phi (byte) main::bits_gen#9 = (byte) 0 -- aby=coby1 + lda #0 + //SEG29 main::@2 + b2: + //SEG30 [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- zpby1=aby_rol_1 + asl + sta bits_gen + //SEG31 [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG32 [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] -- zpby1=aby_band_coby1 + and #$18 + sta _15 + //SEG33 [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG34 [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] -- aby=aby_band_coby1 + and #$18 + //SEG35 [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] -- aby=aby_ror_2 + lsr + lsr + //SEG36 [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] -- aby=zpby1_bor_aby + ora _15 + //SEG37 [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] -- aby=aby_ror_1 + lsr + //SEG38 [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG39 [24] if((byte) main::bits#1<(byte) 2) goto main::@3 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b3 + //SEG40 main::@8 + b8: + //SEG41 [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG42 [26] phi from main::@2 main::@8 to main::@3 + //SEG43 [26] phi (byte) main::bits_gen#11 = (byte) main::bits_gen#1 -- register_copy + //SEG44 main::@3 + b3: + //SEG45 [27] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG46 [28] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG47 [29] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] -- aby=aby_band_coby1 + and #6 + //SEG48 [30] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] -- zpby1=aby_rol_1 + asl + sta _28 + //SEG49 [31] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG50 [32] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] -- aby=aby_band_coby1 + and #6 + //SEG51 [33] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] -- aby=aby_ror_1 + lsr + //SEG52 [34] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] -- aby=zpby1_bor_aby + ora _28 + //SEG53 [35] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG54 [36] if((byte) main::bits#2<(byte) 2) goto main::@4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b4 + //SEG55 main::@9 + b9: + //SEG56 [37] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG57 [38] phi from main::@3 main::@9 to main::@4 + //SEG58 [38] phi (byte) main::bits_gen#13 = (byte) main::bits_gen#14 -- register_copy + //SEG59 main::@4 + b4: + //SEG60 [39] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG61 [40] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG62 [41] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] -- aby=aby_band_coby1 + and #1 + //SEG63 [42] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] -- zpby1=aby_rol_2 + asl + asl + sta _40 + //SEG64 [43] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG65 [44] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] -- aby=aby_band_coby1 + and #1 + //SEG66 [45] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] -- aby=zpby1_bor_aby + ora _40 + //SEG67 [46] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG68 [47] if((byte) main::bits#3<(byte) 2) goto main::@5 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b5 + //SEG69 main::@10 + b10: + //SEG70 [48] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG71 [49] phi from main::@10 main::@4 to main::@5 + //SEG72 [49] phi (byte) main::bits_gen#15 = (byte) main::bits_gen#8 -- register_copy + //SEG73 main::@5 + b5: + //SEG74 [50] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] -- aby=zpby1_rol_1 + lda bits_gen + asl + //SEG75 [51] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] -- _star_zpptrby1=aby + ldy #0 + sta (charset4),y + //SEG76 [52] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] -- zpptrby1=_inc_zpptrby1 + inc charset4 + bne !+ + inc charset4+1 + !: + //SEG77 [53] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::chargen#1 main::charset4#1 ] -- zpptrby1=zpptrby1_plus_coby1 + lda chargen + clc + adc #2 + sta chargen + bcc !+ + inc chargen+1 + !: + //SEG78 [54] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] -- zpptrby1_lt_cowo1_then_la1 + lda chargen+1 + cmp #>CHARGEN+$800 + bcc b1 + bne !+ + lda chargen + cmp #CHARSET4 + sta charset4+1 + //SEG8 [2] phi (byte*) main::chargen#2 = (const byte*) CHARGEN#0 -- zpptrby1=cowo1 + lda #CHARGEN + sta chargen+1 + jmp b1 + //SEG9 [2] phi from main::@5 to main::@1 + //SEG10 [2] phi (byte*) main::charset4#10 = (byte*) main::charset4#1 -- register_copy + //SEG11 [2] phi (byte*) main::chargen#2 = (byte*) main::chargen#1 -- register_copy + //SEG12 main::@1 + b1: + //SEG13 [3] (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- zpptrby1=zpptrby2_plus_1 + lda chargen + clc + adc #1 + sta chargen1 + lda chargen+1 + adc #0 + sta chargen1+1 + //SEG14 [4] (byte~) main::$1 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$1 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG15 [5] (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 ] -- zpby1=aby_band_coby1 + and #$60 + sta _2 + //SEG16 [6] (byte~) main::$3 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$3 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG17 [7] (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$4 ] -- aby=aby_band_coby1 + and #$60 + //SEG18 [8] (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] -- aby=aby_ror_2 + lsr + lsr + //SEG19 [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] -- aby=zpby1_bor_aby + ora _2 + //SEG20 [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] -- aby=aby_ror_1 + lsr + //SEG21 [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] -- aby=aby_ror_2 + lsr + lsr + //SEG22 [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG23 [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b2_from_b1 + //SEG24 main::@7 + //SEG25 [14] phi from main::@7 to main::@2 + //SEG26 [14] phi (byte) main::bits_gen#9 = (byte) 0+(byte) 1 -- aby=coby1 + lda #0+1 + jmp b2 + //SEG27 [14] phi from main::@1 to main::@2 + b2_from_b1: + //SEG28 [14] phi (byte) main::bits_gen#9 = (byte) 0 -- aby=coby1 + lda #0 + //SEG29 main::@2 + b2: + //SEG30 [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- zpby1=aby_rol_1 + asl + sta bits_gen + //SEG31 [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG32 [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] -- zpby1=aby_band_coby1 + and #$18 + sta _15 + //SEG33 [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG34 [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] -- aby=aby_band_coby1 + and #$18 + //SEG35 [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] -- aby=aby_ror_2 + lsr + lsr + //SEG36 [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] -- aby=zpby1_bor_aby + ora _15 + //SEG37 [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] -- aby=aby_ror_1 + lsr + //SEG38 [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG39 [24] if((byte) main::bits#1<(byte) 2) goto main::@3 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b3 + //SEG40 main::@8 + //SEG41 [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG42 [26] phi from main::@2 main::@8 to main::@3 + //SEG43 [26] phi (byte) main::bits_gen#11 = (byte) main::bits_gen#1 -- register_copy + //SEG44 main::@3 + b3: + //SEG45 [27] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG46 [28] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG47 [29] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] -- aby=aby_band_coby1 + and #6 + //SEG48 [30] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] -- zpby1=aby_rol_1 + asl + sta _28 + //SEG49 [31] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG50 [32] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] -- aby=aby_band_coby1 + and #6 + //SEG51 [33] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] -- aby=aby_ror_1 + lsr + //SEG52 [34] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] -- aby=zpby1_bor_aby + ora _28 + //SEG53 [35] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG54 [36] if((byte) main::bits#2<(byte) 2) goto main::@4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b4 + //SEG55 main::@9 + //SEG56 [37] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG57 [38] phi from main::@3 main::@9 to main::@4 + //SEG58 [38] phi (byte) main::bits_gen#13 = (byte) main::bits_gen#14 -- register_copy + //SEG59 main::@4 + b4: + //SEG60 [39] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG61 [40] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG62 [41] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] -- aby=aby_band_coby1 + and #1 + //SEG63 [42] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] -- zpby1=aby_rol_2 + asl + asl + sta _40 + //SEG64 [43] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG65 [44] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] -- aby=aby_band_coby1 + and #1 + //SEG66 [45] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] -- aby=zpby1_bor_aby + ora _40 + //SEG67 [46] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG68 [47] if((byte) main::bits#3<(byte) 2) goto main::@5 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b5 + //SEG69 main::@10 + //SEG70 [48] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG71 [49] phi from main::@10 main::@4 to main::@5 + //SEG72 [49] phi (byte) main::bits_gen#15 = (byte) main::bits_gen#8 -- register_copy + //SEG73 main::@5 + b5: + //SEG74 [50] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] -- aby=zpby1_rol_1 + lda bits_gen + asl + //SEG75 [51] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] -- _star_zpptrby1=aby + ldy #0 + sta (charset4),y + //SEG76 [52] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] -- zpptrby1=_inc_zpptrby1 + inc charset4 + bne !+ + inc charset4+1 + !: + //SEG77 [53] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::chargen#1 main::charset4#1 ] -- zpptrby1=zpptrby1_plus_coby1 + lda chargen + clc + adc #2 + sta chargen + bcc !+ + inc chargen+1 + !: + //SEG78 [54] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] -- zpptrby1_lt_cowo1_then_la1 + lda chargen+1 + cmp #>CHARGEN+$800 + bcc b1 + bne !+ + lda chargen + cmp #CHARSET4 + sta charset4+1 + //SEG8 [2] phi (byte*) main::chargen#2 = (const byte*) CHARGEN#0 -- zpptrby1=cowo1 + lda #CHARGEN + sta chargen+1 + //SEG9 [2] phi from main::@5 to main::@1 + //SEG10 [2] phi (byte*) main::charset4#10 = (byte*) main::charset4#1 -- register_copy + //SEG11 [2] phi (byte*) main::chargen#2 = (byte*) main::chargen#1 -- register_copy + //SEG12 main::@1 + b1: + //SEG13 [3] (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- zpptrby1=zpptrby2_plus_1 + lda chargen + clc + adc #1 + sta chargen1 + lda chargen+1 + adc #0 + sta chargen1+1 + //SEG14 [4] (byte~) main::$1 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$1 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG15 [5] (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 ] -- zpby1=aby_band_coby1 + and #$60 + sta _2 + //SEG16 [6] (byte~) main::$3 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$3 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG17 [7] (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$4 ] -- aby=aby_band_coby1 + and #$60 + //SEG18 [8] (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] -- aby=aby_ror_2 + lsr + lsr + //SEG19 [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] -- aby=zpby1_bor_aby + ora _2 + //SEG20 [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] -- aby=aby_ror_1 + lsr + //SEG21 [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] -- aby=aby_ror_2 + lsr + lsr + //SEG22 [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG23 [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b2_from_b1 + //SEG24 main::@7 + //SEG25 [14] phi from main::@7 to main::@2 + //SEG26 [14] phi (byte) main::bits_gen#9 = (byte) 0+(byte) 1 -- aby=coby1 + lda #0+1 + jmp b2 + //SEG27 [14] phi from main::@1 to main::@2 + b2_from_b1: + //SEG28 [14] phi (byte) main::bits_gen#9 = (byte) 0 -- aby=coby1 + lda #0 + //SEG29 main::@2 + b2: + //SEG30 [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- zpby1=aby_rol_1 + asl + sta bits_gen + //SEG31 [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG32 [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] -- zpby1=aby_band_coby1 + and #$18 + sta _15 + //SEG33 [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG34 [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] -- aby=aby_band_coby1 + and #$18 + //SEG35 [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] -- aby=aby_ror_2 + lsr + lsr + //SEG36 [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] -- aby=zpby1_bor_aby + ora _15 + //SEG37 [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] -- aby=aby_ror_1 + lsr + //SEG38 [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG39 [24] if((byte) main::bits#1<(byte) 2) goto main::@3 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b3 + //SEG40 main::@8 + //SEG41 [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG42 [26] phi from main::@2 main::@8 to main::@3 + //SEG43 [26] phi (byte) main::bits_gen#11 = (byte) main::bits_gen#1 -- register_copy + //SEG44 main::@3 + b3: + //SEG45 [27] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG46 [28] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG47 [29] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] -- aby=aby_band_coby1 + and #6 + //SEG48 [30] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] -- zpby1=aby_rol_1 + asl + sta _28 + //SEG49 [31] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG50 [32] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] -- aby=aby_band_coby1 + and #6 + //SEG51 [33] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] -- aby=aby_ror_1 + lsr + //SEG52 [34] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] -- aby=zpby1_bor_aby + ora _28 + //SEG53 [35] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG54 [36] if((byte) main::bits#2<(byte) 2) goto main::@4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b4 + //SEG55 main::@9 + //SEG56 [37] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG57 [38] phi from main::@3 main::@9 to main::@4 + //SEG58 [38] phi (byte) main::bits_gen#13 = (byte) main::bits_gen#14 -- register_copy + //SEG59 main::@4 + b4: + //SEG60 [39] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG61 [40] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG62 [41] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] -- aby=aby_band_coby1 + and #1 + //SEG63 [42] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] -- zpby1=aby_rol_2 + asl + asl + sta _40 + //SEG64 [43] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG65 [44] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] -- aby=aby_band_coby1 + and #1 + //SEG66 [45] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] -- aby=zpby1_bor_aby + ora _40 + //SEG67 [46] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG68 [47] if((byte) main::bits#3<(byte) 2) goto main::@5 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b5 + //SEG69 main::@10 + //SEG70 [48] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG71 [49] phi from main::@10 main::@4 to main::@5 + //SEG72 [49] phi (byte) main::bits_gen#15 = (byte) main::bits_gen#8 -- register_copy + //SEG73 main::@5 + b5: + //SEG74 [50] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] -- aby=zpby1_rol_1 + lda bits_gen + asl + //SEG75 [51] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] -- _star_zpptrby1=aby + ldy #0 + sta (charset4),y + //SEG76 [52] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] -- zpptrby1=_inc_zpptrby1 + inc charset4 + bne !+ + inc charset4+1 + !: + //SEG77 [53] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::chargen#1 main::charset4#1 ] -- zpptrby1=zpptrby1_plus_coby1 + lda chargen + clc + adc #2 + sta chargen + bcc !+ + inc chargen+1 + !: + //SEG78 [54] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] -- zpptrby1_lt_cowo1_then_la1 + lda chargen+1 + cmp #>CHARGEN+$800 + bcc b1 + bne !+ + lda chargen + cmp #CHARSET4 + sta charset4+1 + //SEG8 [2] phi (byte*) main::chargen#2 = (const byte*) CHARGEN#0 -- zpptrby1=cowo1 + lda #CHARGEN + sta chargen+1 + //SEG9 [2] phi from main::@5 to main::@1 + //SEG10 [2] phi (byte*) main::charset4#10 = (byte*) main::charset4#1 -- register_copy + //SEG11 [2] phi (byte*) main::chargen#2 = (byte*) main::chargen#1 -- register_copy + //SEG12 main::@1 + b1: + //SEG13 [3] (byte*) main::chargen1#0 ← (byte*) main::chargen#2 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- zpptrby1=zpptrby2_plus_1 + lda chargen + clc + adc #1 + sta chargen1 + lda chargen+1 + adc #0 + sta chargen1+1 + //SEG14 [4] (byte~) main::$1 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$1 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG15 [5] (byte~) main::$2 ← (byte~) main::$1 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 ] -- zpby1=aby_band_coby1 + and #$60 + sta _2 + //SEG16 [6] (byte~) main::$3 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$3 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG17 [7] (byte~) main::$4 ← (byte~) main::$3 & (byte) 96 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$4 ] -- aby=aby_band_coby1 + and #$60 + //SEG18 [8] (byte~) main::$5 ← (byte~) main::$4 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$2 main::$5 ] -- aby=aby_ror_2 + lsr + lsr + //SEG19 [9] (byte~) main::$6 ← (byte~) main::$2 | (byte~) main::$5 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$6 ] -- aby=zpby1_bor_aby + ora _2 + //SEG20 [10] (byte~) main::$7 ← (byte~) main::$6 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$7 ] -- aby=aby_ror_1 + lsr + //SEG21 [11] (byte~) main::$8 ← (byte~) main::$7 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::$8 ] -- aby=aby_ror_2 + lsr + lsr + //SEG22 [12] (byte) main::bits#0 ← (const byte[]) bits_count#0 *idx (byte~) main::$8 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits#0 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG23 [13] if((byte) main::bits#0<(byte) 2) goto main::@2 [ main::chargen#2 main::charset4#10 main::chargen1#0 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b2_from_b1 + //SEG24 main::@7 + //SEG25 [14] phi from main::@7 to main::@2 + //SEG26 [14] phi (byte) main::bits_gen#9 = (byte) 0+(byte) 1 -- aby=coby1 + lda #0+1 + jmp b2 + //SEG27 [14] phi from main::@1 to main::@2 + b2_from_b1: + //SEG28 [14] phi (byte) main::bits_gen#9 = (byte) 0 -- aby=coby1 + lda #0 + //SEG29 main::@2 + b2: + //SEG30 [15] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- zpby1=aby_rol_1 + asl + sta bits_gen + //SEG31 [16] (byte~) main::$14 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$14 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG32 [17] (byte~) main::$15 ← (byte~) main::$14 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] -- zpby1=aby_band_coby1 + and #$18 + sta _15 + //SEG33 [18] (byte~) main::$16 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$16 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG34 [19] (byte~) main::$17 ← (byte~) main::$16 & (byte) 24 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$17 ] -- aby=aby_band_coby1 + and #$18 + //SEG35 [20] (byte~) main::$18 ← (byte~) main::$17 >> (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 main::$18 ] -- aby=aby_ror_2 + lsr + lsr + //SEG36 [21] (byte~) main::$19 ← (byte~) main::$15 | (byte~) main::$18 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$19 ] -- aby=zpby1_bor_aby + ora _15 + //SEG37 [22] (byte~) main::$20 ← (byte~) main::$19 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$20 ] -- aby=aby_ror_1 + lsr + //SEG38 [23] (byte) main::bits#1 ← (const byte[]) bits_count#0 *idx (byte~) main::$20 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::bits#1 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG39 [24] if((byte) main::bits#1<(byte) 2) goto main::@3 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b3 + //SEG40 main::@8 + //SEG41 [25] (byte) main::bits_gen#4 ← (byte) main::bits_gen#1 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#4 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG42 [26] phi from main::@2 main::@8 to main::@3 + //SEG43 [26] phi (byte) main::bits_gen#11 = (byte) main::bits_gen#1 -- register_copy + //SEG44 main::@3 + b3: + //SEG45 [27] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG46 [28] (byte~) main::$26 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$26 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG47 [29] (byte~) main::$27 ← (byte~) main::$26 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$27 ] -- aby=aby_band_coby1 + and #6 + //SEG48 [30] (byte~) main::$28 ← (byte~) main::$27 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 ] -- zpby1=aby_rol_1 + asl + sta _28 + //SEG49 [31] (byte~) main::$29 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$29 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG50 [32] (byte~) main::$30 ← (byte~) main::$29 & (byte) 6 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$30 ] -- aby=aby_band_coby1 + and #6 + //SEG51 [33] (byte~) main::$31 ← (byte~) main::$30 >> (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$28 main::$31 ] -- aby=aby_ror_1 + lsr + //SEG52 [34] (byte~) main::$32 ← (byte~) main::$28 | (byte~) main::$31 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::$32 ] -- aby=zpby1_bor_aby + ora _28 + //SEG53 [35] (byte) main::bits#2 ← (const byte[]) bits_count#0 *idx (byte~) main::$32 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 main::bits#2 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG54 [36] if((byte) main::bits#2<(byte) 2) goto main::@4 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b4 + //SEG55 main::@9 + //SEG56 [37] (byte) main::bits_gen#6 ← (byte) main::bits_gen#14 + (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#6 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG57 [38] phi from main::@3 main::@9 to main::@4 + //SEG58 [38] phi (byte) main::bits_gen#13 = (byte) main::bits_gen#14 -- register_copy + //SEG59 main::@4 + b4: + //SEG60 [39] (byte) main::bits_gen#16 ← (byte) main::bits_gen#13 << (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 ] -- zpby1=zpby1_rol_1 + asl + sta bits_gen + //SEG61 [40] (byte~) main::$38 ← * (byte*) main::chargen#2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$38 ] -- aby=_star_zpptrby1 + ldy #0 + lda (chargen),y + //SEG62 [41] (byte~) main::$39 ← (byte~) main::$38 & (byte) 1 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$39 ] -- aby=aby_band_coby1 + and #1 + //SEG63 [42] (byte~) main::$40 ← (byte~) main::$39 << (byte) 2 [ main::chargen#2 main::charset4#10 main::chargen1#0 main::bits_gen#16 main::$40 ] -- zpby1=aby_rol_2 + asl + asl + sta _40 + //SEG64 [43] (byte~) main::$41 ← * (byte*) main::chargen1#0 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$41 ] -- aby=_star_zpptrby1 + lda (chargen1),y + //SEG65 [44] (byte~) main::$42 ← (byte~) main::$41 & (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$40 main::$42 ] -- aby=aby_band_coby1 + and #1 + //SEG66 [45] (byte~) main::$43 ← (byte~) main::$40 | (byte~) main::$42 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::$43 ] -- aby=zpby1_bor_aby + ora _40 + //SEG67 [46] (byte) main::bits#3 ← (const byte[]) bits_count#0 *idx (byte~) main::$43 [ main::chargen#2 main::charset4#10 main::bits_gen#16 main::bits#3 ] -- aby=cowo1_staridx_aby + tax + lda bits_count,x + //SEG68 [47] if((byte) main::bits#3<(byte) 2) goto main::@5 [ main::chargen#2 main::charset4#10 main::bits_gen#16 ] -- aby_lt_coby1_then_la1 + cmp #2 + bcc b5 + //SEG69 main::@10 + //SEG70 [48] (byte) main::bits_gen#8 ← (byte) main::bits_gen#16 + (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#8 ] -- zpby1=zpby1_plus_1 + inc bits_gen + //SEG71 [49] phi from main::@10 main::@4 to main::@5 + //SEG72 [49] phi (byte) main::bits_gen#15 = (byte) main::bits_gen#8 -- register_copy + //SEG73 main::@5 + b5: + //SEG74 [50] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte) 1 [ main::chargen#2 main::charset4#10 main::bits_gen#7 ] -- aby=zpby1_rol_1 + lda bits_gen + asl + //SEG75 [51] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#2 main::charset4#10 ] -- _star_zpptrby1=aby + ldy #0 + sta (charset4),y + //SEG76 [52] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [ main::chargen#2 main::charset4#1 ] -- zpptrby1=_inc_zpptrby1 + inc charset4 + bne !+ + inc charset4+1 + !: + //SEG77 [53] (byte*) main::chargen#1 ← (byte*) main::chargen#2 + (byte) 2 [ main::chargen#1 main::charset4#1 ] -- zpptrby1=zpptrby1_plus_coby1 + lda chargen + clc + adc #2 + sta chargen + bcc !+ + inc chargen+1 + !: + //SEG78 [54] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] -- zpptrby1_lt_cowo1_then_la1 + lda chargen+1 + cmp #>CHARGEN+$800 + bcc b1 + bne !+ + lda chargen + cmp #