... | ... |
@@ -117,7 +117,7 @@ echo "Assembling(asma).." |
117 | 117 |
if [ $norun = 1 ]; then exit; fi |
118 | 118 |
|
119 | 119 |
echo "Assembling(piano).." |
120 |
-bin/uxncli bin/asma.rom projects/examples/demos/piano.tal bin/piano.rom 2> bin/piano.log |
|
120 |
+bin/uxncli bin/asma.rom projects/software/piano.tal bin/piano.rom 2> bin/piano.log |
|
121 | 121 |
|
122 | 122 |
echo "Running.." |
123 | 123 |
cd bin |
... | ... |
@@ -130,11 +130,11 @@ JMP2r |
130 | 130 |
#00 EQU ,&dead JCN |
131 | 131 |
DUP #02 LTH ,&dies JCN |
132 | 132 |
DUP #03 GTH ,&dies JCN |
133 |
- POP ,&save JSR JMP2r |
|
133 |
+ POP ;&save JSR2 JMP2r |
|
134 | 134 |
&dies POP POP2 JMP2r |
135 | 135 |
&dead |
136 | 136 |
DUP #03 EQU ,&birth JCN POP POP2 JMP2r |
137 |
- &birth POP ,&save JSR JMP2r |
|
137 |
+ &birth POP ;&save JSR2 |
|
138 | 138 |
|
139 | 139 |
JMP2r |
140 | 140 |
&save ( x y -- ) |
... | ... |
@@ -56,17 +56,17 @@ BRK |
56 | 56 |
.frame/x0 LDZ2 #0010 ADD2 .Screen/x DEO2 |
57 | 57 |
.frame/y0 LDZ2 #0010 ADD2 .Screen/y DEO2 |
58 | 58 |
;controller-icn/dpad-up .Screen/addr DEO2 |
59 |
- #03 [ STHkr #04 SFT #01 AND DUP ADD SUB ] .Screen/sprite DEO |
|
59 |
+ #03 STHkr #04 SFT #01 AND DUP ADD SUB .Screen/sprite DEO |
|
60 | 60 |
.Screen/y DEI2 #0010 ADD2 .Screen/y DEO2 |
61 | 61 |
;controller-icn/dpad-down .Screen/addr DEO2 |
62 |
- #03 [ STHkr #05 SFT #01 AND DUP ADD SUB ] .Screen/sprite DEO |
|
62 |
+ #03 STHkr #05 SFT #01 AND DUP ADD SUB .Screen/sprite DEO |
|
63 | 63 |
.Screen/y DEI2 #0008 SUB2 .Screen/y DEO2 |
64 | 64 |
.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2 |
65 | 65 |
;controller-icn/dpad-left .Screen/addr DEO2 |
66 |
- #03 [ STHkr #06 SFT #01 AND DUP ADD SUB ] .Screen/sprite DEO |
|
66 |
+ #03 STHkr #06 SFT #01 AND DUP ADD SUB .Screen/sprite DEO |
|
67 | 67 |
.Screen/x DEI2 #0010 ADD2 .Screen/x DEO2 |
68 | 68 |
;controller-icn/dpad-right .Screen/addr DEO2 |
69 |
- #03 [ STHkr #07 SFT #01 AND DUP ADD SUB ] .Screen/sprite DEO |
|
69 |
+ #03 STHkr #07 SFT #01 AND DUP ADD SUB .Screen/sprite DEO |
|
70 | 70 |
.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2 |
71 | 71 |
;controller-icn/dpad .Screen/addr DEO2 |
72 | 72 |
#03 .Screen/sprite DEO |
... | ... |
@@ -75,26 +75,26 @@ BRK |
75 | 75 |
.center/y LDZ2 #0009 ADD2 .Screen/y DEO2 |
76 | 76 |
.center/x LDZ2 #0009 SUB2 .Screen/x DEO2 |
77 | 77 |
;controller-icn/option .Screen/addr DEO2 |
78 |
- #03 [ STHkr #02 SFT #01 AND DUP ADD SUB ] .Screen/sprite DEO |
|
78 |
+ #03 STHkr #02 SFT #01 AND DUP ADD SUB .Screen/sprite DEO |
|
79 | 79 |
.center/x LDZ2 #0004 ADD2 .Screen/x DEO2 |
80 | 80 |
;controller-icn/option .Screen/addr DEO2 |
81 |
- #03 [ STHkr #03 SFT #01 AND DUP ADD SUB ] .Screen/sprite DEO |
|
81 |
+ #03 STHkr #03 SFT #01 AND DUP ADD SUB .Screen/sprite DEO |
|
82 | 82 |
|
83 | 83 |
( buttons ) |
84 | 84 |
.center/y LDZ2 #0000 ADD2 .Screen/y DEO2 |
85 | 85 |
.center/x LDZ2 #0018 ADD2 .Screen/x DEO2 |
86 | 86 |
;controller-icn/button .Screen/addr DEO2 |
87 |
- #03 [ STHkr #01 SFT #01 AND SUB ] .Screen/sprite DEO |
|
87 |
+ #03 STHkr #01 SFT #01 AND SUB .Screen/sprite DEO |
|
88 | 88 |
.Screen/y DEI2 #000a ADD2 .Screen/y DEO2 |
89 |
- ;font-hex #000b #30 SFT2 ADD2 .Screen/addr DEO2 |
|
89 |
+ ;font-hex #0058 ADD2 .Screen/addr DEO2 |
|
90 | 90 |
#03 .Screen/sprite DEO |
91 | 91 |
|
92 | 92 |
.center/y LDZ2 #0000 ADD2 .Screen/y DEO2 |
93 | 93 |
.center/x LDZ2 #0024 ADD2 .Screen/x DEO2 |
94 | 94 |
;controller-icn/button .Screen/addr DEO2 |
95 |
- #03 [ STHr #01 AND SUB ] .Screen/sprite DEO |
|
95 |
+ #03 STHr #01 AND SUB .Screen/sprite DEO |
|
96 | 96 |
.Screen/y DEI2 #000a ADD2 .Screen/y DEO2 |
97 |
- ;font-hex #000a #30 SFT2 ADD2 .Screen/addr DEO2 |
|
97 |
+ ;font-hex #0050 ADD2 .Screen/addr DEO2 |
|
98 | 98 |
#03 .Screen/sprite DEO |
99 | 99 |
|
100 | 100 |
.center/x LDZ2 #0010 SUB2 .Screen/x DEO2 |
... | ... |
@@ -36,7 +36,7 @@ BRK |
36 | 36 |
.Mouse/y DEI2 DUP2 .pointer/y STZ2 .Screen/y DEO2 |
37 | 37 |
#43 .Mouse/state DEI #00 NEQ DUP ADD SUB .Screen/sprite DEO |
38 | 38 |
( on down ) |
39 |
- .Mouse/state DEI #00 NEQ .pointer/state LDZ #00 EQU #0101 EQU2 ,on-mouse-down JCN |
|
39 |
+ .Mouse/state DEI #00 NEQ .pointer/state LDZ #00 EQU AND ,on-mouse-down JCN |
|
40 | 40 |
( on drag ) |
41 | 41 |
.Mouse/state DEI ,on-mouse-drag JCN |
42 | 42 |
.Mouse/state DEI .pointer/state STZ |
... | ... |
@@ -1,10 +1,5 @@ |
1 | 1 |
( GUI Hover ) |
2 | 2 |
|
3 |
-%RTN { JMP2r } |
|
4 |
-%GTS2 { #8000 ADD2 SWP2 #8000 ADD2 LTH2 } |
|
5 |
- |
|
6 |
-( devices ) |
|
7 |
- |
|
8 | 3 |
|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ] |
9 | 4 |
|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ] |
10 | 5 |
|90 @Mouse [ &vector $2 &x $2 &y $2 &state $1 &wheel $1 ] |
... | ... |
@@ -15,7 +10,6 @@ |
15 | 10 |
|
16 | 11 |
@color $1 |
17 | 12 |
@pointer [ &x $2 &y $2 &sprite $2 ] |
18 |
-@rect [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
19 | 13 |
@r1 [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
20 | 14 |
@r2 [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
21 | 15 |
@r3 [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
... | ... |
@@ -80,19 +74,19 @@ BRK |
80 | 74 |
@within-rect ( x* y* rect -- flag ) |
81 | 75 |
|
82 | 76 |
STH |
83 |
- ( y < rect.y1 ) DUP2 STHkr #02 ADD LDZ2 LTH2 ,&skip JCN |
|
77 |
+ ( y < rect.y1 ) DUP2 STHkr INC INC LDZ2 LTH2 ,&skip JCN |
|
84 | 78 |
( y > rect.y2 ) DUP2 STHkr #06 ADD LDZ2 GTH2 ,&skip JCN |
85 | 79 |
SWP2 |
86 | 80 |
( x < rect.x1 ) DUP2 STHkr LDZ2 LTH2 ,&skip JCN |
87 | 81 |
( x > rect.x2 ) DUP2 STHkr #04 ADD LDZ2 GTH2 ,&skip JCN |
88 | 82 |
POP2 POP2 POPr |
89 | 83 |
#01 |
90 |
-RTN |
|
84 |
+JMP2r |
|
91 | 85 |
&skip |
92 | 86 |
POP2 POP2 POPr |
93 | 87 |
#00 |
94 | 88 |
|
95 |
-RTN |
|
89 |
+JMP2r |
|
96 | 90 |
|
97 | 91 |
@line-rect ( x1* y1* x2* y2* color -- ) |
98 | 92 |
|
... | ... |
@@ -119,7 +113,7 @@ RTN |
119 | 113 |
POP2 POP2 |
120 | 114 |
POPr |
121 | 115 |
|
122 |
-RTN |
|
116 |
+JMP2r |
|
123 | 117 |
|
124 | 118 |
@pointer_icn [ 80c0 e0f0 f8e0 1000 ] |
125 | 119 |
@hand_icn [ 4040 4070 f8f8 f870 ] |
... | ... |
@@ -1,13 +1,4 @@ |
1 |
-( Draw a 8x8 font ) |
|
2 |
- |
|
3 |
-%+ { ADD } %- { SUB } %* { MUL } %/ { DIV } |
|
4 |
-%< { LTH } %> { GTH } %= { EQU } %! { NEQ } |
|
5 |
-%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 } |
|
6 |
-%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } |
|
7 |
- |
|
8 |
-%AUTO-X { #01 .Screen/auto DEO } |
|
9 |
- |
|
10 |
-( devices ) |
|
1 |
+( GUI Monospace ) |
|
11 | 2 |
|
12 | 3 |
|00 @System &vector $2 &wst $1 &rst $1 &eaddr $2 &ecode $1 &pad $1 &r $2 &g $2 &b $2 &debug $1 &halt $1 |
13 | 4 |
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
... | ... |
@@ -39,10 +30,10 @@ BRK |
39 | 30 |
|
40 | 31 |
@draw-uf1 ( string* color -- ) |
41 | 32 |
|
42 |
- AUTO-X |
|
33 |
+ #01 .Screen/auto DEO |
|
43 | 34 |
STH |
44 | 35 |
&while |
45 |
- ( get sprite ) LDAk #20 - #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2 |
|
36 |
+ ( get sprite ) LDAk #20 SUB #00 SWP #30 SFT2 ;font ADD2 .Screen/addr DEO2 |
|
46 | 37 |
( draw ) STHkr .Screen/sprite DEO |
47 | 38 |
INC2 LDAk ,&while JCN |
48 | 39 |
POPr |
... | ... |
@@ -53,15 +44,15 @@ JMP2r |
53 | 44 |
@draw-uf1-linebreaks ( string* color -- ) |
54 | 45 |
|
55 | 46 |
.Screen/x DEI2 ,&anchor STR2 |
56 |
- AUTO-X |
|
47 |
+ #01 .Screen/auto DEO |
|
57 | 48 |
STH |
58 | 49 |
&while |
59 |
- LDAk #0a ! ,&no-lb JCN |
|
50 |
+ LDAk #0a NEQ ,&no-lb JCN |
|
60 | 51 |
( rewind ) LIT2 &anchor $2 .Screen/x DEO2 |
61 |
- ( skip line ) .Screen/y DEI2k #0008 ++ ROT DEO2 |
|
52 |
+ ( skip line ) .Screen/y DEI2k #0008 ADD2 ROT DEO2 |
|
62 | 53 |
,&end JMP |
63 | 54 |
&no-lb |
64 |
- ( get sprite ) LDAk #20 - #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2 |
|
55 |
+ ( get sprite ) LDAk #20 SUB #00 SWP #30 SFT2 ;font ADD2 .Screen/addr DEO2 |
|
65 | 56 |
( draw ) STHkr .Screen/sprite DEO |
66 | 57 |
&end |
67 | 58 |
INC2 LDAk ,&while JCN |
... | ... |
@@ -1,15 +1,5 @@ |
1 | 1 |
( GUI Picture ) |
2 | 2 |
|
3 |
-%+ { ADD } %- { SUB } %* { MUL } %/ { DIV } |
|
4 |
-%< { LTH } %> { GTH } %= { EQU } %! { NEQ } |
|
5 |
-%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 } |
|
6 |
-%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } |
|
7 |
- |
|
8 |
-%AUTO-NONE { #00 .Screen/auto DEO } |
|
9 |
-%AUTO-XADDR { #05 .Screen/auto DEO } |
|
10 |
- |
|
11 |
-( devices ) |
|
12 |
- |
|
13 | 3 |
|00 @System &vector $2 &wst $1 &rst $1 &eaddr $2 &ecode $1 &pad $1 &r $2 &g $2 &b $2 &debug $1 &halt $1 |
14 | 4 |
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
15 | 5 |
|
... | ... |
@@ -38,7 +28,7 @@ BRK |
38 | 28 |
|
39 | 29 |
@draw-icn ( addr* width height color -- ) |
40 | 30 |
|
41 |
- AUTO-XADDR |
|
31 |
+ #05 .Screen/auto DEO |
|
42 | 32 |
STH |
43 | 33 |
( set bounds ) ,&height STR ,&width STR .Screen/addr DEO2 |
44 | 34 |
( set origin ) .Screen/x DEI2 ,&x STR2 |
... | ... |
@@ -50,11 +40,11 @@ BRK |
50 | 40 |
STHkr .Screen/sprite DEO |
51 | 41 |
INC GTHk ,&hor JCN |
52 | 42 |
POP2 |
53 |
- .Screen/y DEI2k #0008 ++ ROT DEO2 |
|
43 |
+ .Screen/y DEI2k #0008 ADD2 ROT DEO2 |
|
54 | 44 |
INC GTHk ,&ver JCN |
55 | 45 |
POP2 |
56 | 46 |
POPr |
57 |
- AUTO-NONE |
|
47 |
+ #00 .Screen/auto DEO |
|
58 | 48 |
|
59 | 49 |
JMP2r |
60 | 50 |
|
... | ... |
@@ -64,7 +54,7 @@ JMP2r |
64 | 54 |
|
65 | 55 |
STH |
66 | 56 |
.Screen/addr DEO2 |
67 |
- SWP #01 - #40 SFT #06 + .Screen/auto DEO |
|
57 |
+ SWP #01 SUB #40 SFT #06 ADD .Screen/auto DEO |
|
68 | 58 |
#00 |
69 | 59 |
&loop |
70 | 60 |
STHkr .Screen/sprite DEO |
... | ... |
@@ -1,7 +1,5 @@ |
1 | 1 |
( GUI Shapes ) |
2 | 2 |
|
3 |
-%RTN { JMP2r } |
|
4 |
-%8++ { #0008 ADD2 } |
|
5 | 3 |
%2** { #10 SFT2 } |
6 | 4 |
%4** { #20 SFT2 } |
7 | 5 |
%2// { #01 SFT2 } |
... | ... |
@@ -10,10 +8,6 @@ |
10 | 8 |
%LTS2 { #8000 ADD2 SWP2 #8000 ADD2 GTH2 } |
11 | 9 |
%GTS2 { #8000 ADD2 SWP2 #8000 ADD2 LTH2 } |
12 | 10 |
|
13 |
-%SIZE-TO-RECT { |
|
14 |
- STH2 STH2 OVR2 STH2r ADD2 OVR2 STH2r ADD2 |
|
15 |
-} ( x y w h -- x1 y1 x2 y2 ) |
|
16 |
- |
|
17 | 11 |
%WIDTH { #0100 } %HEIGHT { #00a0 } |
18 | 12 |
|
19 | 13 |
( devices ) |
... | ... |
@@ -46,17 +40,17 @@ |
46 | 40 |
.Screen/width DEI2 2// WIDTH 2// SUB2 #0008 ADD2 |
47 | 41 |
.Screen/height DEI2 2// HEIGHT 2// SUB2 #0008 ADD2 |
48 | 42 |
WIDTH HEIGHT |
49 |
- SIZE-TO-RECT #02 ;fill-rect JSR2 |
|
43 |
+ STH2 STH2 OVR2 STH2r ADD2 OVR2 STH2r ADD2 #02 ;fill-rect JSR2 |
|
50 | 44 |
|
51 | 45 |
.Screen/width DEI2 2// WIDTH 2// SUB2 |
52 | 46 |
.Screen/height DEI2 2// HEIGHT 2// SUB2 |
53 | 47 |
WIDTH HEIGHT |
54 |
- SIZE-TO-RECT #01 ;fill-rect JSR2 |
|
48 |
+ STH2 STH2 OVR2 STH2r ADD2 OVR2 STH2r ADD2 #01 ;fill-rect JSR2 |
|
55 | 49 |
|
56 | 50 |
.Screen/width DEI2 2// WIDTH 2// SUB2 #0008 ADD2 |
57 | 51 |
.Screen/height DEI2 2// HEIGHT 2// SUB2 #0008 ADD2 |
58 | 52 |
WIDTH #0010 SUB2 HEIGHT #0010 SUB2 |
59 |
- SIZE-TO-RECT #03 ;line-rect JSR2 |
|
53 |
+ STH2 STH2 OVR2 STH2r ADD2 OVR2 STH2r ADD2 #03 ;line-rect JSR2 |
|
60 | 54 |
|
61 | 55 |
.Screen/width DEI2 2// .Screen/height DEI2 2// WIDTH 4// #02 ;draw-circle JSR2 |
62 | 56 |
|
... | ... |
@@ -89,7 +83,7 @@ BRK |
89 | 83 |
|
90 | 84 |
&end |
91 | 85 |
|
92 |
-RTN |
|
86 |
+JMP2r |
|
93 | 87 |
|
94 | 88 |
@line-rect ( x1* y1* x2* y2* color -- ) |
95 | 89 |
|
... | ... |
@@ -116,7 +110,7 @@ RTN |
116 | 110 |
POP2 POP2 |
117 | 111 |
POPr |
118 | 112 |
|
119 |
-RTN |
|
113 |
+JMP2r |
|
120 | 114 |
|
121 | 115 |
@fill-rect ( x1* y1* x2* y2* color -- ) |
122 | 116 |
|
... | ... |
@@ -135,7 +129,7 @@ RTN |
135 | 129 |
OVR2 OVR2 GTS2 ,&ver JCN |
136 | 130 |
POP2 POP2 POP2 POP2 |
137 | 131 |
|
138 |
-RTN |
|
132 |
+JMP2r |
|
139 | 133 |
&color $1 |
140 | 134 |
|
141 | 135 |
@draw-circle ( xc yc r color -- ) |
... | ... |
@@ -155,7 +149,7 @@ RTN |
155 | 149 |
&end |
156 | 150 |
( draw ) ;&seg JSR2 |
157 | 151 |
.circle/y LDZ2 .circle/x LDZ2 #0001 SUB2 GTS2 ,&loop JCN |
158 |
- RTN |
|
152 |
+ JMP2r |
|
159 | 153 |
&seg |
160 | 154 |
.circle/xc LDZ2 .circle/x LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO |
161 | 155 |
.circle/xc LDZ2 .circle/x LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/y LDZ2 ADD2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO |
... | ... |
@@ -166,7 +160,7 @@ RTN |
166 | 160 |
.circle/xc LDZ2 .circle/y LDZ2 ADD2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO |
167 | 161 |
.circle/xc LDZ2 .circle/y LDZ2 SUB2 .Screen/x DEO2 .circle/yc LDZ2 .circle/x LDZ2 SUB2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO |
168 | 162 |
|
169 |
-RTN |
|
163 |
+JMP2r |
|
170 | 164 |
|
171 | 165 |
@cover-pattern ( addr* color -- ) |
172 | 166 |
|
... | ... |
@@ -184,7 +178,7 @@ RTN |
184 | 178 |
POP2 POP2 |
185 | 179 |
POPr |
186 | 180 |
|
187 |
-RTN |
|
181 |
+JMP2r |
|
188 | 182 |
|
189 | 183 |
@line-hor ( x0* x1* y* color -- ) |
190 | 184 |
|
... | ... |
@@ -196,7 +190,7 @@ RTN |
196 | 190 |
INC2 GTH2k ,&loop JCN |
197 | 191 |
POP2 POP2 POPr |
198 | 192 |
|
199 |
-RTN |
|
193 |
+JMP2r |
|
200 | 194 |
|
201 | 195 |
@line-ver ( x* y0* y1* color -- ) |
202 | 196 |
|
... | ... |
@@ -208,6 +202,6 @@ RTN |
208 | 202 |
INC2 GTH2k ,&loop JCN |
209 | 203 |
POP2 POP2 POPr |
210 | 204 |
|
211 |
-RTN |
|
205 |
+JMP2r |
|
212 | 206 |
|
213 | 207 |
@checker_icn [ f0f0 f0f0 0f0f 0f0f ] |
... | ... |
@@ -1,9 +1,4 @@ |
1 |
-( gui/terminal ) |
|
2 |
- |
|
3 |
-%+ { ADD } %- { SUB } %* { MUL } %/ { DIV } |
|
4 |
-%< { LTH } %> { GTH } %= { EQU } %! { NEQ } |
|
5 |
-%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 } |
|
6 |
-%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } |
|
1 |
+( GUI Terminal ) |
|
7 | 2 |
|
8 | 3 |
( devices ) |
9 | 4 |
|
... | ... |
@@ -24,7 +19,7 @@ |
24 | 19 |
( theme ) |
25 | 20 |
#0f0f .System/r DEO2 |
26 | 21 |
#0ff0 .System/g DEO2 |
27 |
- #00ff .System/b DEO2 |
|
22 |
+ #0fff .System/b DEO2 |
|
28 | 23 |
|
29 | 24 |
( vectors ) |
30 | 25 |
;on-button .Controller/vector DEO2 |
... | ... |
@@ -39,22 +34,22 @@ BRK |
39 | 34 |
@on-button ( -> ) |
40 | 35 |
|
41 | 36 |
.Controller/key DEI |
42 |
- DUP #00 ! ,&no-null JCN |
|
37 |
+ DUP #00 NEQ ,&no-null JCN |
|
43 | 38 |
POP BRK |
44 | 39 |
&no-null |
45 |
- DUP #0d ! ,&no-enter JCN |
|
40 |
+ DUP #0d NEQ ,&no-enter JCN |
|
46 | 41 |
#00 ;draw-input JSR2 |
47 | 42 |
;validate JSR2 |
48 | 43 |
;buffer #0080 ;mclr JSR2 |
49 | 44 |
#01 ;draw-input JSR2 |
50 | 45 |
&no-enter |
51 |
- DUP #08 ! ,&no-backspace JCN |
|
46 |
+ DUP #08 NEQ ,&no-backspace JCN |
|
52 | 47 |
#00 ;draw-input JSR2 |
53 | 48 |
;buffer ;spop JSR2 |
54 | 49 |
#01 ;draw-input JSR2 |
55 | 50 |
&no-backspace |
56 |
- DUP STHk #1f > STHr #7b < #0101 !! ,&no-valid JCN |
|
57 |
- ;buffer ;slen JSR2 #007f >> ,&no-valid JCN |
|
51 |
+ DUP STHk #1f GTH STHr #7b LTH #0101 NEQ2 ,&no-valid JCN |
|
52 |
+ ;buffer ;slen JSR2 #007f GTH2 ,&no-valid JCN |
|
58 | 53 |
STHk ;buffer STHr ;sput JSR2 |
59 | 54 |
#01 ;draw-input JSR2 |
60 | 55 |
&no-valid |
... | ... |
@@ -65,7 +60,7 @@ BRK |
65 | 60 |
@validate ( -- ) |
66 | 61 |
|
67 | 62 |
#0010 .Screen/x DEO2 |
68 |
- .Screen/height DEI2 #0040 -- .Screen/y DEO2 |
|
63 |
+ .Screen/height DEI2 #0040 SUB2 .Screen/y DEO2 |
|
69 | 64 |
|
70 | 65 |
( clear ) |
71 | 66 |
#8000 |
... | ... |
@@ -88,7 +83,7 @@ JMP2r |
88 | 83 |
|
89 | 84 |
STH |
90 | 85 |
#0010 .Screen/x DEO2 |
91 |
- .Screen/height DEI2 #0020 -- .Screen/y DEO2 |
|
86 |
+ .Screen/height DEI2 #0020 SUB2 .Screen/y DEO2 |
|
92 | 87 |
|
93 | 88 |
( marker ) LIT '> #03 ;draw-char JSR2 |
94 | 89 |
|
... | ... |
@@ -110,10 +105,10 @@ JMP2r |
110 | 105 |
@draw-char ( char color -- ) |
111 | 106 |
|
112 | 107 |
SWP |
113 |
- [ #20 - #00 SWP #40 SFT2 ;font ++ ] .Screen/addr DEO2 |
|
108 |
+ [ #20 SUB #00 SWP #40 SFT2 ;font ADD2 ] .Screen/addr DEO2 |
|
114 | 109 |
.Screen/sprite DEOk DEO |
115 |
- .Screen/y DEI2 #0010 -- .Screen/y DEO2 |
|
116 |
- .Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
110 |
+ .Screen/y DEI2 #0010 SUB2 .Screen/y DEO2 |
|
111 |
+ .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
|
117 | 112 |
|
118 | 113 |
JMP2r |
119 | 114 |
|
... | ... |
@@ -121,13 +116,13 @@ JMP2r |
121 | 116 |
|
122 | 117 |
@slen ( str* -- len* ) |
123 | 118 |
|
124 |
- DUP2 ,scap JSR SWP2 -- |
|
119 |
+ DUP2 ,scap JSR SWP2 SUB2 |
|
125 | 120 |
|
126 | 121 |
JMP2r |
127 | 122 |
|
128 | 123 |
@scap ( str* -- str-end* ) |
129 | 124 |
|
130 |
- ( clamp ) LDAk #00 ! JMP JMP2r |
|
125 |
+ ( clamp ) LDAk #00 NEQ JMP JMP2r |
|
131 | 126 |
&while INC2 LDAk ,&while JCN |
132 | 127 |
|
133 | 128 |
JMP2r |
... | ... |
@@ -140,14 +135,14 @@ JMP2r |
140 | 135 |
|
141 | 136 |
@spop ( str* -- ) |
142 | 137 |
|
143 |
- ( clamp ) LDAk #00 ! JMP JMP2r |
|
144 |
- #00 ROT ROT ,scap JSR #0001 -- STA |
|
138 |
+ ( clamp ) LDAk #00 NEQ JMP JMP2r |
|
139 |
+ #00 ROT ROT ,scap JSR #0001 SUB2 STA |
|
145 | 140 |
|
146 | 141 |
JMP2r |
147 | 142 |
|
148 | 143 |
@mclr ( addr* len* -- ) |
149 | 144 |
|
150 |
- OVR2 ++ SWP2 |
|
145 |
+ OVR2 ADD2 SWP2 |
|
151 | 146 |
&loop |
152 | 147 |
STH2k #00 STH2r STA |
153 | 148 |
INC2 GTH2k ,&loop JCN |
154 | 149 |
deleted file mode 100644 |
... | ... |
@@ -1,63 +0,0 @@ |
1 |
-( devices ) |
|
2 |
- |
|
3 |
-|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ] |
|
4 |
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ] |
|
5 |
- |
|
6 |
-( variables ) |
|
7 |
- |
|
8 |
-|0000 |
|
9 |
- |
|
10 |
-@scroll [ &x $2 &y $2 &wait $1 ] |
|
11 |
- |
|
12 |
-|0100 ( -> ) |
|
13 |
- #90ff .System/r DEO2 #9000 .System/g DEO2 #900f .System/b DEO2 |
|
14 |
- #08e0 .Screen/width DEI2 #01 SFT2 SUB2 .scroll/x STZ2 |
|
15 |
- #09b0 .scroll/y STZ2 |
|
16 |
- ;frame .Screen/vector DEO2 |
|
17 |
- #30 .scroll/wait STZ |
|
18 |
- BRK |
|
19 |
- |
|
20 |
-@frame ( -> ) |
|
21 |
- #ffff |
|
22 |
- &loop |
|
23 |
- DUP2 ,row JSR |
|
24 |
- INC2 |
|
25 |
- DUP2 .Screen/height DEI2 LTH2 ,&loop JCN |
|
26 |
- POP2 |
|
27 |
- .scroll/wait LDZ ,&noscroll JCN |
|
28 |
- .scroll/y LDZ2 INC2 .scroll/y STZ2 |
|
29 |
- BRK |
|
30 |
- |
|
31 |
- &noscroll |
|
32 |
- .scroll/wait LDZ #01 SUB .scroll/wait STZ |
|
33 |
- BRK |
|
34 |
- |
|
35 |
-@row ( y* -- ) |
|
36 |
- DUP2 .Screen/y DEO2 |
|
37 |
- .scroll/y LDZ2 ADD2 |
|
38 |
- |
|
39 |
- .Screen/width DEI2 |
|
40 |
- &loop |
|
41 |
- #0001 SUB2 |
|
42 |
- OVR2 OVR2 .scroll/x LDZ2 ADD2 EOR2 DUP2 #0013 DIV2 #0013 MUL2 SUB2 |
|
43 |
- DUP #00 EQU ,&draw JCN |
|
44 |
- DUP #05 EQU ,&draw JCN |
|
45 |
- POP2 |
|
46 |
- &rest |
|
47 |
- DUP2 ORA ,&loop JCN |
|
48 |
- POP2 POP2 |
|
49 |
- JMP2r |
|
50 |
- |
|
51 |
- #15 .Screen/pixel DEO |
|
52 |
- JMP2r |
|
53 |
- |
|
54 |
- &draw |
|
55 |
- OVR2 .Screen/x DEO2 |
|
56 |
- #05 ADD .Screen/pixel DEO |
|
57 |
- .Screen/y DEI2 |
|
58 |
- DUP2 INC2 .Screen/y DEO2 |
|
59 |
- #00 .Screen/pixel DEO |
|
60 |
- .Screen/y DEO2 |
|
61 |
- POP |
|
62 |
- ,&rest JMP |
|
63 |
- |
... | ... |
@@ -25,7 +25,6 @@ |
25 | 25 |
%MOD { DIVk MUL SUB } |
26 | 26 |
%MOD2 { DIV2k MUL2 SUB2 } |
27 | 27 |
|
28 |
-%AUTO-NONE { #00 .Screen/auto DEO } |
|
29 | 28 |
%AUTO-X { #01 .Screen/auto DEO } |
30 | 29 |
%AUTO-Y { #02 .Screen/auto DEO } |
31 | 30 |
%AUTO-XY { #03 .Screen/auto DEO } |
... | ... |
@@ -127,7 +126,7 @@ BRK |
127 | 126 |
.Screen/y DEI2k #0008 ++ ROT DEO2 |
128 | 127 |
INC GTHk ,&ver JCN |
129 | 128 |
POP2 |
130 |
- AUTO-NONE |
|
129 |
+ #00 .Screen/auto DEO |
|
131 | 130 |
|
132 | 131 |
RTN |
133 | 132 |
&blank-icn 8000 0000 0000 0000 |
134 | 133 |
deleted file mode 100644 |
... | ... |
@@ -1,31 +0,0 @@ |
1 |
-( hexes |
|
2 |
- |
|
3 |
- A small utility that prints incoming console messages as hex values. ) |
|
4 |
- |
|
5 |
-%RTN { JMP2r } |
|
6 |
- |
|
7 |
-|10 @Console [ &vector $2 &read $1 &pad $5 &write $1 ] |
|
8 |
- |
|
9 |
-( init ) |
|
10 |
- |
|
11 |
-|0100 ( -> ) |
|
12 |
- |
|
13 |
- ;on-message .Console/vector DEO2 |
|
14 |
- |
|
15 |
-BRK |
|
16 |
- |
|
17 |
-@on-message ( -> ) |
|
18 |
- |
|
19 |
- .Console/read DEI ,print-hex JSR |
|
20 |
- |
|
21 |
-BRK |
|
22 |
- |
|
23 |
-@print-hex ( value -- ) |
|
24 |
- |
|
25 |
- STHk #04 SFT ,&parse JSR .Console/write DEO |
|
26 |
- STHr #0f AND ,&parse JSR .Console/write DEO |
|
27 |
- RTN |
|
28 |
- &parse ( value -- char ) |
|
29 |
- DUP #09 GTH ,&above JCN #30 ADD RTN &above #09 SUB #60 ADD RTN |
|
30 |
- |
|
31 |
-RTN |
... | ... |
@@ -1,30 +1,5 @@ |
1 | 1 |
( launcher ) |
2 | 2 |
|
3 |
-%2* { #10 SFT } %2/ { #01 SFT } %2** { #10 SFT2 } %2// { #01 SFT2 } |
|
4 |
-%4* { #20 SFT } %4/ { #02 SFT } %4** { #20 SFT2 } %4// { #02 SFT2 } |
|
5 |
-%8* { #30 SFT } %8/ { #03 SFT } %8** { #30 SFT2 } %8// { #03 SFT2 } |
|
6 |
-%10* { #40 SFT } %10/ { #04 SFT } %10** { #40 SFT2 } %10// { #04 SFT2 } |
|
7 |
-%20* { #50 SFT } %20/ { #05 SFT } %20** { #50 SFT2 } %20// { #05 SFT2 } |
|
8 |
- |
|
9 |
-%40** { #60 SFT2 } |
|
10 |
- |
|
11 |
-%RTN { JMP2r } |
|
12 |
-%TOS { #00 SWP } |
|
13 |
- |
|
14 |
-%AUTO-NONE { #00 .Screen/auto DEO } |
|
15 |
-%AUTO-XADDR { #05 .Screen/auto DEO } |
|
16 |
-%AUTO-YADDR { #06 .Screen/auto DEO } |
|
17 |
- |
|
18 |
-%HALT { #010f DEO } |
|
19 |
-%EMIT { #18 DEO } |
|
20 |
-%PRINT { ;print-str JSR2 #0a EMIT } |
|
21 |
-%DEBUG { ;print-hex/byte JSR2 #0a EMIT } |
|
22 |
-%DEBUG2 { ;print-hex JSR2 #0a EMIT } |
|
23 |
- |
|
24 |
-%LINES-COUNT { .browser/y2 LDZ2 .browser/y LDZ2 SUB2 10// NIP } |
|
25 |
- |
|
26 |
-( devices ) |
|
27 |
- |
|
28 | 3 |
|00 @System &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2 &debug $1 &halt $1 |
29 | 4 |
|10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1 |
30 | 5 |
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
... | ... |
@@ -79,14 +54,14 @@ |
79 | 54 |
#0010 .browser/y STZ2 |
80 | 55 |
.Screen/height DEI2 #33 SFT2 #0011 SUB2 .browser/y2 STZ2 |
81 | 56 |
|
57 |
+ ( theme support ) |
|
58 |
+ ;load-theme JSR2 |
|
59 |
+ |
|
82 | 60 |
( draw mascot ) |
83 | 61 |
#0010 #0010 #0060 #0060 ;mascot-icn #01 ;draw-icn JSR2 |
84 | 62 |
|
85 | 63 |
;load-dir JSR2 |
86 | 64 |
|
87 |
- ( theme support ) |
|
88 |
- ;load-theme JSR2 |
|
89 |
- |
|
90 | 65 |
( force selection ) |
91 | 66 |
#ff .browser/last STZ |
92 | 67 |
#00 ;select-file JSR2 |
... | ... |
@@ -129,7 +104,7 @@ BRK |
129 | 104 |
.Mouse/y DEI2 .browser/y2 LDZ2 #0010 SUB2 GTH2 ,&outside JCN |
130 | 105 |
( select choice ) |
131 | 106 |
.Mouse/y DEI2 .browser/y LDZ2 SUB2 |
132 |
- 10// NIP .browser/scroll LDZ ADD ;select-file JSR2 |
|
107 |
+ #04 SFT2 NIP .browser/scroll LDZ ADD ;select-file JSR2 |
|
133 | 108 |
( run choice ) |
134 | 109 |
.Mouse/state DEI #00 EQU ,&no-click JCN |
135 | 110 |
.browser/sel LDZ ;run-file JSR2 |
... | ... |
@@ -187,17 +162,17 @@ BRK |
187 | 162 |
INC2 LDAk ,&while JCN |
188 | 163 |
POP2 |
189 | 164 |
|
190 |
-RTN |
|
165 |
+JMP2r |
|
191 | 166 |
|
192 | 167 |
@select-file ( id -- ) |
193 | 168 |
|
194 | 169 |
( has changed ) |
195 | 170 |
DUP .browser/last LDZ NEQ ,&has-changed JCN |
196 |
- POP RTN |
|
171 |
+ POP JMP2r |
|
197 | 172 |
&has-changed |
198 | 173 |
( beyond ) |
199 | 174 |
DUP .browser/lines LDZ LTH ,&valid JCN |
200 |
- POP RTN |
|
175 |
+ POP JMP2r |
|
201 | 176 |
&valid |
202 | 177 |
|
203 | 178 |
#00 ;draw-browser JSR2 |
... | ... |
@@ -208,23 +183,23 @@ RTN |
208 | 183 |
|
209 | 184 |
( draw mascot ) |
210 | 185 |
#0010 #0010 #0060 #0060 |
211 |
- ;mascot-icn [ .browser/sel LDZ #03 AND TOS #0480 MUL2 ADD2 ] #01 |
|
186 |
+ ;mascot-icn .browser/sel LDZ #03 AND #00 SWP #0480 MUL2 ADD2 #01 |
|
212 | 187 |
;draw-icn JSR2 |
213 | 188 |
|
214 | 189 |
( draw position ) |
215 |
- AUTO-YADDR |
|
190 |
+ #06 .Screen/auto DEO |
|
216 | 191 |
#0010 .Screen/x DEO2 |
217 | 192 |
#0080 .Screen/y DEO2 |
218 | 193 |
.browser/sel LDZ #02 ;draw-byte JSR2 |
219 | 194 |
LIT '/ #02 ;draw-char JSR2 |
220 | 195 |
.browser/lines LDZ #01 SUB #02 ;draw-byte JSR2 |
221 |
- AUTO-NONE |
|
196 |
+ #00 .Screen/auto DEO |
|
222 | 197 |
|
223 |
-RTN |
|
198 |
+JMP2r |
|
224 | 199 |
|
225 | 200 |
@follow-selection ( -- ) |
226 | 201 |
|
227 |
- LINES-COUNT .browser/sel LDZ .browser/scroll LDZ SUB |
|
202 |
+ .browser/y2 LDZ2 .browser/y LDZ2 SUB2 #04 SFT2 NIP .browser/sel LDZ .browser/scroll LDZ SUB |
|
228 | 203 |
DUP2 GTH ,&no-down JCN |
229 | 204 |
.browser/scroll LDZ INC ,scroll-to JSR |
230 | 205 |
&no-down |
... | ... |
@@ -233,25 +208,25 @@ RTN |
233 | 208 |
&no-up |
234 | 209 |
POP2 |
235 | 210 |
|
236 |
-RTN |
|
211 |
+JMP2r |
|
237 | 212 |
|
238 | 213 |
@scroll-to ( line -- ) |
239 | 214 |
|
240 | 215 |
STH |
241 | 216 |
( more lines than visible ) |
242 |
- .browser/lines LDZ LINES-COUNT |
|
217 |
+ .browser/lines LDZ .browser/y2 LDZ2 .browser/y LDZ2 SUB2 #04 SFT2 NIP |
|
243 | 218 |
DUP2 GTH ,&can-scroll JCN |
244 |
- POPr POP2 RTN |
|
219 |
+ POPr POP2 JMP2r |
|
245 | 220 |
&can-scroll |
246 | 221 |
( less than max scroll ) |
247 | 222 |
SUB INC STHkr GTH ,&valid-scroll JCN |
248 |
- POPr RTN |
|
223 |
+ POPr JMP2r |
|
249 | 224 |
&valid-scroll |
250 | 225 |
#00 ;draw-browser JSR2 |
251 | 226 |
STHr .browser/scroll STZ |
252 | 227 |
#01 ;draw-browser JSR2 |
253 | 228 |
|
254 |
-RTN |
|
229 |
+JMP2r |
|
255 | 230 |
|
256 | 231 |
@run-file ( id -- ) |
257 | 232 |
|
... | ... |
@@ -270,13 +245,13 @@ RTN |
270 | 245 |
;&output-path ;asma-assemble-file JSR2 |
271 | 246 |
;load-dir JSR2 |
272 | 247 |
;redraw JSR2 |
273 |
- RTN |
|
248 |
+ JMP2r |
|
274 | 249 |
&no-tal |
275 |
- POP2 RTN |
|
250 |
+ POP2 JMP2r |
|
276 | 251 |
&valid |
277 | 252 |
;load-rom JSR2 |
278 | 253 |
|
279 |
-RTN |
|
254 |
+JMP2r |
|
280 | 255 |
&tal-ext ".tal $1 |
281 | 256 |
&rom-ext ".rom $1 |
282 | 257 |
&output-path $20 |
... | ... |
@@ -287,7 +262,7 @@ RTN |
287 | 262 |
#ff .browser/last STZ |
288 | 263 |
#00 ;select-file JSR2 |
289 | 264 |
|
290 |
-RTN |
|
265 |
+JMP2r |
|
291 | 266 |
|
292 | 267 |
@draw-browser ( mask -- ) |
293 | 268 |
|
... | ... |
@@ -298,17 +273,17 @@ RTN |
298 | 273 |
|
299 | 274 |
( draw hand ) |
300 | 275 |
.browser/x LDZ2 #0018 SUB2 .browser/y LDZ2 |
301 |
- .browser/sel LDZ .browser/scroll LDZ SUB TOS 10** ADD2 |
|
276 |
+ .browser/sel LDZ .browser/scroll LDZ SUB #00 SWP #40 SFT2 ADD2 |
|
302 | 277 |
#0010 #0010 |
303 |
- ;hand-icn STHkr #02 MUL ;draw-icn JSR2 |
|
278 |
+ ;hand-icn STHkr #10 SFT ;draw-icn JSR2 |
|
304 | 279 |
( draw files ) |
305 |
- LINES-COUNT #00 |
|
280 |
+ .browser/y2 LDZ2 .browser/y LDZ2 SUB2 #04 SFT2 NIP #00 |
|
306 | 281 |
&loop |
307 | 282 |
( reached end ) |
308 |
- DUP INC .browser/lines LDZ GTH ,&end JCN |
|
283 |
+ INCk .browser/lines LDZ GTH ,&end JCN |
|
309 | 284 |
( has file ) |
310 | 285 |
.browser/x LDZ2 .Screen/x DEO2 |
311 |
- #00 OVR 10** .browser/y LDZ2 ADD2 .Screen/y DEO2 |
|
286 |
+ #00 OVR #40 SFT2 .browser/y LDZ2 ADD2 .Screen/y DEO2 |
|
312 | 287 |
DUP .browser/scroll LDZ ADD ;get-entry JSR2 |
313 | 288 |
DUP2 ;get-type JSR2 ;draw-type JSR2 |
314 | 289 |
#01 STHkr MUL ;draw-str JSR2 |
... | ... |
@@ -318,7 +293,7 @@ RTN |
318 | 293 |
|
319 | 294 |
POPr |
320 | 295 |
|
321 |
-RTN |
|
296 |
+JMP2r |
|
322 | 297 |
|
323 | 298 |
@draw-browser-empty ( mask -- ) |
324 | 299 |
|
... | ... |
@@ -327,14 +302,14 @@ RTN |
327 | 302 |
.browser/y LDZ2 .Screen/y DEO2 |
328 | 303 |
;&empty-txt #01 ;draw-str JSR2 |
329 | 304 |
|
330 |
-RTN |
|
305 |
+JMP2r |
|
331 | 306 |
&empty-txt "Empty 20 "Folder $1 |
332 | 307 |
|
333 | 308 |
@get-type ( line* -- type ) |
334 | 309 |
|
335 | 310 |
;scap JSR2 #0004 SUB2 ;&rom-ext ;scmp JSR2 |
336 | 311 |
|
337 |
-RTN |
|
312 |
+JMP2r |
|
338 | 313 |
&rom-ext ".rom $1 |
339 | 314 |
|
340 | 315 |
@get-entry ( id -- addr* ) |
... | ... |
@@ -344,7 +319,7 @@ RTN |
344 | 319 |
;dir/length LDA2 #0000 |
345 | 320 |
&loop |
346 | 321 |
EQUkr STHr #00 EQU ,&no-reached JCN |
347 |
- POP2r NIP2 ;dir/data ADD2 RTN |
|
322 |
+ POP2r NIP2 ;dir/data ADD2 JMP2r |
|
348 | 323 |
&no-reached |
349 | 324 |
DUP2 ;dir/data ADD2 LDA #00 NEQ ,&no-lb JCN |
350 | 325 |
INCr |
... | ... |
@@ -354,12 +329,12 @@ RTN |
354 | 329 |
POP2r |
355 | 330 |
;dir/data |
356 | 331 |
|
357 |
-RTN |
|
332 |
+JMP2r |
|
358 | 333 |
|
359 | 334 |
@draw-type ( type -- ) |
360 | 335 |
|
361 |
- STHk TOS 20** ;file-icns ADD2 .Screen/addr DEO2 |
|
362 |
- AUTO-XADDR |
|
336 |
+ STHk #00 SWP #50 SFT2 ;file-icns ADD2 .Screen/addr DEO2 |
|
337 |
+ #05 .Screen/auto DEO |
|
363 | 338 |
#02 STHkr SUB .Screen/sprite DEOk DEO |
364 | 339 |
|
365 | 340 |
.Screen/x DEI2k #0010 SUB2 ROT DEO2 |
... | ... |
@@ -369,13 +344,13 @@ RTN |
369 | 344 |
|
370 | 345 |
.Screen/x DEI2k #0008 ADD2 ROT DEO2 |
371 | 346 |
.Screen/y DEI2k #0008 SUB2 ROT DEO2 |
372 |
- AUTO-NONE |
|
347 |
+ #00 .Screen/auto DEO |
|
373 | 348 |
|
374 |
-RTN |
|
349 |
+JMP2r |
|
375 | 350 |
|
376 | 351 |
@draw-icn ( x* y* width* height* addr* color -- ) |
377 | 352 |
|
378 |
- AUTO-XADDR |
|
353 |
+ #05 .Screen/auto DEO |
|
379 | 354 |
( load ) STH .Screen/addr DEO2 ,&height STR2 ,&width STR2 ,&y STR2 ,&x STR2 |
380 | 355 |
,&height LDR2 #0000 |
381 | 356 |
&ver |
... | ... |
@@ -389,14 +364,14 @@ RTN |
389 | 364 |
#0008 ADD2 GTH2k ,&ver JCN |
390 | 365 |
POP2 POP2 |
391 | 366 |
POPr |
392 |
- AUTO-NONE |
|
367 |
+ #00 .Screen/auto DEO |
|
393 | 368 |
|
394 |
-RTN |
|
369 |
+JMP2r |
|
395 | 370 |
&x $2 &y $2 &width $2 &height $2 |
396 | 371 |
|
397 | 372 |
@draw-str ( text* color -- ) |
398 | 373 |
|
399 |
- AUTO-YADDR |
|
374 |
+ #06 .Screen/auto DEO |
|
400 | 375 |
STH |
401 | 376 |
&while |
402 | 377 |
LDAk STHkr ,draw-char JSR |
... | ... |
@@ -404,14 +379,7 @@ RTN |
404 | 379 |
POP2 |
405 | 380 |
POPr |
406 | 381 |
|
407 |
-RTN |
|
408 |
- |
|
409 |
-@draw-short ( short* color -- ) |
|
410 |
- |
|
411 |
- STH SWP STHkr ,draw-byte JSR |
|
412 |
- STHr ,draw-byte JSR |
|
413 |
- |
|
414 |
-RTN |
|
382 |
+JMP2r |
|
415 | 383 |
|
416 | 384 |
@draw-byte ( byte color -- ) |
417 | 385 |
|
... | ... |
@@ -419,17 +387,16 @@ RTN |
419 | 387 |
DUP #04 SFT ,&parse JSR STHkr ,draw-char JSR |
420 | 388 |
#0f AND ,&parse JSR STHr ,draw-char JSR |
421 | 389 |
|
422 |
-RTN |
|
390 |
+JMP2r |
|
423 | 391 |
&parse ( byte -- char ) DUP #09 GTH ,&above JCN #30 ADD JMP2r |
424 | 392 |
&above #57 ADD JMP2r |
425 | 393 |
|
426 | 394 |
@draw-char ( char color -- ) |
427 | 395 |
|
428 | 396 |
SWP |
429 |
- [ #20 SUB #00 SWP #40 SFT2 ;font ADD2 ] .Screen/addr DEO2 |
|
430 |
- .Screen/sprite DEOk DEO |
|
431 |
- .Screen/x DEI2k #0008 ADD2 ROT DEO2 |
|
432 |
- .Screen/y DEI2k #0010 SUB2 ROT DEO2 |
|
397 |
+ #15 .Screen/auto DEO |
|
398 |
+ #20 SUB #00 SWP #40 SFT2 ;font ADD2 .Screen/addr DEO2 |
|
399 |
+ .Screen/sprite DEO |
|
433 | 400 |
|
434 | 401 |
JMP2r |
435 | 402 |
|
... | ... |
@@ -448,52 +415,37 @@ JMP2r |
448 | 415 |
#fffc LDA2 .System/g DEO2 |
449 | 416 |
#fffe LDA2 .System/b DEO2 |
450 | 417 |
&ignore |
451 |
- ;redraw JSR2 |
|
452 |
- |
|
453 |
-RTN |
|
454 |
- |
|
455 |
-( helpers ) |
|
456 |
- |
|
457 |
-@print-str ( string* -- ) |
|
458 |
- |
|
459 |
- #0001 SUB2 |
|
460 |
- &while |
|
461 |
- INC2 LDAk DUP #18 DEO ,&while JCN |
|
462 |
- POP2 |
|
463 | 418 |
|
464 | 419 |
JMP2r |
465 | 420 |
|
466 |
-@print-hex ( value* -- ) |
|
467 |
- |
|
468 |
- SWP ,&byte JSR |
|
469 |
- &byte ( byte -- ) |
|
470 |
- STHk #04 SFT ,&parse JSR #18 DEO |
|
471 |
- STHr #0f AND ,&parse JSR #18 DEO |
|
472 |
- JMP2r |
|
473 |
- &parse ( byte -- char ) DUP #09 GTH ,&above JCN #30 ADD JMP2r |
|
474 |
- &above #57 ADD JMP2r |
|
475 |
- |
|
476 |
-JMP2r |
|
421 |
+( helpers ) |
|
477 | 422 |
|
478 | 423 |
@scmp ( a* b* -- flag ) |
479 | 424 |
|
480 | 425 |
STH2 |
481 | 426 |
&loop |
482 |
- LDAk LDAkr STHr EQU ,¬-diff JCN |
|
483 |
- POP2 POP2r #00 RTN |
|
484 |
- ¬-diff |
|
485 |
- LDAk LDAkr STHr #0000 NEQ2 ,¬-end JCN |
|
486 |
- POP2 POP2r #01 RTN |
|
427 |
+ LDAk LDAkr STHr NEQ ,&end JCN |
|
428 |
+ LDAk LDAkr STHr ORA ,¬-end JCN |
|
429 |
+ POP2 POP2r #01 JMP2r |
|
487 | 430 |
¬-end |
488 |
- INC2 INC2r |
|
489 |
- ,&loop JMP |
|
431 |
+ INC2 INC2r ,&loop JMP |
|
432 |
+ &end |
|
490 | 433 |
POP2 POP2r #00 |
491 | 434 |
|
492 |
-RTN |
|
435 |
+JMP2r |
|
493 | 436 |
|
494 | 437 |
@scat ( src* dst* -- ) |
495 | 438 |
|
496 |
- DUP2 ,slen JSR ADD2 ,scpy JSR |
|
439 |
+ DUP2 ,slen JSR ADD2 |
|
440 |
+ |
|
441 |
+@scpy ( src* dst* -- ) |
|
442 |
+ |
|
443 |
+ STH2 |
|
444 |
+ &while |
|
445 |
+ LDAk STH2kr STA INC2r |
|
446 |
+ INC2 LDAk ,&while JCN |
|
447 |
+ POP2 |
|
448 |
+ #00 STH2r STA |
|
497 | 449 |
|
498 | 450 |
JMP2r |
499 | 451 |
|
... | ... |
@@ -503,22 +455,10 @@ JMP2r |
503 | 455 |
|
504 | 456 |
JMP2r |
505 | 457 |
|
506 |
-@scap ( str* -- end* ) |
|
507 |
- |
|
508 |
- LDAk #00 NEQ JMP JMP2r |
|
509 |
- &while |
|
510 |
- INC2 LDAk ,&while JCN |
|
511 |
- |
|
512 |
-JMP2r |
|
458 |
+@scap ( str* -- str-end* ) |
|
513 | 459 |
|
514 |
-@scpy ( src* dst* -- ) |
|
515 |
- |
|
516 |
- STH2 |
|
517 |
- &while |
|
518 |
- LDAk STH2kr STA INC2r |
|
519 |
- INC2 LDAk ,&while JCN |
|
520 |
- POP2 |
|
521 |
- #00 STH2r STA |
|
460 |
+ ( clamp ) LDAk #00 NEQ JMP JMP2r |
|
461 |
+ &while INC2 LDAk ,&while JCN |
|
522 | 462 |
|
523 | 463 |
JMP2r |
524 | 464 |
|
... | ... |
@@ -2,16 +2,6 @@ |
2 | 2 |
converts a binary file to a proquints, identifiers that are readable, and pronounceable. |
3 | 3 |
usage: uxncli proquints.rom file.bin ) |
4 | 4 |
|
5 |
-%+ { ADD } %- { SUB } %* { MUL } %/ { DIV } |
|
6 |
-%< { LTH } %> { GTH } %= { EQU } %! { NEQ } |
|
7 |
-%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 } |
|
8 |
-%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } |
|
9 |
- |
|
10 |
-%HALT { #010f DEO } |
|
11 |
-%EMIT { #18 DEO } |
|
12 |
-%PRINT { ;print-str JSR2 #0a EMIT } |
|
13 |
-%DEBUG { ;print-hex/byte JSR2 #0a EMIT } |
|
14 |
-%DEBUG2 { ;print-hex JSR2 #0a EMIT } |
|
15 | 5 |
|
16 | 6 |
( devices ) |
17 | 7 |
|
... | ... |
@@ -39,13 +29,13 @@ BRK |
39 | 29 |
#01 ,&trap STR |
40 | 30 |
&started |
41 | 31 |
( append ) |
42 |
- .Console/read DEI #20 < ,&validate JCN |
|
43 |
- ;src ;slen JSR2 #0030 == ,&validate JCN |
|
32 |
+ .Console/read DEI #20 LTH ,&validate JCN |
|
33 |
+ ;src ;slen JSR2 #0030 EQU2 ,&validate JCN |
|
44 | 34 |
;src .Console/read DEI ;sput JSR2 BRK |
45 | 35 |
&validate |
46 | 36 |
( load ) |
47 | 37 |
;src .File/name DEO2 |
48 |
- #fff0 ;data -- .File/length DEO2 |
|
38 |
+ #fff0 ;data SUB2 .File/length DEO2 |
|
49 | 39 |
;data .File/read DEO2 |
50 | 40 |
( save length ) |
51 | 41 |
.File/success DEI2 .length STZ2 |
... | ... |
@@ -56,12 +46,12 @@ BRK |
56 | 46 |
|
57 | 47 |
@parse ( -- ) |
58 | 48 |
|
59 |
- .length LDZ2 ;data ++ ;data |
|
49 |
+ .length LDZ2 ;data ADD2 ;data |
|
60 | 50 |
&loop |
61 | 51 |
LDA2k ,proquint JSR |
62 | 52 |
INC2 INC2 GTH2k ,&loop JCN |
63 | 53 |
POP2 POP2 |
64 |
- HALT |
|
54 |
+ #010f DEO |
|
65 | 55 |
|
66 | 56 |
JMP2r |
67 | 57 |
|
... | ... |
@@ -72,23 +62,23 @@ JMP2r |
72 | 62 |
( c2 ) DUP2 #06 ,&emit-con JSR |
73 | 63 |
( v2 ) DUP2 #03 ,&emit-vow JSR |
74 | 64 |
( c3 ) #00 ,&emit-con JSR |
75 |
- #20 EMIT |
|
65 |
+ #2018 DEO |
|
76 | 66 |
|
77 | 67 |
JMP2r |
78 |
- &emit-con SFT2 #000f AND2 ;&con ADD2 LDA EMIT JMP2r |
|
68 |
+ &emit-con SFT2 #000f AND2 ;&con ADD2 LDA #18 DEO JMP2r |
|
79 | 69 |
&con "bdfghjklmnprstvz |
80 |
- &emit-vow SFT2 #0003 AND2 ;&vow ADD2 LDA EMIT JMP2r |
|
70 |
+ &emit-vow SFT2 #0003 AND2 ;&vow ADD2 LDA #18 DEO JMP2r |
|
81 | 71 |
&vow "aiou |
82 | 72 |
|
83 | 73 |
@slen ( str* -- len* ) |
84 | 74 |
|
85 |
- DUP2 ,scap JSR SWP2 -- |
|
75 |
+ DUP2 ,scap JSR SWP2 SUB2 |
|
86 | 76 |
|
87 | 77 |
JMP2r |
88 | 78 |
|
89 | 79 |
@scap ( str* -- end* ) |
90 | 80 |
|
91 |
- LDAk #00 ! JMP JMP2r |
|
81 |
+ LDAk #00 NEQ JMP JMP2r |
|
92 | 82 |
&while |
93 | 83 |
INC2 LDAk ,&while JCN |
94 | 84 |
|
... | ... |
@@ -102,7 +92,7 @@ JMP2r |
102 | 92 |
|
103 | 93 |
@mclr ( addr* len* -- ) |
104 | 94 |
|
105 |
- OVR2 ++ SWP2 |
|
95 |
+ OVR2 ADD2 SWP2 |
|
106 | 96 |
&loop |
107 | 97 |
STH2k #00 STH2r STA |
108 | 98 |
INC2 GTH2k ,&loop JCN |