0
0
Fork 0
mirror of https://git.sr.ht/~rabbits/uxn synced 2024-11-08 15:25:05 +00:00
uxn/projects/tests/loop.usm
2021-03-14 15:17:00 -07:00

68 lines
No EOL
992 B
Text

( Loop )
;a { byte 1 } ;b { byte 1 } ;c { byte 1 }
|0100 @RESET
,slow-muljmp JSR2
,slow-jmppop JSR2
,slow-jmppop-rel JSR2
,fast-byte JSR2
,fast-short JSR2
BRK
|0200 @slow-muljmp ( type: padded muljmp )
$loop NOP
~a #01 ADD =a
~a #d0 LTH ^$loop MUL JMPS
~a =Console.byte
RTN
|0300 @slow-jmppop ( type: jmppop )
$loop
~b #01 ADD =b
,$loop ~b #d0 LTH JMP2? POP2
~b =Console.byte
RTN
|0400 @slow-jmppop-rel ( type: padded jmppop )
$loop NOP
~c #01 ADD =c
~c #d0 LTH ^$loop SWP JMPS? POP
~c =Console.byte
RTN
|0500 @fast-byte ( fast byte )
#00 #d0
$loop NOP
( incr ) SWP #01 ADD SWP
DUP2 LTH ^$loop SWP JMPS? POP
POP =Console.byte
RTN
|0600 @fast-short ( fast short )
#0000 #0d00
$loop NOP
( incr ) SWP2 #0001 ADD2 SWP2
OVR2 OVR2 LTH2 ^$loop SWP JMPS? POP
POP2 =Console.short
RTN
|c000 @FRAME
|d000 @ERROR
|FF00 ;Console { pad 8 char 1 byte 1 short 2 }
|FFF0 .RESET .FRAME .ERROR ( vectors )
|FFF8 [ 13fd 1ef3 1bf2 ] ( palette )