| ... | ... |
@@ -38,12 +38,14 @@ |
| 38 | 38 |
|
| 39 | 39 |
( variables ) |
| 40 | 40 |
|
| 41 |
-;settings { blending 1 depth 1 page 2 }
|
|
| 41 |
+;settings { blending 1 depth 1 brush 1 page 2 }
|
|
| 42 | 42 |
|
| 43 |
-;bankview { x 2 y 2 mode 1 addr 2 selection 1 }
|
|
| 43 |
+;frame { x1 2 y1 2 x2 2 y2 2 width 2 height 2 }
|
|
| 44 |
+;bankview { x 2 y 2 mode 1 selection 1 }
|
|
| 44 | 45 |
;tileview { x 2 y 2 addr 2 }
|
| 45 | 46 |
;colorview { x1 2 y1 2 x2 2 y2 2 }
|
| 46 | 47 |
;blendview { x1 2 y1 2 x2 2 y2 2 }
|
| 48 |
+;fileview { x1 2 y1 2 x2 2 y2 2 }
|
|
| 47 | 49 |
;rect { x1 2 y1 2 x2 2 y2 2 }
|
| 48 | 50 |
;mouse { x 2 y 2 }
|
| 49 | 51 |
;color { byte 1 }
|
| ... | ... |
@@ -70,16 +72,28 @@ |
| 70 | 72 |
( vectors ) ,on-mouse =Mouse.vector |
| 71 | 73 |
( vectors ) ,on-transfer =File.vector |
| 72 | 74 |
|
| 73 |
- ~Screen.width 2/ #008a SUB2 =bankview.x |
|
| 74 |
- ~Screen.height 2/ #003f SUB2 =bankview.y |
|
| 75 |
+ ( set frame ) |
|
| 76 |
+ #0140 =frame.width |
|
| 77 |
+ #0080 =frame.height |
|
| 78 |
+ #01 =settings.brush |
|
| 79 |
+ |
|
| 80 |
+ ~Screen.width 2/ ~frame.width 2/ SUB2 |
|
| 81 |
+ ~Screen.height 2/ ~frame.height 2/ SUB2 |
|
| 82 |
+ ~frame.width ~frame.height |
|
| 83 |
+ SIZE-TO-RECT ,frame SET-RECT |
|
| 84 |
+ |
|
| 85 |
+ ~frame.x1 #0018 ADD2 =bankview.x |
|
| 86 |
+ ~frame.y1 #0010 ADD2 =bankview.y |
|
| 75 | 87 |
BANK =settings.page |
| 76 | 88 |
|
| 77 | 89 |
~Screen.width 2/ #0002 ADD2 =tileview.x |
| 78 |
- ~Screen.height 2/ #003f SUB2 =tileview.y |
|
| 90 |
+ ~frame.y1 #0010 ADD2 =tileview.y |
|
| 79 | 91 |
BANK #0448 ADD2 =tileview.addr |
| 80 | 92 |
|
| 81 |
- ~Screen.width 2/ #0002 ADD2 ~Screen.height 2/ #0048 ADD2 #0020 #0020 SIZE-TO-RECT ,colorview SET-RECT |
|
| 82 |
- ~Screen.width 2/ #0061 ADD2 ~Screen.height 2/ #0048 ADD2 #0020 #0020 SIZE-TO-RECT ,blendview SET-RECT |
|
| 93 |
+ ~frame.x1 #0068 ADD2 ~Screen.height 2/ #0070 SUB2 #0020 #0020 SIZE-TO-RECT ,colorview SET-RECT |
|
| 94 |
+ ~frame.x1 #0018 ADD2 ~Screen.height 2/ #0070 SUB2 #0020 #0020 SIZE-TO-RECT ,blendview SET-RECT |
|
| 95 |
+ |
|
| 96 |
+ ~frame.x1 ~Screen.height #0018 SUB2 ~frame.x2 ~Screen.height #0008 SUB2 ,fileview SET-RECT |
|
| 83 | 97 |
|
| 84 | 98 |
#01 =settings.blending |
| 85 | 99 |
|
| ... | ... |
@@ -88,9 +102,12 @@ |
| 88 | 102 |
,filepath3 =File.name #1000 =File.length BANK #1000 ADD2 =File.load |
| 89 | 103 |
,filepath4 =File.name #1000 =File.length BANK #2000 ADD2 =File.load |
| 90 | 104 |
,filepath5 =File.name #1000 =File.length BANK #2800 ADD2 =File.load |
| 105 |
+ ,filepath6 =File.name #1000 =File.length BANK #3800 ADD2 =File.load |
|
| 91 | 106 |
|
| 92 | 107 |
,redraw JSR2 |
| 93 | 108 |
|
| 109 |
+ ( ~frame.x1 ~frame.y1 ~frame.x2 ~frame.y2 #01 ,line-rect JSR2 ) |
|
| 110 |
+ |
|
| 94 | 111 |
BRK |
| 95 | 112 |
|
| 96 | 113 |
@on-transfer ( -> ) |
| ... | ... |
@@ -151,12 +168,6 @@ BRK |
| 151 | 168 |
~Mouse.x ~bankview.x SUB2 8/ #000f GTH2 ^$no-brush-click JNZ |
| 152 | 169 |
( select ) ~mouse.x ~bankview.x SUB2 8/ #000d SUB2 SWP POP =bankview.mode |
| 153 | 170 |
$no-brush-click |
| 154 |
- ~Mouse.x ~tileview.x SUB2 8/ #000e NEQ2 ^$no-load-click JNZ |
|
| 155 |
- ( load ) ,filepath1 =File.name #0800 =File.length ~settings.page =File.load |
|
| 156 |
- $no-load-click |
|
| 157 |
- ~Mouse.x ~tileview.x SUB2 8/ #000f NEQ2 ^$no-save-click JNZ |
|
| 158 |
- ( save ) ,filepath1 =File.name #0800 =File.length ~settings.page =File.save |
|
| 159 |
- $no-save-click |
|
| 160 | 171 |
~Mouse.x ~bankview.x SUB2 8/ #0005 NEQ2 ^$no-toggle-depth JNZ |
| 161 | 172 |
,toggle-depth JSR2 |
| 162 | 173 |
$no-toggle-depth |
| ... | ... |
@@ -281,6 +292,8 @@ BRK |
| 281 | 292 |
|
| 282 | 293 |
( channel ) ~Mouse.y ~colorview.y1 SUB2 8/ SWP POP STH |
| 283 | 294 |
( rgb ) ~Mouse.x ~colorview.x1 SUB2 8/ SWP POP |
| 295 |
+ DUP #00 NEQ ^$no-brush JNZ |
|
| 296 |
+ DUPr STHr =settings.brush $no-brush |
|
| 284 | 297 |
DUP #01 NEQ ^$no-red JNZ |
| 285 | 298 |
DUPr STHr ,System.r ,set-color JSR2 $no-red |
| 286 | 299 |
DUP #02 NEQ ^$no-green JNZ |
| ... | ... |
@@ -297,16 +310,24 @@ BRK |
| 297 | 310 |
|
| 298 | 311 |
STH2 |
| 299 | 312 |
DUP #00 NEQ ^$no-red0 JNZ |
| 300 |
- DUP2r STH2r PEK2 DUP #04 SFT #01 ADD ~Mouse.state #10 EQU #fe MUL ADD #40 SFT SWP #0f AND ADD DUP2r STH2r POK2 |
|
| 313 |
+ DUP2r STH2r PEK2 DUP #04 SFT #01 ADD |
|
| 314 |
+ ( add/sub ) ~Mouse.state #10 EQU #fe MUL ADD |
|
| 315 |
+ ( resume ) #40 SFT SWP #0f AND ADD DUP2r STH2r POK2 |
|
| 301 | 316 |
$no-red0 |
| 302 | 317 |
DUP #01 NEQ ^$no-red1 JNZ |
| 303 |
- DUP2r STH2r PEK2 DUP #0f AND #01 ADD ~Mouse.state #10 EQU #fe MUL ADD #0f AND SWP #f0 AND ADD DUP2r STH2r POK2 |
|
| 318 |
+ DUP2r STH2r PEK2 DUP #0f AND #01 ADD |
|
| 319 |
+ ( add/sub ) ~Mouse.state #10 EQU #fe MUL ADD |
|
| 320 |
+ ( resume ) #0f AND SWP #f0 AND ADD DUP2r STH2r POK2 |
|
| 304 | 321 |
$no-red1 |
| 305 | 322 |
DUP #02 NEQ ^$no-red2 JNZ |
| 306 |
- DUP2r STH2r #0001 ADD2 PEK2 DUP #04 SFT #01 ADD ~Mouse.state #10 EQU #fe MUL ADD #40 SFT SWP #0f AND ADD DUP2r STH2r #0001 ADD2 POK2 |
|
| 323 |
+ DUP2r STH2r #0001 ADD2 PEK2 DUP #04 SFT #01 ADD |
|
| 324 |
+ ( add/sub ) ~Mouse.state #10 EQU #fe MUL ADD |
|
| 325 |
+ ( resume ) #40 SFT SWP #0f AND ADD DUP2r STH2r #0001 ADD2 POK2 |
|
| 307 | 326 |
$no-red2 |
| 308 | 327 |
DUP #03 NEQ ^$no-red3 JNZ |
| 309 |
- DUP2r STH2r #0001 ADD2 PEK2 DUP #0f AND #01 ADD ~Mouse.state #10 EQU #fe MUL ADD #0f AND SWP #f0 AND ADD DUP2r STH2r #0001 ADD2 POK2 |
|
| 328 |
+ DUP2r STH2r #0001 ADD2 PEK2 DUP #0f AND #01 ADD |
|
| 329 |
+ ( add/sub ) ~Mouse.state #10 EQU #fe MUL ADD |
|
| 330 |
+ ( resume ) #0f AND SWP #f0 AND ADD DUP2r STH2r #0001 ADD2 POK2 |
|
| 310 | 331 |
$no-red3 |
| 311 | 332 |
POP |
| 312 | 333 |
POP2r |
| ... | ... |
@@ -366,6 +387,7 @@ RTN |
| 366 | 387 |
,draw-tileview JSR2 |
| 367 | 388 |
,draw-blendview JSR2 |
| 368 | 389 |
,draw-colorview JSR2 |
| 390 |
+ ,draw-fileview JSR2 |
|
| 369 | 391 |
|
| 370 | 392 |
RTN |
| 371 | 393 |
|
| ... | ... |
@@ -399,14 +421,6 @@ RTN |
| 399 | 421 |
,tool_eraser =Screen.addr |
| 400 | 422 |
#21 ~bankview.mode #02 EQU ADD =Screen.color |
| 401 | 423 |
|
| 402 |
- ~tileview.x #0070 ADD2 =Screen.x |
|
| 403 |
- ,load_icn =Screen.addr |
|
| 404 |
- #21 =Screen.color |
|
| 405 |
- |
|
| 406 |
- ~tileview.x #0078 ADD2 =Screen.x |
|
| 407 |
- ,save_icn =Screen.addr |
|
| 408 |
- #21 =Screen.color |
|
| 409 |
- |
|
| 410 | 424 |
( guides ) |
| 411 | 425 |
|
| 412 | 426 |
#00 =i ,font_hex =Screen.addr |
| ... | ... |
@@ -451,7 +465,10 @@ RTN |
| 451 | 465 |
~tileview.x #0028 ADD2 =Screen.x |
| 452 | 466 |
~tileview.y #0010 SUB2 =Screen.y |
| 453 | 467 |
~tileview.addr =Screen.addr |
| 454 |
- #23 =Screen.color |
|
| 468 |
+ |
|
| 469 |
+ ( get blending ) ~settings.blending |
|
| 470 |
+ ( get depth ) ~settings.depth #20 MUL |
|
| 471 |
+ ( draw ) #20 ADD ADD =Screen.color |
|
| 455 | 472 |
|
| 456 | 473 |
( position ) |
| 457 | 474 |
|
| ... | ... |
@@ -505,7 +522,7 @@ RTN |
| 505 | 522 |
#00 =i |
| 506 | 523 |
$bytes |
| 507 | 524 |
~tileview.x #0088 ADD2 =Screen.x |
| 508 |
- ~tileview.addr #00 ~i ADD2 PEK2 ,draw-byte JSR2 |
|
| 525 |
+ ~tileview.addr #00 ~i ADD2 PEK2 #22 ,draw-byte JSR2 |
|
| 509 | 526 |
( incr ) ~i #01 ADD =i |
| 510 | 527 |
( incr ) ~Screen.y 8+ =Screen.y |
| 511 | 528 |
~i #08 LTH ,$bytes JNZ2 |
| ... | ... |
@@ -519,7 +536,7 @@ RTN |
| 519 | 536 |
,moveup_icn =Screen.addr |
| 520 | 537 |
#21 =Screen.color |
| 521 | 538 |
|
| 522 |
- ( draw tiles ) |
|
| 539 |
+ ( draw tiles 2x2 ) |
|
| 523 | 540 |
~tileview.y =Screen.y |
| 524 | 541 |
#00 =pt.x #00 =pt.y ~tileview.addr =Screen.addr |
| 525 | 542 |
|
| ... | ... |
@@ -560,6 +577,8 @@ RTN |
| 560 | 577 |
RTN |
| 561 | 578 |
|
| 562 | 579 |
@draw-blendview ( -- ) |
| 580 |
+ |
|
| 581 |
+ ~blendview.x1 #0002 SUB2 ~blendview.y1 #0002 SUB2 ~blendview.x2 #0001 ADD2 ~blendview.y2 #0001 ADD2 #03 ,line-rect JSR2 |
|
| 563 | 582 |
|
| 564 | 583 |
~tileview.addr =Screen.addr |
| 565 | 584 |
#00 #10 |
| ... | ... |
@@ -572,12 +591,13 @@ RTN |
| 572 | 591 |
DUP2 LTH ^$loop JNZ |
| 573 | 592 |
POP2 |
| 574 | 593 |
|
| 575 |
- ~blendview.x1 #0019 SUB2 =Screen.x |
|
| 576 |
- ~blendview.y1 #0018 ADD2 =Screen.y |
|
| 594 |
+ ~blendview.x1 #0002 SUB2 ~blendview.y2 #0001 ADD2 ~blendview.x1 #000e ADD2 ~blendview.y2 #0009 ADD2 #03 ,line-rect JSR2 |
|
| 595 |
+ ~blendview.x1 #0001 SUB2 =Screen.x |
|
| 596 |
+ ~blendview.y2 #0001 ADD2 =Screen.y |
|
| 577 | 597 |
|
| 578 | 598 |
( get blending ) ~settings.blending |
| 579 | 599 |
( get depth ) ~settings.depth #20 MUL |
| 580 |
- ( draw ) #20 ADD ADD ,draw-byte JSR2 |
|
| 600 |
+ ( draw ) #20 ADD ADD #2c ,draw-byte JSR2 |
|
| 581 | 601 |
|
| 582 | 602 |
RTN |
| 583 | 603 |
|
| ... | ... |
@@ -594,10 +614,11 @@ RTN |
| 594 | 614 |
~System.b ,draw-color-code JSR2 |
| 595 | 615 |
|
| 596 | 616 |
~colorview.x1 =Screen.x |
| 597 |
- ,full_icn =Screen.addr |
|
| 617 |
+ ,circle_icns =Screen.addr |
|
| 598 | 618 |
|
| 599 | 619 |
#00 #04 |
| 600 | 620 |
$loop |
| 621 |
+ OVR ~settings.brush EQU #00 SWP #0008 MUL2 ,circle_icns ADD2 =Screen.addr |
|
| 601 | 622 |
OVR ~colorview.y1 ROT #00 SWP #0008 MUL2 ADD2 =Screen.y |
| 602 | 623 |
OVR #20 ADD =Screen.color |
| 603 | 624 |
SWP #01 ADD SWP |
| ... | ... |
@@ -606,6 +627,31 @@ RTN |
| 606 | 627 |
|
| 607 | 628 |
RTN |
| 608 | 629 |
|
| 630 |
+@draw-fileview ( -- ) |
|
| 631 |
+ |
|
| 632 |
+ ( line hor ) |
|
| 633 |
+ ~fileview.y1 =Screen.y |
|
| 634 |
+ ~fileview.x1 ~fileview.x2 |
|
| 635 |
+ $line-hor |
|
| 636 |
+ OVR2 =Screen.x |
|
| 637 |
+ ( draw ) #03 =Screen.color |
|
| 638 |
+ ( incr ) SWP2 #0002 ADD2 SWP2 |
|
| 639 |
+ OVR2 OVR2 LTH2 ^$line-hor JNZ |
|
| 640 |
+ POP2 POP2 |
|
| 641 |
+ |
|
| 642 |
+ ~fileview.y1 #0008 ADD2 =Screen.y |
|
| 643 |
+ ~fileview.x1 #0008 ADD2 =Screen.x |
|
| 644 |
+ ,rename_icn =Screen.addr |
|
| 645 |
+ #21 =Screen.color |
|
| 646 |
+ ~fileview.x2 #0018 SUB2 =Screen.x |
|
| 647 |
+ ,load_icn =Screen.addr |
|
| 648 |
+ #21 =Screen.color |
|
| 649 |
+ ~fileview.x2 #0010 SUB2 =Screen.x |
|
| 650 |
+ ,save_icn =Screen.addr |
|
| 651 |
+ #21 =Screen.color |
|
| 652 |
+ |
|
| 653 |
+RTN |
|
| 654 |
+ |
|
| 609 | 655 |
@draw-color-code ( color* -- ) |
| 610 | 656 |
|
| 611 | 657 |
DUP ,font_hex ROT #0f AND #08 MUL #00 SWP ADD2 =Screen.addr |
| ... | ... |
@@ -642,14 +688,14 @@ RTN |
| 642 | 688 |
|
| 643 | 689 |
RTN |
| 644 | 690 |
|
| 645 |
-@draw-byte ( byte -- ) |
|
| 691 |
+@draw-byte ( byte color -- ) |
|
| 646 | 692 |
|
| 647 |
- STH |
|
| 693 |
+ =color STH |
|
| 648 | 694 |
,font_hex #00 DUPr STHr #f0 AND #04 SFT #08 MUL ADD2 =Screen.addr |
| 649 |
- ( draw ) #22 =Screen.color |
|
| 695 |
+ ( draw ) ~color =Screen.color |
|
| 650 | 696 |
~Screen.x 8+ =Screen.x |
| 651 | 697 |
,font_hex #00 STHr #0f AND #08 MUL ADD2 =Screen.addr |
| 652 |
- ( draw ) #22 =Screen.color |
|
| 698 |
+ ( draw ) ~color =Screen.color |
|
| 653 | 699 |
|
| 654 | 700 |
RTN |
| 655 | 701 |
|
| ... | ... |
@@ -694,7 +740,10 @@ RTN |
| 694 | 740 |
|
| 695 | 741 |
RTN |
| 696 | 742 |
|
| 697 |
-@full_icn [ 0038 7cfe fefe 7c38 ] |
|
| 743 |
+@circle_icns |
|
| 744 |
+ [ 0038 7cfe fefe 7c38 ] ( full ) |
|
| 745 |
+ [ 0038 4482 8282 4438 ] ( line ) |
|
| 746 |
+ |
|
| 698 | 747 |
@tool_selector [ 80c0 e0f0 f8e0 1000 ] |
| 699 | 748 |
@tool_hand [ 4040 4070 f8f8 f870 ] |
| 700 | 749 |
@tool_eraser [ 2050 b87c 3e1c 0800 ] |
| ... | ... |
@@ -708,15 +757,22 @@ RTN |
| 708 | 757 |
00fe 9292 fe92 92fe |
| 709 | 758 |
] |
| 710 | 759 |
|
| 711 |
-@load_icn [ feaa d6aa d4aa f400 ] |
|
| 712 |
-@save_icn [ fe82 8282 848a f400 ] |
|
| 760 |
+@eye_icns |
|
| 761 |
+ [ 0038 4492 2810 0000 ] ( open ) |
|
| 762 |
+ [ 0000 0082 4438 0000 ] ( closed ) |
|
| 763 |
+ |
|
| 764 |
+@rename_icn [ 1054 28c6 2854 1000 ] |
|
| 765 |
+@load_icn [ feaa d6aa d4aa f400 ] |
|
| 766 |
+@save_icn [ fe82 8282 848a f400 ] |
|
| 767 |
+ |
|
| 713 | 768 |
@moveup_icn [ 0010 387c fe10 1000 ] |
| 714 | 769 |
@movedown_icn [ 0010 1010 fe7c 3810 ] |
| 715 | 770 |
@filepath1 [ projects/fonts/specter8.bit 00 ] |
| 716 | 771 |
@filepath2 [ projects/pictures/cibo.bit 00 ] |
| 717 | 772 |
@filepath3 [ projects/pictures/zerotwo10x10.chr 00 ] |
| 718 | 773 |
@filepath4 [ projects/fonts/katahira8.bit 00 ] |
| 719 |
-@filepath5 [ projects/pictures/daria10x10.chr 00 ] |
|
| 774 |
+@filepath5 [ projects/pictures/ako10x10.chr 00 ] |
|
| 775 |
+@filepath6 [ projects/pictures/cyr4x4.chr 00 ] |
|
| 720 | 776 |
|
| 721 | 777 |
@font_hex ( 0-F ) |
| 722 | 778 |
[ |