1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-08 17:54:40 +00:00

Implemented initial sinus sprites.

This commit is contained in:
jespergravgaard 2017-12-04 23:48:14 +01:00
parent c74b86a616
commit 56b74e7e0f
13 changed files with 37001 additions and 77 deletions

View File

@ -14,6 +14,17 @@ public class AsmClobber {
public AsmClobber() {
}
AsmClobber(boolean clobberAll) {
this.clobberA = clobberAll;
this.clobberX = clobberAll;
this.clobberY = clobberAll;
this.clobberC = clobberAll;
this.clobberN = clobberAll;
this.clobberV = clobberAll;
this.clobberZ = clobberAll;
}
public boolean isClobberA() {
return clobberA;
}
@ -70,6 +81,9 @@ public class AsmClobber {
this.clobberV = clobberV;
}
public static final AsmClobber CLOBBER_ALL = new AsmClobber(true);
/**
* Adds clobber.
* Effective updates so this clobber also clobbers anything added

View File

@ -44,6 +44,9 @@ public class AsmProgramStaticRegisterValues {
current = new AsmRegisterValues(current);
AsmInstructionType instructionType = instruction.getType();
AsmClobber clobber = instructionType.getClobber();
if(instruction.getType().getMnemnonic().equals("jsr")) {
clobber = AsmClobber.CLOBBER_ALL;
}
if (clobber.isClobberA()) {
current.setA(null);
current.setaMem(null);

View File

@ -149,8 +149,8 @@ public class AsmFragmentManager {
synths.add(new FragmentSynthesis("(.*)=(.*)_xsby", ".*=[ax]s?by.*xs?by|.*derefidx_xs?by", "txa\n", "$1=$2_asby", null, null));
synths.add(new FragmentSynthesis("(.*)=(.*)_yby", ".*=[ay]s?by.*ys?by|.*derefidx_ys?by", "tya\n", "$1=$2_aby", null, null));
synths.add(new FragmentSynthesis("(.*)=(.*)_ysby", ".*=[ay]s?by.*ys?by|.*derefidx_ys?by", "tya\n", "$1=$2_asby", null, null));
synths.add(new FragmentSynthesis("(.*)=(.*)_zpby1", ".*=.*as?by.*", "lda {zpby1}\n", "$1=$2_aby", null, mapZpby));
synths.add(new FragmentSynthesis("(.*)=(.*)_zpsby1", ".*=.*as?by.*", "lda {zpsby1}\n", "$1=$2_asby", null, mapZpsby));
synths.add(new FragmentSynthesis("(.*)=(.*)_zpby1", ".*=.*as?by.*|.*zps?by1.*_zps?by1", "lda {zpby1}\n", "$1=$2_aby", null, mapZpby));
synths.add(new FragmentSynthesis("(.*)=(.*)_zpsby1", ".*=.*as?by.*|.*zps?by1.*_zps?by1", "lda {zpsby1}\n", "$1=$2_asby", null, mapZpsby));
synths.add(new FragmentSynthesis("zpby1=zpby1(.*)", ".*=.*as?by.*", "lda {zpby1}\n", "aby=aby$1", "sta {zpby1}\n", mapZpby));
synths.add(new FragmentSynthesis("zpsby1=zpsby1(.*)", ".*=.*as?by.*", "lda {zpsby1}\n", "asby=asby$1", "sta {zpsby1}\n", mapZpby));

View File

@ -1 +1 @@
xor #{coby1}
eor #{coby1}

View File

@ -160,6 +160,7 @@ public class Pass2ConstantIdentification extends Pass2SsaOptimization {
case "/":
case "&":
case "|":
case "^":
case "<<":
case ">>":
return new ConstantBinary(c1, operator, c2);

View File

@ -24,6 +24,10 @@ public class TestPrograms extends TestCase {
helper = new ReferenceHelper("dk/camelot64/kickc/test/ref/");
}
public void testSinusSprites() throws IOException, URISyntaxException {
compileAndCompare("sinus-sprites");
}
public void testConstantAbsMin() throws IOException, URISyntaxException {
compileAndCompare("constabsmin");
}

View File

@ -9,6 +9,7 @@ main: {
sta w1
sta w1+1
jsr incw1
lda #0
sta w2
sta w2+1
jsr incw2

View File

@ -1404,80 +1404,6 @@ incw1: {
rts
}
Removing instruction lda #0
Succesful ASM optimization Pass5UnnecesaryLoadElimination
ASSEMBLER
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
//SEG1 Global Constants & labels
.label w1 = 4
.label w2 = 2
//SEG2 @begin
//SEG3 [1] phi from @begin to @3 [phi:@begin->@3]
//SEG4 @3
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @3 to main [phi:@3->main]
jsr main
//SEG7 [3] phi from @3 to @end [phi:@3->@end]
//SEG8 @end
//SEG9 main
main: {
//SEG10 [5] call incw1 param-assignment [ w1#11 ] ( main:2 [ w1#11 ] )
//SEG11 [16] phi from main to incw1 [phi:main->incw1]
//SEG12 [16] phi (word) w1#10 = (byte/signed byte/word/signed word) 0 [phi:main->incw1#0] -- zpwo1=coby1
lda #0
sta w1
sta w1+1
jsr incw1
//SEG13 [6] phi from main to main::@1 [phi:main->main::@1]
//SEG14 main::@1
//SEG15 [7] call incw2 param-assignment [ w2#11 w1#11 ] ( main:2 [ w2#11 w1#11 ] )
//SEG16 [13] phi from main::@1 to incw2 [phi:main::@1->incw2]
//SEG17 [13] phi (word) w2#10 = (byte/signed byte/word/signed word) 0 [phi:main::@1->incw2#0] -- zpwo1=coby1
sta w2
sta w2+1
jsr incw2
//SEG18 [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
//SEG19 main::@2
//SEG20 [9] call incw1 param-assignment [ w2#11 ] ( main:2 [ w2#11 ] )
//SEG21 [16] phi from main::@2 to incw1 [phi:main::@2->incw1]
//SEG22 [16] phi (word) w1#10 = (word) w1#11 [phi:main::@2->incw1#0] -- register_copy
jsr incw1
//SEG23 [10] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
//SEG24 main::@3
//SEG25 [11] call incw2 param-assignment [ ] ( main:2 [ ] )
//SEG26 [13] phi from main::@3 to incw2 [phi:main::@3->incw2]
//SEG27 [13] phi (word) w2#10 = (word) w2#11 [phi:main::@3->incw2#0] -- register_copy
jsr incw2
//SEG28 main::@return
//SEG29 [12] return [ ] ( main:2 [ ] )
rts
}
//SEG30 incw2
incw2: {
//SEG31 [14] (word) w2#11 ← ++ (word) w2#10 [ w2#11 ] ( main:2::incw2:7 [ w1#11 w2#11 ] main:2::incw2:11 [ w2#11 ] ) -- zpwo1=_inc_zpwo1
inc w2
bne !+
inc w2+1
!:
//SEG32 incw2::@return
//SEG33 [15] return [ w2#11 ] ( main:2::incw2:7 [ w1#11 w2#11 ] main:2::incw2:11 [ w2#11 ] )
rts
}
//SEG34 incw1
incw1: {
//SEG35 [17] (word) w1#11 ← ++ (word) w1#10 [ w1#11 ] ( main:2::incw1:5 [ w1#11 ] main:2::incw1:9 [ w2#11 w1#11 ] ) -- zpwo1=_inc_zpwo1
inc w1
bne !+
inc w1+1
!:
//SEG36 incw1::@return
//SEG37 [18] return [ w1#11 ] ( main:2::incw1:5 [ w1#11 ] main:2::incw1:9 [ w2#11 w1#11 ] )
rts
}
FINAL SYMBOL TABLE
(label) @3
(label) @begin
@ -1531,6 +1457,7 @@ main: {
//SEG15 [7] call incw2 param-assignment [ w2#11 w1#11 ] ( main:2 [ w2#11 w1#11 ] )
//SEG16 [13] phi from main::@1 to incw2 [phi:main::@1->incw2]
//SEG17 [13] phi (word) w2#10 = (byte/signed byte/word/signed word) 0 [phi:main::@1->incw2#0] -- zpwo1=coby1
lda #0
sta w2
sta w2+1
jsr incw2

View File

@ -0,0 +1,509 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.const memLo = $fe
.const memHi = $ff
.const PROCPORT = 1
.const CHARGEN = $d000
.const SCREEN = $400
.const RASTER = $d012
.const BORDERCOL = $d020
.const SPRITES_XPOS = $d000
.const SPRITES_YPOS = $d001
.const SPRITES_ENABLE = $d015
.const SPRITES_EXPAND_Y = $d017
.const SPRITES_EXPAND_X = $d01d
.const SPRITES_COLS = $d027
.const sinlen_x = $dd
.const sintab_x = $1000
.const sinlen_y = $c5
.const sintab_y = $1100
.const sprites = $2000
.label sin_idx_x = 2
.label sin_idx_y = 3
jsr main
main: {
jsr init
lda #0
sta sin_idx_y
sta sin_idx_x
b2:
lda RASTER
cmp #$ff
bne b2
jsr anim
jmp b2
}
anim: {
.label xidx = 4
.label yidx = 5
.label j = 6
inc BORDERCOL
lda sin_idx_x
sta xidx
lda sin_idx_y
sta yidx
lda #0
sta j
ldy #$c
b1:
ldx xidx
lda sintab_x,x
sta SPRITES_XPOS,y
ldx yidx
lda sintab_y,x
sta SPRITES_YPOS,y
lda xidx
clc
adc #$a
sta xidx
cmp #sinlen_x
bcc b2
sec
sbc #sinlen_x
sta xidx
b2:
lda yidx
clc
adc #8
sta yidx
cmp #sinlen_y
bcc b3
sec
sbc #sinlen_y
sta yidx
b3:
dey
dey
inc j
lda j
cmp #7
bne b1
inc sin_idx_x
lda sin_idx_x
cmp #sinlen_x
bcc b4
lda #0
sta sin_idx_x
b4:
inc sin_idx_y
lda sin_idx_y
cmp #sinlen_y
bcc b5
lda #0
sta sin_idx_y
b5:
dec BORDERCOL
rts
}
init: {
.label sc = 7
lda #<SCREEN
sta sc
lda #>SCREEN
sta sc+1
b1:
ldy #0
lda #' '
sta (sc),y
inc sc
bne !+
inc sc+1
!:
lda sc+1
cmp #>SCREEN+$3e8
bcc b1
bne !+
lda sc
cmp #<SCREEN+$3e8
bcc b1
!:
jsr place_sprites
jsr gen_sprites
lda #<sintab_x
sta gen_sintab.sintab
lda #>sintab_x
sta gen_sintab.sintab+1
lda #sinlen_x
sta gen_sintab.length
lda #$10
sta gen_sintab.min
ldx #$ff
jsr gen_sintab
lda #<sintab_y
sta gen_sintab.sintab
lda #>sintab_y
sta gen_sintab.sintab+1
lda #sinlen_y
sta gen_sintab.length
lda #$30
sta gen_sintab.min
ldx #$d0
jsr gen_sintab
rts
}
gen_sintab: {
.const f_2pi = $e2e5
.label _0 = $b
.label _3 = $b
.label _13 = $b
.label _17 = $b
.label _23 = $b
.label i = 2
.label min = 2
.label length = 3
.label sintab = 7
txa
sta _0
lda #0
sta _0+1
jsr setFAC
jsr setARGtoFAC
lda #0
tax
tay
lda min
sta _3
txa
sta _3+1
jsr setFAC
lda #<f_min
sta setMEMtoFAC.mem
lda #>f_min
sta setMEMtoFAC.mem+1
jsr setMEMtoFAC
jsr subFACfromARG
lda #<f_amp
sta setMEMtoFAC.mem
lda #>f_amp
sta setMEMtoFAC.mem+1
jsr setMEMtoFAC
lda #2
sta setFAC.w
lda #0
sta setFAC.w+1
jsr setFAC
lda #<f_amp
sta divMEMbyFAC.mem
lda #>f_amp
sta divMEMbyFAC.mem+1
jsr divMEMbyFAC
lda #<f_amp
sta setMEMtoFAC.mem
lda #>f_amp
sta setMEMtoFAC.mem+1
jsr setMEMtoFAC
lda #<f_min
sta addMEMtoFAC.mem
lda #>f_min
sta addMEMtoFAC.mem+1
jsr addMEMtoFAC
lda #<f_min
sta setMEMtoFAC.mem
lda #>f_min
sta setMEMtoFAC.mem+1
jsr setMEMtoFAC
lda #0
sta i
b1:
lda i
sta _13
lda #0
sta _13+1
jsr setFAC
lda #<f_2pi
sta mulFACbyMEM.mem
lda #>f_2pi
sta mulFACbyMEM.mem+1
jsr mulFACbyMEM
lda #<f_i
sta setMEMtoFAC.mem
lda #>f_i
sta setMEMtoFAC.mem+1
jsr setMEMtoFAC
lda length
sta _17
lda #0
sta _17+1
jsr setFAC
lda #<f_i
sta divMEMbyFAC.mem
lda #>f_i
sta divMEMbyFAC.mem+1
jsr divMEMbyFAC
jsr sinFAC
lda #<f_amp
sta mulFACbyMEM.mem
lda #>f_amp
sta mulFACbyMEM.mem+1
jsr mulFACbyMEM
lda #<f_min
sta addMEMtoFAC.mem
lda #>f_min
sta addMEMtoFAC.mem+1
jsr addMEMtoFAC
jsr getFAC
lda _23
ldy i
sta (sintab),y
inc BORDERCOL
inc i
lda i
cmp length
bcc b1
rts
f_i: .byte 0, 0, 0, 0, 0
f_min: .byte 0, 0, 0, 0, 0
f_amp: .byte 0, 0, 0, 0, 0
}
getFAC: {
.label w = $b
.label return = $b
jsr $b1aa
sty $fe
sta $ff
lda memLo
sta w
lda #0
sta w+1
lda memHi
sta return+1
rts
}
addMEMtoFAC: {
.label mem = 9
jsr prepareMEM
lda $fe
ldy $ff
jsr $b867
rts
}
prepareMEM: {
.label mem = 9
lda mem
sta memLo
lda mem+1
sta memHi
rts
}
mulFACbyMEM: {
.label mem = 9
jsr prepareMEM
lda $fe
ldy $ff
jsr $ba28
rts
}
sinFAC: {
jsr $e26b
rts
}
divMEMbyFAC: {
.label mem = 9
jsr prepareMEM
lda $fe
ldy $ff
jsr $bb0f
rts
}
setFAC: {
.label _0 = 9
.label w = $b
lda w
sta _0
lda w+1
sta _0+1
jsr prepareMEM
ldy $fe
lda $ff
jsr $b391
rts
}
setMEMtoFAC: {
.label mem = 9
jsr prepareMEM
ldx $fe
ldy $ff
jsr $bbd4
rts
}
subFACfromARG: {
jsr $b853
rts
}
setARGtoFAC: {
jsr $bc0f
rts
}
gen_sprites: {
.label spr = 7
.label i = 2
lda #<sprites
sta spr
lda #>sprites
sta spr+1
lda #0
sta i
b1:
ldx i
lda cml,x
tax
lda spr
sta gen_chargen_sprite.sprite
lda spr+1
sta gen_chargen_sprite.sprite+1
jsr gen_chargen_sprite
lda spr
clc
adc #$40
sta spr
bcc !+
inc spr+1
!:
inc i
lda i
cmp #7
bne b1
rts
cml: .text "camelot"
}
gen_chargen_sprite: {
.label _0 = $b
.label _1 = $b
.label sprite = 9
.label chargen = $e
.label bits = 4
.label s_gen = $d
.label x = 5
.label y = 3
.label c = 6
txa
sta _0
lda #0
sta _0+1
asl _1
rol _1+1
asl _1
rol _1+1
asl _1
rol _1+1
lda #<CHARGEN
clc
adc _1
sta chargen
lda #>CHARGEN
adc _1+1
sta chargen+1
sei
lda #$32
sta PROCPORT
lda #0
sta y
b1:
ldy y
lda (chargen),y
sta bits
lda #0
sta x
tay
sta s_gen
b2:
lda bits
and #$80
cmp #0
beq b6
lda #1
sta c
jmp b3
b6:
lda #0
sta c
b3:
ldx #0
b4:
lda s_gen
asl
ora c
sta s_gen
iny
cpy #8
bne b5
ldy #0
sta (sprite),y
ldy #3
sta (sprite),y
ldy #6
sta (sprite),y
inc sprite
bne !+
inc sprite+1
!:
ldy #0
tya
sta s_gen
b5:
inx
cpx #3
bne b4
asl bits
inc x
lda x
cmp #8
bne b2
lda sprite
clc
adc #6
sta sprite
bcc !+
inc sprite+1
!:
inc y
lda y
cmp #8
bne b1
lda #$37
sta PROCPORT
cli
rts
}
place_sprites: {
.const sprites_ptr = SCREEN+$3f8
.label spr_id = 2
.label spr_x = 3
.label col = 4
lda #$7f
sta SPRITES_ENABLE
sta SPRITES_EXPAND_X
sta SPRITES_EXPAND_Y
lda #5
sta col
ldx #0
lda #$3c
sta spr_x
ldy #0
lda #$ff & sprites/$40
sta spr_id
b1:
lda spr_id
sta sprites_ptr,y
inc spr_id
lda spr_x
sta SPRITES_XPOS,x
lda #$50
sta SPRITES_YPOS,x
lda col
sta SPRITES_COLS,y
lda spr_x
clc
adc #$20
sta spr_x
lda col
eor #7^5
sta col
inx
inx
iny
cpy #7
bne b1
rts
}

View File

@ -0,0 +1,419 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@39
@39: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @39
[3] phi() [ ] ( )
main: scope:[main] from @39
[4] phi() [ ] ( main:2 [ ] )
[5] call init param-assignment [ ] ( main:2 [ ] )
to:main::@2
main::@2: scope:[main] from main main::@2 main::@6
[6] (byte) sin_idx_y#13 ← phi( main::@6/(byte) sin_idx_y#11 main/(byte/signed byte/word/signed word) 0 ) [ sin_idx_x#13 sin_idx_y#13 ] ( main:2 [ sin_idx_x#13 sin_idx_y#13 ] )
[6] (byte) sin_idx_x#13 ← phi( main::@6/(byte) sin_idx_x#11 main/(byte/signed byte/word/signed word) 0 ) [ sin_idx_x#13 sin_idx_y#13 ] ( main:2 [ sin_idx_x#13 sin_idx_y#13 ] )
[7] if(*((const byte*) RASTER#0)!=(byte/word/signed word) 255) goto main::@2 [ sin_idx_x#13 sin_idx_y#13 ] ( main:2 [ sin_idx_x#13 sin_idx_y#13 ] )
to:main::@3
main::@3: scope:[main] from main::@2
[8] phi() [ sin_idx_x#13 sin_idx_y#13 ] ( main:2 [ sin_idx_x#13 sin_idx_y#13 ] )
[9] call anim param-assignment [ sin_idx_x#11 sin_idx_y#11 ] ( main:2 [ sin_idx_x#11 sin_idx_y#11 ] )
to:main::@6
main::@6: scope:[main] from main::@3
[10] if(true) goto main::@2 [ sin_idx_x#11 sin_idx_y#11 ] ( main:2 [ sin_idx_x#11 sin_idx_y#11 ] )
to:main::@return
main::@return: scope:[main] from main::@6
[11] return [ ] ( main:2 [ ] )
to:@return
anim: scope:[anim] from main::@3
[12] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ sin_idx_x#13 sin_idx_y#13 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 ] )
[13] (byte) anim::xidx#0 ← (byte) sin_idx_x#13 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#0 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#0 ] )
[14] (byte) anim::yidx#0 ← (byte) sin_idx_y#13 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#0 anim::yidx#0 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#0 anim::yidx#0 ] )
to:anim::@1
anim::@1: scope:[anim] from anim anim::@3
[15] (byte) anim::j#2 ← phi( anim/(byte/signed byte/word/signed word) 0 anim::@3/(byte) anim::j#1 ) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] )
[15] (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] )
[15] (byte) anim::j2#3 ← phi( anim/(byte/signed byte/word/signed word) 12 anim::@3/(byte) anim::j2#2 ) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] )
[15] (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] )
[16] (byte~) anim::$0 ← (const byte[]) sintab_x#0 *idx (byte) anim::xidx#3 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::$0 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::$0 ] )
[17] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] )
[18] (byte~) anim::$1 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::$1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::$1 ] )
[19] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 ] )
[20] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word) 10 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::yidx#3 anim::j#2 anim::xidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::yidx#3 anim::j#2 anim::xidx#1 ] )
[21] if((byte) anim::xidx#1<(const byte) sinlen_x#0) goto anim::@2 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::yidx#3 anim::j#2 anim::xidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::yidx#3 anim::j#2 anim::xidx#1 ] )
to:anim::@6
anim::@6: scope:[anim] from anim::@1
[22] (byte) anim::xidx#2 ← (byte) anim::xidx#1 - (const byte) sinlen_x#0 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::yidx#3 anim::j#2 anim::xidx#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::yidx#3 anim::j#2 anim::xidx#2 ] )
to:anim::@2
anim::@2: scope:[anim] from anim::@1 anim::@6
[23] (byte) anim::xidx#5 ← phi( anim::@1/(byte) anim::xidx#1 anim::@6/(byte) anim::xidx#2 ) [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::yidx#3 anim::j#2 anim::xidx#5 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::yidx#3 anim::j#2 anim::xidx#5 ] )
[24] (byte) anim::yidx#1 ← (byte) anim::yidx#3 + (byte/signed byte/word/signed word) 8 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::j#2 anim::xidx#5 anim::yidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::j#2 anim::xidx#5 anim::yidx#1 ] )
[25] if((byte) anim::yidx#1<(const byte) sinlen_y#0) goto anim::@3 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::j#2 anim::xidx#5 anim::yidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::j#2 anim::xidx#5 anim::yidx#1 ] )
to:anim::@7
anim::@7: scope:[anim] from anim::@2
[26] (byte) anim::yidx#2 ← (byte) anim::yidx#1 - (const byte) sinlen_y#0 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::j#2 anim::xidx#5 anim::yidx#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::j#2 anim::xidx#5 anim::yidx#2 ] )
to:anim::@3
anim::@3: scope:[anim] from anim::@2 anim::@7
[27] (byte) anim::yidx#6 ← phi( anim::@2/(byte) anim::yidx#1 anim::@7/(byte) anim::yidx#2 ) [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::j#2 anim::xidx#5 anim::yidx#6 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#3 anim::j#2 anim::xidx#5 anim::yidx#6 ] )
[28] (byte) anim::j2#1 ← -- (byte) anim::j2#3 [ sin_idx_x#13 sin_idx_y#13 anim::j#2 anim::xidx#5 anim::yidx#6 anim::j2#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j#2 anim::xidx#5 anim::yidx#6 anim::j2#1 ] )
[29] (byte) anim::j2#2 ← -- (byte) anim::j2#1 [ sin_idx_x#13 sin_idx_y#13 anim::j#2 anim::xidx#5 anim::j2#2 anim::yidx#6 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j#2 anim::xidx#5 anim::j2#2 anim::yidx#6 ] )
[30] (byte) anim::j#1 ← ++ (byte) anim::j#2 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#5 anim::j2#2 anim::yidx#6 anim::j#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#5 anim::j2#2 anim::yidx#6 anim::j#1 ] )
[31] if((byte) anim::j#1!=(byte/signed byte/word/signed word) 7) goto anim::@1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#5 anim::j2#2 anim::yidx#6 anim::j#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#5 anim::j2#2 anim::yidx#6 anim::j#1 ] )
to:anim::@8
anim::@8: scope:[anim] from anim::@3
[32] (byte) sin_idx_x#3 ← ++ (byte) sin_idx_x#13 [ sin_idx_y#13 sin_idx_x#3 ] ( main:2::anim:9 [ sin_idx_y#13 sin_idx_x#3 ] )
[33] if((byte) sin_idx_x#3<(const byte) sinlen_x#0) goto anim::@14 [ sin_idx_y#13 sin_idx_x#3 ] ( main:2::anim:9 [ sin_idx_y#13 sin_idx_x#3 ] )
to:anim::@4
anim::@4: scope:[anim] from anim::@14 anim::@8
[34] (byte) sin_idx_x#11 ← phi( anim::@14/(byte) sin_idx_x#3 anim::@8/(byte/signed byte/word/signed word) 0 ) [ sin_idx_y#13 sin_idx_x#11 ] ( main:2::anim:9 [ sin_idx_y#13 sin_idx_x#11 ] )
[35] (byte) sin_idx_y#3 ← ++ (byte) sin_idx_y#13 [ sin_idx_x#11 sin_idx_y#3 ] ( main:2::anim:9 [ sin_idx_x#11 sin_idx_y#3 ] )
[36] if((byte) sin_idx_y#3<(const byte) sinlen_y#0) goto anim::@15 [ sin_idx_x#11 sin_idx_y#3 ] ( main:2::anim:9 [ sin_idx_x#11 sin_idx_y#3 ] )
to:anim::@5
anim::@5: scope:[anim] from anim::@15 anim::@4
[37] (byte) sin_idx_y#11 ← phi( anim::@4/(byte/signed byte/word/signed word) 0 anim::@15/(byte) sin_idx_y#3 ) [ sin_idx_x#11 sin_idx_y#11 ] ( main:2::anim:9 [ sin_idx_x#11 sin_idx_y#11 ] )
[38] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [ sin_idx_x#11 sin_idx_y#11 ] ( main:2::anim:9 [ sin_idx_x#11 sin_idx_y#11 ] )
to:anim::@return
anim::@return: scope:[anim] from anim::@5
[39] return [ sin_idx_x#11 sin_idx_y#11 ] ( main:2::anim:9 [ sin_idx_x#11 sin_idx_y#11 ] )
to:@return
anim::@15: scope:[anim] from anim::@4
[40] phi() [ sin_idx_x#11 sin_idx_y#3 ] ( main:2::anim:9 [ sin_idx_x#11 sin_idx_y#3 ] )
to:anim::@5
anim::@14: scope:[anim] from anim::@8
[41] phi() [ sin_idx_y#13 sin_idx_x#3 ] ( main:2::anim:9 [ sin_idx_y#13 sin_idx_x#3 ] )
to:anim::@4
init: scope:[init] from main
[42] phi() [ ] ( main:2::init:5 [ ] )
to:init::@1
init::@1: scope:[init] from init init::@1
[43] (byte*) init::sc#2 ← phi( init/(const byte*) SCREEN#0 init::@1/(byte*) init::sc#1 ) [ init::sc#2 ] ( main:2::init:5 [ init::sc#2 ] )
[44] *((byte*) init::sc#2) ← (byte) ' ' [ init::sc#2 ] ( main:2::init:5 [ init::sc#2 ] )
[45] (byte*) init::sc#1 ← ++ (byte*) init::sc#2 [ init::sc#1 ] ( main:2::init:5 [ init::sc#1 ] )
[46] if((byte*) init::sc#1<(const byte*) SCREEN#0+(word/signed word) 1000) goto init::@1 [ init::sc#1 ] ( main:2::init:5 [ init::sc#1 ] )
to:init::@2
init::@2: scope:[init] from init::@1
[47] phi() [ ] ( main:2::init:5 [ ] )
[48] call place_sprites param-assignment [ ] ( main:2::init:5 [ ] )
to:init::@3
init::@3: scope:[init] from init::@2
[49] phi() [ ] ( main:2::init:5 [ ] )
[50] call gen_sprites param-assignment [ ] ( main:2::init:5 [ ] )
to:init::@4
init::@4: scope:[init] from init::@3
[51] phi() [ ] ( main:2::init:5 [ ] )
[52] call gen_sintab param-assignment [ ] ( main:2::init:5 [ ] )
to:init::@5
init::@5: scope:[init] from init::@4
[53] phi() [ ] ( main:2::init:5 [ ] )
[54] call gen_sintab param-assignment [ ] ( main:2::init:5 [ ] )
to:init::@return
init::@return: scope:[init] from init::@5
[55] return [ ] ( main:2::init:5 [ ] )
to:@return
gen_sintab: scope:[gen_sintab] from init::@4 init::@5
[56] (byte*) gen_sintab::sintab#12 ← phi( init::@4/(const byte[]) sintab_x#0 init::@5/(const byte[]) sintab_y#0 ) [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] )
[56] (byte) gen_sintab::length#10 ← phi( init::@4/(const byte) sinlen_x#0 init::@5/(const byte) sinlen_y#0 ) [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] )
[56] (byte) gen_sintab::min#2 ← phi( init::@4/(byte/signed byte/word/signed word) 16 init::@5/(byte/signed byte/word/signed word) 48 ) [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] )
[56] (byte) gen_sintab::max#2 ← phi( init::@4/(byte/word/signed word) 255 init::@5/(byte/word/signed word) 208 ) [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::max#2 gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] )
[57] (word~) gen_sintab::$0 ← ((word)) (byte) gen_sintab::max#2 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::$0 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::$0 ] main:2::init:5::gen_sintab:54 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::$0 ] )
[58] (word) setFAC::w#0 ← (word~) gen_sintab::$0 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#0 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#0 ] main:2::init:5::gen_sintab:54 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#0 ] )
[59] call setFAC param-assignment [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@3
gen_sintab::@3: scope:[gen_sintab] from gen_sintab
[60] phi() [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] )
[61] call setARGtoFAC param-assignment [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@4
gen_sintab::@4: scope:[gen_sintab] from gen_sintab::@3
asm { lda#0ldx#0ldy#0 }
[63] (word~) gen_sintab::$3 ← ((word)) (byte) gen_sintab::min#2 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::$3 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::$3 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::$3 ] )
[64] (word) setFAC::w#1 ← (word~) gen_sintab::$3 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#1 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#1 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#1 ] )
[65] call setFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@5
gen_sintab::@5: scope:[gen_sintab] from gen_sintab::@4
[66] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
[67] call setMEMtoFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@6
gen_sintab::@6: scope:[gen_sintab] from gen_sintab::@5
[68] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
[69] call subFACfromARG param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@7
gen_sintab::@7: scope:[gen_sintab] from gen_sintab::@6
[70] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
[71] call setMEMtoFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@8
gen_sintab::@8: scope:[gen_sintab] from gen_sintab::@7
[72] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
[73] call setFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@9
gen_sintab::@9: scope:[gen_sintab] from gen_sintab::@8
[74] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
[75] call divMEMbyFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@10
gen_sintab::@10: scope:[gen_sintab] from gen_sintab::@9
[76] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
[77] call setMEMtoFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@11
gen_sintab::@11: scope:[gen_sintab] from gen_sintab::@10
[78] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
[79] call addMEMtoFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@12
gen_sintab::@12: scope:[gen_sintab] from gen_sintab::@11
[80] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
[81] call setMEMtoFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:gen_sintab::@1
gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@12 gen_sintab::@22
[82] (byte) gen_sintab::i#10 ← phi( gen_sintab::@12/(byte/signed byte/word/signed word) 0 gen_sintab::@22/(byte) gen_sintab::i#1 ) [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[83] (word~) gen_sintab::$13 ← ((word)) (byte) gen_sintab::i#10 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$13 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$13 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$13 ] )
[84] (word) setFAC::w#3 ← (word~) gen_sintab::$13 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#3 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#3 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#3 ] )
[85] call setFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:gen_sintab::@14
gen_sintab::@14: scope:[gen_sintab] from gen_sintab::@1
[86] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[87] call mulFACbyMEM param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:gen_sintab::@15
gen_sintab::@15: scope:[gen_sintab] from gen_sintab::@14
[88] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[89] call setMEMtoFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:gen_sintab::@16
gen_sintab::@16: scope:[gen_sintab] from gen_sintab::@15
[90] (word~) gen_sintab::$17 ← ((word)) (byte) gen_sintab::length#10 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$17 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$17 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$17 ] )
[91] (word) setFAC::w#4 ← (word~) gen_sintab::$17 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#4 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#4 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#4 ] )
[92] call setFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:gen_sintab::@17
gen_sintab::@17: scope:[gen_sintab] from gen_sintab::@16
[93] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[94] call divMEMbyFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:gen_sintab::@18
gen_sintab::@18: scope:[gen_sintab] from gen_sintab::@17
[95] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[96] call sinFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:gen_sintab::@19
gen_sintab::@19: scope:[gen_sintab] from gen_sintab::@18
[97] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[98] call mulFACbyMEM param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:gen_sintab::@20
gen_sintab::@20: scope:[gen_sintab] from gen_sintab::@19
[99] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[100] call addMEMtoFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:gen_sintab::@21
gen_sintab::@21: scope:[gen_sintab] from gen_sintab::@20
[101] phi() [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[102] call getFAC param-assignment [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#0 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#0 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#0 ] )
[103] (word) getFAC::return#2 ← (word) getFAC::return#0 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#2 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#2 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#2 ] )
to:gen_sintab::@22
gen_sintab::@22: scope:[gen_sintab] from gen_sintab::@21
[104] (word~) gen_sintab::$23 ← (word) getFAC::return#2 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$23 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$23 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$23 ] )
[105] (byte~) gen_sintab::$24 ← ((byte)) (word~) gen_sintab::$23 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$24 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$24 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 gen_sintab::$24 ] )
[106] *((byte*) gen_sintab::sintab#12 + (byte) gen_sintab::i#10) ← (byte~) gen_sintab::$24 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[107] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
[108] (byte) gen_sintab::i#1 ← ++ (byte) gen_sintab::i#10 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#1 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#1 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#1 ] )
[109] if((byte) gen_sintab::i#1<(byte) gen_sintab::length#10) goto gen_sintab::@1 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#1 ] ( main:2::init:5::gen_sintab:52 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#1 ] main:2::init:5::gen_sintab:54 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#1 ] )
to:gen_sintab::@return
gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@22
[110] return [ ] ( main:2::init:5::gen_sintab:52 [ ] main:2::init:5::gen_sintab:54 [ ] )
to:@return
getFAC: scope:[getFAC] from gen_sintab::@21
asm { jsr$b1aasty$festa$ff }
[112] (word) getFAC::w#1 ← (byte/signed byte/word/signed word) 0 lo= *((const byte*) memLo#0) [ getFAC::w#1 ] ( main:2::init:5::gen_sintab:52::getFAC:102 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::w#1 ] main:2::init:5::gen_sintab:54::getFAC:102 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::w#1 ] )
[113] (word) getFAC::return#0 ← (word) getFAC::w#1 hi= *((const byte*) memHi#0) [ getFAC::return#0 ] ( main:2::init:5::gen_sintab:52::getFAC:102 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#0 ] main:2::init:5::gen_sintab:54::getFAC:102 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#0 ] )
to:getFAC::@return
getFAC::@return: scope:[getFAC] from getFAC
[114] return [ getFAC::return#0 ] ( main:2::init:5::gen_sintab:52::getFAC:102 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#0 ] main:2::init:5::gen_sintab:54::getFAC:102 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 getFAC::return#0 ] )
to:@return
addMEMtoFAC: scope:[addMEMtoFAC] from gen_sintab::@11 gen_sintab::@20
[115] (byte*) addMEMtoFAC::mem#2 ← phi( gen_sintab::@11/(const byte[]) gen_sintab::f_min#0 gen_sintab::@20/(const byte[]) gen_sintab::f_min#0 ) [ addMEMtoFAC::mem#2 ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79 [ gen_sintab::length#10 gen_sintab::sintab#12 addMEMtoFAC::mem#2 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79 [ gen_sintab::length#10 gen_sintab::sintab#12 addMEMtoFAC::mem#2 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 addMEMtoFAC::mem#2 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 addMEMtoFAC::mem#2 ] )
[116] (byte*) prepareMEM::mem#2 ← (byte*) addMEMtoFAC::mem#2 [ prepareMEM::mem#2 ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#2 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#2 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#2 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#2 ] )
[117] call prepareMEM param-assignment [ ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:addMEMtoFAC::@1
addMEMtoFAC::@1: scope:[addMEMtoFAC] from addMEMtoFAC
asm { lda$feldy$ffjsr$b867 }
to:addMEMtoFAC::@return
addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC::@1
[119] return [ ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:@return
prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC
[120] (byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(byte*) prepareMEM::mem#2 divMEMbyFAC/(byte*) prepareMEM::mem#3 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 ) [ prepareMEM::mem#5 ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] )
[121] (byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#5 [ prepareMEM::mem#5 prepareMEM::$0 ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 prepareMEM::$0 ] )
[122] *((const byte*) memLo#0) ← (byte~) prepareMEM::$0 [ prepareMEM::mem#5 ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#5 ] )
[123] (byte~) prepareMEM::$1 ← > (byte*) prepareMEM::mem#5 [ prepareMEM::$1 ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::$1 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::$1 ] )
[124] *((const byte*) memHi#0) ← (byte~) prepareMEM::$1 [ ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:prepareMEM::@return
prepareMEM::@return: scope:[prepareMEM] from prepareMEM
[125] return [ ] ( main:2::init:5::gen_sintab:52::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:79::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::addMEMtoFAC:100::prepareMEM:117 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98::prepareMEM:128 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94::prepareMEM:135 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:59::prepareMEM:141 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:65::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:73::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setFAC:85::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setFAC:92::prepareMEM:141 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89::prepareMEM:146 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:@return
mulFACbyMEM: scope:[mulFACbyMEM] from gen_sintab::@14 gen_sintab::@19
[126] (byte*) mulFACbyMEM::mem#2 ← phi( gen_sintab::@14/(const byte*) gen_sintab::f_2pi#0 gen_sintab::@19/(const byte[]) gen_sintab::f_amp#0 ) [ mulFACbyMEM::mem#2 ] ( main:2::init:5::gen_sintab:52::mulFACbyMEM:87 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 mulFACbyMEM::mem#2 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 mulFACbyMEM::mem#2 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 mulFACbyMEM::mem#2 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 mulFACbyMEM::mem#2 ] )
[127] (byte*) prepareMEM::mem#4 ← (byte*) mulFACbyMEM::mem#2 [ prepareMEM::mem#4 ] ( main:2::init:5::gen_sintab:52::mulFACbyMEM:87 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#4 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#4 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#4 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#4 ] )
[128] call prepareMEM param-assignment [ ] ( main:2::init:5::gen_sintab:52::mulFACbyMEM:87 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:mulFACbyMEM::@1
mulFACbyMEM::@1: scope:[mulFACbyMEM] from mulFACbyMEM
asm { lda$feldy$ffjsr$ba28 }
to:mulFACbyMEM::@return
mulFACbyMEM::@return: scope:[mulFACbyMEM] from mulFACbyMEM::@1
[130] return [ ] ( main:2::init:5::gen_sintab:52::mulFACbyMEM:87 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:87 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::mulFACbyMEM:98 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::mulFACbyMEM:98 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:@return
sinFAC: scope:[sinFAC] from gen_sintab::@18
asm { jsr$e26b }
to:sinFAC::@return
sinFAC::@return: scope:[sinFAC] from sinFAC
[132] return [ ] ( main:2::init:5::gen_sintab:52::sinFAC:96 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::sinFAC:96 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:@return
divMEMbyFAC: scope:[divMEMbyFAC] from gen_sintab::@17 gen_sintab::@9
[133] (byte*) divMEMbyFAC::mem#2 ← phi( gen_sintab::@17/(const byte[]) gen_sintab::f_i#0 gen_sintab::@9/(const byte[]) gen_sintab::f_amp#0 ) [ divMEMbyFAC::mem#2 ] ( main:2::init:5::gen_sintab:52::divMEMbyFAC:75 [ gen_sintab::length#10 gen_sintab::sintab#12 divMEMbyFAC::mem#2 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75 [ gen_sintab::length#10 gen_sintab::sintab#12 divMEMbyFAC::mem#2 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 divMEMbyFAC::mem#2 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 divMEMbyFAC::mem#2 ] )
[134] (byte*) prepareMEM::mem#3 ← (byte*) divMEMbyFAC::mem#2 [ prepareMEM::mem#3 ] ( main:2::init:5::gen_sintab:52::divMEMbyFAC:75 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#3 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#3 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#3 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#3 ] )
[135] call prepareMEM param-assignment [ ] ( main:2::init:5::gen_sintab:52::divMEMbyFAC:75 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:divMEMbyFAC::@1
divMEMbyFAC::@1: scope:[divMEMbyFAC] from divMEMbyFAC
asm { lda$feldy$ffjsr$bb0f }
to:divMEMbyFAC::@return
divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC::@1
[137] return [ ] ( main:2::init:5::gen_sintab:52::divMEMbyFAC:75 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:75 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::divMEMbyFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::divMEMbyFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:@return
setFAC: scope:[setFAC] from gen_sintab gen_sintab::@1 gen_sintab::@16 gen_sintab::@4 gen_sintab::@8
[138] (word) setFAC::w#5 ← phi( gen_sintab/(word) setFAC::w#0 gen_sintab::@1/(word) setFAC::w#3 gen_sintab::@16/(word) setFAC::w#4 gen_sintab::@4/(word) setFAC::w#1 gen_sintab::@8/(byte/signed byte/word/signed word) 2 ) [ setFAC::w#5 ] ( main:2::init:5::gen_sintab:52::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#5 ] main:2::init:5::gen_sintab:54::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#5 ] main:2::init:5::gen_sintab:52::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#5 ] main:2::init:5::gen_sintab:54::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#5 ] main:2::init:5::gen_sintab:52::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#5 ] main:2::init:5::gen_sintab:54::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#5 ] main:2::init:5::gen_sintab:52::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#5 ] main:2::init:5::gen_sintab:54::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#5 ] main:2::init:5::gen_sintab:52::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#5 ] main:2::init:5::gen_sintab:54::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::w#5 ] )
[139] (byte*~) setFAC::$0 ← ((byte*)) (word) setFAC::w#5 [ setFAC::$0 ] ( main:2::init:5::gen_sintab:52::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::$0 ] main:2::init:5::gen_sintab:54::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::$0 ] main:2::init:5::gen_sintab:52::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::$0 ] main:2::init:5::gen_sintab:54::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::$0 ] main:2::init:5::gen_sintab:52::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::$0 ] main:2::init:5::gen_sintab:54::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::$0 ] main:2::init:5::gen_sintab:52::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::$0 ] main:2::init:5::gen_sintab:54::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::$0 ] main:2::init:5::gen_sintab:52::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::$0 ] main:2::init:5::gen_sintab:54::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setFAC::$0 ] )
[140] (byte*) prepareMEM::mem#0 ← (byte*~) setFAC::$0 [ prepareMEM::mem#0 ] ( main:2::init:5::gen_sintab:52::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#0 ] main:2::init:5::gen_sintab:54::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#0 ] main:2::init:5::gen_sintab:52::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#0 ] main:2::init:5::gen_sintab:54::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#0 ] main:2::init:5::gen_sintab:52::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#0 ] main:2::init:5::gen_sintab:54::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#0 ] main:2::init:5::gen_sintab:52::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#0 ] main:2::init:5::gen_sintab:54::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#0 ] main:2::init:5::gen_sintab:52::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#0 ] main:2::init:5::gen_sintab:54::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#0 ] )
[141] call prepareMEM param-assignment [ ] ( main:2::init:5::gen_sintab:52::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:setFAC::@1
setFAC::@1: scope:[setFAC] from setFAC
asm { ldy$felda$ffjsr$b391 }
to:setFAC::@return
setFAC::@return: scope:[setFAC] from setFAC::@1
[143] return [ ] ( main:2::init:5::gen_sintab:52::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:59 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:65 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setFAC:73 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setFAC:85 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:52::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setFAC:92 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:@return
setMEMtoFAC: scope:[setMEMtoFAC] from gen_sintab::@10 gen_sintab::@12 gen_sintab::@15 gen_sintab::@5 gen_sintab::@7
[144] (byte*) setMEMtoFAC::mem#5 ← phi( gen_sintab::@10/(const byte[]) gen_sintab::f_amp#0 gen_sintab::@12/(const byte[]) gen_sintab::f_min#0 gen_sintab::@15/(const byte[]) gen_sintab::f_i#0 gen_sintab::@5/(const byte[]) gen_sintab::f_min#0 gen_sintab::@7/(const byte[]) gen_sintab::f_amp#0 ) [ setMEMtoFAC::mem#5 ] ( main:2::init:5::gen_sintab:52::setMEMtoFAC:67 [ gen_sintab::length#10 gen_sintab::sintab#12 setMEMtoFAC::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67 [ gen_sintab::length#10 gen_sintab::sintab#12 setMEMtoFAC::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71 [ gen_sintab::length#10 gen_sintab::sintab#12 setMEMtoFAC::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71 [ gen_sintab::length#10 gen_sintab::sintab#12 setMEMtoFAC::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77 [ gen_sintab::length#10 gen_sintab::sintab#12 setMEMtoFAC::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77 [ gen_sintab::length#10 gen_sintab::sintab#12 setMEMtoFAC::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81 [ gen_sintab::length#10 gen_sintab::sintab#12 setMEMtoFAC::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81 [ gen_sintab::length#10 gen_sintab::sintab#12 setMEMtoFAC::mem#5 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setMEMtoFAC::mem#5 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 setMEMtoFAC::mem#5 ] )
[145] (byte*) prepareMEM::mem#1 ← (byte*) setMEMtoFAC::mem#5 [ prepareMEM::mem#1 ] ( main:2::init:5::gen_sintab:52::setMEMtoFAC:67 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81 [ gen_sintab::length#10 gen_sintab::sintab#12 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 prepareMEM::mem#1 ] )
[146] call prepareMEM param-assignment [ ] ( main:2::init:5::gen_sintab:52::setMEMtoFAC:67 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:setMEMtoFAC::@1
setMEMtoFAC::@1: scope:[setMEMtoFAC] from setMEMtoFAC
asm { ldx$feldy$ffjsr$bbd4 }
to:setMEMtoFAC::@return
setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC::@1
[148] return [ ] ( main:2::init:5::gen_sintab:52::setMEMtoFAC:67 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:67 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:71 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:71 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:77 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:77 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:81 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:81 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:52::setMEMtoFAC:89 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] main:2::init:5::gen_sintab:54::setMEMtoFAC:89 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 ] )
to:@return
subFACfromARG: scope:[subFACfromARG] from gen_sintab::@6
asm { jsr$b853 }
to:subFACfromARG::@return
subFACfromARG::@return: scope:[subFACfromARG] from subFACfromARG
[150] return [ ] ( main:2::init:5::gen_sintab:52::subFACfromARG:69 [ gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::subFACfromARG:69 [ gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:@return
setARGtoFAC: scope:[setARGtoFAC] from gen_sintab::@3
asm { jsr$bc0f }
to:setARGtoFAC::@return
setARGtoFAC::@return: scope:[setARGtoFAC] from setARGtoFAC
[152] return [ ] ( main:2::init:5::gen_sintab:52::setARGtoFAC:61 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] main:2::init:5::gen_sintab:54::setARGtoFAC:61 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 ] )
to:@return
gen_sprites: scope:[gen_sprites] from init::@3
[153] phi() [ ] ( main:2::init:5::gen_sprites:50 [ ] )
to:gen_sprites::@1
gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3
[154] (byte*) gen_sprites::spr#2 ← phi( gen_sprites/(const byte[]) sprites#0 gen_sprites::@3/(byte*) gen_sprites::spr#1 ) [ gen_sprites::i#2 gen_sprites::spr#2 ] ( main:2::init:5::gen_sprites:50 [ gen_sprites::i#2 gen_sprites::spr#2 ] )
[154] (byte) gen_sprites::i#2 ← phi( gen_sprites/(byte/signed byte/word/signed word) 0 gen_sprites::@3/(byte) gen_sprites::i#1 ) [ gen_sprites::i#2 gen_sprites::spr#2 ] ( main:2::init:5::gen_sprites:50 [ gen_sprites::i#2 gen_sprites::spr#2 ] )
[155] (byte~) gen_sprites::$0 ← (const byte[]) gen_sprites::cml#0 *idx (byte) gen_sprites::i#2 [ gen_sprites::i#2 gen_sprites::spr#2 gen_sprites::$0 ] ( main:2::init:5::gen_sprites:50 [ gen_sprites::i#2 gen_sprites::spr#2 gen_sprites::$0 ] )
[156] (byte) gen_chargen_sprite::ch#0 ← (byte~) gen_sprites::$0 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::ch#0 ] ( main:2::init:5::gen_sprites:50 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::ch#0 ] )
[157] (byte*) gen_chargen_sprite::sprite#0 ← (byte*) gen_sprites::spr#2 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::ch#0 gen_chargen_sprite::sprite#0 ] ( main:2::init:5::gen_sprites:50 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::ch#0 gen_chargen_sprite::sprite#0 ] )
[158] call gen_chargen_sprite param-assignment [ gen_sprites::i#2 gen_sprites::spr#2 ] ( main:2::init:5::gen_sprites:50 [ gen_sprites::i#2 gen_sprites::spr#2 ] )
to:gen_sprites::@3
gen_sprites::@3: scope:[gen_sprites] from gen_sprites::@1
[159] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word) 64 [ gen_sprites::i#2 gen_sprites::spr#1 ] ( main:2::init:5::gen_sprites:50 [ gen_sprites::i#2 gen_sprites::spr#1 ] )
[160] (byte) gen_sprites::i#1 ← ++ (byte) gen_sprites::i#2 [ gen_sprites::i#1 gen_sprites::spr#1 ] ( main:2::init:5::gen_sprites:50 [ gen_sprites::i#1 gen_sprites::spr#1 ] )
[161] if((byte) gen_sprites::i#1!=(byte/signed byte/word/signed word) 7) goto gen_sprites::@1 [ gen_sprites::i#1 gen_sprites::spr#1 ] ( main:2::init:5::gen_sprites:50 [ gen_sprites::i#1 gen_sprites::spr#1 ] )
to:gen_sprites::@return
gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@3
[162] return [ ] ( main:2::init:5::gen_sprites:50 [ ] )
to:@return
gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1
[163] (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#0 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::$0 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::$0 ] )
[164] (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word) 3 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::$1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::$1 ] )
[165] (byte*) gen_chargen_sprite::chargen#0 ← (const byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] )
asm { sei }
[167] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] )
to:gen_chargen_sprite::@1
gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9
[168] (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 ] )
[168] (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte/signed byte/word/signed word) 0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 ] )
[169] (byte) gen_chargen_sprite::bits#0 ← (byte*) gen_chargen_sprite::chargen#0 *idx (byte) gen_chargen_sprite::y#2 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 gen_chargen_sprite::bits#0 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 gen_chargen_sprite::bits#0 ] )
to:gen_chargen_sprite::@2
gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8
[170] (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(byte/signed byte/word/signed word) 0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] )
[170] (byte*) gen_chargen_sprite::sprite#10 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::sprite#11 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::sprite#4 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] )
[170] (byte) gen_chargen_sprite::s_gen_cnt#4 ← phi( gen_chargen_sprite::@1/(byte/signed byte/word/signed word) 0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::s_gen_cnt#5 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] )
[170] (byte) gen_chargen_sprite::s_gen#5 ← phi( gen_chargen_sprite::@1/(byte/signed byte/word/signed word) 0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::s_gen#6 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] )
[170] (byte) gen_chargen_sprite::bits#2 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::bits#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::bits#1 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] )
[171] (byte~) gen_chargen_sprite::$4 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word) 128 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$4 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$4 ] )
[172] if((byte~) gen_chargen_sprite::$4==(byte/signed byte/word/signed word) 0) goto gen_chargen_sprite::@3 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] )
to:gen_chargen_sprite::@6
gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2
[173] phi() [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 ] )
to:gen_chargen_sprite::@3
gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 gen_chargen_sprite::@6
[174] (byte) gen_chargen_sprite::c#3 ← phi( gen_chargen_sprite::@2/(byte/signed byte/word/signed word) 0 gen_chargen_sprite::@6/(byte/signed byte/word/signed word) 1 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 ] )
to:gen_chargen_sprite::@4
gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 gen_chargen_sprite::@5
[175] (byte*) gen_chargen_sprite::sprite#3 ← phi( gen_chargen_sprite::@3/(byte*) gen_chargen_sprite::sprite#10 gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::sprite#4 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] )
[175] (byte) gen_chargen_sprite::b#2 ← phi( gen_chargen_sprite::@3/(byte/signed byte/word/signed word) 0 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::b#1 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] )
[175] (byte) gen_chargen_sprite::s_gen_cnt#3 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen_cnt#5 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] )
[175] (byte) gen_chargen_sprite::s_gen#3 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::s_gen#5 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen#6 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] )
[176] (byte~) gen_chargen_sprite::$7 ← (byte) gen_chargen_sprite::s_gen#3 << (byte/signed byte/word/signed word) 1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::$7 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::$7 ] )
[177] (byte) gen_chargen_sprite::s_gen#1 ← (byte~) gen_chargen_sprite::$7 | (byte) gen_chargen_sprite::c#3 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] )
[178] (byte) gen_chargen_sprite::s_gen_cnt#1 ← ++ (byte) gen_chargen_sprite::s_gen_cnt#3 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 gen_chargen_sprite::s_gen_cnt#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 gen_chargen_sprite::s_gen_cnt#1 ] )
[179] if((byte) gen_chargen_sprite::s_gen_cnt#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@5 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 gen_chargen_sprite::s_gen_cnt#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 gen_chargen_sprite::s_gen_cnt#1 ] )
to:gen_chargen_sprite::@7
gen_chargen_sprite::@7: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4
[180] *((byte*) gen_chargen_sprite::sprite#3 + (byte/signed byte/word/signed word) 0) ← (byte) gen_chargen_sprite::s_gen#1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] )
[181] *((byte*) gen_chargen_sprite::sprite#3 + (byte/signed byte/word/signed word) 3) ← (byte) gen_chargen_sprite::s_gen#1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] )
[182] *((byte*) gen_chargen_sprite::sprite#3 + (byte/signed byte/word/signed word) 6) ← (byte) gen_chargen_sprite::s_gen#1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] )
[183] (byte*) gen_chargen_sprite::sprite#1 ← ++ (byte*) gen_chargen_sprite::sprite#3 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#1 ] )
to:gen_chargen_sprite::@5
gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@7
[184] (byte*) gen_chargen_sprite::sprite#4 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::sprite#3 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::sprite#1 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 ] )
[184] (byte) gen_chargen_sprite::s_gen_cnt#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::s_gen_cnt#1 gen_chargen_sprite::@7/(byte/signed byte/word/signed word) 0 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 ] )
[184] (byte) gen_chargen_sprite::s_gen#6 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::s_gen#1 gen_chargen_sprite::@7/(byte/signed byte/word/signed word) 0 ) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 ] )
[185] (byte) gen_chargen_sprite::b#1 ← ++ (byte) gen_chargen_sprite::b#2 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#1 ] )
[186] if((byte) gen_chargen_sprite::b#1!=(byte/signed byte/word/signed word) 3) goto gen_chargen_sprite::@4 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::c#3 gen_chargen_sprite::b#1 ] )
to:gen_chargen_sprite::@8
gen_chargen_sprite::@8: scope:[gen_chargen_sprite] from gen_chargen_sprite::@5
[187] (byte) gen_chargen_sprite::bits#1 ← (byte) gen_chargen_sprite::bits#2 << (byte/signed byte/word/signed word) 1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::x#6 gen_chargen_sprite::bits#1 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::x#6 gen_chargen_sprite::bits#1 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 ] )
[188] (byte) gen_chargen_sprite::x#1 ← ++ (byte) gen_chargen_sprite::x#6 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#1 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::x#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#1 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::x#1 ] )
[189] if((byte) gen_chargen_sprite::x#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@2 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#1 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::x#1 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#1 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::sprite#4 gen_chargen_sprite::x#1 ] )
to:gen_chargen_sprite::@9
gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8
[190] (byte*) gen_chargen_sprite::sprite#2 ← (byte*) gen_chargen_sprite::sprite#4 + (byte/signed byte/word/signed word) 6 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#2 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#2 ] )
[191] (byte) gen_chargen_sprite::y#1 ← ++ (byte) gen_chargen_sprite::y#2 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#1 gen_chargen_sprite::sprite#2 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#1 gen_chargen_sprite::sprite#2 ] )
[192] if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#1 gen_chargen_sprite::sprite#2 ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#1 gen_chargen_sprite::sprite#2 ] )
to:gen_chargen_sprite::@10
gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9
[193] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 [ ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 ] )
asm { cli }
to:gen_chargen_sprite::@return
gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10
[195] return [ ] ( main:2::init:5::gen_sprites:50::gen_chargen_sprite:158 [ gen_sprites::i#2 gen_sprites::spr#2 ] )
to:@return
place_sprites: scope:[place_sprites] from init::@2
[196] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 127 [ ] ( main:2::init:5::place_sprites:48 [ ] )
[197] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word) 127 [ ] ( main:2::init:5::place_sprites:48 [ ] )
[198] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word) 127 [ ] ( main:2::init:5::place_sprites:48 [ ] )
to:place_sprites::@1
place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1
[199] (byte) place_sprites::col#2 ← phi( place_sprites/(byte/signed byte/word/signed word) 5 place_sprites::@1/(byte) place_sprites::col#1 ) [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] ( main:2::init:5::place_sprites:48 [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] )
[199] (byte) place_sprites::j2#3 ← phi( place_sprites/(byte/signed byte/word/signed word) 0 place_sprites::@1/(byte) place_sprites::j2#2 ) [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] ( main:2::init:5::place_sprites:48 [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] )
[199] (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte/signed byte/word/signed word) 60 place_sprites::@1/(byte) place_sprites::spr_x#1 ) [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] ( main:2::init:5::place_sprites:48 [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] )
[199] (byte) place_sprites::j#2 ← phi( place_sprites/(byte/signed byte/word/signed word) 0 place_sprites::@1/(byte) place_sprites::j#1 ) [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] ( main:2::init:5::place_sprites:48 [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] )
[199] (byte) place_sprites::spr_id#2 ← phi( place_sprites/((byte))(const byte[]) sprites#0/(byte/signed byte/word/signed word) 64 place_sprites::@1/(byte) place_sprites::spr_id#1 ) [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] ( main:2::init:5::place_sprites:48 [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] )
[200] *((const byte*) place_sprites::sprites_ptr#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] ( main:2::init:5::place_sprites:48 [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] )
[201] (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] )
[202] *((const byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] )
[203] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] )
[204] *((const byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] )
[205] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word) 32 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] )
[206] (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (byte/signed byte/word/signed word) 7^(byte/signed byte/word/signed word) 5 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::col#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::col#1 ] )
[207] (byte) place_sprites::j2#1 ← ++ (byte) place_sprites::j2#3 [ place_sprites::j#2 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::col#1 place_sprites::j2#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::j#2 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::col#1 place_sprites::j2#1 ] )
[208] (byte) place_sprites::j2#2 ← ++ (byte) place_sprites::j2#1 [ place_sprites::j#2 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::j2#2 place_sprites::col#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::j#2 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::j2#2 place_sprites::col#1 ] )
[209] (byte) place_sprites::j#1 ← ++ (byte) place_sprites::j#2 [ place_sprites::spr_id#1 place_sprites::j#1 place_sprites::spr_x#1 place_sprites::j2#2 place_sprites::col#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::spr_id#1 place_sprites::j#1 place_sprites::spr_x#1 place_sprites::j2#2 place_sprites::col#1 ] )
[210] if((byte) place_sprites::j#1!=(byte/signed byte/word/signed word) 7) goto place_sprites::@1 [ place_sprites::spr_id#1 place_sprites::j#1 place_sprites::spr_x#1 place_sprites::j2#2 place_sprites::col#1 ] ( main:2::init:5::place_sprites:48 [ place_sprites::spr_id#1 place_sprites::j#1 place_sprites::spr_x#1 place_sprites::j2#2 place_sprites::col#1 ] )
to:place_sprites::@return
place_sprites::@return: scope:[place_sprites] from place_sprites::@1
[211] return [ ] ( main:2::init:5::place_sprites:48 [ ] )
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,311 @@
(label) @39
(label) @begin
(label) @end
(byte*) BORDERCOL
(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word) 53280
(byte*) CHARGEN
(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word) 53248
(byte*) PROCPORT
(const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word) 1
(byte*) RASTER
(const byte*) RASTER#0 RASTER = ((byte*))(word) 53266
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
(byte*) SPRITES_COLS
(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word) 53287
(byte*) SPRITES_ENABLE
(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word) 53269
(byte*) SPRITES_EXPAND_X
(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word) 53277
(byte*) SPRITES_EXPAND_Y
(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word) 53271
(byte*) SPRITES_XPOS
(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word) 53248
(byte*) SPRITES_YPOS
(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word) 53249
(void()) addMEMtoFAC((byte*) addMEMtoFAC::mem)
(label) addMEMtoFAC::@1
(label) addMEMtoFAC::@return
(byte*) addMEMtoFAC::mem
(byte*) addMEMtoFAC::mem#2 mem zp ZP_PTR_BYTE:9 2.0
(void()) anim()
(byte~) anim::$0 reg byte a 202.0
(byte~) anim::$1 reg byte a 202.0
(label) anim::@1
(label) anim::@14
(label) anim::@15
(label) anim::@2
(label) anim::@3
(label) anim::@4
(label) anim::@5
(label) anim::@6
(label) anim::@7
(label) anim::@8
(label) anim::@return
(byte) anim::j
(byte) anim::j#1 j zp ZP_BYTE:6 151.5
(byte) anim::j#2 j zp ZP_BYTE:6 13.466666666666667
(byte) anim::j2
(byte) anim::j2#1 reg byte y 202.0
(byte) anim::j2#2 reg byte y 67.33333333333333
(byte) anim::j2#3 reg byte y 31.076923076923077
(byte) anim::xidx
(byte) anim::xidx#0 xidx zp ZP_BYTE:4 2.0
(byte) anim::xidx#1 xidx zp ZP_BYTE:4 202.0
(byte) anim::xidx#2 xidx zp ZP_BYTE:4 202.0
(byte) anim::xidx#3 xidx zp ZP_BYTE:4 61.0
(byte) anim::xidx#5 xidx zp ZP_BYTE:4 33.666666666666664
(byte) anim::yidx
(byte) anim::yidx#0 yidx zp ZP_BYTE:5 4.0
(byte) anim::yidx#1 yidx zp ZP_BYTE:5 202.0
(byte) anim::yidx#2 yidx zp ZP_BYTE:5 202.0
(byte) anim::yidx#3 yidx zp ZP_BYTE:5 33.888888888888886
(byte) anim::yidx#6 yidx zp ZP_BYTE:5 60.599999999999994
(void()) divMEMbyFAC((byte*) divMEMbyFAC::mem)
(label) divMEMbyFAC::@1
(label) divMEMbyFAC::@return
(byte*) divMEMbyFAC::mem
(byte*) divMEMbyFAC::mem#2 mem zp ZP_PTR_BYTE:9 2.0
(void()) gen_chargen_sprite((byte) gen_chargen_sprite::ch , (byte*) gen_chargen_sprite::sprite)
(word~) gen_chargen_sprite::$0 $0 zp ZP_WORD:11 4.0
(word~) gen_chargen_sprite::$1 $1 zp ZP_WORD:11 4.0
(byte~) gen_chargen_sprite::$4 reg byte a 2002.0
(byte~) gen_chargen_sprite::$7 reg byte a 20002.0
(label) gen_chargen_sprite::@1
(label) gen_chargen_sprite::@10
(label) gen_chargen_sprite::@2
(label) gen_chargen_sprite::@3
(label) gen_chargen_sprite::@4
(label) gen_chargen_sprite::@5
(label) gen_chargen_sprite::@6
(label) gen_chargen_sprite::@7
(label) gen_chargen_sprite::@8
(label) gen_chargen_sprite::@9
(label) gen_chargen_sprite::@return
(byte) gen_chargen_sprite::b
(byte) gen_chargen_sprite::b#1 reg byte x 15001.5
(byte) gen_chargen_sprite::b#2 reg byte x 2000.2
(byte) gen_chargen_sprite::bits
(byte) gen_chargen_sprite::bits#0 bits zp ZP_BYTE:4 202.0
(byte) gen_chargen_sprite::bits#1 bits zp ZP_BYTE:4 667.3333333333334
(byte) gen_chargen_sprite::bits#2 bits zp ZP_BYTE:4 182.58823529411765
(byte) gen_chargen_sprite::c
(byte) gen_chargen_sprite::c#3 c zp ZP_BYTE:6 769.3076923076923
(byte) gen_chargen_sprite::ch
(byte) gen_chargen_sprite::ch#0 reg byte x 6.5
(byte*) gen_chargen_sprite::chargen
(byte*) gen_chargen_sprite::chargen#0 chargen zp ZP_PTR_BYTE:14 3.678571428571429
(byte) gen_chargen_sprite::s_gen
(byte) gen_chargen_sprite::s_gen#1 s_gen zp ZP_BYTE:13 10001.0
(byte) gen_chargen_sprite::s_gen#3 s_gen zp ZP_BYTE:13 21003.0
(byte) gen_chargen_sprite::s_gen#5 s_gen zp ZP_BYTE:13 400.4
(byte) gen_chargen_sprite::s_gen#6 s_gen zp ZP_BYTE:13 3500.5
(byte) gen_chargen_sprite::s_gen_cnt
(byte) gen_chargen_sprite::s_gen_cnt#1 reg byte y 15001.5
(byte) gen_chargen_sprite::s_gen_cnt#3 reg byte y 7001.0
(byte) gen_chargen_sprite::s_gen_cnt#4 reg byte y 400.4
(byte) gen_chargen_sprite::s_gen_cnt#5 reg byte y 3500.5
(byte*) gen_chargen_sprite::sprite
(byte*) gen_chargen_sprite::sprite#0 sprite zp ZP_PTR_BYTE:9 2.1666666666666665
(byte*) gen_chargen_sprite::sprite#1 sprite zp ZP_PTR_BYTE:9 20002.0
(byte*) gen_chargen_sprite::sprite#10 sprite zp ZP_PTR_BYTE:9 420.59999999999997
(byte*) gen_chargen_sprite::sprite#11 sprite zp ZP_PTR_BYTE:9 102.0
(byte*) gen_chargen_sprite::sprite#2 sprite zp ZP_PTR_BYTE:9 67.33333333333333
(byte*) gen_chargen_sprite::sprite#3 sprite zp ZP_PTR_BYTE:9 7625.875
(byte*) gen_chargen_sprite::sprite#4 sprite zp ZP_PTR_BYTE:9 5184.166666666666
(byte) gen_chargen_sprite::x
(byte) gen_chargen_sprite::x#1 x zp ZP_BYTE:5 1501.5
(byte) gen_chargen_sprite::x#6 x zp ZP_BYTE:5 111.22222222222223
(byte) gen_chargen_sprite::y
(byte) gen_chargen_sprite::y#1 y zp ZP_BYTE:3 151.5
(byte) gen_chargen_sprite::y#2 y zp ZP_BYTE:3 13.173913043478262
(void()) gen_sintab((byte*) gen_sintab::sintab , (byte) gen_sintab::length , (byte) gen_sintab::min , (byte) gen_sintab::max)
(word~) gen_sintab::$0 $0 zp ZP_WORD:11 4.0
(word~) gen_sintab::$13 $13 zp ZP_WORD:11 22.0
(word~) gen_sintab::$17 $17 zp ZP_WORD:11 22.0
(word~) gen_sintab::$23 $23 zp ZP_WORD:11 22.0
(byte~) gen_sintab::$24 reg byte a 22.0
(word~) gen_sintab::$3 $3 zp ZP_WORD:11 4.0
(label) gen_sintab::@1
(label) gen_sintab::@10
(label) gen_sintab::@11
(label) gen_sintab::@12
(label) gen_sintab::@14
(label) gen_sintab::@15
(label) gen_sintab::@16
(label) gen_sintab::@17
(label) gen_sintab::@18
(label) gen_sintab::@19
(label) gen_sintab::@20
(label) gen_sintab::@21
(label) gen_sintab::@22
(label) gen_sintab::@3
(label) gen_sintab::@4
(label) gen_sintab::@5
(label) gen_sintab::@6
(label) gen_sintab::@7
(label) gen_sintab::@8
(label) gen_sintab::@9
(label) gen_sintab::@return
(byte*) gen_sintab::f_2pi
(const byte*) gen_sintab::f_2pi#0 f_2pi = ((byte*))(word) 58085
(byte[]) gen_sintab::f_amp
(const byte[]) gen_sintab::f_amp#0 f_amp = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0 }
(byte[]) gen_sintab::f_i
(const byte[]) gen_sintab::f_i#0 f_i = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0 }
(byte[]) gen_sintab::f_min
(const byte[]) gen_sintab::f_min#0 f_min = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0 }
(byte) gen_sintab::i
(byte) gen_sintab::i#1 i zp ZP_BYTE:2 16.5
(byte) gen_sintab::i#10 i zp ZP_BYTE:2 1.6923076923076923
(byte) gen_sintab::length
(byte) gen_sintab::length#10 length zp ZP_BYTE:3 0.4074074074074074
(byte) gen_sintab::max
(byte) gen_sintab::max#2 reg byte x 2.0
(byte) gen_sintab::min
(byte) gen_sintab::min#2 min zp ZP_BYTE:2 0.2857142857142857
(byte*) gen_sintab::sintab
(byte*) gen_sintab::sintab#12 sintab zp ZP_PTR_BYTE:7 0.2037037037037037
(void()) gen_sprites()
(byte~) gen_sprites::$0 reg byte a 22.0
(label) gen_sprites::@1
(label) gen_sprites::@3
(label) gen_sprites::@return
(byte[]) gen_sprites::cml
(const byte[]) gen_sprites::cml#0 cml = (string) "camelot"
(byte) gen_sprites::i
(byte) gen_sprites::i#1 i zp ZP_BYTE:2 16.5
(byte) gen_sprites::i#2 i zp ZP_BYTE:2 5.5
(byte*) gen_sprites::spr
(byte*) gen_sprites::spr#1 spr zp ZP_PTR_BYTE:7 7.333333333333333
(byte*) gen_sprites::spr#2 spr zp ZP_PTR_BYTE:7 6.6000000000000005
(word()) getFAC()
(label) getFAC::@return
(word) getFAC::return
(word) getFAC::return#0 return zp ZP_WORD:11 4.333333333333333
(word) getFAC::return#2 return zp ZP_WORD:11 22.0
(word) getFAC::w
(word) getFAC::w#1 w zp ZP_WORD:11 4.0
(void()) init()
(label) init::@1
(label) init::@2
(label) init::@3
(label) init::@4
(label) init::@5
(label) init::@return
(byte*) init::sc
(byte*) init::sc#1 sc zp ZP_PTR_BYTE:7 16.5
(byte*) init::sc#2 sc zp ZP_PTR_BYTE:7 16.5
(void()) main()
(label) main::@2
(label) main::@3
(label) main::@6
(label) main::@return
(byte*) memHi
(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word) 255
(byte*) memLo
(const byte*) memLo#0 memLo = ((byte*))(byte/word/signed word) 254
(void()) mulFACbyMEM((byte*) mulFACbyMEM::mem)
(label) mulFACbyMEM::@1
(label) mulFACbyMEM::@return
(byte*) mulFACbyMEM::mem
(byte*) mulFACbyMEM::mem#2 mem zp ZP_PTR_BYTE:9 2.0
(void()) place_sprites()
(label) place_sprites::@1
(label) place_sprites::@return
(byte) place_sprites::col
(byte) place_sprites::col#1 col zp ZP_BYTE:4 4.4
(byte) place_sprites::col#2 col zp ZP_BYTE:4 4.714285714285714
(byte) place_sprites::j
(byte) place_sprites::j#1 reg byte y 16.5
(byte) place_sprites::j#2 reg byte y 4.4
(byte) place_sprites::j2
(byte) place_sprites::j2#1 reg byte x 22.0
(byte) place_sprites::j2#2 reg byte x 7.333333333333333
(byte) place_sprites::j2#3 reg byte x 5.5
(byte) place_sprites::spr_id
(byte) place_sprites::spr_id#1 spr_id zp ZP_BYTE:2 2.2
(byte) place_sprites::spr_id#2 spr_id zp ZP_BYTE:2 16.5
(byte) place_sprites::spr_x
(byte) place_sprites::spr_x#1 spr_x zp ZP_BYTE:3 3.6666666666666665
(byte) place_sprites::spr_x#2 spr_x zp ZP_BYTE:3 5.5
(byte*) place_sprites::sprites_ptr
(const byte*) place_sprites::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word) 1016
(void()) prepareMEM((byte*) prepareMEM::mem)
(byte~) prepareMEM::$0 reg byte a 4.0
(byte~) prepareMEM::$1 reg byte a 4.0
(label) prepareMEM::@return
(byte*) prepareMEM::mem
(byte*) prepareMEM::mem#0 mem zp ZP_PTR_BYTE:9 4.0
(byte*) prepareMEM::mem#1 mem zp ZP_PTR_BYTE:9 4.0
(byte*) prepareMEM::mem#2 mem zp ZP_PTR_BYTE:9 4.0
(byte*) prepareMEM::mem#3 mem zp ZP_PTR_BYTE:9 4.0
(byte*) prepareMEM::mem#4 mem zp ZP_PTR_BYTE:9 4.0
(byte*) prepareMEM::mem#5 mem zp ZP_PTR_BYTE:9 4.666666666666666
(void()) setARGtoFAC()
(label) setARGtoFAC::@return
(void()) setFAC((word) setFAC::w)
(byte*~) setFAC::$0 $0 zp ZP_PTR_BYTE:9 4.0
(label) setFAC::@1
(label) setFAC::@return
(word) setFAC::w
(word) setFAC::w#0 w zp ZP_WORD:11 4.0
(word) setFAC::w#1 w zp ZP_WORD:11 4.0
(word) setFAC::w#3 w zp ZP_WORD:11 22.0
(word) setFAC::w#4 w zp ZP_WORD:11 22.0
(word) setFAC::w#5 w zp ZP_WORD:11 28.0
(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem)
(label) setMEMtoFAC::@1
(label) setMEMtoFAC::@return
(byte*) setMEMtoFAC::mem
(byte*) setMEMtoFAC::mem#5 mem zp ZP_PTR_BYTE:9 2.0
(void()) sinFAC()
(label) sinFAC::@return
(byte) sin_idx_x
(byte) sin_idx_x#11 sin_idx_x zp ZP_BYTE:2 1.4444444444444446
(byte) sin_idx_x#13 sin_idx_x zp ZP_BYTE:2 0.6521739130434783
(byte) sin_idx_x#3 sin_idx_x zp ZP_BYTE:2 2.0
(byte) sin_idx_y
(byte) sin_idx_y#11 sin_idx_y zp ZP_BYTE:3 2.6
(byte) sin_idx_y#13 sin_idx_y zp ZP_BYTE:3 0.5555555555555556
(byte) sin_idx_y#3 sin_idx_y zp ZP_BYTE:3 2.0
(byte) sinlen_x
(const byte) sinlen_x#0 sinlen_x = (byte/word/signed word) 221
(byte) sinlen_y
(const byte) sinlen_y#0 sinlen_y = (byte/word/signed word) 197
(byte[]) sintab_x
(const byte[]) sintab_x#0 sintab_x = ((byte*))(word/signed word) 4096
(byte[]) sintab_y
(const byte[]) sintab_y#0 sintab_y = ((byte*))(word/signed word) 4352
(byte[]) sprites
(const byte[]) sprites#0 sprites = ((byte*))(word/signed word) 8192
(void()) subFACfromARG()
(label) subFACfromARG::@return
zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 gen_sintab::min#2 gen_sintab::i#10 gen_sintab::i#1 gen_sprites::i#2 gen_sprites::i#1 place_sprites::spr_id#2 place_sprites::spr_id#1 ]
zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 gen_sintab::length#10 gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 place_sprites::spr_x#2 place_sprites::spr_x#1 ]
zp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 place_sprites::col#2 place_sprites::col#1 ]
reg byte y [ anim::j2#3 anim::j2#2 ]
zp ZP_BYTE:5 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ]
zp ZP_BYTE:6 [ anim::j#2 anim::j#1 gen_chargen_sprite::c#3 ]
zp ZP_PTR_BYTE:7 [ init::sc#2 init::sc#1 gen_sintab::sintab#12 gen_sprites::spr#2 gen_sprites::spr#1 ]
reg byte x [ gen_sintab::max#2 ]
zp ZP_PTR_BYTE:9 [ addMEMtoFAC::mem#2 prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 divMEMbyFAC::mem#2 setMEMtoFAC::mem#5 gen_chargen_sprite::sprite#3 gen_chargen_sprite::sprite#10 gen_chargen_sprite::sprite#11 gen_chargen_sprite::sprite#0 gen_chargen_sprite::sprite#2 gen_chargen_sprite::sprite#4 gen_chargen_sprite::sprite#1 setFAC::$0 ]
zp ZP_WORD:11 [ setFAC::w#5 setFAC::w#0 setFAC::w#3 setFAC::w#4 setFAC::w#1 gen_sintab::$0 gen_sintab::$3 gen_sintab::$13 gen_sintab::$17 getFAC::return#2 gen_sintab::$23 getFAC::w#1 getFAC::return#0 gen_chargen_sprite::$0 gen_chargen_sprite::$1 ]
zp ZP_BYTE:13 [ gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ]
reg byte y [ gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::s_gen_cnt#1 ]
reg byte x [ gen_chargen_sprite::b#2 gen_chargen_sprite::b#1 ]
reg byte y [ place_sprites::j#2 place_sprites::j#1 ]
reg byte x [ place_sprites::j2#3 place_sprites::j2#2 ]
reg byte a [ anim::$0 ]
reg byte a [ anim::$1 ]
reg byte y [ anim::j2#1 ]
reg byte a [ gen_sintab::$24 ]
reg byte a [ prepareMEM::$0 ]
reg byte a [ prepareMEM::$1 ]
reg byte a [ gen_sprites::$0 ]
reg byte x [ gen_chargen_sprite::ch#0 ]
zp ZP_PTR_BYTE:14 [ gen_chargen_sprite::chargen#0 ]
reg byte a [ gen_chargen_sprite::$4 ]
reg byte a [ gen_chargen_sprite::$7 ]
reg byte x [ place_sprites::j2#1 ]

View File

@ -0,0 +1,184 @@
import "basic-floats"
import "print"
byte* PROCPORT = $01;
byte* CHARGEN = $d000;
byte* SCREEN = $0400;
byte* RASTER = $d012;
byte* BORDERCOL = $d020;
byte* SPRITES_XPOS = $d000;
byte* SPRITES_YPOS = $d001;
byte* SPRITES_XMSB = $d010;
byte* SPRITES_ENABLE = $d015;
byte* SPRITES_EXPAND_Y = $d017;
byte* SPRITES_PRIORITY = $d01b;
byte* SPRITES_MC = $d01c;
byte* SPRITES_EXPAND_X = $d01d;
byte* SPRITES_MC1 = $d025;
byte* SPRITES_MC2 = $d026;
byte* SPRITES_COLS = $d027;
const byte sinlen_x = 221;
const byte[] sintab_x = $1000;
const byte sinlen_y = 197;
const byte[] sintab_y = $1100;
const byte[] sprites = $2000;
void main() {
init();
do {
do { } while (*RASTER!=$ff);
anim();
} while(true);
}
void init() {
for(byte* sc = SCREEN; sc<SCREEN+1000; sc++) {
*sc = ' ';
}
place_sprites();
gen_sprites();
gen_sintab(sintab_x, sinlen_x, $10, $ff);
gen_sintab(sintab_y, sinlen_y, $30, $d0);
}
byte sin_idx_x = 0;
byte sin_idx_y = 0;
void anim() {
(*BORDERCOL)++;
byte xidx = sin_idx_x;
byte yidx = sin_idx_y;
byte j2 = 12;
for( byte j : 0..6) {
SPRITES_XPOS[j2] = sintab_x[xidx];
SPRITES_YPOS[j2] = sintab_y[yidx];
xidx = xidx+10;
if(xidx>=sinlen_x) {
xidx = xidx-sinlen_x;
}
yidx = yidx+8;
if(yidx>=sinlen_y) {
yidx = yidx-sinlen_y;
}
j2--;
j2--;
}
// Increment sin indices
if(++sin_idx_x>=sinlen_x) {
sin_idx_x = 0;
}
if(++sin_idx_y>=sinlen_y) {
sin_idx_y = 0;
}
(*BORDERCOL)--;
}
void place_sprites() {
*SPRITES_ENABLE = %01111111;
*SPRITES_EXPAND_X = %01111111;
*SPRITES_EXPAND_Y = %01111111;
byte* sprites_ptr = SCREEN+$3f8;
byte spr_id = (byte)(sprites/$40);
byte spr_x = 60;
byte j2 = 0;
byte col = $5;
for( byte j : 0..6) {
sprites_ptr[j] = spr_id++;
SPRITES_XPOS[j2] = spr_x;
SPRITES_YPOS[j2] = 80;
SPRITES_COLS[j] = col;
spr_x = spr_x + 32;
col = col^($7^$5);
j2++;
j2++;
}
}
void gen_sprites() {
byte[] cml = "camelot";
byte* spr = sprites;
for( byte i : 0..6 ) {
gen_chargen_sprite(cml[i], spr);
spr = spr + $40;
}
}
// Generate a sprite from a C64 CHARGEN character (by making each pixel 3x3 pixels large)
// - c is the character to generate
// - sprite is a pointer to the position of the sprite to generate
void gen_chargen_sprite(byte ch, byte* sprite) {
byte* chargen = CHARGEN+((word)ch)<<3;
asm { sei }
*PROCPORT = $32;
for(byte y:0..7) {
byte bits = chargen[y];
byte s_gen = 0;
byte s_gen_cnt = 0;
for(byte x:0..7) {
byte c = 0;
if((bits & $80) != 0) {
c = 1;
}
for(byte b : 0..2){
s_gen = s_gen<<1 | c;
if(++s_gen_cnt==8) {
sprite[0] = s_gen;
sprite[3] = s_gen;
sprite[6] = s_gen;
sprite++;
s_gen = 0;
s_gen_cnt = 0;
}
}
bits = bits<<1;
}
sprite = sprite + 6;
}
*PROCPORT = $37;
asm { cli }
}
// Generate a sinus table using BASIC floats
// - sintab is a pointer to the table to fill
// - length is the length of the sine table
// - min is the minimum value of the generated sinus
// - max is the maximum value of the generated sinus
void gen_sintab(byte* sintab, byte length, byte min, byte max) {
byte[] f_i = {0, 0, 0, 0, 0}; // i * 2 * PI
byte[] f_min = {0, 0, 0, 0, 0}; // amplitude/2 + min
byte[] f_amp = {0, 0, 0, 0, 0}; // amplitude/2
byte* f_2pi = $e2e5; // 2 * PI
setFAC((word)max); // fac = max
setARGtoFAC(); // arg = max
// TODO: Kernel JSR clobbers A,X,Y
asm {
lda #0
ldx #0
ldy #0
}
setFAC((word)min); // fac = min
setMEMtoFAC(f_min); // f_min = min
subFACfromARG(); // fac = max - min
setMEMtoFAC(f_amp); // f_amp = max - min
setFAC(2); // fac = 2
divMEMbyFAC(f_amp); // fac = (max - min) / 2
setMEMtoFAC(f_amp); // f_amp = (max - min) / 2
addMEMtoFAC(f_min); // fac = min + (max - min) / 2
setMEMtoFAC(f_min); // f_min = min + (max - min) / 2
for(byte i =0; i<length; i++) {
setFAC((word)i); // fac = i
mulFACbyMEM(f_2pi); // fac = i * 2 * PI
setMEMtoFAC(f_i); // f_i = i * 2 * PI
setFAC((word)length); // fac = length
divMEMbyFAC(f_i); // fac = i * 2 * PI / length
sinFAC(); // fac = sin( i * 2 * PI / length )
mulFACbyMEM(f_amp); // fac = sin( i * 2 * PI / length ) * (max - min) / 2
addMEMtoFAC(f_min); // fac = sin( i * 2 * PI / length ) * (max - min) / 2 + min + (max - min) / 2
sintab[i] = (byte)getFAC();
(*BORDERCOL)++;
}
}