| ... | ... |
@@ -4,10 +4,10 @@ |
| 4 | 4 |
Any live cell with more than three live neighbours dies, as if by overpopulation. |
| 5 | 5 |
Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction. ) |
| 6 | 6 |
|
| 7 |
-%+ { ADD } %- { SUB } %* { MUL } %/ { DIV }
|
|
| 8 |
-%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
|
|
| 9 |
-%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
|
|
| 10 |
-%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
|
|
| 7 |
+%+ { ADD } %- { SUB } %* { MUL } %/ { DIV }
|
|
| 8 |
+%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
|
|
| 9 |
+%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
|
|
| 10 |
+%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
|
|
| 11 | 11 |
|
| 12 | 12 |
%INCR { #01 + } %DECR { #01 - }
|
| 13 | 13 |
%TOS { #00 SWP } %TOB { SWP POP }
|
| ... | ... |
@@ -14,6 +14,11 @@ |
| 14 | 14 |
Select paint color for 2-bit mode |
| 15 | 15 |
) |
| 16 | 16 |
|
| 17 |
+%+ { ADD } %- { SUB } %* { MUL } %/ { DIV }
|
|
| 18 |
+%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
|
|
| 19 |
+%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
|
|
| 20 |
+%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
|
|
| 21 |
+ |
|
| 17 | 22 |
%RTN { JMP2r }
|
| 18 | 23 |
%STEP8 { #0033 SFT2 }
|
| 19 | 24 |
|
| ... | ... |
@@ -68,6 +73,8 @@ |
| 68 | 73 |
( interface ) |
| 69 | 74 |
@bankview [ &x $2 &y $2 &mode $1 &selection $1 ] |
| 70 | 75 |
@tileview [ &x $2 &y $2 ] |
| 76 |
+ |
|
| 77 |
+@editview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
| 71 | 78 |
@colorview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
| 72 | 79 |
@blendview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
| 73 | 80 |
@dataview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
| ... | ... |
@@ -76,7 +83,6 @@ |
| 76 | 83 |
@rect [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
| 77 | 84 |
@mouse [ &x $2 &y $2 ] |
| 78 | 85 |
@pt [ &x $1 &y $1 ] |
| 79 |
-@addr [ &short $2 ] |
|
| 80 | 86 |
@pos [ &x $2 &y $2 ] |
| 81 | 87 |
|
| 82 | 88 |
@color $1 |
| ... | ... |
@@ -84,7 +90,7 @@ |
| 84 | 90 |
|
| 85 | 91 |
( program ) |
| 86 | 92 |
|
| 87 |
-|0100 |
|
| 93 |
+|0100 ( -> ) |
|
| 88 | 94 |
|
| 89 | 95 |
( theme ) |
| 90 | 96 |
#0efc .System/r DEO2 |
| ... | ... |
@@ -100,7 +106,7 @@ |
| 100 | 106 |
#0130 .frame/width POK2 |
| 101 | 107 |
#00a8 .frame/height POK2 |
| 102 | 108 |
#01 .settings/brush POK |
| 103 |
- #44 .settings/ratio POK |
|
| 109 |
+ #32 .settings/ratio POK |
|
| 104 | 110 |
|
| 105 | 111 |
.Screen/width DEI2 #0001 SFT2 .frame/width PEK2 #0001 SFT2 SUB2 |
| 106 | 112 |
.Screen/height DEI2 #0001 SFT2 .frame/height PEK2 #0001 SFT2 SUB2 #0010 ADD2 |
| ... | ... |
@@ -115,10 +121,11 @@ |
| 115 | 121 |
.frame/y1 PEK2 .tileview/y POK2 |
| 116 | 122 |
BANK #0448 ADD2 .settings/tile POK2 |
| 117 | 123 |
|
| 118 |
- .frame/x1 PEK2 #0010 ADD2 .frame/y2 PEK2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;blendview SET-RECT |
|
| 119 |
- .frame/x1 PEK2 #0038 ADD2 .frame/y2 PEK2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT |
|
| 120 |
- .frame/x1 PEK2 #0068 ADD2 .frame/y2 PEK2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT |
|
| 121 | 124 |
.frame/x2 PEK2 #0010 SUB2 .frame/y1 PEK2 #0010 #0080 SIZE-TO-RECT ;dataview SET-RECT |
| 125 |
+ .frame/x1 PEK2 #0010 ADD2 .frame/y2 PEK2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;blendview SET-RECT |
|
| 126 |
+ .frame/x1 PEK2 #0060 ADD2 .frame/y2 PEK2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT |
|
| 127 |
+ .frame/x1 PEK2 #0038 ADD2 .frame/y2 PEK2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT |
|
| 128 |
+ .frame/x2 PEK2 #0098 SUB2 .frame/y1 PEK2 #0080 #0080 SIZE-TO-RECT ;editview SET-RECT |
|
| 122 | 129 |
|
| 123 | 130 |
#01 .settings/blending POK |
| 124 | 131 |
|
| ... | ... |
@@ -198,6 +205,11 @@ BRK |
| 198 | 205 |
.Mouse/y DEI2 .tileview/y PEK2 GTH2 .Mouse/y DEI2 .tileview/y PEK2 #0080 ADD2 LTH2 #0101 EQU2 |
| 199 | 206 |
#0101 EQU2 ;on-touch-tileview JNZ2 |
| 200 | 207 |
|
| 208 |
+ ( editview ) |
|
| 209 |
+ .Mouse/x DEI2 DUP2 .editview/x1 PEK2 GTH2 ROT ROT .editview/x2 PEK2 LTH2 #0101 EQU2 |
|
| 210 |
+ .Mouse/y DEI2 DUP2 .editview/y1 PEK2 GTH2 ROT ROT .editview/y2 PEK2 LTH2 #0101 EQU2 |
|
| 211 |
+ #0101 EQU2 ;on-touch-editview JNZ2 |
|
| 212 |
+ |
|
| 201 | 213 |
( dataview ) |
| 202 | 214 |
.Mouse/x DEI2 DUP2 .dataview/x1 PEK2 GTH2 ROT ROT .dataview/x2 PEK2 LTH2 #0101 EQU2 |
| 203 | 215 |
.Mouse/y DEI2 DUP2 .dataview/y1 PEK2 GTH2 ROT ROT .dataview/y2 PEK2 LTH2 #0101 EQU2 |
| ... | ... |
@@ -261,24 +273,12 @@ BRK |
| 261 | 273 |
|
| 262 | 274 |
@on-touch-tileview ( -> ) |
| 263 | 275 |
|
| 264 |
- .Mouse/x DEI2 .tileview/x PEK2 SUB2 STEP8 #0040 DIV2 |
|
| 265 |
- .Mouse/y DEI2 .tileview/y PEK2 SUB2 STEP8 #0040 DIV2 #0002 DIV2 ADD2 |
|
| 266 |
- #0008 MUL2 |
|
| 267 |
- .settings/tile PEK2 ADD2 .addr POK2 ( addr offset ) |
|
| 268 |
- .Mouse/x DEI2 .tileview/x PEK2 SUB2 .Mouse/x DEI2 .tileview/x PEK2 SUB2 #0040 DIV2 #0040 MUL2 SUB2 .pos/x POK2 |
|
| 269 |
- .Mouse/y DEI2 .tileview/y PEK2 SUB2 .Mouse/y DEI2 .tileview/y PEK2 SUB2 #0040 DIV2 #0040 MUL2 SUB2 .pos/y POK2 |
|
| 270 |
- .Mouse/state DEI #10 NEQ ,&no-erase-mode JNZ |
|
| 271 |
- ( load ) .addr PEK2 .pos/y PEK2 #0008 DIV2 ADD2 LDA |
|
| 272 |
- ( mask ) #01 #07 .pos/x PEK2 #0008 DIV2 TOB SUB SFL |
|
| 273 |
- #ff EOR AND |
|
| 274 |
- ( save ) .addr PEK2 .pos/y PEK2 #0008 DIV2 ADD2 STA |
|
| 275 |
- ;redraw JSR2 BRK |
|
| 276 |
- &no-erase-mode |
|
| 277 |
- ( load ) .addr PEK2 .pos/y PEK2 #0008 DIV2 ADD2 LDA |
|
| 278 |
- ( mask ) #01 #07 .pos/x PEK2 #0008 DIV2 TOB SUB SFL |
|
| 279 |
- ORA |
|
| 280 |
- ( save ) .addr PEK2 .pos/y PEK2 #0008 DIV2 ADD2 STA |
|
| 281 |
- ;redraw JSR2 |
|
| 276 |
+ |
|
| 277 |
+BRK |
|
| 278 |
+ |
|
| 279 |
+@on-touch-editview ( -> ) |
|
| 280 |
+ |
|
| 281 |
+ #aa DEBUG |
|
| 282 | 282 |
|
| 283 | 283 |
BRK |
| 284 | 284 |
|
| ... | ... |
@@ -334,7 +334,6 @@ BRK |
| 334 | 334 |
#40 SFT ADD #11 ADD |
| 335 | 335 |
.settings/ratio POK |
| 336 | 336 |
|
| 337 |
- ( release ) #00 .Mouse/state DEO |
|
| 338 | 337 |
;redraw JSR2 |
| 339 | 338 |
|
| 340 | 339 |
BRK |
| ... | ... |
@@ -386,7 +385,7 @@ RTN |
| 386 | 385 |
|
| 387 | 386 |
RTN |
| 388 | 387 |
|
| 389 |
-@op_shiftup |
|
| 388 |
+@op_shiftup ( -- ) |
|
| 390 | 389 |
|
| 391 | 390 |
.settings/tile PEK2 LDA |
| 392 | 391 |
.settings/tile PEK2 #0001 ADD2 LDA .settings/tile PEK2 STA |
| ... | ... |
@@ -400,7 +399,7 @@ RTN |
| 400 | 399 |
|
| 401 | 400 |
RTN |
| 402 | 401 |
|
| 403 |
-@op_shiftdown |
|
| 402 |
+@op_shiftdown ( -- ) |
|
| 404 | 403 |
|
| 405 | 404 |
.settings/tile PEK2 #0007 ADD2 LDA |
| 406 | 405 |
.settings/tile PEK2 #0006 ADD2 LDA .settings/tile PEK2 #0007 ADD2 STA |
| ... | ... |
@@ -414,10 +413,10 @@ RTN |
| 414 | 413 |
|
| 415 | 414 |
RTN |
| 416 | 415 |
|
| 417 |
-@redraw |
|
| 416 |
+@redraw ( -- ) |
|
| 418 | 417 |
|
| 419 | 418 |
;draw-bankview JSR2 |
| 420 |
- ;draw-tileview JSR2 |
|
| 419 |
+ ;draw-editview JSR2 |
|
| 421 | 420 |
;draw-blendview JSR2 |
| 422 | 421 |
;draw-colorview JSR2 |
| 423 | 422 |
;draw-dataview JSR2 |
| ... | ... |
@@ -425,7 +424,7 @@ RTN |
| 425 | 424 |
|
| 426 | 425 |
RTN |
| 427 | 426 |
|
| 428 |
-@draw-bankview |
|
| 427 |
+@draw-bankview ( -- ) |
|
| 429 | 428 |
|
| 430 | 429 |
.bankview/x PEK2 #0002 SUB2 .bankview/y PEK2 #0002 SUB2 .bankview/x PEK2 #0081 ADD2 .bankview/y PEK2 #0081 ADD2 #03 ;line-rect JSR2 |
| 431 | 430 |
|
| ... | ... |
@@ -433,7 +432,7 @@ RTN |
| 433 | 432 |
|
| 434 | 433 |
.bankview/x PEK2 .Screen/x DEO2 |
| 435 | 434 |
.bankview/y PEK2 #0010 SUB2 .Screen/y DEO2 |
| 436 |
- .settings/page PEK2 ;draw-short JSR2 |
|
| 435 |
+ .settings/page PEK2 #22 ;draw-short JSR2 |
|
| 437 | 436 |
|
| 438 | 437 |
( toolbar ) |
| 439 | 438 |
|
| ... | ... |
@@ -459,7 +458,7 @@ RTN |
| 459 | 458 |
|
| 460 | 459 |
.bankview/x PEK2 #0010 SUB2 .Screen/x DEO2 |
| 461 | 460 |
.bankview/y PEK2 .Screen/y DEO2 |
| 462 |
- ;font_hex .Screen/addr DEO2 |
|
| 461 |
+ ;font-hex .Screen/addr DEO2 |
|
| 463 | 462 |
#00 #10 |
| 464 | 463 |
&guides |
| 465 | 464 |
( draw ) OVR .bankview/selection PEK #04 SFT EQU #22 ADD .Screen/color DEO |
| ... | ... |
@@ -492,7 +491,7 @@ RTN |
| 492 | 491 |
|
| 493 | 492 |
RTN |
| 494 | 493 |
|
| 495 |
-@draw-tileview |
|
| 494 |
+@draw-tileview ( -- ) |
|
| 496 | 495 |
|
| 497 | 496 |
.tileview/x PEK2 #0002 SUB2 .tileview/y PEK2 #0002 SUB2 .tileview/x PEK2 #0080 ADD2 .tileview/y PEK2 #0081 ADD2 #03 ;line-rect JSR2 |
| 498 | 497 |
|
| ... | ... |
@@ -508,7 +507,7 @@ RTN |
| 508 | 507 |
|
| 509 | 508 |
.tileview/x PEK2 .Screen/x DEO2 |
| 510 | 509 |
.tileview/y PEK2 #0010 SUB2 .Screen/y DEO2 |
| 511 |
- .settings/tile PEK2 ;draw-short JSR2 |
|
| 510 |
+ .settings/tile PEK2 #22 ;draw-short JSR2 |
|
| 512 | 511 |
|
| 513 | 512 |
( body ) |
| 514 | 513 |
|
| ... | ... |
@@ -552,7 +551,91 @@ RTN |
| 552 | 551 |
|
| 553 | 552 |
RTN |
| 554 | 553 |
|
| 555 |
-@draw-tileview-icn |
|
| 554 |
+@draw-editview ( -- ) |
|
| 555 |
+ |
|
| 556 |
+ .editview/x1 PEK2 #0002 SUB2 .editview/y1 PEK2 #0002 SUB2 .editview/x2 PEK2 #0001 ADD2 .editview/y2 PEK2 #0001 ADD2 #03 ;line-rect JSR2 |
|
| 557 |
+ |
|
| 558 |
+ ( grid ) |
|
| 559 |
+ .editview/x1 PEK2 DUP2 #0080 ADD2 .editview/y1 PEK2 #0020 ADD2 #03 ;line-hor JSR2 |
|
| 560 |
+ .editview/x1 PEK2 DUP2 #0080 ADD2 .editview/y1 PEK2 #0040 ADD2 #03 ;line-hor JSR2 |
|
| 561 |
+ .editview/x1 PEK2 DUP2 #0080 ADD2 .editview/y1 PEK2 #0060 ADD2 #03 ;line-hor JSR2 |
|
| 562 |
+ .editview/x1 PEK2 #0020 ADD2 .editview/y1 PEK2 DUP2 #0080 ADD2 #03 ;line-ver JSR2 |
|
| 563 |
+ .editview/x1 PEK2 #0040 ADD2 .editview/y1 PEK2 DUP2 #0080 ADD2 #03 ;line-ver JSR2 |
|
| 564 |
+ .editview/x1 PEK2 #0060 ADD2 .editview/y1 PEK2 DUP2 #0080 ADD2 #03 ;line-ver JSR2 |
|
| 565 |
+ |
|
| 566 |
+ ( position ) |
|
| 567 |
+ |
|
| 568 |
+ .editview/x1 PEK2 .Screen/x DEO2 |
|
| 569 |
+ .editview/y1 PEK2 #0010 SUB2 .Screen/y DEO2 |
|
| 570 |
+ .settings/tile PEK2 #22 ;draw-short JSR2 |
|
| 571 |
+ |
|
| 572 |
+ ( tiles ) |
|
| 573 |
+ .settings/tile PEK2 DUP2 STH2 .Screen/addr DEO2 |
|
| 574 |
+ #00 #04 |
|
| 575 |
+ &ver |
|
| 576 |
+ OVR #08 MUL TOS #0004 MUL2 .editview/y1 PEK2 ADD2 .Screen/y DEO2 |
|
| 577 |
+ #00 #04 |
|
| 578 |
+ &hor |
|
| 579 |
+ OVR #08 MUL TOS #0004 MUL2 .editview/x1 PEK2 ADD2 .Screen/x DEO2 |
|
| 580 |
+ ( get x,y ) |
|
| 581 |
+ SWP2 OVR STH SWP2 OVR STHr |
|
| 582 |
+ ( check if within ratio ) |
|
| 583 |
+ .settings/ratio PEK #0f AND LTH STH |
|
| 584 |
+ .settings/ratio PEK #04 SFT LTH STHr |
|
| 585 |
+ #0101 NEQ2 ,&outside JNZ |
|
| 586 |
+ |
|
| 587 |
+ ( draw zoomed tile ) |
|
| 588 |
+ .Screen/x DEI2 |
|
| 589 |
+ .Screen/y DEI2 |
|
| 590 |
+ #01 ;draw-tile JSR2 |
|
| 591 |
+ |
|
| 592 |
+ ( get tile ) DUP2r STH2r .Screen/addr DEO2 |
|
| 593 |
+ ( get blending ) .settings/blending PEK |
|
| 594 |
+ ( get depth ) .settings/depth PEK #20 MUL |
|
| 595 |
+ ( draw ) #20 ADD ADD .Screen/color DEO |
|
| 596 |
+ |
|
| 597 |
+ ( incr ) STH2r #0008 ADD2 STH2 |
|
| 598 |
+ ,&resume JMP |
|
| 599 |
+ &outside |
|
| 600 |
+ ;halftone_icn .Screen/addr DEO2 |
|
| 601 |
+ #23 .Screen/color DEO |
|
| 602 |
+ &resume |
|
| 603 |
+ ( incr ) SWP #01 ADD SWP |
|
| 604 |
+ DUP2 LTH ,&hor JNZ |
|
| 605 |
+ POP2 |
|
| 606 |
+ ( incr ) SWP #01 ADD SWP |
|
| 607 |
+ DUP2 LTH ;&ver JNZ2 |
|
| 608 |
+ POP2 |
|
| 609 |
+ POP2r |
|
| 610 |
+ |
|
| 611 |
+RTN |
|
| 612 |
+ |
|
| 613 |
+@draw-tile ( x* y* color -- ) |
|
| 614 |
+ |
|
| 615 |
+ ( TODO: complete ) |
|
| 616 |
+ STH |
|
| 617 |
+ .Screen/y DEO2 |
|
| 618 |
+ .Screen/x DEO2 |
|
| 619 |
+ #00 #20 |
|
| 620 |
+ &ver |
|
| 621 |
+ #00 #20 |
|
| 622 |
+ &hor |
|
| 623 |
+ DUPr STHr .Screen/color DEO |
|
| 624 |
+ #0001 .Screen/x DEI2 ADD2 .Screen/x DEO2 |
|
| 625 |
+ ( incr ) SWP #01 ADD SWP |
|
| 626 |
+ DUP2 LTH ,&hor JNZ |
|
| 627 |
+ POP2 |
|
| 628 |
+ #0001 .Screen/y DEI2 ADD2 .Screen/y DEO2 |
|
| 629 |
+ .Screen/x DEI2 #0020 SUB2 .Screen/x DEO2 |
|
| 630 |
+ ( incr ) SWP #01 ADD SWP |
|
| 631 |
+ DUP2 LTH ,&ver JNZ |
|
| 632 |
+ POP2 |
|
| 633 |
+ .Screen/y DEI2 #0020 SUB2 .Screen/y DEO2 |
|
| 634 |
+ POPr |
|
| 635 |
+ |
|
| 636 |
+RTN |
|
| 637 |
+ |
|
| 638 |
+@draw-tileview-icn ( -- ) |
|
| 556 | 639 |
|
| 557 | 640 |
#00 .pt/x POK #00 .pt/y POK |
| 558 | 641 |
&ver |
| ... | ... |
@@ -575,7 +658,7 @@ RTN |
| 575 | 658 |
|
| 576 | 659 |
@draw-blendview ( -- ) |
| 577 | 660 |
|
| 578 |
- .blendview/x1 PEK2 #0002 SUB2 .blendview/y1 PEK2 #0002 SUB2 .blendview/x2 PEK2 #0001 ADD2 .blendview/y2 PEK2 #0001 ADD2 #03 ;line-rect JSR2 |
|
| 661 |
+ ( .blendview/x1 PEK2 #0002 SUB2 .blendview/y1 PEK2 #0002 SUB2 .blendview/x2 PEK2 #0001 ADD2 .blendview/y2 PEK2 #0001 ADD2 #03 ;line-rect JSR2 ) |
|
| 579 | 662 |
|
| 580 | 663 |
.settings/tile PEK2 .Screen/addr DEO2 |
| 581 | 664 |
#00 #10 |
| ... | ... |
@@ -588,13 +671,11 @@ RTN |
| 588 | 671 |
DUP2 LTH ,&loop JNZ |
| 589 | 672 |
POP2 |
| 590 | 673 |
|
| 591 |
- .blendview/x1 PEK2 #0002 SUB2 .blendview/y2 PEK2 #0001 ADD2 .blendview/x1 PEK2 #000e ADD2 .blendview/y2 PEK2 #0009 ADD2 #03 ;line-rect JSR2 |
|
| 592 |
- .blendview/x1 PEK2 #0001 SUB2 .Screen/x DEO2 |
|
| 674 |
+ .blendview/x1 PEK2 .Screen/x DEO2 |
|
| 593 | 675 |
.blendview/y2 PEK2 #0001 ADD2 .Screen/y DEO2 |
| 594 |
- |
|
| 595 | 676 |
( get blending ) .settings/blending PEK |
| 596 | 677 |
( get depth ) .settings/depth PEK #20 MUL |
| 597 |
- ( draw ) #20 ADD ADD #2c ;draw-byte JSR2 |
|
| 678 |
+ ( draw ) #20 ADD ADD #21 ;draw-byte JSR2 |
|
| 598 | 679 |
|
| 599 | 680 |
RTN |
| 600 | 681 |
|
| ... | ... |
@@ -667,7 +748,8 @@ RTN |
| 667 | 748 |
|
| 668 | 749 |
@draw-preview ( -- ) |
| 669 | 750 |
|
| 670 |
- .preview/x1 PEK2 #0002 SUB2 .preview/y1 PEK2 #0002 SUB2 .preview/x2 PEK2 #0001 ADD2 .preview/y2 PEK2 #0001 ADD2 #03 ;line-rect JSR2 |
|
| 751 |
+ ( .preview/x1 PEK2 #0002 SUB2 .preview/y1 PEK2 #0002 SUB2 .preview/x2 PEK2 #0001 ADD2 .preview/y2 PEK2 #0001 ADD2 #03 ;line-rect JSR2 ) |
|
| 752 |
+ |
|
| 671 | 753 |
( stash address ) |
| 672 | 754 |
.settings/tile PEK2 DUP2 STH2 .Screen/addr DEO2 |
| 673 | 755 |
#00 #04 |
| ... | ... |
@@ -682,10 +764,11 @@ RTN |
| 682 | 764 |
.settings/ratio PEK #0f AND LTH STH |
| 683 | 765 |
.settings/ratio PEK #04 SFT LTH STHr |
| 684 | 766 |
#0101 NEQ2 ,&outside JNZ |
| 767 |
+ ( get tile ) DUP2r STH2r .Screen/addr DEO2 |
|
| 685 | 768 |
( get blending ) .settings/blending PEK |
| 686 | 769 |
( get depth ) .settings/depth PEK #20 MUL |
| 687 | 770 |
( draw ) #20 ADD ADD .Screen/color DEO |
| 688 |
- ( incr ) STH2r #0008 ADD2 DUP2 STH2 .Screen/addr DEO2 |
|
| 771 |
+ ( incr ) STH2r #0008 ADD2 STH2 |
|
| 689 | 772 |
,&resume JMP |
| 690 | 773 |
&outside |
| 691 | 774 |
;halftone_icn .Screen/addr DEO2 |
| ... | ... |
@@ -706,21 +789,21 @@ RTN |
| 706 | 789 |
|
| 707 | 790 |
@draw-color-code ( color* -- ) |
| 708 | 791 |
|
| 709 |
- DUP ;font_hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2 |
|
| 792 |
+ DUP ;font-hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2 |
|
| 710 | 793 |
( draw ) #22 .Screen/color DEO |
| 711 | 794 |
.colorview/y1 PEK2 #10 ADD .Screen/y DEO2 |
| 712 |
- ;font_hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2 |
|
| 795 |
+ ;font-hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2 |
|
| 713 | 796 |
( draw ) #22 .Screen/color DEO |
| 714 | 797 |
.colorview/y1 PEK2 #08 ADD .Screen/y DEO2 |
| 715 |
- DUP ;font_hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2 |
|
| 798 |
+ DUP ;font-hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2 |
|
| 716 | 799 |
( draw ) #22 .Screen/color DEO |
| 717 | 800 |
.colorview/y1 PEK2 .Screen/y DEO2 |
| 718 |
- ;font_hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2 |
|
| 801 |
+ ;font-hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2 |
|
| 719 | 802 |
( draw ) #22 .Screen/color DEO |
| 720 | 803 |
|
| 721 | 804 |
RTN |
| 722 | 805 |
|
| 723 |
-@draw-cursor |
|
| 806 |
+@draw-cursor ( -- ) |
|
| 724 | 807 |
|
| 725 | 808 |
( clear last cursor ) |
| 726 | 809 |
.mouse/x PEK2 .Screen/x DEO2 |
| ... | ... |
@@ -742,34 +825,34 @@ RTN |
| 742 | 825 |
@draw-byte ( byte color -- ) |
| 743 | 826 |
|
| 744 | 827 |
.color POK STH |
| 745 |
- ;font_hex #00 DUPr STHr #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 |
|
| 828 |
+ ;font-hex #00 DUPr STHr #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 |
|
| 746 | 829 |
( draw ) .color PEK .Screen/color DEO |
| 747 | 830 |
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
| 748 |
- ;font_hex #00 STHr #0f AND #08 MUL ADD2 .Screen/addr DEO2 |
|
| 831 |
+ ;font-hex #00 STHr #0f AND #08 MUL ADD2 .Screen/addr DEO2 |
|
| 749 | 832 |
( draw ) .color PEK .Screen/color DEO |
| 750 | 833 |
|
| 751 | 834 |
RTN |
| 752 | 835 |
|
| 753 |
-@draw-short ( short -- ) |
|
| 754 |
- |
|
| 755 |
- .addr POK2 |
|
| 756 |
- ;font_hex #00 ;addr LDA #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 |
|
| 757 |
- ( draw ) #22 .Screen/color DEO |
|
| 758 |
- .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
|
| 759 |
- ;font_hex #00 ;addr LDA #0f AND #08 MUL ADD2 .Screen/addr DEO2 |
|
| 760 |
- ( draw ) #22 .Screen/color DEO |
|
| 761 |
- .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
|
| 762 |
- ;font_hex #00 ;addr #0001 ADD2 LDA #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2 |
|
| 763 |
- ( draw ) #22 .Screen/color DEO |
|
| 764 |
- .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
|
| 765 |
- ;font_hex #00 ;addr #0001 ADD2 LDA #0f AND #08 MUL ADD2 .Screen/addr DEO2 |
|
| 766 |
- ( draw ) #22 .Screen/color DEO |
|
| 836 |
+@draw-short ( short* color -- ) |
|
| 837 |
+ |
|
| 838 |
+ STH SWP |
|
| 839 |
+ DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2 |
|
| 840 |
+ ( draw ) DUPr STHr .Screen/color DEO |
|
| 841 |
+ #0f AND TOS #0008 ** ;font-hex ++ .Screen/addr DEO2 |
|
| 842 |
+ .Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
| 843 |
+ ( draw ) DUPr STHr .Screen/color DEO |
|
| 844 |
+ DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2 |
|
| 845 |
+ .Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
| 846 |
+ ( draw ) DUPr STHr .Screen/color DEO |
|
| 847 |
+ #0f AND TOS #0008 ** ;font-hex ++ .Screen/addr DEO2 |
|
| 848 |
+ .Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
| 849 |
+ ( draw ) STHr .Screen/color DEO |
|
| 767 | 850 |
|
| 768 | 851 |
RTN |
| 769 | 852 |
|
| 770 | 853 |
( Utils ) |
| 771 | 854 |
|
| 772 |
-@line-rect ( x1 y1 x2 y2 color -- ) |
|
| 855 |
+@line-rect ( x1* y1* x2* y2* color -- ) |
|
| 773 | 856 |
|
| 774 | 857 |
( load ) .color POK DUP2 STH2 .rect/y2 POK2 .rect/x2 POK2 DUP2 STH2 .rect/y1 POK2 .rect/x1 POK2 |
| 775 | 858 |
STH2r STH2r |
| ... | ... |
@@ -791,37 +874,50 @@ RTN |
| 791 | 874 |
|
| 792 | 875 |
RTN |
| 793 | 876 |
|
| 794 |
-@halftone_icn [ |
|
| 795 |
- aa55 aa55 aa55 aa55 ] |
|
| 877 |
+@line-hor ( x0* x1* y* color -- ) |
|
| 878 |
+ |
|
| 879 |
+ STH .Screen/y DEO2 |
|
| 880 |
+ &loop |
|
| 881 |
+ ( save ) OVR2 .Screen/x DEO2 |
|
| 882 |
+ ( draw ) DUPr STHr .Screen/color DEO |
|
| 883 |
+ ( incr ) SWP2 #0002 ADD2 SWP2 |
|
| 884 |
+ OVR2 OVR2 LTH2 ,&loop JNZ |
|
| 885 |
+ POP2 POP2 POPr |
|
| 886 |
+ |
|
| 887 |
+RTN |
|
| 888 |
+ |
|
| 889 |
+@line-ver ( x* y0* y1* color -- ) |
|
| 890 |
+ |
|
| 891 |
+ STH ROT2 .Screen/x DEO2 |
|
| 892 |
+ &loop |
|
| 893 |
+ ( save ) OVR2 .Screen/y DEO2 |
|
| 894 |
+ ( draw ) DUPr STHr .Screen/color DEO |
|
| 895 |
+ ( incr ) SWP2 #0002 ADD2 SWP2 |
|
| 896 |
+ OVR2 OVR2 LTH2 ,&loop JNZ |
|
| 897 |
+ POP2 POP2 POPr |
|
| 898 |
+ |
|
| 899 |
+RTN |
|
| 900 |
+ |
|
| 901 |
+@tool_selector 80c0 e0f0 f8e0 1000 |
|
| 902 |
+@tool_hand 2020 20b8 7c7c 3838 |
|
| 903 |
+@tool_eraser 2050 b87c 3e1c 0800 |
|
| 904 |
+@moveup_icn 0010 387c fe10 1000 |
|
| 905 |
+@movedown_icn 0010 1010 fe7c 3810 |
|
| 906 |
+@halftone_icn aa55 aa55 aa55 aa55 |
|
| 907 |
+ |
|
| 796 | 908 |
@circle_icns |
| 797 | 909 |
0038 7cfe fefe 7c38 ( full ) |
| 798 | 910 |
0038 4482 8282 4438 ( line ) |
| 799 | 911 |
@eye_icns |
| 800 | 912 |
0038 4492 2810 0000 ( open ) |
| 801 | 913 |
0000 0082 4438 0000 ( closed ) |
| 802 |
-@blank_icn [ |
|
| 914 |
+@blank_icn |
|
| 803 | 915 |
0000 0000 0000 0000 |
| 804 | 916 |
7cfe fefe fefe 7c00 |
| 805 |
-] |
|
| 806 |
-@depth_icns [ |
|
| 917 |
+@depth_icns |
|
| 807 | 918 |
00fe 8282 fe82 82fe |
| 808 | 919 |
00fe 9292 fe92 92fe |
| 809 |
-] |
|
| 810 |
-@tool_selector [ 80c0 e0f0 f8e0 1000 ] |
|
| 811 |
-@tool_hand [ 2020 20b8 7c7c 3838 ] |
|
| 812 |
-@tool_eraser [ 2050 b87c 3e1c 0800 ] |
|
| 813 |
-@moveup_icn [ 0010 387c fe10 1000 ] |
|
| 814 |
-@movedown_icn [ 0010 1010 fe7c 3810 ] |
|
| 815 |
- |
|
| 816 |
-@filepath1 [ "projects/fonts/specter8.bit 00 ] |
|
| 817 |
-@filepath2 [ "projects/pictures/cyr10x8.chr 00 ] |
|
| 818 |
-@filepath3 [ "projects/pictures/zerotwo10x10.chr 00 ] |
|
| 819 |
-@filepath4 [ "projects/fonts/katahira8.bit 00 ] |
|
| 820 |
-@filepath5 [ "projects/pictures/ako10x10.chr 00 ] |
|
| 821 |
-@filepath6 [ "projects/pictures/cyr4x4.chr 00 ] |
|
| 822 |
- |
|
| 823 |
-@font_hex ( 0-F ) |
|
| 824 |
-[ |
|
| 920 |
+@font-hex |
|
| 825 | 921 |
007c 8282 8282 827c 0030 1010 1010 1010 |
| 826 | 922 |
007c 8202 7c80 80fe 007c 8202 1c02 827c |
| 827 | 923 |
000c 1424 4484 fe04 00fe 8080 7c02 827c |
| ... | ... |
@@ -829,5 +925,12 @@ RTN |
| 829 | 925 |
007c 8282 7c82 827c 007c 8282 7e02 827c |
| 830 | 926 |
007c 8202 7e82 827e 00fc 8282 fc82 82fc |
| 831 | 927 |
007c 8280 8080 827c 00fc 8282 8282 82fc |
| 832 |
- 007c 8280 f080 827c 007c 8280 f080 8080 |
|
| 833 |
-] |
|
| 928 |
+ 007c 8280 f080 827c 007c 8280 f080 8080 |
|
| 929 |
+ |
|
| 930 |
+@filepath1 [ "projects/fonts/specter8.bit 00 ] |
|
| 931 |
+@filepath2 [ "projects/pictures/cyr10x8.chr 00 ] |
|
| 932 |
+@filepath3 [ "projects/pictures/zerotwo10x10.chr 00 ] |
|
| 933 |
+@filepath4 [ "projects/fonts/katahira8.bit 00 ] |
|
| 934 |
+@filepath5 [ "projects/pictures/ako10x10.chr 00 ] |
|
| 935 |
+@filepath6 [ "projects/pictures/logo1x1.bit 00 ] |
|
| 936 |
+ |