uxn/examples/pixels.usm

43 lines
713 B
Plaintext

( pixels )
:dev/r fff8 ( std read port )
:dev/w fff9 ( std write port )
;x 2 ;y 2 ;color 1 ;alive 1
|0100 @RESET
#01 =dev/w ( set dev/write to screen )
#01 =color ( set color )
#0020 =x #0030 =y ( set origin )
#01 =alive ( set alive = true )
BRK
|c000 @FRAME
~alive #00 EQU BRK?
#01 ~color ~x ~y ,putpixel JSR
,move JSR
BRK
@move
~x #0001 ADD2 =x ( incr x )
~x #0040 LTH2 RTS? ( if x > 60 )
#0020 =x ( x = 0x0020 )
~y #0001 ADD2 =y ( incr y )
~y #0050 LTH2 RTS? ( y > 50 )
#00 ,alive STR ( alive = 0 )
RTS
@putpixel
IOW2 ( y short )
IOW2 ( x short )
IOW ( color byte )
IOW ( redraw byte )
RTS
|d000 @ERROR BRK
|FFFA .RESET .FRAME .ERROR