Browse code

Removed nasu from project

neauoire authored on 12/05/2021 03:30:03
Showing 2 changed files
... ...
@@ -15,7 +15,7 @@ clang-format -i src/debugger.c
15 15
 
16 16
 echo "Cleaning.."
17 17
 rm -f ./bin/uxnasm
18
-rm -f ./bin/emulator
18
+rm -f ./bin/uxnemu
19 19
 rm -f ./bin/debugger
20 20
 rm -f ./bin/boot.rom
21 21
 
... ...
@@ -25,12 +25,20 @@ if [ "${1}" = '--debug' ];
25 25
 then
26 26
 	echo "[debug]"
27 27
     cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/assembler.c -o bin/uxnasm
28
-	cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -L/usr/local/lib -lSDL2 -lportmidi -o bin/emulator
28
+	cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -L/usr/local/lib -lSDL2 -lportmidi -o bin/uxnemu
29 29
     cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/uxn.c src/debugger.c -o bin/debugger
30 30
 else
31 31
 	cc src/assembler.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -o bin/uxnasm
32 32
 	cc src/uxn.c src/debugger.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -o bin/debugger
33
-	cc src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -lportmidi -o bin/emulator
33
+	cc src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -lportmidi -o bin/uxnemu
34
+fi
35
+
36
+echo "Installing.."
37
+if [ -d "$HOME/bin" ] && [ -e ./bin/uxnemu ] && [ -e ./bin/uxnasm ]
38
+then
39
+	cp ./bin/uxnemu $HOME/bin
40
+	cp ./bin/uxnasm $HOME/bin
41
+    echo "Installed in $HOME/bin" 
34 42
 fi
35 43
 
36 44
 echo "Assembling.."
... ...
@@ -42,7 +50,7 @@ then
42 50
 	echo "[cli]"
43 51
 	./bin/debugger bin/boot.rom
44 52
 else
45
-	./bin/emulator bin/boot.rom
53
+	./bin/uxnemu bin/boot.rom
46 54
 fi
47 55
 
48 56
 echo "Done."
49 57
\ No newline at end of file
50 58
deleted file mode 100644
... ...
@@ -1,948 +0,0 @@
1
-(
2
-	app/nasu : spritesheet editor
3
-
4
-	arrows - move selection
5
-	ctrl+arrows - change page
6
-	left-click  - add pixel
7
-	right-click  - remove pixel
8
-	1 2 3  - select brush
9
-
10
-	TODO:
11
-		Copy in 2 bits mode, copies 2 tiles
12
-		Modify up to 4 pages
13
-		Save/load/rename
14
-		Select paint color for 2-bit mode
15
-)
16
-
17
-%+  { ADD } %-   { SUB }  %*  { MUL } %/   { DIV }
18
-%<  { LTH } %>   { GTH }  %=  { EQU } %!   { NEQ }
19
-%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
20
-%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
21
-
22
-%RTN { JMP2r }
23
-%STEP8 { #0033 SFT2 }
24
-
25
-%SFL { #40 SFT SFT }
26
-%MOD { DUP2 DIV MUL SUB }
27
-
28
-%TOB { SWP POP } %TOS { #00 SWP }
29
-
30
-%DEBUG  { .Console/byte DEO #0a .Console/char DEO }
31
-%DEBUG2 { .Console/short DEO2 #0a .Console/char DEO }
32
-
33
-%LTS2  { #8000 ADD2 SWP2 #8000 ADD2 GTH2 }
34
-%GTS2  { #8000 ADD2 SWP2 #8000 ADD2 LTH2 }
35
-
36
-%SIZE-TO-RECT {
37
-	STH2 STH2 OVR2 STH2r ADD2 OVR2 STH2r ADD2
38
-} ( x y w h -- x1 y1 x2 y2 )
39
-
40
-%SET-RECT {
41
-	DUP2 ROT2 SWP2 #0006 ADD2 STA2
42
-	DUP2 ROT2 SWP2 #0004 ADD2 STA2
43
-	DUP2 ROT2 SWP2 #0002 ADD2 STA2
44
-	DUP2 ROT2 SWP2 STA2
45
-	POP2
46
-} ( x1 y1 x2 y2 addr -- )
47
-
48
-%BANK { #2000 }
49
-
50
-( devices )
51
-
52
-|00 @System     [ &vector $2 &pad     $6 &r $2 &g $2 &b $2 ]
53
-|10 @Console    [ &vector $2 &pad     $6 &char $1 &byte $1 &short $2 &string $2 ]
54
-|20 @Screen     [ &vector $2 &width   $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $1 ]
55
-|80 @Controller [ &vector $2 &button  $1 &key $1 ]
56
-|90 @Mouse      [ &vector $2 &x       $2 &y $2 &state $1 &chord $1 ]
57
-|a0 @File       [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]
58
-
59
-( variables )
60
-
61
-|0000
62
-
63
-@settings [ 
64
-	&blending $1 
65
-	&depth $1 
66
-	&brush $1 
67
-	&page $2 
68
-	&tile $2 
69
-	&ratio $1 ]
70
-
71
-@frame [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 &width $2 &height $2 ]
72
-
73
-( interface )
74
-@bankview  [ &x  $2 &y  $2 &mode $1 &selection $1 ]
75
-@tileview  [ &x  $2 &y  $2 ]
76
-
77
-@editview  [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
78
-@colorview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
79
-@blendview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
80
-@dataview  [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
81
-@preview   [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
82
-
83
-@rect [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
84
-@mouse [ &x $2 &y $2 ]
85
-@pt [ &x $1 &y $1 ]
86
-@pos [ &x $2 &y $2 ]
87
-
88
-@color $1 
89
-@i     $1
90
-
91
-( program )
92
-
93
-|0100 ( -> )
94
-
95
-	( theme ) 
96
-	#0efc .System/r DEO2 
97
-	#03cc .System/g DEO2 
98
-	#03ac .System/b DEO2
99
-
100
-	( vectors )
101
-	;on-button   .Controller/vector DEO2
102
-	;on-mouse    .Mouse/vector DEO2
103
-	;on-transfer .File/vector DEO2
104
-
105
-	( set defaults )
106
-	#0130 .frame/width STZ2
107
-	#00a8 .frame/height STZ2
108
-	#01 .settings/brush STZ
109
-	#32 .settings/ratio STZ
110
-
111
-	.Screen/width DEI2 #0001 SFT2 .frame/width LDZ2 #0001 SFT2 SUB2
112
-	.Screen/height DEI2 #0001 SFT2 .frame/height LDZ2 #0001 SFT2 SUB2 #0010 ADD2
113
-	.frame/width LDZ2 .frame/height LDZ2
114
-	SIZE-TO-RECT ;frame SET-RECT
115
-
116
-	.frame/x1 LDZ2 #0010 ADD2 .bankview/x STZ2
117
-	.frame/y1 LDZ2 .bankview/y STZ2
118
-	BANK .settings/page STZ2
119
-
120
-	.frame/x2 LDZ2 #0098 SUB2 .tileview/x STZ2
121
-	.frame/y1 LDZ2 .tileview/y STZ2
122
-	BANK #0448 ADD2 .settings/tile STZ2
123
-
124
-	.frame/x2 LDZ2 #0010 SUB2 .frame/y1 LDZ2 #0010 #0080 SIZE-TO-RECT ;dataview SET-RECT
125
-	.frame/x1 LDZ2 #0010 ADD2 .frame/y2 LDZ2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;blendview SET-RECT
126
-	.frame/x1 LDZ2 #0060 ADD2 .frame/y2 LDZ2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT
127
-	.frame/x1 LDZ2 #0038 ADD2 .frame/y2 LDZ2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT
128
-	.frame/x2 LDZ2 #0098 SUB2 .frame/y1 LDZ2 #0080 #0080 SIZE-TO-RECT ;editview SET-RECT
129
-
130
-	#01 .settings/blending STZ
131
-
132
-	;filepath1 .File/name DEO2 #0800 .File/length DEO2 BANK .File/load DEO2
133
-	;filepath2 .File/name DEO2 #0800 .File/length DEO2 BANK #0800 ADD2 .File/load DEO2
134
-	;filepath3 .File/name DEO2 #1000 .File/length DEO2 BANK #1000 ADD2 .File/load DEO2
135
-	;filepath4 .File/name DEO2 #1000 .File/length DEO2 BANK #2000 ADD2 .File/load DEO2
136
-	;filepath5 .File/name DEO2 #1000 .File/length DEO2 BANK #2800 ADD2 .File/load DEO2
137
-	;filepath6 .File/name DEO2 #1000 .File/length DEO2 BANK #3800 ADD2 .File/load DEO2
138
-
139
-	#40 DUP .bankview/selection STZ ;select-tile JSR2
140
-
141
-BRK
142
-
143
-@on-transfer ( -> )
144
-	
145
-	;redraw JSR2
146
-	
147
-BRK
148
-
149
-@on-button ( -> )
150
-	
151
-	( skip ) .Controller/button DEI #00 NEQ #01 JCN [ BRK ]
152
-
153
-	.Controller/button DEI #11 NEQ ,&no-pageup JCN .settings/page LDZ2
154
-		#0800 SUB2 .settings/page STZ2 
155
-		;redraw JSR2 
156
-		BRK &no-pageup
157
-
158
-	.Controller/button DEI #21 NEQ ,&no-pagedown JCN .settings/page LDZ2
159
-		#0800 ADD2 .settings/page STZ2 
160
-		;redraw JSR2 
161
-		BRK &no-pagedown
162
-
163
-	.Controller/button DEI #f0 AND
164
-		DUP #04 SFT #01 AND #01 NEQ ,&no-up JCN
165
-			( move ) .bankview/selection LDZ #10 SUB .bankview/selection STZ &no-up
166
-		DUP #05 SFT #01 AND #01 NEQ ,&no-down JCN
167
-			( move ) .bankview/selection LDZ #10 ADD .bankview/selection STZ &no-down
168
-		DUP #06 SFT #01 AND #01 NEQ ,&no-left JCN
169
-			( move ) .bankview/selection LDZ #01 SUB .bankview/selection STZ &no-left
170
-		DUP #07 SFT #01 AND #01 NEQ ,&no-right JCN
171
-			( move ) .bankview/selection LDZ #01 ADD .bankview/selection STZ &no-right
172
-		POP
173
-
174
-	.bankview/selection LDZ ;select-tile JSR2
175
-
176
-BRK
177
-
178
-@on-mouse ( -> )
179
-	
180
-	;draw-cursor JSR2
181
-
182
-	( skip ) .Mouse/state DEI #00 NEQ #01 JCN [ BRK ]
183
-
184
-	( toolbar )
185
-	.Mouse/y DEI2 .bankview/y LDZ2 #0010 SUB2 SUB2 #0008 DIV2 #0000 NEQ2 ;&no-toolbar-click JCN2
186
-		( brush )
187
-		.Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 #000d LTH2 ,&no-brush-click JCN
188
-		.Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 #000f GTH2 ,&no-brush-click JCN
189
-			( select ) .mouse/x LDZ2 .bankview/x LDZ2 SUB2 #0008 DIV2 #000d SUB2 TOB .bankview/mode STZ
190
-		&no-brush-click
191
-		.Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 #0005 NEQ2 ,&no-toggle-depth JCN
192
-			;toggle-depth JSR2
193
-		&no-toggle-depth
194
-			( release ) #00 .Mouse/state DEO
195
-			;redraw JSR2 BRK
196
-	&no-toolbar-click
197
-
198
-	( bankview )
199
-	.Mouse/x DEI2 .bankview/x LDZ2 GTH2 .Mouse/x DEI2 .bankview/x LDZ2 #0080 ADD2 LTH2 #0101 EQU2
200
-	.Mouse/y DEI2 .bankview/y LDZ2 GTH2 .Mouse/y DEI2 .bankview/y LDZ2 #0080 ADD2 LTH2 #0101 EQU2
201
-	#0101 EQU2 ;on-touch-bankview JCN2
202
-
203
-	( tileview )
204
-	.Mouse/x DEI2 .tileview/x LDZ2 GTH2 .Mouse/x DEI2 .tileview/x LDZ2 #0080 ADD2 LTH2 #0101 EQU2
205
-	.Mouse/y DEI2 .tileview/y LDZ2 GTH2 .Mouse/y DEI2 .tileview/y LDZ2 #0080 ADD2 LTH2 #0101 EQU2
206
-	#0101 EQU2 ;on-touch-tileview JCN2
207
-
208
-	( editview )
209
-	.Mouse/x DEI2 DUP2 .editview/x1 LDZ2 GTH2 ROT ROT .editview/x2 LDZ2 LTH2 #0101 EQU2
210
-	.Mouse/y DEI2 DUP2 .editview/y1 LDZ2 GTH2 ROT ROT .editview/y2 LDZ2 LTH2 #0101 EQU2
211
-	#0101 EQU2 ;on-touch-editview JCN2
212
-
213
-	( dataview )
214
-	.Mouse/x DEI2 DUP2 .dataview/x1 LDZ2 GTH2 ROT ROT .dataview/x2 LDZ2 LTH2 #0101 EQU2
215
-	.Mouse/y DEI2 DUP2 .dataview/y1 LDZ2 GTH2 ROT ROT .dataview/y2 LDZ2 LTH2 #0101 EQU2
216
-	#0101 EQU2 ;on-touch-dataview JCN2
217
-
218
-	( blendbiew )
219
-	.Mouse/x DEI2 DUP2 .blendview/x1 LDZ2 GTH2 ROT ROT .blendview/x2 LDZ2 LTH2 #0101 EQU2
220
-	.Mouse/y DEI2 DUP2 .blendview/y1 LDZ2 GTH2 ROT ROT .blendview/y2 LDZ2 LTH2 #0101 EQU2
221
-	#0101 EQU2 ;on-touch-blendview JCN2
222
-
223
-	( colorview )
224
-	.Mouse/x DEI2 DUP2 .colorview/x1 LDZ2 GTH2 ROT ROT .colorview/x2 LDZ2 LTH2 #0101 EQU2
225
-	.Mouse/y DEI2 DUP2 .colorview/y1 LDZ2 GTH2 ROT ROT .colorview/y2 LDZ2 LTH2 #0101 EQU2
226
-	#0101 EQU2 ;on-touch-colorview JCN2
227
-
228
-	( preview )
229
-	.Mouse/x DEI2 DUP2 .preview/x1 LDZ2 GTH2 ROT ROT .preview/x2 LDZ2 LTH2 #0101 EQU2
230
-	.Mouse/y DEI2 DUP2 .preview/y1 LDZ2 GTH2 ROT ROT .preview/y2 LDZ2 LTH2 #0101 EQU2
231
-	#0101 EQU2 ;on-touch-preview JCN2
232
-
233
-BRK
234
-
235
-@on-touch-bankview ( -> )
236
-	
237
-	.bankview/mode LDZ #01 NEQ ,&not-copy-mode JCN
238
-		#00 .i STZ
239
-		&copy-loop
240
-			( load ) .settings/tile LDZ2 .i LDZ ADD LDA
241
-			( get touch addr )
242
-			.Mouse/x DEI2 .bankview/x LDZ2 SUB2 STEP8
243
-			.Mouse/y DEI2 .bankview/y LDZ2 SUB2 STEP8 #0010 MUL2 ADD2
244
-			( 2-bit mode ) #00 .settings/depth LDZ #01 ADD MUL2
245
-			.settings/page LDZ2 ADD2 #00 .i LDZ ADD2 STA
246
-			( incr ) .i LDZ #01 ADD .i STZ
247
-			.i LDZ #08 LTH ,&copy-loop JCN
248
-		;redraw JSR2 BRK
249
-	&not-copy-mode
250
-
251
-	.bankview/mode LDZ #02 NEQ ,&not-erase-mode JCN
252
-		#00 .i STZ
253
-		&erase-loop
254
-			#00
255
-			( get touch addr )
256
-			.Mouse/x DEI2 .bankview/x LDZ2 SUB2 STEP8
257
-			.Mouse/y DEI2 .bankview/y LDZ2 SUB2 STEP8 #0010 MUL2 ADD2
258
-			( 2-bit mode ) #00 .settings/depth LDZ #01 ADD MUL2
259
-			.settings/page LDZ2 ADD2 #00 .i LDZ ADD2 STA
260
-			( incr ) .i LDZ #01 ADD .i STZ
261
-			.i LDZ #08 LTH ,&erase-loop JCN
262
-		;redraw JSR2 BRK
263
-	&not-erase-mode
264
-
265
-	( select )
266
-
267
-	.Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 TOB
268
-	.Mouse/y DEI2 .bankview/y LDZ2 SUB2 #0008 DIV2 TOB #40 SFT ADD
269
-	DUP .bankview/selection STZ
270
-	;select-tile JSR2
271
-
272
-BRK
273
-
274
-@on-touch-tileview ( -> )
275
-	
276
-
277
-BRK
278
-
279
-@on-touch-editview ( -> )
280
-	
281
-	#aa DEBUG
282
-
283
-BRK
284
-
285
-@on-touch-dataview ( -> )
286
-
287
-	.Mouse/y DEI2 .dataview/y1 LDZ2 SUB2 STEP8 TOB #60 EQU ,&skip JCN BRK &skip
288
-	.Mouse/x DEI2 .dataview/x1 LDZ2 SUB2 #0008 DIV2 TOB
289
-	DUP #00 NEQ ,&no-move-up JCN
290
-		;op_shiftup JSR2
291
-		( release ) #00 .Mouse/state DEO
292
-		;redraw JSR2 POP BRK &no-move-up
293
-	DUP #01 NEQ ,&no-move-down JCN
294
-		;op_shiftdown JSR2
295
-		( release ) #00 .Mouse/state DEO
296
-		;redraw JSR2 POP BRK &no-move-down
297
-	POP
298
-
299
-BRK
300
-
301
-@on-touch-blendview ( -> )
302
-
303
-	.Mouse/x DEI2 .blendview/x1 LDZ2 SUB2 #0008 DIV2 TOB
304
-	.Mouse/y DEI2 .blendview/y1 LDZ2 SUB2 #0008 DIV2 TOB #04 MUL ADD
305
-	.settings/blending STZ
306
-	( release ) #00 .Mouse/state DEO
307
-	;redraw JSR2
308
-
309
-BRK
310
-
311
-@on-touch-colorview ( -> )
312
-
313
-	( channel ) .Mouse/y DEI2 .colorview/y1 LDZ2 SUB2 #0008 DIV2 TOB STH
314
-	( rgb ) .Mouse/x DEI2 .colorview/x1 LDZ2 SUB2 #0008 DIV2 TOB
315
-	DUP #00 NEQ ,&no-brush JCN
316
-		DUPr STHr .settings/brush STZ &no-brush
317
-	DUP #01 NEQ ,&no-red JCN
318
-		DUPr STHr .System/r ;set-color JSR2 &no-red
319
-	DUP #02 NEQ ,&no-green JCN
320
-		DUPr STHr .System/g ;set-color JSR2 &no-green
321
-	DUP #03 NEQ ,&no-blue JCN
322
-		DUPr STHr .System/b ;set-color JSR2 &no-blue
323
-	POP POPr
324
-	( release ) #00 .Mouse/state DEO
325
-	;redraw JSR2
326
-
327
-BRK
328
-
329
-@on-touch-preview ( -> )
330
-
331
-	( y ) .Mouse/y DEI2 .preview/y1 LDZ2 SUB2 #0008 DIV2 TOB
332
-	( x ) .Mouse/x DEI2 .preview/x1 LDZ2 SUB2 #0008 DIV2 TOB
333
-
334
-	#40 SFT ADD #11 ADD
335
-	.settings/ratio STZ
336
-
337
-	( release ) #00 .Mouse/state DEO
338
-	;redraw JSR2
339
-
340
-BRK
341
-
342
-@set-color ( color rgb -- )
343
-	
344
-	STH
345
-	DUP #00 NEQ ,&no-red0 JCN
346
-		DUPr STHr DEI DUP #04 SFT #01 ADD
347
-		( add/sub ) .Mouse/state DEI #10 EQU #fe MUL ADD
348
-		( resume ) #40 SFT SWP #0f AND ADD DUPr STHr DEO
349
-		&no-red0
350
-	DUP #01 NEQ ,&no-red1 JCN
351
-		DUPr STHr DEI DUP #0f AND #01 ADD
352
-		( add/sub ) .Mouse/state DEI #10 EQU #fe MUL ADD
353
-		( resume ) #0f AND SWP #f0 AND ADD DUPr STHr DEO
354
-		&no-red1
355
-	DUP #02 NEQ ,&no-red2 JCN
356
-		DUPr STHr #01 ADD DEI DUP #04 SFT #01 ADD
357
-		( add/sub ) .Mouse/state DEI #10 EQU #fe MUL ADD
358
-		( resume ) #40 SFT SWP #0f AND ADD DUPr STHr #01 ADD DEO
359
-		&no-red2
360
-	DUP #03 NEQ ,&no-red3 JCN
361
-		DUPr STHr #01 ADD DEI DUP #0f AND #01 ADD
362
-		( add/sub ) .Mouse/state DEI #10 EQU #fe MUL ADD
363
-		( resume ) #0f AND SWP #f0 AND ADD DUPr STHr #01 ADD DEO
364
-		&no-red3
365
-	POP
366
-	POPr
367
-
368
-RTN
369
-
370
-@select-tile ( pos -- )
371
-
372
-	( x y ) DUP #0f AND SWP #04 SFT
373
-	( y ) #10 MOD #10 MUL #00 SWP #0008 MUL2
374
-	( x ) ROT #10 MOD #00 SWP #0008 MUL2 ADD2
375
-	( 2-bit mode ) #00 .settings/depth LDZ #01 ADD MUL2
376
-	( offset ) .settings/page LDZ2 ADD2 .settings/tile STZ2
377
-	;redraw JSR2
378
-
379
-RTN
380
-
381
-@toggle-depth ( -- )
382
-	
383
-	.bankview/selection LDZ
384
-	.settings/depth LDZ #00 EQU .settings/depth STZ
385
-	;select-tile JSR2
386
-
387
-RTN
388
-
389
-@op_shiftup ( -- )
390
-	
391
-	.settings/tile LDZ2 LDA
392
-	.settings/tile LDZ2 #0001 ADD2 LDA .settings/tile LDZ2 STA
393
-	.settings/tile LDZ2 #0002 ADD2 LDA .settings/tile LDZ2 #0001 ADD2 STA
394
-	.settings/tile LDZ2 #0003 ADD2 LDA .settings/tile LDZ2 #0002 ADD2 STA
395
-	.settings/tile LDZ2 #0004 ADD2 LDA .settings/tile LDZ2 #0003 ADD2 STA
396
-	.settings/tile LDZ2 #0005 ADD2 LDA .settings/tile LDZ2 #0004 ADD2 STA
397
-	.settings/tile LDZ2 #0006 ADD2 LDA .settings/tile LDZ2 #0005 ADD2 STA
398
-	.settings/tile LDZ2 #0007 ADD2 LDA .settings/tile LDZ2 #0006 ADD2 STA
399
-	.settings/tile LDZ2 #0007 ADD2 STA
400
-
401
-RTN
402
-
403
-@op_shiftdown ( -- )
404
-	
405
-	.settings/tile LDZ2 #0007 ADD2 LDA
406
-	.settings/tile LDZ2 #0006 ADD2 LDA .settings/tile LDZ2 #0007 ADD2 STA
407
-	.settings/tile LDZ2 #0005 ADD2 LDA .settings/tile LDZ2 #0006 ADD2 STA
408
-	.settings/tile LDZ2 #0004 ADD2 LDA .settings/tile LDZ2 #0005 ADD2 STA
409
-	.settings/tile LDZ2 #0003 ADD2 LDA .settings/tile LDZ2 #0004 ADD2 STA
410
-	.settings/tile LDZ2 #0002 ADD2 LDA .settings/tile LDZ2 #0003 ADD2 STA
411
-	.settings/tile LDZ2 #0001 ADD2 LDA .settings/tile LDZ2 #0002 ADD2 STA
412
-	.settings/tile LDZ2 LDA .settings/tile LDZ2 #0001 ADD2 STA
413
-	.settings/tile LDZ2 STA
414
-
415
-RTN
416
-
417
-@redraw ( -- )
418
-	
419
-	;draw-bankview JSR2
420
-	;draw-editview JSR2
421
-	;draw-blendview JSR2
422
-	;draw-colorview JSR2
423
-	;draw-dataview JSR2
424
-	;draw-preview JSR2
425
-
426
-RTN
427
-
428
-@draw-bankview ( -- )
429
-	
430
-	.bankview/x LDZ2 #0002 SUB2 .bankview/y LDZ2 #0002 SUB2 .bankview/x LDZ2 #0081 ADD2 .bankview/y LDZ2 #0081 ADD2 #03 ;line-rect JSR2
431
-
432
-	( position )
433
-
434
-	.bankview/x LDZ2 .Screen/x DEO2
435
-	.bankview/y LDZ2 #0010 SUB2 .Screen/y DEO2
436
-	.settings/page LDZ2 #22 ;draw-short JSR2
437
-
438
-	( toolbar )
439
-
440
-	.bankview/y LDZ2 #0010 SUB2 .Screen/y DEO2
441
-
442
-	.bankview/x LDZ2 #0028 ADD2 .Screen/x DEO2
443
-	;depth_icns #00 .settings/depth LDZ #0008 MUL2 ADD2 .Screen/addr DEO2
444
-	#23 .Screen/color DEO
445
-
446
-	.bankview/x LDZ2 #0068 ADD2 .Screen/x DEO2
447
-	;tool_selector .Screen/addr DEO2
448
-	#21 .bankview/mode LDZ #00 EQU ADD .Screen/color DEO
449
-
450
-	.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
451
-	;tool_hand .Screen/addr DEO2
452
-	#21 .bankview/mode LDZ #01 EQU ADD .Screen/color DEO
453
-
454
-	.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
455
-	;tool_eraser .Screen/addr DEO2
456
-	#21 .bankview/mode LDZ #02 EQU ADD .Screen/color DEO
457
-
458
-	( guides )
459
-
460
-	.bankview/x LDZ2 #0010 SUB2 .Screen/x DEO2
461
-	.bankview/y LDZ2 .Screen/y DEO2
462
-	;font-hex .Screen/addr DEO2
463
-	#00 #10
464
-	&guides
465
-		( draw ) OVR .bankview/selection LDZ #04 SFT EQU #22 ADD .Screen/color DEO
466
-		.Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2
467
-		.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
468
-		SWP #01 ADD SWP
469
-		DUP2 LTH ,&guides JCN
470
-	POP2
471
-
472
-	( draw page )
473
-
474
-	( load ) .settings/page LDZ2 .Screen/addr DEO2
475
-	.bankview/y LDZ2 DUP2 #0080 ADD2
476
-	&ver
477
-		( save ) OVR2 .Screen/y DEO2
478
-		.bankview/x LDZ2 DUP2 #0080 ADD2
479
-		&hor
480
-			( save ) OVR2 .Screen/x DEO2
481
-			( get selected ) .Screen/addr DEI2 .settings/tile LDZ2 EQU2
482
-			( get blending ) .settings/blending LDZ
483
-			( get depth ) .settings/depth LDZ #20 MUL
484
-			( draw ) #20 ADD ADD ADD .Screen/color DEO
485
-			( incr ) SWP2 #0008 ADD2 SWP2
486
-			( incr ) .Screen/addr DEI2 #0008 ADD2 #00 .settings/depth LDZ #0008 MUL2 ADD2 .Screen/addr DEO2
487
-			OVR2 OVR2 LTH2 ,&hor JCN
488
-		POP2 POP2
489
-		( incr ) SWP2 #0008 ADD2 SWP2
490
-		OVR2 OVR2 LTH2 ,&ver JCN
491
-	POP2 POP2
492
-
493
-RTN
494
-
495
-@draw-tileview ( -- )
496
-
497
-	.tileview/x LDZ2 #0002 SUB2 .tileview/y LDZ2 #0002 SUB2 .tileview/x LDZ2 #0080 ADD2 .tileview/y LDZ2 #0081 ADD2 #03 ;line-rect JSR2
498
-
499
-	.tileview/x LDZ2 #0028 ADD2 .Screen/x DEO2
500
-	.tileview/y LDZ2 #0010 SUB2 .Screen/y DEO2
501
-	.settings/tile LDZ2 .Screen/addr DEO2
502
-
503
-	( get blending ) .settings/blending LDZ
504
-	( get depth ) .settings/depth LDZ #20 MUL
505
-	( draw ) #20 ADD ADD .Screen/color DEO
506
-
507
-	( position )
508
-
509
-	.tileview/x LDZ2 .Screen/x DEO2
510
-	.tileview/y LDZ2 #0010 SUB2 .Screen/y DEO2
511
-	.settings/tile LDZ2 #22 ;draw-short JSR2
512
-
513
-	( body )
514
-
515
-	.tileview/x LDZ2 .Screen/x DEO2
516
-	.tileview/y LDZ2 .Screen/y DEO2
517
-	.settings/tile LDZ2 .settings/tile STZ2
518
-	;draw-tileview-icn JSR2
519
-
520
-	.tileview/x LDZ2 #0040 ADD2 .Screen/x DEO2
521
-	.tileview/y LDZ2 .Screen/y DEO2
522
-	.settings/tile LDZ2 #0008 ADD2 .settings/tile STZ2
523
-	;draw-tileview-icn JSR2
524
-
525
-	.tileview/x LDZ2 .Screen/x DEO2
526
-	.tileview/y LDZ2 #0040 ADD2 .Screen/y DEO2
527
-	.settings/tile LDZ2 #0008 ADD2 .settings/tile STZ2
528
-	;draw-tileview-icn JSR2
529
-
530
-	.tileview/x LDZ2 #0040 ADD2 .Screen/x DEO2
531
-	.tileview/y LDZ2 #0040 ADD2 .Screen/y DEO2
532
-	.settings/tile LDZ2 #0008 ADD2 .settings/tile STZ2
533
-	;draw-tileview-icn JSR2
534
-
535
-	( line hor )
536
-	.tileview/y LDZ2 #003f ADD2 .Screen/y DEO2
537
-	.tileview/x LDZ2 .Screen/x DEO2
538
-	&line-hor
539
-		( draw ) #03 .Screen/color DEO
540
-		( incr ) .Screen/x DEI2 #0002 ADD2 .Screen/x DEO2
541
-	.Screen/x DEI2 .tileview/x LDZ2 #0082 ADD2 LTH2 ,&line-hor JCN
542
-
543
-	( line ver )
544
-	.tileview/y LDZ2 .Screen/y DEO2
545
-	.tileview/x LDZ2 #003f ADD2 .Screen/x DEO2
546
-	&line-ver
547
-		( draw ) #03 .Screen/color DEO
548
-		( incr ) .Screen/y DEI2 #0002 ADD2 .Screen/y DEO2
549
-	.Screen/y DEI2 .tileview/y LDZ2 #0081 ADD2 LTH2 ,&line-ver JCN
550
-
551
-	( rewind ) .settings/tile LDZ2 #0018 SUB2 .settings/tile STZ2
552
-
553
-RTN
554
-
555
-@draw-editview ( -- )
556
-
557
-	.editview/x1 LDZ2 #0002 SUB2 .editview/y1 LDZ2 #0002 SUB2 .editview/x2 LDZ2 #0001 ADD2 .editview/y2 LDZ2 #0001 ADD2 #03 ;line-rect JSR2
558
-
559
-	( position )
560
-
561
-	.editview/x1 LDZ2 .Screen/x DEO2
562
-	.editview/y1 LDZ2 #0010 SUB2 .Screen/y DEO2
563
-	.settings/tile LDZ2 #22 ;draw-short JSR2
564
-
565
-	( tiles )
566
-	.settings/tile LDZ2 DUP2 STH2 .Screen/addr DEO2
567
-	#00 #04
568
-	&ver
569
-		OVR #08 MUL TOS #0004 MUL2 .editview/y1 LDZ2 ADD2 .Screen/y DEO2
570
-		#00 #04
571
-		&hor
572
-			OVR #08 MUL TOS #0004 MUL2 .editview/x1 LDZ2 ADD2 .Screen/x DEO2
573
-			( get x,y )
574
-			SWP2 OVR STH SWP2 OVR STHr
575
-			( check if within ratio )
576
-			.settings/ratio LDZ #0f AND LTH STH
577
-			.settings/ratio LDZ #04 SFT LTH STHr
578
-			#0101 NEQ2 ,&outside JCN 
579
-
580
-				( get tile ) DUP2r STH2r .Screen/addr DEO2
581
-
582
-				( draw zoomed tile )
583
-				#01 ;draw-tile JSR2
584
-
585
-				( incr ) STH2r #0008 ADD2 STH2
586
-				,&resume JMP
587
-			&outside
588
-			;halftone_icn .Screen/addr DEO2
589
-			#23 .Screen/color DEO
590
-			#00 ;draw-tile JSR2
591
-			&resume
592
-			( incr ) SWP #01 ADD SWP
593
-			DUP2 LTH ,&hor JCN
594
-		POP2
595
-		( incr ) SWP #01 ADD SWP
596
-		DUP2 LTH ;&ver JCN2
597
-	POP2
598
-	POP2r
599
-
600
-	( grid )
601
-	.editview/x1 LDZ2 DUP2 #0080 ADD2 .editview/y1 LDZ2 #0020 ADD2 #03 ;line-hor JSR2
602
-	.editview/x1 LDZ2 DUP2 #0080 ADD2 .editview/y1 LDZ2 #0040 ADD2 #03 ;line-hor JSR2
603
-	.editview/x1 LDZ2 DUP2 #0080 ADD2 .editview/y1 LDZ2 #0060 ADD2 #03 ;line-hor JSR2
604
-	.editview/x1 LDZ2 #0020 ADD2 .editview/y1 LDZ2 DUP2 #0080 ADD2 #03 ;line-ver JSR2
605
-	.editview/x1 LDZ2 #0040 ADD2 .editview/y1 LDZ2 DUP2 #0080 ADD2 #03 ;line-ver JSR2
606
-	.editview/x1 LDZ2 #0060 ADD2 .editview/y1 LDZ2 DUP2 #0080 ADD2 #03 ;line-ver JSR2
607
-
608
-RTN
609
-
610
-@draw-tile ( color -- )
611
-	
612
-	( TODO: complete )
613
-	STH
614
-	#00 #20
615
-	&ver
616
-		#00 #20
617
-		&hor
618
-
619
-			( get x,y )
620
-			SWP2 OVR STH SWP2 OVR STHr
621
-
622
-			( get address )
623
-			.Screen/addr DEI2 
624
-
625
-			( after this, ADDR XY )
626
-			SWP2 SWP STH
627
-
628
-
629
-			( got sprite line )
630
-			#04 DIV TOS ADD2 LDA
631
-
632
-			( get pixel )
633
-			STHr #04 DIV
634
-			#07 SWP SUB SFT #01 AND
635
-
636
-			.Screen/color DEO
637
-
638
-			#0001 .Screen/x DEI2 ADD2 .Screen/x DEO2
639
-			( incr ) SWP #01 ADD SWP
640
-			DUP2 LTH ,&hor JCN
641
-		POP2
642
-		#0001 .Screen/y DEI2 ADD2 .Screen/y DEO2
643
-		.Screen/x DEI2 #0020 SUB2 .Screen/x DEO2
644
-		( incr ) SWP #01 ADD SWP
645
-		DUP2 LTH ,&ver JCN
646
-	POP2
647
-	.Screen/y DEI2 #0020 SUB2 .Screen/y DEO2
648
-	POPr
649
-
650
-RTN
651
-
652
-@draw-tileview-icn ( -- )
653
-
654
-	#00 .pt/x STZ #00 .pt/y STZ
655
-	&ver
656
-		#00 .pt/x STZ
657
-		&hor
658
-			( get bit )
659
-			;blank_icn #00
660
-			.settings/tile LDZ2 #00 .pt/y LDZ ADD2 LDA #07 .pt/x LDZ SUB SFT #01 AND ( get bit )
661
-			#0008 MUL2 ADD2 .Screen/addr DEO2 ( add *8 )
662
-			( draw ) #21 .Screen/color DEO
663
-			( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
664
-			( incr ) .pt/x LDZ #01 ADD .pt/x STZ
665
-			.pt/x LDZ #08 LTH ;&hor JCN2
666
-		( incr ) .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
667
-		( incr ) .pt/y LDZ #01 ADD .pt/y STZ
668
-		.Screen/x DEI2 #0040 SUB2 .Screen/x DEO2
669
-		.pt/y LDZ #08 LTH ;&ver JCN2
670
-
671
-RTN
672
-
673
-@draw-blendview ( -- )
674
-	
675
-	( .blendview/x1 LDZ2 #0002 SUB2 .blendview/y1 LDZ2 #0002 SUB2 .blendview/x2 LDZ2 #0001 ADD2 .blendview/y2 LDZ2 #0001 ADD2 #03 ;line-rect JSR2 )
676
-
677
-	.settings/tile LDZ2 .Screen/addr DEO2
678
-	#00 #10
679
-	&loop
680
-		OVR #04 MOD #00 SWP #0008 MUL2 .blendview/x1 LDZ2 ADD2 .Screen/x DEO2
681
-		OVR #04 DIV #00 SWP #0008 MUL2 .blendview/y1 LDZ2 ADD2 .Screen/y DEO2
682
-		#20 .Screen/color DEO
683
-		OVR #20 ADD .settings/depth LDZ #20 MUL ADD .Screen/color DEO
684
-		SWP #01 ADD SWP
685
-		DUP2 LTH ,&loop JCN
686
-	POP2
687
-
688
-	.blendview/x1 LDZ2 .Screen/x DEO2
689
-	.blendview/y2 LDZ2 #0001 ADD2 .Screen/y DEO2
690
-	( get blending ) .settings/blending LDZ
691
-	( get depth ) .settings/depth LDZ #20 MUL
692
-	( draw ) #20 ADD ADD #21 ;draw-byte JSR2
693
-
694
-RTN
695
-
696
-@draw-dataview ( -- )
697
-
698
-	( bytes )
699
-
700
-	.tileview/y LDZ2 #0018 ADD2 .Screen/y DEO2
701
-	#00 .i STZ
702
-	&bytes
703
-		.tileview/x LDZ2 #0088 ADD2 .Screen/x DEO2
704
-		.settings/tile LDZ2 #00 .i LDZ ADD2 LDA #22 ;draw-byte JSR2
705
-		( incr ) .i LDZ #01 ADD .i STZ
706
-		( incr ) .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
707
-	.i LDZ #08 LTH ;&bytes JCN2
708
-
709
-	( operations )
710
-
711
-	.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
712
-	;movedown_icn .Screen/addr DEO2
713
-	#21 .Screen/color DEO
714
-	.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2
715
-	;moveup_icn .Screen/addr DEO2
716
-	#21 .Screen/color DEO
717
-
718
-	( draw tiles 2x2 )
719
-	.tileview/y LDZ2 .Screen/y DEO2
720
-	#00 .pt/x STZ #00 .pt/y STZ .settings/tile LDZ2 .Screen/addr DEO2
721
-
722
-	&tiles-ver
723
-		#00 .pt/x STZ
724
-		.tileview/x LDZ2 #0088 ADD2 .Screen/x DEO2
725
-		&tiles-hor
726
-			( draw ) #23 .Screen/color DEO
727
-			( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
728
-			( incr ) .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2
729
-			( incr ) .pt/x LDZ #01 ADD .pt/x STZ
730
-			.pt/x LDZ #02 LTH ;&tiles-hor JCN2
731
-		( incr ) .pt/y LDZ #01 ADD .pt/y STZ
732
-		( incr ) .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
733
-		.pt/y LDZ #02 LTH ;&tiles-ver JCN2
734
-
735
-RTN
736
-
737
-@draw-colorview ( -- )
738
-
739
-	.colorview/y1 LDZ2 #18 ADD .Screen/y DEO2
740
-	.colorview/x1 LDZ2 #08 ADD .Screen/x DEO2
741
-	.System/r DEI2 ;draw-color-code JSR2
742
-	.colorview/y1 LDZ2 #18 ADD .Screen/y DEO2
743
-	.colorview/x1 LDZ2 #10 ADD .Screen/x DEO2
744
-	.System/g DEI2 ;draw-color-code JSR2
745
-	.colorview/y1 LDZ2 #18 ADD .Screen/y DEO2
746
-	.colorview/x1 LDZ2 #18 ADD .Screen/x DEO2
747
-	.System/b DEI2 ;draw-color-code JSR2	
748
-
749
-	.colorview/x1 LDZ2 .Screen/x DEO2
750
-	;circle_icns .Screen/addr DEO2
751
-
752
-	#00 #04
753
-	&loop
754
-		OVR .settings/brush LDZ EQU #00 SWP #0008 MUL2 ;circle_icns ADD2 .Screen/addr DEO2
755
-		OVR .colorview/y1 LDZ2 ROT #00 SWP #0008 MUL2 ADD2 .Screen/y DEO2
756
-		OVR #20 ADD .Screen/color DEO
757
-		SWP #01 ADD SWP
758
-		DUP2 LTH ,&loop JCN
759
-	POP2
760
-
761
-RTN
762
-
763
-@draw-preview ( -- )
764
-
765
-	( stash address )
766
-	.settings/tile LDZ2 DUP2 STH2 .Screen/addr DEO2
767
-	#00 #04
768
-	&ver
769
-		OVR #08 MUL TOS .preview/y1 LDZ2 ADD2 .Screen/y DEO2
770
-		#00 #04
771
-		&hor
772
-			OVR #08 MUL TOS .preview/x1 LDZ2 ADD2 .Screen/x DEO2
773
-			( get x,y )
774
-			SWP2 OVR STH SWP2 OVR STHr
775
-			( check if within ratio )
776
-			.settings/ratio LDZ #0f AND LTH STH
777
-			.settings/ratio LDZ #04 SFT LTH STHr
778
-			#0101 NEQ2 ,&outside JCN 
779
-				( get tile ) DUP2r STH2r .Screen/addr DEO2
780
-				( get blending ) .settings/blending LDZ
781
-				( get depth ) .settings/depth LDZ #20 MUL
782
-				( draw ) #20 ADD ADD .Screen/color DEO
783
-				( incr ) STH2r #0008 [ .settings/depth LDZ #08 MUL TOS ADD2 ] ADD2 STH2
784
-				,&resume JMP
785
-			&outside
786
-			;halftone_icn .Screen/addr DEO2
787
-			#23 .Screen/color DEO
788
-			&resume
789
-			( incr ) SWP #01 ADD SWP
790
-			DUP2 LTH ,&hor JCN
791
-		POP2
792
-		( incr ) SWP #01 ADD SWP
793
-		DUP2 LTH ;&ver JCN2
794
-	POP2
795
-	POP2r
796
-	.preview/x1 LDZ2 #0001 SUB2 .Screen/x DEO2
797
-	.preview/y2 LDZ2 #0001 ADD2 .Screen/y DEO2
798
-	.settings/ratio LDZ #23 ;draw-byte JSR2
799
-
800
-RTN
801
-
802
-@draw-color-code ( color* -- )
803
-	
804
-	DUP ;font-hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2
805
-	( draw ) #22 .Screen/color DEO
806
-	.colorview/y1 LDZ2 #10 ADD .Screen/y DEO2
807
-	;font-hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2
808
-	( draw ) #22 .Screen/color DEO
809
-	.colorview/y1 LDZ2 #08 ADD .Screen/y DEO2
810
-	DUP ;font-hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2
811
-	( draw ) #22 .Screen/color DEO
812
-	.colorview/y1 LDZ2 .Screen/y DEO2
813
-	;font-hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2
814
-	( draw ) #22 .Screen/color DEO
815
-
816
-RTN
817
-
818
-@draw-cursor ( -- )
819
-
820
-	( clear last cursor )
821
-	.mouse/x LDZ2 .Screen/x DEO2
822
-	.mouse/y LDZ2 .Screen/y DEO2
823
-	#30 .Screen/color DEO
824
-
825
-	( record mouse positions )
826
-	.Mouse/x DEI2 .mouse/x STZ2
827
-	.Mouse/y DEI2 .mouse/y STZ2
828
-
829
-	( draw new cursor )
830
-	.mouse/x LDZ2 .Screen/x DEO2
831
-	.mouse/y LDZ2 .Screen/y DEO2
832
-	;tool_selector #00 .bankview/mode LDZ #08 MUL ADD2 .Screen/addr DEO2
833
-	#32 .Mouse/state DEI #00 NEQ ADD .Screen/color DEO
834
-
835
-RTN
836
-
837
-@draw-byte ( byte color -- )
838
-	
839
-	.color STZ STH
840
-	;font-hex #00 DUPr STHr #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
841
-	( draw ) .color LDZ .Screen/color DEO
842
-	.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
843
-	;font-hex #00 STHr #0f AND #08 MUL ADD2 .Screen/addr DEO2
844
-	( draw ) .color LDZ .Screen/color DEO
845
-
846
-RTN
847
-
848
-@draw-short ( short* color -- )
849
-
850
-	STH SWP 
851
-	DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
852
-	( draw ) DUPr STHr .Screen/color DEO
853
-	#0f AND TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
854
-	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
855
-	( draw ) DUPr STHr .Screen/color DEO
856
-	DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
857
-	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
858
-	( draw ) DUPr STHr .Screen/color DEO
859
-	#0f AND TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
860
-	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
861
-	( draw ) STHr .Screen/color DEO
862
-
863
-RTN
864
-
865
-( Utils )
866
-
867
-@line-rect ( x1* y1* x2* y2* color -- )
868
-
869
-	( load ) .color STZ DUP2 STH2 .rect/y2 STZ2 .rect/x2 STZ2 DUP2 STH2 .rect/y1 STZ2 .rect/x1 STZ2
870
-	STH2r STH2r
871
-	&ver
872
-		( save ) OVR2 .Screen/y DEO2
873
-		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/color DEO
874
-		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/color DEO
875
-		( incr ) SWP2 #0001 ADD2 SWP2
876
-		OVR2 OVR2 LTS2 ,&ver JCN
877
-	POP2 POP2
878
-	.rect/x1 LDZ2 .rect/x2 LDZ2
879
-	&hor
880
-		( save ) OVR2 .Screen/x DEO2
881
-		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/color DEO
882
-		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/color DEO
883
-		( incr ) SWP2 #0001 ADD2 SWP2
884
-		OVR2 OVR2 #0001 ADD2 LTS2 ,&hor JCN
885
-	POP2 POP2
886
-
887
-RTN
888
-
889
-@line-hor ( x0* x1* y* color -- )
890
-	
891
-	STH .Screen/y DEO2
892
-	&loop
893
-		( save ) OVR2 .Screen/x DEO2
894
-		( draw ) DUPr STHr .Screen/color DEO
895
-		( incr ) SWP2 #0002 ADD2 SWP2
896
-		OVR2 OVR2 LTH2 ,&loop JCN
897
-	POP2 POP2 POPr
898
-
899
-RTN
900
-
901
-@line-ver ( x* y0* y1* color -- )
902
-	
903
-	STH ROT2 .Screen/x DEO2
904
-	&loop
905
-		( save ) OVR2 .Screen/y DEO2
906
-		( draw ) DUPr STHr .Screen/color DEO
907
-		( incr ) SWP2 #0002 ADD2 SWP2
908
-		OVR2 OVR2 LTH2 ,&loop JCN
909
-	POP2 POP2 POPr
910
-
911
-RTN
912
-
913
-@tool_selector 80c0 e0f0 f8e0 1000
914
-@tool_hand     2020 20b8 7c7c 3838
915
-@tool_eraser   2050 b87c 3e1c 0800
916
-@moveup_icn    0010 387c fe10 1000
917
-@movedown_icn  0010 1010 fe7c 3810
918
-@halftone_icn  aa55 aa55 aa55 aa55
919
-
920
-@circle_icns
921
-	0038 7cfe fefe 7c38 ( full )
922
-	0038 4482 8282 4438 ( line )
923
-@eye_icns
924
-	0038 4492 2810 0000 ( open )
925
-	0000 0082 4438 0000 ( closed )
926
-@blank_icn
927
-	0000 0000 0000 0000
928
-	7cfe fefe fefe 7c00
929
-@depth_icns 
930
-	00fe 8282 fe82 82fe
931
-	00fe 9292 fe92 92fe
932
-@font-hex
933
-	007c 8282 8282 827c 0030 1010 1010 1010
934
-	007c 8202 7c80 80fe 007c 8202 1c02 827c
935
-	000c 1424 4484 fe04 00fe 8080 7c02 827c
936
-	007c 8280 fc82 827c 007c 8202 1e02 0202
937
-	007c 8282 7c82 827c 007c 8282 7e02 827c
938
-	007c 8202 7e82 827e 00fc 8282 fc82 82fc
939
-	007c 8280 8080 827c 00fc 8282 8282 82fc
940
-	007c 8280 f080 827c 007c 8280 f080 8080 
941
-
942
-@filepath1   [ "projects/fonts/specter8.bit 00 ]
943
-@filepath2   [ "projects/pictures/cyr10x8.chr 00 ]
944
-@filepath3   [ "projects/pictures/zerotwo10x10.chr 00 ]
945
-@filepath4   [ "projects/fonts/katahira8.bit 00 ]
946
-@filepath5   [ "projects/pictures/ako10x10.chr 00 ]
947
-@filepath6   [ "projects/pictures/logo1x1.bit 00 ]
948
-