@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()
main: scope:[main]  from @1
  asm { sei  }
  [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
  [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0
  [7] call gfx_init 
  to:main::@6
main::@6: scope:[main]  from main
  [8] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0
  [9] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0|(const byte) DTV_BADLINE_OFF#0
  [10] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte) 3
  [11] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_MCM#0|(const byte) VIC_CSEL#0
  [12] *((const byte*) DTV_PLANEA_START_LO#0) ← (byte) 0
  [13] *((const byte*) DTV_PLANEA_START_MI#0) ← >(const byte*) SCREEN#0
  [14] *((const byte*) DTV_PLANEA_START_HI#0) ← (byte) 0
  [15] *((const byte*) DTV_PLANEA_STEP#0) ← (byte) 1
  [16] *((const byte*) DTV_PLANEA_MODULO_LO#0) ← (byte) 0
  [17] *((const byte*) DTV_PLANEA_MODULO_HI#0) ← (byte) 0
  [18] *((const byte*) DTV_PLANEB_START_LO#0) ← (byte) 0
  [19] *((const byte*) DTV_PLANEB_START_MI#0) ← >(const byte*) CHARSET8#0
  [20] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte) 0
  [21] *((const byte*) DTV_PLANEB_STEP#0) ← (byte) 0
  [22] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte) 0
  [23] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte) 0
  [24] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte) 3
  [25] *((const byte*) CIA2_PORT_A#0) ← (byte) 3^(byte)(word)(const byte*) SCREEN#0/(word) $4000
  [26] *((const byte*) VIC_MEMORY#0) ← (byte)(word)(const byte*) SCREEN#0&(word) $3fff/(byte) $40|>(word)(const byte*) SCREEN#0&(word) $3fff/(byte) 4
  to:main::@1
main::@1: scope:[main]  from main::@1 main::@6
  [27] (byte) main::j#2 ← phi( main::@1/(byte) main::j#1 main::@6/(byte) 0 )
  [28] *((const byte*) DTV_PALETTE#0 + (byte) main::j#2) ← (byte) main::j#2
  [29] (byte) main::j#1 ← ++ (byte) main::j#2
  [30] if((byte) main::j#1!=(byte) $10) goto main::@1
  to:main::@2
main::@2: scope:[main]  from main::@1 main::@5
  asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize  }
  [32] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte) 3
  [33] *((const byte*) BORDERCOL#0) ← (byte) 0
  to:main::@3
main::@3: scope:[main]  from main::@2 main::@3
  [34] if(*((const byte*) RASTER#0)!=(byte) $42) goto main::@3
  to:main::@4
main::@4: scope:[main]  from main::@3
  asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop  }
  to:main::@5
main::@5: scope:[main]  from main::@4 main::@5
  [36] (byte) main::rst#1 ← *((const byte*) RASTER#0)
  [37] (byte~) main::$32 ← (byte) main::rst#1 & (byte) 7
  [38] (byte~) main::$33 ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 | (byte~) main::$32
  [39] *((const byte*) VIC_CONTROL#0) ← (byte~) main::$33
  [40] (byte~) main::$34 ← (byte) main::rst#1 << (byte) 4
  [41] *((const byte*) BORDERCOL#0) ← (byte~) main::$34
  asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop  }
  [43] if((byte) main::rst#1!=(byte) $f2) goto main::@5
  to:main::@2
gfx_init: scope:[gfx_init]  from main
  [44] phi()
  [45] call gfx_init_screen0 
  to:gfx_init::@1
gfx_init::@1: scope:[gfx_init]  from gfx_init
  [46] phi()
  [47] call gfx_init_plane_charset8 
  to:gfx_init::@return
gfx_init::@return: scope:[gfx_init]  from gfx_init::@1
  [48] return 
  to:@return
gfx_init_plane_charset8: scope:[gfx_init_plane_charset8]  from gfx_init::@1
  [49] phi()
  [50] call dtvSetCpuBankSegment1 
  to:gfx_init_plane_charset8::@9
gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8
  [51] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_CHARROM#0
  to:gfx_init_plane_charset8::@1
gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9
  [52] (byte) gfx_init_plane_charset8::ch#8 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::ch#1 gfx_init_plane_charset8::@9/(byte) 0 )
  [52] (byte) gfx_init_plane_charset8::col#6 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::col#1 gfx_init_plane_charset8::@9/(byte) 0 )
  [52] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/(byte*)(word) $4000 )
  [52] (byte*) gfx_init_plane_charset8::chargen#3 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::@9/(const byte*) CHARGEN#0+(byte) 1 )
  to:gfx_init_plane_charset8::@2
gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6
  [53] (byte) gfx_init_plane_charset8::cr#6 ← phi( gfx_init_plane_charset8::@1/(byte) 0 gfx_init_plane_charset8::@6/(byte) gfx_init_plane_charset8::cr#1 )
  [53] (byte) gfx_init_plane_charset8::col#5 ← phi( gfx_init_plane_charset8::@1/(byte) gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::@6/(byte) gfx_init_plane_charset8::col#1 )
  [53] (byte*) gfx_init_plane_charset8::gfxa#5 ← phi( gfx_init_plane_charset8::@1/(byte*) gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::@6/(byte*) gfx_init_plane_charset8::gfxa#1 )
  [53] (byte*) gfx_init_plane_charset8::chargen#2 ← phi( gfx_init_plane_charset8::@1/(byte*) gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::@6/(byte*) gfx_init_plane_charset8::chargen#1 )
  [54] (byte) gfx_init_plane_charset8::bits#0 ← *((byte*) gfx_init_plane_charset8::chargen#2)
  [55] (byte*) gfx_init_plane_charset8::chargen#1 ← ++ (byte*) gfx_init_plane_charset8::chargen#2
  to:gfx_init_plane_charset8::@3
gfx_init_plane_charset8::@3: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@4
  [56] (byte) gfx_init_plane_charset8::cp#2 ← phi( gfx_init_plane_charset8::@2/(byte) 0 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::cp#1 )
  [56] (byte) gfx_init_plane_charset8::col#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::col#1 )
  [56] (byte*) gfx_init_plane_charset8::gfxa#2 ← phi( gfx_init_plane_charset8::@2/(byte*) gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::@4/(byte*) gfx_init_plane_charset8::gfxa#1 )
  [56] (byte) gfx_init_plane_charset8::bits#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::bits#1 )
  [57] (byte~) gfx_init_plane_charset8::$9 ← (byte) gfx_init_plane_charset8::bits#2 & (byte) $80
  [58] if((byte~) gfx_init_plane_charset8::$9==(byte) 0) goto gfx_init_plane_charset8::@4
  to:gfx_init_plane_charset8::@5
gfx_init_plane_charset8::@5: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8::@3
  [59] (byte~) gfx_init_plane_charset8::c#3 ← (byte) gfx_init_plane_charset8::col#2
  to:gfx_init_plane_charset8::@4
gfx_init_plane_charset8::@4: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8::@3 gfx_init_plane_charset8::@5
  [60] (byte) gfx_init_plane_charset8::c#2 ← phi( gfx_init_plane_charset8::@3/(byte) 0 gfx_init_plane_charset8::@5/(byte~) gfx_init_plane_charset8::c#3 )
  [61] *((byte*) gfx_init_plane_charset8::gfxa#2) ← (byte) gfx_init_plane_charset8::c#2
  [62] (byte*) gfx_init_plane_charset8::gfxa#1 ← ++ (byte*) gfx_init_plane_charset8::gfxa#2
  [63] (byte) gfx_init_plane_charset8::bits#1 ← (byte) gfx_init_plane_charset8::bits#2 << (byte) 1
  [64] (byte) gfx_init_plane_charset8::col#1 ← ++ (byte) gfx_init_plane_charset8::col#2
  [65] (byte) gfx_init_plane_charset8::cp#1 ← ++ (byte) gfx_init_plane_charset8::cp#2
  [66] if((byte) gfx_init_plane_charset8::cp#1!=(byte) 8) goto gfx_init_plane_charset8::@3
  to:gfx_init_plane_charset8::@6
gfx_init_plane_charset8::@6: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8::@4
  [67] (byte) gfx_init_plane_charset8::cr#1 ← ++ (byte) gfx_init_plane_charset8::cr#6
  [68] if((byte) gfx_init_plane_charset8::cr#1!=(byte) 8) goto gfx_init_plane_charset8::@2
  to:gfx_init_plane_charset8::@7
gfx_init_plane_charset8::@7: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8::@6
  [69] (byte) gfx_init_plane_charset8::ch#1 ← ++ (byte) gfx_init_plane_charset8::ch#8
  [70] if((byte) gfx_init_plane_charset8::ch#1!=(byte) 0) goto gfx_init_plane_charset8::@1
  to:gfx_init_plane_charset8::@8
gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8::@7
  [71] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0
  [72] call dtvSetCpuBankSegment1 
  to:gfx_init_plane_charset8::@return
gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8]  from gfx_init_plane_charset8::@8
  [73] return 
  to:@return
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1]  from gfx_init_plane_charset8 gfx_init_plane_charset8::@8
  [74] (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← phi( gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/(byte)(number) $4000/(number) $4000 )
  [75] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#2
  asm { .byte$32,$dd lda$ff .byte$32,$00  }
  to:dtvSetCpuBankSegment1::@return
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1]  from dtvSetCpuBankSegment1
  [77] return 
  to:@return
gfx_init_screen0: scope:[gfx_init_screen0]  from gfx_init
  [78] phi()
  to:gfx_init_screen0::@1
gfx_init_screen0::@1: scope:[gfx_init_screen0]  from gfx_init_screen0 gfx_init_screen0::@3
  [79] (byte*) gfx_init_screen0::ch#3 ← phi( gfx_init_screen0/(const byte*) SCREEN#0 gfx_init_screen0::@3/(byte*) gfx_init_screen0::ch#1 )
  [79] (byte) gfx_init_screen0::cy#4 ← phi( gfx_init_screen0/(byte) 0 gfx_init_screen0::@3/(byte) gfx_init_screen0::cy#1 )
  to:gfx_init_screen0::@2
gfx_init_screen0::@2: scope:[gfx_init_screen0]  from gfx_init_screen0::@1 gfx_init_screen0::@2
  [80] (byte*) gfx_init_screen0::ch#2 ← phi( gfx_init_screen0::@1/(byte*) gfx_init_screen0::ch#3 gfx_init_screen0::@2/(byte*) gfx_init_screen0::ch#1 )
  [80] (byte) gfx_init_screen0::cx#2 ← phi( gfx_init_screen0::@1/(byte) 0 gfx_init_screen0::@2/(byte) gfx_init_screen0::cx#1 )
  [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte) $f
  [82] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte) 4
  [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte) $f
  [84] (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2
  [85] *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3
  [86] (byte*) gfx_init_screen0::ch#1 ← ++ (byte*) gfx_init_screen0::ch#2
  [87] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2
  [88] if((byte) gfx_init_screen0::cx#1!=(byte) $28) goto gfx_init_screen0::@2
  to:gfx_init_screen0::@3
gfx_init_screen0::@3: scope:[gfx_init_screen0]  from gfx_init_screen0::@2
  [89] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4
  [90] if((byte) gfx_init_screen0::cy#1!=(byte) $19) goto gfx_init_screen0::@1
  to:gfx_init_screen0::@return
gfx_init_screen0::@return: scope:[gfx_init_screen0]  from gfx_init_screen0::@3
  [91] return 
  to:@return
