... | ... |
@@ -28,8 +28,7 @@ |
28 | 28 |
|
29 | 29 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
30 | 30 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
31 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
32 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
31 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
33 | 32 |
|0140 ;Controller { vector 2 button 1 } |
34 | 33 |
|0150 ;Keys { vector 2 key 1 } |
35 | 34 |
|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
... | ... |
@@ -223,14 +222,14 @@ RTN |
223 | 222 |
@move-head ( -- ) |
224 | 223 |
|
225 | 224 |
( clear ) |
226 |
- ~trkframe.y1 8- =Sprite.y |
|
227 |
- ~trkframe.x1 #00 ~head.pos ADD2 =Sprite.x |
|
228 |
- ,head_icn =Sprite.addr |
|
229 |
- #00 =Sprite.color |
|
225 |
+ ~trkframe.y1 8- =Screen.y |
|
226 |
+ ~trkframe.x1 #00 ~head.pos ADD2 =Screen.x |
|
227 |
+ ,head_icn =Screen.addr |
|
228 |
+ #20 =Screen.color |
|
230 | 229 |
( incr ) ~head.pos #01 ADD =head.pos |
231 |
- ~trkframe.x1 #00 ~head.pos ADD2 =Sprite.x |
|
232 |
- ,head_icn =Sprite.addr |
|
233 |
- #01 ( if note ) TRACK #00 ~head.pos #08 DIV ADD2 PEK2 #00 NEQ ADD =Sprite.color |
|
230 |
+ ~trkframe.x1 #00 ~head.pos ADD2 =Screen.x |
|
231 |
+ ,head_icn =Screen.addr |
|
232 |
+ #21 ( if note ) TRACK #00 ~head.pos #08 DIV ADD2 PEK2 #00 NEQ ADD =Screen.color |
|
234 | 233 |
|
235 | 234 |
RTN |
236 | 235 |
|
... | ... |
@@ -239,10 +238,10 @@ RTN |
239 | 238 |
#00 #20 |
240 | 239 |
$loop |
241 | 240 |
( load ) OVR #00 SWP TRACK ADD2 PEK2 |
242 |
- DUP STH #00 SWP #0e SWP SUB 8* ~trkframe.y1 ADD2 =Sprite.y |
|
243 |
- OVR #00 SWP 8* ~trkframe.x1 ADD2 =Sprite.x |
|
241 |
+ DUP STH #00 SWP #0e SWP SUB 8* ~trkframe.y1 ADD2 =Screen.y |
|
242 |
+ OVR #00 SWP 8* ~trkframe.x1 ADD2 =Screen.x |
|
244 | 243 |
STHr #00 EQU ^$skip JNZ |
245 |
- #00 =Sprite.color |
|
244 |
+ #20 =Screen.color |
|
246 | 245 |
$skip |
247 | 246 |
( incr ) SWP #01 ADD SWP |
248 | 247 |
DUP2 LTH ^$loop JNZ |
... | ... |
@@ -255,11 +254,11 @@ RTN |
255 | 254 |
#00 #20 |
256 | 255 |
$notes-loop |
257 | 256 |
( load ) OVR #00 SWP TRACK ADD2 PEK2 |
258 |
- DUP STH #00 SWP #0e SWP SUB 8* ~trkframe.y1 ADD2 =Sprite.y |
|
259 |
- OVR #00 SWP 8* ~trkframe.x1 ADD2 =Sprite.x |
|
260 |
- ,note_icn =Sprite.addr |
|
257 |
+ DUP STH #00 SWP #0e SWP SUB 8* ~trkframe.y1 ADD2 =Screen.y |
|
258 |
+ OVR #00 SWP 8* ~trkframe.x1 ADD2 =Screen.x |
|
259 |
+ ,note_icn =Screen.addr |
|
261 | 260 |
STHr #00 EQU ^$skip JNZ |
262 |
- #05 =Sprite.color |
|
261 |
+ #25 =Screen.color |
|
263 | 262 |
$skip |
264 | 263 |
( incr ) SWP #01 ADD SWP |
265 | 264 |
DUP2 LTH ^$notes-loop JNZ |
... | ... |
@@ -273,14 +272,14 @@ RTN |
273 | 272 |
~trkframe.x1 ~trkframe.y1 ~trkframe.x2 ~trkframe.y2 #01 ,line-rect JSR2 |
274 | 273 |
|
275 | 274 |
( grid ) |
276 |
- ~trkframe.y1 #0010 SUB2 =Sprite.y |
|
277 |
- ,font_hex =Sprite.addr |
|
275 |
+ ~trkframe.y1 #0010 SUB2 =Screen.y |
|
276 |
+ ,font_hex =Screen.addr |
|
278 | 277 |
#0000 #0100 |
279 | 278 |
$loop |
280 | 279 |
OVR2 SWP POP #02 DIV #0f AND #00 NEQ ^$skip JNZ |
281 |
- OVR2 ~trkframe.x1 ADD2 =Sprite.x |
|
282 |
- #02 =Sprite.color |
|
283 |
- ~Sprite.addr 8+ =Sprite.addr |
|
280 |
+ OVR2 ~trkframe.x1 ADD2 =Screen.x |
|
281 |
+ #22 =Screen.color |
|
282 |
+ ~Screen.addr 8+ =Screen.addr |
|
284 | 283 |
OVR2 ~trkframe.x1 ADD2 ~trkframe.y1 ++ ~trkframe.y2 #01 ,line-vertical-dotted JSR2 |
285 | 284 |
$skip |
286 | 285 |
OVR2 ~trkframe.x1 ADD2 ~trkframe.y1 ~trkframe.y2 #01 ,line-vertical-dotted JSR2 |
... | ... |
@@ -295,18 +294,18 @@ RTN |
295 | 294 |
|
296 | 295 |
@draw-octave ( x y -- ) |
297 | 296 |
|
298 |
- =Sprite.y |
|
299 |
- =Sprite.x |
|
300 |
- ,octave_icn =Sprite.addr |
|
301 |
- ~Sprite.y ~Sprite.y #0038 ADD2 |
|
297 |
+ =Screen.y |
|
298 |
+ =Screen.x |
|
299 |
+ ,octave_icn =Screen.addr |
|
300 |
+ ~Screen.y ~Screen.y #0038 ADD2 |
|
302 | 301 |
$loop |
303 |
- OVR2 =Sprite.y |
|
304 |
- #01 =Sprite.color |
|
305 |
- ~Sprite.addr 8+ =Sprite.addr |
|
306 |
- ~Sprite.x 8+ =Sprite.x |
|
307 |
- #01 =Sprite.color |
|
308 |
- ~Sprite.addr 8+ =Sprite.addr |
|
309 |
- ~Sprite.x 8- =Sprite.x |
|
302 |
+ OVR2 =Screen.y |
|
303 |
+ #21 =Screen.color |
|
304 |
+ ~Screen.addr 8+ =Screen.addr |
|
305 |
+ ~Screen.x 8+ =Screen.x |
|
306 |
+ #21 =Screen.color |
|
307 |
+ ~Screen.addr 8+ =Screen.addr |
|
308 |
+ ~Screen.x 8- =Screen.x |
|
310 | 309 |
SWP2 8+ SWP2 |
311 | 310 |
OVR2 OVR2 LTH2 ^$loop JNZ |
312 | 311 |
POP2 |
... | ... |
@@ -318,20 +317,20 @@ RTN |
318 | 317 |
|
319 | 318 |
~trkframe.x1 #0018 SUB2 DUP2 ~trkframe.y1 ,draw-octave JSR2 |
320 | 319 |
~trkframe.y1 #0038 ADD2 ,draw-octave JSR2 |
321 |
- ~trkframe.x1 #0028 SUB2 =Sprite.x |
|
322 |
- ~trkframe.y1 #0030 ADD2 =Sprite.y |
|
323 |
- ,font_hex #0028 ADD2 =Sprite.addr |
|
324 |
- #03 =Sprite.color |
|
325 |
- ~trkframe.x1 #0030 SUB2 =Sprite.x |
|
326 |
- ,font_hex #0060 ADD2 =Sprite.addr |
|
327 |
- #03 =Sprite.color |
|
328 |
- ~trkframe.x1 #0028 SUB2 =Sprite.x |
|
329 |
- ~trkframe.y1 #0068 ADD2 =Sprite.y |
|
330 |
- ,font_hex #0020 ADD2 =Sprite.addr |
|
331 |
- #03 =Sprite.color |
|
332 |
- ~trkframe.x1 #0030 SUB2 =Sprite.x |
|
333 |
- ,font_hex #0060 ADD2 =Sprite.addr |
|
334 |
- #03 =Sprite.color |
|
320 |
+ ~trkframe.x1 #0028 SUB2 =Screen.x |
|
321 |
+ ~trkframe.y1 #0030 ADD2 =Screen.y |
|
322 |
+ ,font_hex #0028 ADD2 =Screen.addr |
|
323 |
+ #23 =Screen.color |
|
324 |
+ ~trkframe.x1 #0030 SUB2 =Screen.x |
|
325 |
+ ,font_hex #0060 ADD2 =Screen.addr |
|
326 |
+ #23 =Screen.color |
|
327 |
+ ~trkframe.x1 #0028 SUB2 =Screen.x |
|
328 |
+ ~trkframe.y1 #0068 ADD2 =Screen.y |
|
329 |
+ ,font_hex #0020 ADD2 =Screen.addr |
|
330 |
+ #23 =Screen.color |
|
331 |
+ ~trkframe.x1 #0030 SUB2 =Screen.x |
|
332 |
+ ,font_hex #0060 ADD2 =Screen.addr |
|
333 |
+ #23 =Screen.color |
|
335 | 334 |
|
336 | 335 |
RTN |
337 | 336 |
|
... | ... |
@@ -345,19 +344,19 @@ RTN |
345 | 344 |
@draw-knob ( x* y* value -- ) |
346 | 345 |
|
347 | 346 |
( load ) =knob.value =knob.y =knob.x |
348 |
- ~knob.x =Sprite.x |
|
349 |
- ~knob.y =Sprite.y ,knob_icns =Sprite.addr #01 =Sprite.color |
|
350 |
- ~knob.x 8+ =Sprite.x ,knob_icns 8+ =Sprite.addr #01 =Sprite.color |
|
351 |
- ~knob.y 8+ =Sprite.y ,knob_icns #0018 ADD2 =Sprite.addr #01 =Sprite.color |
|
352 |
- ~knob.x =Sprite.x ,knob_icns #0010 ADD2 =Sprite.addr #01 =Sprite.color |
|
353 |
- ~knob.x #00 #00 ~knob.value ,knob_offsetx ADD2 PEK2 ADD2 =Sprite.x |
|
354 |
- ~knob.y #00 #00 ~knob.value ,knob_offsety ADD2 PEK2 ADD2 =Sprite.y |
|
355 |
- ,knob_icns #0020 ADD2 =Sprite.addr |
|
356 |
- #05 =Sprite.color |
|
357 |
- ~knob.x #0004 ADD2 =Sprite.x |
|
358 |
- ~knob.y #0010 ADD2 =Sprite.y |
|
359 |
- ,font_hex #00 ~knob.value #08 MUL ADD2 =Sprite.addr |
|
360 |
- #01 =Sprite.color |
|
347 |
+ ~knob.x =Screen.x |
|
348 |
+ ~knob.y =Screen.y ,knob_icns =Screen.addr #21 =Screen.color |
|
349 |
+ ~knob.x 8+ =Screen.x ,knob_icns 8+ =Screen.addr #21 =Screen.color |
|
350 |
+ ~knob.y 8+ =Screen.y ,knob_icns #0018 ADD2 =Screen.addr #21 =Screen.color |
|
351 |
+ ~knob.x =Screen.x ,knob_icns #0010 ADD2 =Screen.addr #21 =Screen.color |
|
352 |
+ ~knob.x #00 #00 ~knob.value ,knob_offsetx ADD2 PEK2 ADD2 =Screen.x |
|
353 |
+ ~knob.y #00 #00 ~knob.value ,knob_offsety ADD2 PEK2 ADD2 =Screen.y |
|
354 |
+ ,knob_icns #0020 ADD2 =Screen.addr |
|
355 |
+ #25 =Screen.color |
|
356 |
+ ~knob.x #0004 ADD2 =Screen.x |
|
357 |
+ ~knob.y #0010 ADD2 =Screen.y |
|
358 |
+ ,font_hex #00 ~knob.value #08 MUL ADD2 =Screen.addr |
|
359 |
+ #21 =Screen.color |
|
361 | 360 |
|
362 | 361 |
RTN |
363 | 362 |
|
... | ... |
@@ -365,7 +364,7 @@ RTN |
365 | 364 |
|
366 | 365 |
~ctlframe.x1 ~ctlframe.y1 ~ctlframe.x2 ~ctlframe.y2 #01 ,line-rect JSR2 |
367 | 366 |
( env ) |
368 |
- ~ctlframe.x1 8+ ~ctlframe.y1 8+ #02 ,env_txt ,draw-label JSR2 |
|
367 |
+ ~ctlframe.x1 8+ ~ctlframe.y1 8+ #22 ,env_txt ,draw-label JSR2 |
|
369 | 368 |
~ctlframe.x1 8+ ~ctlframe.y1 #0010 ADD2 |
370 | 369 |
,adsr #00 ~track.active #04 MUL ADD2 PEK2 #04 SFT |
371 | 370 |
,draw-knob JSR2 |
... | ... |
@@ -379,7 +378,7 @@ RTN |
379 | 378 |
,adsr #00 ~track.active #04 MUL ADD2 #0003 ADD2 PEK2 #04 SFT |
380 | 379 |
,draw-knob JSR2 |
381 | 380 |
( vol ) |
382 |
- ~ctlframe.x1 #0058 ADD2 ~ctlframe.y1 8+ #02 ,vol_txt ,draw-label JSR2 |
|
381 |
+ ~ctlframe.x1 #0058 ADD2 ~ctlframe.y1 8+ #22 ,vol_txt ,draw-label JSR2 |
|
383 | 382 |
~ctlframe.x1 #0058 ADD2 ~ctlframe.y1 #0010 ADD2 |
384 | 383 |
,volume #00 ~track.active ADD2 PEK2 #04 SFT |
385 | 384 |
,draw-knob JSR2 |
... | ... |
@@ -392,27 +391,27 @@ RTN |
392 | 391 |
@draw-channels |
393 | 392 |
|
394 | 393 |
~chnframe.x1 ~chnframe.y1 ~chnframe.x2 ~chnframe.y2 #01 ,line-rect JSR2 |
395 |
- ~chnframe.x1 8+ ~chnframe.y1 8+ #01 ~track.active #00 EQU #07 MUL ADD ,ch1_txt ,draw-label JSR2 |
|
396 |
- ~chnframe.x1 8+ ~chnframe.y1 #0010 ADD2 #01 ~track.active #01 EQU #07 MUL ADD ,ch2_txt ,draw-label JSR2 |
|
397 |
- ~chnframe.x1 8+ ~chnframe.y1 #0018 ADD2 #01 ~track.active #02 EQU #07 MUL ADD ,ch3_txt ,draw-label JSR2 |
|
398 |
- ~chnframe.x1 8+ ~chnframe.y1 #0020 ADD2 #01 ~track.active #03 EQU #07 MUL ADD ,ch4_txt ,draw-label JSR2 |
|
394 |
+ ~chnframe.x1 8+ ~chnframe.y1 8+ #21 ~track.active #00 EQU #07 MUL ADD ,ch1_txt ,draw-label JSR2 |
|
395 |
+ ~chnframe.x1 8+ ~chnframe.y1 #0010 ADD2 #21 ~track.active #01 EQU #07 MUL ADD ,ch2_txt ,draw-label JSR2 |
|
396 |
+ ~chnframe.x1 8+ ~chnframe.y1 #0018 ADD2 #21 ~track.active #02 EQU #07 MUL ADD ,ch3_txt ,draw-label JSR2 |
|
397 |
+ ~chnframe.x1 8+ ~chnframe.y1 #0020 ADD2 #21 ~track.active #03 EQU #07 MUL ADD ,ch4_txt ,draw-label JSR2 |
|
399 | 398 |
|
400 | 399 |
RTN |
401 | 400 |
|
402 | 401 |
@draw-cursor ( -- ) |
403 | 402 |
|
404 | 403 |
( clear last cursor ) |
405 |
- ,clear_icn =Sprite.addr |
|
406 |
- ~pointer.x =Sprite.x |
|
407 |
- ~pointer.y =Sprite.y |
|
408 |
- #10 =Sprite.color |
|
404 |
+ ,clear_icn =Screen.addr |
|
405 |
+ ~pointer.x =Screen.x |
|
406 |
+ ~pointer.y =Screen.y |
|
407 |
+ #30 =Screen.color |
|
409 | 408 |
( record pointer positions ) |
410 | 409 |
~Mouse.x =pointer.x ~Mouse.y =pointer.y |
411 | 410 |
( draw new cursor ) |
412 |
- ,cursor_icn =Sprite.addr |
|
413 |
- ~pointer.x =Sprite.x |
|
414 |
- ~pointer.y =Sprite.y |
|
415 |
- #12 ~Mouse.state #00 NEQ ADD =Sprite.color |
|
411 |
+ ,cursor_icn =Screen.addr |
|
412 |
+ ~pointer.x =Screen.x |
|
413 |
+ ~pointer.y =Screen.y |
|
414 |
+ #32 ~Mouse.state #00 NEQ ADD =Screen.color |
|
416 | 415 |
|
417 | 416 |
RTN |
418 | 417 |
|
... | ... |
@@ -420,12 +419,12 @@ RTN |
420 | 419 |
|
421 | 420 |
@draw-label ( x y color addr -- ) |
422 | 421 |
|
423 |
- ( load ) =label.addr =label.color =Sprite.y =Sprite.x |
|
422 |
+ ( load ) =label.addr =label.color =Screen.y =Screen.x |
|
424 | 423 |
~label.addr |
425 | 424 |
$loop |
426 |
- ( draw ) DUP2 PEK2 #00 SWP 8* ,font ADD2 =Sprite.addr ~label.color =Sprite.color |
|
425 |
+ ( draw ) DUP2 PEK2 #00 SWP 8* ,font ADD2 =Screen.addr ~label.color =Screen.color |
|
427 | 426 |
( incr ) ++ |
428 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
427 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
429 | 428 |
DUP2 PEK2 #00 NEQ ^$loop JNZ |
430 | 429 |
POP2 |
431 | 430 |
|
... | ... |
@@ -11,8 +11,7 @@ |
11 | 11 |
( devices ) |
12 | 12 |
|
13 | 13 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
14 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
15 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
14 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
16 | 15 |
|0140 ;Controller { vector 2 p1 1 } |
17 | 16 |
|
18 | 17 |
|0200 |
... | ... |
@@ -21,46 +20,46 @@ |
21 | 20 |
( vectors ) ,FRAME =Screen.vector |
22 | 21 |
|
23 | 22 |
( set origin ) |
24 |
- ~Screen.width 2/ =Sprite.x |
|
25 |
- ~Screen.height 2/ =Sprite.y |
|
26 |
- ,default_icn =Sprite.addr |
|
27 |
- #11 =Sprite.color |
|
28 |
- #0a =slime |
|
23 |
+ ~Screen.width 2/ =Screen.x |
|
24 |
+ ~Screen.height 2/ =Screen.y |
|
25 |
+ ,default_icn =Screen.addr |
|
26 |
+ #31 =Screen.color |
|
27 |
+ #2a =slime |
|
29 | 28 |
|
30 | 29 |
BRK |
31 | 30 |
|
32 | 31 |
@FRAME |
33 | 32 |
|
34 |
- #0a =slime |
|
35 |
- ,default_icn =Sprite.addr |
|
33 |
+ #2a =slime |
|
34 |
+ ,default_icn =Screen.addr |
|
36 | 35 |
|
37 | 36 |
( hold ctrl key to change slime color ) |
38 | 37 |
|
39 | 38 |
~Controller.p1 #0f AND |
40 |
- DUP #01 NEQ ^$no-ctrl JNZ #05 =slime $no-ctrl |
|
41 |
- DUP #02 NEQ ^$no-alt JNZ #0f =slime $no-alt |
|
39 |
+ DUP #01 NEQ ^$no-ctrl JNZ #25 =slime $no-ctrl |
|
40 |
+ DUP #02 NEQ ^$no-alt JNZ #2f =slime $no-alt |
|
42 | 41 |
POP |
43 | 42 |
|
44 |
- ( clear ) #10 =Sprite.color |
|
43 |
+ ( clear ) #30 =Screen.color |
|
45 | 44 |
|
46 | 45 |
( detect movement ) |
47 | 46 |
~Controller.p1 #f0 AND |
48 | 47 |
DUP #04 SFT #01 AND #01 NEQ ^$no-up JNZ |
49 |
- ( move ) ~Sprite.y -- =Sprite.y ,up_icn =Sprite.addr $no-up |
|
48 |
+ ( move ) ~Screen.y -- =Screen.y ,up_icn =Screen.addr $no-up |
|
50 | 49 |
DUP #05 SFT #01 AND #01 NEQ ^$no-down JNZ |
51 |
- ( move ) ~Sprite.y ++ =Sprite.y ,down_icn =Sprite.addr $no-down |
|
50 |
+ ( move ) ~Screen.y ++ =Screen.y ,down_icn =Screen.addr $no-down |
|
52 | 51 |
DUP #06 SFT #01 AND #01 NEQ ^$no-left JNZ |
53 |
- ( move ) ~Sprite.x -- =Sprite.x ,left_icn =Sprite.addr $no-left |
|
52 |
+ ( move ) ~Screen.x -- =Screen.x ,left_icn =Screen.addr $no-left |
|
54 | 53 |
DUP #07 SFT #01 AND #01 NEQ ^$no-right JNZ |
55 |
- ( move ) ~Sprite.x ++ =Sprite.x ,right_icn =Sprite.addr $no-right |
|
54 |
+ ( move ) ~Screen.x ++ =Screen.x ,right_icn =Screen.addr $no-right |
|
56 | 55 |
POP |
57 | 56 |
|
58 | 57 |
( draw face ) |
59 |
- #11 =Sprite.color |
|
58 |
+ #31 =Screen.color |
|
60 | 59 |
|
61 | 60 |
( draw slime ) |
62 |
- ,slime_icn =Sprite.addr |
|
63 |
- ~slime =Sprite.color |
|
61 |
+ ,slime_icn =Screen.addr |
|
62 |
+ ~slime =Screen.color |
|
64 | 63 |
|
65 | 64 |
BRK |
66 | 65 |
|
... | ... |
@@ -5,7 +5,7 @@ |
5 | 5 |
%8* { #0030 SFT2 } |
6 | 6 |
|
7 | 7 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
8 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
8 |
+|0120 ;Screen { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
9 | 9 |
|0140 ;Controller { vector 2 button 1 } |
10 | 10 |
|0150 ;Keys { vector 2 key 1 } |
11 | 11 |
|
... | ... |
@@ -22,10 +22,10 @@ BRK |
22 | 22 |
|
23 | 23 |
@KEY |
24 | 24 |
|
25 |
- ,cursor_icn =Sprite.addr |
|
26 |
- ,font #00 ~Keys.key 8* ADD2 =Sprite.addr |
|
27 |
- ( draw ) #01 =Sprite.color |
|
28 |
- ~Sprite.x 8+ =Sprite.x |
|
25 |
+ ,cursor_icn =Screen.addr |
|
26 |
+ ,font #00 ~Keys.key 8* ADD2 =Screen.addr |
|
27 |
+ ( draw ) #21 =Screen.color |
|
28 |
+ ~Screen.x 8+ =Screen.x |
|
29 | 29 |
( release ) #00 =Keys.key |
30 | 30 |
,draw-cursor JSR2 |
31 | 31 |
|
... | ... |
@@ -35,9 +35,9 @@ BRK |
35 | 35 |
|
36 | 36 |
( enter key ) |
37 | 37 |
~Controller.button #08 NEQ ^$no-return JNZ |
38 |
- #00 =Sprite.color |
|
39 |
- #0000 =Sprite.x |
|
40 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
38 |
+ #20 =Screen.color |
|
39 |
+ #0000 =Screen.x |
|
40 |
+ ( incr ) ~Screen.y 8+ =Screen.y |
|
41 | 41 |
( release ) #00 =Controller.button |
42 | 42 |
,draw-cursor JSR2 |
43 | 43 |
$no-return |
... | ... |
@@ -46,7 +46,7 @@ BRK |
46 | 46 |
|
47 | 47 |
@draw-cursor |
48 | 48 |
|
49 |
- ,cursor_icn =Sprite.addr #02 =Sprite.color |
|
49 |
+ ,cursor_icn =Screen.addr #22 =Screen.color |
|
50 | 50 |
|
51 | 51 |
RTN |
52 | 52 |
|
... | ... |
@@ -9,8 +9,7 @@ |
9 | 9 |
;circle { xc 2 yc 2 x 2 y 2 r 2 d 2 } |
10 | 10 |
|
11 | 11 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
12 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
13 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
12 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
14 | 13 |
|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
15 | 14 |
|
16 | 15 |
( program ) |
... | ... |
@@ -48,19 +47,19 @@ BRK |
48 | 47 |
@draw-cursor ( -- ) |
49 | 48 |
|
50 | 49 |
( clear last cursor ) |
51 |
- ,clear_icn =Sprite.addr |
|
52 |
- ~pointer.x =Sprite.x |
|
53 |
- ~pointer.y =Sprite.y |
|
54 |
- #10 =Sprite.color |
|
50 |
+ ,clear_icn =Screen.addr |
|
51 |
+ ~pointer.x =Screen.x |
|
52 |
+ ~pointer.y =Screen.y |
|
53 |
+ #30 =Screen.color |
|
55 | 54 |
|
56 | 55 |
( record pointer positions ) |
57 | 56 |
~Mouse.x =pointer.x ~Mouse.y =pointer.y |
58 | 57 |
|
59 | 58 |
( draw new cursor ) |
60 |
- ,cursor_icn =Sprite.addr |
|
61 |
- ~pointer.x =Sprite.x |
|
62 |
- ~pointer.y =Sprite.y |
|
63 |
- #11 ~Mouse.state #00 NEQ ADD =Sprite.color |
|
59 |
+ ,cursor_icn =Screen.addr |
|
60 |
+ ~pointer.x =Screen.x |
|
61 |
+ ~pointer.y =Screen.y |
|
62 |
+ #31 ~Mouse.state #00 NEQ ADD =Screen.color |
|
64 | 63 |
|
65 | 64 |
RTN |
66 | 65 |
|
... | ... |
@@ -22,8 +22,7 @@ |
22 | 22 |
} |
23 | 23 |
|
24 | 24 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
25 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
26 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
25 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
27 | 26 |
|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
28 | 27 |
|
29 | 28 |
( program ) |
... | ... |
@@ -130,11 +129,11 @@ RTN |
130 | 129 |
POP2 POP2 |
131 | 130 |
|
132 | 131 |
( draw blending modes ) |
133 |
- #0020 =Sprite.x #0020 =Sprite.y ,icon_icn =Sprite.addr |
|
134 |
- #00 #10 |
|
132 |
+ #0000 =Screen.x #0020 =Screen.y ,icon_icn =Screen.addr |
|
133 |
+ #20 #30 |
|
135 | 134 |
$draw-blends |
136 |
- ( move ) OVR #00 SWP #0008 MUL2 #0020 ADD2 =Sprite.x |
|
137 |
- ( draw ) OVR =Sprite.color |
|
135 |
+ ( move ) OVR #00 SWP #0008 MUL2 =Screen.x |
|
136 |
+ ( draw ) OVR =Screen.color |
|
138 | 137 |
( incr ) SWP #01 ADD SWP |
139 | 138 |
DUP2 LTH ^$draw-blends JNZ |
140 | 139 |
POP POP |
... | ... |
@@ -149,52 +148,52 @@ RTN |
149 | 148 |
~window.x1 ~window.y1 ~window.x2 ~window.y2 #01 ,line-rect JSR2 |
150 | 149 |
~window.x1 #0002 SUB2 ~window.y1 #0002 SUB2 ~window.x2 #0002 ADD2 ~window.y2 #0002 ADD2 #01 ,line-rect JSR2 |
151 | 150 |
|
152 |
- ~window.x1 #0008 ADD2 ~window.y1 #0010 ADD2 #05 ,red_txt ,draw-label JSR2 |
|
153 |
- ~window.x1 #0008 ADD2 ~window.y1 #0020 ADD2 #05 ,green_txt ,draw-label JSR2 |
|
154 |
- ~window.x1 #0008 ADD2 ~window.y1 #0030 ADD2 #05 ,blue_txt ,draw-label JSR2 |
|
151 |
+ ~window.x1 #0008 ADD2 ~window.y1 #0010 ADD2 #25 ,red_txt ,draw-label JSR2 |
|
152 |
+ ~window.x1 #0008 ADD2 ~window.y1 #0020 ADD2 #25 ,green_txt ,draw-label JSR2 |
|
153 |
+ ~window.x1 #0008 ADD2 ~window.y1 #0030 ADD2 #25 ,blue_txt ,draw-label JSR2 |
|
155 | 154 |
|
156 | 155 |
~window.x1 #0050 ADD2 ~window.y1 #0010 ADD2 ~window.x1 #0080 ADD2 #00 ,theme.r1 ~selection ADD PEK2 #0004 MUL2 #01 ,draw-slider JSR2 |
157 | 156 |
~window.x1 #0050 ADD2 ~window.y1 #0020 ADD2 ~window.x1 #0080 ADD2 #00 ,theme.g1 ~selection ADD PEK2 #0004 MUL2 #01 ,draw-slider JSR2 |
158 | 157 |
~window.x1 #0050 ADD2 ~window.y1 #0030 ADD2 ~window.x1 #0080 ADD2 #00 ,theme.b1 ~selection ADD PEK2 #0004 MUL2 #01 ,draw-slider JSR2 |
159 | 158 |
|
160 |
- ~window.x1 #0050 ADD2 =Sprite.x |
|
161 |
- ~window.y1 #0040 ADD2 =Sprite.y |
|
162 |
- ,radio_icns #00 ~selection #00 EQU #0008 MUL2 ADD2 =Sprite.addr |
|
163 |
- #05 =Sprite.color |
|
159 |
+ ~window.x1 #0050 ADD2 =Screen.x |
|
160 |
+ ~window.y1 #0040 ADD2 =Screen.y |
|
161 |
+ ,radio_icns #00 ~selection #00 EQU #0008 MUL2 ADD2 =Screen.addr |
|
162 |
+ #25 =Screen.color |
|
164 | 163 |
|
165 |
- ~window.x1 #0060 ADD2 =Sprite.x |
|
166 |
- ~window.y1 #0040 ADD2 =Sprite.y |
|
167 |
- ,radio_icns #00 ~selection #01 EQU #0008 MUL2 ADD2 =Sprite.addr |
|
168 |
- #05 =Sprite.color |
|
164 |
+ ~window.x1 #0060 ADD2 =Screen.x |
|
165 |
+ ~window.y1 #0040 ADD2 =Screen.y |
|
166 |
+ ,radio_icns #00 ~selection #01 EQU #0008 MUL2 ADD2 =Screen.addr |
|
167 |
+ #25 =Screen.color |
|
169 | 168 |
|
170 |
- ~window.x1 #0070 ADD2 =Sprite.x |
|
171 |
- ~window.y1 #0040 ADD2 =Sprite.y |
|
172 |
- ,radio_icns #00 ~selection #02 EQU #0008 MUL2 ADD2 =Sprite.addr |
|
173 |
- #05 =Sprite.color |
|
169 |
+ ~window.x1 #0070 ADD2 =Screen.x |
|
170 |
+ ~window.y1 #0040 ADD2 =Screen.y |
|
171 |
+ ,radio_icns #00 ~selection #02 EQU #0008 MUL2 ADD2 =Screen.addr |
|
172 |
+ #25 =Screen.color |
|
174 | 173 |
|
175 |
- ~window.x1 #0080 ADD2 =Sprite.x |
|
176 |
- ~window.y1 #0040 ADD2 =Sprite.y |
|
177 |
- ,radio_icns #00 ~selection #03 EQU #0008 MUL2 ADD2 =Sprite.addr |
|
178 |
- #05 =Sprite.color |
|
174 |
+ ~window.x1 #0080 ADD2 =Screen.x |
|
175 |
+ ~window.y1 #0040 ADD2 =Screen.y |
|
176 |
+ ,radio_icns #00 ~selection #03 EQU #0008 MUL2 ADD2 =Screen.addr |
|
177 |
+ #25 =Screen.color |
|
179 | 178 |
|
180 | 179 |
RTN |
181 | 180 |
|
182 | 181 |
@draw-cursor |
183 | 182 |
|
184 | 183 |
( clear last cursor ) |
185 |
- ,clear_icn =Sprite.addr |
|
186 |
- ~pointer.x =Sprite.x |
|
187 |
- ~pointer.y =Sprite.y |
|
188 |
- #10 =Sprite.color |
|
184 |
+ ,clear_icn =Screen.addr |
|
185 |
+ ~pointer.x =Screen.x |
|
186 |
+ ~pointer.y =Screen.y |
|
187 |
+ #30 =Screen.color |
|
189 | 188 |
|
190 | 189 |
( record pointer positions ) |
191 | 190 |
~Mouse.x =pointer.x ~Mouse.y =pointer.y |
192 | 191 |
|
193 | 192 |
( draw new cursor ) |
194 |
- ,pointer_icn =Sprite.addr |
|
195 |
- ~pointer.x =Sprite.x |
|
196 |
- ~pointer.y =Sprite.y |
|
197 |
- #13 =Sprite.color |
|
193 |
+ ,pointer_icn =Screen.addr |
|
194 |
+ ~pointer.x =Screen.x |
|
195 |
+ ~pointer.y =Screen.y |
|
196 |
+ #33 =Screen.color |
|
198 | 197 |
|
199 | 198 |
RTN |
200 | 199 |
|
... | ... |
@@ -202,26 +201,26 @@ RTN |
202 | 201 |
|
203 | 202 |
( load ) =color =slider.pos =slider.x2 =slider.y =slider.x1 |
204 | 203 |
|
205 |
- ~slider.x1 =Sprite.x |
|
206 |
- ~slider.y =Sprite.y |
|
207 |
- ,halftone_icn =Sprite.addr |
|
204 |
+ ~slider.x1 =Screen.x |
|
205 |
+ ~slider.y =Screen.y |
|
206 |
+ ,halftone_icn =Screen.addr |
|
208 | 207 |
|
209 |
- ,slidera_icn =Sprite.addr |
|
210 |
- ( draw ) #05 =Sprite.color |
|
211 |
- ,sliderb_icn =Sprite.addr |
|
208 |
+ ,slidera_icn =Screen.addr |
|
209 |
+ ( draw ) #25 =Screen.color |
|
210 |
+ ,sliderb_icn =Screen.addr |
|
212 | 211 |
|
213 | 212 |
$loop |
214 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
215 |
- ( draw ) #05 =Sprite.color |
|
216 |
- ~Sprite.x ~slider.x2 #0008 ADD2 LTH2 ^$loop JNZ |
|
213 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
214 |
+ ( draw ) #25 =Screen.color |
|
215 |
+ ~Screen.x ~slider.x2 #0008 ADD2 LTH2 ^$loop JNZ |
|
217 | 216 |
|
218 |
- ( incr ) ~Sprite.x #0004 ADD2 =Sprite.x |
|
219 |
- ,sliderc_icn =Sprite.addr |
|
220 |
- ( draw ) #05 =Sprite.color |
|
217 |
+ ( incr ) ~Screen.x #0004 ADD2 =Screen.x |
|
218 |
+ ,sliderc_icn =Screen.addr |
|
219 |
+ ( draw ) #25 =Screen.color |
|
221 | 220 |
|
222 |
- ~slider.x1 ~slider.pos ADD2 =Sprite.x |
|
223 |
- ,sliderd_icn =Sprite.addr |
|
224 |
- ( draw ) #0a =Sprite.color |
|
221 |
+ ~slider.x1 ~slider.pos ADD2 =Screen.x |
|
222 |
+ ,sliderd_icn =Screen.addr |
|
223 |
+ ( draw ) #2a =Screen.color |
|
225 | 224 |
|
226 | 225 |
RTN |
227 | 226 |
|
... | ... |
@@ -258,11 +257,11 @@ RTN |
258 | 257 |
|
259 | 258 |
@draw-label ( x y color addr ) |
260 | 259 |
|
261 |
- ( load ) =label.addr =color =Sprite.y =Sprite.x ~label.addr |
|
260 |
+ ( load ) =label.addr =color =Screen.y =Screen.x ~label.addr |
|
262 | 261 |
$loop |
263 |
- ( draw ) DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Sprite.addr ~color =Sprite.color |
|
262 |
+ ( draw ) DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Screen.addr ~color =Screen.color |
|
264 | 263 |
( incr ) ++ |
265 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
264 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
266 | 265 |
DUP2 PEK2 #00 NEQ ^$loop JNZ |
267 | 266 |
POP2 |
268 | 267 |
|
... | ... |
@@ -15,8 +15,7 @@ |
15 | 15 |
( devices ) |
16 | 16 |
|
17 | 17 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
18 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
19 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
18 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
20 | 19 |
|01a0 ;DateTime { year 2 month 1 day 1 hour 1 minute 1 second 1 dotw 1 doty 2 isdst 1 refresh 1 } |
21 | 20 |
|
22 | 21 |
( program ) |
... | ... |
@@ -69,26 +68,26 @@ BRK |
69 | 68 |
POP2 |
70 | 69 |
|
71 | 70 |
( display ) |
72 |
- ~Screen.height #0002 DIV2 #0048 ADD2 =Sprite.y |
|
71 |
+ ~Screen.height #0002 DIV2 #0048 ADD2 =Screen.y |
|
73 | 72 |
~Screen.width #0002 DIV2 |
74 |
- DUP2 #0020 SUB2 =Sprite.x |
|
75 |
- ,font_hex #00 ~DateTime.hour #0a DIV #08 MUL ADD2 =Sprite.addr |
|
76 |
- #02 =Sprite.color |
|
77 |
- DUP2 #0018 SUB2 =Sprite.x |
|
78 |
- ,font_hex #00 ~DateTime.hour #0a MOD #08 MUL ADD2 =Sprite.addr |
|
79 |
- #02 =Sprite.color |
|
80 |
- DUP2 #0008 SUB2 =Sprite.x |
|
81 |
- ,font_hex #00 ~DateTime.minute #0a DIV #08 MUL ADD2 =Sprite.addr |
|
82 |
- #02 =Sprite.color |
|
83 |
- DUP2 =Sprite.x |
|
84 |
- ,font_hex #00 ~DateTime.minute #0a MOD #08 MUL ADD2 =Sprite.addr |
|
85 |
- #02 =Sprite.color |
|
86 |
- DUP2 #0010 ADD2 =Sprite.x |
|
87 |
- ,font_hex #00 ~DateTime.second #0a DIV #08 MUL ADD2 =Sprite.addr |
|
88 |
- #02 =Sprite.color |
|
89 |
- DUP2 #0018 ADD2 =Sprite.x |
|
90 |
- ,font_hex #00 ~DateTime.second #0a MOD #08 MUL ADD2 =Sprite.addr |
|
91 |
- #02 =Sprite.color |
|
73 |
+ DUP2 #0020 SUB2 =Screen.x |
|
74 |
+ ,font_hex #00 ~DateTime.hour #0a DIV #08 MUL ADD2 =Screen.addr |
|
75 |
+ #22 =Screen.color |
|
76 |
+ DUP2 #0018 SUB2 =Screen.x |
|
77 |
+ ,font_hex #00 ~DateTime.hour #0a MOD #08 MUL ADD2 =Screen.addr |
|
78 |
+ #22 =Screen.color |
|
79 |
+ DUP2 #0008 SUB2 =Screen.x |
|
80 |
+ ,font_hex #00 ~DateTime.minute #0a DIV #08 MUL ADD2 =Screen.addr |
|
81 |
+ #22 =Screen.color |
|
82 |
+ DUP2 =Screen.x |
|
83 |
+ ,font_hex #00 ~DateTime.minute #0a MOD #08 MUL ADD2 =Screen.addr |
|
84 |
+ #22 =Screen.color |
|
85 |
+ DUP2 #0010 ADD2 =Screen.x |
|
86 |
+ ,font_hex #00 ~DateTime.second #0a DIV #08 MUL ADD2 =Screen.addr |
|
87 |
+ #22 =Screen.color |
|
88 |
+ DUP2 #0018 ADD2 =Screen.x |
|
89 |
+ ,font_hex #00 ~DateTime.second #0a MOD #08 MUL ADD2 =Screen.addr |
|
90 |
+ #22 =Screen.color |
|
92 | 91 |
POP2 |
93 | 92 |
|
94 | 93 |
BRK |
... | ... |
@@ -12,8 +12,7 @@ |
12 | 12 |
|
13 | 13 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
14 | 14 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
15 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
16 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
15 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
17 | 16 |
|0140 ;Controller { vector 2 button 1 } |
18 | 17 |
|0150 ;Keys { vector 2 key 1 } |
19 | 18 |
|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
... | ... |
@@ -65,19 +64,19 @@ BRK |
65 | 64 |
@draw-cursor |
66 | 65 |
|
67 | 66 |
( clear last cursor ) |
68 |
- ,clear_icn =Sprite.addr |
|
69 |
- ~pointer.x =Sprite.x |
|
70 |
- ~pointer.y =Sprite.y |
|
71 |
- #10 =Sprite.color |
|
67 |
+ ,clear_icn =Screen.addr |
|
68 |
+ ~pointer.x =Screen.x |
|
69 |
+ ~pointer.y =Screen.y |
|
70 |
+ #30 =Screen.color |
|
72 | 71 |
|
73 | 72 |
( record pointer positions ) |
74 | 73 |
~Mouse.x =pointer.x ~Mouse.y =pointer.y |
75 | 74 |
|
76 | 75 |
( draw new cursor ) |
77 |
- ~pointer.sprite =Sprite.addr |
|
78 |
- ~pointer.x =Sprite.x |
|
79 |
- ~pointer.y =Sprite.y |
|
80 |
- #11 =Sprite.color |
|
76 |
+ ~pointer.sprite =Screen.addr |
|
77 |
+ ~pointer.x =Screen.x |
|
78 |
+ ~pointer.y =Screen.y |
|
79 |
+ #31 =Screen.color |
|
81 | 80 |
|
82 | 81 |
RTN |
83 | 82 |
|
... | ... |
@@ -7,8 +7,7 @@ |
7 | 7 |
|
8 | 8 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
9 | 9 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
10 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
11 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
10 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
12 | 11 |
|0140 ;Controller { vector 2 button 1 } |
13 | 12 |
|0150 ;Keys { vector 2 key 1 } |
14 | 13 |
|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
... | ... |
@@ -30,22 +29,22 @@ |
30 | 29 |
( incr ) ~Screen.y #0002 ADD2 =Screen.y |
31 | 30 |
~Screen.y ~Screen.height LTH2 ^$draw-ver JNZ |
32 | 31 |
|
33 |
- ~center.x ~center.y #0010 SUB2 #0c ,text1 ,draw-label-left JSR2 |
|
34 |
- ~center.x ~center.y #0c ,text2 ,draw-label-middle JSR2 |
|
35 |
- ~center.x ~center.y #0010 ADD2 #0c ,text3 ,draw-label-right JSR2 |
|
36 |
- ~center.x ~center.y #0020 ADD2 #0c ,text4 ,draw-label-middle JSR2 |
|
37 |
- ~center.x ~center.y #0030 ADD2 #0c ,text5 ,draw-label-middle JSR2 |
|
32 |
+ ~center.x ~center.y #0010 SUB2 #2c ,text1 ,draw-label-left JSR2 |
|
33 |
+ ~center.x ~center.y #2c ,text2 ,draw-label-middle JSR2 |
|
34 |
+ ~center.x ~center.y #0010 ADD2 #2c ,text3 ,draw-label-right JSR2 |
|
35 |
+ ~center.x ~center.y #0020 ADD2 #2c ,text4 ,draw-label-middle JSR2 |
|
36 |
+ ~center.x ~center.y #0030 ADD2 #2c ,text5 ,draw-label-middle JSR2 |
|
38 | 37 |
|
39 | 38 |
BRK |
40 | 39 |
|
41 | 40 |
@draw-label-left ( x y color addr ) |
42 | 41 |
|
43 |
- ( load ) =label.addr =label.color =Sprite.y =Sprite.x |
|
42 |
+ ( load ) =label.addr =label.color =Screen.y =Screen.x |
|
44 | 43 |
~label.addr |
45 | 44 |
$loop |
46 |
- ( draw ) DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Sprite.addr ~label.color =Sprite.color |
|
45 |
+ ( draw ) DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Screen.addr ~label.color =Screen.color |
|
47 | 46 |
( incr ) #0001 ADD2 |
48 |
- ( incr ) ~Sprite.x #0008 ADD2 =Sprite.x |
|
47 |
+ ( incr ) ~Screen.x #0008 ADD2 =Screen.x |
|
49 | 48 |
DUP2 PEK2 #00 NEQ ^$loop JNZ |
50 | 49 |
POP2 |
51 | 50 |
|
... | ... |
@@ -53,13 +52,13 @@ RTN |
53 | 52 |
|
54 | 53 |
@draw-label-middle ( x y color addr ) |
55 | 54 |
|
56 |
- ( load ) =label.addr =label.color =Sprite.y |
|
57 |
- ( align ) ~label.addr ,get-text-length JSR2 #0008 MUL2 #0002 DIV2 SUB2 =Sprite.x |
|
55 |
+ ( load ) =label.addr =label.color =Screen.y |
|
56 |
+ ( align ) ~label.addr ,get-text-length JSR2 #0008 MUL2 #0002 DIV2 SUB2 =Screen.x |
|
58 | 57 |
~label.addr |
59 | 58 |
$loop |
60 |
- ( draw ) DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Sprite.addr ~label.color =Sprite.color |
|
59 |
+ ( draw ) DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Screen.addr ~label.color =Screen.color |
|
61 | 60 |
( incr ) #0001 ADD2 |
62 |
- ( incr ) ~Sprite.x #0008 ADD2 =Sprite.x |
|
61 |
+ ( incr ) ~Screen.x #0008 ADD2 =Screen.x |
|
63 | 62 |
DUP2 PEK2 #00 NEQ ^$loop JNZ |
64 | 63 |
POP2 |
65 | 64 |
|
... | ... |
@@ -67,13 +66,13 @@ RTN |
67 | 66 |
|
68 | 67 |
@draw-label-right ( x y color addr ) |
69 | 68 |
|
70 |
- ( load ) =label.addr =label.color =Sprite.y |
|
71 |
- ( align ) ~label.addr ,get-text-length JSR2 #0008 MUL2 SUB2 #0008 SUB2 =Sprite.x |
|
69 |
+ ( load ) =label.addr =label.color =Screen.y |
|
70 |
+ ( align ) ~label.addr ,get-text-length JSR2 #0008 MUL2 SUB2 #0008 SUB2 =Screen.x |
|
72 | 71 |
~label.addr |
73 | 72 |
$loop |
74 |
- ( draw ) DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Sprite.addr ~label.color =Sprite.color |
|
73 |
+ ( draw ) DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Screen.addr ~label.color =Screen.color |
|
75 | 74 |
( incr ) #0001 ADD2 |
76 |
- ( incr ) ~Sprite.x #0008 ADD2 =Sprite.x |
|
75 |
+ ( incr ) ~Screen.x #0008 ADD2 =Screen.x |
|
77 | 76 |
DUP2 PEK2 #00 NEQ ^$loop JNZ |
78 | 77 |
POP2 |
79 | 78 |
|
... | ... |
@@ -6,8 +6,7 @@ |
6 | 6 |
|
7 | 7 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
8 | 8 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
9 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
10 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
9 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
11 | 10 |
|0140 ;Controller { vector 2 button 1 } |
12 | 11 |
|0150 ;Keys { vector 2 key 1 } |
13 | 12 |
|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
... | ... |
@@ -18,24 +17,24 @@ |
18 | 17 |
|
19 | 18 |
( theme ) #0ffc =System.r #0f0b =System.g #0f03 =System.b |
20 | 19 |
|
21 |
- #0000 #0000 #0100 #0100 #01 ,pict_large ,draw-picture JSR2 |
|
22 |
- #0098 #0060 #0080 #0080 #01 ,pict_medium ,draw-picture JSR2 |
|
23 |
- #0020 #0090 #0020 #0020 #0a ,pict_small ,draw-picture JSR2 |
|
20 |
+ #0000 #0000 #0100 #0100 #21 ,pict_large ,draw-picture JSR2 |
|
21 |
+ #0098 #0060 #0080 #0080 #21 ,pict_medium ,draw-picture JSR2 |
|
22 |
+ #0020 #0090 #0020 #0020 #2a ,pict_small ,draw-picture JSR2 |
|
24 | 23 |
|
25 | 24 |
BRK |
26 | 25 |
|
27 | 26 |
@draw-picture ( x y width height color addr ) |
28 | 27 |
|
29 |
- DUP2 =Sprite.addr =pict.addr =pict.color =pict.height =pict.width DUP2 =Sprite.y =pict.y =pict.x |
|
28 |
+ DUP2 =Screen.addr =pict.addr =pict.color =pict.height =pict.width DUP2 =Screen.y =pict.y =pict.x |
|
30 | 29 |
$ver |
31 |
- ~pict.x =Sprite.x |
|
30 |
+ ~pict.x =Screen.x |
|
32 | 31 |
$hor |
33 |
- ( draw ) ~pict.color =Sprite.color |
|
34 |
- ( incr ) ~Sprite.x #0008 ADD2 =Sprite.x |
|
35 |
- ( incr ) ~Sprite.addr #0008 ADD2 =Sprite.addr |
|
36 |
- ~Sprite.x ~pict.width ~pict.x ADD2 LTH2 ^$hor JNZ |
|
37 |
- ( incr ) ~Sprite.y #0008 ADD2 =Sprite.y |
|
38 |
- ~Sprite.y ~pict.height ~pict.y ADD2 LTH2 ^$ver JNZ |
|
32 |
+ ( draw ) ~pict.color =Screen.color |
|
33 |
+ ( incr ) ~Screen.x #0008 ADD2 =Screen.x |
|
34 |
+ ( incr ) ~Screen.addr #0008 ADD2 =Screen.addr |
|
35 |
+ ~Screen.x ~pict.width ~pict.x ADD2 LTH2 ^$hor JNZ |
|
36 |
+ ( incr ) ~Screen.y #0008 ADD2 =Screen.y |
|
37 |
+ ~Screen.y ~pict.height ~pict.y ADD2 LTH2 ^$ver JNZ |
|
39 | 38 |
|
40 | 39 |
RTN |
41 | 40 |
|
... | ... |
@@ -14,8 +14,7 @@ |
14 | 14 |
|
15 | 15 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
16 | 16 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
17 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
18 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
17 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
19 | 18 |
|0140 ;Controller { vector 2 button 1 } |
20 | 19 |
|0150 ;Keys { vector 2 key 1 } |
21 | 20 |
|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
... | ... |
@@ -33,10 +32,10 @@ |
33 | 32 |
#0080 #0030 #00b0 #0070 #02 ,line-rect JSR2 |
34 | 33 |
#0090 #0040 #00c0 #0080 #03 ,line-rect JSR2 |
35 | 34 |
|
36 |
- #0000 #0080 #0020 #0020 #01 ,pict_small ,draw-picture JSR2 |
|
37 |
- #0010 #0088 #0020 #0020 #02 ,pict_small ,draw-picture JSR2 |
|
38 |
- #0020 #0090 #0020 #0020 #03 ,pict_small ,draw-picture JSR2 |
|
39 |
- #0030 #0098 #0020 #0020 #04 ,pict_small ,draw-picture JSR2 |
|
35 |
+ #0000 #0080 #0020 #0020 #21 ,pict_small ,draw-picture JSR2 |
|
36 |
+ #0010 #0088 #0020 #0020 #22 ,pict_small ,draw-picture JSR2 |
|
37 |
+ #0020 #0090 #0020 #0020 #23 ,pict_small ,draw-picture JSR2 |
|
38 |
+ #0030 #0098 #0020 #0020 #24 ,pict_small ,draw-picture JSR2 |
|
40 | 39 |
|
41 | 40 |
#0020 #0020 #0070 #0080 #01 ,draw-line JSR2 |
42 | 41 |
#0020 #0080 #0070 #0030 #02 ,draw-line JSR2 |
... | ... |
@@ -108,16 +107,16 @@ RTN |
108 | 107 |
|
109 | 108 |
@draw-picture ( x y width height color addr ) |
110 | 109 |
|
111 |
- ( load ) DUP2 =Sprite.addr =pict.addr =pict.color =pict.height =pict.width DUP2 =Sprite.y =pict.y =pict.x |
|
110 |
+ ( load ) DUP2 =Screen.addr =pict.addr =pict.color =pict.height =pict.width DUP2 =Screen.y =pict.y =pict.x |
|
112 | 111 |
$ver |
113 |
- ~pict.x =Sprite.x |
|
112 |
+ ~pict.x =Screen.x |
|
114 | 113 |
$hor |
115 |
- ( draw ) ~pict.color =Sprite.color |
|
116 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
117 |
- ( incr ) ~Sprite.addr 8+ =Sprite.addr |
|
118 |
- ~Sprite.x ~pict.width ~pict.x ADD2 LTH2 ^$hor JNZ |
|
119 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
120 |
- ~Sprite.y ~pict.height ~pict.y ADD2 LTH2 ^$ver JNZ |
|
114 |
+ ( draw ) ~pict.color =Screen.color |
|
115 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
116 |
+ ( incr ) ~Screen.addr 8+ =Screen.addr |
|
117 |
+ ~Screen.x ~pict.width ~pict.x ADD2 LTH2 ^$hor JNZ |
|
118 |
+ ( incr ) ~Screen.y 8+ =Screen.y |
|
119 |
+ ~Screen.y ~pict.height ~pict.y ADD2 LTH2 ^$ver JNZ |
|
121 | 120 |
|
122 | 121 |
RTN |
123 | 122 |
|
... | ... |
@@ -44,11 +44,10 @@ |
44 | 44 |
|
45 | 45 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
46 | 46 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
47 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
48 |
-|0130 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } |
|
49 |
-|0140 ;Controller { buttons 1 } |
|
50 |
-|0150 ;Keys { key 1 } |
|
51 |
-|0160 ;Mouse { x 2 y 2 state 1 chord 1 } |
|
47 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
48 |
+|0140 ;Controller { vector 2 button 1 } |
|
49 |
+|0150 ;Keys { vector 2 key 1 } |
|
50 |
+|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
|
52 | 51 |
|0170 ;File { pad 8 name 2 length 2 load 2 save 2 } |
53 | 52 |
|
54 | 53 |
( program ) |
... | ... |
@@ -56,7 +55,9 @@ |
56 | 55 |
|0200 @RESET |
57 | 56 |
|
58 | 57 |
( theme ) #e0fa =System.r #30fa =System.g #30fa =System.b |
59 |
- ( vectors ) ,FRAME =Screen.vector |
|
58 |
+ ( vectors ) ,on-mouse =Mouse.vector |
|
59 |
+ ( vectors ) ,on-key =Keys.vector |
|
60 |
+ ( vectors ) ,on-button =Controller.vector |
|
60 | 61 |
|
61 | 62 |
( load file ) |
62 | 63 |
,filepath ,load-file JSR2 |
... | ... |
@@ -69,102 +70,96 @@ |
69 | 70 |
|
70 | 71 |
BRK |
71 | 72 |
|
72 |
-@FRAME |
|
73 |
- |
|
74 |
- ( ctrl ) |
|
75 |
- ~Controller #00 EQU ~lock #00 NEQ #0000 NEQ2 ,$ctrl-end JNZ2 |
|
76 |
- ( lock ) #04 =lock |
|
77 |
- |
|
78 |
- ( alt + arrow ) |
|
79 |
- ~Controller #0f AND #02 NEQ ^$no-alt JNZ |
|
80 |
- ~Controller #04 SFT |
|
81 |
- DUP #01 NEQ ^$no-aup JNZ |
|
82 |
- ( sel word ) ,find-wordstart JSR2 =selection.to $no-aup |
|
83 |
- DUP #02 NEQ ^$no-adown JNZ |
|
84 |
- ( sel word ) ,find-wordend JSR2 =selection.to $no-adown |
|
85 |
- DUP #04 NEQ ^$no-aleft JNZ |
|
86 |
- ( sel decr ) ~selection.to -- =selection.to $no-aleft |
|
87 |
- DUP #08 NEQ ^$no-aright JNZ |
|
88 |
- ( sel incr ) ~selection.to ++ =selection.to $no-aright |
|
89 |
- POP |
|
90 |
- ,clamp-selection JSR2 |
|
91 |
- ,redraw JSR2 |
|
92 |
- ,$ctrl-end JMP2 |
|
93 |
- $no-alt |
|
94 |
- |
|
95 |
- ( ctrl + arrow ) |
|
96 |
- ~Controller #0f AND #01 NEQ ^$no-ctrl JNZ |
|
97 |
- ~Controller #04 SFT |
|
98 |
- DUP #01 NEQ ^$no-cup JNZ |
|
99 |
- ( jump scroll ) #0004 ,scroll-up JSR2 $no-cup |
|
100 |
- DUP #02 NEQ ^$no-cdown JNZ |
|
101 |
- ( jump scroll ) #0004 ,scroll-down JSR2 $no-cdown |
|
102 |
- DUP #04 NEQ ^$no-cleft JNZ |
|
103 |
- ( jump line ) ,goto-linestart JSR2 $no-cleft |
|
104 |
- DUP #08 NEQ ^$no-cright JNZ |
|
105 |
- ( jump line ) ,goto-lineend JSR2 $no-cright |
|
106 |
- POP |
|
107 |
- ,redraw JSR2 |
|
108 |
- ,$ctrl-end JMP2 |
|
109 |
- $no-ctrl |
|
110 |
- |
|
111 |
- ( arrow ) |
|
112 |
- ~Controller #f0 AND #00 EQU ,$no-arrow JNZ2 |
|
113 |
- ~Controller #f0 AND |
|
114 |
- DUP #10 NEQ ^$no-arrowup JNZ |
|
115 |
- ( clamp ) ~position.y #0000 EQU2 ^$no-arrowup JNZ |
|
116 |
- ,find-lineoffset JSR2 =position.x ~position.y -- =position.y |
|
117 |
- ,find-selection JSR2 DUP2 =selection.from ++ =selection.to $no-arrowup |
|
118 |
- DUP #20 NEQ ^$no-arrowdown JNZ |
|
119 |
- ( clamp:TODO ) |
|
120 |
- ,find-lineoffset JSR2 =position.x ~position.y ++ =position.y |
|
121 |
- ,find-selection JSR2 DUP2 =selection.from ++ =selection.to $no-arrowdown |
|
122 |
- DUP #40 NEQ ^$no-arrowleft JNZ |
|
123 |
- ( clamp ) ~selection.from ,document.body EQU2 ^$no-arrowleft JNZ |
|
124 |
- ~selection.from -- DUP2 =selection.from ++ =selection.to $no-arrowleft |
|
125 |
- DUP #80 NEQ ^$no-arrowright JNZ |
|
126 |
- ( clamp:TODO ) |
|
127 |
- #aa =Console.byte |
|
128 |
- ~selection.from ++ DUP2 =selection.from ++ =selection.to $no-arrowright |
|
129 |
- POP |
|
130 |
- ,clamp-selection JSR2 |
|
131 |
- ,follow-selection JSR2 |
|
132 |
- ,redraw JSR2 |
|
133 |
- $no-arrow |
|
134 |
- |
|
135 |
- $ctrl-end |
|
136 |
- |
|
137 |
- ( keys ) |
|
138 |
- |
|
139 |
- ~Keys #00 EQU ,$no-keys JNZ2 |
|
140 |
- |
|
141 |
- ~Keys #08 NEQ ^$no-backspace JNZ |
|
142 |
- ( erase ) |
|
143 |
- ~selection.to ~selection.from SUB2 #0001 NEQ2 ^$erase-multiple JNZ |
|
144 |
- ~selection.to ~selection.from SUB2 ,shift-left JSR2 |
|
145 |
- ,$erase-end JMP2 |
|
146 |
- $erase-multiple |
|
147 |
- ~selection.from ++ =selection.from |
|
148 |
- ~selection.to ~selection.from SUB2 ++ ,shift-left JSR2 |
|
149 |
- $erase-end |
|
150 |
- ~selection.from -- =selection.from |
|
151 |
- ^$keys-end JMP |
|
152 |
- $no-backspace |
|
153 |
- |
|
154 |
- ( insert ) |
|
155 |
- ~selection.to ~selection.from SUB2 ,shift-right JSR2 |
|
156 |
- ~Keys ~selection.from POK2 |
|
157 |
- ~selection.from ++ =selection.from |
|
158 |
- |
|
159 |
- $keys-end |
|
160 |
- ~selection.from ++ =selection.to |
|
161 |
- ( release ) #00 =Keys |
|
162 |
- ,redraw JSR2 |
|
73 |
+@on-key |
|
74 |
+ |
|
75 |
+ ~Keys #08 NEQ ^$no-backspace JNZ |
|
76 |
+ ( erase ) |
|
77 |
+ ~selection.to ~selection.from SUB2 #0001 NEQ2 ^$erase-multiple JNZ |
|
78 |
+ ~selection.to ~selection.from SUB2 ,shift-left JSR2 |
|
79 |
+ ,$erase-end JMP2 |
|
80 |
+ $erase-multiple |
|
81 |
+ ~selection.from ++ =selection.from |
|
82 |
+ ~selection.to ~selection.from SUB2 ++ ,shift-left JSR2 |
|
83 |
+ $erase-end |
|
84 |
+ ~selection.from -- =selection.from |
|
85 |
+ ^$keys-end JMP |
|
86 |
+ $no-backspace |
|
87 |
+ |
|
88 |
+ ( insert ) |
|
89 |
+ ~selection.to ~selection.from SUB2 ,shift-right JSR2 |
|
90 |
+ ~Keys ~selection.from POK2 |
|
91 |
+ ~selection.from ++ =selection.from |
|
92 |
+ |
|
93 |
+ $keys-end |
|
94 |
+ ~selection.from ++ =selection.to |
|
95 |
+ ( release ) #00 =Keys |
|
96 |
+ ,redraw JSR2 |
|
163 | 97 |
|
164 |
- $no-keys |
|
98 |
+BRK |
|
165 | 99 |
|
166 |
- ( mouse ) |
|
100 |
+@on-button ( -> ) |
|
101 |
+ |
|
102 |
+ ( alt + arrow ) |
|
103 |
+ ~Controller #0f AND #02 NEQ ^$no-alt JNZ |
|
104 |
+ ~Controller #04 SFT |
|
105 |
+ DUP #01 NEQ ^$no-aup JNZ |
|
106 |
+ ( sel word ) ,find-wordstart JSR2 =selection.to $no-aup |
|
107 |
+ DUP #02 NEQ ^$no-adown JNZ |
|
108 |
+ ( sel word ) ,find-wordend JSR2 =selection.to $no-adown |
|
109 |
+ DUP #04 NEQ ^$no-aleft JNZ |
|
110 |
+ ( sel decr ) ~selection.to -- =selection.to $no-aleft |
|
111 |
+ DUP #08 NEQ ^$no-aright JNZ |
|
112 |
+ ( sel incr ) ~selection.to ++ =selection.to $no-aright |
|
113 |
+ POP |
|
114 |
+ ,clamp-selection JSR2 |
|
115 |
+ ,redraw JSR2 |
|
116 |
+ BRK |
|
117 |
+ $no-alt |
|
118 |
+ |
|
119 |
+ ( ctrl + arrow ) |
|
120 |
+ ~Controller #0f AND #01 NEQ ^$no-ctrl JNZ |
|
121 |
+ ~Controller #04 SFT |
|
122 |
+ DUP #01 NEQ ^$no-cup JNZ |
|
123 |
+ ( jump scroll ) #0004 ,scroll-up JSR2 $no-cup |
|
124 |
+ DUP #02 NEQ ^$no-cdown JNZ |
|
125 |
+ ( jump scroll ) #0004 ,scroll-down JSR2 $no-cdown |
|
126 |
+ DUP #04 NEQ ^$no-cleft JNZ |
|
127 |
+ ( jump line ) ,goto-linestart JSR2 $no-cleft |
|
128 |
+ DUP #08 NEQ ^$no-cright JNZ |
|
129 |
+ ( jump line ) ,goto-lineend JSR2 $no-cright |
|
130 |
+ POP |
|
131 |
+ ,redraw JSR2 |
|
132 |
+ BRK |
|
133 |
+ $no-ctrl |
|
134 |
+ |
|
135 |
+ ( arrow ) |
|
136 |
+ ~Controller #f0 AND #00 EQU ,$no-arrow JNZ2 |
|
137 |
+ ~Controller #f0 AND |
|
138 |
+ DUP #10 NEQ ^$no-arrowup JNZ |
|
139 |
+ ( clamp ) ~position.y #0000 EQU2 ^$no-arrowup JNZ |
|
140 |
+ ,find-lineoffset JSR2 =position.x ~position.y -- =position.y |
|
141 |
+ ,find-selection JSR2 DUP2 =selection.from ++ =selection.to $no-arrowup |
|
142 |
+ DUP #20 NEQ ^$no-arrowdown JNZ |
|
143 |
+ ( clamp:TODO ) |
|
144 |
+ ,find-lineoffset JSR2 =position.x ~position.y ++ =position.y |
|
145 |
+ ,find-selection JSR2 DUP2 =selection.from ++ =selection.to $no-arrowdown |
|
146 |
+ DUP #40 NEQ ^$no-arrowleft JNZ |
|
147 |
+ ( clamp ) ~selection.from ,document.body EQU2 ^$no-arrowleft JNZ |
|
148 |
+ ~selection.from -- DUP2 =selection.from ++ =selection.to $no-arrowleft |
|
149 |
+ DUP #80 NEQ ^$no-arrowright JNZ |
|
150 |
+ ( clamp:TODO ) |
|
151 |
+ #aa =Console.byte |
|
152 |
+ ~selection.from ++ DUP2 =selection.from ++ =selection.to $no-arrowright |
|
153 |
+ POP |
|
154 |
+ ,clamp-selection JSR2 |
|
155 |
+ ,follow-selection JSR2 |
|
156 |
+ ,redraw JSR2 |
|
157 |
+ $no-arrow |
|
167 | 158 |
|
159 |
+BRK |
|
160 |
+ |
|
161 |
+@on-mouse ( -> ) |
|
162 |
+ |
|
168 | 163 |
~Mouse.state #00 EQU ^$touch-end JNZ |
169 | 164 |
~Mouse.x #0010 LTH2 ,touch-linebar JNZ2 |
170 | 165 |
~Mouse.x ~Screen.width 8- LTH2 ,touch-body JNZ2 |
... | ... |
@@ -173,11 +168,9 @@ BRK |
173 | 168 |
|
174 | 169 |
~Mouse.state =touch.state |
175 | 170 |
|
176 |
- ( unlock ) ~lock #00 EQU ,skip-unlock JNZ2 ~lock #01 SUB =lock @skip-unlock |
|
177 |
- |
|
178 | 171 |
,draw-cursor JSR2 |
179 | 172 |
|
180 |
-BRK |
|
173 |
+BRK |
|
181 | 174 |
|
182 | 175 |
@touch-linebar ( -- ) |
183 | 176 |
|
... | ... |
@@ -463,64 +456,60 @@ RTN |
463 | 456 |
,draw-titlebar JSR2 |
464 | 457 |
|
465 | 458 |
( save/load icons ) |
466 |
- ~Screen.height 8- =Sprite.y |
|
459 |
+ ~Screen.height 8- =Screen.y |
|
467 | 460 |
|
468 |
- ~Screen.width #0030 SUB2 =Sprite.x |
|
469 |
- ,eye_icn =Sprite.addr |
|
470 |
- #02 =Sprite.color |
|
461 |
+ ~Screen.width #0030 SUB2 =Screen.x |
|
462 |
+ ,eye_icn =Screen.addr |
|
463 |
+ #22 =Screen.color |
|
471 | 464 |
|
472 |
- ~Screen.width #0028 SUB2 =Sprite.x |
|
473 |
- ,name_icn =Sprite.addr |
|
474 |
- #02 =Sprite.color |
|
465 |
+ ~Screen.width #0028 SUB2 =Screen.x |
|
466 |
+ ,name_icn =Screen.addr |
|
467 |
+ #22 =Screen.color |
|
475 | 468 |
|
476 |
- ~Screen.width #0020 SUB2 =Sprite.x |
|
477 |
- ,load_icn =Sprite.addr |
|
478 |
- #02 =Sprite.color |
|
469 |
+ ~Screen.width #0020 SUB2 =Screen.x |
|
470 |
+ ,load_icn =Screen.addr |
|
471 |
+ #22 =Screen.color |
|
479 | 472 |
|
480 |
- ~Screen.width #0018 SUB2 =Sprite.x |
|
481 |
- ,save_icn =Sprite.addr |
|
482 |
- #02 =Sprite.color |
|
473 |
+ ~Screen.width #0018 SUB2 =Screen.x |
|
474 |
+ ,save_icn =Screen.addr |
|
475 |
+ #22 =Screen.color |
|
483 | 476 |
|
484 | 477 |
RTN |
485 | 478 |
|
486 | 479 |
@draw-short ( short ) |
487 | 480 |
|
488 | 481 |
=addr |
489 |
- ,font_hex #00 ,addr PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
490 |
- ( draw ) #0e =Sprite.color |
|
491 |
- ~Sprite.x 8+ =Sprite.x |
|
492 |
- ,font_hex #00 ,addr PEK2 #0f AND #08 MUL ADD2 =Sprite.addr |
|
493 |
- ( draw ) #0e =Sprite.color |
|
494 |
- ~Sprite.x 8+ =Sprite.x |
|
495 |
- ,font_hex #00 ,addr ++ PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
496 |
- ( draw ) #0e =Sprite.color |
|
497 |
- ~Sprite.x 8+ =Sprite.x |
|
498 |
- ,font_hex #00 ,addr ++ PEK2 #0f AND #08 MUL ADD2 =Sprite.addr |
|
499 |
- ( draw ) #0e =Sprite.color |
|
482 |
+ ,font_hex #00 ,addr PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Screen.addr |
|
483 |
+ ( draw ) #2e =Screen.color |
|
484 |
+ ~Screen.x 8+ =Screen.x |
|
485 |
+ ,font_hex #00 ,addr PEK2 #0f AND #08 MUL ADD2 =Screen.addr |
|
486 |
+ ( draw ) #2e =Screen.color |
|
487 |
+ ~Screen.x 8+ =Screen.x |
|
488 |
+ ,font_hex #00 ,addr ++ PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Screen.addr |
|
489 |
+ ( draw ) #2e =Screen.color |
|
490 |
+ ~Screen.x 8+ =Screen.x |
|
491 |
+ ,font_hex #00 ,addr ++ PEK2 #0f AND #08 MUL ADD2 =Screen.addr |
|
492 |
+ ( draw ) #2e =Screen.color |
|
500 | 493 |
|
501 | 494 |
RTN |
502 | 495 |
|
503 | 496 |
@draw-cursor |
504 | 497 |
|
505 |
- ~mouse.x ~Mouse.x NEQ2 |
|
506 |
- ~mouse.y ~Mouse.y NEQ2 |
|
507 |
- #0000 EQU2 RTN? ( Return if unchanged ) |
|
508 |
- |
|
509 | 498 |
( clear last cursor ) |
510 |
- ~mouse.x =Sprite.x |
|
511 |
- ~mouse.y =Sprite.y |
|
512 |
- ,blank_icn =Sprite.addr |
|
513 |
- #10 =Sprite.color |
|
499 |
+ ~mouse.x =Screen.x |
|
500 |
+ ~mouse.y =Screen.y |
|
501 |
+ ,blank_icn =Screen.addr |
|
502 |
+ #30 =Screen.color |
|
514 | 503 |
|
515 | 504 |
( record mouse positions ) |
516 | 505 |
~Mouse.x =mouse.x |
517 | 506 |
~Mouse.y =mouse.y |
518 | 507 |
|
519 | 508 |
( draw new cursor ) |
520 |
- ~mouse.x =Sprite.x |
|
521 |
- ~mouse.y =Sprite.y |
|
522 |
- ,cursor_icn =Sprite.addr |
|
523 |
- #1f ~Mouse.state #01 EQU #0a MUL SUB =Sprite.color |
|
509 |
+ ~mouse.x =Screen.x |
|
510 |
+ ~mouse.y =Screen.y |
|
511 |
+ ,cursor_icn =Screen.addr |
|
512 |
+ #3f ~Mouse.state #01 EQU #0a MUL SUB =Screen.color |
|
524 | 513 |
|
525 | 514 |
RTN |
526 | 515 |
|
... | ... |
@@ -538,55 +527,55 @@ RTN |
538 | 527 |
~textarea.addr PEK2 #00 NEQ ^$find-offset JNZ |
539 | 528 |
$find-offset-end |
540 | 529 |
|
541 |
- #0018 =Sprite.x #0000 =Sprite.y |
|
530 |
+ #0018 =Screen.x #0000 =Screen.y |
|
542 | 531 |
~textarea.addr =i |
543 | 532 |
|
544 | 533 |
$loop |
545 | 534 |
|
546 |
- ~Sprite.y ~Screen.height #0010 SUB2 GTH2 ,$end JNZ2 |
|
535 |
+ ~Screen.y ~Screen.height #0010 SUB2 GTH2 ,$end JNZ2 |
|
547 | 536 |
|
548 | 537 |
|
549 | 538 |
~i PEK2 #0a NEQ ~i PEK2 #0d NEQ #0101 EQU2 ,$no-linebreak JNZ2 |
550 | 539 |
( draw linebreak ) |
551 |
- ,linebreak_icn =Sprite.addr |
|
540 |
+ ,linebreak_icn =Screen.addr |
|
552 | 541 |
( draw ) #02 |
553 | 542 |
~i ~selection.from -- GTH2 |
554 | 543 |
~i ~selection.to LTH2 #0101 EQU2 |
555 |
- #06 MUL ADD =Sprite.color |
|
544 |
+ #26 MUL ADD =Screen.color |
|
556 | 545 |
( fill clear ) |
557 | 546 |
$fill-clear |
558 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
559 |
- ,font =Sprite.addr |
|
560 |
- #01 =Sprite.color |
|
561 |
- ~Sprite.x ~Screen.width 8- LTH2 ^$fill-clear JNZ |
|
547 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
548 |
+ ,font =Screen.addr |
|
549 |
+ #21 =Screen.color |
|
550 |
+ ~Screen.x ~Screen.width 8- LTH2 ^$fill-clear JNZ |
|
562 | 551 |
|
563 | 552 |
( draw line number ) |
564 |
- #0000 =Sprite.x |
|
565 |
- ~scroll.y ~Sprite.y 8/ ADD2 DUP2 SWP POP =k |
|
553 |
+ #0000 =Screen.x |
|
554 |
+ ~scroll.y ~Screen.y 8/ ADD2 DUP2 SWP POP =k |
|
566 | 555 |
~position.y EQU2 #05 MUL =l |
567 |
- ,font_hex #00 ~k #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
568 |
- #04 ~l ADD =Sprite.color |
|
569 |
- #0008 =Sprite.x |
|
570 |
- ,font_hex #00 ~k #0f AND #08 MUL ADD2 =Sprite.addr |
|
571 |
- #04 ~l ADD =Sprite.color |
|
572 |
- |
|
573 |
- #0010 =Sprite.x |
|
574 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
556 |
+ ,font_hex #00 ~k #f0 AND #04 SFT #08 MUL ADD2 =Screen.addr |
|
557 |
+ #24 ~l ADD =Screen.color |
|
558 |
+ #0008 =Screen.x |
|
559 |
+ ,font_hex #00 ~k #0f AND #08 MUL ADD2 =Screen.addr |
|
560 |
+ #24 ~l ADD =Screen.color |
|
561 |
+ |
|
562 |
+ #0010 =Screen.x |
|
563 |
+ ( incr ) ~Screen.y 8+ =Screen.y |
|
575 | 564 |
$no-linebreak |
576 | 565 |
|
577 | 566 |
|
578 | 567 |
( get character ) |
579 |
- ,font #00 ~i PEK2 #20 SUB 8* ADD2 =Sprite.addr |
|
568 |
+ ,font #00 ~i PEK2 #20 SUB 8* ADD2 =Screen.addr |
|
580 | 569 |
( is a special character ) |
581 |
- ~i PEK2 #20 GTH ^$no-tab JNZ ,font =Sprite.addr $no-tab |
|
570 |
+ ~i PEK2 #20 GTH ^$no-tab JNZ ,font =Screen.addr $no-tab |
|
582 | 571 |
|
583 |
- ( draw ) #01 |
|
572 |
+ ( draw ) #21 |
|
584 | 573 |
~i ~selection.from -- GTH2 |
585 | 574 |
~i ~selection.to LTH2 #0101 EQU2 |
586 |
- #05 MUL ADD =Sprite.color |
|
575 |
+ #05 MUL ADD =Screen.color |
|
587 | 576 |
|
588 | 577 |
( incr ) ~i ++ =i |
589 |
- ( incr ) ~Sprite.x #0007 ADD2 =Sprite.x |
|
578 |
+ ( incr ) ~Screen.x #0007 ADD2 =Screen.x |
|
590 | 579 |
|
591 | 580 |
~i PEK2 #00 NEQ ,$loop JNZ2 |
592 | 581 |
|
... | ... |
@@ -598,40 +587,40 @@ RTN |
598 | 587 |
|
599 | 588 |
,scrollbar_icn ( keeping a copy on stack ) |
600 | 589 |
|
601 |
- ~Screen.width 8- =Sprite.x |
|
602 |
- #0008 =Sprite.y |
|
603 |
- DUP2 =Sprite.addr |
|
590 |
+ ~Screen.width 8- =Screen.x |
|
591 |
+ #0008 =Screen.y |
|
592 |
+ DUP2 =Screen.addr |
|
604 | 593 |
|
605 | 594 |
#0008 ~Screen.height 8- |
606 | 595 |
$loop |
607 |
- ( draw ) #01 =Sprite.color |
|
608 |
- ( incr ) SWP2 8+ DUP2 =Sprite.y SWP2 |
|
596 |
+ ( draw ) #21 =Screen.color |
|
597 |
+ ( incr ) SWP2 8+ DUP2 =Screen.y SWP2 |
|
609 | 598 |
OVR2 OVR2 LTH2 ^$loop JNZ |
610 | 599 |
POP2 POP2 |
611 | 600 |
|
612 |
- ~scroll.y 8+ =Sprite.y |
|
613 |
- DUP2 #0008 ADD2 =Sprite.addr |
|
614 |
- ( draw ) #01 =Sprite.color |
|
601 |
+ ~scroll.y 8+ =Screen.y |
|
602 |
+ DUP2 #0008 ADD2 =Screen.addr |
|
603 |
+ ( draw ) #21 =Screen.color |
|
615 | 604 |
|
616 |
- #0000 =Sprite.y |
|
617 |
- DUP2 #0010 ADD2 =Sprite.addr |
|
618 |
- ( draw ) #04 =Sprite.color |
|
605 |
+ #0000 =Screen.y |
|
606 |
+ DUP2 #0010 ADD2 =Screen.addr |
|
607 |
+ ( draw ) #24 =Screen.color |
|
619 | 608 |
|
620 |
- ~Screen.height 8- =Sprite.y |
|
621 |
- #0018 ADD2 =Sprite.addr |
|
622 |
- ( draw ) #04 =Sprite.color |
|
609 |
+ ~Screen.height 8- =Screen.y |
|
610 |
+ #0018 ADD2 =Screen.addr |
|
611 |
+ ( draw ) #24 =Screen.color |
|
623 | 612 |
|
624 | 613 |
RTN |
625 | 614 |
|
626 | 615 |
@draw-titlebar |
627 | 616 |
|
628 |
- #0018 ~Screen.height 8- #09 ,filepath |
|
629 |
- ( load ) =label.addr =label.color =Sprite.y =Sprite.x |
|
617 |
+ #0018 ~Screen.height 8- #29 ,filepath |
|
618 |
+ ( load ) =label.addr =label.color =Screen.y =Screen.x |
|
630 | 619 |
~label.addr |
631 | 620 |
$loop |
632 |
- ( draw ) DUP2 PEK2 #00 SWP #20 SUB 8* ,font ADD2 =Sprite.addr ~label.color =Sprite.color |
|
621 |
+ ( draw ) DUP2 PEK2 #00 SWP #20 SUB 8* ,font ADD2 =Screen.addr ~label.color =Screen.color |
|
633 | 622 |
( incr ) ++ |
634 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
623 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
635 | 624 |
DUP2 PEK2 #00 NEQ ^$loop JNZ |
636 | 625 |
POP2 |
637 | 626 |
( selection ) |
... | ... |
@@ -33,8 +33,7 @@ |
33 | 33 |
|
34 | 34 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
35 | 35 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
36 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
37 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
36 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
38 | 37 |
|0140 ;Controller { vector 2 button 1 } |
39 | 38 |
|0150 ;Keys { vector 2 key 1 } |
40 | 39 |
|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
... | ... |
@@ -254,65 +253,65 @@ RTN |
254 | 253 |
|
255 | 254 |
( position ) |
256 | 255 |
|
257 |
- ~bankview.x =Sprite.x |
|
258 |
- ~bankview.y #0010 SUB2 =Sprite.y |
|
256 |
+ ~bankview.x =Screen.x |
|
257 |
+ ~bankview.y #0010 SUB2 =Screen.y |
|
259 | 258 |
~bankview.addr ,draw-short JSR2 |
260 | 259 |
|
261 | 260 |
( toolbar ) |
262 | 261 |
|
263 |
- ~bankview.x #0068 ADD2 =Sprite.x |
|
264 |
- ~bankview.y #0010 SUB2 =Sprite.y |
|
265 |
- ,tool_selector =Sprite.addr |
|
266 |
- #01 ~bankview.mode #00 EQU ADD =Sprite.color |
|
262 |
+ ~bankview.x #0068 ADD2 =Screen.x |
|
263 |
+ ~bankview.y #0010 SUB2 =Screen.y |
|
264 |
+ ,tool_selector =Screen.addr |
|
265 |
+ #21 ~bankview.mode #00 EQU ADD =Screen.color |
|
267 | 266 |
|
268 |
- ~Sprite.x 8+ =Sprite.x |
|
269 |
- ,tool_hand =Sprite.addr |
|
270 |
- #01 ~bankview.mode #01 EQU ADD =Sprite.color |
|
267 |
+ ~Screen.x 8+ =Screen.x |
|
268 |
+ ,tool_hand =Screen.addr |
|
269 |
+ #21 ~bankview.mode #01 EQU ADD =Screen.color |
|
271 | 270 |
|
272 |
- ~Sprite.x 8+ =Sprite.x |
|
273 |
- ,tool_eraser =Sprite.addr |
|
274 |
- #01 ~bankview.mode #02 EQU ADD =Sprite.color |
|
271 |
+ ~Screen.x 8+ =Screen.x |
|
272 |
+ ,tool_eraser =Screen.addr |
|
273 |
+ #21 ~bankview.mode #02 EQU ADD =Screen.color |
|
275 | 274 |
|
276 |
- ~tileview.x #0070 ADD2 =Sprite.x |
|
277 |
- ,load_icn =Sprite.addr |
|
278 |
- #01 =Sprite.color |
|
275 |
+ ~tileview.x #0070 ADD2 =Screen.x |
|
276 |
+ ,load_icn =Screen.addr |
|
277 |
+ #21 =Screen.color |
|
279 | 278 |
|
280 |
- ~tileview.x #0078 ADD2 =Sprite.x |
|
281 |
- ,save_icn =Sprite.addr |
|
282 |
- #01 =Sprite.color |
|
279 |
+ ~tileview.x #0078 ADD2 =Screen.x |
|
280 |
+ ,save_icn =Screen.addr |
|
281 |
+ #21 =Screen.color |
|
283 | 282 |
|
284 | 283 |
( guides ) |
285 | 284 |
|
286 |
- #00 =i ,font_hex =Sprite.addr |
|
285 |
+ #00 =i ,font_hex =Screen.addr |
|
287 | 286 |
$guides |
288 |
- ~bankview.x #0010 SUB2 =Sprite.x |
|
289 |
- ~bankview.y #00 ~i #08 MUL ADD2 =Sprite.y |
|
290 |
- ( draw ) #02 =Sprite.color |
|
291 |
- ~bankview.x #00 ~i #08 MUL ADD2 =Sprite.x |
|
292 |
- ~bankview.y #0088 ADD2 =Sprite.y |
|
293 |
- ( draw ) #02 =Sprite.color |
|
294 |
- ~Sprite.addr 8+ =Sprite.addr |
|
287 |
+ ~bankview.x #0010 SUB2 =Screen.x |
|
288 |
+ ~bankview.y #00 ~i #08 MUL ADD2 =Screen.y |
|
289 |
+ ( draw ) #22 =Screen.color |
|
290 |
+ ~bankview.x #00 ~i #08 MUL ADD2 =Screen.x |
|
291 |
+ ~bankview.y #0088 ADD2 =Screen.y |
|
292 |
+ ( draw ) #22 =Screen.color |
|
293 |
+ ~Screen.addr 8+ =Screen.addr |
|
295 | 294 |
( incr ) ~i #01 ADD =i |
296 | 295 |
~i #10 LTH ^$guides JNZ |
297 | 296 |
|
298 | 297 |
( body ) |
299 | 298 |
|
300 |
- ~bankview.x =Sprite.x ~bankview.y =Sprite.y |
|
301 |
- #00 =pt.x #00 =pt.y ~bankview.addr =Sprite.addr |
|
299 |
+ ~bankview.x =Screen.x ~bankview.y =Screen.y |
|
300 |
+ #00 =pt.x #00 =pt.y ~bankview.addr =Screen.addr |
|
302 | 301 |
$ver |
303 | 302 |
#00 =pt.x |
304 |
- ~bankview.x =Sprite.x |
|
303 |
+ ~bankview.x =Screen.x |
|
305 | 304 |
$hor |
306 |
- ( draw ) #01 |
|
307 |
- ~Sprite.addr ~tileview.addr LTH2 |
|
308 |
- ~Sprite.addr ~tileview.addr #0018 ADD2 GTH2 |
|
309 |
- #0000 EQU2 #06 MUL ADD =Sprite.color |
|
310 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
311 |
- ( incr ) ~Sprite.addr 8+ =Sprite.addr |
|
305 |
+ ( draw ) #21 |
|
306 |
+ ~Screen.addr ~tileview.addr LTH2 |
|
307 |
+ ~Screen.addr ~tileview.addr #0018 ADD2 GTH2 |
|
308 |
+ #0000 EQU2 #06 MUL ADD =Screen.color |
|
309 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
310 |
+ ( incr ) ~Screen.addr 8+ =Screen.addr |
|
312 | 311 |
( incr ) ~pt.x #01 ADD =pt.x |
313 | 312 |
~pt.x #10 LTH ,$hor JNZ2 |
314 | 313 |
( incr ) ~pt.y #01 ADD =pt.y |
315 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
314 |
+ ( incr ) ~Screen.y 8+ =Screen.y |
|
316 | 315 |
~pt.y #10 LTH ,$ver JNZ2 |
317 | 316 |
|
318 | 317 |
RTN |
... | ... |
@@ -321,36 +320,36 @@ RTN |
321 | 320 |
|
322 | 321 |
~tileview.x #0002 SUB2 ~tileview.y #0002 SUB2 ~tileview.x #0080 ADD2 ~tileview.y #0081 ADD2 #03 ,line-rect JSR2 |
323 | 322 |
|
324 |
- ~tileview.x #0028 ADD2 =Sprite.x |
|
325 |
- ~tileview.y #0010 SUB2 =Sprite.y |
|
326 |
- ~tileview.addr =Sprite.addr |
|
327 |
- #03 =Sprite.color |
|
323 |
+ ~tileview.x #0028 ADD2 =Screen.x |
|
324 |
+ ~tileview.y #0010 SUB2 =Screen.y |
|
325 |
+ ~tileview.addr =Screen.addr |
|
326 |
+ #23 =Screen.color |
|
328 | 327 |
|
329 | 328 |
( position ) |
330 | 329 |
|
331 |
- ~tileview.x =Sprite.x |
|
332 |
- ~tileview.y #0010 SUB2 =Sprite.y |
|
330 |
+ ~tileview.x =Screen.x |
|
331 |
+ ~tileview.y #0010 SUB2 =Screen.y |
|
333 | 332 |
~tileview.addr ,draw-short JSR2 |
334 | 333 |
|
335 | 334 |
( body ) |
336 | 335 |
|
337 |
- ~tileview.x =Sprite.x |
|
338 |
- ~tileview.y =Sprite.y |
|
336 |
+ ~tileview.x =Screen.x |
|
337 |
+ ~tileview.y =Screen.y |
|
339 | 338 |
~tileview.addr =tileview.addr |
340 | 339 |
,draw-tileview-icn JSR2 |
341 | 340 |
|
342 |
- ~tileview.x #0040 ADD2 =Sprite.x |
|
343 |
- ~tileview.y =Sprite.y |
|
341 |
+ ~tileview.x #0040 ADD2 =Screen.x |
|
342 |
+ ~tileview.y =Screen.y |
|
344 | 343 |
~tileview.addr 8+ =tileview.addr |
345 | 344 |
,draw-tileview-icn JSR2 |
346 | 345 |
|
347 |
- ~tileview.x =Sprite.x |
|
348 |
- ~tileview.y #0040 ADD2 =Sprite.y |
|
346 |
+ ~tileview.x =Screen.x |
|
347 |
+ ~tileview.y #0040 ADD2 =Screen.y |
|
349 | 348 |
~tileview.addr 8+ =tileview.addr |
350 | 349 |
,draw-tileview-icn JSR2 |
351 | 350 |
|
352 |
- ~tileview.x #0040 ADD2 =Sprite.x |
|
353 |
- ~tileview.y #0040 ADD2 =Sprite.y |
|
351 |
+ ~tileview.x #0040 ADD2 =Screen.x |
|
352 |
+ ~tileview.y #0040 ADD2 =Screen.y |
|
354 | 353 |
~tileview.addr 8+ =tileview.addr |
355 | 354 |
,draw-tileview-icn JSR2 |
356 | 355 |
|
... | ... |
@@ -374,43 +373,43 @@ RTN |
374 | 373 |
|
375 | 374 |
( bytes ) |
376 | 375 |
|
377 |
- ~tileview.y #0018 ADD2 =Sprite.y |
|
376 |
+ ~tileview.y #0018 ADD2 =Screen.y |
|
378 | 377 |
#00 =i |
379 | 378 |
$bytes |
380 |
- ~tileview.x #0088 ADD2 =Sprite.x |
|
381 |
- ,font_hex #00 ~tileview.addr #00 ~i ADD2 PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
382 |
- ( draw ) #02 =Sprite.color |
|
383 |
- ~Sprite.x 8+ =Sprite.x |
|
384 |
- ,font_hex #00 ~tileview.addr #00 ~i ADD2 PEK2 #0f AND #08 MUL ADD2 =Sprite.addr |
|
385 |
- ( draw ) #02 =Sprite.color |
|
379 |
+ ~tileview.x #0088 ADD2 =Screen.x |
|
380 |
+ ,font_hex #00 ~tileview.addr #00 ~i ADD2 PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Screen.addr |
|
381 |
+ ( draw ) #22 =Screen.color |
|
382 |
+ ~Screen.x 8+ =Screen.x |
|
383 |
+ ,font_hex #00 ~tileview.addr #00 ~i ADD2 PEK2 #0f AND #08 MUL ADD2 =Screen.addr |
|
384 |
+ ( draw ) #22 =Screen.color |
|
386 | 385 |
( incr ) ~i #01 ADD =i |
387 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
386 |
+ ( incr ) ~Screen.y 8+ =Screen.y |
|
388 | 387 |
~i #08 LTH ,$bytes JNZ2 |
389 | 388 |
|
390 | 389 |
( operations ) |
391 | 390 |
|
392 |
- ~Sprite.y 8+ =Sprite.y |
|
393 |
- ,movedown_icn =Sprite.addr |
|
394 |
- #01 =Sprite.color |
|
395 |
- ~Sprite.x 8- =Sprite.x |
|
396 |
- ,moveup_icn =Sprite.addr |
|
397 |
- #01 =Sprite.color |
|
391 |
+ ~Screen.y 8+ =Screen.y |
|
392 |
+ ,movedown_icn =Screen.addr |
|
393 |
+ #21 =Screen.color |
|
394 |
+ ~Screen.x 8- =Screen.x |
|
395 |
+ ,moveup_icn =Screen.addr |
|
396 |
+ #21 =Screen.color |
|
398 | 397 |
|
399 | 398 |
( draw tiles ) |
400 |
- ~tileview.y =Sprite.y |
|
401 |
- #00 =pt.x #00 =pt.y ~tileview.addr =Sprite.addr |
|
399 |
+ ~tileview.y =Screen.y |
|
400 |
+ #00 =pt.x #00 =pt.y ~tileview.addr =Screen.addr |
|
402 | 401 |
|
403 | 402 |
$tiles-ver |
404 | 403 |
#00 =pt.x |
405 |
- ~tileview.x #0088 ADD2 =Sprite.x |
|
404 |
+ ~tileview.x #0088 ADD2 =Screen.x |
|
406 | 405 |
$tiles-hor |
407 |
- ( draw ) #03 =Sprite.color |
|
408 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
409 |
- ( incr ) ~Sprite.addr 8+ =Sprite.addr |
|
406 |
+ ( draw ) #23 =Screen.color |
|
407 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
408 |
+ ( incr ) ~Screen.addr 8+ =Screen.addr |
|
410 | 409 |
( incr ) ~pt.x #01 ADD =pt.x |
411 | 410 |
~pt.x #02 LTH ,$tiles-hor JNZ2 |
412 | 411 |
( incr ) ~pt.y #01 ADD =pt.y |
413 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
412 |
+ ( incr ) ~Screen.y 8+ =Screen.y |
|
414 | 413 |
~pt.y #02 LTH ,$tiles-ver JNZ2 |
415 | 414 |
|
416 | 415 |
RTN |
... | ... |
@@ -424,14 +423,14 @@ RTN |
424 | 423 |
( get bit ) |
425 | 424 |
,blank_icn #00 |
426 | 425 |
~tileview.addr #00 ~pt.y ADD2 PEK2 #07 ~pt.x SUB SFT #01 AND ( get bit ) |
427 |
- 8* ADD2 =Sprite.addr ( add *8 ) |
|
428 |
- ( draw ) #01 =Sprite.color |
|
429 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
426 |
+ 8* ADD2 =Screen.addr ( add *8 ) |
|
427 |
+ ( draw ) #21 =Screen.color |
|
428 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
430 | 429 |
( incr ) ~pt.x #01 ADD =pt.x |
431 | 430 |
~pt.x #08 LTH ,$hor JNZ2 |
432 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
431 |
+ ( incr ) ~Screen.y 8+ =Screen.y |
|
433 | 432 |
( incr ) ~pt.y #01 ADD =pt.y |
434 |
- ~Sprite.x #0040 SUB2 =Sprite.x |
|
433 |
+ ~Screen.x #0040 SUB2 =Screen.x |
|
435 | 434 |
~pt.y #08 LTH ,$ver JNZ2 |
436 | 435 |
|
437 | 436 |
RTN |
... | ... |
@@ -444,37 +443,37 @@ RTN |
444 | 443 |
#0000 EQU2 RTN? ( Return if unchanged ) |
445 | 444 |
|
446 | 445 |
( clear last cursor ) |
447 |
- ~mouse.x =Sprite.x |
|
448 |
- ~mouse.y =Sprite.y |
|
449 |
- ,blank_icn =Sprite.addr |
|
450 |
- #10 =Sprite.color |
|
446 |
+ ~mouse.x =Screen.x |
|
447 |
+ ~mouse.y =Screen.y |
|
448 |
+ ,blank_icn =Screen.addr |
|
449 |
+ #30 =Screen.color |
|
451 | 450 |
|
452 | 451 |
( record mouse positions ) |
453 | 452 |
~Mouse.x =mouse.x |
454 | 453 |
~Mouse.y =mouse.y |
455 | 454 |
|
456 | 455 |
( draw new cursor ) |
457 |
- ~mouse.x =Sprite.x |
|
458 |
- ~mouse.y =Sprite.y |
|
459 |
- ,tool_selector #00 ~bankview.mode #08 MUL ADD2 =Sprite.addr |
|
460 |
- #12 =Sprite.color |
|
456 |
+ ~mouse.x =Screen.x |
|
457 |
+ ~mouse.y =Screen.y |
|
458 |
+ ,tool_selector #00 ~bankview.mode #08 MUL ADD2 =Screen.addr |
|
459 |
+ #32 =Screen.color |
|
461 | 460 |
|
462 | 461 |
RTN |
463 | 462 |
|
464 | 463 |
@draw-short ( short ) |
465 | 464 |
|
466 | 465 |
=addr |
467 |
- ,font_hex #00 ,addr PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
468 |
- ( draw ) #02 =Sprite.color |
|
469 |
- ~Sprite.x 8+ =Sprite.x |
|
470 |
- ,font_hex #00 ,addr PEK2 #0f AND #08 MUL ADD2 =Sprite.addr |
|
471 |
- ( draw ) #02 =Sprite.color |
|
472 |
- ~Sprite.x 8+ =Sprite.x |
|
473 |
- ,font_hex #00 ,addr ++ PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
474 |
- ( draw ) #02 =Sprite.color |
|
475 |
- ~Sprite.x 8+ =Sprite.x |
|
476 |
- ,font_hex #00 ,addr ++ PEK2 #0f AND #08 MUL ADD2 =Sprite.addr |
|
477 |
- ( draw ) #02 =Sprite.color |
|
466 |
+ ,font_hex #00 ,addr PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Screen.addr |
|
467 |
+ ( draw ) #22 =Screen.color |
|
468 |
+ ~Screen.x 8+ =Screen.x |
|
469 |
+ ,font_hex #00 ,addr PEK2 #0f AND #08 MUL ADD2 =Screen.addr |
|
470 |
+ ( draw ) #22 =Screen.color |
|
471 |
+ ~Screen.x 8+ =Screen.x |
|
472 |
+ ,font_hex #00 ,addr ++ PEK2 #f0 AND #04 SFT #08 MUL ADD2 =Screen.addr |
|
473 |
+ ( draw ) #22 =Screen.color |
|
474 |
+ ~Screen.x 8+ =Screen.x |
|
475 |
+ ,font_hex #00 ,addr ++ PEK2 #0f AND #08 MUL ADD2 =Screen.addr |
|
476 |
+ ( draw ) #22 =Screen.color |
|
478 | 477 |
|
479 | 478 |
RTN |
480 | 479 |
|
... | ... |
@@ -13,8 +13,7 @@ |
13 | 13 |
|
14 | 14 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
15 | 15 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
16 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
17 |
-|0130 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } |
|
16 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
18 | 17 |
|01a0 ;DateTime { year 2 month 1 day 1 hour 1 minute 1 second 1 dotw 1 doty 2 isdst 1 pad 4 refresh 1 } |
19 | 18 |
|
20 | 19 |
( program ) |
... | ... |
@@ -50,7 +49,7 @@ |
50 | 49 |
,neralie-lines JSR2 |
51 | 50 |
BRK |
52 | 51 |
|
53 |
- #02 =Sprite.color |
|
52 |
+ #22 =Screen.color |
|
54 | 53 |
#0000 #00 ~number.count DUP2 ,h JSR2 |
55 | 54 |
~number.count #01 ADD =number.count |
56 | 55 |
|
... | ... |
@@ -76,8 +75,8 @@ |
76 | 75 |
JMP2r |
77 | 76 |
|
78 | 77 |
@arvelie-text ( -- ) |
79 |
- ~Screen.width #0002 DIV2 #0034 SUB2 =Sprite.x |
|
80 |
- ~Screen.height #0008 SUB2 =Sprite.y |
|
78 |
+ ~Screen.width #0002 DIV2 #0034 SUB2 =Screen.x |
|
79 |
+ ~Screen.height #0008 SUB2 =Screen.y |
|
81 | 80 |
~DateTime.year #07d6 SUB2 |
82 | 81 |
#000a ,modf JSR2 ,digit JSR2 |
83 | 82 |
,digit JSR2 |
... | ... |
@@ -88,7 +87,7 @@ |
88 | 87 |
JMP2r |
89 | 88 |
|
90 | 89 |
@neralie-text ( -- ) |
91 |
- ~Screen.width #0002 DIV2 #0004 SUB2 =Sprite.x |
|
90 |
+ ~Screen.width #0002 DIV2 #0004 SUB2 =Screen.x |
|
92 | 91 |
~neralie.n0123 |
93 | 92 |
#03e8 ,modf JSR2 ^digit JSR |
94 | 93 |
#0064 ,modf JSR2 ^digit JSR |
... | ... |
@@ -100,14 +99,14 @@ |
100 | 99 |
JMP2r |
101 | 100 |
|
102 | 101 |
@letter ( index* -- ) |
103 |
- #0008 MUL2 ,font-letters ADD2 =Sprite.addr |
|
102 |
+ #0008 MUL2 ,font-letters ADD2 =Screen.addr |
|
104 | 103 |
^digit-middle JMP |
105 | 104 |
|
106 | 105 |
@digit ( index* -- ) |
107 |
- #0008 MUL2 ,font-numbers ADD2 =Sprite.addr |
|
106 |
+ #0008 MUL2 ,font-numbers ADD2 =Screen.addr |
|
108 | 107 |
$middle |
109 |
- ~neralie.color =Sprite.color |
|
110 |
- ~Sprite.x #0008 ADD2 =Sprite.x |
|
108 |
+ ~neralie.color #20 ADD =Screen.color |
|
109 |
+ ~Screen.x #0008 ADD2 =Screen.x |
|
111 | 110 |
JMP2r |
112 | 111 |
|
113 | 112 |
@neralie-lines ( -- ) |
... | ... |
@@ -116,14 +115,14 @@ |
116 | 115 |
|
117 | 116 |
,neralie.n4 SWP POP ~neralie.n0123 |
118 | 117 |
DUP2 ,$h JSR2 |
119 |
- ,$next JSR2 #0001 =Sprite.x ~neralie.y #0003 SUB2 =Sprite.y ^digit JSR |
|
118 |
+ ,$next JSR2 #0001 =Screen.x ~neralie.y #0003 SUB2 =Screen.y ^digit JSR |
|
120 | 119 |
DUP2 ,$v JSR2 |
121 | 120 |
#04 ,v-spacing POK2 |
122 | 121 |
~lines.y1 #0003 SUB2 ~neralie.y ~neralie.x ,v JSR2 |
123 | 122 |
#01 ,v-spacing POK2 |
124 |
- ^$next JSR #0001 =Sprite.y ~neralie.x #0003 SUB2 =Sprite.x ,digit JSR2 |
|
123 |
+ ^$next JSR #0001 =Screen.y ~neralie.x #0003 SUB2 =Screen.x ,digit JSR2 |
|
125 | 124 |
DUP2 ^$h JSR |
126 |
- ^$next JSR ~Screen.width #0009 SUB2 =Sprite.x ~neralie.y #0003 SUB2 =Sprite.y ,digit JSR2 |
|
125 |
+ ^$next JSR ~Screen.width #0009 SUB2 =Screen.x ~neralie.y #0003 SUB2 =Screen.y ,digit JSR2 |
|
127 | 126 |
DUP2 ^$v JSR |
128 | 127 |
^$next JSR POP2 |
129 | 128 |
DUP2 ^$h JSR |
... | ... |
@@ -53,8 +53,7 @@ |
53 | 53 |
|
54 | 54 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
55 | 55 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
56 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
57 |
-|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
|
56 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
58 | 57 |
|0140 ;Controller { vector 2 button 1 } |
59 | 58 |
|0150 ;Keys { vector 2 key 1 } |
60 | 59 |
|0160 ;Mouse { vector 2 x 2 y 2 state 1 chord 1 } |
... | ... |
@@ -99,12 +98,12 @@ BRK |
99 | 98 |
@on-screen ( -- ) |
100 | 99 |
|
101 | 100 |
~document.edit #01 NEQ ^$no-edit JNZ |
102 |
- #0008 =Sprite.x |
|
103 |
- ~Screen.height #0010 SUB2 =Sprite.y |
|
101 |
+ #0008 =Screen.x |
|
102 |
+ ~Screen.height #0010 SUB2 =Screen.y |
|
104 | 103 |
,path.name #01 ~timer #04 DIV #03 AND #03 MUL ADD ,draw-label JSR2 |
105 | 104 |
$clear |
106 |
- #00 =Sprite.color |
|
107 |
- ~Sprite.x 8+ DUP2 =Sprite.x |
|
105 |
+ #20 =Screen.color |
|
106 |
+ ~Screen.x 8+ DUP2 =Screen.x |
|
108 | 107 |
~Screen.width LTH2 ^$clear JNZ |
109 | 108 |
( blink ) ~timer #01 ADD =timer |
110 | 109 |
$no-edit |
... | ... |
@@ -623,37 +622,37 @@ RTN |
623 | 622 |
|
624 | 623 |
~zoom.active #01 EQU ,draw-canvas-zoom JNZ2 |
625 | 624 |
|
626 |
- ~canvas.y1 =Sprite.y |
|
627 |
- ,data =Sprite.addr |
|
625 |
+ ~canvas.y1 =Screen.y |
|
626 |
+ ,data =Screen.addr |
|
628 | 627 |
$ver |
629 |
- ~canvas.x1 =Sprite.x |
|
628 |
+ ~canvas.x1 =Screen.x |
|
630 | 629 |
$hor |
631 |
- ( draw ) #09 =Sprite.color |
|
632 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
633 |
- ( incr ) ~Sprite.addr 8+ =Sprite.addr |
|
634 |
- ~Sprite.x ~canvas.x2 NEQ2 ^$hor JNZ |
|
635 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
636 |
- ~Sprite.y ~canvas.y2 NEQ2 ^$ver JNZ |
|
630 |
+ ( draw ) #29 =Screen.color |
|
631 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
632 |
+ ( incr ) ~Screen.addr 8+ =Screen.addr |
|
633 |
+ ~Screen.x ~canvas.x2 NEQ2 ^$hor JNZ |
|
634 |
+ ( incr ) ~Screen.y 8+ =Screen.y |
|
635 |
+ ~Screen.y ~canvas.y2 NEQ2 ^$ver JNZ |
|
637 | 636 |
|
638 | 637 |
RTN |
639 | 638 |
|
640 | 639 |
@draw-canvas-zoom ( -- ) |
641 | 640 |
|
642 | 641 |
~zoom.y =pt1.y |
643 |
- ~canvas.y1 =Sprite.y |
|
644 |
- ,data =Sprite.addr |
|
642 |
+ ~canvas.y1 =Screen.y |
|
643 |
+ ,data =Screen.addr |
|
645 | 644 |
$ver |
646 |
- ~canvas.x1 =Sprite.x |
|
645 |
+ ~canvas.x1 =Screen.x |
|
647 | 646 |
~zoom.x =pt1.x |
648 | 647 |
$hor |
649 |
- ( incr ) ,bigpixel_icn #0008 #00 ~pt1.x ~pt1.y ,get-pixel JSR2 MUL2 ADD2 =Sprite.addr |
|
650 |
- ( draw ) #09 =Sprite.color |
|
651 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
648 |
+ ( incr ) ,bigpixel_icn #0008 #00 ~pt1.x ~pt1.y ,get-pixel JSR2 MUL2 ADD2 =Screen.addr |
|
649 |
+ ( draw ) #29 =Screen.color |
|
650 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
652 | 651 |
( incr ) ~pt1.x ++ =pt1.x |
653 |
- ~Sprite.x ~canvas.x2 NEQ2 ^$hor JNZ |
|
654 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
652 |
+ ~Screen.x ~canvas.x2 NEQ2 ^$hor JNZ |
|
653 |
+ ( incr ) ~Screen.y 8+ =Screen.y |
|
655 | 654 |
( incr ) ~pt1.y ++ =pt1.y |
656 |
- ~Sprite.y ~canvas.y2 NEQ2 ^$ver JNZ |
|
655 |
+ ~Screen.y ~canvas.y2 NEQ2 ^$ver JNZ |
|
657 | 656 |
|
658 | 657 |
RTN |
659 | 658 |
|
... | ... |
@@ -666,11 +665,11 @@ RTN |
666 | 665 |
#00 NEQ |
667 | 666 |
#0101 EQU2 RTN? ( Return if unchanged ) |
668 | 667 |
|
669 |
- ,blank_icn =Sprite.addr |
|
668 |
+ ,blank_icn =Screen.addr |
|
670 | 669 |
( clear brush size ) |
671 |
- ~cursor.x #0003 SUB2 =Sprite.x ~cursor.y #0003 SUB2 =Sprite.y #10 =Sprite.color |
|
670 |
+ ~cursor.x #0003 SUB2 =Screen.x ~cursor.y #0003 SUB2 =Screen.y #30 =Screen.color |
|
672 | 671 |
( clear last cursor ) |
673 |
- ~cursor.x =Sprite.x ~cursor.y =Sprite.y #10 =Sprite.color |
|
672 |
+ ~cursor.x =Screen.x ~cursor.y =Screen.y #30 =Screen.color |
|
674 | 673 |
( record cursor positions ) |
675 | 674 |
~Mouse.x =cursor.x ~Mouse.y =cursor.y |
676 | 675 |
( draw size cursor ) |
... | ... |
@@ -683,15 +682,15 @@ RTN |
683 | 682 |
~Mouse.x CLN2r ~toolpane.x1 GTH2 STH2r ~toolpane.x2 LTH2 #0101 EQU2 ~Mouse.y CLN2r ~toolpane.y1 GTH2 STH2r ~toolpane.y2 LTH2 #0101 EQU2 #0101 EQU2 ,$outside-canvas JNZ2 |
684 | 683 |
~Mouse.x CLN2r ~sizepane.x1 GTH2 STH2r ~sizepane.x2 LTH2 #0101 EQU2 ~Mouse.y CLN2r ~sizepane.y1 GTH2 STH2r ~sizepane.y2 LTH2 #0101 EQU2 #0101 EQU2 ,$outside-canvas JNZ2 |
685 | 684 |
~Mouse.x CLN2r ~pattpane.x1 GTH2 STH2r ~pattpane.x2 LTH2 #0101 EQU2 ~Mouse.y CLN2r ~pattpane.y1 GTH2 STH2r ~pattpane.y2 LTH2 #0101 EQU2 #0101 EQU2 ,$outside-canvas JNZ2 |
686 |
- ~cursor.x #0003 SUB2 =Sprite.x ~cursor.y #0003 SUB2 =Sprite.y |
|
687 |
- ,brush_icns #00 ~brush.size 8* ADD2 =Sprite.addr |
|
688 |
- #11 ~Mouse.state #02 MUL ADD =Sprite.color |
|
685 |
+ ~cursor.x #0003 SUB2 =Screen.x ~cursor.y #0003 SUB2 =Screen.y |
|
686 |
+ ,brush_icns #00 ~brush.size 8* ADD2 =Screen.addr |
|
687 |
+ #31 ~Mouse.state #02 MUL ADD =Screen.color |
|
689 | 688 |
~Mouse.state #00 EQU ^$outside-canvas JNZ RTN |
690 | 689 |
$outside-canvas |
691 | 690 |
( draw new cursor ) |
692 |
- ~cursor.x =Sprite.x ~cursor.y =Sprite.y |
|
693 |
- ,pointers_icn #00 ~Controller.button #02 EQU 8* ADD2 =Sprite.addr |
|
694 |
- #1f ~Mouse.state #01 EQU #0a MUL SUB =Sprite.color |
|
691 |
+ ~cursor.x =Screen.x ~cursor.y =Screen.y |
|
692 |
+ ,pointers_icn #00 ~Controller.button #02 EQU 8* ADD2 =Screen.addr |
|
693 |
+ #3f ~Mouse.state #01 EQU #0a MUL SUB =Screen.color |
|
695 | 694 |
|
696 | 695 |
RTN |
697 | 696 |
|
... | ... |
@@ -703,18 +702,18 @@ RTN |
703 | 702 |
~toolpane.x1 -- ~toolpane.y1 -- ~toolpane.x2 ~toolpane.y2 #00 ,line-rect JSR2 |
704 | 703 |
~toolpane.x1 #0002 SUB2 ~toolpane.y1 #0002 SUB2 ~toolpane.x2 ~toolpane.y2 #01 ,line-rect JSR2 |
705 | 704 |
|
706 |
- ~toolpane.x1 =Sprite.x ~toolpane.y1 =Sprite.y ,tool_icns =Sprite.addr |
|
705 |
+ ~toolpane.x1 =Screen.x ~toolpane.y1 =Screen.y ,tool_icns =Screen.addr |
|
707 | 706 |
|
708 | 707 |
$loop |
709 |
- ( draw ) #01 ~Sprite.x ~toolpane.x1 SUB2 8/ SWP POP ~brush.tool EQU #02 MUL ADD =Sprite.color |
|
710 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
711 |
- ( incr ) ~Sprite.addr 8+ =Sprite.addr |
|
712 |
- ~Sprite.x ~toolpane.x2 LTH2 ^$loop JNZ |
|
708 |
+ ( draw ) #21 ~Screen.x ~toolpane.x1 SUB2 8/ SWP POP ~brush.tool EQU #02 MUL ADD =Screen.color |
|
709 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
710 |
+ ( incr ) ~Screen.addr 8+ =Screen.addr |
|
711 |
+ ~Screen.x ~toolpane.x2 LTH2 ^$loop JNZ |
|
713 | 712 |
|
714 | 713 |
~zoom.active #01 NEQ ^$no-zoom JNZ |
715 |
- ~Sprite.x #0008 SUB2 =Sprite.x |
|
716 |
- ,tool_icns #0028 ADD2 =Sprite.addr |
|
717 |
- #01 #04 ~brush.tool EQU #02 MUL ADD =Sprite.color |
|
714 |
+ ~Screen.x #0008 SUB2 =Screen.x |
|
715 |
+ ,tool_icns #0028 ADD2 =Screen.addr |
|
716 |
+ #21 #04 ~brush.tool EQU #02 MUL ADD =Screen.color |
|
718 | 717 |
$no-zoom |
719 | 718 |
|
720 | 719 |
RTN |
... | ... |
@@ -727,13 +726,13 @@ RTN |
727 | 726 |
~pattpane.x1 -- ~pattpane.y1 -- ~pattpane.x2 ~pattpane.y2 #00 ,line-rect JSR2 |
728 | 727 |
~pattpane.x1 #0002 SUB2 ~pattpane.y1 #0002 SUB2 ~pattpane.x2 ~pattpane.y2 #01 ,line-rect JSR2 |
729 | 728 |
|
730 |
- ~pattpane.x1 =Sprite.x ~pattpane.y1 =Sprite.y ,patt_icns =Sprite.addr |
|
729 |
+ ~pattpane.x1 =Screen.x ~pattpane.y1 =Screen.y ,patt_icns =Screen.addr |
|
731 | 730 |
|
732 | 731 |
$loop |
733 |
- ( draw ) #01 ~Sprite.x ~pattpane.x1 SUB2 8/ SWP POP ~brush.patt EQU #02 MUL ADD =Sprite.color |
|
734 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
735 |
- ( incr ) ~Sprite.addr 8+ =Sprite.addr |
|
736 |
- ~Sprite.x ~pattpane.x2 LTH2 ^$loop JNZ |
|
732 |
+ ( draw ) #21 ~Screen.x ~pattpane.x1 SUB2 8/ SWP POP ~brush.patt EQU #02 MUL ADD =Screen.color |
|
733 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
734 |
+ ( incr ) ~Screen.addr 8+ =Screen.addr |
|
735 |
+ ~Screen.x ~pattpane.x2 LTH2 ^$loop JNZ |
|
737 | 736 |
|
738 | 737 |
RTN |
739 | 738 |
|
... | ... |
@@ -745,13 +744,13 @@ RTN |
745 | 744 |
~sizepane.x1 -- ~sizepane.y1 -- ~sizepane.x2 ~sizepane.y2 #00 ,line-rect JSR2 |
746 | 745 |
~sizepane.x1 #0002 SUB2 ~sizepane.y1 #0002 SUB2 ~sizepane.x2 ~sizepane.y2 #01 ,line-rect JSR2 |
747 | 746 |
|
748 |
- ~sizepane.x1 =Sprite.x ~sizepane.y1 =Sprite.y ,size_icns =Sprite.addr |
|
747 |
+ ~sizepane.x1 =Screen.x ~sizepane.y1 =Screen.y ,size_icns =Screen.addr |
|
749 | 748 |
|
750 | 749 |
$loop |
751 |
- ( draw ) #01 ~Sprite.x ~sizepane.x1 SUB2 8/ SWP POP ~brush.size EQU #02 MUL ADD =Sprite.color |
|
752 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
753 |
- ( incr ) ~Sprite.addr 8+ =Sprite.addr |
|
754 |
- ~Sprite.x ~sizepane.x2 LTH2 ^$loop JNZ |
|
750 |
+ ( draw ) #21 ~Screen.x ~sizepane.x1 SUB2 8/ SWP POP ~brush.size EQU #02 MUL ADD =Screen.color |
|
751 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
752 |
+ ( incr ) ~Screen.addr 8+ =Screen.addr |
|
753 |
+ ~Screen.x ~sizepane.x2 LTH2 ^$loop JNZ |
|
755 | 754 |
|
756 | 755 |
RTN |
757 | 756 |
|
... | ... |
@@ -763,13 +762,13 @@ RTN |
763 | 762 |
~viewpane.x1 -- ~viewpane.y1 -- ~viewpane.x2 ~viewpane.y2 #00 ,line-rect JSR2 |
764 | 763 |
~viewpane.x1 #0002 SUB2 ~viewpane.y1 #0002 SUB2 ~viewpane.x2 ~viewpane.y2 #01 ,line-rect JSR2 |
765 | 764 |
|
766 |
- ~viewpane.x1 =Sprite.x ~viewpane.y1 =Sprite.y ,view_icns =Sprite.addr |
|
765 |
+ ~viewpane.x1 =Screen.x ~viewpane.y1 =Screen.y ,view_icns =Screen.addr |
|
767 | 766 |
|
768 | 767 |
$loop |
769 |
- ( draw ) #01 =Sprite.color |
|
770 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
771 |
- ( incr ) ~Sprite.addr 8+ =Sprite.addr |
|
772 |
- ~Sprite.x ~viewpane.x2 LTH2 ^$loop JNZ |
|
768 |
+ ( draw ) #21 =Screen.color |
|
769 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
770 |
+ ( incr ) ~Screen.addr 8+ =Screen.addr |
|
771 |
+ ~Screen.x ~viewpane.x2 LTH2 ^$loop JNZ |
|
773 | 772 |
|
774 | 773 |
RTN |
775 | 774 |
|
... | ... |
@@ -791,35 +790,35 @@ RTN |
791 | 790 |
|
792 | 791 |
~document.presentation #01 EQU ,$skip-size JNZ2 |
793 | 792 |
( draw size ) |
794 |
- #0010 =Sprite.y |
|
793 |
+ #0010 =Screen.y |
|
795 | 794 |
( draw width ) |
796 |
- ~Screen.width #00a0 SUB2 =Sprite.x ,font_hex ~canvas.w #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
797 |
- ( draw ) #01 =Sprite.color |
|
798 |
- ~Sprite.x 8+ =Sprite.x ,font_hex ~canvas.w #0f AND #08 MUL ADD2 =Sprite.addr |
|
799 |
- ( draw ) #01 =Sprite.color |
|
795 |
+ ~Screen.width #00a0 SUB2 =Screen.x ,font_hex ~canvas.w #f0 AND #04 SFT #08 MUL ADD2 =Screen.addr |
|
796 |
+ ( draw ) #21 =Screen.color |
|
797 |
+ ~Screen.x 8+ =Screen.x ,font_hex ~canvas.w #0f AND #08 MUL ADD2 =Screen.addr |
|
798 |
+ ( draw ) #21 =Screen.color |
|
800 | 799 |
( draw height ) |
801 |
- ~Sprite.x 8+ =Sprite.x ,font_hex ~canvas.h #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
802 |
- ( draw ) #01 =Sprite.color |
|
803 |
- ~Sprite.x 8+ =Sprite.x ,font_hex ~canvas.h #0f AND #08 MUL ADD2 =Sprite.addr |
|
804 |
- ( draw ) #01 =Sprite.color |
|
800 |
+ ~Screen.x 8+ =Screen.x ,font_hex ~canvas.h #f0 AND #04 SFT #08 MUL ADD2 =Screen.addr |
|
801 |
+ ( draw ) #21 =Screen.color |
|
802 |
+ ~Screen.x 8+ =Screen.x ,font_hex ~canvas.h #0f AND #08 MUL ADD2 =Screen.addr |
|
803 |
+ ( draw ) #21 =Screen.color |
|
805 | 804 |
$skip-size |
806 | 805 |
|
807 | 806 |
( draw save/load/guides icons ) |
808 |
- ~Screen.height #0010 SUB2 =Sprite.y |
|
809 |
- ~Screen.width #0028 SUB2 =Sprite.x |
|
810 |
- ,eye_icn #00 ~document.presentation #08 MUL ADD2 =Sprite.addr |
|
811 |
- #03 =Sprite.color |
|
812 |
- ~Sprite.x 8+ =Sprite.x |
|
813 |
- ,filestate_icn =Sprite.addr |
|
814 |
- #03 =Sprite.color |
|
815 |
- ~Sprite.x 8+ =Sprite.x |
|
816 |
- ,load_icn =Sprite.addr |
|
817 |
- #03 =Sprite.color |
|
818 |
- ~Sprite.x 8+ =Sprite.x |
|
819 |
- ,save_icn =Sprite.addr |
|
820 |
- #03 =Sprite.color |
|
807 |
+ ~Screen.height #0010 SUB2 =Screen.y |
|
808 |
+ ~Screen.width #0028 SUB2 =Screen.x |
|
809 |
+ ,eye_icn #00 ~document.presentation #08 MUL ADD2 =Screen.addr |
|
810 |
+ #23 =Screen.color |
|
811 |
+ ~Screen.x 8+ =Screen.x |
|
812 |
+ ,filestate_icn =Screen.addr |
|
813 |
+ #23 =Screen.color |
|
814 |
+ ~Screen.x 8+ =Screen.x |
|
815 |
+ ,load_icn =Screen.addr |
|
816 |
+ #23 =Screen.color |
|
817 |
+ ~Screen.x 8+ =Screen.x |
|
818 |
+ ,save_icn =Screen.addr |
|
819 |
+ #23 =Screen.color |
|
821 | 820 |
|
822 |
- #0008 =Sprite.x |
|
821 |
+ #0008 =Screen.x |
|
823 | 822 |
,path.name #01 ,draw-label JSR2 |
824 | 823 |
|
825 | 824 |
RTN |
... | ... |
@@ -861,10 +860,10 @@ RTN |
861 | 860 |
|
862 | 861 |
=color |
863 | 862 |
$loop |
864 |
- DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Sprite.addr |
|
865 |
- ( draw ) ~color =Sprite.color |
|
863 |
+ DUP2 PEK2 #00 SWP #0008 MUL2 ,font ADD2 =Screen.addr |
|
864 |
+ ( draw ) ~color #20 ADD =Screen.color |
|
866 | 865 |
( incr ) #0001 ADD2 |
867 |
- ( incr ) ~Sprite.x 8+ =Sprite.x |
|
866 |
+ ( incr ) ~Screen.x 8+ =Screen.x |
|
868 | 867 |
( loop ) DUP2 PEK2 #00 NEQ ^$loop JNZ |
869 | 868 |
POP2 |
870 | 869 |
|
... | ... |
@@ -28,7 +28,7 @@ |
28 | 28 |
|
29 | 29 |
|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 } |
30 | 30 |
|0110 ;Console { pad 8 char 1 byte 1 short 2 } |
31 |
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 color 1 } |
|
31 |
+|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 } |
|
32 | 32 |
|0130 ;Sprite { vector 2 pad 6 x 2 y 2 addr 2 color 1 } |
33 | 33 |
|0140 ;Controller { vector 2 button 1 } |
34 | 34 |
|0150 ;Keys { vector 2 key 1 } |
... | ... |
@@ -210,29 +210,15 @@ console_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1) |
210 | 210 |
Uint8 |
211 | 211 |
screen_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1) |
212 | 212 |
{ |
213 |
- Uint8 *m = u->ram.dat; |
|
214 |
- ptr += 8; |
|
215 |
- if(b0 == 0x0c) { |
|
216 |
- Uint16 x = (m[ptr] << 8) + m[ptr + 1]; |
|
217 |
- Uint16 y = (m[ptr + 2] << 8) + m[ptr + 3]; |
|
218 |
- Uint8 *layer = b1 >> 4 & 0xf ? ppu.fg : ppu.bg; |
|
219 |
- putpixel(&ppu, layer, x, y, b1 & 0xf); |
|
220 |
- reqdraw = 1; |
|
221 |
- } |
|
222 |
- return b1; |
|
223 |
-} |
|
224 |
- |
|
225 |
-Uint8 |
|
226 |
-sprite_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1) |
|
227 |
-{ |
|
228 |
- Uint8 *m = u->ram.dat; |
|
229 |
- ptr += 8; |
|
230 | 213 |
if(b0 == 0x0e) { |
231 |
- Uint16 x = (m[ptr] << 8) + m[ptr + 1]; |
|
232 |
- Uint16 y = (m[ptr + 2] << 8) + m[ptr + 3]; |
|
233 |
- Uint8 *layer = (b1 >> 4) & 0xf ? ppu.fg : ppu.bg; |
|
234 |
- Uint8 *sprite = &m[(m[ptr + 4] << 8) + m[ptr + 5]]; |
|
235 |
- putsprite(&ppu, layer, x, y, sprite, b1 & 0xf); |
|
214 |
+ Uint16 x = mempeek16(u, ptr + 8); |
|
215 |
+ Uint16 y = mempeek16(u, ptr + 10); |
|
216 |
+ Uint8 *addr = &u->ram.dat[mempeek16(u, ptr + 12)]; |
|
217 |
+ Uint8 *layer = (b1 >> 4 & 0xf) % 2 ? ppu.fg : ppu.bg; |
|
218 |
+ if((b1 >> 4 & 0xf) / 2) |
|
219 |
+ putsprite(&ppu, layer, x, y, addr, b1 & 0xf); |
|
220 |
+ else |
|
221 |
+ putpixel(&ppu, layer, x, y, b1 & 0xf); |
|
236 | 222 |
reqdraw = 1; |
237 | 223 |
} |
238 | 224 |
return b1; |
... | ... |
@@ -398,7 +384,7 @@ main(int argc, char **argv) |
398 | 384 |
devsystem = portuxn(&u, 0x00, "system", system_poke); |
399 | 385 |
portuxn(&u, 0x01, "console", console_poke); |
400 | 386 |
devscreen = portuxn(&u, 0x02, "screen", screen_poke); |
401 |
- portuxn(&u, 0x03, "sprite", sprite_poke); |
|
387 |
+ portuxn(&u, 0x03, "---", ppnil); |
|
402 | 388 |
devctrl = portuxn(&u, 0x04, "controller", ppnil); |
403 | 389 |
devkey = portuxn(&u, 0x05, "key", ppnil); |
404 | 390 |
devmouse = portuxn(&u, 0x06, "mouse", ppnil); |
... | ... |
@@ -46,5 +46,7 @@ int loaduxn(Uxn *c, char *filepath); |
46 | 46 |
int bootuxn(Uxn *c); |
47 | 47 |
int inituxn(Uxn *u, Uint16 vec); |
48 | 48 |
int evaluxn(Uxn *u, Uint16 vec); |
49 |
-Device *portuxn(Uxn *u, Uint8 id, char *name, Uint8 (*pofn)(Uxn *, Uint16, Uint8, Uint8)); |
|
50 |
-void mempoke16(Uxn *u, Uint16 a, Uint16 b); |
|
51 | 49 |
\ No newline at end of file |
50 |
+void mempoke16(Uxn *u, Uint16 a, Uint16 b); |
|
51 |
+Uint16 mempeek16(Uxn *u, Uint16 a); |
|
52 |
+ |
|
53 |
+Device *portuxn(Uxn *u, Uint8 id, char *name, Uint8 (*pofn)(Uxn *, Uint16, Uint8, Uint8)); |
|
52 | 54 |
\ No newline at end of file |