1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-02-20 00:29:10 +00:00

Implemented support for char colors in clearscreen

This commit is contained in:
jespergravgaard 2019-06-17 00:33:56 +02:00
parent 4dfc4432c7
commit 68c3c5918c
5 changed files with 3925 additions and 3595 deletions

View File

@ -47,6 +47,8 @@ struct ProcessingSprite {
byte id; byte id;
// sprite pointer (0-255) // sprite pointer (0-255)
byte ptr; byte ptr;
// sprite color
byte col;
// status of the processing (0: free, 1: new, 2: processing) // status of the processing (0: free, 1: new, 2: processing)
byte status; byte status;
// Pointer to screen char being processed (used for deletion) // Pointer to screen char being processed (used for deletion)
@ -67,7 +69,7 @@ void main() {
// Copy screen to screen copy // Copy screen to screen copy
for( byte* src=SCREEN, dst=SCREEN_COPY; src!=SCREEN+1000; src++, dst++) *dst = *src; for( byte* src=SCREEN, dst=SCREEN_COPY; src!=SCREEN+1000; src++, dst++) *dst = *src;
// Init processing array // Init processing array
for( byte i: 0..NUM_PROCESSING-1 ) PROCESSING[i] = { 0, 0, 0, 0, 0, 0, STATUS_FREE, 0}; for( byte i: 0..NUM_PROCESSING-1 ) PROCESSING[i] = { 0, 0, 0, 0, 0, 0, 0, STATUS_FREE, 0};
// Init sprites // Init sprites
initSprites(); initSprites();
// Set-up raster interrupts // Set-up raster interrupts
@ -125,7 +127,10 @@ void startProcessing(struct ProcessingChar center) {
// Found a free sprite // Found a free sprite
byte spriteIdx = freeIdx; byte spriteIdx = freeIdx;
// Copy char into sprite // Copy char into sprite
byte* screenPtr = SCREEN+(word)center.y*40+center.x; word offset = (word)center.y*40+center.x;
byte* colPtr = COLS+offset;
byte spriteCol = *colPtr;
byte* screenPtr = SCREEN+offset;
byte* spriteData = SPRITE_DATA+(word)spriteIdx*64; byte* spriteData = SPRITE_DATA+(word)spriteIdx*64;
byte ch = (*screenPtr); byte ch = (*screenPtr);
byte* chargenData = CHARGEN+(word)ch*8; byte* chargenData = CHARGEN+(word)ch*8;
@ -142,7 +147,7 @@ void startProcessing(struct ProcessingChar center) {
word spriteY = (BORDER_YPOS_TOP + (word)center.y*8) << 4; word spriteY = (BORDER_YPOS_TOP + (word)center.y*8) << 4;
byte spritePtr = (byte)(SPRITE_DATA/64)+spriteIdx; byte spritePtr = (byte)(SPRITE_DATA/64)+spriteIdx;
// Put the sprite into the PROCESSING array // Put the sprite into the PROCESSING array
PROCESSING[spriteIdx] = { spriteX, spriteY, (word)(spriteIdx*8), 60, spriteIdx, spritePtr, STATUS_NEW, screenPtr }; PROCESSING[spriteIdx] = { spriteX, spriteY, (word)(spriteIdx*8), 60, spriteIdx, spritePtr, spriteCol, STATUS_NEW, screenPtr };
} }
const word XPOS_LEFTMOST = (word)(BORDER_XPOS_LEFT-8)<<4; const word XPOS_LEFTMOST = (word)(BORDER_XPOS_LEFT-8)<<4;
@ -173,6 +178,8 @@ void processChars() {
*(processing->screenPtr) = ' '; *(processing->screenPtr) = ' ';
// Enable the sprite // Enable the sprite
*SPRITES_ENABLE |= bitmask; *SPRITES_ENABLE |= bitmask;
// Set the sprite color
SPRITES_COLS[processing->id] = processing->col;
// Set sprite pointer // Set sprite pointer
*(SCREEN+SPRITE_PTRS+processing->id) = processing->ptr; *(SCREEN+SPRITE_PTRS+processing->id) = processing->ptr;
// Set status // Set status

View File

@ -7,8 +7,9 @@
.const OFFSET_STRUCT_PROCESSINGSPRITE_VY = 6 .const OFFSET_STRUCT_PROCESSINGSPRITE_VY = 6
.const OFFSET_STRUCT_PROCESSINGSPRITE_ID = 8 .const OFFSET_STRUCT_PROCESSINGSPRITE_ID = 8
.const OFFSET_STRUCT_PROCESSINGSPRITE_PTR = 9 .const OFFSET_STRUCT_PROCESSINGSPRITE_PTR = 9
.const OFFSET_STRUCT_PROCESSINGSPRITE_STATUS = $a .const OFFSET_STRUCT_PROCESSINGSPRITE_COL = $a
.const OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR = $b .const OFFSET_STRUCT_PROCESSINGSPRITE_STATUS = $b
.const OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR = $c
// Processor port data direction register // Processor port data direction register
.label PROCPORT_DDR = 0 .label PROCPORT_DDR = 0
// Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written
@ -117,9 +118,9 @@ main: {
clc clc
adc i adc i
asl asl
asl
clc clc
adc i adc i
asl
tax tax
lda #0 lda #0
sta PROCESSING,x sta PROCESSING,x
@ -132,6 +133,7 @@ main: {
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY+1,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY+1,x
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID,x
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR,x
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL,x
lda #STATUS_FREE lda #STATUS_FREE
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,x
lda #<0 lda #<0
@ -170,30 +172,32 @@ main: {
startProcessing: { startProcessing: {
.label _0 = $22 .label _0 = $22
.label _1 = $22 .label _1 = $22
.label _2 = $22
.label _4 = $a
.label _5 = $a .label _5 = $a
.label _7 = 8 .label _6 = $a
.label _8 = 8 .label _8 = 8
.label _10 = $28 .label _9 = 8
.label _11 = $28 .label _11 = $29
.label _12 = $28 .label _12 = $29
.label _14 = $2a .label _13 = $29
.label _15 = $2a .label _15 = $2b
.label _16 = $2a .label _16 = $2b
.label _22 = $2d .label _17 = $2b
.label _23 = $2e
.label center_x = $20 .label center_x = $20
.label center_y = $21 .label center_y = $21
.label i = 7 .label i = 7
.label screenPtr = $26 .label offset = $22
.label colPtr = $26
.label spriteCol = $28
.label screenPtr = $22
.label spriteData = $a .label spriteData = $a
.label chargenData = 8 .label chargenData = 8
.label spriteX = $28 .label spriteX = $29
.label spriteY = $2a .label spriteY = $2b
.label spritePtr = $2c .label spritePtr = $2d
.label freeIdx = 7 .label freeIdx = 7
.label _44 = $24 .label _47 = $24
.label _45 = $22 .label _48 = $22
ldx #$ff ldx #$ff
b1: b1:
lda #0 lda #0
@ -204,9 +208,9 @@ startProcessing: {
clc clc
adc i adc i
asl asl
asl
clc clc
adc i adc i
asl
tay tay
lda #STATUS_FREE lda #STATUS_FREE
cmp PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,y cmp PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,y
@ -225,55 +229,65 @@ startProcessing: {
sta _0+1 sta _0+1
lda _0 lda _0
asl asl
sta _44 sta _47
lda _0+1 lda _0+1
rol rol
sta _44+1 sta _47+1
asl _44 asl _47
rol _44+1 rol _47+1
lda _45 lda _48
clc clc
adc _44 adc _47
sta _45 sta _48
lda _45+1 lda _48+1
adc _44+1 adc _47+1
sta _45+1 sta _48+1
asl _1 asl _1
rol _1+1 rol _1+1
asl _1 asl _1
rol _1+1 rol _1+1
asl _1 asl _1
rol _1+1 rol _1+1
clc
lda _2
adc #<SCREEN
sta _2
lda _2+1
adc #>SCREEN
sta _2+1
lda center_x lda center_x
clc clc
adc _2 adc offset
sta offset
bcc !+
inc offset+1
!:
lda offset
clc
adc #<COLS
sta colPtr
lda offset+1
adc #>COLS
sta colPtr+1
ldy #0
lda (colPtr),y
sta spriteCol
clc
lda screenPtr
adc #<SCREEN
sta screenPtr sta screenPtr
lda #0 lda screenPtr+1
adc _2+1 adc #>SCREEN
sta screenPtr+1 sta screenPtr+1
lda freeIdx lda freeIdx
sta _4 sta _5
lda #0 tya
sta _4+1 sta _5+1
asl _5 asl _6
rol _5+1 rol _6+1
asl _5 asl _6
rol _5+1 rol _6+1
asl _5 asl _6
rol _5+1 rol _6+1
asl _5 asl _6
rol _5+1 rol _6+1
asl _5 asl _6
rol _5+1 rol _6+1
asl _5 asl _6
rol _5+1 rol _6+1
clc clc
lda spriteData lda spriteData
adc #<SPRITE_DATA adc #<SPRITE_DATA
@ -281,17 +295,16 @@ startProcessing: {
lda spriteData+1 lda spriteData+1
adc #>SPRITE_DATA adc #>SPRITE_DATA
sta spriteData+1 sta spriteData+1
ldy center_x lda (screenPtr),y
lda (_2),y sta _8
sta _7 tya
lda #0 sta _8+1
sta _7+1 asl _9
asl _8 rol _9+1
rol _8+1 asl _9
asl _8 rol _9+1
rol _8+1 asl _9
asl _8 rol _9+1
rol _8+1
clc clc
lda chargenData lda chargenData
adc #<CHARGEN adc #<CHARGEN
@ -325,21 +338,21 @@ startProcessing: {
sta PROCPORT sta PROCPORT
cli cli
lda center_x lda center_x
sta _10 sta _11
lda #0 lda #0
sta _10+1 sta _11+1
asl _11 asl _12
rol _11+1 rol _12+1
asl _11 asl _12
rol _11+1 rol _12+1
asl _11 asl _12
rol _11+1 rol _12+1
lda #BORDER_XPOS_LEFT lda #BORDER_XPOS_LEFT
clc clc
adc _12 adc _13
sta _12 sta _13
bcc !+ bcc !+
inc _12+1 inc _13+1
!: !:
asl spriteX asl spriteX
rol spriteX+1 rol spriteX+1
@ -350,21 +363,21 @@ startProcessing: {
asl spriteX asl spriteX
rol spriteX+1 rol spriteX+1
lda center_y lda center_y
sta _14 sta _15
lda #0 lda #0
sta _14+1 sta _15+1
asl _15 asl _16
rol _15+1 rol _16+1
asl _15 asl _16
rol _15+1 rol _16+1
asl _15 asl _16
rol _15+1 rol _16+1
lda #BORDER_YPOS_TOP lda #BORDER_YPOS_TOP
clc clc
adc _16 adc _17
sta _16 sta _17
bcc !+ bcc !+
inc _16+1 inc _17+1
!: !:
asl spriteY asl spriteY
rol spriteY+1 rol spriteY+1
@ -381,17 +394,17 @@ startProcessing: {
asl asl
asl asl
asl asl
sta _22 sta _23
lda #0 lda #0
sta _22+1 sta _23+1
lda freeIdx lda freeIdx
asl asl
clc clc
adc freeIdx adc freeIdx
asl asl
asl
clc clc
adc freeIdx adc freeIdx
asl
tax tax
lda spriteX lda spriteX
sta PROCESSING,x sta PROCESSING,x
@ -401,9 +414,9 @@ startProcessing: {
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y,x
lda spriteY+1 lda spriteY+1
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y+1,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_Y+1,x
lda _22 lda _23
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX,x
lda _22+1 lda _23+1
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX+1,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VX+1,x
lda #$3c lda #$3c
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_VY,x
@ -413,6 +426,8 @@ startProcessing: {
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_ID,x
lda spritePtr lda spritePtr
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_PTR,x
lda spriteCol
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_COL,x
lda #STATUS_NEW lda #STATUS_NEW
sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,x sta PROCESSING+OFFSET_STRUCT_PROCESSINGSPRITE_STATUS,x
lda screenPtr lda screenPtr
@ -436,9 +451,9 @@ startProcessing: {
// Find the non-space char closest to the center of the screen // Find the non-space char closest to the center of the screen
// If no non-space char is found the distance will be 0xffff // If no non-space char is found the distance will be 0xffff
getCharToProcess: { getCharToProcess: {
.label _9 = $2f .label _9 = $30
.label _10 = $2f .label _10 = $30
.label _11 = $2f .label _11 = $30
.label return_dist = $14 .label return_dist = $14
.label x = $f .label x = $f
.label dist = $14 .label dist = $14
@ -449,8 +464,8 @@ getCharToProcess: {
.label closest_dist = $10 .label closest_dist = $10
.label closest_x = $12 .label closest_x = $12
.label closest_y = $13 .label closest_y = $13
.label _15 = $31 .label _15 = $32
.label _16 = $2f .label _16 = $30
lda #0 lda #0
sta closest_y sta closest_y
sta closest_x sta closest_x
@ -781,13 +796,13 @@ irqBottom: {
} }
// Process any chars in the PROCESSING array // Process any chars in the PROCESSING array
processChars: { processChars: {
.label _15 = $38 .label _15 = $39
.label _25 = $36 .label _25 = $37
.label processing = $33 .label processing = $34
.label bitmask = $35 .label bitmask = $36
.label i = $1e .label i = $1e
.label xpos = $36 .label xpos = $37
.label ypos = $3a .label ypos = $3b
.label numActive = $1f .label numActive = $1f
lda #0 lda #0
sta numActive sta numActive
@ -798,9 +813,9 @@ processChars: {
clc clc
adc i adc i
asl asl
asl
clc clc
adc i adc i
asl
clc clc
adc #<PROCESSING adc #<PROCESSING
sta processing sta processing
@ -843,6 +858,15 @@ processChars: {
lda SPRITES_ENABLE lda SPRITES_ENABLE
ora bitmask ora bitmask
sta SPRITES_ENABLE sta SPRITES_ENABLE
// Set the sprite color
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_COL
lda (processing),y
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
pha
lda (processing),y
tay
pla
sta SPRITES_COLS,y
// Set sprite pointer // Set sprite pointer
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_PTR ldy #OFFSET_STRUCT_PROCESSINGSPRITE_PTR
lda (processing),y lda (processing),y
@ -1079,7 +1103,7 @@ irqTop: {
// SQUARES_Y[i] = (i-12)*(i-12) // SQUARES_Y[i] = (i-12)*(i-12)
SQUARES_Y: .fill 2*$19, 0 SQUARES_Y: .fill 2*$19, 0
// Sprites currently being processed in the interrupt // Sprites currently being processed in the interrupt
PROCESSING: .fill $d*NUM_PROCESSING, 0 PROCESSING: .fill $e*NUM_PROCESSING, 0
.pc = VXSIN "VXSIN" .pc = VXSIN "VXSIN"
.for(var i=0; i<40; i++) { .for(var i=0; i<40; i++) {
.word -sin(toRadians([i*360]/40))*4 .word -sin(toRadians([i*360]/40))*4

View File

@ -31,428 +31,437 @@ main::@1: scope:[main] from main main::@1
to:main::@2 to:main::@2
main::@2: scope:[main] from main::@1 main::@2 main::@2: scope:[main] from main::@1 main::@2
[13] (byte) main::i#2 ← phi( main::@1/(byte) 0 main::@2/(byte) main::i#1 ) [13] (byte) main::i#2 ← phi( main::@1/(byte) 0 main::@2/(byte) main::i#1 )
[14] (byte) main::$25 ← (byte) main::i#2 << (byte) 1 [14] (byte) main::$26 ← (byte) main::i#2 << (byte) 1
[15] (byte) main::$26 ← (byte) main::$25 + (byte) main::i#2 [15] (byte) main::$27 ← (byte) main::$26 + (byte) main::i#2
[16] (byte) main::$27 ← (byte) main::$26 << (byte) 2 [16] (byte) main::$28 ← (byte) main::$27 << (byte) 1
[17] (byte~) main::$16 ← (byte) main::$27 + (byte) main::i#2 [17] (byte) main::$29 ← (byte) main::$28 + (byte) main::i#2
[18] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0 + (byte~) main::$16) ← (byte) 0 [18] (byte~) main::$16 ← (byte) main::$29 << (byte) 1
[19] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y + (byte~) main::$16) ← (byte) 0 [19] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0 + (byte~) main::$16) ← (byte) 0
[20] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX + (byte~) main::$16) ← (byte) 0 [20] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y + (byte~) main::$16) ← (byte) 0
[21] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY + (byte~) main::$16) ← (byte) 0 [21] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX + (byte~) main::$16) ← (byte) 0
[22] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID + (byte~) main::$16) ← (byte) 0 [22] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY + (byte~) main::$16) ← (byte) 0
[23] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR + (byte~) main::$16) ← (byte) 0 [23] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID + (byte~) main::$16) ← (byte) 0
[24] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS + (byte~) main::$16) ← (const byte) STATUS_FREE#0 [24] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR + (byte~) main::$16) ← (byte) 0
[25] *((byte**)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR + (byte~) main::$16) ← (byte*) 0 [25] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_COL + (byte~) main::$16) ← (byte) 0
[26] (byte) main::i#1 ← ++ (byte) main::i#2 [26] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS + (byte~) main::$16) ← (const byte) STATUS_FREE#0
[27] if((byte) main::i#1!=(const byte) NUM_PROCESSING#0-(byte) 1+(byte) 1) goto main::@2 [27] *((byte**)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR + (byte~) main::$16) ← (byte*) 0
[28] (byte) main::i#1 ← ++ (byte) main::i#2
[29] if((byte) main::i#1!=(const byte) NUM_PROCESSING#0-(byte) 1+(byte) 1) goto main::@2
to:main::@3 to:main::@3
main::@3: scope:[main] from main::@2 main::@3: scope:[main] from main::@2
[28] phi() [30] phi()
[29] call initSprites [31] call initSprites
to:main::@8 to:main::@8
main::@8: scope:[main] from main::@3 main::@8: scope:[main] from main::@3
[30] phi() [32] phi()
[31] call setupRasterIrq [33] call setupRasterIrq
to:main::@4 to:main::@4
main::@4: scope:[main] from main::@5 main::@8 main::@4: scope:[main] from main::@5 main::@8
[32] phi() [34] phi()
[33] call getCharToProcess [35] call getCharToProcess
[34] (byte) getCharToProcess::return_x#0 ← (byte) getCharToProcess::return_x#1 [36] (byte) getCharToProcess::return_x#0 ← (byte) getCharToProcess::return_x#1
[35] (byte) getCharToProcess::return_y#0 ← (byte) getCharToProcess::return_y#1 [37] (byte) getCharToProcess::return_y#0 ← (byte) getCharToProcess::return_y#1
[36] (word) getCharToProcess::return_dist#0 ← (word) getCharToProcess::return_dist#1 [38] (word) getCharToProcess::return_dist#0 ← (word) getCharToProcess::return_dist#1
to:main::@9 to:main::@9
main::@9: scope:[main] from main::@4 main::@9: scope:[main] from main::@4
[37] (byte) main::center_x#0 ← (byte) getCharToProcess::return_x#0 [39] (byte) main::center_x#0 ← (byte) getCharToProcess::return_x#0
[38] (byte) main::center_y#0 ← (byte) getCharToProcess::return_y#0 [40] (byte) main::center_y#0 ← (byte) getCharToProcess::return_y#0
[39] (word) main::center_dist#0 ← (word) getCharToProcess::return_dist#0 [41] (word) main::center_dist#0 ← (word) getCharToProcess::return_dist#0
[40] if((word) main::center_dist#0!=(const word) NOT_FOUND#0) goto main::@5 [42] if((word) main::center_dist#0!=(const word) NOT_FOUND#0) goto main::@5
to:main::@6 to:main::@6
main::@6: scope:[main] from main::@9 main::@6: scope:[main] from main::@9
[41] *((const byte*) SCREEN#0+(word) $3e7) ← (byte) '.' [43] *((const byte*) SCREEN#0+(word) $3e7) ← (byte) '.'
to:main::@7 to:main::@7
main::@7: scope:[main] from main::@6 main::@7 main::@7: scope:[main] from main::@6 main::@7
[42] *((const byte*) COLS#0+(word) $3e7) ← ++ *((const byte*) COLS#0+(word) $3e7) [44] *((const byte*) COLS#0+(word) $3e7) ← ++ *((const byte*) COLS#0+(word) $3e7)
to:main::@7 to:main::@7
main::@5: scope:[main] from main::@9 main::@5: scope:[main] from main::@9
[43] (byte) startProcessing::center_x#0 ← (byte) main::center_x#0 [45] (byte) startProcessing::center_x#0 ← (byte) main::center_x#0
[44] (byte) startProcessing::center_y#0 ← (byte) main::center_y#0 [46] (byte) startProcessing::center_y#0 ← (byte) main::center_y#0
[45] call startProcessing [47] call startProcessing
to:main::@4 to:main::@4
startProcessing: scope:[startProcessing] from main::@5 startProcessing: scope:[startProcessing] from main::@5
[46] phi() [48] phi()
to:startProcessing::@1 to:startProcessing::@1
startProcessing::@1: scope:[startProcessing] from startProcessing startProcessing::@8 startProcessing::@1: scope:[startProcessing] from startProcessing startProcessing::@8
[47] (byte) startProcessing::freeIdx#6 ← phi( startProcessing/(byte) $ff startProcessing::@8/(byte~) startProcessing::freeIdx#7 ) [49] (byte) startProcessing::freeIdx#6 ← phi( startProcessing/(byte) $ff startProcessing::@8/(byte~) startProcessing::freeIdx#7 )
to:startProcessing::@2 to:startProcessing::@2
startProcessing::@2: scope:[startProcessing] from startProcessing::@1 startProcessing::@3 startProcessing::@2: scope:[startProcessing] from startProcessing::@1 startProcessing::@3
[48] (byte) startProcessing::i#2 ← phi( startProcessing::@1/(byte) 0 startProcessing::@3/(byte) startProcessing::i#1 ) [50] (byte) startProcessing::i#2 ← phi( startProcessing::@1/(byte) 0 startProcessing::@3/(byte) startProcessing::i#1 )
[49] (byte) startProcessing::$40 ← (byte) startProcessing::i#2 << (byte) 1 [51] (byte) startProcessing::$42 ← (byte) startProcessing::i#2 << (byte) 1
[50] (byte) startProcessing::$41 ← (byte) startProcessing::$40 + (byte) startProcessing::i#2 [52] (byte) startProcessing::$43 ← (byte) startProcessing::$42 + (byte) startProcessing::i#2
[51] (byte) startProcessing::$42 ← (byte) startProcessing::$41 << (byte) 2 [53] (byte) startProcessing::$44 ← (byte) startProcessing::$43 << (byte) 1
[52] (byte~) startProcessing::$29 ← (byte) startProcessing::$42 + (byte) startProcessing::i#2 [54] (byte) startProcessing::$45 ← (byte) startProcessing::$44 + (byte) startProcessing::i#2
[53] if(*((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS + (byte~) startProcessing::$29)!=(const byte) STATUS_FREE#0) goto startProcessing::@3 [55] (byte~) startProcessing::$30 ← (byte) startProcessing::$45 << (byte) 1
[56] if(*((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS + (byte~) startProcessing::$30)!=(const byte) STATUS_FREE#0) goto startProcessing::@3
to:startProcessing::@4 to:startProcessing::@4
startProcessing::@4: scope:[startProcessing] from startProcessing::@2 startProcessing::@9 startProcessing::@4: scope:[startProcessing] from startProcessing::@2 startProcessing::@9
[54] (byte) startProcessing::freeIdx#2 ← phi( startProcessing::@9/(byte~) startProcessing::freeIdx#8 startProcessing::@2/(byte) startProcessing::i#2 ) [57] (byte) startProcessing::freeIdx#2 ← phi( startProcessing::@9/(byte~) startProcessing::freeIdx#8 startProcessing::@2/(byte) startProcessing::i#2 )
[55] if((byte) startProcessing::freeIdx#2==(byte) $ff) goto startProcessing::@8 [58] if((byte) startProcessing::freeIdx#2==(byte) $ff) goto startProcessing::@8
to:startProcessing::@5 to:startProcessing::@5
startProcessing::@5: scope:[startProcessing] from startProcessing::@4 startProcessing::@5: scope:[startProcessing] from startProcessing::@4
[56] (word~) startProcessing::$0 ← (word)(byte) startProcessing::center_y#0 [59] (word~) startProcessing::$0 ← (word)(byte) startProcessing::center_y#0
[57] (word) startProcessing::$44 ← (word~) startProcessing::$0 << (byte) 2 [60] (word) startProcessing::$47 ← (word~) startProcessing::$0 << (byte) 2
[58] (word) startProcessing::$45 ← (word) startProcessing::$44 + (word~) startProcessing::$0 [61] (word) startProcessing::$48 ← (word) startProcessing::$47 + (word~) startProcessing::$0
[59] (word~) startProcessing::$1 ← (word) startProcessing::$45 << (byte) 3 [62] (word~) startProcessing::$1 ← (word) startProcessing::$48 << (byte) 3
[60] (byte*~) startProcessing::$2 ← (const byte*) SCREEN#0 + (word~) startProcessing::$1 [63] (word) startProcessing::offset#0 ← (word~) startProcessing::$1 + (byte) startProcessing::center_x#0
[61] (byte*) startProcessing::screenPtr#0 ← (byte*~) startProcessing::$2 + (byte) startProcessing::center_x#0 [64] (byte*) startProcessing::colPtr#0 ← (const byte*) COLS#0 + (word) startProcessing::offset#0
[62] (word~) startProcessing::$4 ← (word)(byte) startProcessing::freeIdx#2 [65] (byte) startProcessing::spriteCol#0 ← *((byte*) startProcessing::colPtr#0)
[63] (word~) startProcessing::$5 ← (word~) startProcessing::$4 << (byte) 6 [66] (byte*) startProcessing::screenPtr#0 ← (const byte*) SCREEN#0 + (word) startProcessing::offset#0
[64] (byte*) startProcessing::spriteData#0 ← (const byte*) SPRITE_DATA#0 + (word~) startProcessing::$5 [67] (word~) startProcessing::$5 ← (word)(byte) startProcessing::freeIdx#2
[65] (byte) startProcessing::ch#0 ← *((byte*~) startProcessing::$2 + (byte) startProcessing::center_x#0) [68] (word~) startProcessing::$6 ← (word~) startProcessing::$5 << (byte) 6
[66] (word~) startProcessing::$7 ← (word)(byte) startProcessing::ch#0 [69] (byte*) startProcessing::spriteData#0 ← (const byte*) SPRITE_DATA#0 + (word~) startProcessing::$6
[67] (word~) startProcessing::$8 ← (word~) startProcessing::$7 << (byte) 3 [70] (byte) startProcessing::ch#0 ← *((byte*) startProcessing::screenPtr#0)
[68] (byte*) startProcessing::chargenData#0 ← (const byte*) CHARGEN#0 + (word~) startProcessing::$8 [71] (word~) startProcessing::$8 ← (word)(byte) startProcessing::ch#0
[72] (word~) startProcessing::$9 ← (word~) startProcessing::$8 << (byte) 3
[73] (byte*) startProcessing::chargenData#0 ← (const byte*) CHARGEN#0 + (word~) startProcessing::$9
asm { sei } asm { sei }
[70] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_CHARROM#0 [75] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_CHARROM#0
to:startProcessing::@6 to:startProcessing::@6
startProcessing::@6: scope:[startProcessing] from startProcessing::@5 startProcessing::@6 startProcessing::@6: scope:[startProcessing] from startProcessing::@5 startProcessing::@6
[71] (byte) startProcessing::i1#2 ← phi( startProcessing::@5/(byte) 0 startProcessing::@6/(byte) startProcessing::i1#1 ) [76] (byte) startProcessing::i1#2 ← phi( startProcessing::@5/(byte) 0 startProcessing::@6/(byte) startProcessing::i1#1 )
[71] (byte*) startProcessing::spriteData#2 ← phi( startProcessing::@5/(byte*) startProcessing::spriteData#0 startProcessing::@6/(byte*) startProcessing::spriteData#1 ) [76] (byte*) startProcessing::spriteData#2 ← phi( startProcessing::@5/(byte*) startProcessing::spriteData#0 startProcessing::@6/(byte*) startProcessing::spriteData#1 )
[71] (byte*) startProcessing::chargenData#2 ← phi( startProcessing::@5/(byte*) startProcessing::chargenData#0 startProcessing::@6/(byte*) startProcessing::chargenData#1 ) [76] (byte*) startProcessing::chargenData#2 ← phi( startProcessing::@5/(byte*) startProcessing::chargenData#0 startProcessing::@6/(byte*) startProcessing::chargenData#1 )
[72] *((byte*) startProcessing::spriteData#2) ← *((byte*) startProcessing::chargenData#2) [77] *((byte*) startProcessing::spriteData#2) ← *((byte*) startProcessing::chargenData#2)
[73] (byte*) startProcessing::spriteData#1 ← (byte*) startProcessing::spriteData#2 + (byte) 3 [78] (byte*) startProcessing::spriteData#1 ← (byte*) startProcessing::spriteData#2 + (byte) 3
[74] (byte*) startProcessing::chargenData#1 ← ++ (byte*) startProcessing::chargenData#2 [79] (byte*) startProcessing::chargenData#1 ← ++ (byte*) startProcessing::chargenData#2
[75] (byte) startProcessing::i1#1 ← ++ (byte) startProcessing::i1#2 [80] (byte) startProcessing::i1#1 ← ++ (byte) startProcessing::i1#2
[76] if((byte) startProcessing::i1#1!=(byte) 8) goto startProcessing::@6 [81] if((byte) startProcessing::i1#1!=(byte) 8) goto startProcessing::@6
to:startProcessing::@7 to:startProcessing::@7
startProcessing::@7: scope:[startProcessing] from startProcessing::@6 startProcessing::@7: scope:[startProcessing] from startProcessing::@6
[77] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [82] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0
asm { cli } asm { cli }
[79] (word~) startProcessing::$10 ← (word)(byte) startProcessing::center_x#0 [84] (word~) startProcessing::$11 ← (word)(byte) startProcessing::center_x#0
[80] (word~) startProcessing::$11 ← (word~) startProcessing::$10 << (byte) 3 [85] (word~) startProcessing::$12 ← (word~) startProcessing::$11 << (byte) 3
[81] (word~) startProcessing::$12 ← (const byte) BORDER_XPOS_LEFT#0 + (word~) startProcessing::$11 [86] (word~) startProcessing::$13 ← (const byte) BORDER_XPOS_LEFT#0 + (word~) startProcessing::$12
[82] (word) startProcessing::spriteX#0 ← (word~) startProcessing::$12 << (byte) 4 [87] (word) startProcessing::spriteX#0 ← (word~) startProcessing::$13 << (byte) 4
[83] (word~) startProcessing::$14 ← (word)(byte) startProcessing::center_y#0 [88] (word~) startProcessing::$15 ← (word)(byte) startProcessing::center_y#0
[84] (word~) startProcessing::$15 ← (word~) startProcessing::$14 << (byte) 3 [89] (word~) startProcessing::$16 ← (word~) startProcessing::$15 << (byte) 3
[85] (word~) startProcessing::$16 ← (const byte) BORDER_YPOS_TOP#0 + (word~) startProcessing::$15 [90] (word~) startProcessing::$17 ← (const byte) BORDER_YPOS_TOP#0 + (word~) startProcessing::$16
[86] (word) startProcessing::spriteY#0 ← (word~) startProcessing::$16 << (byte) 4 [91] (word) startProcessing::spriteY#0 ← (word~) startProcessing::$17 << (byte) 4
[87] (byte) startProcessing::spritePtr#0 ← (byte)(const byte*) SPRITE_DATA#0/(byte) $40 + (byte) startProcessing::freeIdx#2 [92] (byte) startProcessing::spritePtr#0 ← (byte)(const byte*) SPRITE_DATA#0/(byte) $40 + (byte) startProcessing::freeIdx#2
[88] (byte~) startProcessing::$21 ← (byte) startProcessing::freeIdx#2 << (byte) 3 [93] (byte~) startProcessing::$22 ← (byte) startProcessing::freeIdx#2 << (byte) 3
[89] (word~) startProcessing::$22 ← (word)(byte~) startProcessing::$21 [94] (word~) startProcessing::$23 ← (word)(byte~) startProcessing::$22
[90] (byte) startProcessing::$47 ← (byte) startProcessing::freeIdx#2 << (byte) 1 [95] (byte) startProcessing::$50 ← (byte) startProcessing::freeIdx#2 << (byte) 1
[91] (byte) startProcessing::$48 ← (byte) startProcessing::$47 + (byte) startProcessing::freeIdx#2 [96] (byte) startProcessing::$51 ← (byte) startProcessing::$50 + (byte) startProcessing::freeIdx#2
[92] (byte) startProcessing::$49 ← (byte) startProcessing::$48 << (byte) 2 [97] (byte) startProcessing::$52 ← (byte) startProcessing::$51 << (byte) 1
[93] (byte~) startProcessing::$30 ← (byte) startProcessing::$49 + (byte) startProcessing::freeIdx#2 [98] (byte) startProcessing::$53 ← (byte) startProcessing::$52 + (byte) startProcessing::freeIdx#2
[94] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0 + (byte~) startProcessing::$30) ← (word) startProcessing::spriteX#0 [99] (byte~) startProcessing::$31 ← (byte) startProcessing::$53 << (byte) 1
[95] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y + (byte~) startProcessing::$30) ← (word) startProcessing::spriteY#0 [100] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0 + (byte~) startProcessing::$31) ← (word) startProcessing::spriteX#0
[96] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX + (byte~) startProcessing::$30) ← (word~) startProcessing::$22 [101] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y + (byte~) startProcessing::$31) ← (word) startProcessing::spriteY#0
[97] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY + (byte~) startProcessing::$30) ← (byte) $3c [102] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX + (byte~) startProcessing::$31) ← (word~) startProcessing::$23
[98] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID + (byte~) startProcessing::$30) ← (byte) startProcessing::freeIdx#2 [103] *((word*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY + (byte~) startProcessing::$31) ← (byte) $3c
[99] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR + (byte~) startProcessing::$30) ← (byte) startProcessing::spritePtr#0 [104] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID + (byte~) startProcessing::$31) ← (byte) startProcessing::freeIdx#2
[100] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS + (byte~) startProcessing::$30) ← (const byte) STATUS_NEW#0 [105] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR + (byte~) startProcessing::$31) ← (byte) startProcessing::spritePtr#0
[101] *((byte**)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR + (byte~) startProcessing::$30) ← (byte*) startProcessing::screenPtr#0 [106] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_COL + (byte~) startProcessing::$31) ← (byte) startProcessing::spriteCol#0
[107] *((byte*)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS + (byte~) startProcessing::$31) ← (const byte) STATUS_NEW#0
[108] *((byte**)(const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR + (byte~) startProcessing::$31) ← (byte*) startProcessing::screenPtr#0
to:startProcessing::@return to:startProcessing::@return
startProcessing::@return: scope:[startProcessing] from startProcessing::@7 startProcessing::@return: scope:[startProcessing] from startProcessing::@7
[102] return [109] return
to:@return to:@return
startProcessing::@8: scope:[startProcessing] from startProcessing::@4 startProcessing::@8: scope:[startProcessing] from startProcessing::@4
[103] (byte~) startProcessing::freeIdx#7 ← (byte) startProcessing::freeIdx#2 [110] (byte~) startProcessing::freeIdx#7 ← (byte) startProcessing::freeIdx#2
to:startProcessing::@1 to:startProcessing::@1
startProcessing::@3: scope:[startProcessing] from startProcessing::@2 startProcessing::@3: scope:[startProcessing] from startProcessing::@2
[104] (byte) startProcessing::i#1 ← ++ (byte) startProcessing::i#2 [111] (byte) startProcessing::i#1 ← ++ (byte) startProcessing::i#2
[105] if((byte) startProcessing::i#1!=(const byte) NUM_PROCESSING#0-(byte) 1+(byte) 1) goto startProcessing::@2 [112] if((byte) startProcessing::i#1!=(const byte) NUM_PROCESSING#0-(byte) 1+(byte) 1) goto startProcessing::@2
to:startProcessing::@9 to:startProcessing::@9
startProcessing::@9: scope:[startProcessing] from startProcessing::@3 startProcessing::@9: scope:[startProcessing] from startProcessing::@3
[106] (byte~) startProcessing::freeIdx#8 ← (byte) startProcessing::freeIdx#6 [113] (byte~) startProcessing::freeIdx#8 ← (byte) startProcessing::freeIdx#6
to:startProcessing::@4 to:startProcessing::@4
getCharToProcess: scope:[getCharToProcess] from main::@4 getCharToProcess: scope:[getCharToProcess] from main::@4
[107] phi() [114] phi()
to:getCharToProcess::@1 to:getCharToProcess::@1
getCharToProcess::@1: scope:[getCharToProcess] from getCharToProcess getCharToProcess::@9 getCharToProcess::@1: scope:[getCharToProcess] from getCharToProcess getCharToProcess::@9
[108] (byte) getCharToProcess::closest_y#9 ← phi( getCharToProcess/(byte) 0 getCharToProcess::@9/(byte) getCharToProcess::return_y#1 ) [115] (byte) getCharToProcess::closest_y#9 ← phi( getCharToProcess/(byte) 0 getCharToProcess::@9/(byte) getCharToProcess::return_y#1 )
[108] (byte) getCharToProcess::closest_x#9 ← phi( getCharToProcess/(byte) 0 getCharToProcess::@9/(byte) getCharToProcess::return_x#1 ) [115] (byte) getCharToProcess::closest_x#9 ← phi( getCharToProcess/(byte) 0 getCharToProcess::@9/(byte) getCharToProcess::return_x#1 )
[108] (word) getCharToProcess::closest_dist#8 ← phi( getCharToProcess/(const word) NOT_FOUND#0 getCharToProcess::@9/(word~) getCharToProcess::closest_dist#10 ) [115] (word) getCharToProcess::closest_dist#8 ← phi( getCharToProcess/(const word) NOT_FOUND#0 getCharToProcess::@9/(word~) getCharToProcess::closest_dist#10 )
[108] (byte) getCharToProcess::y#7 ← phi( getCharToProcess/(byte) 0 getCharToProcess::@9/(byte) getCharToProcess::y#1 ) [115] (byte) getCharToProcess::y#7 ← phi( getCharToProcess/(byte) 0 getCharToProcess::@9/(byte) getCharToProcess::y#1 )
[108] (byte*) getCharToProcess::screen_line#4 ← phi( getCharToProcess/(const byte[$3e8]) SCREEN_COPY#0 getCharToProcess::@9/(byte*) getCharToProcess::screen_line#1 ) [115] (byte*) getCharToProcess::screen_line#4 ← phi( getCharToProcess/(const byte[$3e8]) SCREEN_COPY#0 getCharToProcess::@9/(byte*) getCharToProcess::screen_line#1 )
to:getCharToProcess::@2 to:getCharToProcess::@2
getCharToProcess::@2: scope:[getCharToProcess] from getCharToProcess::@1 getCharToProcess::@10 getCharToProcess::@2: scope:[getCharToProcess] from getCharToProcess::@1 getCharToProcess::@10
[109] (byte) getCharToProcess::closest_y#7 ← phi( getCharToProcess::@1/(byte) getCharToProcess::closest_y#9 getCharToProcess::@10/(byte) getCharToProcess::return_y#1 ) [116] (byte) getCharToProcess::closest_y#7 ← phi( getCharToProcess::@1/(byte) getCharToProcess::closest_y#9 getCharToProcess::@10/(byte) getCharToProcess::return_y#1 )
[109] (byte) getCharToProcess::closest_x#7 ← phi( getCharToProcess::@1/(byte) getCharToProcess::closest_x#9 getCharToProcess::@10/(byte) getCharToProcess::return_x#1 ) [116] (byte) getCharToProcess::closest_x#7 ← phi( getCharToProcess::@1/(byte) getCharToProcess::closest_x#9 getCharToProcess::@10/(byte) getCharToProcess::return_x#1 )
[109] (word) getCharToProcess::closest_dist#2 ← phi( getCharToProcess::@1/(word) getCharToProcess::closest_dist#8 getCharToProcess::@10/(word~) getCharToProcess::closest_dist#12 ) [116] (word) getCharToProcess::closest_dist#2 ← phi( getCharToProcess::@1/(word) getCharToProcess::closest_dist#8 getCharToProcess::@10/(word~) getCharToProcess::closest_dist#12 )
[109] (byte) getCharToProcess::x#2 ← phi( getCharToProcess::@1/(byte) 0 getCharToProcess::@10/(byte) getCharToProcess::x#1 ) [116] (byte) getCharToProcess::x#2 ← phi( getCharToProcess::@1/(byte) 0 getCharToProcess::@10/(byte) getCharToProcess::x#1 )
[110] if(*((byte*) getCharToProcess::screen_line#4 + (byte) getCharToProcess::x#2)==(byte) ' ') goto getCharToProcess::@11 [117] if(*((byte*) getCharToProcess::screen_line#4 + (byte) getCharToProcess::x#2)==(byte) ' ') goto getCharToProcess::@11
to:getCharToProcess::@4 to:getCharToProcess::@4
getCharToProcess::@4: scope:[getCharToProcess] from getCharToProcess::@2 getCharToProcess::@4: scope:[getCharToProcess] from getCharToProcess::@2
[111] (byte~) getCharToProcess::$13 ← (byte) getCharToProcess::x#2 << (byte) 1 [118] (byte~) getCharToProcess::$13 ← (byte) getCharToProcess::x#2 << (byte) 1
[112] (byte~) getCharToProcess::$14 ← (byte) getCharToProcess::y#7 << (byte) 1 [119] (byte~) getCharToProcess::$14 ← (byte) getCharToProcess::y#7 << (byte) 1
[113] (word) getCharToProcess::dist#0 ← *((const word[$28]) SQUARES_X#0 + (byte~) getCharToProcess::$13) + *((const word[$19]) SQUARES_Y#0 + (byte~) getCharToProcess::$14) [120] (word) getCharToProcess::dist#0 ← *((const word[$28]) SQUARES_X#0 + (byte~) getCharToProcess::$13) + *((const word[$19]) SQUARES_Y#0 + (byte~) getCharToProcess::$14)
[114] if((word) getCharToProcess::dist#0>=(word) getCharToProcess::closest_dist#2) goto getCharToProcess::@12 [121] if((word) getCharToProcess::dist#0>=(word) getCharToProcess::closest_dist#2) goto getCharToProcess::@12
to:getCharToProcess::@5 to:getCharToProcess::@5
getCharToProcess::@5: scope:[getCharToProcess] from getCharToProcess::@4 getCharToProcess::@5: scope:[getCharToProcess] from getCharToProcess::@4
[115] (byte~) getCharToProcess::return_x#7 ← (byte) getCharToProcess::x#2 [122] (byte~) getCharToProcess::return_x#7 ← (byte) getCharToProcess::x#2
[116] (byte~) getCharToProcess::return_y#7 ← (byte) getCharToProcess::y#7 [123] (byte~) getCharToProcess::return_y#7 ← (byte) getCharToProcess::y#7
to:getCharToProcess::@3 to:getCharToProcess::@3
getCharToProcess::@3: scope:[getCharToProcess] from getCharToProcess::@11 getCharToProcess::@12 getCharToProcess::@5 getCharToProcess::@3: scope:[getCharToProcess] from getCharToProcess::@11 getCharToProcess::@12 getCharToProcess::@5
[117] (byte) getCharToProcess::return_y#1 ← phi( getCharToProcess::@11/(byte) getCharToProcess::closest_y#7 getCharToProcess::@12/(byte) getCharToProcess::closest_y#7 getCharToProcess::@5/(byte~) getCharToProcess::return_y#7 ) [124] (byte) getCharToProcess::return_y#1 ← phi( getCharToProcess::@11/(byte) getCharToProcess::closest_y#7 getCharToProcess::@12/(byte) getCharToProcess::closest_y#7 getCharToProcess::@5/(byte~) getCharToProcess::return_y#7 )
[117] (byte) getCharToProcess::return_x#1 ← phi( getCharToProcess::@11/(byte) getCharToProcess::closest_x#7 getCharToProcess::@12/(byte) getCharToProcess::closest_x#7 getCharToProcess::@5/(byte~) getCharToProcess::return_x#7 ) [124] (byte) getCharToProcess::return_x#1 ← phi( getCharToProcess::@11/(byte) getCharToProcess::closest_x#7 getCharToProcess::@12/(byte) getCharToProcess::closest_x#7 getCharToProcess::@5/(byte~) getCharToProcess::return_x#7 )
[117] (word) getCharToProcess::return_dist#1 ← phi( getCharToProcess::@11/(word~) getCharToProcess::return_dist#5 getCharToProcess::@12/(word~) getCharToProcess::return_dist#6 getCharToProcess::@5/(word) getCharToProcess::dist#0 ) [124] (word) getCharToProcess::return_dist#1 ← phi( getCharToProcess::@11/(word~) getCharToProcess::return_dist#5 getCharToProcess::@12/(word~) getCharToProcess::return_dist#6 getCharToProcess::@5/(word) getCharToProcess::dist#0 )
[118] (byte) getCharToProcess::x#1 ← ++ (byte) getCharToProcess::x#2 [125] (byte) getCharToProcess::x#1 ← ++ (byte) getCharToProcess::x#2
[119] if((byte) getCharToProcess::x#1!=(byte) $28) goto getCharToProcess::@10 [126] if((byte) getCharToProcess::x#1!=(byte) $28) goto getCharToProcess::@10
to:getCharToProcess::@6 to:getCharToProcess::@6
getCharToProcess::@6: scope:[getCharToProcess] from getCharToProcess::@3 getCharToProcess::@6: scope:[getCharToProcess] from getCharToProcess::@3
[120] (byte*) getCharToProcess::screen_line#1 ← (byte*) getCharToProcess::screen_line#4 + (byte) $28 [127] (byte*) getCharToProcess::screen_line#1 ← (byte*) getCharToProcess::screen_line#4 + (byte) $28
[121] (byte) getCharToProcess::y#1 ← ++ (byte) getCharToProcess::y#7 [128] (byte) getCharToProcess::y#1 ← ++ (byte) getCharToProcess::y#7
[122] if((byte) getCharToProcess::y#1!=(byte) $19) goto getCharToProcess::@9 [129] if((byte) getCharToProcess::y#1!=(byte) $19) goto getCharToProcess::@9
to:getCharToProcess::@7 to:getCharToProcess::@7
getCharToProcess::@7: scope:[getCharToProcess] from getCharToProcess::@6 getCharToProcess::@7: scope:[getCharToProcess] from getCharToProcess::@6
[123] if((word) getCharToProcess::return_dist#1==(const word) NOT_FOUND#0) goto getCharToProcess::@return [130] if((word) getCharToProcess::return_dist#1==(const word) NOT_FOUND#0) goto getCharToProcess::@return
to:getCharToProcess::@8 to:getCharToProcess::@8
getCharToProcess::@8: scope:[getCharToProcess] from getCharToProcess::@7 getCharToProcess::@8: scope:[getCharToProcess] from getCharToProcess::@7
[124] (word~) getCharToProcess::$9 ← (word)(byte) getCharToProcess::return_y#1 [131] (word~) getCharToProcess::$9 ← (word)(byte) getCharToProcess::return_y#1
[125] (word) getCharToProcess::$15 ← (word~) getCharToProcess::$9 << (byte) 2 [132] (word) getCharToProcess::$15 ← (word~) getCharToProcess::$9 << (byte) 2
[126] (word) getCharToProcess::$16 ← (word) getCharToProcess::$15 + (word~) getCharToProcess::$9 [133] (word) getCharToProcess::$16 ← (word) getCharToProcess::$15 + (word~) getCharToProcess::$9
[127] (word~) getCharToProcess::$10 ← (word) getCharToProcess::$16 << (byte) 3 [134] (word~) getCharToProcess::$10 ← (word) getCharToProcess::$16 << (byte) 3
[128] (byte*~) getCharToProcess::$11 ← (const byte[$3e8]) SCREEN_COPY#0 + (word~) getCharToProcess::$10 [135] (byte*~) getCharToProcess::$11 ← (const byte[$3e8]) SCREEN_COPY#0 + (word~) getCharToProcess::$10
[129] *((byte*~) getCharToProcess::$11 + (byte) getCharToProcess::return_x#1) ← (byte) ' ' [136] *((byte*~) getCharToProcess::$11 + (byte) getCharToProcess::return_x#1) ← (byte) ' '
to:getCharToProcess::@return to:getCharToProcess::@return
getCharToProcess::@return: scope:[getCharToProcess] from getCharToProcess::@7 getCharToProcess::@8 getCharToProcess::@return: scope:[getCharToProcess] from getCharToProcess::@7 getCharToProcess::@8
[130] return [137] return
to:@return to:@return
getCharToProcess::@9: scope:[getCharToProcess] from getCharToProcess::@6 getCharToProcess::@9: scope:[getCharToProcess] from getCharToProcess::@6
[131] (word~) getCharToProcess::closest_dist#10 ← (word) getCharToProcess::return_dist#1 [138] (word~) getCharToProcess::closest_dist#10 ← (word) getCharToProcess::return_dist#1
to:getCharToProcess::@1 to:getCharToProcess::@1
getCharToProcess::@10: scope:[getCharToProcess] from getCharToProcess::@3 getCharToProcess::@10: scope:[getCharToProcess] from getCharToProcess::@3
[132] (word~) getCharToProcess::closest_dist#12 ← (word) getCharToProcess::return_dist#1 [139] (word~) getCharToProcess::closest_dist#12 ← (word) getCharToProcess::return_dist#1
to:getCharToProcess::@2 to:getCharToProcess::@2
getCharToProcess::@12: scope:[getCharToProcess] from getCharToProcess::@4 getCharToProcess::@12: scope:[getCharToProcess] from getCharToProcess::@4
[133] (word~) getCharToProcess::return_dist#6 ← (word) getCharToProcess::closest_dist#2 [140] (word~) getCharToProcess::return_dist#6 ← (word) getCharToProcess::closest_dist#2
to:getCharToProcess::@3 to:getCharToProcess::@3
getCharToProcess::@11: scope:[getCharToProcess] from getCharToProcess::@2 getCharToProcess::@11: scope:[getCharToProcess] from getCharToProcess::@2
[134] (word~) getCharToProcess::return_dist#5 ← (word) getCharToProcess::closest_dist#2 [141] (word~) getCharToProcess::return_dist#5 ← (word) getCharToProcess::closest_dist#2
to:getCharToProcess::@3 to:getCharToProcess::@3
setupRasterIrq: scope:[setupRasterIrq] from main::@8 setupRasterIrq: scope:[setupRasterIrq] from main::@8
asm { sei } asm { sei }
[136] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [143] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
[137] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [144] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0
[138] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [145] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0
to:setupRasterIrq::@1 to:setupRasterIrq::@1
setupRasterIrq::@1: scope:[setupRasterIrq] from setupRasterIrq setupRasterIrq::@1: scope:[setupRasterIrq] from setupRasterIrq
[139] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte) $7f [146] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte) $7f
to:setupRasterIrq::@2 to:setupRasterIrq::@2
setupRasterIrq::@2: scope:[setupRasterIrq] from setupRasterIrq::@1 setupRasterIrq::@2: scope:[setupRasterIrq] from setupRasterIrq::@1
[140] *((const byte*) RASTER#0) ← <(const byte) RASTER_IRQ_TOP#0 [147] *((const byte*) RASTER#0) ← <(const byte) RASTER_IRQ_TOP#0
[141] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [148] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0
[142] *((const void()**) HARDWARE_IRQ#0) ← (const void()*) setupRasterIrq::irqRoutine#0 [149] *((const void()**) HARDWARE_IRQ#0) ← (const void()*) setupRasterIrq::irqRoutine#0
asm { cli } asm { cli }
to:setupRasterIrq::@return to:setupRasterIrq::@return
setupRasterIrq::@return: scope:[setupRasterIrq] from setupRasterIrq::@2 setupRasterIrq::@return: scope:[setupRasterIrq] from setupRasterIrq::@2
[144] return [151] return
to:@return to:@return
initSprites: scope:[initSprites] from main::@3 initSprites: scope:[initSprites] from main::@3
[145] phi() [152] phi()
to:initSprites::@1 to:initSprites::@1
initSprites::@1: scope:[initSprites] from initSprites initSprites::@1 initSprites::@1: scope:[initSprites] from initSprites initSprites::@1
[146] (byte*) initSprites::sp#2 ← phi( initSprites/(const byte*) SPRITE_DATA#0 initSprites::@1/(byte*) initSprites::sp#1 ) [153] (byte*) initSprites::sp#2 ← phi( initSprites/(const byte*) SPRITE_DATA#0 initSprites::@1/(byte*) initSprites::sp#1 )
[147] *((byte*) initSprites::sp#2) ← (byte) 0 [154] *((byte*) initSprites::sp#2) ← (byte) 0
[148] (byte*) initSprites::sp#1 ← ++ (byte*) initSprites::sp#2 [155] (byte*) initSprites::sp#1 ← ++ (byte*) initSprites::sp#2
[149] if((byte*) initSprites::sp#1<(const byte*) SPRITE_DATA#0+(const byte) NUM_PROCESSING#0*(byte) $40) goto initSprites::@1 [156] if((byte*) initSprites::sp#1<(const byte*) SPRITE_DATA#0+(const byte) NUM_PROCESSING#0*(byte) $40) goto initSprites::@1
to:initSprites::@2 to:initSprites::@2
initSprites::@2: scope:[initSprites] from initSprites::@1 initSprites::@2 initSprites::@2: scope:[initSprites] from initSprites::@1 initSprites::@2
[150] (byte) initSprites::i#2 ← phi( initSprites::@1/(byte) 0 initSprites::@2/(byte) initSprites::i#1 ) [157] (byte) initSprites::i#2 ← phi( initSprites::@1/(byte) 0 initSprites::@2/(byte) initSprites::i#1 )
[151] *((const byte*) SPRITES_COLS#0 + (byte) initSprites::i#2) ← (const byte) LIGHT_BLUE#0 [158] *((const byte*) SPRITES_COLS#0 + (byte) initSprites::i#2) ← (const byte) LIGHT_BLUE#0
[152] (byte) initSprites::i#1 ← ++ (byte) initSprites::i#2 [159] (byte) initSprites::i#1 ← ++ (byte) initSprites::i#2
[153] if((byte) initSprites::i#1!=(byte) 8) goto initSprites::@2 [160] if((byte) initSprites::i#1!=(byte) 8) goto initSprites::@2
to:initSprites::@3 to:initSprites::@3
initSprites::@3: scope:[initSprites] from initSprites::@2 initSprites::@3: scope:[initSprites] from initSprites::@2
[154] *((const byte*) SPRITES_MC#0) ← (byte) 0 [161] *((const byte*) SPRITES_MC#0) ← (byte) 0
[155] *((const byte*) SPRITES_EXPAND_X#0) ← (byte) 0 [162] *((const byte*) SPRITES_EXPAND_X#0) ← (byte) 0
[156] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte) 0 [163] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte) 0
to:initSprites::@return to:initSprites::@return
initSprites::@return: scope:[initSprites] from initSprites::@3 initSprites::@return: scope:[initSprites] from initSprites::@3
[157] return [164] return
to:@return to:@return
initSquareTables: scope:[initSquareTables] from main initSquareTables: scope:[initSquareTables] from main
[158] phi() [165] phi()
to:initSquareTables::@1 to:initSquareTables::@1
initSquareTables::@1: scope:[initSquareTables] from initSquareTables initSquareTables::@9 initSquareTables::@1: scope:[initSquareTables] from initSquareTables initSquareTables::@9
[159] (byte) initSquareTables::x#2 ← phi( initSquareTables/(byte) 0 initSquareTables::@9/(byte) initSquareTables::x#1 ) [166] (byte) initSquareTables::x#2 ← phi( initSquareTables/(byte) 0 initSquareTables::@9/(byte) initSquareTables::x#1 )
[160] if((byte) initSquareTables::x#2<(byte) $14) goto initSquareTables::@2 [167] if((byte) initSquareTables::x#2<(byte) $14) goto initSquareTables::@2
to:initSquareTables::@3 to:initSquareTables::@3
initSquareTables::@3: scope:[initSquareTables] from initSquareTables::@1 initSquareTables::@3: scope:[initSquareTables] from initSquareTables::@1
[161] (byte~) initSquareTables::$2 ← (byte) initSquareTables::x#2 - (byte) $14 [168] (byte~) initSquareTables::$2 ← (byte) initSquareTables::x#2 - (byte) $14
to:initSquareTables::@4 to:initSquareTables::@4
initSquareTables::@4: scope:[initSquareTables] from initSquareTables::@2 initSquareTables::@3 initSquareTables::@4: scope:[initSquareTables] from initSquareTables::@2 initSquareTables::@3
[162] (byte) initSquareTables::x_dist#0 ← phi( initSquareTables::@2/(byte~) initSquareTables::$4 initSquareTables::@3/(byte~) initSquareTables::$2 ) [169] (byte) initSquareTables::x_dist#0 ← phi( initSquareTables::@2/(byte~) initSquareTables::$4 initSquareTables::@3/(byte~) initSquareTables::$2 )
[163] (byte) mul8u::a#1 ← (byte) initSquareTables::x_dist#0 [170] (byte) mul8u::a#1 ← (byte) initSquareTables::x_dist#0
[164] (byte) mul8u::b#0 ← (byte) initSquareTables::x_dist#0 [171] (byte) mul8u::b#0 ← (byte) initSquareTables::x_dist#0
[165] call mul8u [172] call mul8u
[166] (word) mul8u::return#2 ← (word) mul8u::res#2 [173] (word) mul8u::return#2 ← (word) mul8u::res#2
to:initSquareTables::@9 to:initSquareTables::@9
initSquareTables::@9: scope:[initSquareTables] from initSquareTables::@4 initSquareTables::@9: scope:[initSquareTables] from initSquareTables::@4
[167] (word~) initSquareTables::$6 ← (word) mul8u::return#2 [174] (word~) initSquareTables::$6 ← (word) mul8u::return#2
[168] (byte~) initSquareTables::$16 ← (byte) initSquareTables::x#2 << (byte) 1 [175] (byte~) initSquareTables::$16 ← (byte) initSquareTables::x#2 << (byte) 1
[169] *((const word[$28]) SQUARES_X#0 + (byte~) initSquareTables::$16) ← (word~) initSquareTables::$6 [176] *((const word[$28]) SQUARES_X#0 + (byte~) initSquareTables::$16) ← (word~) initSquareTables::$6
[170] (byte) initSquareTables::x#1 ← ++ (byte) initSquareTables::x#2 [177] (byte) initSquareTables::x#1 ← ++ (byte) initSquareTables::x#2
[171] if((byte) initSquareTables::x#1!=(byte) $28) goto initSquareTables::@1 [178] if((byte) initSquareTables::x#1!=(byte) $28) goto initSquareTables::@1
to:initSquareTables::@5 to:initSquareTables::@5
initSquareTables::@5: scope:[initSquareTables] from initSquareTables::@10 initSquareTables::@9 initSquareTables::@5: scope:[initSquareTables] from initSquareTables::@10 initSquareTables::@9
[172] (byte) initSquareTables::y#2 ← phi( initSquareTables::@10/(byte) initSquareTables::y#1 initSquareTables::@9/(byte) 0 ) [179] (byte) initSquareTables::y#2 ← phi( initSquareTables::@10/(byte) initSquareTables::y#1 initSquareTables::@9/(byte) 0 )
[173] if((byte) initSquareTables::y#2<(byte) $c) goto initSquareTables::@6 [180] if((byte) initSquareTables::y#2<(byte) $c) goto initSquareTables::@6
to:initSquareTables::@7 to:initSquareTables::@7
initSquareTables::@7: scope:[initSquareTables] from initSquareTables::@5 initSquareTables::@7: scope:[initSquareTables] from initSquareTables::@5
[174] (byte~) initSquareTables::$10 ← (byte) initSquareTables::y#2 - (byte) $c [181] (byte~) initSquareTables::$10 ← (byte) initSquareTables::y#2 - (byte) $c
to:initSquareTables::@8 to:initSquareTables::@8
initSquareTables::@8: scope:[initSquareTables] from initSquareTables::@6 initSquareTables::@7 initSquareTables::@8: scope:[initSquareTables] from initSquareTables::@6 initSquareTables::@7
[175] (byte) initSquareTables::y_dist#0 ← phi( initSquareTables::@6/(byte~) initSquareTables::$12 initSquareTables::@7/(byte~) initSquareTables::$10 ) [182] (byte) initSquareTables::y_dist#0 ← phi( initSquareTables::@6/(byte~) initSquareTables::$12 initSquareTables::@7/(byte~) initSquareTables::$10 )
[176] (byte) mul8u::a#2 ← (byte) initSquareTables::y_dist#0 [183] (byte) mul8u::a#2 ← (byte) initSquareTables::y_dist#0
[177] (byte) mul8u::b#1 ← (byte) initSquareTables::y_dist#0 [184] (byte) mul8u::b#1 ← (byte) initSquareTables::y_dist#0
[178] call mul8u [185] call mul8u
[179] (word) mul8u::return#3 ← (word) mul8u::res#2 [186] (word) mul8u::return#3 ← (word) mul8u::res#2
to:initSquareTables::@10 to:initSquareTables::@10
initSquareTables::@10: scope:[initSquareTables] from initSquareTables::@8 initSquareTables::@10: scope:[initSquareTables] from initSquareTables::@8
[180] (word~) initSquareTables::$14 ← (word) mul8u::return#3 [187] (word~) initSquareTables::$14 ← (word) mul8u::return#3
[181] (byte~) initSquareTables::$17 ← (byte) initSquareTables::y#2 << (byte) 1 [188] (byte~) initSquareTables::$17 ← (byte) initSquareTables::y#2 << (byte) 1
[182] *((const word[$19]) SQUARES_Y#0 + (byte~) initSquareTables::$17) ← (word~) initSquareTables::$14 [189] *((const word[$19]) SQUARES_Y#0 + (byte~) initSquareTables::$17) ← (word~) initSquareTables::$14
[183] (byte) initSquareTables::y#1 ← ++ (byte) initSquareTables::y#2 [190] (byte) initSquareTables::y#1 ← ++ (byte) initSquareTables::y#2
[184] if((byte) initSquareTables::y#1!=(byte) $19) goto initSquareTables::@5 [191] if((byte) initSquareTables::y#1!=(byte) $19) goto initSquareTables::@5
to:initSquareTables::@return to:initSquareTables::@return
initSquareTables::@return: scope:[initSquareTables] from initSquareTables::@10 initSquareTables::@return: scope:[initSquareTables] from initSquareTables::@10
[185] return [192] return
to:@return to:@return
initSquareTables::@6: scope:[initSquareTables] from initSquareTables::@5 initSquareTables::@6: scope:[initSquareTables] from initSquareTables::@5
[186] (byte~) initSquareTables::$12 ← (byte) $c - (byte) initSquareTables::y#2 [193] (byte~) initSquareTables::$12 ← (byte) $c - (byte) initSquareTables::y#2
to:initSquareTables::@8 to:initSquareTables::@8
initSquareTables::@2: scope:[initSquareTables] from initSquareTables::@1 initSquareTables::@2: scope:[initSquareTables] from initSquareTables::@1
[187] (byte~) initSquareTables::$4 ← (byte) $14 - (byte) initSquareTables::x#2 [194] (byte~) initSquareTables::$4 ← (byte) $14 - (byte) initSquareTables::x#2
to:initSquareTables::@4 to:initSquareTables::@4
mul8u: scope:[mul8u] from initSquareTables::@4 initSquareTables::@8 mul8u: scope:[mul8u] from initSquareTables::@4 initSquareTables::@8
[188] (byte) mul8u::a#6 ← phi( initSquareTables::@8/(byte) mul8u::a#2 initSquareTables::@4/(byte) mul8u::a#1 ) [195] (byte) mul8u::a#6 ← phi( initSquareTables::@8/(byte) mul8u::a#2 initSquareTables::@4/(byte) mul8u::a#1 )
[188] (word) mul8u::mb#0 ← phi( initSquareTables::@8/(byte) mul8u::b#1 initSquareTables::@4/(byte) mul8u::b#0 ) [195] (word) mul8u::mb#0 ← phi( initSquareTables::@8/(byte) mul8u::b#1 initSquareTables::@4/(byte) mul8u::b#0 )
to:mul8u::@1 to:mul8u::@1
mul8u::@1: scope:[mul8u] from mul8u mul8u::@3 mul8u::@1: scope:[mul8u] from mul8u mul8u::@3
[189] (word) mul8u::mb#2 ← phi( mul8u/(word) mul8u::mb#0 mul8u::@3/(word) mul8u::mb#1 ) [196] (word) mul8u::mb#2 ← phi( mul8u/(word) mul8u::mb#0 mul8u::@3/(word) mul8u::mb#1 )
[189] (word) mul8u::res#2 ← phi( mul8u/(byte) 0 mul8u::@3/(word) mul8u::res#6 ) [196] (word) mul8u::res#2 ← phi( mul8u/(byte) 0 mul8u::@3/(word) mul8u::res#6 )
[189] (byte) mul8u::a#3 ← phi( mul8u/(byte) mul8u::a#6 mul8u::@3/(byte) mul8u::a#0 ) [196] (byte) mul8u::a#3 ← phi( mul8u/(byte) mul8u::a#6 mul8u::@3/(byte) mul8u::a#0 )
[190] if((byte) mul8u::a#3!=(byte) 0) goto mul8u::@2 [197] if((byte) mul8u::a#3!=(byte) 0) goto mul8u::@2
to:mul8u::@return to:mul8u::@return
mul8u::@return: scope:[mul8u] from mul8u::@1 mul8u::@return: scope:[mul8u] from mul8u::@1
[191] return [198] return
to:@return to:@return
mul8u::@2: scope:[mul8u] from mul8u::@1 mul8u::@2: scope:[mul8u] from mul8u::@1
[192] (byte~) mul8u::$1 ← (byte) mul8u::a#3 & (byte) 1 [199] (byte~) mul8u::$1 ← (byte) mul8u::a#3 & (byte) 1
[193] if((byte~) mul8u::$1==(byte) 0) goto mul8u::@3 [200] if((byte~) mul8u::$1==(byte) 0) goto mul8u::@3
to:mul8u::@4 to:mul8u::@4
mul8u::@4: scope:[mul8u] from mul8u::@2 mul8u::@4: scope:[mul8u] from mul8u::@2
[194] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2 [201] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2
to:mul8u::@3 to:mul8u::@3
mul8u::@3: scope:[mul8u] from mul8u::@2 mul8u::@4 mul8u::@3: scope:[mul8u] from mul8u::@2 mul8u::@4
[195] (word) mul8u::res#6 ← phi( mul8u::@2/(word) mul8u::res#2 mul8u::@4/(word) mul8u::res#1 ) [202] (word) mul8u::res#6 ← phi( mul8u::@2/(word) mul8u::res#2 mul8u::@4/(word) mul8u::res#1 )
[196] (byte) mul8u::a#0 ← (byte) mul8u::a#3 >> (byte) 1 [203] (byte) mul8u::a#0 ← (byte) mul8u::a#3 >> (byte) 1
[197] (word) mul8u::mb#1 ← (word) mul8u::mb#2 << (byte) 1 [204] (word) mul8u::mb#1 ← (word) mul8u::mb#2 << (byte) 1
to:mul8u::@1 to:mul8u::@1
irqBottom: scope:[irqBottom] from irqBottom: scope:[irqBottom] from
[198] phi() [205] phi()
to:irqBottom::@1 to:irqBottom::@1
irqBottom::@1: scope:[irqBottom] from irqBottom irqBottom::@1: scope:[irqBottom] from irqBottom
[199] phi() [206] phi()
[200] call processChars [207] call processChars
to:irqBottom::@2 to:irqBottom::@2
irqBottom::@2: scope:[irqBottom] from irqBottom::@1 irqBottom::@2: scope:[irqBottom] from irqBottom::@1
[201] *((const byte*) RASTER#0) ← (const byte) RASTER_IRQ_TOP#0 [208] *((const byte*) RASTER#0) ← (const byte) RASTER_IRQ_TOP#0
[202] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_ALL)(void()) irqTop() [209] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_ALL)(void()) irqTop()
[203] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [210] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
to:irqBottom::@return to:irqBottom::@return
irqBottom::@return: scope:[irqBottom] from irqBottom::@2 irqBottom::@return: scope:[irqBottom] from irqBottom::@2
[204] return [211] return
to:@return to:@return
processChars: scope:[processChars] from irqBottom::@1 processChars: scope:[processChars] from irqBottom::@1
[205] phi() [212] phi()
to:processChars::@1 to:processChars::@1
processChars::@1: scope:[processChars] from processChars processChars::@2 processChars::@1: scope:[processChars] from processChars processChars::@2
[206] (byte) processChars::numActive#10 ← phi( processChars/(byte) 0 processChars::@2/(byte) processChars::numActive#3 ) [213] (byte) processChars::numActive#10 ← phi( processChars/(byte) 0 processChars::@2/(byte) processChars::numActive#3 )
[206] (byte) processChars::i#10 ← phi( processChars/(byte) 0 processChars::@2/(byte) processChars::i#1 ) [213] (byte) processChars::i#10 ← phi( processChars/(byte) 0 processChars::@2/(byte) processChars::i#1 )
[207] (byte) processChars::$65 ← (byte) processChars::i#10 << (byte) 1 [214] (byte) processChars::$67 ← (byte) processChars::i#10 << (byte) 1
[208] (byte) processChars::$66 ← (byte) processChars::$65 + (byte) processChars::i#10 [215] (byte) processChars::$68 ← (byte) processChars::$67 + (byte) processChars::i#10
[209] (byte) processChars::$67 ← (byte) processChars::$66 << (byte) 2 [216] (byte) processChars::$69 ← (byte) processChars::$68 << (byte) 1
[210] (byte~) processChars::$37 ← (byte) processChars::$67 + (byte) processChars::i#10 [217] (byte) processChars::$70 ← (byte) processChars::$69 + (byte) processChars::i#10
[211] (struct ProcessingSprite*) processChars::processing#0 ← (const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0 + (byte~) processChars::$37 [218] (byte~) processChars::$37 ← (byte) processChars::$70 << (byte) 1
[212] (byte) processChars::bitmask#0 ← (byte) 1 << *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID) [219] (struct ProcessingSprite*) processChars::processing#0 ← (const struct ProcessingSprite[NUM_PROCESSING#0]) PROCESSING#0 + (byte~) processChars::$37
[213] if(*((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)==(const byte) STATUS_FREE#0) goto processChars::@2 [220] (byte) processChars::bitmask#0 ← (byte) 1 << *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID)
[221] if(*((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)==(const byte) STATUS_FREE#0) goto processChars::@2
to:processChars::@10 to:processChars::@10
processChars::@10: scope:[processChars] from processChars::@1 processChars::@10: scope:[processChars] from processChars::@1
[214] if(*((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)!=(const byte) STATUS_NEW#0) goto processChars::@3 [222] if(*((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)!=(const byte) STATUS_NEW#0) goto processChars::@3
to:processChars::@11 to:processChars::@11
processChars::@11: scope:[processChars] from processChars::@10 processChars::@11: scope:[processChars] from processChars::@10
[215] *(*((byte**)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)) ← (byte) ' ' [223] *(*((byte**)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)) ← (byte) ' '
[216] *((const byte*) SPRITES_ENABLE#0) ← *((const byte*) SPRITES_ENABLE#0) | (byte) processChars::bitmask#0 [224] *((const byte*) SPRITES_ENABLE#0) ← *((const byte*) SPRITES_ENABLE#0) | (byte) processChars::bitmask#0
[217] *((const byte*) SCREEN#0+(const word) SPRITE_PTRS#0 + *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID)) ← *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR) [225] *((const byte*) SPRITES_COLS#0 + *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID)) ← *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_COL)
[218] *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS) ← (const byte) STATUS_PROCESSING#0 [226] *((const byte*) SCREEN#0+(const word) SPRITE_PTRS#0 + *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID)) ← *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR)
[227] *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS) ← (const byte) STATUS_PROCESSING#0
to:processChars::@3 to:processChars::@3
processChars::@3: scope:[processChars] from processChars::@10 processChars::@11 processChars::@3: scope:[processChars] from processChars::@10 processChars::@11
[219] (word) processChars::xpos#0 ← *((word*)(struct ProcessingSprite*) processChars::processing#0) >> (byte) 4 [228] (word) processChars::xpos#0 ← *((word*)(struct ProcessingSprite*) processChars::processing#0) >> (byte) 4
[220] (byte~) processChars::$11 ← > (word) processChars::xpos#0 [229] (byte~) processChars::$11 ← > (word) processChars::xpos#0
[221] if((byte) 0!=(byte~) processChars::$11) goto processChars::@4 [230] if((byte) 0!=(byte~) processChars::$11) goto processChars::@4
to:processChars::@8 to:processChars::@8
processChars::@8: scope:[processChars] from processChars::@3 processChars::@8: scope:[processChars] from processChars::@3
[222] (byte~) processChars::$12 ← (byte) $ff ^ (byte) processChars::bitmask#0 [231] (byte~) processChars::$12 ← (byte) $ff ^ (byte) processChars::bitmask#0
[223] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte~) processChars::$12 [232] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte~) processChars::$12
to:processChars::@5 to:processChars::@5
processChars::@5: scope:[processChars] from processChars::@4 processChars::@8 processChars::@5: scope:[processChars] from processChars::@4 processChars::@8
[224] (byte~) processChars::$17 ← (byte) processChars::i#10 << (byte) 1 [233] (byte~) processChars::$17 ← (byte) processChars::i#10 << (byte) 1
[225] (byte~) processChars::$14 ← (byte)(word) processChars::xpos#0 [234] (byte~) processChars::$14 ← (byte)(word) processChars::xpos#0
[226] *((const byte*) SPRITES_XPOS#0 + (byte~) processChars::$17) ← (byte~) processChars::$14 [235] *((const byte*) SPRITES_XPOS#0 + (byte~) processChars::$17) ← (byte~) processChars::$14
[227] (word~) processChars::$15 ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) >> (byte) 4 [236] (word~) processChars::$15 ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) >> (byte) 4
[228] (byte) processChars::ypos#0 ← (byte)(word~) processChars::$15 [237] (byte) processChars::ypos#0 ← (byte)(word~) processChars::$15
[229] *((const byte*) SPRITES_YPOS#0 + (byte~) processChars::$17) ← (byte) processChars::ypos#0 [238] *((const byte*) SPRITES_YPOS#0 + (byte~) processChars::$17) ← (byte) processChars::ypos#0
[230] if(*((word*)(struct ProcessingSprite*) processChars::processing#0)<(const word) XPOS_LEFTMOST#0) goto processChars::@6 [239] if(*((word*)(struct ProcessingSprite*) processChars::processing#0)<(const word) XPOS_LEFTMOST#0) goto processChars::@6
to:processChars::@14 to:processChars::@14
processChars::@14: scope:[processChars] from processChars::@5 processChars::@14: scope:[processChars] from processChars::@5
[231] if(*((word*)(struct ProcessingSprite*) processChars::processing#0)>(const word) XPOS_RIGHTMOST#0) goto processChars::@6 [240] if(*((word*)(struct ProcessingSprite*) processChars::processing#0)>(const word) XPOS_RIGHTMOST#0) goto processChars::@6
to:processChars::@13 to:processChars::@13
processChars::@13: scope:[processChars] from processChars::@14 processChars::@13: scope:[processChars] from processChars::@14
[232] if(*((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y)<(const word) YPOS_TOPMOST#0) goto processChars::@6 [241] if(*((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y)<(const word) YPOS_TOPMOST#0) goto processChars::@6
to:processChars::@12 to:processChars::@12
processChars::@12: scope:[processChars] from processChars::@13 processChars::@12: scope:[processChars] from processChars::@13
[233] if(*((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y)>(const word) YPOS_BOTTOMMOST#0) goto processChars::@6 [242] if(*((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y)>(const word) YPOS_BOTTOMMOST#0) goto processChars::@6
to:processChars::@9 to:processChars::@9
processChars::@9: scope:[processChars] from processChars::@12 processChars::@9: scope:[processChars] from processChars::@12
[234] (word~) processChars::$25 ← (word) processChars::xpos#0 >> (byte) 3 [243] (word~) processChars::$25 ← (word) processChars::xpos#0 >> (byte) 3
[235] (byte~) processChars::$26 ← (byte)(word~) processChars::$25 [244] (byte~) processChars::$26 ← (byte)(word~) processChars::$25
[236] (byte) processChars::xchar#0 ← (byte~) processChars::$26 - (const byte) BORDER_XPOS_LEFT#0/(byte) 8 [245] (byte) processChars::xchar#0 ← (byte~) processChars::$26 - (const byte) BORDER_XPOS_LEFT#0/(byte) 8
[237] (byte~) processChars::$38 ← (byte) processChars::xchar#0 << (byte) 1 [246] (byte~) processChars::$38 ← (byte) processChars::xchar#0 << (byte) 1
[238] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX) + *((const word*) VXSIN#0 + (byte~) processChars::$38) [247] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX) + *((const word*) VXSIN#0 + (byte~) processChars::$38)
[239] *((word*)(struct ProcessingSprite*) processChars::processing#0) ← *((word*)(struct ProcessingSprite*) processChars::processing#0) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX) [248] *((word*)(struct ProcessingSprite*) processChars::processing#0) ← *((word*)(struct ProcessingSprite*) processChars::processing#0) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX)
[240] (byte~) processChars::$30 ← (byte) processChars::ypos#0 >> (byte) 3 [249] (byte~) processChars::$30 ← (byte) processChars::ypos#0 >> (byte) 3
[241] (byte) processChars::ychar#0 ← (byte~) processChars::$30 - (const byte) BORDER_YPOS_TOP#0/(byte) 8 [250] (byte) processChars::ychar#0 ← (byte~) processChars::$30 - (const byte) BORDER_YPOS_TOP#0/(byte) 8
[242] (byte~) processChars::$39 ← (byte) processChars::ychar#0 << (byte) 1 [251] (byte~) processChars::$39 ← (byte) processChars::ychar#0 << (byte) 1
[243] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY) + *((const word*) VYSIN#0 + (byte~) processChars::$39) [252] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY) + *((const word*) VYSIN#0 + (byte~) processChars::$39)
[244] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY) [253] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY)
to:processChars::@7 to:processChars::@7
processChars::@7: scope:[processChars] from processChars::@6 processChars::@9 processChars::@7: scope:[processChars] from processChars::@6 processChars::@9
[245] (byte) processChars::numActive#1 ← ++ (byte) processChars::numActive#10 [254] (byte) processChars::numActive#1 ← ++ (byte) processChars::numActive#10
to:processChars::@2 to:processChars::@2
processChars::@2: scope:[processChars] from processChars::@1 processChars::@7 processChars::@2: scope:[processChars] from processChars::@1 processChars::@7
[246] (byte) processChars::numActive#3 ← phi( processChars::@1/(byte) processChars::numActive#10 processChars::@7/(byte) processChars::numActive#1 ) [255] (byte) processChars::numActive#3 ← phi( processChars::@1/(byte) processChars::numActive#10 processChars::@7/(byte) processChars::numActive#1 )
[247] (byte) processChars::i#1 ← ++ (byte) processChars::i#10 [256] (byte) processChars::i#1 ← ++ (byte) processChars::i#10
[248] if((byte) processChars::i#1!=(const byte) NUM_PROCESSING#0-(byte) 1+(byte) 1) goto processChars::@1 [257] if((byte) processChars::i#1!=(const byte) NUM_PROCESSING#0-(byte) 1+(byte) 1) goto processChars::@1
to:processChars::@return to:processChars::@return
processChars::@return: scope:[processChars] from processChars::@2 processChars::@return: scope:[processChars] from processChars::@2
[249] return
to:@return
processChars::@6: scope:[processChars] from processChars::@12 processChars::@13 processChars::@14 processChars::@5
[250] *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS) ← (const byte) STATUS_FREE#0
[251] (byte~) processChars::$33 ← (byte) $ff ^ (byte) processChars::bitmask#0
[252] *((const byte*) SPRITES_ENABLE#0) ← *((const byte*) SPRITES_ENABLE#0) & (byte~) processChars::$33
to:processChars::@7
processChars::@4: scope:[processChars] from processChars::@3
[253] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) | (byte) processChars::bitmask#0
to:processChars::@5
irqTop: scope:[irqTop] from
[254] phi()
to:irqTop::@1
irqTop::@1: scope:[irqTop] from irqTop
[255] *((const byte*) RASTER#0) ← (const byte) RASTER_IRQ_MIDDLE#0
[256] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_ALL)(void()) irqBottom()
[257] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
to:irqTop::@return
irqTop::@return: scope:[irqTop] from irqTop::@1
[258] return [258] return
to:@return to:@return
processChars::@6: scope:[processChars] from processChars::@12 processChars::@13 processChars::@14 processChars::@5
[259] *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS) ← (const byte) STATUS_FREE#0
[260] (byte~) processChars::$33 ← (byte) $ff ^ (byte) processChars::bitmask#0
[261] *((const byte*) SPRITES_ENABLE#0) ← *((const byte*) SPRITES_ENABLE#0) & (byte~) processChars::$33
to:processChars::@7
processChars::@4: scope:[processChars] from processChars::@3
[262] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) | (byte) processChars::bitmask#0
to:processChars::@5
irqTop: scope:[irqTop] from
[263] phi()
to:irqTop::@1
irqTop::@1: scope:[irqTop] from irqTop
[264] *((const byte*) RASTER#0) ← (const byte) RASTER_IRQ_MIDDLE#0
[265] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_ALL)(void()) irqBottom()
[266] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
to:irqTop::@return
irqTop::@return: scope:[irqTop] from irqTop::@1
[267] return
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -36,10 +36,11 @@
(const word) NOT_FOUND#0 NOT_FOUND = (word) $ffff (const word) NOT_FOUND#0 NOT_FOUND = (word) $ffff
(byte) NUM_PROCESSING (byte) NUM_PROCESSING
(const byte) NUM_PROCESSING#0 NUM_PROCESSING = (byte) 8 (const byte) NUM_PROCESSING#0 NUM_PROCESSING = (byte) 8
(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_COL OFFSET_STRUCT_PROCESSINGSPRITE_COL = (byte) $a
(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID OFFSET_STRUCT_PROCESSINGSPRITE_ID = (byte) 8 (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_ID OFFSET_STRUCT_PROCESSINGSPRITE_ID = (byte) 8
(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR OFFSET_STRUCT_PROCESSINGSPRITE_PTR = (byte) 9 (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR OFFSET_STRUCT_PROCESSINGSPRITE_PTR = (byte) 9
(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR = (byte) $b (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR = (byte) $c
(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS OFFSET_STRUCT_PROCESSINGSPRITE_STATUS = (byte) $a (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS OFFSET_STRUCT_PROCESSINGSPRITE_STATUS = (byte) $b
(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX OFFSET_STRUCT_PROCESSINGSPRITE_VX = (byte) 4 (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX OFFSET_STRUCT_PROCESSINGSPRITE_VX = (byte) 4
(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY OFFSET_STRUCT_PROCESSINGSPRITE_VY = (byte) 6 (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY OFFSET_STRUCT_PROCESSINGSPRITE_VY = (byte) 6
(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y OFFSET_STRUCT_PROCESSINGSPRITE_Y = (byte) 2 (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y OFFSET_STRUCT_PROCESSINGSPRITE_Y = (byte) 2
@ -58,6 +59,7 @@
(word) ProcessingChar::dist (word) ProcessingChar::dist
(byte) ProcessingChar::x (byte) ProcessingChar::x
(byte) ProcessingChar::y (byte) ProcessingChar::y
(byte) ProcessingSprite::col
(byte) ProcessingSprite::id (byte) ProcessingSprite::id
(byte) ProcessingSprite::ptr (byte) ProcessingSprite::ptr
(byte*) ProcessingSprite::screenPtr (byte*) ProcessingSprite::screenPtr
@ -122,13 +124,13 @@
(word) YPOS_TOPMOST (word) YPOS_TOPMOST
(const word) YPOS_TOPMOST#0 YPOS_TOPMOST = (word)(const byte) BORDER_YPOS_TOP#0-(byte) 8<<(byte) 4 (const word) YPOS_TOPMOST#0 YPOS_TOPMOST = (word)(const byte) BORDER_YPOS_TOP#0-(byte) 8<<(byte) 4
(struct ProcessingChar()) getCharToProcess() (struct ProcessingChar()) getCharToProcess()
(word~) getCharToProcess::$10 $10 zp ZP_WORD:47 4.0 (word~) getCharToProcess::$10 $10 zp ZP_WORD:48 4.0
(byte*~) getCharToProcess::$11 $11 zp ZP_WORD:47 4.0 (byte*~) getCharToProcess::$11 $11 zp ZP_WORD:48 4.0
(byte~) getCharToProcess::$13 reg byte x 1001.0 (byte~) getCharToProcess::$13 reg byte x 1001.0
(byte~) getCharToProcess::$14 reg byte a 2002.0 (byte~) getCharToProcess::$14 reg byte a 2002.0
(word) getCharToProcess::$15 $15 zp ZP_WORD:49 4.0 (word) getCharToProcess::$15 $15 zp ZP_WORD:50 4.0
(word) getCharToProcess::$16 $16 zp ZP_WORD:47 4.0 (word) getCharToProcess::$16 $16 zp ZP_WORD:48 4.0
(word~) getCharToProcess::$9 $9 zp ZP_WORD:47 3.0 (word~) getCharToProcess::$9 $9 zp ZP_WORD:48 3.0
(label) getCharToProcess::@1 (label) getCharToProcess::@1
(label) getCharToProcess::@10 (label) getCharToProcess::@10
(label) getCharToProcess::@11 (label) getCharToProcess::@11
@ -230,10 +232,11 @@ interrupt(HARDWARE_ALL)(void()) irqTop()
(byte) irqTop::i (byte) irqTop::i
(byte) irqTop::i1 (byte) irqTop::i1
(void()) main() (void()) main()
(byte~) main::$16 reg byte x 12.375 (byte~) main::$16 reg byte x 12.222222222222221
(byte) main::$25 reg byte a 22.0
(byte) main::$26 reg byte a 22.0 (byte) main::$26 reg byte a 22.0
(byte) main::$27 reg byte a 22.0 (byte) main::$27 reg byte a 22.0
(byte) main::$28 reg byte a 22.0
(byte) main::$29 reg byte a 22.0
(struct ProcessingChar~) main::$9 (struct ProcessingChar~) main::$9
(label) main::@1 (label) main::@1
(label) main::@2 (label) main::@2
@ -255,7 +258,7 @@ interrupt(HARDWARE_ALL)(void()) irqTop()
(byte*) main::dst#2 dst zp ZP_WORD:4 11.0 (byte*) main::dst#2 dst zp ZP_WORD:4 11.0
(byte) main::i (byte) main::i
(byte) main::i#1 i zp ZP_BYTE:6 16.5 (byte) main::i#1 i zp ZP_BYTE:6 16.5
(byte) main::i#2 i zp ZP_BYTE:6 4.230769230769231 (byte) main::i#2 i zp ZP_BYTE:6 3.6666666666666665
(byte*) main::src (byte*) main::src
(byte*) main::src#1 src zp ZP_WORD:2 11.0 (byte*) main::src#1 src zp ZP_WORD:2 11.0
(byte*) main::src#2 src zp ZP_WORD:2 16.5 (byte*) main::src#2 src zp ZP_WORD:2 16.5
@ -290,18 +293,19 @@ interrupt(HARDWARE_ALL)(void()) irqTop()
(byte~) processChars::$11 reg byte a 22.0 (byte~) processChars::$11 reg byte a 22.0
(byte~) processChars::$12 reg byte a 22.0 (byte~) processChars::$12 reg byte a 22.0
(byte~) processChars::$14 reg byte a 22.0 (byte~) processChars::$14 reg byte a 22.0
(word~) processChars::$15 $15 zp ZP_WORD:56 11.0 (word~) processChars::$15 $15 zp ZP_WORD:57 11.0
(byte~) processChars::$17 reg byte x 6.6000000000000005 (byte~) processChars::$17 reg byte x 6.6000000000000005
(word~) processChars::$25 $25 zp ZP_WORD:54 11.0 (word~) processChars::$25 $25 zp ZP_WORD:55 11.0
(byte~) processChars::$26 reg byte a 22.0 (byte~) processChars::$26 reg byte a 22.0
(byte~) processChars::$30 reg byte a 22.0 (byte~) processChars::$30 reg byte a 22.0
(byte~) processChars::$33 reg byte a 22.0 (byte~) processChars::$33 reg byte a 22.0
(byte~) processChars::$37 reg byte a 22.0 (byte~) processChars::$37 reg byte a 22.0
(byte~) processChars::$38 reg byte a 22.0 (byte~) processChars::$38 reg byte a 22.0
(byte~) processChars::$39 reg byte a 22.0 (byte~) processChars::$39 reg byte a 22.0
(byte) processChars::$65 reg byte a 22.0
(byte) processChars::$66 reg byte a 22.0
(byte) processChars::$67 reg byte a 22.0 (byte) processChars::$67 reg byte a 22.0
(byte) processChars::$68 reg byte a 22.0
(byte) processChars::$69 reg byte a 22.0
(byte) processChars::$70 reg byte a 22.0
(label) processChars::@1 (label) processChars::@1
(label) processChars::@10 (label) processChars::@10
(label) processChars::@11 (label) processChars::@11
@ -318,24 +322,24 @@ interrupt(HARDWARE_ALL)(void()) irqTop()
(label) processChars::@9 (label) processChars::@9
(label) processChars::@return (label) processChars::@return
(byte) processChars::bitmask (byte) processChars::bitmask
(byte) processChars::bitmask#0 bitmask zp ZP_BYTE:53 2.2916666666666665 (byte) processChars::bitmask#0 bitmask zp ZP_BYTE:54 2.2
(byte) processChars::i (byte) processChars::i
(byte) processChars::i#1 i zp ZP_BYTE:30 16.5 (byte) processChars::i#1 i zp ZP_BYTE:30 16.5
(byte) processChars::i#10 i zp ZP_BYTE:30 1.4666666666666666 (byte) processChars::i#10 i zp ZP_BYTE:30 1.4042553191489362
(byte) processChars::numActive (byte) processChars::numActive
(byte) processChars::numActive#1 numActive zp ZP_BYTE:31 22.0 (byte) processChars::numActive#1 numActive zp ZP_BYTE:31 22.0
(byte) processChars::numActive#10 numActive zp ZP_BYTE:31 0.7674418604651163 (byte) processChars::numActive#10 numActive zp ZP_BYTE:31 0.7333333333333333
(byte) processChars::numActive#3 numActive zp ZP_BYTE:31 11.0 (byte) processChars::numActive#3 numActive zp ZP_BYTE:31 11.0
(struct ProcessingSprite*) processChars::processing (struct ProcessingSprite*) processChars::processing
(struct ProcessingSprite*) processChars::processing#0 processing zp ZP_WORD:51 0.3235294117647059 (struct ProcessingSprite*) processChars::processing#0 processing zp ZP_WORD:52 0.3142857142857143
(byte) processChars::xchar (byte) processChars::xchar
(byte) processChars::xchar#0 reg byte a 22.0 (byte) processChars::xchar#0 reg byte a 22.0
(word) processChars::xpos (word) processChars::xpos
(word) processChars::xpos#0 xpos zp ZP_WORD:54 2.0625 (word) processChars::xpos#0 xpos zp ZP_WORD:55 2.0625
(byte) processChars::ychar (byte) processChars::ychar
(byte) processChars::ychar#0 reg byte a 22.0 (byte) processChars::ychar#0 reg byte a 22.0
(byte) processChars::ypos (byte) processChars::ypos
(byte) processChars::ypos#0 ypos zp ZP_BYTE:58 2.75 (byte) processChars::ypos#0 ypos zp ZP_BYTE:59 2.75
(void()) setupRasterIrq((word) setupRasterIrq::raster , (void()*) setupRasterIrq::irqRoutine) (void()) setupRasterIrq((word) setupRasterIrq::raster , (void()*) setupRasterIrq::irqRoutine)
(label) setupRasterIrq::@1 (label) setupRasterIrq::@1
(label) setupRasterIrq::@2 (label) setupRasterIrq::@2
@ -346,29 +350,30 @@ interrupt(HARDWARE_ALL)(void()) irqTop()
(void()) startProcessing((byte) startProcessing::center_x , (byte) startProcessing::center_y , (word) startProcessing::center_dist) (void()) startProcessing((byte) startProcessing::center_x , (byte) startProcessing::center_y , (word) startProcessing::center_dist)
(word~) startProcessing::$0 $0 zp ZP_WORD:34 3.0 (word~) startProcessing::$0 $0 zp ZP_WORD:34 3.0
(word~) startProcessing::$1 $1 zp ZP_WORD:34 4.0 (word~) startProcessing::$1 $1 zp ZP_WORD:34 4.0
(word~) startProcessing::$10 $10 zp ZP_WORD:40 4.0 (word~) startProcessing::$11 $11 zp ZP_WORD:41 4.0
(word~) startProcessing::$11 $11 zp ZP_WORD:40 4.0 (word~) startProcessing::$12 $12 zp ZP_WORD:41 4.0
(word~) startProcessing::$12 $12 zp ZP_WORD:40 4.0 (word~) startProcessing::$13 $13 zp ZP_WORD:41 4.0
(word~) startProcessing::$14 $14 zp ZP_WORD:42 4.0 (word~) startProcessing::$15 $15 zp ZP_WORD:43 4.0
(word~) startProcessing::$15 $15 zp ZP_WORD:42 4.0 (word~) startProcessing::$16 $16 zp ZP_WORD:43 4.0
(word~) startProcessing::$16 $16 zp ZP_WORD:42 4.0 (word~) startProcessing::$17 $17 zp ZP_WORD:43 4.0
(byte*~) startProcessing::$2 $2 zp ZP_WORD:34 1.2000000000000002 (byte~) startProcessing::$22 reg byte a 2.0
(byte~) startProcessing::$21 reg byte a 2.0 (word~) startProcessing::$23 $23 zp ZP_WORD:46 0.5
(word~) startProcessing::$22 $22 zp ZP_WORD:45 0.5714285714285714 (byte~) startProcessing::$30 reg byte a 2002.0
(byte~) startProcessing::$29 reg byte a 2002.0 (byte~) startProcessing::$31 reg byte x 2.2222222222222228
(byte~) startProcessing::$30 reg byte x 2.25
(word~) startProcessing::$4 $4 zp ZP_WORD:10 4.0
(byte) startProcessing::$40 reg byte a 2002.0
(byte) startProcessing::$41 reg byte a 2002.0
(byte) startProcessing::$42 reg byte a 2002.0 (byte) startProcessing::$42 reg byte a 2002.0
(word) startProcessing::$44 $44 zp ZP_WORD:36 4.0 (byte) startProcessing::$43 reg byte a 2002.0
(word) startProcessing::$45 $45 zp ZP_WORD:34 4.0 (byte) startProcessing::$44 reg byte a 2002.0
(byte) startProcessing::$47 reg byte a 4.0 (byte) startProcessing::$45 reg byte a 2002.0
(byte) startProcessing::$48 reg byte a 4.0 (word) startProcessing::$47 $47 zp ZP_WORD:36 4.0
(byte) startProcessing::$49 reg byte a 4.0 (word) startProcessing::$48 $48 zp ZP_WORD:34 4.0
(word~) startProcessing::$5 $5 zp ZP_WORD:10 4.0 (word~) startProcessing::$5 $5 zp ZP_WORD:10 4.0
(word~) startProcessing::$7 $7 zp ZP_WORD:8 4.0 (byte) startProcessing::$50 reg byte a 4.0
(byte) startProcessing::$51 reg byte a 4.0
(byte) startProcessing::$52 reg byte a 4.0
(byte) startProcessing::$53 reg byte a 4.0
(word~) startProcessing::$6 $6 zp ZP_WORD:10 4.0
(word~) startProcessing::$8 $8 zp ZP_WORD:8 4.0 (word~) startProcessing::$8 $8 zp ZP_WORD:8 4.0
(word~) startProcessing::$9 $9 zp ZP_WORD:8 4.0
(label) startProcessing::@1 (label) startProcessing::@1
(label) startProcessing::@2 (label) startProcessing::@2
(label) startProcessing::@3 (label) startProcessing::@3
@ -382,47 +387,53 @@ interrupt(HARDWARE_ALL)(void()) irqTop()
(struct ProcessingChar) startProcessing::center (struct ProcessingChar) startProcessing::center
(word) startProcessing::center_dist (word) startProcessing::center_dist
(byte) startProcessing::center_x (byte) startProcessing::center_x
(byte) startProcessing::center_x#0 center_x zp ZP_BYTE:32 0.3846153846153846 (byte) startProcessing::center_x#0 center_x zp ZP_BYTE:32 0.30952380952380953
(byte) startProcessing::center_y (byte) startProcessing::center_y
(byte) startProcessing::center_y#0 center_y zp ZP_BYTE:33 0.2619047619047619 (byte) startProcessing::center_y#0 center_y zp ZP_BYTE:33 0.24444444444444444
(byte) startProcessing::ch (byte) startProcessing::ch
(byte) startProcessing::ch#0 reg byte a 2.0 (byte) startProcessing::ch#0 reg byte a 2.0
(byte*) startProcessing::chargenData (byte*) startProcessing::chargenData
(byte*) startProcessing::chargenData#0 chargenData zp ZP_WORD:8 1.3333333333333333 (byte*) startProcessing::chargenData#0 chargenData zp ZP_WORD:8 1.3333333333333333
(byte*) startProcessing::chargenData#1 chargenData zp ZP_WORD:8 67.33333333333333 (byte*) startProcessing::chargenData#1 chargenData zp ZP_WORD:8 67.33333333333333
(byte*) startProcessing::chargenData#2 chargenData zp ZP_WORD:8 101.66666666666666 (byte*) startProcessing::chargenData#2 chargenData zp ZP_WORD:8 101.66666666666666
(byte*) startProcessing::colPtr
(byte*) startProcessing::colPtr#0 colPtr zp ZP_WORD:38 4.0
(byte) startProcessing::freeIdx (byte) startProcessing::freeIdx
(byte) startProcessing::freeIdx#2 freeIdx zp ZP_BYTE:7 29.90909090909092 (byte) startProcessing::freeIdx#2 freeIdx zp ZP_BYTE:7 28.0
(byte) startProcessing::freeIdx#6 reg byte x 22.444444444444443 (byte) startProcessing::freeIdx#6 reg byte x 20.2
(byte~) startProcessing::freeIdx#7 reg byte x 202.0 (byte~) startProcessing::freeIdx#7 reg byte x 202.0
(byte~) startProcessing::freeIdx#8 freeIdx zp ZP_BYTE:7 202.0 (byte~) startProcessing::freeIdx#8 freeIdx zp ZP_BYTE:7 202.0
(byte) startProcessing::i (byte) startProcessing::i
(byte) startProcessing::i#1 i zp ZP_BYTE:7 1501.5 (byte) startProcessing::i#1 i zp ZP_BYTE:7 1501.5
(byte) startProcessing::i#2 i zp ZP_BYTE:7 1001.0000000000001 (byte) startProcessing::i#2 i zp ZP_BYTE:7 858.0
(byte) startProcessing::i1 (byte) startProcessing::i1
(byte) startProcessing::i1#1 reg byte x 151.5 (byte) startProcessing::i1#1 reg byte x 151.5
(byte) startProcessing::i1#2 reg byte x 50.5 (byte) startProcessing::i1#2 reg byte x 50.5
(word) startProcessing::offset
(word) startProcessing::offset#0 offset zp ZP_WORD:34 2.0
(byte*) startProcessing::screenPtr (byte*) startProcessing::screenPtr
(byte*) startProcessing::screenPtr#0 screenPtr zp ZP_WORD:38 0.1 (byte*) startProcessing::screenPtr#0 screenPtr zp ZP_WORD:34 0.14285714285714285
(byte) startProcessing::spriteCol
(byte) startProcessing::spriteCol#0 spriteCol zp ZP_BYTE:40 0.0975609756097561
(byte*) startProcessing::spriteData (byte*) startProcessing::spriteData
(byte*) startProcessing::spriteData#0 spriteData zp ZP_WORD:10 0.5714285714285714 (byte*) startProcessing::spriteData#0 spriteData zp ZP_WORD:10 0.5714285714285714
(byte*) startProcessing::spriteData#1 spriteData zp ZP_WORD:10 50.5 (byte*) startProcessing::spriteData#1 spriteData zp ZP_WORD:10 50.5
(byte*) startProcessing::spriteData#2 spriteData zp ZP_WORD:10 152.5 (byte*) startProcessing::spriteData#2 spriteData zp ZP_WORD:10 152.5
(byte) startProcessing::spriteIdx (byte) startProcessing::spriteIdx
(byte) startProcessing::spritePtr (byte) startProcessing::spritePtr
(byte) startProcessing::spritePtr#0 spritePtr zp ZP_BYTE:44 0.3333333333333333 (byte) startProcessing::spritePtr#0 spritePtr zp ZP_BYTE:45 0.3076923076923077
(word) startProcessing::spriteX (word) startProcessing::spriteX
(word) startProcessing::spriteX#0 spriteX zp ZP_WORD:40 0.3333333333333333 (word) startProcessing::spriteX#0 spriteX zp ZP_WORD:41 0.3076923076923077
(word) startProcessing::spriteY (word) startProcessing::spriteY
(word) startProcessing::spriteY#0 spriteY zp ZP_WORD:42 0.4444444444444444 (word) startProcessing::spriteY#0 spriteY zp ZP_WORD:43 0.4
zp ZP_WORD:2 [ main::src#2 main::src#1 ] zp ZP_WORD:2 [ main::src#2 main::src#1 ]
zp ZP_WORD:4 [ main::dst#2 main::dst#1 ] zp ZP_WORD:4 [ main::dst#2 main::dst#1 ]
zp ZP_BYTE:6 [ main::i#2 main::i#1 ] zp ZP_BYTE:6 [ main::i#2 main::i#1 ]
reg byte x [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ] reg byte x [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ]
zp ZP_BYTE:7 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ] zp ZP_BYTE:7 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
zp ZP_WORD:8 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 startProcessing::$8 startProcessing::$7 ] zp ZP_WORD:8 [ startProcessing::chargenData#2 startProcessing::chargenData#0 startProcessing::chargenData#1 startProcessing::$9 startProcessing::$8 ]
zp ZP_WORD:10 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 startProcessing::$5 startProcessing::$4 ] zp ZP_WORD:10 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 startProcessing::$6 startProcessing::$5 ]
reg byte x [ startProcessing::i1#2 startProcessing::i1#1 ] reg byte x [ startProcessing::i1#2 startProcessing::i1#1 ]
zp ZP_WORD:12 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#1 ] zp ZP_WORD:12 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#1 ]
zp ZP_BYTE:14 [ getCharToProcess::y#7 getCharToProcess::y#1 ] zp ZP_BYTE:14 [ getCharToProcess::y#7 getCharToProcess::y#1 ]
@ -444,9 +455,10 @@ zp ZP_WORD:26 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mul8u::re
zp ZP_WORD:28 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] zp ZP_WORD:28 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ]
zp ZP_BYTE:30 [ processChars::i#10 processChars::i#1 ] zp ZP_BYTE:30 [ processChars::i#10 processChars::i#1 ]
zp ZP_BYTE:31 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ] zp ZP_BYTE:31 [ processChars::numActive#10 processChars::numActive#3 processChars::numActive#1 ]
reg byte a [ main::$25 ]
reg byte a [ main::$26 ] reg byte a [ main::$26 ]
reg byte a [ main::$27 ] reg byte a [ main::$27 ]
reg byte a [ main::$28 ]
reg byte a [ main::$29 ]
reg byte x [ main::$16 ] reg byte x [ main::$16 ]
reg byte x [ getCharToProcess::return_x#0 ] reg byte x [ getCharToProcess::return_x#0 ]
reg byte y [ getCharToProcess::return_y#0 ] reg byte y [ getCharToProcess::return_y#0 ]
@ -454,43 +466,47 @@ reg byte x [ main::center_x#0 ]
reg byte y [ main::center_y#0 ] reg byte y [ main::center_y#0 ]
zp ZP_BYTE:32 [ startProcessing::center_x#0 ] zp ZP_BYTE:32 [ startProcessing::center_x#0 ]
zp ZP_BYTE:33 [ startProcessing::center_y#0 ] zp ZP_BYTE:33 [ startProcessing::center_y#0 ]
reg byte a [ startProcessing::$40 ]
reg byte a [ startProcessing::$41 ]
reg byte a [ startProcessing::$42 ] reg byte a [ startProcessing::$42 ]
reg byte a [ startProcessing::$29 ] reg byte a [ startProcessing::$43 ]
zp ZP_WORD:34 [ startProcessing::$0 startProcessing::$45 startProcessing::$1 startProcessing::$2 ] reg byte a [ startProcessing::$44 ]
zp ZP_WORD:36 [ startProcessing::$44 ] reg byte a [ startProcessing::$45 ]
zp ZP_WORD:38 [ startProcessing::screenPtr#0 ] reg byte a [ startProcessing::$30 ]
zp ZP_WORD:34 [ startProcessing::$0 startProcessing::$48 startProcessing::$1 startProcessing::offset#0 startProcessing::screenPtr#0 ]
zp ZP_WORD:36 [ startProcessing::$47 ]
zp ZP_WORD:38 [ startProcessing::colPtr#0 ]
zp ZP_BYTE:40 [ startProcessing::spriteCol#0 ]
reg byte a [ startProcessing::ch#0 ] reg byte a [ startProcessing::ch#0 ]
zp ZP_WORD:40 [ startProcessing::$10 startProcessing::$11 startProcessing::$12 startProcessing::spriteX#0 ] zp ZP_WORD:41 [ startProcessing::$11 startProcessing::$12 startProcessing::$13 startProcessing::spriteX#0 ]
zp ZP_WORD:42 [ startProcessing::$14 startProcessing::$15 startProcessing::$16 startProcessing::spriteY#0 ] zp ZP_WORD:43 [ startProcessing::$15 startProcessing::$16 startProcessing::$17 startProcessing::spriteY#0 ]
zp ZP_BYTE:44 [ startProcessing::spritePtr#0 ] zp ZP_BYTE:45 [ startProcessing::spritePtr#0 ]
reg byte a [ startProcessing::$21 ] reg byte a [ startProcessing::$22 ]
zp ZP_WORD:45 [ startProcessing::$22 ] zp ZP_WORD:46 [ startProcessing::$23 ]
reg byte a [ startProcessing::$47 ] reg byte a [ startProcessing::$50 ]
reg byte a [ startProcessing::$48 ] reg byte a [ startProcessing::$51 ]
reg byte a [ startProcessing::$49 ] reg byte a [ startProcessing::$52 ]
reg byte x [ startProcessing::$30 ] reg byte a [ startProcessing::$53 ]
reg byte x [ startProcessing::$31 ]
reg byte x [ getCharToProcess::$13 ] reg byte x [ getCharToProcess::$13 ]
reg byte a [ getCharToProcess::$14 ] reg byte a [ getCharToProcess::$14 ]
zp ZP_WORD:47 [ getCharToProcess::$9 getCharToProcess::$16 getCharToProcess::$10 getCharToProcess::$11 ] zp ZP_WORD:48 [ getCharToProcess::$9 getCharToProcess::$16 getCharToProcess::$10 getCharToProcess::$11 ]
zp ZP_WORD:49 [ getCharToProcess::$15 ] zp ZP_WORD:50 [ getCharToProcess::$15 ]
reg byte a [ initSquareTables::$16 ] reg byte a [ initSquareTables::$16 ]
reg byte a [ initSquareTables::$17 ] reg byte a [ initSquareTables::$17 ]
reg byte a [ mul8u::$1 ] reg byte a [ mul8u::$1 ]
reg byte a [ processChars::$65 ]
reg byte a [ processChars::$66 ]
reg byte a [ processChars::$67 ] reg byte a [ processChars::$67 ]
reg byte a [ processChars::$68 ]
reg byte a [ processChars::$69 ]
reg byte a [ processChars::$70 ]
reg byte a [ processChars::$37 ] reg byte a [ processChars::$37 ]
zp ZP_WORD:51 [ processChars::processing#0 ] zp ZP_WORD:52 [ processChars::processing#0 ]
zp ZP_BYTE:53 [ processChars::bitmask#0 ] zp ZP_BYTE:54 [ processChars::bitmask#0 ]
zp ZP_WORD:54 [ processChars::xpos#0 processChars::$25 ] zp ZP_WORD:55 [ processChars::xpos#0 processChars::$25 ]
reg byte a [ processChars::$11 ] reg byte a [ processChars::$11 ]
reg byte a [ processChars::$12 ] reg byte a [ processChars::$12 ]
reg byte x [ processChars::$17 ] reg byte x [ processChars::$17 ]
reg byte a [ processChars::$14 ] reg byte a [ processChars::$14 ]
zp ZP_WORD:56 [ processChars::$15 ] zp ZP_WORD:57 [ processChars::$15 ]
zp ZP_BYTE:58 [ processChars::ypos#0 ] zp ZP_BYTE:59 [ processChars::ypos#0 ]
reg byte a [ processChars::$26 ] reg byte a [ processChars::$26 ]
reg byte a [ processChars::xchar#0 ] reg byte a [ processChars::xchar#0 ]
reg byte a [ processChars::$38 ] reg byte a [ processChars::$38 ]