| ... | ... |
@@ -30,7 +30,7 @@ |
| 30 | 30 |
;cursor { x 2 y 2 x0 2 y0 2 dx 2 dy 2 }
|
| 31 | 31 |
;brush { tool 1 size 1 patt 1 drag 1 last 1 oper 2 }
|
| 32 | 32 |
;zoom { active 1 x 2 y 2 }
|
| 33 |
-;center { x 2 y 2 }
|
|
| 33 |
+;document { state 1 edit 1 }
|
|
| 34 | 34 |
( interface ) |
| 35 | 35 |
;toolpane { x1 2 y1 2 x2 2 y2 2 }
|
| 36 | 36 |
;pattpane { x1 2 y1 2 x2 2 y2 2 }
|
| ... | ... |
@@ -74,38 +74,19 @@ |
| 74 | 74 |
( load file ) |
| 75 | 75 |
,filepath ,load-file JSR2 |
| 76 | 76 |
|
| 77 |
- ( find screen center ) |
|
| 78 |
- ~Screen.width #0002 DIV2 =center.x |
|
| 79 |
- ~Screen.height #0002 DIV2 =center.y |
|
| 80 |
- |
|
| 81 |
- ( center canvas ) |
|
| 82 |
- ~center.x ~canvas.w 8* 2/ SUB2 =canvas.x1 |
|
| 83 |
- ~center.y ~canvas.h 8* 2/ SUB2 =canvas.y1 |
|
| 84 |
- |
|
| 85 |
- ,draw-background JSR2 |
|
| 86 |
- ,fit-canvas JSR2 |
|
| 87 |
- |
|
| 88 | 77 |
( setup panes ) |
| 89 | 78 |
#0010 =toolpane.x1 #0010 =toolpane.y1 |
| 90 | 79 |
~Screen.width #0050 SUB2 =pattpane.x1 #0010 =pattpane.y1 |
| 91 | 80 |
#0040 =sizepane.x1 #0010 =sizepane.y1 |
| 92 | 81 |
~Screen.width #0078 SUB2 =viewpane.x1 #0010 =viewpane.y1 |
| 93 | 82 |
|
| 94 |
- ~toolpane.x1 #0028 ADD2 =toolpane.x2 |
|
| 95 |
- ~toolpane.y1 #0008 ADD2 =toolpane.y2 |
|
| 96 |
- ,draw-toolpane JSR2 |
|
| 97 |
- |
|
| 98 |
- ~pattpane.x1 #0040 ADD2 =pattpane.x2 |
|
| 99 |
- ~pattpane.y1 #0008 ADD2 =pattpane.y2 |
|
| 100 |
- ,draw-pattpane JSR2 |
|
| 101 |
- |
|
| 102 |
- ~sizepane.x1 #0040 ADD2 =sizepane.x2 |
|
| 103 |
- ~sizepane.y1 #0008 ADD2 =sizepane.y2 |
|
| 104 |
- ,draw-sizepane JSR2 |
|
| 83 |
+ ~toolpane.x1 #0028 ADD2 =toolpane.x2 ~toolpane.y1 #0008 ADD2 =toolpane.y2 |
|
| 84 |
+ ~pattpane.x1 #0040 ADD2 =pattpane.x2 ~pattpane.y1 #0008 ADD2 =pattpane.y2 |
|
| 85 |
+ ~sizepane.x1 #0040 ADD2 =sizepane.x2 ~sizepane.y1 #0008 ADD2 =sizepane.y2 |
|
| 86 |
+ ~viewpane.x1 #0020 ADD2 =viewpane.x2 ~viewpane.y1 #0008 ADD2 =viewpane.y2 |
|
| 105 | 87 |
|
| 106 |
- ~viewpane.x1 #0020 ADD2 =viewpane.x2 |
|
| 107 |
- ~viewpane.y1 #0008 ADD2 =viewpane.y2 |
|
| 108 |
- ,draw-viewpane JSR2 |
|
| 88 |
+ ( center canvas ) |
|
| 89 |
+ ,center JSR2 |
|
| 109 | 90 |
|
| 110 | 91 |
BRK |
| 111 | 92 |
|
| ... | ... |
@@ -201,7 +182,7 @@ BRK |
| 201 | 182 |
~Mouse.x CLN2r ~viewpane.x1 GTH2 STH2r ~viewpane.x2 LTH2 #0101 NEQ2 ,$no-touch-viewpane JNZ2 |
| 202 | 183 |
~Mouse.y CLN2r ~viewpane.y1 GTH2 STH2r ~viewpane.y2 LTH2 #0101 NEQ2 ,$no-touch-viewpane JNZ2 |
| 203 | 184 |
( release ) #00 =Mouse.state |
| 204 |
- ~canvas.x1 #0002 SUB2 ~canvas.y1 #0002 SUB2 ~canvas.x2 #0002 ADD2 ~canvas.y2 #0002 ADD2 #00 ,fill-rect JSR2 |
|
| 185 |
+ ( clear ) ~canvas.x1 #0002 SUB2 ~canvas.y1 #0002 SUB2 ~canvas.x2 #0002 ADD2 ~canvas.y2 #0002 ADD2 #00 ,fill-rect JSR2 |
|
| 205 | 186 |
,draw-background JSR2 |
| 206 | 187 |
~Mouse.x ~viewpane.x1 SUB2 8/ SWP POP |
| 207 | 188 |
DUP #00 NEQ ^$no-incwidth JNZ |
| ... | ... |
@@ -253,6 +234,11 @@ BRK |
| 253 | 234 |
( background interface ) |
| 254 | 235 |
~Mouse.y STEP8 ~Screen.height #0010 SUB2 NEQ2 ^$no-touch-background JNZ |
| 255 | 236 |
~Mouse.x ~Screen.width #0020 SUB2 SUB2 8/ |
| 237 |
+ DUP2 #0000 NEQ2 ^$no-clear-button JNZ |
|
| 238 |
+ ,center JSR2 |
|
| 239 |
+ ,clear JSR2 |
|
| 240 |
+ ( release ) #00 =Mouse.state |
|
| 241 |
+ $no-clear-button |
|
| 256 | 242 |
DUP2 #0001 NEQ2 ^$no-load-button JNZ |
| 257 | 243 |
,filepath ,load-file JSR2 |
| 258 | 244 |
,draw-canvas JSR2 |
| ... | ... |
@@ -310,8 +296,44 @@ BRK |
| 310 | 296 |
|
| 311 | 297 |
BRK |
| 312 | 298 |
|
| 313 |
-@clear |
|
| 299 |
+@center |
|
| 314 | 300 |
|
| 301 |
+ ( clear ) ~canvas.x1 #0002 SUB2 ~canvas.y1 #0002 SUB2 ~canvas.x2 #0002 ADD2 ~canvas.y2 #0002 ADD2 #00 ,fill-rect JSR2 |
|
| 302 |
+ |
|
| 303 |
+ ,draw-background JSR2 |
|
| 304 |
+ |
|
| 305 |
+ ~Screen.width #0002 DIV2 ~canvas.w 8* 2/ SUB2 =canvas.x1 |
|
| 306 |
+ ~Screen.height #0002 DIV2 ~canvas.h 8* 2/ SUB2 =canvas.y1 |
|
| 307 |
+ |
|
| 308 |
+ ,fit-canvas JSR2 |
|
| 309 |
+ |
|
| 310 |
+ ,draw-toolpane JSR2 |
|
| 311 |
+ ,draw-pattpane JSR2 |
|
| 312 |
+ ,draw-sizepane JSR2 |
|
| 313 |
+ ,draw-viewpane JSR2 |
|
| 314 |
+ |
|
| 315 |
+RTN |
|
| 316 |
+ |
|
| 317 |
+@clear |
|
| 318 |
+ |
|
| 319 |
+ ,untitled_txt ,filepath |
|
| 320 |
+ $rename |
|
| 321 |
+ ( copy src->dst ) OVR2 OVR2 SWP2 PEK2 ROT ROT POK2 |
|
| 322 |
+ ( incr dst ) ++ |
|
| 323 |
+ ( incr src ) SWP2 ++ SWP2 |
|
| 324 |
+ OVR2 PEK2 #00 NEQ ^$rename JNZ |
|
| 325 |
+ #00 ROT ROT POK2 POP2 |
|
| 326 |
+ |
|
| 327 |
+ ( erase old label ) |
|
| 328 |
+ ~Screen.height #0010 SUB2 =Sprite.y |
|
| 329 |
+ #0000 =Sprite.x |
|
| 330 |
+ $erase |
|
| 331 |
+ ( draw ) #00 =Sprite.color |
|
| 332 |
+ ( incr ) ~Sprite.x ++ =Sprite.x |
|
| 333 |
+ ~Sprite.x ~Screen.width LTH2 ^$erase JNZ |
|
| 334 |
+ |
|
| 335 |
+ ,draw-background JSR2 |
|
| 336 |
+ |
|
| 315 | 337 |
( from ) ,data |
| 316 | 338 |
( to ) ~canvas.w ~canvas.h MUL2 #0008 MUL2 ,data ADD2 |
| 317 | 339 |
$loop |
| ... | ... |
@@ -705,7 +727,7 @@ RTN |
| 705 | 727 |
@draw-background |
| 706 | 728 |
|
| 707 | 729 |
( draw hor line ) |
| 708 |
- #0000 =Screen.x ~center.y =Screen.y |
|
| 730 |
+ #0000 =Screen.x ~Screen.height #0002 DIV2 =Screen.y |
|
| 709 | 731 |
#0000 ~Screen.width ( from/to ) |
| 710 | 732 |
$draw-hor |
| 711 | 733 |
( draw ) #01 =Screen.color |
| ... | ... |
@@ -714,7 +736,7 @@ RTN |
| 714 | 736 |
POP2 POP2 |
| 715 | 737 |
|
| 716 | 738 |
( draw ver line ) |
| 717 |
- ~center.x =Screen.x #0000 =Screen.y |
|
| 739 |
+ ~Screen.width #0002 DIV2 =Screen.x #0000 =Screen.y |
|
| 718 | 740 |
#0000 ~Screen.height ( from/to ) |
| 719 | 741 |
$draw-ver |
| 720 | 742 |
( draw ) #01 =Screen.color |
| ... | ... |
@@ -722,32 +744,36 @@ RTN |
| 722 | 744 |
OVR2 OVR2 LTH2 ^$draw-ver JNZ |
| 723 | 745 |
POP2 POP2 |
| 724 | 746 |
|
| 747 |
+ ( draw size ) |
|
| 748 |
+ #0010 =Sprite.y |
|
| 749 |
+ ( draw width ) |
|
| 750 |
+ ~Screen.width #00a0 SUB2 =Sprite.x ,font_hex ~canvas.w #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
| 751 |
+ ( draw ) #03 =Sprite.color |
|
| 752 |
+ ~Sprite.x 8+ =Sprite.x ,font_hex ~canvas.w #0f AND #08 MUL ADD2 =Sprite.addr |
|
| 753 |
+ ( draw ) #03 =Sprite.color |
|
| 754 |
+ ( draw height ) |
|
| 755 |
+ ~Sprite.x 8+ =Sprite.x ,font_hex ~canvas.h #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
| 756 |
+ ( draw ) #03 =Sprite.color |
|
| 757 |
+ ~Sprite.x 8+ =Sprite.x ,font_hex ~canvas.h #0f AND #08 MUL ADD2 =Sprite.addr |
|
| 758 |
+ ( draw ) #03 =Sprite.color |
|
| 759 |
+ |
|
| 725 | 760 |
( draw save/load/guides icons ) |
| 726 |
- ~Screen.width #0018 SUB2 =Sprite.x |
|
| 727 | 761 |
~Screen.height #0010 SUB2 =Sprite.y |
| 728 |
- ,load_icn =Sprite.addr |
|
| 729 |
- #01 =Sprite.color |
|
| 730 |
- ~Screen.width #0010 SUB2 =Sprite.x |
|
| 731 |
- ,save_icn =Sprite.addr |
|
| 732 |
- #01 =Sprite.color |
|
| 762 |
+ |
|
| 733 | 763 |
~Screen.width #0020 SUB2 =Sprite.x |
| 764 |
+ ,filestate_icn =Sprite.addr |
|
| 765 |
+ #01 =Sprite.color |
|
| 734 | 766 |
|
| 735 |
- ( draw width ) |
|
| 736 |
- ~Screen.width #0040 SUB2 =Sprite.x |
|
| 737 |
- ,font_hex ~canvas.w #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
| 738 |
- ( draw ) #02 =Sprite.color |
|
| 739 | 767 |
~Sprite.x 8+ =Sprite.x |
| 740 |
- ,font_hex ~canvas.w #0f AND #08 MUL ADD2 =Sprite.addr |
|
| 741 |
- ( draw ) #02 =Sprite.color |
|
| 742 |
- ~Sprite.x 8+ =Sprite.x |
|
| 743 |
- ( draw height ) |
|
| 744 |
- ,font_hex ~canvas.h #f0 AND #04 SFT #08 MUL ADD2 =Sprite.addr |
|
| 745 |
- ( draw ) #02 =Sprite.color |
|
| 768 |
+ ,load_icn =Sprite.addr |
|
| 769 |
+ #01 =Sprite.color |
|
| 770 |
+ |
|
| 746 | 771 |
~Sprite.x 8+ =Sprite.x |
| 747 |
- ,font_hex ~canvas.h #0f AND #08 MUL ADD2 =Sprite.addr |
|
| 748 |
- ( draw ) #02 =Sprite.color |
|
| 772 |
+ ,save_icn =Sprite.addr |
|
| 773 |
+ #01 =Sprite.color |
|
| 749 | 774 |
|
| 750 | 775 |
( draw filename ) |
| 776 |
+ |
|
| 751 | 777 |
#0008 =Sprite.x |
| 752 | 778 |
,filepath #01 ,draw-label JSR2 |
| 753 | 779 |
|
| ... | ... |
@@ -855,18 +881,19 @@ RTN |
| 855 | 881 |
@load_icn [ feaa d6aa d4aa f400 ] |
| 856 | 882 |
@save_icn [ fe82 8282 848a f400 ] |
| 857 | 883 |
@blank_icn [ 0000 0000 0000 0000 ] |
| 858 |
-@filepath [ projects/pictures/tima2a1a.bit 00 ] |
|
| 884 |
+@filestate_icn [ 1054 28c6 2854 1000 ] ( TODO, add to background! ) |
|
| 885 |
+@untitled_txt [ untitled.bit 00 ] |
|
| 859 | 886 |
|
| 860 |
-@font_hex ( 0-F ) |
|
| 887 |
+@font_hex ( 0-F TODO: should pull from @font instead.. ) |
|
| 861 | 888 |
[ |
| 862 |
- 007c 8282 8282 827c 0030 1010 1010 1010 |
|
| 863 |
- 007c 8202 7c80 80fe 007c 8202 1c02 827c |
|
| 864 |
- 000c 1424 4484 fe04 00fe 8080 7c02 827c |
|
| 865 |
- 007c 8280 fc82 827c 007c 8202 1e02 0202 |
|
| 866 |
- 007c 8282 7c82 827c 007c 8282 7e02 827c |
|
| 867 |
- 007c 8202 7e82 827e 00fc 8282 fc82 82fc |
|
| 868 |
- 007c 8280 8080 827c 00fc 8282 8282 82fc |
|
| 869 |
- 007c 8280 f080 827c 007c 8280 f080 8080 |
|
| 889 |
+ 003c 464a 5262 3c00 0018 0808 0808 1c00 |
|
| 890 |
+ 003c 4202 3c40 7e00 003c 421c 0242 3c00 |
|
| 891 |
+ 000c 1424 447e 0400 007e 407c 0242 3c00 |
|
| 892 |
+ 003c 407c 4242 3c00 007e 0204 0810 1000 |
|
| 893 |
+ 003c 423c 4242 3c00 003c 4242 3e02 3c00 |
|
| 894 |
+ 003c 4242 7e42 4200 007c 427c 4242 7c00 |
|
| 895 |
+ 003c 4240 4042 3c00 007c 4242 4242 7c00 |
|
| 896 |
+ 007e 4078 4040 7e00 007e 4078 4040 4000 |
|
| 870 | 897 |
] |
| 871 | 898 |
|
| 872 | 899 |
@font ( spectrum-zx font ) |
| ... | ... |
@@ -907,4 +934,6 @@ RTN |
| 907 | 934 |
|
| 908 | 935 |
@ERROR BRK |
| 909 | 936 |
|
| 910 |
-@data [ ] |
|
| 937 |
+|2000 @filepath [ projects/pictures/tima2a1a.bit 00 ] |
|
| 938 |
+ |
|
| 939 |
+|2100 @data |