| ... | ... |
@@ -10,7 +10,6 @@ |
| 10 | 10 |
|
| 11 | 11 |
TODO |
| 12 | 12 |
- Pixel cleanup brush |
| 13 |
- - Rename filename |
|
| 14 | 13 |
) |
| 15 | 14 |
|
| 16 | 15 |
%RTN { JMP2r }
|
| ... | ... |
@@ -23,14 +22,13 @@ |
| 23 | 22 |
%++ { #0001 ADD2 } %-- { #0001 SUB2 }
|
| 24 | 23 |
%2/ { #0001 SFT2 }
|
| 25 | 24 |
%8/ { #0003 SFT2 } %8* { #0030 SFT2 }
|
| 26 |
-%8+ { #0008 ADD2 }
|
|
| 25 |
+%8+ { #0008 ADD2 } %8- { #0008 SUB2 }
|
|
| 27 | 26 |
|
| 28 | 27 |
( variables ) |
| 29 | 28 |
|
| 30 | 29 |
;cursor { x 2 y 2 x0 2 y0 2 dx 2 dy 2 }
|
| 31 | 30 |
;brush { tool 1 size 1 patt 1 drag 1 last 1 oper 2 }
|
| 32 | 31 |
;zoom { active 1 x 2 y 2 }
|
| 33 |
-;document { state 1 edit 1 }
|
|
| 34 | 32 |
( interface ) |
| 35 | 33 |
;toolpane { x1 2 y1 2 x2 2 y2 2 }
|
| 36 | 34 |
;pattpane { x1 2 y1 2 x2 2 y2 2 }
|
| ... | ... |
@@ -46,10 +44,12 @@ |
| 46 | 44 |
;pt1 { x 2 y 2 }
|
| 47 | 45 |
;pt2 { x 2 y 2 } ( paint-rect )
|
| 48 | 46 |
;px { x 1 y 1 }
|
| 47 |
+;document { state 1 edit 1 namelength 1 name 48 }
|
|
| 48 |
+;timer { byte 1 }
|
|
| 49 | 49 |
|
| 50 | 50 |
( devices ) |
| 51 | 51 |
|
| 52 |
-|0100 ;Console { pad 8 char 1 byte 1 short 2 }
|
|
| 52 |
+|0100 ;Console { pad 8 char 1 byte 1 short 2 string 2 }
|
|
| 53 | 53 |
|0110 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 }
|
| 54 | 54 |
|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 }
|
| 55 | 55 |
|0130 ;Controller { buttons 1 }
|
| ... | ... |
@@ -77,7 +77,7 @@ |
| 77 | 77 |
#00 =brush.tool |
| 78 | 78 |
|
| 79 | 79 |
( load file ) |
| 80 |
- ,filepath ,load-file JSR2 |
|
| 80 |
+ ,document.name ,load-file JSR2 |
|
| 81 | 81 |
|
| 82 | 82 |
( setup panes ) |
| 83 | 83 |
#0010 =toolpane.x1 #0010 =toolpane.y1 |
| ... | ... |
@@ -92,11 +92,14 @@ |
| 92 | 92 |
|
| 93 | 93 |
( center canvas ) |
| 94 | 94 |
,center JSR2 |
| 95 |
+ ,clear JSR2 |
|
| 95 | 96 |
|
| 96 | 97 |
BRK |
| 97 | 98 |
|
| 98 | 99 |
@FRAME |
| 99 | 100 |
|
| 101 |
+ ~document.edit #01 EQU ,on-document-edit JNZ2 |
|
| 102 |
+ |
|
| 100 | 103 |
,draw-cursor JSR2 |
| 101 | 104 |
|
| 102 | 105 |
( release drag ) |
| ... | ... |
@@ -242,15 +245,16 @@ BRK |
| 242 | 245 |
DUP2 #0000 NEQ2 ^$no-clear-button JNZ |
| 243 | 246 |
,center JSR2 |
| 244 | 247 |
,clear JSR2 |
| 248 |
+ #01 =document.edit |
|
| 245 | 249 |
( release ) #00 =Mouse.state |
| 246 | 250 |
$no-clear-button |
| 247 | 251 |
DUP2 #0001 NEQ2 ^$no-load-button JNZ |
| 248 |
- ,filepath ,load-file JSR2 |
|
| 252 |
+ ,document.name ,load-file JSR2 |
|
| 249 | 253 |
,draw-canvas JSR2 |
| 250 | 254 |
( release ) #00 =Mouse.state |
| 251 | 255 |
$no-load-button |
| 252 | 256 |
DUP2 #0002 NEQ2 ^$no-save-button JNZ |
| 253 |
- ,filepath ,save-file JSR2 |
|
| 257 |
+ ,document.name ,save-file JSR2 |
|
| 254 | 258 |
( release ) #00 =Mouse.state |
| 255 | 259 |
$no-save-button |
| 256 | 260 |
POP2 |
| ... | ... |
@@ -301,6 +305,44 @@ BRK |
| 301 | 305 |
|
| 302 | 306 |
BRK |
| 303 | 307 |
|
| 308 |
+@on-document-edit |
|
| 309 |
+ |
|
| 310 |
+ ~Keys #00 EQU ,$no-keys JNZ2 |
|
| 311 |
+ |
|
| 312 |
+ ~Keys #0d NEQ ,$no-enter JNZ2 |
|
| 313 |
+ #00 =document.edit |
|
| 314 |
+ ,redraw JSR2 |
|
| 315 |
+ BRK |
|
| 316 |
+ $no-enter |
|
| 317 |
+ |
|
| 318 |
+ ~Keys #08 NEQ ,$no-backspace JNZ2 |
|
| 319 |
+ ( incr ) ~document.namelength #01 SUB =document.namelength |
|
| 320 |
+ ,$end JSR2 |
|
| 321 |
+ BRK |
|
| 322 |
+ $no-backspace |
|
| 323 |
+ |
|
| 324 |
+ ( store key ) ~Keys ,document.name #00 ~document.namelength ADD2 POK2 |
|
| 325 |
+ ( incr ) ~document.namelength #01 ADD =document.namelength |
|
| 326 |
+ |
|
| 327 |
+ $end |
|
| 328 |
+ ( store end ) #00 ,document.name #00 ~document.namelength ADD2 POK2 |
|
| 329 |
+ ( release ) #00 =Keys.key |
|
| 330 |
+ |
|
| 331 |
+ $no-keys |
|
| 332 |
+ |
|
| 333 |
+ ( move ) #0008 =Sprite.x ~Screen.height #0010 SUB2 =Sprite.y |
|
| 334 |
+ ( draw ) ,document.name #01 ~timer #04 DIV #03 AND #03 MUL ADD ,draw-label JSR2 |
|
| 335 |
+ |
|
| 336 |
+ ~Sprite.x 8- =Sprite.x |
|
| 337 |
+ $clear |
|
| 338 |
+ ~Sprite.x 8+ =Sprite.x |
|
| 339 |
+ #00 =Sprite.color |
|
| 340 |
+ ~Sprite.x ~Screen.width LTH2 ^$clear JNZ |
|
| 341 |
+ |
|
| 342 |
+ ~timer #01 ADD =timer |
|
| 343 |
+ |
|
| 344 |
+BRK |
|
| 345 |
+ |
|
| 304 | 346 |
@center |
| 305 | 347 |
|
| 306 | 348 |
( clear ) ~canvas.x1 #0002 SUB2 ~canvas.y1 #0002 SUB2 ~canvas.x2 #0002 ADD2 ~canvas.y2 #0002 ADD2 #00 ,fill-rect JSR2 |
| ... | ... |
@@ -320,12 +362,15 @@ BRK |
| 320 | 362 |
RTN |
| 321 | 363 |
|
| 322 | 364 |
@clear |
| 323 |
- |
|
| 324 |
- ,untitled_txt ,filepath |
|
| 365 |
+ |
|
| 366 |
+ #00 =document.namelength |
|
| 367 |
+ |
|
| 368 |
+ ,untitled_txt ,document.name |
|
| 325 | 369 |
$rename |
| 326 | 370 |
( copy src->dst ) OVR2 OVR2 SWP2 PEK2 ROT ROT POK2 |
| 327 | 371 |
( incr dst ) ++ |
| 328 | 372 |
( incr src ) SWP2 ++ SWP2 |
| 373 |
+ ( incr len ) ~document.namelength #01 ADD =document.namelength |
|
| 329 | 374 |
OVR2 PEK2 #00 NEQ ^$rename JNZ |
| 330 | 375 |
#00 ROT ROT POK2 POP2 |
| 331 | 376 |
|
| ... | ... |
@@ -753,14 +798,14 @@ RTN |
| 753 | 798 |
#0010 =Sprite.y |
| 754 | 799 |
( draw width ) |
| 755 | 800 |
~Screen.width #00a0 SUB2 =Sprite.x ,font_hex ~canvas.w #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
| 756 |
- ( draw ) #03 =Sprite.color |
|
| 801 |
+ ( draw ) #01 =Sprite.color |
|
| 757 | 802 |
~Sprite.x 8+ =Sprite.x ,font_hex ~canvas.w #0f AND #08 MUL ADD2 =Sprite.addr |
| 758 |
- ( draw ) #03 =Sprite.color |
|
| 803 |
+ ( draw ) #01 =Sprite.color |
|
| 759 | 804 |
( draw height ) |
| 760 | 805 |
~Sprite.x 8+ =Sprite.x ,font_hex ~canvas.h #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
| 761 |
- ( draw ) #03 =Sprite.color |
|
| 806 |
+ ( draw ) #01 =Sprite.color |
|
| 762 | 807 |
~Sprite.x 8+ =Sprite.x ,font_hex ~canvas.h #0f AND #08 MUL ADD2 =Sprite.addr |
| 763 |
- ( draw ) #03 =Sprite.color |
|
| 808 |
+ ( draw ) #01 =Sprite.color |
|
| 764 | 809 |
|
| 765 | 810 |
( draw save/load/guides icons ) |
| 766 | 811 |
~Screen.height #0010 SUB2 =Sprite.y |
| ... | ... |
@@ -777,10 +822,10 @@ RTN |
| 777 | 822 |
,save_icn =Sprite.addr |
| 778 | 823 |
#01 =Sprite.color |
| 779 | 824 |
|
| 780 |
- ( draw filename ) |
|
| 825 |
+ ( draw ) |
|
| 781 | 826 |
|
| 782 | 827 |
#0008 =Sprite.x |
| 783 |
- ,filepath #01 ,draw-label JSR2 |
|
| 828 |
+ ,document.name #01 ,draw-label JSR2 |
|
| 784 | 829 |
|
| 785 | 830 |
RTN |
| 786 | 831 |
|
| ... | ... |
@@ -939,6 +984,4 @@ RTN |
| 939 | 984 |
|
| 940 | 985 |
@ERROR BRK |
| 941 | 986 |
|
| 942 |
-|2000 @filepath [ projects/pictures/tima2a1a.bit 00 ] |
|
| 943 |
- |
|
| 944 | 987 |
|2100 @data |
| ... | ... |
@@ -337,6 +337,7 @@ console_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1) |
| 337 | 337 |
case 0x08: printf("%c", b1); break;
|
| 338 | 338 |
case 0x09: printf("0x%02x\n", b1); break;
|
| 339 | 339 |
case 0x0b: printf("0x%04x\n", (m[ptr + 0x0a] << 8) + b1); break;
|
| 340 |
+ case 0x0d: printf("%s\n", &m[(m[ptr + 0x0c] << 8) + b1]); break;
|
|
| 340 | 341 |
} |
| 341 | 342 |
fflush(stdout); |
| 342 | 343 |
(void)m; |