From 69dba6ea27fe92d2149405815928a0102e89cd14 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Tue, 5 Dec 2017 23:31:43 +0100 Subject: [PATCH] Added casting problem test nocast.kc --- .../kickc/model/ConstantValueCalculator.java | 44 ++++++++- .../dk/camelot64/kickc/test/TestErrors.java | 4 + .../java/dk/camelot64/kickc/test/nocast.kc | 9 ++ .../kickc/test/ref/sinus-sprites.cfg | 2 +- .../kickc/test/ref/sinus-sprites.log | 92 +++++++++---------- .../dk/camelot64/kickc/test/sinus-sprites.kc | 2 +- 6 files changed, 104 insertions(+), 49 deletions(-) create mode 100644 src/main/java/dk/camelot64/kickc/test/nocast.kc diff --git a/src/main/java/dk/camelot64/kickc/model/ConstantValueCalculator.java b/src/main/java/dk/camelot64/kickc/model/ConstantValueCalculator.java index cfd3fc3d5..40658787c 100644 --- a/src/main/java/dk/camelot64/kickc/model/ConstantValueCalculator.java +++ b/src/main/java/dk/camelot64/kickc/model/ConstantValueCalculator.java @@ -4,7 +4,7 @@ package dk.camelot64.kickc.model; public class ConstantValueCalculator { - private static ConstantValue calcValue(ProgramScope programScope, ConstantValue value) { + public static ConstantValue calcValue(ProgramScope programScope, ConstantValue value) { if(value instanceof ConstantInteger) { return value; } else if(value instanceof ConstantString) { @@ -36,10 +36,52 @@ public class ConstantValueCalculator { return neg(calcValue(programScope, value)); } else if(operator.equals(Operator.POS)) { return pos(calcValue(programScope, value)); + } else if(operator.equals(Operator.CAST_WORD)) { + return castWord(calcValue(programScope, value)); + } else if(operator.equals(Operator.CAST_SWORD)) { + return castSWord(calcValue(programScope, value)); + } else if(operator.equals(Operator.CAST_BYTE)) { + return castByte(calcValue(programScope, value)); + } else if(operator.equals(Operator.CAST_SBYTE)) { + return castSByte(calcValue(programScope, value)); } return null; } + private static ConstantValue castWord(ConstantValue value) { + if(value instanceof ConstantInteger) { + return new ConstantInteger(0xffff&((ConstantInteger) value).getNumber()); + } + return null; + } + + private static ConstantValue castSWord(ConstantValue value) { + if(value instanceof ConstantInteger) { + return new ConstantInteger(0xffff&((ConstantInteger) value).getNumber()); + } + return null; + } + + private static ConstantValue castByte(ConstantValue value) { + if(value instanceof ConstantInteger) { + return new ConstantInteger(0xff&((ConstantInteger) value).getNumber()); + } + return null; + } + + private static ConstantValue castSByte(ConstantValue value) { + if(value instanceof ConstantInteger) { + return new ConstantInteger(0xff&((ConstantInteger) value).getNumber()); + } + return null; + } + + private static ConstantValue castPtrByte(ConstantValue value) { + return value; + } + + + public static ConstantValue calcValue(ProgramScope programScope, ConstantValue value1, Operator operator, ConstantValue value2) { if(operator.equals(Operator.MULTIPLY)) { return multiply(calcValue(programScope, value1), calcValue(programScope, value2)); diff --git a/src/main/java/dk/camelot64/kickc/test/TestErrors.java b/src/main/java/dk/camelot64/kickc/test/TestErrors.java index 113c29971..9d341efb4 100644 --- a/src/main/java/dk/camelot64/kickc/test/TestErrors.java +++ b/src/main/java/dk/camelot64/kickc/test/TestErrors.java @@ -24,6 +24,10 @@ public class TestErrors extends TestCase { helper = new ReferenceHelper("dk/camelot64/kickc/test/ref/"); } + public void testNoCast() throws IOException, URISyntaxException { + compileAndCompare("nocast"); + } + public void testConstants() throws IOException, URISyntaxException { compileAndCompare("constants"); } diff --git a/src/main/java/dk/camelot64/kickc/test/nocast.kc b/src/main/java/dk/camelot64/kickc/test/nocast.kc new file mode 100644 index 000000000..f970f1338 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/nocast.kc @@ -0,0 +1,9 @@ +// Casting sprites/$40 to byte results in lda #$ff & sprite/$40 - proper constant calculation & type inference should detect that "$ff &" is not necessary as $2000/$40 is already a byte. + +byte* sprite = $2000; +byte* SCREEN = $400; + +void main() { + byte* sprite_ptr = SCREEN+$378; + sprite_ptr[0] = (byte)(sprite/$40); +} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.cfg b/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.cfg index 5bba10219..748f06b50 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.cfg +++ b/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.cfg @@ -42,7 +42,7 @@ anim::@1: scope:[anim] from anim anim::@3 [18] (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 ] ( 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::x#0 anim::$3 ] ) [19] (byte~) anim::$4 ← > (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 anim::$4 ] ( 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::x#0 anim::$3 anim::$4 ] ) [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) - [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) + [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) [23] (byte~) anim::$7 ← (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::x_msb#1 anim::$7 ] ( 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::x_msb#1 anim::$7 ] ) [24] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) diff --git a/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.log b/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.log index 488af261e..df6e2f3aa 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.log @@ -93,7 +93,7 @@ void anim() { for( byte j : 0..6) { word x = (word)$1e + sintab_x[xidx]; x_msb = x_msb<<1 | >x; - SPRITES_XPOS[j2] = (byte)x; + SPRITES_XPOS[j2] = =sinlen_x) { @@ -887,7 +887,7 @@ anim::@1: (byte~) anim::$4 ← > (word) anim::x (byte~) anim::$5 ← (byte~) anim::$3 | (byte~) anim::$4 (byte) anim::x_msb ← (byte~) anim::$5 - (byte~) anim::$6 ← ((byte)) (word) anim::x + (byte~) anim::$6 ← < (word) anim::x *((byte*) SPRITES_XPOS + (byte) anim::j2) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y *idx (byte) anim::yidx *((byte*) SPRITES_YPOS + (byte) anim::j2) ← (byte~) anim::$7 @@ -1867,7 +1867,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$4 ← > (word) anim::x (byte~) anim::$5 ← (byte~) anim::$3 | (byte~) anim::$4 (byte) anim::x_msb ← (byte~) anim::$5 - (byte~) anim::$6 ← ((byte)) (word) anim::x + (byte~) anim::$6 ← < (word) anim::x *((byte*) SPRITES_XPOS + (byte) anim::j2) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y *idx (byte) anim::yidx *((byte*) SPRITES_YPOS + (byte) anim::j2) ← (byte~) anim::$7 @@ -2422,7 +2422,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$4 ← > (word) anim::x (byte~) anim::$5 ← (byte~) anim::$3 | (byte~) anim::$4 (byte) anim::x_msb ← (byte~) anim::$5 - (byte~) anim::$6 ← ((byte)) (word) anim::x + (byte~) anim::$6 ← < (word) anim::x *((byte*) SPRITES_XPOS + (byte) anim::j2) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y *idx (byte) anim::yidx *((byte*) SPRITES_YPOS + (byte) anim::j2) ← (byte~) anim::$7 @@ -2938,7 +2938,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$4 ← > (word) anim::x (byte~) anim::$5 ← (byte~) anim::$3 | (byte~) anim::$4 (byte) anim::x_msb ← (byte~) anim::$5 - (byte~) anim::$6 ← ((byte)) (word) anim::x + (byte~) anim::$6 ← < (word) anim::x *((byte*) SPRITES_XPOS + (byte) anim::j2) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y *idx (byte) anim::yidx *((byte*) SPRITES_YPOS + (byte) anim::j2) ← (byte~) anim::$7 @@ -3618,7 +3618,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$4 ← > (word) anim::x#0 (byte~) anim::$5 ← (byte~) anim::$3 | (byte~) anim::$4 (byte) anim::x_msb#1 ← (byte~) anim::$5 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -4595,7 +4595,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$4 ← > (word) anim::x#0 (byte~) anim::$5 ← (byte~) anim::$3 | (byte~) anim::$4 (byte) anim::x_msb#1 ← (byte~) anim::$5 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -6401,7 +6401,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$4 ← > (word) anim::x#0 (byte~) anim::$5 ← (byte~) anim::$3 | (byte~) anim::$4 (byte) anim::x_msb#1 ← (byte~) anim::$5 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -7504,7 +7504,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -8258,7 +8258,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -8987,7 +8987,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -9632,7 +9632,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -10209,7 +10209,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -10795,7 +10795,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -11375,7 +11375,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -11885,7 +11885,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -12360,7 +12360,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -12845,7 +12845,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -13325,7 +13325,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -13805,7 +13805,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -14283,7 +14283,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -14738,7 +14738,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -15225,7 +15225,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -15677,7 +15677,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -16334,7 +16334,7 @@ anim::@1: scope:[anim] from anim anim::@3 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -16977,7 +16977,7 @@ anim::@1: scope:[anim] from anim anim::@11 (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 (byte~) anim::$4 ← > (word) anim::x#0 (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 - (byte~) anim::$6 ← ((byte)) (word) anim::x#0 + (byte~) anim::$6 ← < (word) anim::x#0 *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 (byte~) anim::$7 ← (const byte[]) sintab_y#0 *idx (byte) anim::yidx#3 *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 @@ -17626,7 +17626,7 @@ anim::@1: scope:[anim] from anim anim::@11 [22] (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 ] [23] (byte~) anim::$4 ← > (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 anim::$4 ] [24] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::x_msb#1 ] - [25] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] + [25] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] [26] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 ] [27] (byte~) anim::$7 ← (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::x_msb#1 anim::$7 ] [28] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 ] @@ -18365,7 +18365,7 @@ anim::@1: scope:[anim] from anim anim::@3 [18] (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 ] [19] (byte~) anim::$4 ← > (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 anim::$4 ] [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#0 ] - [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] + [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 ] [23] (byte~) anim::$7 ← (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::x_msb#1 anim::$7 ] [24] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 ] @@ -18847,7 +18847,7 @@ anim::@1: scope:[anim] from anim anim::@3 [18] (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 ] ( 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::x#0 anim::$3 ] ) [19] (byte~) anim::$4 ← > (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 anim::$4 ] ( 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::x#0 anim::$3 anim::$4 ] ) [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) - [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) + [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) [23] (byte~) anim::$7 ← (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::x_msb#1 anim::$7 ] ( 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::x_msb#1 anim::$7 ] ) [24] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$7 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) @@ -20050,7 +20050,7 @@ anim: { lda _3 ora _4 sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- zpby1=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- zpby1=_lo_zpwo1 lda x sta _6 //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=zpby2 @@ -21389,7 +21389,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ an Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ anim::j#2 anim::j#1 ] Statement [18] (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 ] ( 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::x#0 anim::$3 ] ) always clobbers reg byte a -Statement [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) always clobbers reg byte a +Statement [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) always clobbers reg byte a Statement [25] (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::x_msb#1 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::x_msb#1 anim::xidx#1 ] ) always clobbers reg byte a Statement [27] (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::x_msb#1 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::x_msb#1 anim::xidx#2 ] ) always clobbers reg byte a Statement [29] (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::x_msb#1 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::x_msb#1 anim::yidx#1 ] ) always clobbers reg byte a @@ -21486,7 +21486,7 @@ Statement [237] (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (b Statement [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 ] ) always clobbers reg byte a Statement [17] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word) 30 + (byte~) anim::$1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 ] ) always clobbers reg byte a Statement [18] (byte~) anim::$3 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word) 1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x#0 anim::$3 ] ( 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::x#0 anim::$3 ] ) always clobbers reg byte a -Statement [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) always clobbers reg byte a +Statement [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) always clobbers reg byte a Statement [25] (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::x_msb#1 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::x_msb#1 anim::xidx#1 ] ) always clobbers reg byte a Statement [27] (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::x_msb#1 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::x_msb#1 anim::xidx#2 ] ) always clobbers reg byte a Statement [29] (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::x_msb#1 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::x_msb#1 anim::yidx#1 ] ) always clobbers reg byte a @@ -21977,7 +21977,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -23272,7 +23272,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -24623,7 +24623,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -25908,7 +25908,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -27024,7 +27024,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -28137,7 +28137,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -29251,7 +29251,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -30373,7 +30373,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -31475,7 +31475,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -32573,7 +32573,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -33672,7 +33672,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -34769,7 +34769,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -35862,7 +35862,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 @@ -37313,7 +37313,7 @@ anim: { //SEG49 [20] (byte) anim::x_msb#1 ← (byte~) anim::$3 | (byte~) anim::$4 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::x#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::x_msb#1 anim::x#0 ] ) -- zpby1=zpby1_bor_aby ora x_msb sta x_msb - //SEG50 [21] (byte~) anim::$6 ← ((byte)) (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_byte_zpwo1 + //SEG50 [21] (byte~) anim::$6 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$6 ] ( 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::x_msb#1 anim::$6 ] ) -- aby=_lo_zpwo1 lda x //SEG51 [22] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$6 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#3 anim::yidx#3 anim::j#2 anim::x_msb#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::x_msb#1 ] ) -- cowo1_derefidx_zpby1=aby ldx j2 diff --git a/src/main/java/dk/camelot64/kickc/test/sinus-sprites.kc b/src/main/java/dk/camelot64/kickc/test/sinus-sprites.kc index 70fef695e..34986584d 100644 --- a/src/main/java/dk/camelot64/kickc/test/sinus-sprites.kc +++ b/src/main/java/dk/camelot64/kickc/test/sinus-sprites.kc @@ -93,7 +93,7 @@ void anim() { for( byte j : 0..6) { word x = (word)$1e + sintab_x[xidx]; x_msb = x_msb<<1 | >x; - SPRITES_XPOS[j2] = (byte)x; + SPRITES_XPOS[j2] = =sinlen_x) {