mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-25 20:32:25 +00:00
Working on sprite scroller.
This commit is contained in:
parent
a977e6d9f0
commit
96779a5f24
@ -3,22 +3,32 @@ import "c64"
|
||||
import "multiplexer"
|
||||
|
||||
char * const CHARSET_DEFAULT = 0x1000;
|
||||
char * const FONT = 0x2000;
|
||||
char * const SPRITES = 0x3000;
|
||||
char * const SCREEN = 0x0400;
|
||||
|
||||
// Address of sprite pointers on screen
|
||||
char * const SCREEN_SPRITES = SCREEN + SPRITE_PTRS;
|
||||
|
||||
// Show raster time used
|
||||
const char DEBUG = 0;
|
||||
// Sprite pointer for sprite 0
|
||||
char SPRITE_0 = toSpritePtr(SPRITES);
|
||||
|
||||
//kickasm(pc FONT, resource "elefont.bin") {{
|
||||
//char FONT[0x0800] = kickasm(resource "elefont.bin") {{
|
||||
// .import binary "elefont.bin"
|
||||
//}}
|
||||
//}};
|
||||
|
||||
char FONT[0x0800];
|
||||
|
||||
char align(0x100) YSIN[0x100] = kickasm {{
|
||||
.fill $100, round(142+89.5*sin(toRadians(360*i/256)))
|
||||
}};
|
||||
|
||||
char align(0x100) XMOVEMENT[0x200] = kickasm {{
|
||||
.lohifill $100, round(344-i*344/$100-86*sin(toRadians(360*i/$100)))
|
||||
}};
|
||||
|
||||
// The high-value table
|
||||
char * const XMOVEMENT_HI = XMOVEMENT+0x100;
|
||||
|
||||
void main() {
|
||||
|
||||
// Create 2x2 font from CHARGEN
|
||||
@ -38,12 +48,9 @@ void main() {
|
||||
*D018 = toD018(SCREEN, CHARSET_DEFAULT);
|
||||
|
||||
// Set the x-positions & pointers
|
||||
unsigned int xp = 24;
|
||||
char sprite = toSpritePtr(SPRITES);
|
||||
for(char s: 0..PLEX_COUNT-1) {
|
||||
PLEX_PTR[s] = sprite++;
|
||||
PLEX_XPOS[s] = xp;
|
||||
xp += 10;
|
||||
for(char s=0, x=0;s<PLEX_COUNT;s++,x+=8) {
|
||||
PLEX_PTR[s] = SPRITE_0+s;
|
||||
PLEX_XPOS[s] = { XMOVEMENT_HI[x], XMOVEMENT[x] };
|
||||
}
|
||||
// Enable & initialize sprites
|
||||
*SPRITES_ENABLE = 0xff;
|
||||
@ -52,7 +59,7 @@ void main() {
|
||||
}
|
||||
|
||||
// Move the sprites
|
||||
plexSine();
|
||||
plex_move();
|
||||
// Sort the sprites by y-position
|
||||
plexSort();
|
||||
|
||||
@ -73,33 +80,53 @@ void main() {
|
||||
|
||||
// Move & Sort - when needed!
|
||||
while(true) {
|
||||
while(!framedone) {
|
||||
while(!frame_done) {
|
||||
}
|
||||
frame_done = false;
|
||||
//*BORDERCOL = RED;
|
||||
// Move the sprites
|
||||
plexSine();
|
||||
plex_move();
|
||||
// Sort the sprites by y-position
|
||||
plexSort();
|
||||
//*BORDERCOL = GREEN;
|
||||
framedone = false;
|
||||
//*BORDERCOL = BLACK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// The scroll text
|
||||
char SCROLL_TEXT[] = "camelot presents a spanking new contribution to the always hungry c64 scene. "
|
||||
"in this time of the corona virus we have chosen to direct our efforts towards the safe haven of coding, pixeling and composing for our beloved old breadbin. "
|
||||
" ";
|
||||
|
||||
// The next char to use from the scroll text
|
||||
char* scroll_text_next = SCROLL_TEXT;
|
||||
|
||||
// Y-sine index
|
||||
char sin_idx = 0;
|
||||
|
||||
// Move the plex sprites in an Y-sine
|
||||
void plexSine() {
|
||||
// Assign sinus positions
|
||||
// Move the plex sprites in an Y-sine and scroll them to the left.
|
||||
void plex_move() {
|
||||
char y_idx = sin_idx;
|
||||
for(char sy: 0..PLEX_COUNT-1) {
|
||||
PLEX_YPOS[sy] = YSIN[y_idx];
|
||||
for(char s: 0..PLEX_COUNT-1) {
|
||||
// Assign sine value
|
||||
PLEX_YPOS[s] = YSIN[y_idx];
|
||||
y_idx += 8;
|
||||
if(PLEX_XPOS[s]==0) {
|
||||
// Move sprite to far right
|
||||
PLEX_XPOS[s] = 11*32;
|
||||
// Restart scroll text of needed
|
||||
if(*scroll_text_next==0)
|
||||
scroll_text_next = SCROLL_TEXT;
|
||||
// Read next char from the scroll text
|
||||
PLEX_PTR[s] = SPRITE_0+*scroll_text_next++;
|
||||
}
|
||||
//PLEX_XPOS[s]--;
|
||||
}
|
||||
sin_idx +=1;
|
||||
}
|
||||
|
||||
volatile bool framedone = false;
|
||||
// Signal used between IRQ and main loop. Set to true when the IRQ is done showing the sprites.
|
||||
volatile bool frame_done = false;
|
||||
|
||||
// Show sprites from the multiplexer, rescheduling the IRQ as many times as needed
|
||||
interrupt(kernel_min) void plex_irq() {
|
||||
@ -118,7 +145,8 @@ interrupt(kernel_min) void plex_irq() {
|
||||
} else {
|
||||
// Reset the raster IRQ to the top of the screen
|
||||
*RASTER = 0x28;
|
||||
framedone = true;
|
||||
// Signal that the IRQ is done showing sprites
|
||||
frame_done = true;
|
||||
}
|
||||
// Acknowledge the IRQ
|
||||
*IRQ_STATUS = IRQ_RASTER;
|
||||
|
@ -34,18 +34,22 @@
|
||||
// The number of sprites in the multiplexer
|
||||
.const PLEX_COUNT = $20
|
||||
.label CHARSET_DEFAULT = $1000
|
||||
.label FONT = $2000
|
||||
.label SPRITES = $3000
|
||||
.label SCREEN = $400
|
||||
// The high-value table
|
||||
.label XMOVEMENT_HI = XMOVEMENT+$100
|
||||
// The address of the sprite pointers on the current screen (screen+0x3f8).
|
||||
.label PLEX_SCREEN_PTR = $400+$3f8
|
||||
.label plex_show_idx = $11
|
||||
.label plex_sprite_idx = $12
|
||||
.label plex_sprite_msb = $13
|
||||
.label plex_free_next = $14
|
||||
.label framedone = $15
|
||||
.const toSpritePtr1_return = SPRITES/$40
|
||||
.label plex_show_idx = $f
|
||||
.label plex_sprite_idx = $10
|
||||
.label plex_sprite_msb = $11
|
||||
.label plex_free_next = $12
|
||||
.label frame_done = $13
|
||||
// The next char to use from the scroll text
|
||||
.label scroll_text_next = 3
|
||||
// Y-sine index
|
||||
.label sin_idx = 4
|
||||
.label sin_idx = 2
|
||||
__bbegin:
|
||||
// plex_show_idx=0
|
||||
// The index in the PLEX tables of the next sprite to show
|
||||
@ -62,16 +66,15 @@ __bbegin:
|
||||
// The index of the sprite that is free next. Since sprites are used round-robin this moves forward each time a sprite is shown.
|
||||
lda #0
|
||||
sta.z plex_free_next
|
||||
// framedone = false
|
||||
sta.z framedone
|
||||
// frame_done = false
|
||||
// Signal used between IRQ and main loop. Set to true when the IRQ is done showing the sprites.
|
||||
sta.z frame_done
|
||||
jsr main
|
||||
rts
|
||||
main: {
|
||||
.const toSpritePtr1_return = SPRITES/$40
|
||||
.const toD0181_return = (>(SCREEN&$3fff)*4)|(>CHARSET_DEFAULT)/4&$f
|
||||
.label sprite = 4
|
||||
// Set the x-positions & pointers
|
||||
.label xp = 2
|
||||
.label s = 2
|
||||
.label __13 = $14
|
||||
// asm
|
||||
// Create 2x2 font from CHARGEN
|
||||
sei
|
||||
@ -95,57 +98,37 @@ main: {
|
||||
// Show screen
|
||||
lda #toD0181_return
|
||||
sta D018
|
||||
lda #<$18
|
||||
sta.z xp
|
||||
lda #>$18
|
||||
sta.z xp+1
|
||||
ldx #0
|
||||
lda #toSpritePtr1_return
|
||||
sta.z sprite
|
||||
__b1:
|
||||
// PLEX_PTR[s] = sprite++
|
||||
lda.z sprite
|
||||
sta PLEX_PTR,x
|
||||
// PLEX_PTR[s] = sprite++;
|
||||
inc.z sprite
|
||||
// PLEX_XPOS[s] = xp
|
||||
txa
|
||||
asl
|
||||
tay
|
||||
lda.z xp
|
||||
sta PLEX_XPOS,y
|
||||
lda.z xp+1
|
||||
sta PLEX_XPOS+1,y
|
||||
// xp += 10
|
||||
lda #$a
|
||||
clc
|
||||
adc.z xp
|
||||
sta.z xp
|
||||
bcc !+
|
||||
inc.z xp+1
|
||||
!:
|
||||
// for(char s: 0..PLEX_COUNT-1)
|
||||
inx
|
||||
cpx #PLEX_COUNT-1+1
|
||||
bne __b1
|
||||
sta.z s
|
||||
// Set the x-positions & pointers
|
||||
__b1:
|
||||
// for(char s=0, x=0;s<PLEX_COUNT;s++,x+=8)
|
||||
lda.z s
|
||||
cmp #PLEX_COUNT
|
||||
bcc __b2
|
||||
// *SPRITES_ENABLE = 0xff
|
||||
// Enable & initialize sprites
|
||||
lda #$ff
|
||||
sta SPRITES_ENABLE
|
||||
ldx #0
|
||||
__b3:
|
||||
__b4:
|
||||
// SPRITES_COLS[s] = WHITE
|
||||
lda #WHITE
|
||||
sta SPRITES_COLS,x
|
||||
// for(char s: 0..7)
|
||||
inx
|
||||
cpx #8
|
||||
bne __b3
|
||||
// plexSine()
|
||||
bne __b4
|
||||
// plex_move()
|
||||
// Move the sprites
|
||||
lda #<SCROLL_TEXT
|
||||
sta.z scroll_text_next
|
||||
lda #>SCROLL_TEXT
|
||||
sta.z scroll_text_next+1
|
||||
lda #0
|
||||
sta.z sin_idx
|
||||
jsr plexSine
|
||||
jsr plex_move
|
||||
// plexSort()
|
||||
// Sort the sprites by y-position
|
||||
jsr plexSort
|
||||
@ -179,25 +162,49 @@ main: {
|
||||
sta KERNEL_IRQ+1
|
||||
// asm
|
||||
cli
|
||||
__b5:
|
||||
// while(!framedone)
|
||||
lda.z framedone
|
||||
cmp #0
|
||||
bne __b6
|
||||
jmp __b5
|
||||
__b6:
|
||||
// plexSine()
|
||||
// while(!frame_done)
|
||||
lda.z frame_done
|
||||
cmp #0
|
||||
bne __b7
|
||||
jmp __b6
|
||||
__b7:
|
||||
// frame_done = false
|
||||
lda #0
|
||||
sta.z frame_done
|
||||
// plex_move()
|
||||
//*BORDERCOL = RED;
|
||||
// Move the sprites
|
||||
jsr plexSine
|
||||
jsr plex_move
|
||||
// plexSort()
|
||||
// Sort the sprites by y-position
|
||||
jsr plexSort
|
||||
// framedone = false
|
||||
//*BORDERCOL = GREEN;
|
||||
lda #0
|
||||
sta.z framedone
|
||||
jmp __b5
|
||||
jmp __b6
|
||||
__b2:
|
||||
// SPRITE_0+s
|
||||
lda #toSpritePtr1_return
|
||||
clc
|
||||
adc.z s
|
||||
// PLEX_PTR[s] = SPRITE_0+s
|
||||
ldy.z s
|
||||
sta PLEX_PTR,y
|
||||
// PLEX_XPOS[s] = { XMOVEMENT_HI[x], XMOVEMENT[x] }
|
||||
tya
|
||||
asl
|
||||
tay
|
||||
lda XMOVEMENT_HI,x
|
||||
sta.z __13+1
|
||||
lda XMOVEMENT,x
|
||||
sta.z __13
|
||||
sta PLEX_XPOS,y
|
||||
lda.z __13+1
|
||||
sta PLEX_XPOS+1,y
|
||||
// x+=8
|
||||
txa
|
||||
axs #-[8]
|
||||
// for(char s=0, x=0;s<PLEX_COUNT;s++,x+=8)
|
||||
inc.z s
|
||||
jmp __b1
|
||||
}
|
||||
// Ensure that the indices in PLEX_SORTED_IDX is sorted based on the y-positions in PLEX_YPOS
|
||||
// Assumes that the positions are nearly sorted already (as each sprite just moves a bit)
|
||||
@ -209,9 +216,9 @@ main: {
|
||||
// elements before the marker are shifted right one at a time until encountering one smaller than the current one.
|
||||
// It is then inserted at the spot. Now the marker can move forward.
|
||||
plexSort: {
|
||||
.label nxt_idx = $16
|
||||
.label nxt_y = $17
|
||||
.label m = 5
|
||||
.label nxt_idx = $17
|
||||
.label nxt_y = $16
|
||||
.label m = 9
|
||||
lda #0
|
||||
sta.z m
|
||||
__b1:
|
||||
@ -276,22 +283,69 @@ plexSort: {
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Move the plex sprites in an Y-sine
|
||||
plexSine: {
|
||||
// Move the plex sprites in an Y-sine and scroll them to the left.
|
||||
plex_move: {
|
||||
.label s = 9
|
||||
// y_idx = sin_idx
|
||||
// Assign sinus positions
|
||||
ldx.z sin_idx
|
||||
ldy #0
|
||||
lda #0
|
||||
sta.z s
|
||||
__b1:
|
||||
// PLEX_YPOS[sy] = YSIN[y_idx]
|
||||
// PLEX_YPOS[s] = YSIN[y_idx]
|
||||
// Assign sine value
|
||||
lda YSIN,x
|
||||
ldy.z s
|
||||
sta PLEX_YPOS,y
|
||||
// y_idx += 8
|
||||
txa
|
||||
axs #-[8]
|
||||
// for(char sy: 0..PLEX_COUNT-1)
|
||||
iny
|
||||
cpy #PLEX_COUNT-1+1
|
||||
// PLEX_XPOS[s]==0
|
||||
tya
|
||||
asl
|
||||
// if(PLEX_XPOS[s]==0)
|
||||
tay
|
||||
lda PLEX_XPOS+1,y
|
||||
bne __b2
|
||||
lda PLEX_XPOS,y
|
||||
bne __b2
|
||||
// PLEX_XPOS[s] = 11*32
|
||||
lda.z s
|
||||
asl
|
||||
// Move sprite to far right
|
||||
tay
|
||||
lda #<$b*$20
|
||||
sta PLEX_XPOS,y
|
||||
lda #>$b*$20
|
||||
sta PLEX_XPOS+1,y
|
||||
// if(*scroll_text_next==0)
|
||||
ldy #0
|
||||
lda (scroll_text_next),y
|
||||
cmp #0
|
||||
bne __b3
|
||||
lda #<SCROLL_TEXT
|
||||
sta.z scroll_text_next
|
||||
lda #>SCROLL_TEXT
|
||||
sta.z scroll_text_next+1
|
||||
__b3:
|
||||
// SPRITE_0+*scroll_text_next++
|
||||
lda #toSpritePtr1_return
|
||||
clc
|
||||
ldy #0
|
||||
adc (scroll_text_next),y
|
||||
// PLEX_PTR[s] = SPRITE_0+*scroll_text_next++
|
||||
// Read next char from the scroll text
|
||||
ldy.z s
|
||||
sta PLEX_PTR,y
|
||||
// PLEX_PTR[s] = SPRITE_0+*scroll_text_next++;
|
||||
inc.z scroll_text_next
|
||||
bne !+
|
||||
inc.z scroll_text_next+1
|
||||
!:
|
||||
__b2:
|
||||
// for(char s: 0..PLEX_COUNT-1)
|
||||
inc.z s
|
||||
lda #PLEX_COUNT-1+1
|
||||
cmp.z s
|
||||
bne __b1
|
||||
// sin_idx +=1
|
||||
inc.z sin_idx
|
||||
@ -318,13 +372,13 @@ plexInit: {
|
||||
// - num_chars The number of chars to convert
|
||||
font_2x2_to_sprites: {
|
||||
.const num_chars = $40
|
||||
.label __3 = $18
|
||||
.label __3 = $17
|
||||
.label char_right = $d
|
||||
.label sprite_idx = $a
|
||||
.label char_left = $b
|
||||
.label char_current = 6
|
||||
.label sprite = 8
|
||||
.label c = 5
|
||||
.label char_current = 5
|
||||
.label sprite = 7
|
||||
.label c = 9
|
||||
lda #<SPRITES
|
||||
sta.z sprite
|
||||
lda #>SPRITES
|
||||
@ -446,18 +500,18 @@ font_2x2_to_sprites: {
|
||||
// - 0x80 - 0xbf Lower left glyphs
|
||||
// - 0xc0 - 0xff Lower right glyphs
|
||||
font_2x2: {
|
||||
.label __5 = $f
|
||||
.label __7 = $f
|
||||
.label next_2x2_left = 6
|
||||
.label __5 = $14
|
||||
.label __7 = $14
|
||||
.label next_2x2_left = 5
|
||||
.label next_2x2_right = $d
|
||||
.label glyph_bits = $18
|
||||
.label glyph_bits_2x2 = $f
|
||||
.label glyph_bits = $16
|
||||
.label glyph_bits_2x2 = $14
|
||||
.label l2 = $17
|
||||
.label l = $16
|
||||
.label l = $a
|
||||
.label next_2x2_left_1 = $b
|
||||
.label next_2x2 = 6
|
||||
.label next_original = 8
|
||||
.label c = $a
|
||||
.label next_2x2 = 5
|
||||
.label next_original = 7
|
||||
.label c = 9
|
||||
lda #0
|
||||
sta.z c
|
||||
lda #<CHARGEN
|
||||
@ -606,7 +660,7 @@ font_2x2: {
|
||||
}
|
||||
// Show sprites from the multiplexer, rescheduling the IRQ as many times as needed
|
||||
plex_irq: {
|
||||
.label __4 = $19
|
||||
.label __4 = $18
|
||||
// asm
|
||||
sei
|
||||
__b3:
|
||||
@ -635,9 +689,10 @@ plex_irq: {
|
||||
// Reset the raster IRQ to the top of the screen
|
||||
lda #$28
|
||||
sta RASTER
|
||||
// framedone = true
|
||||
// frame_done = true
|
||||
// Signal that the IRQ is done showing sprites
|
||||
lda #1
|
||||
sta.z framedone
|
||||
sta.z frame_done
|
||||
__b2:
|
||||
// *IRQ_STATUS = IRQ_RASTER
|
||||
// Acknowledge the IRQ
|
||||
@ -657,7 +712,7 @@ plex_irq: {
|
||||
// Show the next sprite.
|
||||
// plexSort() prepares showing the sprites
|
||||
plexShowSprite: {
|
||||
.label plex_sprite_idx2 = $1a
|
||||
.label plex_sprite_idx2 = $19
|
||||
// plex_sprite_idx2 = plex_sprite_idx*2
|
||||
lda.z plex_sprite_idx
|
||||
asl
|
||||
@ -749,10 +804,18 @@ plexShowSprite: {
|
||||
PLEX_SORTED_IDX: .fill PLEX_COUNT, 0
|
||||
// Contains the Y-position where each sprite is free again. PLEX_FREE_YPOS[s] holds the Y-position where sprite s is free to use again.
|
||||
PLEX_FREE_YPOS: .fill 8, 0
|
||||
//kickasm(pc FONT, resource "elefont.bin") {{
|
||||
//char FONT[0x0800] = kickasm(resource "elefont.bin") {{
|
||||
// .import binary "elefont.bin"
|
||||
//}}
|
||||
//}};
|
||||
FONT: .fill $800, 0
|
||||
.align $100
|
||||
YSIN:
|
||||
.fill $100, round(142+89.5*sin(toRadians(360*i/256)))
|
||||
|
||||
.align $100
|
||||
XMOVEMENT:
|
||||
.lohifill $100, round(344-i*344/$100-86*sin(toRadians(360*i/$100)))
|
||||
|
||||
// The scroll text
|
||||
SCROLL_TEXT: .text "camelot presents a spanking new contribution to the always hungry c64 scene. in this time of the corona virus we have chosen to direct our efforts towards the safe haven of coding, pixeling and composing for our beloved old breadbin. "
|
||||
.byte 0
|
||||
|
@ -8,97 +8,96 @@
|
||||
to:@2
|
||||
@2: scope:[] from @1
|
||||
[4] (volatile byte) plex_free_next ← (byte) 0
|
||||
to:toSpritePtr1
|
||||
toSpritePtr1: scope:[] from @2
|
||||
[5] phi()
|
||||
to:@3
|
||||
@3: scope:[] from @2
|
||||
[5] (volatile bool) framedone ← false
|
||||
@3: scope:[] from toSpritePtr1
|
||||
[6] (volatile bool) frame_done ← false
|
||||
to:@4
|
||||
@4: scope:[] from @3
|
||||
[6] phi()
|
||||
[7] call main
|
||||
[7] phi()
|
||||
[8] call main
|
||||
to:@end
|
||||
@end: scope:[] from @4
|
||||
[8] phi()
|
||||
[9] phi()
|
||||
|
||||
(void()) main()
|
||||
main: scope:[main] from @4
|
||||
asm { sei }
|
||||
[10] *((const nomodify byte*) PROCPORT) ← (const nomodify byte) PROCPORT_RAM_CHARROM
|
||||
[11] call font_2x2
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main
|
||||
[12] *((const nomodify byte*) PROCPORT) ← (const nomodify byte) PROCPORT_BASIC_KERNEL_IO
|
||||
asm { cli }
|
||||
[14] call font_2x2_to_sprites
|
||||
[11] *((const nomodify byte*) PROCPORT) ← (const nomodify byte) PROCPORT_RAM_CHARROM
|
||||
[12] call font_2x2
|
||||
to:main::@9
|
||||
main::@9: scope:[main] from main::@8
|
||||
[15] phi()
|
||||
[16] call plexInit
|
||||
to:main::toD0181
|
||||
main::toD0181: scope:[main] from main::@9
|
||||
[17] phi()
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::toD0181
|
||||
[18] *((const nomodify byte*) D018) ← (const byte) main::toD0181_return#0
|
||||
to:main::toSpritePtr1
|
||||
main::toSpritePtr1: scope:[main] from main::@7
|
||||
[19] phi()
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@1 main::toSpritePtr1
|
||||
[20] (word) main::xp#2 ← phi( main::@1/(word) main::xp#1 main::toSpritePtr1/(word) $18 )
|
||||
[20] (byte) main::s#2 ← phi( main::@1/(byte) main::s#1 main::toSpritePtr1/(byte) 0 )
|
||||
[20] (byte) main::sprite#2 ← phi( main::@1/(byte) main::sprite#1 main::toSpritePtr1/(const byte) main::toSpritePtr1_return#0 )
|
||||
[21] *((const byte*) PLEX_PTR + (byte) main::s#2) ← (byte) main::sprite#2
|
||||
[22] (byte) main::sprite#1 ← ++ (byte) main::sprite#2
|
||||
[23] (byte~) main::$12 ← (byte) main::s#2 << (byte) 1
|
||||
[24] *((const word*) PLEX_XPOS + (byte~) main::$12) ← (word) main::xp#2
|
||||
[25] (word) main::xp#1 ← (word) main::xp#2 + (byte) $a
|
||||
[26] (byte) main::s#1 ← ++ (byte) main::s#2
|
||||
[27] if((byte) main::s#1!=(const nomodify byte) PLEX_COUNT-(byte) 1+(byte) 1) goto main::@1
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[28] *((const nomodify byte*) SPRITES_ENABLE) ← (byte) $ff
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
[29] (byte) main::s1#2 ← phi( main::@2/(byte) 0 main::@3/(byte) main::s1#1 )
|
||||
[30] *((const nomodify byte*) SPRITES_COLS + (byte) main::s1#2) ← (const nomodify byte) WHITE
|
||||
[31] (byte) main::s1#1 ← ++ (byte) main::s1#2
|
||||
[32] if((byte) main::s1#1!=(byte) 8) goto main::@3
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
[33] phi()
|
||||
[34] call plexSine
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@4
|
||||
[35] phi()
|
||||
[36] call plexSort
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@10
|
||||
asm { sei }
|
||||
[38] *((const nomodify byte*) CIA1_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR
|
||||
[39] *((const nomodify byte*) VIC_CONTROL) ← *((const nomodify byte*) VIC_CONTROL) & (byte) $7f
|
||||
[40] *((const nomodify byte*) RASTER) ← (byte) $28
|
||||
[41] *((const nomodify byte*) IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER
|
||||
[42] *((const nomodify byte*) IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER
|
||||
[43] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) plex_irq()
|
||||
main::@9: scope:[main] from main
|
||||
[13] *((const nomodify byte*) PROCPORT) ← (const nomodify byte) PROCPORT_BASIC_KERNEL_IO
|
||||
asm { cli }
|
||||
[15] call font_2x2_to_sprites
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@9
|
||||
[16] phi()
|
||||
[17] call plexInit
|
||||
to:main::toD0181
|
||||
main::toD0181: scope:[main] from main::@10
|
||||
[18] phi()
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::toD0181
|
||||
[19] *((const nomodify byte*) D018) ← (const byte) main::toD0181_return#0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@2 main::@8
|
||||
[20] (byte) main::x#2 ← phi( main::@2/(byte) main::x#1 main::@8/(byte) 0 )
|
||||
[20] (byte) main::s#2 ← phi( main::@2/(byte) main::s#1 main::@8/(byte) 0 )
|
||||
[21] if((byte) main::s#2<(const nomodify byte) PLEX_COUNT) goto main::@2
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@1
|
||||
[22] *((const nomodify byte*) SPRITES_ENABLE) ← (byte) $ff
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3 main::@4
|
||||
[23] (byte) main::s1#2 ← phi( main::@3/(byte) 0 main::@4/(byte) main::s1#1 )
|
||||
[24] *((const nomodify byte*) SPRITES_COLS + (byte) main::s1#2) ← (const nomodify byte) WHITE
|
||||
[25] (byte) main::s1#1 ← ++ (byte) main::s1#2
|
||||
[26] if((byte) main::s1#1!=(byte) 8) goto main::@4
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@11 main::@13 main::@5
|
||||
[45] if((volatile bool) framedone) goto main::@6
|
||||
to:main::@5
|
||||
main::@6: scope:[main] from main::@5
|
||||
[46] phi()
|
||||
[47] call plexSine
|
||||
main::@5: scope:[main] from main::@4
|
||||
[27] phi()
|
||||
[28] call plex_move
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@5
|
||||
[29] phi()
|
||||
[30] call plexSort
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main::@6
|
||||
[48] phi()
|
||||
[49] call plexSort
|
||||
main::@12: scope:[main] from main::@11
|
||||
asm { sei }
|
||||
[32] *((const nomodify byte*) CIA1_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR
|
||||
[33] *((const nomodify byte*) VIC_CONTROL) ← *((const nomodify byte*) VIC_CONTROL) & (byte) $7f
|
||||
[34] *((const nomodify byte*) RASTER) ← (byte) $28
|
||||
[35] *((const nomodify byte*) IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER
|
||||
[36] *((const nomodify byte*) IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER
|
||||
[37] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) plex_irq()
|
||||
asm { cli }
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@12 main::@13 main::@6
|
||||
[39] if((volatile bool) frame_done) goto main::@7
|
||||
to:main::@6
|
||||
main::@7: scope:[main] from main::@6
|
||||
[40] (volatile bool) frame_done ← false
|
||||
[41] call plex_move
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main::@12
|
||||
[50] (volatile bool) framedone ← false
|
||||
to:main::@5
|
||||
main::@13: scope:[main] from main::@7
|
||||
[42] phi()
|
||||
[43] call plexSort
|
||||
to:main::@6
|
||||
main::@2: scope:[main] from main::@1
|
||||
[44] (byte~) main::$7 ← (const byte) toSpritePtr1_return#0 + (byte) main::s#2
|
||||
[45] *((const byte*) PLEX_PTR + (byte) main::s#2) ← (byte~) main::$7
|
||||
[46] (byte~) main::$12 ← (byte) main::s#2 << (byte) 1
|
||||
[47] (word~) main::$13 ← *((const nomodify byte*) XMOVEMENT_HI + (byte) main::x#2) w= *((const byte*) XMOVEMENT + (byte) main::x#2)
|
||||
[48] *((const word*) PLEX_XPOS + (byte~) main::$12) ← (word~) main::$13
|
||||
[49] (byte) main::x#1 ← (byte) main::x#2 + (byte) 8
|
||||
[50] (byte) main::s#1 ← ++ (byte) main::s#2
|
||||
to:main::@1
|
||||
|
||||
(void()) plexSort()
|
||||
plexSort: scope:[plexSort] from main::@10 main::@12
|
||||
plexSort: scope:[plexSort] from main::@11 main::@13
|
||||
[51] phi()
|
||||
to:plexSort::@1
|
||||
plexSort::@1: scope:[plexSort] from plexSort plexSort::@2
|
||||
@ -148,165 +147,186 @@ plexSort::@return: scope:[plexSort] from plexSort::plexFreePrepare1_@2
|
||||
[75] return
|
||||
to:@return
|
||||
|
||||
(void()) plexSine()
|
||||
plexSine: scope:[plexSine] from main::@4 main::@6
|
||||
[76] (byte) sin_idx#10 ← phi( main::@6/(byte) sin_idx#12 main::@4/(byte) 0 )
|
||||
[77] (byte) plexSine::y_idx#0 ← (byte) sin_idx#10
|
||||
to:plexSine::@1
|
||||
plexSine::@1: scope:[plexSine] from plexSine plexSine::@1
|
||||
[78] (byte) plexSine::sy#2 ← phi( plexSine/(byte) 0 plexSine::@1/(byte) plexSine::sy#1 )
|
||||
[78] (byte) plexSine::y_idx#2 ← phi( plexSine/(byte) plexSine::y_idx#0 plexSine::@1/(byte) plexSine::y_idx#1 )
|
||||
[79] *((const byte*) PLEX_YPOS + (byte) plexSine::sy#2) ← *((const byte*) YSIN + (byte) plexSine::y_idx#2)
|
||||
[80] (byte) plexSine::y_idx#1 ← (byte) plexSine::y_idx#2 + (byte) 8
|
||||
[81] (byte) plexSine::sy#1 ← ++ (byte) plexSine::sy#2
|
||||
[82] if((byte) plexSine::sy#1!=(const nomodify byte) PLEX_COUNT-(byte) 1+(byte) 1) goto plexSine::@1
|
||||
to:plexSine::@2
|
||||
plexSine::@2: scope:[plexSine] from plexSine::@1
|
||||
[83] (byte) sin_idx#12 ← (byte) sin_idx#10 + (byte) 1
|
||||
to:plexSine::@return
|
||||
plexSine::@return: scope:[plexSine] from plexSine::@2
|
||||
[84] return
|
||||
(void()) plex_move()
|
||||
plex_move: scope:[plex_move] from main::@5 main::@7
|
||||
[76] (byte*) scroll_text_next#25 ← phi( main::@7/(byte*) scroll_text_next#13 main::@5/(const byte*) SCROLL_TEXT )
|
||||
[76] (byte) sin_idx#10 ← phi( main::@7/(byte) sin_idx#12 main::@5/(byte) 0 )
|
||||
[77] (byte) plex_move::y_idx#0 ← (byte) sin_idx#10
|
||||
to:plex_move::@1
|
||||
plex_move::@1: scope:[plex_move] from plex_move plex_move::@2
|
||||
[78] (byte*) scroll_text_next#11 ← phi( plex_move/(byte*) scroll_text_next#25 plex_move::@2/(byte*) scroll_text_next#13 )
|
||||
[78] (byte) plex_move::s#2 ← phi( plex_move/(byte) 0 plex_move::@2/(byte) plex_move::s#1 )
|
||||
[78] (byte) plex_move::y_idx#2 ← phi( plex_move/(byte) plex_move::y_idx#0 plex_move::@2/(byte) plex_move::y_idx#1 )
|
||||
[79] *((const byte*) PLEX_YPOS + (byte) plex_move::s#2) ← *((const byte*) YSIN + (byte) plex_move::y_idx#2)
|
||||
[80] (byte) plex_move::y_idx#1 ← (byte) plex_move::y_idx#2 + (byte) 8
|
||||
[81] (byte~) plex_move::$6 ← (byte) plex_move::s#2 << (byte) 1
|
||||
[82] if(*((const word*) PLEX_XPOS + (byte~) plex_move::$6)!=(byte) 0) goto plex_move::@2
|
||||
to:plex_move::@4
|
||||
plex_move::@4: scope:[plex_move] from plex_move::@1
|
||||
[83] (byte~) plex_move::$7 ← (byte) plex_move::s#2 << (byte) 1
|
||||
[84] *((const word*) PLEX_XPOS + (byte~) plex_move::$7) ← (word)(number) $b*(number) $20
|
||||
[85] if(*((byte*) scroll_text_next#11)!=(byte) 0) goto plex_move::@6
|
||||
to:plex_move::@3
|
||||
plex_move::@6: scope:[plex_move] from plex_move::@4
|
||||
[86] phi()
|
||||
to:plex_move::@3
|
||||
plex_move::@3: scope:[plex_move] from plex_move::@4 plex_move::@6
|
||||
[87] (byte*) scroll_text_next#12 ← phi( plex_move::@6/(byte*) scroll_text_next#11 plex_move::@4/(const byte*) SCROLL_TEXT )
|
||||
[88] (byte~) plex_move::$4 ← (const byte) toSpritePtr1_return#0 + *((byte*) scroll_text_next#12)
|
||||
[89] *((const byte*) PLEX_PTR + (byte) plex_move::s#2) ← (byte~) plex_move::$4
|
||||
[90] (byte*) scroll_text_next#4 ← ++ (byte*) scroll_text_next#12
|
||||
to:plex_move::@2
|
||||
plex_move::@2: scope:[plex_move] from plex_move::@1 plex_move::@3
|
||||
[91] (byte*) scroll_text_next#13 ← phi( plex_move::@1/(byte*) scroll_text_next#11 plex_move::@3/(byte*) scroll_text_next#4 )
|
||||
[92] (byte) plex_move::s#1 ← ++ (byte) plex_move::s#2
|
||||
[93] if((byte) plex_move::s#1!=(const nomodify byte) PLEX_COUNT-(byte) 1+(byte) 1) goto plex_move::@1
|
||||
to:plex_move::@5
|
||||
plex_move::@5: scope:[plex_move] from plex_move::@2
|
||||
[94] (byte) sin_idx#12 ← (byte) sin_idx#10 + (byte) 1
|
||||
to:plex_move::@return
|
||||
plex_move::@return: scope:[plex_move] from plex_move::@5
|
||||
[95] return
|
||||
to:@return
|
||||
|
||||
(void()) plexInit((byte*) plexInit::screen)
|
||||
plexInit: scope:[plexInit] from main::@9
|
||||
[85] phi()
|
||||
plexInit: scope:[plexInit] from main::@10
|
||||
[96] phi()
|
||||
to:plexInit::plexSetScreen1
|
||||
plexInit::plexSetScreen1: scope:[plexInit] from plexInit
|
||||
[86] phi()
|
||||
[97] phi()
|
||||
to:plexInit::@1
|
||||
plexInit::@1: scope:[plexInit] from plexInit::@1 plexInit::plexSetScreen1
|
||||
[87] (byte) plexInit::i#2 ← phi( plexInit::@1/(byte) plexInit::i#1 plexInit::plexSetScreen1/(byte) 0 )
|
||||
[88] *((const byte*) PLEX_SORTED_IDX + (byte) plexInit::i#2) ← (byte) plexInit::i#2
|
||||
[89] (byte) plexInit::i#1 ← ++ (byte) plexInit::i#2
|
||||
[90] if((byte) plexInit::i#1!=(const nomodify byte) PLEX_COUNT-(byte) 1+(byte) 1) goto plexInit::@1
|
||||
[98] (byte) plexInit::i#2 ← phi( plexInit::@1/(byte) plexInit::i#1 plexInit::plexSetScreen1/(byte) 0 )
|
||||
[99] *((const byte*) PLEX_SORTED_IDX + (byte) plexInit::i#2) ← (byte) plexInit::i#2
|
||||
[100] (byte) plexInit::i#1 ← ++ (byte) plexInit::i#2
|
||||
[101] if((byte) plexInit::i#1!=(const nomodify byte) PLEX_COUNT-(byte) 1+(byte) 1) goto plexInit::@1
|
||||
to:plexInit::@return
|
||||
plexInit::@return: scope:[plexInit] from plexInit::@1
|
||||
[91] return
|
||||
[102] return
|
||||
to:@return
|
||||
|
||||
(void()) font_2x2_to_sprites((byte*) font_2x2_to_sprites::font_2x2 , (byte*) font_2x2_to_sprites::sprites , (byte) font_2x2_to_sprites::num_chars)
|
||||
font_2x2_to_sprites: scope:[font_2x2_to_sprites] from main::@8
|
||||
[92] phi()
|
||||
font_2x2_to_sprites: scope:[font_2x2_to_sprites] from main::@9
|
||||
[103] phi()
|
||||
to:font_2x2_to_sprites::@1
|
||||
font_2x2_to_sprites::@1: scope:[font_2x2_to_sprites] from font_2x2_to_sprites font_2x2_to_sprites::@7
|
||||
[93] (byte*) font_2x2_to_sprites::sprite#4 ← phi( font_2x2_to_sprites/(const nomodify byte*) SPRITES font_2x2_to_sprites::@7/(byte*) font_2x2_to_sprites::sprite#1 )
|
||||
[93] (byte*) font_2x2_to_sprites::char_current#2 ← phi( font_2x2_to_sprites/(const nomodify byte*) FONT font_2x2_to_sprites::@7/(byte*) font_2x2_to_sprites::char_current#1 )
|
||||
[93] (byte) font_2x2_to_sprites::c#2 ← phi( font_2x2_to_sprites/(byte) 0 font_2x2_to_sprites::@7/(byte) font_2x2_to_sprites::c#1 )
|
||||
[94] if((byte) font_2x2_to_sprites::c#2<(const byte) font_2x2_to_sprites::num_chars#0) goto font_2x2_to_sprites::@2
|
||||
[104] (byte*) font_2x2_to_sprites::sprite#4 ← phi( font_2x2_to_sprites/(const nomodify byte*) SPRITES font_2x2_to_sprites::@7/(byte*) font_2x2_to_sprites::sprite#1 )
|
||||
[104] (byte*) font_2x2_to_sprites::char_current#2 ← phi( font_2x2_to_sprites/(const byte*) FONT font_2x2_to_sprites::@7/(byte*) font_2x2_to_sprites::char_current#1 )
|
||||
[104] (byte) font_2x2_to_sprites::c#2 ← phi( font_2x2_to_sprites/(byte) 0 font_2x2_to_sprites::@7/(byte) font_2x2_to_sprites::c#1 )
|
||||
[105] if((byte) font_2x2_to_sprites::c#2<(const byte) font_2x2_to_sprites::num_chars#0) goto font_2x2_to_sprites::@2
|
||||
to:font_2x2_to_sprites::@return
|
||||
font_2x2_to_sprites::@return: scope:[font_2x2_to_sprites] from font_2x2_to_sprites::@1
|
||||
[95] return
|
||||
[106] return
|
||||
to:@return
|
||||
font_2x2_to_sprites::@2: scope:[font_2x2_to_sprites] from font_2x2_to_sprites::@1
|
||||
[96] (byte*) font_2x2_to_sprites::char_right#0 ← (byte*) font_2x2_to_sprites::char_current#2 + (word)(number) $40*(number) 8
|
||||
[97] (byte*) font_2x2_to_sprites::char_left#6 ← (byte*) font_2x2_to_sprites::char_current#2
|
||||
[107] (byte*) font_2x2_to_sprites::char_right#0 ← (byte*) font_2x2_to_sprites::char_current#2 + (word)(number) $40*(number) 8
|
||||
[108] (byte*) font_2x2_to_sprites::char_left#6 ← (byte*) font_2x2_to_sprites::char_current#2
|
||||
to:font_2x2_to_sprites::@3
|
||||
font_2x2_to_sprites::@3: scope:[font_2x2_to_sprites] from font_2x2_to_sprites::@2 font_2x2_to_sprites::@5
|
||||
[98] (byte*) font_2x2_to_sprites::char_right#3 ← phi( font_2x2_to_sprites::@2/(byte*) font_2x2_to_sprites::char_right#0 font_2x2_to_sprites::@5/(byte*) font_2x2_to_sprites::char_right#4 )
|
||||
[98] (byte) font_2x2_to_sprites::sprite_idx#4 ← phi( font_2x2_to_sprites::@2/(byte) 0 font_2x2_to_sprites::@5/(byte) font_2x2_to_sprites::sprite_idx#3 )
|
||||
[98] (byte*) font_2x2_to_sprites::char_left#3 ← phi( font_2x2_to_sprites::@2/(byte*) font_2x2_to_sprites::char_left#6 font_2x2_to_sprites::@5/(byte*) font_2x2_to_sprites::char_left#4 )
|
||||
[98] (byte) font_2x2_to_sprites::i#2 ← phi( font_2x2_to_sprites::@2/(byte) 0 font_2x2_to_sprites::@5/(byte) font_2x2_to_sprites::i#1 )
|
||||
[99] (byte~) font_2x2_to_sprites::$3 ← (byte) font_2x2_to_sprites::i#2 & (byte) 7
|
||||
[100] *((byte*) font_2x2_to_sprites::sprite#4 + (byte) font_2x2_to_sprites::sprite_idx#4) ← *((byte*) font_2x2_to_sprites::char_left#3 + (byte~) font_2x2_to_sprites::$3)
|
||||
[101] (byte) font_2x2_to_sprites::sprite_idx#1 ← ++ (byte) font_2x2_to_sprites::sprite_idx#4
|
||||
[102] *((byte*) font_2x2_to_sprites::sprite#4 + (byte) font_2x2_to_sprites::sprite_idx#1) ← *((byte*) font_2x2_to_sprites::char_right#3 + (byte~) font_2x2_to_sprites::$3)
|
||||
[103] (byte) font_2x2_to_sprites::sprite_idx#2 ← ++ (byte) font_2x2_to_sprites::sprite_idx#1
|
||||
[104] *((byte*) font_2x2_to_sprites::sprite#4 + (byte) font_2x2_to_sprites::sprite_idx#2) ← (byte) 0
|
||||
[105] (byte) font_2x2_to_sprites::sprite_idx#3 ← ++ (byte) font_2x2_to_sprites::sprite_idx#2
|
||||
[106] if((byte) font_2x2_to_sprites::i#2==(byte) 7) goto font_2x2_to_sprites::@4
|
||||
[109] (byte*) font_2x2_to_sprites::char_right#3 ← phi( font_2x2_to_sprites::@2/(byte*) font_2x2_to_sprites::char_right#0 font_2x2_to_sprites::@5/(byte*) font_2x2_to_sprites::char_right#4 )
|
||||
[109] (byte) font_2x2_to_sprites::sprite_idx#4 ← phi( font_2x2_to_sprites::@2/(byte) 0 font_2x2_to_sprites::@5/(byte) font_2x2_to_sprites::sprite_idx#3 )
|
||||
[109] (byte*) font_2x2_to_sprites::char_left#3 ← phi( font_2x2_to_sprites::@2/(byte*) font_2x2_to_sprites::char_left#6 font_2x2_to_sprites::@5/(byte*) font_2x2_to_sprites::char_left#4 )
|
||||
[109] (byte) font_2x2_to_sprites::i#2 ← phi( font_2x2_to_sprites::@2/(byte) 0 font_2x2_to_sprites::@5/(byte) font_2x2_to_sprites::i#1 )
|
||||
[110] (byte~) font_2x2_to_sprites::$3 ← (byte) font_2x2_to_sprites::i#2 & (byte) 7
|
||||
[111] *((byte*) font_2x2_to_sprites::sprite#4 + (byte) font_2x2_to_sprites::sprite_idx#4) ← *((byte*) font_2x2_to_sprites::char_left#3 + (byte~) font_2x2_to_sprites::$3)
|
||||
[112] (byte) font_2x2_to_sprites::sprite_idx#1 ← ++ (byte) font_2x2_to_sprites::sprite_idx#4
|
||||
[113] *((byte*) font_2x2_to_sprites::sprite#4 + (byte) font_2x2_to_sprites::sprite_idx#1) ← *((byte*) font_2x2_to_sprites::char_right#3 + (byte~) font_2x2_to_sprites::$3)
|
||||
[114] (byte) font_2x2_to_sprites::sprite_idx#2 ← ++ (byte) font_2x2_to_sprites::sprite_idx#1
|
||||
[115] *((byte*) font_2x2_to_sprites::sprite#4 + (byte) font_2x2_to_sprites::sprite_idx#2) ← (byte) 0
|
||||
[116] (byte) font_2x2_to_sprites::sprite_idx#3 ← ++ (byte) font_2x2_to_sprites::sprite_idx#2
|
||||
[117] if((byte) font_2x2_to_sprites::i#2==(byte) 7) goto font_2x2_to_sprites::@4
|
||||
to:font_2x2_to_sprites::@6
|
||||
font_2x2_to_sprites::@6: scope:[font_2x2_to_sprites] from font_2x2_to_sprites::@3
|
||||
[107] if((byte) font_2x2_to_sprites::i#2!=(byte) $f) goto font_2x2_to_sprites::@8
|
||||
[118] if((byte) font_2x2_to_sprites::i#2!=(byte) $f) goto font_2x2_to_sprites::@8
|
||||
to:font_2x2_to_sprites::@5
|
||||
font_2x2_to_sprites::@8: scope:[font_2x2_to_sprites] from font_2x2_to_sprites::@6
|
||||
[108] phi()
|
||||
[119] phi()
|
||||
to:font_2x2_to_sprites::@5
|
||||
font_2x2_to_sprites::@5: scope:[font_2x2_to_sprites] from font_2x2_to_sprites::@4 font_2x2_to_sprites::@6 font_2x2_to_sprites::@8
|
||||
[109] (byte*) font_2x2_to_sprites::char_right#4 ← phi( font_2x2_to_sprites::@4/(byte*) font_2x2_to_sprites::char_right#1 font_2x2_to_sprites::@8/(byte*) font_2x2_to_sprites::char_right#3 font_2x2_to_sprites::@6/(const nomodify byte*) FONT+(byte) ' '*(byte) 8 )
|
||||
[109] (byte*) font_2x2_to_sprites::char_left#4 ← phi( font_2x2_to_sprites::@4/(byte*) font_2x2_to_sprites::char_left#1 font_2x2_to_sprites::@8/(byte*) font_2x2_to_sprites::char_left#3 font_2x2_to_sprites::@6/(const nomodify byte*) FONT+(byte) ' '*(byte) 8 )
|
||||
[110] (byte) font_2x2_to_sprites::i#1 ← ++ (byte) font_2x2_to_sprites::i#2
|
||||
[111] if((byte) font_2x2_to_sprites::i#1!=(byte) $15) goto font_2x2_to_sprites::@3
|
||||
[120] (byte*) font_2x2_to_sprites::char_right#4 ← phi( font_2x2_to_sprites::@4/(byte*) font_2x2_to_sprites::char_right#1 font_2x2_to_sprites::@8/(byte*) font_2x2_to_sprites::char_right#3 font_2x2_to_sprites::@6/(const byte*) FONT+(byte) ' '*(byte) 8 )
|
||||
[120] (byte*) font_2x2_to_sprites::char_left#4 ← phi( font_2x2_to_sprites::@4/(byte*) font_2x2_to_sprites::char_left#1 font_2x2_to_sprites::@8/(byte*) font_2x2_to_sprites::char_left#3 font_2x2_to_sprites::@6/(const byte*) FONT+(byte) ' '*(byte) 8 )
|
||||
[121] (byte) font_2x2_to_sprites::i#1 ← ++ (byte) font_2x2_to_sprites::i#2
|
||||
[122] if((byte) font_2x2_to_sprites::i#1!=(byte) $15) goto font_2x2_to_sprites::@3
|
||||
to:font_2x2_to_sprites::@7
|
||||
font_2x2_to_sprites::@7: scope:[font_2x2_to_sprites] from font_2x2_to_sprites::@5
|
||||
[112] (byte*) font_2x2_to_sprites::char_current#1 ← (byte*) font_2x2_to_sprites::char_current#2 + (byte) 8
|
||||
[113] (byte*) font_2x2_to_sprites::sprite#1 ← (byte*) font_2x2_to_sprites::sprite#4 + (byte) $40
|
||||
[114] (byte) font_2x2_to_sprites::c#1 ← ++ (byte) font_2x2_to_sprites::c#2
|
||||
[123] (byte*) font_2x2_to_sprites::char_current#1 ← (byte*) font_2x2_to_sprites::char_current#2 + (byte) 8
|
||||
[124] (byte*) font_2x2_to_sprites::sprite#1 ← (byte*) font_2x2_to_sprites::sprite#4 + (byte) $40
|
||||
[125] (byte) font_2x2_to_sprites::c#1 ← ++ (byte) font_2x2_to_sprites::c#2
|
||||
to:font_2x2_to_sprites::@1
|
||||
font_2x2_to_sprites::@4: scope:[font_2x2_to_sprites] from font_2x2_to_sprites::@3
|
||||
[115] (byte*) font_2x2_to_sprites::char_left#1 ← (byte*) font_2x2_to_sprites::char_current#2 + (word)(number) $80*(number) 8
|
||||
[116] (byte*) font_2x2_to_sprites::char_right#1 ← (byte*) font_2x2_to_sprites::char_current#2 + (word)(number) $c0*(number) 8
|
||||
[126] (byte*) font_2x2_to_sprites::char_left#1 ← (byte*) font_2x2_to_sprites::char_current#2 + (word)(number) $80*(number) 8
|
||||
[127] (byte*) font_2x2_to_sprites::char_right#1 ← (byte*) font_2x2_to_sprites::char_current#2 + (word)(number) $c0*(number) 8
|
||||
to:font_2x2_to_sprites::@5
|
||||
|
||||
(void()) font_2x2((byte*) font_2x2::font_original , (byte*) font_2x2::font_2x2)
|
||||
font_2x2: scope:[font_2x2] from main
|
||||
[117] phi()
|
||||
[128] phi()
|
||||
to:font_2x2::@1
|
||||
font_2x2::@1: scope:[font_2x2] from font_2x2 font_2x2::@9
|
||||
[118] (byte) font_2x2::c#11 ← phi( font_2x2/(byte) 0 font_2x2::@9/(byte) font_2x2::c#1 )
|
||||
[118] (byte*) font_2x2::next_original#4 ← phi( font_2x2/(const nomodify byte*) CHARGEN font_2x2::@9/(byte*) font_2x2::next_original#1 )
|
||||
[118] (byte*) font_2x2::next_2x2_left#0 ← phi( font_2x2/(const nomodify byte*) FONT font_2x2::@9/(byte*) font_2x2::next_2x2#1 )
|
||||
[119] (byte*) font_2x2::next_2x2_right#0 ← (byte*) font_2x2::next_2x2_left#0 + (word)(number) $40*(number) 8
|
||||
[120] (byte*) font_2x2::next_2x2_left#10 ← (byte*) font_2x2::next_2x2_left#0
|
||||
[129] (byte) font_2x2::c#11 ← phi( font_2x2/(byte) 0 font_2x2::@9/(byte) font_2x2::c#1 )
|
||||
[129] (byte*) font_2x2::next_original#4 ← phi( font_2x2/(const nomodify byte*) CHARGEN font_2x2::@9/(byte*) font_2x2::next_original#1 )
|
||||
[129] (byte*) font_2x2::next_2x2_left#0 ← phi( font_2x2/(const byte*) FONT font_2x2::@9/(byte*) font_2x2::next_2x2#1 )
|
||||
[130] (byte*) font_2x2::next_2x2_right#0 ← (byte*) font_2x2::next_2x2_left#0 + (word)(number) $40*(number) 8
|
||||
[131] (byte*) font_2x2::next_2x2_left#10 ← (byte*) font_2x2::next_2x2_left#0
|
||||
to:font_2x2::@2
|
||||
font_2x2::@2: scope:[font_2x2] from font_2x2::@1 font_2x2::@8
|
||||
[121] (byte*) font_2x2::next_2x2_right#7 ← phi( font_2x2::@1/(byte*) font_2x2::next_2x2_right#0 font_2x2::@8/(byte*) font_2x2::next_2x2_right#8 )
|
||||
[121] (byte) font_2x2::l2#8 ← phi( font_2x2::@1/(byte) 0 font_2x2::@8/(byte) font_2x2::l2#9 )
|
||||
[121] (byte*) font_2x2::next_2x2_left#7 ← phi( font_2x2::@1/(byte*) font_2x2::next_2x2_left#10 font_2x2::@8/(byte*) font_2x2::next_2x2_left#8 )
|
||||
[121] (byte) font_2x2::l#2 ← phi( font_2x2::@1/(byte) 0 font_2x2::@8/(byte) font_2x2::l#1 )
|
||||
[122] (byte) font_2x2::glyph_bits#0 ← *((byte*) font_2x2::next_original#4 + (byte) font_2x2::l#2)
|
||||
[132] (byte*) font_2x2::next_2x2_right#7 ← phi( font_2x2::@1/(byte*) font_2x2::next_2x2_right#0 font_2x2::@8/(byte*) font_2x2::next_2x2_right#8 )
|
||||
[132] (byte) font_2x2::l2#8 ← phi( font_2x2::@1/(byte) 0 font_2x2::@8/(byte) font_2x2::l2#9 )
|
||||
[132] (byte*) font_2x2::next_2x2_left#7 ← phi( font_2x2::@1/(byte*) font_2x2::next_2x2_left#10 font_2x2::@8/(byte*) font_2x2::next_2x2_left#8 )
|
||||
[132] (byte) font_2x2::l#2 ← phi( font_2x2::@1/(byte) 0 font_2x2::@8/(byte) font_2x2::l#1 )
|
||||
[133] (byte) font_2x2::glyph_bits#0 ← *((byte*) font_2x2::next_original#4 + (byte) font_2x2::l#2)
|
||||
to:font_2x2::@3
|
||||
font_2x2::@3: scope:[font_2x2] from font_2x2::@2 font_2x2::@5
|
||||
[123] (byte) font_2x2::b#2 ← phi( font_2x2::@2/(byte) 0 font_2x2::@5/(byte) font_2x2::b#1 )
|
||||
[123] (word) font_2x2::glyph_bits_2x2#3 ← phi( font_2x2::@2/(word) 0 font_2x2::@5/(word) font_2x2::glyph_bits_2x2#2 )
|
||||
[123] (byte) font_2x2::glyph_bits#2 ← phi( font_2x2::@2/(byte) font_2x2::glyph_bits#0 font_2x2::@5/(byte) font_2x2::glyph_bits#1 )
|
||||
[124] (byte~) font_2x2::$1 ← (byte) font_2x2::glyph_bits#2 & (byte) $80
|
||||
[125] if((byte) 0!=(byte~) font_2x2::$1) goto font_2x2::@4
|
||||
[134] (byte) font_2x2::b#2 ← phi( font_2x2::@2/(byte) 0 font_2x2::@5/(byte) font_2x2::b#1 )
|
||||
[134] (word) font_2x2::glyph_bits_2x2#3 ← phi( font_2x2::@2/(word) 0 font_2x2::@5/(word) font_2x2::glyph_bits_2x2#2 )
|
||||
[134] (byte) font_2x2::glyph_bits#2 ← phi( font_2x2::@2/(byte) font_2x2::glyph_bits#0 font_2x2::@5/(byte) font_2x2::glyph_bits#1 )
|
||||
[135] (byte~) font_2x2::$1 ← (byte) font_2x2::glyph_bits#2 & (byte) $80
|
||||
[136] if((byte) 0!=(byte~) font_2x2::$1) goto font_2x2::@4
|
||||
to:font_2x2::@5
|
||||
font_2x2::@4: scope:[font_2x2] from font_2x2::@3
|
||||
[126] phi()
|
||||
[137] phi()
|
||||
to:font_2x2::@5
|
||||
font_2x2::@5: scope:[font_2x2] from font_2x2::@3 font_2x2::@4
|
||||
[127] (byte) font_2x2::glyph_bit#0 ← phi( font_2x2::@4/(byte) 1 font_2x2::@3/(byte) 0 )
|
||||
[128] (word~) font_2x2::$5 ← (word) font_2x2::glyph_bits_2x2#3 << (byte) 1
|
||||
[129] (word) font_2x2::glyph_bits_2x2#1 ← (word~) font_2x2::$5 | (byte) font_2x2::glyph_bit#0
|
||||
[130] (word~) font_2x2::$7 ← (word) font_2x2::glyph_bits_2x2#1 << (byte) 1
|
||||
[131] (word) font_2x2::glyph_bits_2x2#2 ← (word~) font_2x2::$7 | (byte) font_2x2::glyph_bit#0
|
||||
[132] (byte) font_2x2::glyph_bits#1 ← (byte) font_2x2::glyph_bits#2 << (byte) 1
|
||||
[133] (byte) font_2x2::b#1 ← ++ (byte) font_2x2::b#2
|
||||
[134] if((byte) font_2x2::b#1!=(byte) 8) goto font_2x2::@3
|
||||
[138] (byte) font_2x2::glyph_bit#0 ← phi( font_2x2::@4/(byte) 1 font_2x2::@3/(byte) 0 )
|
||||
[139] (word~) font_2x2::$5 ← (word) font_2x2::glyph_bits_2x2#3 << (byte) 1
|
||||
[140] (word) font_2x2::glyph_bits_2x2#1 ← (word~) font_2x2::$5 | (byte) font_2x2::glyph_bit#0
|
||||
[141] (word~) font_2x2::$7 ← (word) font_2x2::glyph_bits_2x2#1 << (byte) 1
|
||||
[142] (word) font_2x2::glyph_bits_2x2#2 ← (word~) font_2x2::$7 | (byte) font_2x2::glyph_bit#0
|
||||
[143] (byte) font_2x2::glyph_bits#1 ← (byte) font_2x2::glyph_bits#2 << (byte) 1
|
||||
[144] (byte) font_2x2::b#1 ← ++ (byte) font_2x2::b#2
|
||||
[145] if((byte) font_2x2::b#1!=(byte) 8) goto font_2x2::@3
|
||||
to:font_2x2::@6
|
||||
font_2x2::@6: scope:[font_2x2] from font_2x2::@5
|
||||
[135] (byte~) font_2x2::$12 ← > (word) font_2x2::glyph_bits_2x2#2
|
||||
[136] *((byte*) font_2x2::next_2x2_left#7 + (byte) font_2x2::l2#8) ← (byte~) font_2x2::$12
|
||||
[137] (byte~) font_2x2::$11 ← (byte) font_2x2::l2#8 + (byte) 1
|
||||
[138] *((byte*) font_2x2::next_2x2_left#7 + (byte~) font_2x2::$11) ← (byte~) font_2x2::$12
|
||||
[139] (byte~) font_2x2::$15 ← < (word) font_2x2::glyph_bits_2x2#2
|
||||
[140] *((byte*) font_2x2::next_2x2_right#7 + (byte) font_2x2::l2#8) ← (byte~) font_2x2::$15
|
||||
[141] (byte~) font_2x2::$14 ← (byte) font_2x2::l2#8 + (byte) 1
|
||||
[142] *((byte*) font_2x2::next_2x2_right#7 + (byte~) font_2x2::$14) ← (byte~) font_2x2::$15
|
||||
[143] (byte) font_2x2::l2#1 ← (byte) font_2x2::l2#8 + (byte) 2
|
||||
[144] if((byte) font_2x2::l2#1!=(byte) 8) goto font_2x2::@8
|
||||
[146] (byte~) font_2x2::$12 ← > (word) font_2x2::glyph_bits_2x2#2
|
||||
[147] *((byte*) font_2x2::next_2x2_left#7 + (byte) font_2x2::l2#8) ← (byte~) font_2x2::$12
|
||||
[148] (byte~) font_2x2::$11 ← (byte) font_2x2::l2#8 + (byte) 1
|
||||
[149] *((byte*) font_2x2::next_2x2_left#7 + (byte~) font_2x2::$11) ← (byte~) font_2x2::$12
|
||||
[150] (byte~) font_2x2::$15 ← < (word) font_2x2::glyph_bits_2x2#2
|
||||
[151] *((byte*) font_2x2::next_2x2_right#7 + (byte) font_2x2::l2#8) ← (byte~) font_2x2::$15
|
||||
[152] (byte~) font_2x2::$14 ← (byte) font_2x2::l2#8 + (byte) 1
|
||||
[153] *((byte*) font_2x2::next_2x2_right#7 + (byte~) font_2x2::$14) ← (byte~) font_2x2::$15
|
||||
[154] (byte) font_2x2::l2#1 ← (byte) font_2x2::l2#8 + (byte) 2
|
||||
[155] if((byte) font_2x2::l2#1!=(byte) 8) goto font_2x2::@8
|
||||
to:font_2x2::@7
|
||||
font_2x2::@7: scope:[font_2x2] from font_2x2::@6
|
||||
[145] (byte*) font_2x2::next_2x2_left#1 ← (byte*) font_2x2::next_2x2_left#0 + (word)(number) $80*(number) 8
|
||||
[146] (byte*) font_2x2::next_2x2_right#1 ← (byte*) font_2x2::next_2x2_left#0 + (word)(number) $c0*(number) 8
|
||||
[156] (byte*) font_2x2::next_2x2_left#1 ← (byte*) font_2x2::next_2x2_left#0 + (word)(number) $80*(number) 8
|
||||
[157] (byte*) font_2x2::next_2x2_right#1 ← (byte*) font_2x2::next_2x2_left#0 + (word)(number) $c0*(number) 8
|
||||
to:font_2x2::@8
|
||||
font_2x2::@8: scope:[font_2x2] from font_2x2::@6 font_2x2::@7
|
||||
[147] (byte*) font_2x2::next_2x2_right#8 ← phi( font_2x2::@7/(byte*) font_2x2::next_2x2_right#1 font_2x2::@6/(byte*) font_2x2::next_2x2_right#7 )
|
||||
[147] (byte) font_2x2::l2#9 ← phi( font_2x2::@7/(byte) 0 font_2x2::@6/(byte) font_2x2::l2#1 )
|
||||
[147] (byte*) font_2x2::next_2x2_left#8 ← phi( font_2x2::@7/(byte*) font_2x2::next_2x2_left#1 font_2x2::@6/(byte*) font_2x2::next_2x2_left#7 )
|
||||
[148] (byte) font_2x2::l#1 ← ++ (byte) font_2x2::l#2
|
||||
[149] if((byte) font_2x2::l#1!=(byte) 8) goto font_2x2::@2
|
||||
[158] (byte*) font_2x2::next_2x2_right#8 ← phi( font_2x2::@7/(byte*) font_2x2::next_2x2_right#1 font_2x2::@6/(byte*) font_2x2::next_2x2_right#7 )
|
||||
[158] (byte) font_2x2::l2#9 ← phi( font_2x2::@7/(byte) 0 font_2x2::@6/(byte) font_2x2::l2#1 )
|
||||
[158] (byte*) font_2x2::next_2x2_left#8 ← phi( font_2x2::@7/(byte*) font_2x2::next_2x2_left#1 font_2x2::@6/(byte*) font_2x2::next_2x2_left#7 )
|
||||
[159] (byte) font_2x2::l#1 ← ++ (byte) font_2x2::l#2
|
||||
[160] if((byte) font_2x2::l#1!=(byte) 8) goto font_2x2::@2
|
||||
to:font_2x2::@9
|
||||
font_2x2::@9: scope:[font_2x2] from font_2x2::@8
|
||||
[150] (byte*) font_2x2::next_2x2#1 ← (byte*) font_2x2::next_2x2_left#0 + (byte) 8
|
||||
[151] (byte*) font_2x2::next_original#1 ← (byte*) font_2x2::next_original#4 + (byte) 8
|
||||
[152] (byte) font_2x2::c#1 ← ++ (byte) font_2x2::c#11
|
||||
[153] if((byte) font_2x2::c#1!=(byte) $40) goto font_2x2::@1
|
||||
[161] (byte*) font_2x2::next_2x2#1 ← (byte*) font_2x2::next_2x2_left#0 + (byte) 8
|
||||
[162] (byte*) font_2x2::next_original#1 ← (byte*) font_2x2::next_original#4 + (byte) 8
|
||||
[163] (byte) font_2x2::c#1 ← ++ (byte) font_2x2::c#11
|
||||
[164] if((byte) font_2x2::c#1!=(byte) $40) goto font_2x2::@1
|
||||
to:font_2x2::@return
|
||||
font_2x2::@return: scope:[font_2x2] from font_2x2::@9
|
||||
[154] return
|
||||
[165] return
|
||||
to:@return
|
||||
|
||||
interrupt(KERNEL_MIN)(void()) plex_irq()
|
||||
@ -314,77 +334,77 @@ plex_irq: scope:[plex_irq] from
|
||||
asm { sei }
|
||||
to:plex_irq::@3
|
||||
plex_irq::@3: scope:[plex_irq] from plex_irq plex_irq::@7
|
||||
[156] phi()
|
||||
[157] call plexShowSprite
|
||||
[167] phi()
|
||||
[168] call plexShowSprite
|
||||
to:plex_irq::plexFreeNextYpos1
|
||||
plex_irq::plexFreeNextYpos1: scope:[plex_irq] from plex_irq::@3
|
||||
[158] (byte) plex_irq::plexFreeNextYpos1_return#0 ← *((const byte*) PLEX_FREE_YPOS + (volatile byte) plex_free_next)
|
||||
[169] (byte) plex_irq::plexFreeNextYpos1_return#0 ← *((const byte*) PLEX_FREE_YPOS + (volatile byte) plex_free_next)
|
||||
to:plex_irq::@6
|
||||
plex_irq::@6: scope:[plex_irq] from plex_irq::plexFreeNextYpos1
|
||||
[159] (byte~) plex_irq::$4 ← *((const nomodify byte*) RASTER) + (byte) 3
|
||||
[160] if((volatile byte) plex_show_idx>=(const nomodify byte) PLEX_COUNT) goto plex_irq::@4
|
||||
[170] (byte~) plex_irq::$4 ← *((const nomodify byte*) RASTER) + (byte) 3
|
||||
[171] if((volatile byte) plex_show_idx>=(const nomodify byte) PLEX_COUNT) goto plex_irq::@4
|
||||
to:plex_irq::@7
|
||||
plex_irq::@7: scope:[plex_irq] from plex_irq::@6
|
||||
[161] if((byte) plex_irq::plexFreeNextYpos1_return#0<(byte~) plex_irq::$4) goto plex_irq::@3
|
||||
[172] if((byte) plex_irq::plexFreeNextYpos1_return#0<(byte~) plex_irq::$4) goto plex_irq::@3
|
||||
to:plex_irq::@4
|
||||
plex_irq::@4: scope:[plex_irq] from plex_irq::@6 plex_irq::@7
|
||||
[162] if((volatile byte) plex_show_idx<(const nomodify byte) PLEX_COUNT) goto plex_irq::@1
|
||||
[173] if((volatile byte) plex_show_idx<(const nomodify byte) PLEX_COUNT) goto plex_irq::@1
|
||||
to:plex_irq::@5
|
||||
plex_irq::@5: scope:[plex_irq] from plex_irq::@4
|
||||
[163] *((const nomodify byte*) RASTER) ← (byte) $28
|
||||
[164] (volatile bool) framedone ← true
|
||||
[174] *((const nomodify byte*) RASTER) ← (byte) $28
|
||||
[175] (volatile bool) frame_done ← true
|
||||
to:plex_irq::@2
|
||||
plex_irq::@2: scope:[plex_irq] from plex_irq::@1 plex_irq::@5
|
||||
[165] *((const nomodify byte*) IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER
|
||||
[176] *((const nomodify byte*) IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER
|
||||
asm { cli }
|
||||
to:plex_irq::@return
|
||||
plex_irq::@return: scope:[plex_irq] from plex_irq::@2
|
||||
[167] return
|
||||
[178] return
|
||||
to:@return
|
||||
plex_irq::@1: scope:[plex_irq] from plex_irq::@4
|
||||
[168] *((const nomodify byte*) RASTER) ← (byte) plex_irq::plexFreeNextYpos1_return#0
|
||||
[179] *((const nomodify byte*) RASTER) ← (byte) plex_irq::plexFreeNextYpos1_return#0
|
||||
to:plex_irq::@2
|
||||
|
||||
(void()) plexShowSprite()
|
||||
plexShowSprite: scope:[plexShowSprite] from plex_irq::@3
|
||||
[169] (byte) plexShowSprite::plex_sprite_idx2#0 ← (volatile byte) plex_sprite_idx << (byte) 1
|
||||
[170] (byte) plexShowSprite::plexFreeAdd1_ypos#0 ← *((const byte*) PLEX_YPOS + *((const byte*) PLEX_SORTED_IDX + (volatile byte) plex_show_idx))
|
||||
[171] *((const nomodify byte*) SPRITES_YPOS + (byte) plexShowSprite::plex_sprite_idx2#0) ← (byte) plexShowSprite::plexFreeAdd1_ypos#0
|
||||
[180] (byte) plexShowSprite::plex_sprite_idx2#0 ← (volatile byte) plex_sprite_idx << (byte) 1
|
||||
[181] (byte) plexShowSprite::plexFreeAdd1_ypos#0 ← *((const byte*) PLEX_YPOS + *((const byte*) PLEX_SORTED_IDX + (volatile byte) plex_show_idx))
|
||||
[182] *((const nomodify byte*) SPRITES_YPOS + (byte) plexShowSprite::plex_sprite_idx2#0) ← (byte) plexShowSprite::plexFreeAdd1_ypos#0
|
||||
to:plexShowSprite::plexFreeAdd1
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
[172] (byte~) plexShowSprite::plexFreeAdd1_$0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte) $15
|
||||
[173] *((const byte*) PLEX_FREE_YPOS + (volatile byte) plex_free_next) ← (byte~) plexShowSprite::plexFreeAdd1_$0
|
||||
[174] (byte~) plexShowSprite::plexFreeAdd1_$1 ← (volatile byte) plex_free_next + (byte) 1
|
||||
[175] (byte~) plexShowSprite::plexFreeAdd1_$2 ← (byte~) plexShowSprite::plexFreeAdd1_$1 & (byte) 7
|
||||
[176] (volatile byte) plex_free_next ← (byte~) plexShowSprite::plexFreeAdd1_$2
|
||||
[183] (byte~) plexShowSprite::plexFreeAdd1_$0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte) $15
|
||||
[184] *((const byte*) PLEX_FREE_YPOS + (volatile byte) plex_free_next) ← (byte~) plexShowSprite::plexFreeAdd1_$0
|
||||
[185] (byte~) plexShowSprite::plexFreeAdd1_$1 ← (volatile byte) plex_free_next + (byte) 1
|
||||
[186] (byte~) plexShowSprite::plexFreeAdd1_$2 ← (byte~) plexShowSprite::plexFreeAdd1_$1 & (byte) 7
|
||||
[187] (volatile byte) plex_free_next ← (byte~) plexShowSprite::plexFreeAdd1_$2
|
||||
to:plexShowSprite::@5
|
||||
plexShowSprite::@5: scope:[plexShowSprite] from plexShowSprite::plexFreeAdd1
|
||||
[177] *((const byte*) PLEX_SCREEN_PTR#0 + (volatile byte) plex_sprite_idx) ← *((const byte*) PLEX_PTR + *((const byte*) PLEX_SORTED_IDX + (volatile byte) plex_show_idx))
|
||||
[178] (byte) plexShowSprite::xpos_idx#0 ← *((const byte*) PLEX_SORTED_IDX + (volatile byte) plex_show_idx)
|
||||
[179] (byte~) plexShowSprite::$11 ← (byte) plexShowSprite::xpos_idx#0 << (byte) 1
|
||||
[180] (byte~) plexShowSprite::$2 ← < *((const word*) PLEX_XPOS + (byte~) plexShowSprite::$11)
|
||||
[181] *((const nomodify byte*) SPRITES_XPOS + (byte) plexShowSprite::plex_sprite_idx2#0) ← (byte~) plexShowSprite::$2
|
||||
[182] (byte~) plexShowSprite::$3 ← > *((const word*) PLEX_XPOS + (byte~) plexShowSprite::$11)
|
||||
[183] if((byte~) plexShowSprite::$3!=(byte) 0) goto plexShowSprite::@1
|
||||
[188] *((const byte*) PLEX_SCREEN_PTR#0 + (volatile byte) plex_sprite_idx) ← *((const byte*) PLEX_PTR + *((const byte*) PLEX_SORTED_IDX + (volatile byte) plex_show_idx))
|
||||
[189] (byte) plexShowSprite::xpos_idx#0 ← *((const byte*) PLEX_SORTED_IDX + (volatile byte) plex_show_idx)
|
||||
[190] (byte~) plexShowSprite::$11 ← (byte) plexShowSprite::xpos_idx#0 << (byte) 1
|
||||
[191] (byte~) plexShowSprite::$2 ← < *((const word*) PLEX_XPOS + (byte~) plexShowSprite::$11)
|
||||
[192] *((const nomodify byte*) SPRITES_XPOS + (byte) plexShowSprite::plex_sprite_idx2#0) ← (byte~) plexShowSprite::$2
|
||||
[193] (byte~) plexShowSprite::$3 ← > *((const word*) PLEX_XPOS + (byte~) plexShowSprite::$11)
|
||||
[194] if((byte~) plexShowSprite::$3!=(byte) 0) goto plexShowSprite::@1
|
||||
to:plexShowSprite::@3
|
||||
plexShowSprite::@3: scope:[plexShowSprite] from plexShowSprite::@5
|
||||
[184] (byte~) plexShowSprite::$9 ← (byte) $ff ^ (volatile byte) plex_sprite_msb
|
||||
[185] *((const nomodify byte*) SPRITES_XMSB) ← *((const nomodify byte*) SPRITES_XMSB) & (byte~) plexShowSprite::$9
|
||||
[195] (byte~) plexShowSprite::$9 ← (byte) $ff ^ (volatile byte) plex_sprite_msb
|
||||
[196] *((const nomodify byte*) SPRITES_XMSB) ← *((const nomodify byte*) SPRITES_XMSB) & (byte~) plexShowSprite::$9
|
||||
to:plexShowSprite::@2
|
||||
plexShowSprite::@2: scope:[plexShowSprite] from plexShowSprite::@1 plexShowSprite::@3
|
||||
[186] (byte~) plexShowSprite::$5 ← (volatile byte) plex_sprite_idx + (byte) 1
|
||||
[187] (byte~) plexShowSprite::$6 ← (byte~) plexShowSprite::$5 & (byte) 7
|
||||
[188] (volatile byte) plex_sprite_idx ← (byte~) plexShowSprite::$6
|
||||
[189] (volatile byte) plex_show_idx ← ++ (volatile byte) plex_show_idx
|
||||
[190] (volatile byte) plex_sprite_msb ← (volatile byte) plex_sprite_msb << (byte) 1
|
||||
[191] if((volatile byte) plex_sprite_msb!=(byte) 0) goto plexShowSprite::@return
|
||||
[197] (byte~) plexShowSprite::$5 ← (volatile byte) plex_sprite_idx + (byte) 1
|
||||
[198] (byte~) plexShowSprite::$6 ← (byte~) plexShowSprite::$5 & (byte) 7
|
||||
[199] (volatile byte) plex_sprite_idx ← (byte~) plexShowSprite::$6
|
||||
[200] (volatile byte) plex_show_idx ← ++ (volatile byte) plex_show_idx
|
||||
[201] (volatile byte) plex_sprite_msb ← (volatile byte) plex_sprite_msb << (byte) 1
|
||||
[202] if((volatile byte) plex_sprite_msb!=(byte) 0) goto plexShowSprite::@return
|
||||
to:plexShowSprite::@4
|
||||
plexShowSprite::@4: scope:[plexShowSprite] from plexShowSprite::@2
|
||||
[192] (volatile byte) plex_sprite_msb ← (byte) 1
|
||||
[203] (volatile byte) plex_sprite_msb ← (byte) 1
|
||||
to:plexShowSprite::@return
|
||||
plexShowSprite::@return: scope:[plexShowSprite] from plexShowSprite::@2 plexShowSprite::@4
|
||||
[193] return
|
||||
[204] return
|
||||
to:@return
|
||||
plexShowSprite::@1: scope:[plexShowSprite] from plexShowSprite::@5
|
||||
[194] *((const nomodify byte*) SPRITES_XMSB) ← *((const nomodify byte*) SPRITES_XMSB) | (volatile byte) plex_sprite_msb
|
||||
[205] *((const nomodify byte*) SPRITES_XMSB) ← *((const nomodify byte*) SPRITES_XMSB) | (volatile byte) plex_sprite_msb
|
||||
to:plexShowSprite::@2
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@
|
||||
(const nomodify byte*) CIA1_INTERRUPT = (byte*) 56333
|
||||
(const nomodify byte) CIA_INTERRUPT_CLEAR = (byte) $7f
|
||||
(const nomodify byte*) D018 = (byte*) 53272
|
||||
(const nomodify byte*) FONT = (byte*) 8192
|
||||
(const byte*) FONT[(number) $800] = { fill( $800, 0) }
|
||||
(const nomodify byte*) IRQ_ENABLE = (byte*) 53274
|
||||
(const nomodify byte) IRQ_RASTER = (byte) 1
|
||||
(const nomodify byte*) IRQ_STATUS = (byte*) 53273
|
||||
@ -27,14 +27,19 @@
|
||||
(const nomodify byte) PROCPORT_RAM_CHARROM = (byte) 1
|
||||
(const nomodify byte*) RASTER = (byte*) 53266
|
||||
(const nomodify byte*) SCREEN = (byte*) 1024
|
||||
(const byte*) SCROLL_TEXT[] = (byte*) "camelot presents a spanking new contribution to the always hungry c64 scene. in this time of the corona virus we have chosen to direct our efforts towards the safe haven of coding, pixeling and composing for our beloved old breadbin. "
|
||||
(const nomodify byte*) SPRITES = (byte*) 12288
|
||||
(const nomodify byte*) SPRITES_COLS = (byte*) 53287
|
||||
(const nomodify byte*) SPRITES_ENABLE = (byte*) 53269
|
||||
(const nomodify byte*) SPRITES_XMSB = (byte*) 53264
|
||||
(const nomodify byte*) SPRITES_XPOS = (byte*) 53248
|
||||
(const nomodify byte*) SPRITES_YPOS = (byte*) 53249
|
||||
(byte) SPRITE_0
|
||||
(const nomodify byte*) VIC_CONTROL = (byte*) 53265
|
||||
(const nomodify byte) WHITE = (byte) 1
|
||||
(const byte*) XMOVEMENT[(number) $200] = kickasm {{ .lohifill $100, round(344-i*344/$100-86*sin(toRadians(360*i/$100)))
|
||||
}}
|
||||
(const nomodify byte*) XMOVEMENT_HI = (const byte*) XMOVEMENT+(word) $100
|
||||
(const byte*) YSIN[(number) $100] = kickasm {{ .fill $100, round(142+89.5*sin(toRadians(360*i/256)))
|
||||
}}
|
||||
(void()) font_2x2((byte*) font_2x2::font_original , (byte*) font_2x2::font_2x2)
|
||||
@ -43,8 +48,8 @@
|
||||
(byte~) font_2x2::$12 reg byte a 10001.0
|
||||
(byte~) font_2x2::$14 reg byte y 20002.0
|
||||
(byte~) font_2x2::$15 reg byte a 10001.0
|
||||
(word~) font_2x2::$5 zp[2]:15 200002.0
|
||||
(word~) font_2x2::$7 zp[2]:15 200002.0
|
||||
(word~) font_2x2::$5 zp[2]:20 200002.0
|
||||
(word~) font_2x2::$7 zp[2]:20 200002.0
|
||||
(label) font_2x2::@1
|
||||
(label) font_2x2::@2
|
||||
(label) font_2x2::@3
|
||||
@ -59,31 +64,31 @@
|
||||
(byte) font_2x2::b#1 reg byte y 150001.5
|
||||
(byte) font_2x2::b#2 reg byte y 20000.2
|
||||
(byte) font_2x2::c
|
||||
(byte) font_2x2::c#1 c zp[1]:10 1501.5
|
||||
(byte) font_2x2::c#11 c zp[1]:10 58.88235294117647
|
||||
(byte) font_2x2::c#1 c zp[1]:9 1501.5
|
||||
(byte) font_2x2::c#11 c zp[1]:9 58.88235294117647
|
||||
(byte*) font_2x2::font_2x2
|
||||
(byte*) font_2x2::font_original
|
||||
(byte) font_2x2::glyph_bit
|
||||
(byte) font_2x2::glyph_bit#0 reg byte x 50000.5
|
||||
(byte) font_2x2::glyph_bits
|
||||
(byte) font_2x2::glyph_bits#0 glyph_bits zp[1]:24 20002.0
|
||||
(byte) font_2x2::glyph_bits#1 glyph_bits zp[1]:24 66667.33333333333
|
||||
(byte) font_2x2::glyph_bits#2 glyph_bits zp[1]:24 34444.88888888889
|
||||
(byte) font_2x2::glyph_bits#0 glyph_bits zp[1]:22 20002.0
|
||||
(byte) font_2x2::glyph_bits#1 glyph_bits zp[1]:22 66667.33333333333
|
||||
(byte) font_2x2::glyph_bits#2 glyph_bits zp[1]:22 34444.88888888889
|
||||
(word) font_2x2::glyph_bits_2x2
|
||||
(word) font_2x2::glyph_bits_2x2#1 glyph_bits_2x2 zp[2]:15 200002.0
|
||||
(word) font_2x2::glyph_bits_2x2#2 glyph_bits_2x2 zp[2]:15 27500.5
|
||||
(word) font_2x2::glyph_bits_2x2#3 glyph_bits_2x2 zp[2]:15 40000.4
|
||||
(word) font_2x2::glyph_bits_2x2#1 glyph_bits_2x2 zp[2]:20 200002.0
|
||||
(word) font_2x2::glyph_bits_2x2#2 glyph_bits_2x2 zp[2]:20 27500.5
|
||||
(word) font_2x2::glyph_bits_2x2#3 glyph_bits_2x2 zp[2]:20 40000.4
|
||||
(byte) font_2x2::l
|
||||
(byte) font_2x2::l#1 l zp[1]:22 15001.5
|
||||
(byte) font_2x2::l#2 l zp[1]:22 1111.2222222222222
|
||||
(byte) font_2x2::l#1 l zp[1]:10 15001.5
|
||||
(byte) font_2x2::l#2 l zp[1]:10 1111.2222222222222
|
||||
(byte) font_2x2::l2
|
||||
(byte) font_2x2::l2#1 l2 zp[1]:23 15001.5
|
||||
(byte) font_2x2::l2#8 l2 zp[1]:23 2727.5454545454545
|
||||
(byte) font_2x2::l2#9 l2 zp[1]:23 6667.333333333333
|
||||
(byte*) font_2x2::next_2x2
|
||||
(byte*) font_2x2::next_2x2#1 next_2x2 zp[2]:6 500.5
|
||||
(byte*) font_2x2::next_2x2#1 next_2x2 zp[2]:5 500.5
|
||||
(byte*) font_2x2::next_2x2_left
|
||||
(byte*) font_2x2::next_2x2_left#0 next_2x2_left zp[2]:6 750.1875
|
||||
(byte*) font_2x2::next_2x2_left#0 next_2x2_left zp[2]:5 750.1875
|
||||
(byte*) font_2x2::next_2x2_left#1 next_2x2_left_1 zp[2]:11 10001.0
|
||||
(byte*) font_2x2::next_2x2_left#10 next_2x2_left_1 zp[2]:11 2002.0
|
||||
(byte*) font_2x2::next_2x2_left#7 next_2x2_left_1 zp[2]:11 1708.5416666666665
|
||||
@ -94,10 +99,10 @@
|
||||
(byte*) font_2x2::next_2x2_right#7 next_2x2_right zp[2]:13 1708.5416666666665
|
||||
(byte*) font_2x2::next_2x2_right#8 next_2x2_right zp[2]:13 10001.0
|
||||
(byte*) font_2x2::next_original
|
||||
(byte*) font_2x2::next_original#1 next_original zp[2]:8 667.3333333333334
|
||||
(byte*) font_2x2::next_original#4 next_original zp[2]:8 363.7272727272727
|
||||
(byte*) font_2x2::next_original#1 next_original zp[2]:7 667.3333333333334
|
||||
(byte*) font_2x2::next_original#4 next_original zp[2]:7 363.7272727272727
|
||||
(void()) font_2x2_to_sprites((byte*) font_2x2_to_sprites::font_2x2 , (byte*) font_2x2_to_sprites::sprites , (byte) font_2x2_to_sprites::num_chars)
|
||||
(byte~) font_2x2_to_sprites::$3 zp[1]:24 10001.0
|
||||
(byte~) font_2x2_to_sprites::$3 zp[1]:23 10001.0
|
||||
(label) font_2x2_to_sprites::@1
|
||||
(label) font_2x2_to_sprites::@2
|
||||
(label) font_2x2_to_sprites::@3
|
||||
@ -108,11 +113,11 @@
|
||||
(label) font_2x2_to_sprites::@8
|
||||
(label) font_2x2_to_sprites::@return
|
||||
(byte) font_2x2_to_sprites::c
|
||||
(byte) font_2x2_to_sprites::c#1 c zp[1]:5 2002.0
|
||||
(byte) font_2x2_to_sprites::c#2 c zp[1]:5 136.5
|
||||
(byte) font_2x2_to_sprites::c#1 c zp[1]:9 2002.0
|
||||
(byte) font_2x2_to_sprites::c#2 c zp[1]:9 136.5
|
||||
(byte*) font_2x2_to_sprites::char_current
|
||||
(byte*) font_2x2_to_sprites::char_current#1 char_current zp[2]:6 667.3333333333334
|
||||
(byte*) font_2x2_to_sprites::char_current#2 char_current zp[2]:6 1200.3
|
||||
(byte*) font_2x2_to_sprites::char_current#1 char_current zp[2]:5 667.3333333333334
|
||||
(byte*) font_2x2_to_sprites::char_current#2 char_current zp[2]:5 1200.3
|
||||
(byte*) font_2x2_to_sprites::char_left
|
||||
(byte*) font_2x2_to_sprites::char_left#1 char_left zp[2]:11 10001.0
|
||||
(byte*) font_2x2_to_sprites::char_left#3 char_left zp[2]:11 2818.5454545454545
|
||||
@ -130,17 +135,19 @@
|
||||
(byte) font_2x2_to_sprites::num_chars
|
||||
(const byte) font_2x2_to_sprites::num_chars#0 num_chars = (byte) $40
|
||||
(byte*) font_2x2_to_sprites::sprite
|
||||
(byte*) font_2x2_to_sprites::sprite#1 sprite zp[2]:8 1001.0
|
||||
(byte*) font_2x2_to_sprites::sprite#4 sprite zp[2]:8 1524.047619047619
|
||||
(byte*) font_2x2_to_sprites::sprite#1 sprite zp[2]:7 1001.0
|
||||
(byte*) font_2x2_to_sprites::sprite#4 sprite zp[2]:7 1524.047619047619
|
||||
(byte) font_2x2_to_sprites::sprite_idx
|
||||
(byte) font_2x2_to_sprites::sprite_idx#1 sprite_idx zp[1]:10 15001.5
|
||||
(byte) font_2x2_to_sprites::sprite_idx#2 reg byte y 15001.5
|
||||
(byte) font_2x2_to_sprites::sprite_idx#3 sprite_idx zp[1]:10 2222.4444444444443
|
||||
(byte) font_2x2_to_sprites::sprite_idx#4 sprite_idx zp[1]:10 10001.0
|
||||
(byte*) font_2x2_to_sprites::sprites
|
||||
(volatile bool) framedone loadstore zp[1]:21 27.65
|
||||
(volatile bool) frame_done loadstore zp[1]:19 25.72093023255814
|
||||
(void()) main()
|
||||
(byte~) main::$12 reg byte a 202.0
|
||||
(byte~) main::$12 reg byte y 101.0
|
||||
(word~) main::$13 zp[2]:20 202.0
|
||||
(byte~) main::$7 reg byte a 202.0
|
||||
(label) main::@1
|
||||
(label) main::@10
|
||||
(label) main::@11
|
||||
@ -155,26 +162,19 @@
|
||||
(label) main::@8
|
||||
(label) main::@9
|
||||
(byte) main::s
|
||||
(byte) main::s#1 reg byte x 151.5
|
||||
(byte) main::s#2 reg byte x 67.33333333333333
|
||||
(byte) main::s#1 s zp[1]:2 202.0
|
||||
(byte) main::s#2 s zp[1]:2 75.75
|
||||
(byte) main::s1
|
||||
(byte) main::s1#1 reg byte x 151.5
|
||||
(byte) main::s1#2 reg byte x 151.5
|
||||
(byte) main::sprite
|
||||
(byte) main::sprite#1 sprite zp[1]:4 33.666666666666664
|
||||
(byte) main::sprite#2 sprite zp[1]:4 151.5
|
||||
(label) main::toD0181
|
||||
(byte*) main::toD0181_gfx
|
||||
(byte) main::toD0181_return
|
||||
(const byte) main::toD0181_return#0 toD0181_return = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4|>(word)(const nomodify byte*) CHARSET_DEFAULT/(byte) 4&(byte) $f
|
||||
(byte*) main::toD0181_screen
|
||||
(label) main::toSpritePtr1
|
||||
(byte) main::toSpritePtr1_return
|
||||
(const byte) main::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)(const nomodify byte*) SPRITES/(byte) $40
|
||||
(byte*) main::toSpritePtr1_sprite
|
||||
(word) main::xp
|
||||
(word) main::xp#1 xp zp[2]:2 67.33333333333333
|
||||
(word) main::xp#2 xp zp[2]:2 60.599999999999994
|
||||
(byte) main::x
|
||||
(byte) main::x#1 reg byte x 101.0
|
||||
(byte) main::x#2 reg byte x 57.714285714285715
|
||||
(void()) plexInit((byte*) plexInit::screen)
|
||||
(label) plexInit::@1
|
||||
(label) plexInit::@return
|
||||
@ -204,21 +204,10 @@
|
||||
(byte) plexShowSprite::plexFreeAdd1_ypos
|
||||
(byte) plexShowSprite::plexFreeAdd1_ypos#0 reg byte a 151.5
|
||||
(byte) plexShowSprite::plex_sprite_idx2
|
||||
(byte) plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp[1]:26 25.25
|
||||
(byte) plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp[1]:25 25.25
|
||||
(byte) plexShowSprite::xpos_idx
|
||||
(byte) plexShowSprite::xpos_idx#0 reg byte a 202.0
|
||||
(byte) plexShowSprite::ypos
|
||||
(void()) plexSine()
|
||||
(label) plexSine::@1
|
||||
(label) plexSine::@2
|
||||
(label) plexSine::@return
|
||||
(byte) plexSine::sy
|
||||
(byte) plexSine::sy#1 reg byte y 150001.5
|
||||
(byte) plexSine::sy#2 reg byte y 100001.0
|
||||
(byte) plexSine::y_idx
|
||||
(byte) plexSine::y_idx#0 reg byte x 2002.0
|
||||
(byte) plexSine::y_idx#1 reg byte x 66667.33333333333
|
||||
(byte) plexSine::y_idx#2 reg byte x 150502.0
|
||||
(void()) plexSort()
|
||||
(label) plexSort::@1
|
||||
(label) plexSort::@2
|
||||
@ -229,12 +218,12 @@
|
||||
(label) plexSort::@7
|
||||
(label) plexSort::@return
|
||||
(byte) plexSort::m
|
||||
(byte) plexSort::m#1 m zp[1]:5 150001.5
|
||||
(byte) plexSort::m#2 m zp[1]:5 41667.08333333333
|
||||
(byte) plexSort::m#1 m zp[1]:9 150001.5
|
||||
(byte) plexSort::m#2 m zp[1]:9 41667.08333333333
|
||||
(byte) plexSort::nxt_idx
|
||||
(byte) plexSort::nxt_idx#0 nxt_idx zp[1]:22 30000.300000000003
|
||||
(byte) plexSort::nxt_idx#0 nxt_idx zp[1]:23 30000.300000000003
|
||||
(byte) plexSort::nxt_y
|
||||
(byte) plexSort::nxt_y#0 nxt_y zp[1]:23 150000.375
|
||||
(byte) plexSort::nxt_y#0 nxt_y zp[1]:22 150000.375
|
||||
(label) plexSort::plexFreePrepare1
|
||||
(label) plexSort::plexFreePrepare1_@1
|
||||
(label) plexSort::plexFreePrepare1_@2
|
||||
@ -246,9 +235,9 @@
|
||||
(byte) plexSort::s#2 reg byte x 200002.0
|
||||
(byte) plexSort::s#3 reg byte x 2050002.5
|
||||
(byte) plexSort::s#6 reg byte x 200002.0
|
||||
(volatile byte) plex_free_next loadstore zp[1]:20 42.48387096774193
|
||||
(volatile byte) plex_free_next loadstore zp[1]:18 42.48387096774193
|
||||
interrupt(KERNEL_MIN)(void()) plex_irq()
|
||||
(byte~) plex_irq::$4 zp[1]:25 11.0
|
||||
(byte~) plex_irq::$4 zp[1]:24 11.0
|
||||
(label) plex_irq::@1
|
||||
(label) plex_irq::@2
|
||||
(label) plex_irq::@3
|
||||
@ -261,42 +250,72 @@ interrupt(KERNEL_MIN)(void()) plex_irq()
|
||||
(byte) plex_irq::plexFreeNextYpos1_return
|
||||
(byte) plex_irq::plexFreeNextYpos1_return#0 reg byte x 4.800000000000001
|
||||
(byte) plex_irq::rasterY
|
||||
(volatile byte) plex_show_idx loadstore zp[1]:17 46.0909090909091
|
||||
(volatile byte) plex_sprite_idx loadstore zp[1]:18 45.387096774193544
|
||||
(volatile byte) plex_sprite_msb loadstore zp[1]:19 48.757575757575765
|
||||
(void()) plex_move()
|
||||
(byte~) plex_move::$4 reg byte a 200002.0
|
||||
(byte~) plex_move::$6 reg byte a 200002.0
|
||||
(byte~) plex_move::$7 reg byte a 200002.0
|
||||
(label) plex_move::@1
|
||||
(label) plex_move::@2
|
||||
(label) plex_move::@3
|
||||
(label) plex_move::@4
|
||||
(label) plex_move::@5
|
||||
(label) plex_move::@6
|
||||
(label) plex_move::@return
|
||||
(byte) plex_move::s
|
||||
(byte) plex_move::s#1 s zp[1]:9 150001.5
|
||||
(byte) plex_move::s#2 s zp[1]:9 42857.57142857143
|
||||
(byte) plex_move::y_idx
|
||||
(byte) plex_move::y_idx#0 reg byte x 2002.0
|
||||
(byte) plex_move::y_idx#1 reg byte x 14285.857142857143
|
||||
(byte) plex_move::y_idx#2 reg byte x 150502.0
|
||||
(volatile byte) plex_show_idx loadstore zp[1]:15 46.0909090909091
|
||||
(volatile byte) plex_sprite_idx loadstore zp[1]:16 45.387096774193544
|
||||
(volatile byte) plex_sprite_msb loadstore zp[1]:17 48.757575757575765
|
||||
(byte*) scroll_text_next
|
||||
(byte*) scroll_text_next#11 scroll_text_next zp[2]:3 44556.11111111111
|
||||
(byte*) scroll_text_next#12 scroll_text_next zp[2]:3 100001.0
|
||||
(byte*) scroll_text_next#13 scroll_text_next zp[2]:3 14290.666666666668
|
||||
(byte*) scroll_text_next#25 scroll_text_next zp[2]:3 551.0
|
||||
(byte*) scroll_text_next#4 scroll_text_next zp[2]:3 200002.0
|
||||
(byte) sin_idx
|
||||
(byte) sin_idx#10 sin_idx zp[1]:4 300.42857142857144
|
||||
(byte) sin_idx#12 sin_idx zp[1]:4 58.0
|
||||
(byte) sin_idx#10 sin_idx zp[1]:2 116.83333333333334
|
||||
(byte) sin_idx#12 sin_idx zp[1]:2 61.22222222222223
|
||||
(label) toSpritePtr1
|
||||
(byte) toSpritePtr1_return
|
||||
(const byte) toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)(const nomodify byte*) SPRITES/(byte) $40
|
||||
(byte*) toSpritePtr1_sprite
|
||||
|
||||
reg byte x [ main::s#2 main::s#1 ]
|
||||
zp[2]:2 [ main::xp#2 main::xp#1 ]
|
||||
reg byte x [ main::x#2 main::x#1 ]
|
||||
reg byte x [ main::s1#2 main::s1#1 ]
|
||||
reg byte x [ plexSort::s#3 plexSort::s#1 plexSort::s#6 ]
|
||||
reg byte x [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ]
|
||||
zp[1]:4 [ sin_idx#10 sin_idx#12 main::sprite#2 main::sprite#1 ]
|
||||
reg byte x [ plexSine::y_idx#2 plexSine::y_idx#0 plexSine::y_idx#1 ]
|
||||
reg byte y [ plexSine::sy#2 plexSine::sy#1 ]
|
||||
zp[1]:2 [ sin_idx#10 sin_idx#12 main::s#2 main::s#1 ]
|
||||
reg byte x [ plex_move::y_idx#2 plex_move::y_idx#0 plex_move::y_idx#1 ]
|
||||
zp[2]:3 [ scroll_text_next#12 scroll_text_next#11 scroll_text_next#25 scroll_text_next#13 scroll_text_next#4 ]
|
||||
reg byte x [ plexInit::i#2 plexInit::i#1 ]
|
||||
zp[1]:5 [ font_2x2_to_sprites::c#2 font_2x2_to_sprites::c#1 plexSort::m#2 plexSort::m#1 ]
|
||||
reg byte x [ font_2x2_to_sprites::i#2 font_2x2_to_sprites::i#1 ]
|
||||
zp[2]:6 [ font_2x2::next_2x2_left#0 font_2x2::next_2x2#1 font_2x2_to_sprites::char_current#2 font_2x2_to_sprites::char_current#1 ]
|
||||
zp[2]:8 [ font_2x2::next_original#4 font_2x2::next_original#1 font_2x2_to_sprites::sprite#4 font_2x2_to_sprites::sprite#1 ]
|
||||
zp[1]:10 [ font_2x2::c#11 font_2x2::c#1 font_2x2_to_sprites::sprite_idx#4 font_2x2_to_sprites::sprite_idx#3 font_2x2_to_sprites::sprite_idx#1 ]
|
||||
zp[2]:5 [ font_2x2::next_2x2_left#0 font_2x2::next_2x2#1 font_2x2_to_sprites::char_current#2 font_2x2_to_sprites::char_current#1 ]
|
||||
zp[2]:7 [ font_2x2::next_original#4 font_2x2::next_original#1 font_2x2_to_sprites::sprite#4 font_2x2_to_sprites::sprite#1 ]
|
||||
zp[1]:9 [ font_2x2::c#11 font_2x2::c#1 font_2x2_to_sprites::c#2 font_2x2_to_sprites::c#1 plex_move::s#2 plex_move::s#1 plexSort::m#2 plexSort::m#1 ]
|
||||
zp[1]:10 [ font_2x2::l#2 font_2x2::l#1 font_2x2_to_sprites::sprite_idx#4 font_2x2_to_sprites::sprite_idx#3 font_2x2_to_sprites::sprite_idx#1 ]
|
||||
zp[2]:11 [ font_2x2::next_2x2_left#7 font_2x2::next_2x2_left#10 font_2x2::next_2x2_left#8 font_2x2::next_2x2_left#1 font_2x2_to_sprites::char_left#3 font_2x2_to_sprites::char_left#6 font_2x2_to_sprites::char_left#4 font_2x2_to_sprites::char_left#1 ]
|
||||
zp[2]:13 [ font_2x2::next_2x2_right#7 font_2x2::next_2x2_right#0 font_2x2::next_2x2_right#8 font_2x2::next_2x2_right#1 font_2x2_to_sprites::char_right#3 font_2x2_to_sprites::char_right#0 font_2x2_to_sprites::char_right#4 font_2x2_to_sprites::char_right#1 ]
|
||||
zp[2]:15 [ font_2x2::glyph_bits_2x2#3 font_2x2::glyph_bits_2x2#2 font_2x2::$5 font_2x2::$7 font_2x2::glyph_bits_2x2#1 ]
|
||||
reg byte y [ font_2x2::b#2 font_2x2::b#1 ]
|
||||
reg byte x [ font_2x2::glyph_bit#0 ]
|
||||
zp[1]:17 [ plex_show_idx ]
|
||||
zp[1]:18 [ plex_sprite_idx ]
|
||||
zp[1]:19 [ plex_sprite_msb ]
|
||||
zp[1]:20 [ plex_free_next ]
|
||||
zp[1]:21 [ framedone ]
|
||||
reg byte a [ main::$12 ]
|
||||
zp[1]:22 [ plexSort::nxt_idx#0 font_2x2::l#2 font_2x2::l#1 ]
|
||||
zp[1]:23 [ plexSort::nxt_y#0 font_2x2::l2#8 font_2x2::l2#9 font_2x2::l2#1 ]
|
||||
zp[1]:15 [ plex_show_idx ]
|
||||
zp[1]:16 [ plex_sprite_idx ]
|
||||
zp[1]:17 [ plex_sprite_msb ]
|
||||
zp[1]:18 [ plex_free_next ]
|
||||
zp[1]:19 [ frame_done ]
|
||||
reg byte a [ main::$7 ]
|
||||
reg byte y [ main::$12 ]
|
||||
zp[2]:20 [ main::$13 font_2x2::glyph_bits_2x2#3 font_2x2::glyph_bits_2x2#2 font_2x2::$5 font_2x2::$7 font_2x2::glyph_bits_2x2#1 ]
|
||||
zp[1]:22 [ plexSort::nxt_y#0 font_2x2::glyph_bits#2 font_2x2::glyph_bits#0 font_2x2::glyph_bits#1 ]
|
||||
reg byte x [ plexSort::s#2 ]
|
||||
zp[1]:24 [ font_2x2_to_sprites::$3 font_2x2::glyph_bits#2 font_2x2::glyph_bits#0 font_2x2::glyph_bits#1 ]
|
||||
reg byte a [ plex_move::$6 ]
|
||||
reg byte a [ plex_move::$7 ]
|
||||
reg byte a [ plex_move::$4 ]
|
||||
zp[1]:23 [ font_2x2_to_sprites::$3 plexSort::nxt_idx#0 font_2x2::l2#8 font_2x2::l2#9 font_2x2::l2#1 ]
|
||||
reg byte y [ font_2x2_to_sprites::sprite_idx#2 ]
|
||||
reg byte a [ font_2x2::$1 ]
|
||||
reg byte a [ font_2x2::$12 ]
|
||||
@ -304,8 +323,8 @@ reg byte y [ font_2x2::$11 ]
|
||||
reg byte a [ font_2x2::$15 ]
|
||||
reg byte y [ font_2x2::$14 ]
|
||||
reg byte x [ plex_irq::plexFreeNextYpos1_return#0 ]
|
||||
zp[1]:25 [ plex_irq::$4 ]
|
||||
zp[1]:26 [ plexShowSprite::plex_sprite_idx2#0 ]
|
||||
zp[1]:24 [ plex_irq::$4 ]
|
||||
zp[1]:25 [ plexShowSprite::plex_sprite_idx2#0 ]
|
||||
reg byte a [ plexShowSprite::plexFreeAdd1_ypos#0 ]
|
||||
reg byte a [ plexShowSprite::plexFreeAdd1_$0 ]
|
||||
reg byte a [ plexShowSprite::plexFreeAdd1_$1 ]
|
||||
|
Loading…
Reference in New Issue
Block a user