Minor optimizations to the font example
This commit is contained in:
parent
b8d06b7e6e
commit
ab4a731300
|
@ -7,33 +7,25 @@
|
|||
|
||||
%RTN { JMP2r }
|
||||
%TOS { #00 SWP }
|
||||
%INCR { SWP #01 ADD SWP }
|
||||
%GET-ITERATORS { SWP2k POP SWP POP }
|
||||
|
||||
( devices )
|
||||
|
||||
|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
|
||||
|10 @Console [ &vector $2 &read $1 &pad $5 &write $1 ]
|
||||
|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
|
||||
|80 @Controller [ &vector $2 &button $1 &key $1 ]
|
||||
|a0 @File [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]
|
||||
|
||||
( variables )
|
||||
|
||||
|0000
|
||||
|
||||
@position
|
||||
&x $2
|
||||
&y $2
|
||||
|
||||
( init )
|
||||
|
||||
|0100 ( -> )
|
||||
|
||||
( theme )
|
||||
#0f73 .System/r DEO2
|
||||
#0fe3 .System/g DEO2
|
||||
#0fc3 .System/b DEO2
|
||||
#0f7f .System/r DEO2
|
||||
#0fe0 .System/g DEO2
|
||||
#0fc0 .System/b DEO2
|
||||
|
||||
( load font )
|
||||
#4000 .File/length DEO2
|
||||
|
@ -66,34 +58,28 @@ BRK
|
|||
&sprite ( char color -- )
|
||||
STH
|
||||
( get addr ) STHk TOS #0020 ** ;font-data #0100 ++ ++ .Screen/addr DEO2
|
||||
( get width ) STHkr TOS ;font-data ++ LDA TOS
|
||||
SWPr
|
||||
( top-left ) STHkr .Screen/color DEO
|
||||
( left-top ) STHkr .Screen/color DEO
|
||||
.Screen/y DEI2 #0008 ++ .Screen/y DEO2
|
||||
.Screen/addr DEI2 #0010 ++ .Screen/addr DEO2
|
||||
( bottom-left ) STHkr .Screen/color DEO
|
||||
( left-bottom ) STHkr .Screen/color DEO
|
||||
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
|
||||
.Screen/addr DEI2 #0008 ++ .Screen/addr DEO2
|
||||
( bottom-right ) STHkr .Screen/color DEO
|
||||
.Screen/y DEI2 #0008 -- .Screen/y DEO2
|
||||
.Screen/addr DEI2 #0010 -- .Screen/addr DEO2
|
||||
( top-right ) STHkr .Screen/color DEO
|
||||
DUP #09 < ,&thin JCN
|
||||
.Screen/addr DEI2 #0008 -- .Screen/addr DEO2
|
||||
( right-top ) STHkr .Screen/color DEO
|
||||
.Screen/addr DEI2 #0010 ++ .Screen/addr DEO2
|
||||
.Screen/y DEI2 #0008 ++ .Screen/y DEO2
|
||||
( right-bottom ) STHkr .Screen/color DEO
|
||||
.Screen/y DEI2 #0008 -- .Screen/y DEO2 &thin
|
||||
SWPr
|
||||
( get width ) STHkr TOS ;font-data ++ LDA TOS .Screen/x DEI2 ++ #0008 -- .Screen/x DEO2
|
||||
( use width ) .Screen/x DEI2 ++ #0008 -- .Screen/x DEO2
|
||||
POPr POPr
|
||||
RTN
|
||||
|
||||
RTN
|
||||
|
||||
@font-hex
|
||||
003c 464a 5262 3c00 0018 0808 0808 1c00
|
||||
003c 4202 3c40 7e00 003c 421c 0242 3c00
|
||||
000c 1424 447e 0400 007e 407c 0242 3c00
|
||||
003c 407c 4242 3c00 007e 0204 0810 1000
|
||||
003c 423c 4242 3c00 003c 4242 3e02 3c00
|
||||
003c 4242 7e42 4200 007c 427c 4242 7c00
|
||||
003c 4240 4042 3c00 007c 4242 4242 7c00
|
||||
007e 4078 4040 7e00 007e 4078 4040 4000
|
||||
|
||||
@body
|
||||
4927 6c6c 206d 616b 6520 6120 736f 756e
|
||||
6420 7468 6174 2773 2073 6f20 616c 6f6e
|
||||
|
|
Loading…
Reference in New Issue