... | ... |
@@ -8,7 +8,6 @@ |
8 | 8 |
%RTN { JMP2r } |
9 | 9 |
%TOS { #00 SWP } |
10 | 10 |
%INCR { SWP #01 ADD SWP } |
11 |
-%GET-ITERATORS { SWP2k POP SWP POP } |
|
12 | 11 |
|
13 | 12 |
( devices ) |
14 | 13 |
|
... | ... |
@@ -20,10 +19,6 @@ |
20 | 19 |
|
21 | 20 |
|0000 |
22 | 21 |
|
23 |
-@position |
|
24 |
- &x $2 |
|
25 |
- &y $2 |
|
26 |
- |
|
27 | 22 |
( init ) |
28 | 23 |
|
29 | 24 |
|0100 ( -> ) |
... | ... |
@@ -37,73 +32,25 @@ |
37 | 32 |
#4000 .File/length DEO2 |
38 | 33 |
;font-path-large .File/name DEO2 |
39 | 34 |
;font-data .File/load DEO2 |
40 |
- |
|
41 |
- ( draw label ) |
|
42 |
- #0000 #0020 ;title #21 ;draw-uf3 JSR2 |
|
35 |
+ ( draw label ) |
|
36 |
+ #0000 #0020 ;title #21 ;draw-uf3 JSR2 |
|
43 | 37 |
|
44 | 38 |
( load font ) |
45 | 39 |
#4000 .File/length DEO2 |
46 | 40 |
;font-path-medium .File/name DEO2 |
47 | 41 |
;font-data .File/load DEO2 |
48 |
- |
|
49 |
- ( draw label ) |
|
50 |
- #0000 #0048 ;body #21 ;draw-uf2 JSR2 |
|
42 |
+ ( draw label ) |
|
43 |
+ #0000 #0048 ;body #21 ;draw-uf2 JSR2 |
|
51 | 44 |
|
52 | 45 |
( load font ) |
53 | 46 |
#4000 .File/length DEO2 |
54 | 47 |
;font-path-small .File/name DEO2 |
55 | 48 |
;font-data .File/load DEO2 |
56 |
- |
|
57 |
- ( draw label ) |
|
58 |
- #0010 #00b8 ;footer #21 ;draw-uf2 JSR2 |
|
49 |
+ ( draw label ) |
|
50 |
+ #0010 #00b8 ;footer #21 ;draw-uf2 JSR2 |
|
59 | 51 |
|
60 | 52 |
BRK |
61 | 53 |
|
62 |
-@draw-uf3 ( x* y* text* color -- ) |
|
63 |
- |
|
64 |
- STH |
|
65 |
- SWP2 .Screen/y DEO2 |
|
66 |
- SWP2 DUP2 .Screen/x DEO2 SWP2 |
|
67 |
- &loop |
|
68 |
- LDAk |
|
69 |
- DUP #0a ! ,&no-linebreak JCN |
|
70 |
- ( move down ) OVR2 .Screen/x DEO2 |
|
71 |
- ( incr y ) .Screen/y DEI2 #0010 ++ .Screen/y DEO2 |
|
72 |
- POP ,&continue JMP &no-linebreak |
|
73 |
- STHkr ,&sprite JSR |
|
74 |
- &continue |
|
75 |
- ( incr addr ) #0001 ++ |
|
76 |
- LDAk ,&loop JCN |
|
77 |
- POP2 POP2 POPr |
|
78 |
- RTN |
|
79 |
- |
|
80 |
- &sprite ( char color -- ) |
|
81 |
- POP |
|
82 |
- DUP TOS #0048 ** ;font-data #0100 ++ ++ .Screen/addr DEO2 |
|
83 |
- .Screen/x DEI2 .position/x STZ2 |
|
84 |
- .Screen/y DEI2 .position/y STZ2 |
|
85 |
- #00 #03 |
|
86 |
- &ver |
|
87 |
- #00 #03 |
|
88 |
- &hor |
|
89 |
- GET-ITERATORS |
|
90 |
- TOS #0008 ** .position/y LDZ2 ++ .Screen/y DEO2 |
|
91 |
- TOS #0008 ** .position/x LDZ2 ++ .Screen/x DEO2 |
|
92 |
- #21 .Screen/color DEO |
|
93 |
- .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2 |
|
94 |
- INCR |
|
95 |
- LTHk ,&hor JCN |
|
96 |
- POP2 |
|
97 |
- |
|
98 |
- INCR |
|
99 |
- LTHk ,&ver JCN |
|
100 |
- POP2 |
|
101 |
- TOS ;font-data ++ LDA TOS .position/x LDZ2 ++ .Screen/x DEO2 |
|
102 |
- .position/y LDZ2 .Screen/y DEO2 |
|
103 |
- RTN |
|
104 |
- |
|
105 |
-RTN |
|
106 |
- |
|
107 | 54 |
@draw-uf2 ( x* y* text* color -- ) |
108 | 55 |
|
109 | 56 |
STH |
... | ... |
@@ -147,6 +94,48 @@ RTN |
147 | 94 |
|
148 | 95 |
RTN |
149 | 96 |
|
97 |
+@draw-uf3 ( x* y* text* color -- ) |
|
98 |
+ |
|
99 |
+ STH |
|
100 |
+ SWP2 .Screen/y DEO2 |
|
101 |
+ SWP2 DUP2 .Screen/x DEO2 SWP2 |
|
102 |
+ &loop |
|
103 |
+ LDAk |
|
104 |
+ DUP #0a ! ,&no-linebreak JCN |
|
105 |
+ ( move down ) OVR2 .Screen/x DEO2 |
|
106 |
+ ( incr y ) .Screen/y DEI2 #0010 ++ .Screen/y DEO2 |
|
107 |
+ POP ,&continue JMP &no-linebreak |
|
108 |
+ STHkr ,&sprite JSR |
|
109 |
+ &continue |
|
110 |
+ ( incr addr ) #0001 ++ |
|
111 |
+ LDAk ,&loop JCN |
|
112 |
+ POP2 POP2 POPr |
|
113 |
+ RTN |
|
114 |
+ |
|
115 |
+ &sprite ( char color -- ) |
|
116 |
+ STH |
|
117 |
+ ( get addr ) DUP TOS #0048 ** ;font-data #0100 ++ ++ .Screen/addr DEO2 |
|
118 |
+ ( get width ) TOS ;font-data ++ LDA TOS |
|
119 |
+ #00 #03 |
|
120 |
+ &ver |
|
121 |
+ #00 #03 |
|
122 |
+ &hor |
|
123 |
+ #21 .Screen/color DEO |
|
124 |
+ .Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
125 |
+ .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2 |
|
126 |
+ INCR LTHk ,&hor JCN |
|
127 |
+ POP2 |
|
128 |
+ .Screen/y DEI2 #0008 ++ .Screen/y DEO2 |
|
129 |
+ .Screen/x DEI2 #0018 -- .Screen/x DEO2 |
|
130 |
+ INCR LTHk ,&ver JCN |
|
131 |
+ POP2 |
|
132 |
+ .Screen/y DEI2 #0018 -- .Screen/y DEO2 |
|
133 |
+ ( use width ) .Screen/x DEI2 ++ .Screen/x DEO2 |
|
134 |
+ POPr |
|
135 |
+ RTN |
|
136 |
+ |
|
137 |
+RTN |
|
138 |
+ |
|
150 | 139 |
@title |
151 | 140 |
5468 6520 466f 6720 486f 726e $1 |
152 | 141 |
|