Ported remaining examples to new simplified Console device

This commit is contained in:
Andrew Alderwick 2021-07-07 21:20:14 +01:00
parent d3aaf705f3
commit 358a902c16
2 changed files with 44 additions and 30 deletions

View File

@ -1,12 +1,12 @@
( dev/console )
%RTN { JMP2r }
%PRINT { .Console/string DEO2 }
%BR { #0a .Console/char DEO }
%PRINT { ;print JSR2 }
%BR { #0a .Console/write DEO }
( devices )
|10 @Console [ &pad $8 &char $1 &byte $1 &short $2 &string $2 ]
|10 @Console [ &pad $8 &write $1 ]
( variables )
@ -18,46 +18,51 @@
|0100 ( -> )
;char-txt PRINT #42 .Console/char DEO BR
;byte-txt PRINT #ab .Console/byte DEO BR
;short-txt PRINT #cdef .Console/short DEO2 BR
;string-txt PRINT ;hello-word .Console/string DEO2 BR
;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-hexadecimal JSR2
#ffff ;print-short JSR2
;is-word ;print JSR2
#ffff ;print-decimal JSR2
#ffff ;print-short-decimal JSR2
BRK
@print ( addr -- )
@print ( addr* -- )
&loop
( send ) DUP2 LDA .Console/char DEO
( send ) DUP2 LDA .Console/write DEO
( incr ) #0001 ADD2
( loop ) DUP2 LDA ,&loop JCN
POP2
RTN
@print-hexadecimal ( short -- )
LIT '0 .Console/char DEO
LIT 'x .Console/char DEO
DUP2 #0c SFT2 ,&digit JSR
DUP2 #08 SFT2 ,&digit JSR
DUP2 #04 SFT2 ,&digit JSR
,&digit JSR
@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 #39 GTH #27 MUL ADD .Console/write DEO
RTN
&digit
#0f AND DUP #0a LTH ,&not-alpha JCN
#27 ADD
&not-alpha
LIT '0 ADD .Console/char DEO
POP
@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-decimal ( short -- )
@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
@ -65,7 +70,7 @@ RTN
DUP2 #000a DIV2 DUP2 ,&digit JSR #000a MUL2 SUB2
,&digit JSR
.number/started LDZ ,&end JCN
LIT '0 .Console/char DEO
LIT '0 .Console/write DEO
&end
RTN
@ -73,7 +78,7 @@ RTN
SWP POP
DUP .number/started LDZ ORA #02 JCN
POP JMP2r
LIT '0 ADD .Console/char DEO
LIT '0 ADD .Console/write DEO
#01 .number/started STZ
RTN

View File

@ -6,7 +6,7 @@
( devices )
|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
|10 @Console [ &pad $8 &char $1 &byte $1 &short $2 &string $2 ]
|10 @Console [ &pad $8 &write $1 ]
|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
|a0 @File [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]
@ -30,13 +30,13 @@
.File/success DEI2 ORA ;on-success JCN2
;failedtxt .Console/string DEO2
;failedtxt ;print-string JSR2
BRK
@on-success ( -> )
;successtxt .Console/string DEO2
;successtxt ;print-string JSR2
( draw image )
MEMORY .Screen/addr DEO2
@ -62,6 +62,15 @@ BRK
BRK
@print-string ( ptr* -- )
LDAk DUP ,&keep-going JCN
POP POP2 JMP2r
&keep-going
.Console/write DEO
#0001 ADD2
,print-string JMP
@successtxt "Success! 09 $1
@failedtxt "Failed. 09 $1