77 lines
1.6 KiB
Plaintext
77 lines
1.6 KiB
Plaintext
( dev/screen )
|
|
|
|
&Screen { width 2 height 2 pad 4 x 2 y 2 color 1 }
|
|
&Sprite { pad 8 x 2 y 2 addr 2 color 1 }
|
|
|
|
;timer 1
|
|
;centerx 2 ;centery 2 ;i 2 ;j 1
|
|
|
|
|0100 @RESET
|
|
|
|
( find screen center )
|
|
~dev/screen.width #0002 DIV2 =centerx
|
|
~dev/screen.height #0002 DIV2 =centery
|
|
|
|
( draw hor line )
|
|
#0000 =i
|
|
~centery =dev/screen.y
|
|
@draw-hor
|
|
#03 ~i =dev/screen.x =dev/screen.color
|
|
~i #0002 ADD2 =i ( increment )
|
|
~i ~dev/screen.width LTH2 ,draw-hor ROT JMP? POP2
|
|
|
|
( draw ver line )
|
|
#0000 =i
|
|
~centerx =dev/screen.x
|
|
@draw-ver
|
|
#03 ~i =dev/screen.y =dev/screen.color
|
|
~i #0002 ADD2 =i ( increment )
|
|
~i ~dev/screen.width LTH2 ,draw-ver ROT JMP? POP2
|
|
|
|
( draw blending modes )
|
|
@draw-blends
|
|
~j ,icon #00 ~j #0008 MUL2 ~dev/screen.height #0010 SUB2 ,draw-sprite JSR
|
|
~j #01 ADD =j
|
|
~j #10 LTH ,draw-blends ROT JMP? POP2
|
|
|
|
( draw pixel in the middle )
|
|
#01 ~centerx ~centery =dev/screen.y =dev/screen.x =dev/screen.color
|
|
|
|
BRK
|
|
|
|
@draw-sprite
|
|
=dev/sprite.y
|
|
=dev/sprite.x
|
|
=dev/sprite.addr
|
|
=dev/sprite.color
|
|
RTS
|
|
|
|
@icon [ 3c7e e7c3 c3e7 7e3c ]
|
|
|
|
|c000 @FRAME
|
|
|
|
( update colors every 40 frames )
|
|
~timer #40 NEQ ,skip1 ROT JMP? POP2
|
|
#0fac =fffa #f0bb =fffc #f053 =fff8
|
|
@skip1
|
|
~timer #80 NEQ ,skip2 ROT JMP? POP2
|
|
#00fc =fffc #f0bb =fff8 #f053 =fffa
|
|
@skip2
|
|
~timer #c0 NEQ ,skip3 ROT JMP? POP2
|
|
#000f =fff8 #0f0f =fffa #ff00 =fffc
|
|
@skip3
|
|
~timer #00 NEQ ,skip4 ROT JMP? POP2
|
|
#f0ac =fff8 #f0bb =fffa #f053 =fffc
|
|
@skip4
|
|
~timer #01 ADD =timer
|
|
|
|
BRK
|
|
|
|
|d000 @ERROR BRK
|
|
|
|
|FF10 ;dev/screen Screen
|
|
|FF20 ;dev/sprite Sprite
|
|
|
|
|FFF0 .RESET .FRAME .ERROR ( vectors )
|
|
|FFF8 [ f0ac f0bb f053 ] ( palette )
|