@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()

(void()) main()
main: scope:[main]  from @1
  [4] phi()
  [5] call loadFileToMemory 
  [6] (byte) loadFileToMemory::return#0 ← (byte) loadFileToMemory::return#1
  to:main::@4
main::@4: scope:[main]  from main
  [7] (byte) main::status#0 ← (byte) loadFileToMemory::return#0
  [8] if((byte) main::status#0==(byte) $ff) goto main::@1
  to:main::@2
main::@2: scope:[main]  from main::@4
  [9] *((const byte*) BORDERCOL) ← (byte) 2
  [10] (byte) error::err#0 ← (byte) main::status#0
  [11] call error 
  to:main::@1
main::@1: scope:[main]  from main::@2 main::@4
  [12] *((const byte*) SPRITES_ENABLE) ← (byte) 1
  to:main::toSpritePtr1
main::toSpritePtr1: scope:[main]  from main::@1
  [13] phi()
  to:main::@3
main::@3: scope:[main]  from main::toSpritePtr1
  [14] *((const byte*) SPRITES_PTR) ← (const byte) main::toSpritePtr1_return#0
  [15] *((const byte*) SPRITES_COLS) ← (const byte) GREEN
  [16] *((const byte*) SPRITES_XPOS) ← (byte) $15
  [17] *((const byte*) SPRITES_YPOS) ← (byte) $33
  to:main::@return
main::@return: scope:[main]  from main::@3
  [18] return 
  to:@return

(void()) error((byte) error::err)
error: scope:[error]  from main::@2
  [19] *((const byte*) error::errCode) ← (byte) error::err#0
  asm { ldxerrCode jsr$a437  }
  to:error::@return
error::@return: scope:[error]  from error
  [21] return 
  to:@return

(byte()) loadFileToMemory((byte) loadFileToMemory::device , (byte*) loadFileToMemory::filename , (byte*) loadFileToMemory::address)
loadFileToMemory: scope:[loadFileToMemory]  from main
  [22] phi()
  [23] call setnam 
  to:loadFileToMemory::@1
loadFileToMemory::@1: scope:[loadFileToMemory]  from loadFileToMemory
  [24] phi()
  [25] call setlfs 
  to:loadFileToMemory::@2
loadFileToMemory::@2: scope:[loadFileToMemory]  from loadFileToMemory::@1
  [26] phi()
  [27] call load 
  [28] (byte) load::return#0 ← (byte) load::return#1
  to:loadFileToMemory::@3
loadFileToMemory::@3: scope:[loadFileToMemory]  from loadFileToMemory::@2
  [29] (byte) loadFileToMemory::return#1 ← (byte) load::return#0
  to:loadFileToMemory::@return
loadFileToMemory::@return: scope:[loadFileToMemory]  from loadFileToMemory::@3
  [30] return 
  to:@return

(byte()) load((byte*) load::address , (bool) load::verify)
load: scope:[load]  from loadFileToMemory::@2
  [31] *((const byte*) load::loadOrVerify) ← (byte) 0
  [32] *((const byte**) load::loadAddress) ← (const byte*) LOAD_SPRITE
  asm { ldxloadAddress ldyloadAddress+1 ldaloadOrVerify jsr$ffd5 bcserror lda#$ff error: stastatus  }
  [34] (byte) load::return#1 ← *((const byte*) load::status)
  to:load::@return
load::@return: scope:[load]  from load
  [35] return 
  to:@return

(void()) setlfs((byte) setlfs::device)
setlfs: scope:[setlfs]  from loadFileToMemory::@1
  [36] *((const byte*) setlfs::deviceNum) ← (const byte) loadFileToMemory::device#0
  asm { ldxdeviceNum lda#1 ldy#0 jsr$ffba  }
  to:setlfs::@return
setlfs::@return: scope:[setlfs]  from setlfs
  [38] return 
  to:@return

(void()) setnam((byte*) setnam::filename)
setnam: scope:[setnam]  from loadFileToMemory
  [39] phi()
  [40] call strlen 
  [41] (word) strlen::return#2 ← (word) strlen::len#2
  to:setnam::@1
setnam::@1: scope:[setnam]  from setnam
  [42] (word~) setnam::$0 ← (word) strlen::return#2
  [43] (byte~) setnam::$1 ← (byte)(word~) setnam::$0
  [44] *((const byte*) setnam::filename_len) ← (byte~) setnam::$1
  [45] *((const byte**) setnam::filename_ptr) ← (const byte*) main::filename
  asm { ldafilename_len ldxfilename_ptr ldyfilename_ptr+1 jsr$ffbd  }
  to:setnam::@return
setnam::@return: scope:[setnam]  from setnam::@1
  [47] return 
  to:@return

(word()) strlen((byte*) strlen::str)
strlen: scope:[strlen]  from setnam
  [48] phi()
  to:strlen::@1
strlen::@1: scope:[strlen]  from strlen strlen::@2
  [49] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 )
  [49] (byte*) strlen::str#2 ← phi( strlen/(const byte*) main::filename strlen::@2/(byte*) strlen::str#0 )
  [50] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2
  to:strlen::@return
strlen::@return: scope:[strlen]  from strlen::@1
  [51] return 
  to:@return
strlen::@2: scope:[strlen]  from strlen::@1
  [52] (word) strlen::len#1 ← ++ (word) strlen::len#2
  [53] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2
  to:strlen::@1
