mirror of https://git.sr.ht/~rabbits/uxn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
1.7 KiB
94 lines
1.7 KiB
( dev/console ) |
|
|
|
%RTN { JMP2r } |
|
%PRINT { ;print JSR2 } |
|
%BR { #0a .Console/write DEO } |
|
|
|
( devices ) |
|
|
|
|10 @Console [ &pad $8 &write $1 ] |
|
|
|
( variables ) |
|
|
|
|0000 |
|
|
|
@number [ &started $1 ] |
|
|
|
( init ) |
|
|
|
|0100 ( -> ) |
|
|
|
;char-txt PRINT #42 .Console/write DEO BR |
|
;byte-txt PRINT #ab ;print-byte JSR2 BR |
|
;short-txt PRINT #cdef ;print-short JSR2 BR |
|
;string-txt PRINT ;hello-word ;print JSR2 BR |
|
|
|
;hello-word ;print JSR2 |
|
#ffff ;print-short JSR2 |
|
;is-word ;print JSR2 |
|
#ffff ;print-short-decimal JSR2 |
|
|
|
BRK |
|
|
|
@print ( addr* -- ) |
|
|
|
&loop |
|
( send ) LDAk .Console/write DEO |
|
( incr ) INC2 |
|
( loop ) LDAk ,&loop JCN |
|
POP2 |
|
|
|
RTN |
|
|
|
@print-short ( short* -- ) |
|
LIT '0 .Console/write DEO |
|
LIT 'x .Console/write DEO |
|
OVR #04 SFT ,&hex JSR |
|
SWP #0f AND ,&hex JSR |
|
DUP #04 SFT ,&hex JSR |
|
#0f AND ,&hex JMP |
|
|
|
&hex |
|
#30 ADD DUP #3a LTH ,¬-alpha JCN |
|
#27 ADD |
|
¬-alpha |
|
.Console/write DEO |
|
RTN |
|
|
|
@print-byte ( byte -- ) |
|
LIT '0 .Console/write DEO |
|
LIT 'x .Console/write DEO |
|
DUP #04 SFT ,&hex JSR |
|
#0f AND ,&hex JMP |
|
|
|
&hex |
|
#30 ADD DUP #39 GTH #27 MUL ADD .Console/write DEO |
|
RTN |
|
|
|
@print-short-decimal ( short -- ) |
|
#00 .number/started STZ |
|
DUP2 #2710 DIV2 DUP2 ,&digit JSR #2710 MUL2 SUB2 |
|
DUP2 #03e8 DIV2 DUP2 ,&digit JSR #03e8 MUL2 SUB2 |
|
DUP2 #0064 DIV2 DUP2 ,&digit JSR #0064 MUL2 SUB2 |
|
DUP2 #000a DIV2 DUP2 ,&digit JSR #000a MUL2 SUB2 |
|
,&digit JSR |
|
.number/started LDZ ,&end JCN |
|
LIT '0 .Console/write DEO |
|
&end |
|
RTN |
|
|
|
&digit |
|
NIP |
|
DUP .number/started LDZ ORA #02 JCN |
|
POP JMP2r |
|
LIT '0 ADD .Console/write DEO |
|
#01 .number/started STZ |
|
RTN |
|
|
|
@char-txt "char: 20 $1 |
|
@byte-txt "byte: 20 $1 |
|
@short-txt "short: 20 $1 |
|
@string-txt "string: 20 $1 |
|
|
|
@hello-word "hello 20 "World! 0a 00 |
|
@is-word 20 "is 20 00
|
|
|