mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-06-03 07:29:37 +00:00
143 lines
5.8 KiB
Plaintext
143 lines
5.8 KiB
Plaintext
__constant char * const BORDER_COLOR = (char *) 53280
|
|
__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320
|
|
__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f
|
|
__constant char * const D011 = (char *) 53265
|
|
__constant const char GREEN = 5
|
|
__constant char * const IRQ_ENABLE = (char *) 53274
|
|
__constant const char IRQ_RASTER = 1
|
|
__constant char * const IRQ_STATUS = (char *) 53273
|
|
__constant void (** const KERNEL_IRQ)() = (void (**)()) 788
|
|
__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
|
|
__constant const char PLEX_COUNT = $20
|
|
__constant char PLEX_FREE_YPOS[8] = { fill( 8, 0) }
|
|
__constant char PLEX_PTR[PLEX_COUNT] = { fill( PLEX_COUNT, 0) }
|
|
__loadstore char * volatile PLEX_SCREEN_PTR // zp[2]:13 33.45454545454545
|
|
__constant char PLEX_SORTED_IDX[PLEX_COUNT] = { fill( PLEX_COUNT, 0) }
|
|
__constant unsigned int PLEX_XPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) }
|
|
__constant char PLEX_YPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) }
|
|
__constant char * const RASTER = (char *) 53266
|
|
__constant const char RED = 2
|
|
__constant char *SCREEN = (char *) 1024
|
|
__constant char SPRITE[$40] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff))
|
|
.for (var y=0; y<21; y++)
|
|
.for (var x=0;x<3; x++)
|
|
.byte pic.getSinglecolorByte(x,y)
|
|
}}
|
|
__constant char * const SPRITES_COLOR = (char *) 53287
|
|
__constant char * const SPRITES_ENABLE = (char *) 53269
|
|
__constant char * const SPRITES_XMSB = (char *) 53264
|
|
__constant char * const SPRITES_XPOS = (char *) 53248
|
|
__constant char * const SPRITES_YPOS = (char *) 53249
|
|
__constant char * const VICII_CONTROL1 = (char *) 53265
|
|
__constant const char VICII_DEN = $10
|
|
__constant const char VICII_RSEL = 8
|
|
__constant const char WHITE = 1
|
|
__constant char YSIN[$100] = kickasm {{ .fill $100, round(139.5+89.5*sin(toRadians(360*i/256)))
|
|
}}
|
|
void __start()
|
|
__loadstore volatile bool framedone // zp[1]:7 1222.8888888888887
|
|
void init()
|
|
char init::$3 // reg byte a 2002.0
|
|
char init::ss
|
|
char init::ss#1 // reg byte x 1501.5
|
|
char init::ss#2 // reg byte x 1501.5
|
|
char init::sx
|
|
char init::sx#1 // reg byte x 1501.5
|
|
char init::sx#2 // reg byte x 800.8
|
|
unsigned int init::xp
|
|
unsigned int init::xp#1 // xp zp[2]:5 667.3333333333334
|
|
unsigned int init::xp#2 // xp zp[2]:5 750.75
|
|
void loop()
|
|
char loop::sin_idx
|
|
char loop::sin_idx#1 // sin_idx zp[1]:8 400.4
|
|
char loop::sin_idx#6 // sin_idx zp[1]:8 333.6666666666667
|
|
char loop::sy
|
|
char loop::sy#1 // reg byte y 15001.5
|
|
char loop::sy#2 // reg byte y 10001.0
|
|
char loop::y_idx
|
|
char loop::y_idx#1 // reg byte x 6667.333333333333
|
|
char loop::y_idx#2 // reg byte x 15502.0
|
|
char loop::y_idx#3 // reg byte x 2002.0
|
|
void main()
|
|
void plexInit(char *screen)
|
|
char plexInit::i
|
|
char plexInit::i#1 // reg byte x 15001.5
|
|
char plexInit::i#2 // reg byte x 20002.0
|
|
char *plexInit::plexSetScreen1_screen
|
|
char *plexInit::screen
|
|
void plexShowSprite()
|
|
char plexShowSprite::$10 // reg byte x 101.0
|
|
char plexShowSprite::$2 // reg byte a 202.0
|
|
char plexShowSprite::$4 // reg byte x 202.0
|
|
char plexShowSprite::$5 // reg byte a 202.0
|
|
char plexShowSprite::$8 // reg byte a 202.0
|
|
char plexShowSprite::plexFreeAdd1_$0 // reg byte a 202.0
|
|
char plexShowSprite::plexFreeAdd1_$1 // reg byte x 202.0
|
|
char plexShowSprite::plexFreeAdd1_$2 // reg byte a 202.0
|
|
char plexShowSprite::plexFreeAdd1_ypos
|
|
char plexShowSprite::plexFreeAdd1_ypos#0 // reg byte a 151.5
|
|
char plexShowSprite::plex_sprite_idx2
|
|
char plexShowSprite::plex_sprite_idx2#0 // plex_sprite_idx2 zp[1]:15 27.545454545454547
|
|
char plexShowSprite::xpos_idx
|
|
char plexShowSprite::xpos_idx#0 // reg byte a 202.0
|
|
char plexShowSprite::ypos
|
|
void plexSort()
|
|
char plexSort::m
|
|
char plexSort::m#1 // m zp[1]:2 1500001.5
|
|
char plexSort::m#2 // m zp[1]:2 416667.0833333334
|
|
char plexSort::nxt_idx
|
|
char plexSort::nxt_idx#0 // nxt_idx zp[1]:4 300000.30000000005
|
|
char plexSort::nxt_y
|
|
char plexSort::nxt_y#0 // nxt_y zp[1]:3 1500000.375
|
|
char plexSort::plexFreePrepare1_s
|
|
char plexSort::plexFreePrepare1_s#1 // reg byte x 1500001.5
|
|
char plexSort::plexFreePrepare1_s#2 // reg byte x 1500001.5
|
|
char plexSort::s
|
|
char plexSort::s#1 // reg byte x 1.3666668333333332E7
|
|
char plexSort::s#2 // reg byte x 2000002.0
|
|
char plexSort::s#3 // reg byte x 2.05000025E7
|
|
char plexSort::s#6 // reg byte x 2000002.0
|
|
__loadstore volatile char plex_free_next // zp[1]:10 332.80645161290323
|
|
__interrupt(rom_min_c64) void plex_irq()
|
|
char plex_irq::$4 // zp[1]:16 11.0
|
|
char plex_irq::plexFreeNextYpos1_return
|
|
char plex_irq::plexFreeNextYpos1_return#0 // reg byte x 4.0
|
|
char plex_irq::rasterY
|
|
__loadstore volatile char plex_show_idx // zp[1]:12 309.44117647058823
|
|
__loadstore volatile char plex_sprite_idx // zp[1]:9 335.7096774193549
|
|
__loadstore volatile char plex_sprite_msb // zp[1]:11 321.4848484848485
|
|
|
|
reg byte x [ init::sx#2 init::sx#1 ]
|
|
zp[2]:5 [ init::xp#2 init::xp#1 ]
|
|
reg byte x [ init::ss#2 init::ss#1 ]
|
|
zp[1]:8 [ loop::sin_idx#6 loop::sin_idx#1 ]
|
|
reg byte x [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ]
|
|
reg byte y [ loop::sy#2 loop::sy#1 ]
|
|
reg byte x [ plexInit::i#2 plexInit::i#1 ]
|
|
zp[1]:2 [ plexSort::m#2 plexSort::m#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[2]:13 [ PLEX_SCREEN_PTR ]
|
|
zp[1]:12 [ plex_show_idx ]
|
|
zp[1]:9 [ plex_sprite_idx ]
|
|
zp[1]:11 [ plex_sprite_msb ]
|
|
zp[1]:10 [ plex_free_next ]
|
|
zp[1]:7 [ framedone ]
|
|
reg byte x [ plex_irq::plexFreeNextYpos1_return#0 ]
|
|
zp[1]:16 [ plex_irq::$4 ]
|
|
zp[1]:15 [ plexShowSprite::plex_sprite_idx2#0 ]
|
|
reg byte a [ plexShowSprite::plexFreeAdd1_ypos#0 ]
|
|
reg byte a [ plexShowSprite::plexFreeAdd1_$0 ]
|
|
reg byte x [ plexShowSprite::plexFreeAdd1_$1 ]
|
|
reg byte a [ plexShowSprite::plexFreeAdd1_$2 ]
|
|
reg byte a [ plexShowSprite::xpos_idx#0 ]
|
|
reg byte x [ plexShowSprite::$10 ]
|
|
reg byte a [ plexShowSprite::$2 ]
|
|
reg byte a [ plexShowSprite::$8 ]
|
|
reg byte x [ plexShowSprite::$4 ]
|
|
reg byte a [ plexShowSprite::$5 ]
|
|
reg byte a [ init::$3 ]
|
|
zp[1]:4 [ plexSort::nxt_idx#0 ]
|
|
zp[1]:3 [ plexSort::nxt_y#0 ]
|
|
reg byte x [ plexSort::s#2 ]
|