
void main()
main: scope:[main]  from
  [0] phi()
  [1] call loadFileToMemory
  [2] loadFileToMemory::return#0 = loadFileToMemory::return#1
  to:main::@4
main::@4: scope:[main]  from main
  [3] main::status#0 = loadFileToMemory::return#0
  [4] if(main::status#0==$ff) goto main::@1
  to:main::@2
main::@2: scope:[main]  from main::@4
  [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2
  [6] error::err = main::status#0
  [7] call error
  to:main::@1
main::@1: scope:[main]  from main::@2 main::@4
  [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1
  to:main::toSpritePtr1
main::toSpritePtr1: scope:[main]  from main::@1
  [9] phi()
  to:main::@3
main::@3: scope:[main]  from main::toSpritePtr1
  [10] *SPRITES_PTR = main::toSpritePtr1_return#0
  [11] *SPRITES_COLOR = GREEN
  [12] *SPRITES_XPOS = $15
  [13] *SPRITES_YPOS = $33
  to:main::@return
main::@return: scope:[main]  from main::@3
  [14] return 
  to:@return

char loadFileToMemory(char device , char *filename , char *address)
loadFileToMemory: scope:[loadFileToMemory]  from main
  [15] setnam::filename = main::filename
  [16] call setnam
  to:loadFileToMemory::@1
loadFileToMemory::@1: scope:[loadFileToMemory]  from loadFileToMemory
  [17] setlfs::device = loadFileToMemory::device#0
  [18] call setlfs
  to:loadFileToMemory::@2
loadFileToMemory::@2: scope:[loadFileToMemory]  from loadFileToMemory::@1
  [19] load::address = LOAD_SPRITE
  [20] load::verify = 0
  [21] call load
  [22] load::return#0 = load::return#2
  to:loadFileToMemory::@3
loadFileToMemory::@3: scope:[loadFileToMemory]  from loadFileToMemory::@2
  [23] loadFileToMemory::return#1 = load::return#0
  to:loadFileToMemory::@return
loadFileToMemory::@return: scope:[loadFileToMemory]  from loadFileToMemory::@3
  [24] return 
  to:@return

void error(volatile char err)
error: scope:[error]  from main::@2
  asm { ldxerr jsr$a437  }
  to:error::@return
error::@return: scope:[error]  from error
  [26] return 
  to:@return

void setnam(char * volatile filename)
setnam: scope:[setnam]  from loadFileToMemory
  [27] strlen::str#1 = setnam::filename
  [28] call strlen
  [29] strlen::return#2 = strlen::len#2
  to:setnam::@1
setnam::@1: scope:[setnam]  from setnam
  [30] setnam::$0 = strlen::return#2
  [31] setnam::filename_len = (char)setnam::$0
  asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd  }
  to:setnam::@return
setnam::@return: scope:[setnam]  from setnam::@1
  [33] return 
  to:@return

void setlfs(volatile char device)
setlfs: scope:[setlfs]  from loadFileToMemory::@1
  asm { ldxdevice lda#1 ldy#0 jsr$ffba  }
  to:setlfs::@return
setlfs::@return: scope:[setlfs]  from setlfs
  [35] return 
  to:@return

char load(char * volatile address , volatile char verify)
load: scope:[load]  from loadFileToMemory::@2
  [36] load::status = 0
  asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus  }
  [38] load::return#1 = load::status
  to:load::@return
load::@return: scope:[load]  from load
  [39] load::return#2 = load::return#1
  [40] return 
  to:@return

unsigned int strlen(char *str)
strlen: scope:[strlen]  from setnam
  [41] phi()
  to:strlen::@1
strlen::@1: scope:[strlen]  from strlen strlen::@2
  [42] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 )
  [42] strlen::str#2 = phi( strlen/strlen::str#1, strlen::@2/strlen::str#0 )
  [43] if(0!=*strlen::str#2) goto strlen::@2
  to:strlen::@return
strlen::@return: scope:[strlen]  from strlen::@1
  [44] return 
  to:@return
strlen::@2: scope:[strlen]  from strlen::@1
  [45] strlen::len#1 = ++ strlen::len#2
  [46] strlen::str#0 = ++ strlen::str#2
  to:strlen::@1
