(label) @1
(label) @2
(label) @3
(label) @4
(label) @5
(label) @begin
(label) @end
(const byte) BLACK = (byte) 0
(const byte*) CIA1_INTERRUPT = (byte*) 56333
(const byte*) CIA2_PORT_A = (byte*) 56576
(const byte*) CIA2_PORT_A_DDR = (byte*) 56578
(const byte) CIA_INTERRUPT_CLEAR = (byte) $7f
(const byte*) D018 = (byte*) 53272
(const void()**) HARDWARE_IRQ = (void()**) 65534
(const byte*) IRQ_ENABLE = (byte*) 53274
(const byte) IRQ_RASTER = (byte) 1
(const byte) IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS+(byte) $13
(const byte*) IRQ_STATUS = (byte*) 53273
(const byte*) PLAYFIELD_CHARSET = (byte*) 10240
(const byte*) PLAYFIELD_SCREEN_1 = (byte*) 1024
(const byte*) PLAYFIELD_SCREEN_2 = (byte*) 11264
(const byte*) PLAYFIELD_SPRITES = (byte*) 8192
(const byte*) PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1+(const word) SPRITE_PTRS
(const byte*) PLAYFIELD_SPRITE_PTRS_2 = (const byte*) PLAYFIELD_SCREEN_2+(const word) SPRITE_PTRS
(const byte*) PROCPORT = (byte*) 1
(const byte*) PROCPORT_DDR = (byte*) 0
(const byte) PROCPORT_DDR_MEMORY_MASK = (byte) 7
(const byte) PROCPORT_RAM_IO = (byte) 5
(const byte*) RASTER = (byte*) 53266
(const byte*) SIN[(number) $100]  = kickasm {{ .var AMPL = 200-21
    .for(var i=0; i<256; i++) {
  	  .byte 51+AMPL/2+sin(toRadians([i*360]/256))*AMPL/2
    }
 }}
(const byte*) SIN_SPRITE = (byte*) 10240
(const byte*) SPRITES_COLS = (byte*) 53287
(const byte*) SPRITES_ENABLE = (byte*) 53269
(const byte*) SPRITES_EXPAND_X = (byte*) 53277
(const byte*) SPRITES_EXPAND_Y = (byte*) 53271
(const byte) SPRITES_FIRST_YPOS = (byte) $31
(const byte*) SPRITES_MC = (byte*) 53276
(const byte*) SPRITES_XPOS = (byte*) 53248
(const byte*) SPRITES_YPOS = (byte*) 53249
(const word) SPRITE_PTRS = (word) $3f8
(const byte*) VIC_CONTROL = (byte*) 53265
(byte) irq_cnt loadstore zp[1]:8 6.0
(byte) irq_raster_next loadstore zp[1]:5 1.0
(byte) irq_sprite_ptr loadstore zp[1]:7 1.5555555555555558
(byte) irq_sprite_ypos loadstore zp[1]:6 14.0
(void()) loop()
(byte~) loop::$1 reg byte a 202.0
(label) loop::@1
(label) loop::@2
(label) loop::@3
(label) loop::@4
(label) loop::@5
(byte) loop::idx
(byte) loop::idx#0 reg byte x 22.0
(byte) loop::idx#1 reg byte x 67.33333333333333
(byte) loop::idx#2 reg byte x 104.66666666666666
(byte) loop::s
(byte) loop::s#1 s zp[1]:2 151.5
(byte) loop::s#2 s zp[1]:2 75.75
(void()) main()
(byte~) main::$6 reg byte a 22.0
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@4
(label) main::@5
(label) main::@6
(label) main::@return
(byte) main::s
(byte) main::s#1 reg byte y 16.5
(byte) main::s#2 reg byte y 6.6
(byte) main::s2
(byte) main::s2#0 reg byte x 16.5
(label) main::toD0181
(byte*) main::toD0181_gfx
(byte) main::toD0181_return
(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) PLAYFIELD_SCREEN_1&(word) $3fff*(byte) 4|>(word)(const byte*) PLAYFIELD_CHARSET/(byte) 4&(byte) $f
(byte*) main::toD0181_screen
(label) main::toSpritePtr2
(byte) main::toSpritePtr2_return
(const byte) main::toSpritePtr2_return#0 toSpritePtr2_return = (byte)(word)(const byte*) SIN_SPRITE/(byte) $40
(byte*) main::toSpritePtr2_sprite
(label) main::vicSelectGfxBank1
(label) main::vicSelectGfxBank1_@1
(byte*) main::vicSelectGfxBank1_gfx
(label) main::vicSelectGfxBank1_toDd001
(byte*) main::vicSelectGfxBank1_toDd001_gfx
(byte) main::vicSelectGfxBank1_toDd001_return
(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte) 3
(byte) main::xpos
(byte) main::xpos#1 xpos zp[1]:3 5.5
(byte) main::xpos#2 xpos zp[1]:3 4.125
(byte) main::ypos
(byte) main::ypos#1 ypos zp[1]:2 7.333333333333333
(byte) main::ypos#2 ypos zp[1]:2 3.666666666666667
(byte) render_screen_showing loadstore zp[1]:4 0.4
(byte) sin_idx
(byte) sin_idx#10 sin_idx zp[1]:3 3.666666666666667
(byte) sin_idx#3 sin_idx zp[1]:3 22.0
(void()) sprites_init()
(label) sprites_init::@1
(label) sprites_init::@return
(byte) sprites_init::s
(byte) sprites_init::s#1 reg byte y 16.5
(byte) sprites_init::s#2 reg byte y 8.8
(byte) sprites_init::s2
(byte) sprites_init::s2#0 reg byte x 22.0
(byte) sprites_init::xpos
(byte) sprites_init::xpos#1 xpos zp[1]:3 7.333333333333333
(byte) sprites_init::xpos#2 xpos zp[1]:3 8.25
interrupt(HARDWARE_CLOBBER)(void()) sprites_irq()
(byte~) sprites_irq::$0 reg byte x 4.0
(label) sprites_irq::@1
(label) sprites_irq::@10
(label) sprites_irq::@11
(label) sprites_irq::@2
(label) sprites_irq::@3
(label) sprites_irq::@4
(label) sprites_irq::@5
(label) sprites_irq::@6
(label) sprites_irq::@7
(label) sprites_irq::@8
(label) sprites_irq::@9
(label) sprites_irq::@return
(byte) sprites_irq::ptr
(byte) sprites_irq::ptr#0 reg byte x 2.5
(byte) sprites_irq::ptr#1 reg byte x 2.6666666666666665
(byte) sprites_irq::ptr#2 reg byte a 4.0
(byte) sprites_irq::ptr#3 reg byte a 2.6666666666666665
(byte) sprites_irq::ptr#4 reg byte a 4.0
(byte) sprites_irq::raster_sprite_gfx_modify loadstore zp[1]:9 6.5
(label) sprites_irq::toSpritePtr2
(byte) sprites_irq::toSpritePtr2_return
(const byte) sprites_irq::toSpritePtr2_return#0 toSpritePtr2_return = (byte)(word)(const byte*) PLAYFIELD_SPRITES/(byte) $40
(byte*) sprites_irq::toSpritePtr2_sprite
(byte) sprites_irq::ypos
(byte) sprites_irq::ypos#0 reg byte a 2.5
(void()) sprites_irq_init()
(label) sprites_irq_init::@return
(label) toSpritePtr1
(byte) toSpritePtr1_return
(const byte) toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)(const byte*) PLAYFIELD_SPRITES/(byte) $40
(byte*) toSpritePtr1_sprite

reg byte y [ main::s#2 main::s#1 ]
zp[1]:2 [ loop::s#2 loop::s#1 main::ypos#2 main::ypos#1 ]
reg byte x [ loop::idx#2 loop::idx#0 loop::idx#1 ]
reg byte y [ sprites_init::s#2 sprites_init::s#1 ]
zp[1]:3 [ sprites_init::xpos#2 sprites_init::xpos#1 sin_idx#10 sin_idx#3 main::xpos#2 main::xpos#1 ]
zp[1]:4 [ render_screen_showing ]
zp[1]:5 [ irq_raster_next ]
zp[1]:6 [ irq_sprite_ypos ]
zp[1]:7 [ irq_sprite_ptr ]
zp[1]:8 [ irq_cnt ]
reg byte x [ main::s2#0 ]
reg byte a [ main::$6 ]
reg byte a [ loop::$1 ]
reg byte x [ sprites_init::s2#0 ]
reg byte a [ sprites_irq::ypos#0 ]
reg byte x [ sprites_irq::$0 ]
zp[1]:9 [ sprites_irq::raster_sprite_gfx_modify ]
reg byte x [ sprites_irq::ptr#0 ]
reg byte a [ sprites_irq::ptr#3 ]
reg byte a [ sprites_irq::ptr#4 ]
reg byte x [ sprites_irq::ptr#1 ]
reg byte a [ sprites_irq::ptr#2 ]
