| ... | ... |
@@ -36,8 +36,10 @@ |
| 36 | 36 |
( variables ) |
| 37 | 37 |
|
| 38 | 38 |
;center { x 2 y 2 }
|
| 39 |
-;toolbar { x1 2 y1 2 x2 2 y2 2 }
|
|
| 40 |
-;cursor { x 2 y 2 x0 2 y0 2 size 1 patt 1 drag 1 mirror 1 oper 2 }
|
|
| 39 |
+;toolpane { x1 2 y1 2 x2 2 y2 2 }
|
|
| 40 |
+;pattpane { x1 2 y1 2 x2 2 y2 2 }
|
|
| 41 |
+;sizepane { x1 2 y1 2 x2 2 y2 2 }
|
|
| 42 |
+;cursor { x 2 y 2 x0 2 y0 2 tool 1 size 1 patt 1 drag 1 mirror 1 oper 2 }
|
|
| 41 | 43 |
;zoom { active 1 x 2 y 2 }
|
| 42 | 44 |
;rect { x1 2 y1 2 x2 2 y2 2 }
|
| 43 | 45 |
;line { x0 2 y0 2 x 2 y 2 sx 2 sy 2 dx 2 dy 2 e1 2 e2 2 }
|
| ... | ... |
@@ -68,6 +70,8 @@ |
| 68 | 70 |
|
| 69 | 71 |
( default brush ) |
| 70 | 72 |
#04 =cursor.size |
| 73 |
+ #00 =cursor.patt |
|
| 74 |
+ #00 =cursor.tool |
|
| 71 | 75 |
|
| 72 | 76 |
( load file ) |
| 73 | 77 |
,filepath ,load-file JSR2 |
| ... | ... |
@@ -75,7 +79,6 @@ |
| 75 | 79 |
( find screen center ) |
| 76 | 80 |
~Screen.width #0002 DIV2 =center.x |
| 77 | 81 |
~Screen.height #0002 DIV2 =center.y |
| 78 |
- #0010 =toolbar.x1 #0010 =toolbar.y1 |
|
| 79 | 82 |
|
| 80 | 83 |
( center canvas ) |
| 81 | 84 |
~center.x ~canvas.w 8* 2/ SUB2 =canvas.x1 |
| ... | ... |
@@ -84,10 +87,22 @@ |
| 84 | 87 |
,draw-background JSR2 |
| 85 | 88 |
,fit-canvas JSR2 |
| 86 | 89 |
|
| 87 |
- ( fit toolbar ) |
|
| 88 |
- ~toolbar.x1 #0010 ADD2 =toolbar.x2 |
|
| 89 |
- ~toolbar.y1 #0040 ADD2 =toolbar.y2 |
|
| 90 |
- ,draw-toolbar JSR2 |
|
| 90 |
+ ( setup panes ) |
|
| 91 |
+ #0010 =toolpane.x1 #0010 =toolpane.y1 |
|
| 92 |
+ #0010 =pattpane.x1 ~Screen.height #0018 SUB2 =pattpane.y1 |
|
| 93 |
+ ~Screen.width #0050 SUB2 =sizepane.x1 #0010 =sizepane.y1 |
|
| 94 |
+ |
|
| 95 |
+ ~toolpane.x1 #0020 ADD2 =toolpane.x2 |
|
| 96 |
+ ~toolpane.y1 #0008 ADD2 =toolpane.y2 |
|
| 97 |
+ ,draw-toolpane JSR2 |
|
| 98 |
+ |
|
| 99 |
+ ~pattpane.x1 #0040 ADD2 =pattpane.x2 |
|
| 100 |
+ ~pattpane.y1 #0008 ADD2 =pattpane.y2 |
|
| 101 |
+ ,draw-pattpane JSR2 |
|
| 102 |
+ |
|
| 103 |
+ ~sizepane.x1 #0040 ADD2 =sizepane.x2 |
|
| 104 |
+ ~sizepane.y1 #0008 ADD2 =sizepane.y2 |
|
| 105 |
+ ,draw-sizepane JSR2 |
|
| 91 | 106 |
|
| 92 | 107 |
BRK |
| 93 | 108 |
|
| ... | ... |
@@ -101,7 +116,9 @@ BRK |
| 101 | 116 |
~canvas.x1 -- ~canvas.y1 -- ~canvas.x2 ~canvas.y2 #10 ,line-rect JSR2 |
| 102 | 117 |
,draw-background JSR2 |
| 103 | 118 |
,fit-canvas JSR2 |
| 104 |
- ,draw-toolbar JSR2 |
|
| 119 |
+ ,draw-toolpane JSR2 |
|
| 120 |
+ ,draw-pattpane JSR2 |
|
| 121 |
+ ,draw-sizepane JSR2 |
|
| 105 | 122 |
#00 =cursor.drag |
| 106 | 123 |
$no-release |
| 107 | 124 |
|
| ... | ... |
@@ -125,43 +142,55 @@ BRK |
| 125 | 142 |
,$touch-end JMP2 |
| 126 | 143 |
$no-drag |
| 127 | 144 |
|
| 128 |
- ( in toolbar ) |
|
| 129 |
- ,$no-touch-toolbar ~Mouse.x CLN2r ~toolbar.x1 GTH2 STH2r ~toolbar.x2 LTH2 #0101 NEQ2 JMP2? |
|
| 130 |
- ,$no-touch-toolbar ~Mouse.y CLN2r ~toolbar.y1 GTH2 STH2r ~toolbar.y2 LTH2 #0101 NEQ2 JMP2? |
|
| 145 |
+ ( in sizepane ) |
|
| 146 |
+ ,$no-touch-sizepane ~Mouse.x CLN2r ~sizepane.x1 GTH2 STH2r ~sizepane.x2 LTH2 #0101 NEQ2 JMP2? |
|
| 147 |
+ ,$no-touch-sizepane ~Mouse.y CLN2r ~sizepane.y1 GTH2 STH2r ~sizepane.y2 LTH2 #0101 NEQ2 JMP2? |
|
| 131 | 148 |
( release ) #00 =Mouse.state |
| 132 |
- ,$no-touch-size ~Mouse.x ~toolbar.x1 SUB2 8/ #0000 NEQ2 JMP2? |
|
| 133 |
- ~Mouse.y ~toolbar.y1 SUB2 8/ SWP POP =cursor.size |
|
| 134 |
- ( draw ) ,draw-toolbar JSR2 |
|
| 135 |
- ,$touch-end JMP2 |
|
| 136 |
- $no-touch-size |
|
| 137 |
- ,$no-touch-brush ~Mouse.x ~toolbar.x1 SUB2 8/ #0001 NEQ2 JMP2? |
|
| 138 |
- ~Mouse.y ~toolbar.y1 SUB2 8/ SWP POP =cursor.patt |
|
| 139 |
- ( draw ) ,draw-toolbar JSR2 |
|
| 140 |
- ,$touch-end JMP2 |
|
| 141 |
- $no-touch-brush |
|
| 142 |
- $no-touch-toolbar |
|
| 149 |
+ #01 =cursor.tool |
|
| 150 |
+ ~Mouse.x ~sizepane.x1 SUB2 8/ SWP POP =cursor.size |
|
| 151 |
+ ( draw ) ,draw-sizepane JSR2 |
|
| 152 |
+ ( draw ) ,draw-toolpane JSR2 |
|
| 153 |
+ ,$touch-end JMP2 |
|
| 154 |
+ $no-touch-sizepane |
|
| 155 |
+ |
|
| 156 |
+ ( in pattpane ) |
|
| 157 |
+ ,$no-touch-pattpane ~Mouse.x CLN2r ~pattpane.x1 GTH2 STH2r ~pattpane.x2 LTH2 #0101 NEQ2 JMP2? |
|
| 158 |
+ ,$no-touch-pattpane ~Mouse.y CLN2r ~pattpane.y1 GTH2 STH2r ~pattpane.y2 LTH2 #0101 NEQ2 JMP2? |
|
| 159 |
+ ( release ) #00 =Mouse.state |
|
| 160 |
+ ~Mouse.x ~pattpane.x1 SUB2 8/ SWP POP =cursor.patt |
|
| 161 |
+ ( draw ) ,draw-pattpane JSR2 |
|
| 162 |
+ ,$touch-end JMP2 |
|
| 163 |
+ $no-touch-pattpane |
|
| 164 |
+ |
|
| 165 |
+ ( in toolpane ) |
|
| 166 |
+ ,$no-touch-toolpane ~Mouse.x CLN2r ~toolpane.x1 GTH2 STH2r ~toolpane.x2 LTH2 #0101 NEQ2 JMP2? |
|
| 167 |
+ ,$no-touch-toolpane ~Mouse.y CLN2r ~toolpane.y1 GTH2 STH2r ~toolpane.y2 LTH2 #0101 NEQ2 JMP2? |
|
| 168 |
+ ( release ) #00 =Mouse.state |
|
| 169 |
+ ~Mouse.x ~toolpane.x1 SUB2 8/ SWP POP =cursor.tool |
|
| 170 |
+ ( draw ) ,draw-toolpane JSR2 |
|
| 171 |
+ ,$touch-end JMP2 |
|
| 172 |
+ $no-touch-toolpane |
|
| 143 | 173 |
|
| 144 | 174 |
( in canvas ) |
| 145 | 175 |
,$no-touch-canvas ~Mouse.x CLN2r ~canvas.x1 GTS2 STH2r ~canvas.x2 LTS2 #0101 NEQ2 JMP2? |
| 146 | 176 |
,$no-touch-canvas ~Mouse.y CLN2r ~canvas.y1 GTS2 STH2r ~canvas.y2 LTS2 #0101 NEQ2 JMP2? |
| 147 | 177 |
|
| 148 | 178 |
( set cursor operation ) |
| 149 |
- ,add-pixel =cursor.oper |
|
| 150 |
- ,$no-oper ~Mouse.state #01 EQU JMP2? |
|
| 151 |
- ,remove-pixel =cursor.oper |
|
| 152 |
- $no-oper |
|
| 153 |
- |
|
| 154 |
- ( paint line ) |
|
| 155 |
- ~cursor.x0 ~canvas.x1 SUB2 ~cursor.y0 ~canvas.y1 SUB2 ~Mouse.x ~canvas.x1 SUB2 ~Mouse.y ~canvas.y1 SUB2 #01 ,paint-line JSR2 |
|
| 179 |
+ ,add-pixel ,$no-oper ~Mouse.state #01 EQU JMP2? POP2 ,remove-pixel $no-oper =cursor.oper |
|
| 156 | 180 |
|
| 157 |
- ( paint fill ) |
|
| 158 |
- ~Mouse.x ~canvas.x1 SUB2 ~Mouse.y ~canvas.y1 SUB2 ,paint JSR2 |
|
| 181 |
+ ,$no-touch-pen ~cursor.tool #00 NEQ JMP2? |
|
| 182 |
+ ~cursor.x0 ~canvas.x1 SUB2 ~cursor.y0 ~canvas.y1 SUB2 ~Mouse.x ~canvas.x1 SUB2 ~Mouse.y ~canvas.y1 SUB2 #01 ,paint-line JSR2 |
|
| 183 |
+ ,$touch-end JMP2 |
|
| 184 |
+ $no-touch-pen |
|
| 159 | 185 |
|
| 160 |
- ,$no-mirror-mode ~cursor.mirror #00 EQU JMP2? |
|
| 161 |
- ~Mouse.x ~canvas.x1 SUB2 ~canvas.w 8* SWP2 SUB2 ~Mouse.y ~canvas.y1 SUB2 ,paint JSR2 |
|
| 162 |
- $no-mirror-mode |
|
| 163 |
- ,$touch-end JMP2 |
|
| 186 |
+ ,$no-touch-brush ~cursor.tool #01 NEQ JMP2? |
|
| 187 |
+ ~Mouse.x ~canvas.x1 SUB2 ~Mouse.y ~canvas.y1 SUB2 ,paint JSR2 |
|
| 188 |
+ ,$touch-end JMP2 |
|
| 189 |
+ $no-touch-brush |
|
| 164 | 190 |
|
| 191 |
+ ( unknown tool ) |
|
| 192 |
+ #aa =Console.byte |
|
| 193 |
+ |
|
| 165 | 194 |
$no-touch-canvas |
| 166 | 195 |
|
| 167 | 196 |
( background interface ) |
| ... | ... |
@@ -213,7 +242,7 @@ BRK |
| 213 | 242 |
( mirror ) ~cursor.mirror #00 EQU =cursor.mirror $no-mkey |
| 214 | 243 |
DUP |
| 215 | 244 |
DUP #30 GTH SWP #39 LTH #0101 NEQ2 ,$no-numkey ROT JMP2? |
| 216 |
- ( size ) ~Keys #31 SUB =cursor.size ,draw-toolbar JSR2 $no-numkey |
|
| 245 |
+ ( size ) ~Keys #31 SUB =cursor.size ,draw-sizepane JSR2 $no-numkey |
|
| 217 | 246 |
POP |
| 218 | 247 |
|
| 219 | 248 |
( release ) #00 =Keys |
| ... | ... |
@@ -258,6 +287,37 @@ RTN |
| 258 | 287 |
|
| 259 | 288 |
RTN |
| 260 | 289 |
|
| 290 |
+@paint-line ( x1 y1 x2 y2 color ) |
|
| 291 |
+ |
|
| 292 |
+ ( load ) =color =line.y0 =line.x0 =line.y =line.x |
|
| 293 |
+ ~line.x0 ~line.x SUB2 ABS2 =line.dx |
|
| 294 |
+ ~line.y0 ~line.y SUB2 ABS2 #0000 SWP2 SUB2 =line.dy |
|
| 295 |
+ #ffff #00 ~line.x ~line.x0 LTS2 #0002 MUL2 ADD2 =line.sx |
|
| 296 |
+ #ffff #00 ~line.y ~line.y0 LTS2 #0002 MUL2 ADD2 =line.sy |
|
| 297 |
+ ~line.dx ~line.dy ADD2 =line.e1 |
|
| 298 |
+ $loop |
|
| 299 |
+ ( paint ) ~line.x ~line.y ~cursor.oper JSR2 |
|
| 300 |
+ ,$end ~line.x ~line.x0 EQU2 ~line.y ~line.y0 EQU2 #0101 EQU2 JMP2? |
|
| 301 |
+ ~line.e1 #0002 MUL2 =line.e2 |
|
| 302 |
+ ,$skipy ~line.e2 ~line.dy LTS2 JMP2? |
|
| 303 |
+ ~line.e1 ~line.dy ADD2 =line.e1 |
|
| 304 |
+ ~line.x ~line.sx ADD2 =line.x |
|
| 305 |
+ $skipy |
|
| 306 |
+ ,$skipx ~line.e2 ~line.dx GTS2 JMP2? |
|
| 307 |
+ ~line.e1 ~line.dx ADD2 =line.e1 |
|
| 308 |
+ ~line.y ~line.sy ADD2 =line.y |
|
| 309 |
+ $skipx |
|
| 310 |
+ ,$loop JMP2 |
|
| 311 |
+ |
|
| 312 |
+ $end |
|
| 313 |
+ |
|
| 314 |
+ ,draw-canvas JSR2 |
|
| 315 |
+ ,draw-toolpane JSR2 |
|
| 316 |
+ ,draw-pattpane JSR2 |
|
| 317 |
+ ,draw-sizepane JSR2 |
|
| 318 |
+ |
|
| 319 |
+RTN |
|
| 320 |
+ |
|
| 261 | 321 |
@paint ( x y ) |
| 262 | 322 |
|
| 263 | 323 |
#0003 SUB2 =pt0.y #0003 SUB2 =pt0.x ( cursor offset ) |
| ... | ... |
@@ -290,7 +350,9 @@ RTN |
| 290 | 350 |
,$ver ~px.y #08 LTH JMP2? |
| 291 | 351 |
|
| 292 | 352 |
,draw-canvas JSR2 |
| 293 |
- ,draw-toolbar JSR2 |
|
| 353 |
+ ,draw-toolpane JSR2 |
|
| 354 |
+ ,draw-pattpane JSR2 |
|
| 355 |
+ ,draw-sizepane JSR2 |
|
| 294 | 356 |
|
| 295 | 357 |
RTN |
| 296 | 358 |
|
| ... | ... |
@@ -379,7 +441,9 @@ RTN |
| 379 | 441 |
|
| 380 | 442 |
,draw-background JSR2 |
| 381 | 443 |
,draw-canvas JSR2 |
| 382 |
- ,draw-toolbar JSR2 |
|
| 444 |
+ ,draw-toolpane JSR2 |
|
| 445 |
+ ,draw-pattpane JSR2 |
|
| 446 |
+ ,draw-sizepane JSR2 |
|
| 383 | 447 |
|
| 384 | 448 |
RTN |
| 385 | 449 |
|
| ... | ... |
@@ -446,13 +510,14 @@ RTN |
| 446 | 510 |
~Mouse.x =cursor.x |
| 447 | 511 |
~Mouse.y =cursor.y |
| 448 | 512 |
|
| 449 |
- ( draw new cursor ) |
|
| 513 |
+ ( draw size cursor ) |
|
| 514 |
+ ,$outside-canvas ~cursor.tool #01 NEQ JMP2? |
|
| 450 | 515 |
,$outside-canvas ~Mouse.x CLN2r ~canvas.x1 GTH2 STH2r ~canvas.x2 LTH2 #0101 NEQ2 JMP2? |
| 451 | 516 |
,$outside-canvas ~Mouse.y CLN2r ~canvas.y1 GTH2 STH2r ~canvas.y2 LTH2 #0101 NEQ2 JMP2? |
| 452 |
- ( do not draw size in toolbar ) |
|
| 517 |
+ ( do not draw size in toolpane ) |
|
| 453 | 518 |
,$outside-canvas |
| 454 |
- ~Mouse.x CLN2r ~toolbar.x1 GTH2 STH2r ~toolbar.x2 LTH2 #0101 EQU2 |
|
| 455 |
- ~Mouse.y CLN2r ~toolbar.y1 GTH2 STH2r ~toolbar.y2 LTH2 #0101 EQU2 |
|
| 519 |
+ ~Mouse.x CLN2r ~toolpane.x1 GTH2 STH2r ~toolpane.x2 LTH2 #0101 EQU2 |
|
| 520 |
+ ~Mouse.y CLN2r ~toolpane.y1 GTH2 STH2r ~toolpane.y2 LTH2 #0101 EQU2 |
|
| 456 | 521 |
#0101 EQU2 JMP2? |
| 457 | 522 |
( do not draw size when holding alt ) |
| 458 | 523 |
,$outside-canvas ~Controller #02 EQU JMP2? |
| ... | ... |
@@ -471,34 +536,54 @@ RTN |
| 471 | 536 |
|
| 472 | 537 |
RTN |
| 473 | 538 |
|
| 474 |
-@draw-toolbar |
|
| 539 |
+@draw-toolpane |
|
| 475 | 540 |
|
| 476 |
- ~toolbar.x1 -- ~toolbar.y1 -- ~toolbar.x2 ~toolbar.y2 #00 ,line-rect JSR2 |
|
| 477 |
- ~toolbar.x1 #0002 SUB2 ~toolbar.y1 #0002 SUB2 ~toolbar.x2 ~toolbar.y2 #01 ,line-rect JSR2 |
|
| 541 |
+ ~toolpane.x1 -- ~toolpane.y1 -- ~toolpane.x2 ~toolpane.y2 #00 ,line-rect JSR2 |
|
| 542 |
+ ~toolpane.x1 #0002 SUB2 ~toolpane.y1 #0002 SUB2 ~toolpane.x2 ~toolpane.y2 #01 ,line-rect JSR2 |
|
| 478 | 543 |
|
| 479 |
- ~toolbar.x1 =Sprite.x |
|
| 480 |
- ~toolbar.y1 =Sprite.y |
|
| 481 |
- ,size_icn =Sprite.addr |
|
| 544 |
+ ~toolpane.x1 =Sprite.x |
|
| 545 |
+ ~toolpane.y1 =Sprite.y |
|
| 546 |
+ ,tool_icn =Sprite.addr |
|
| 547 |
+ |
|
| 548 |
+ $tools |
|
| 549 |
+ ( draw ) #01 ~Sprite.x ~pattpane.x1 SUB2 8/ SWP POP ~cursor.tool EQU #02 MUL ADD =Sprite.color |
|
| 550 |
+ ( incr ) ~Sprite.x 8+ =Sprite.x |
|
| 551 |
+ ( incr ) ~Sprite.addr 8+ =Sprite.addr |
|
| 552 |
+ ,$tools ~Sprite.x ~toolpane.x2 LTH2 JMP2? |
|
| 482 | 553 |
|
| 483 |
- ( draw brush sizes ) |
|
| 554 |
+RTN |
|
| 484 | 555 |
|
| 485 |
- $sizes |
|
| 486 |
- ( draw ) #01 ~Sprite.y ~toolbar.y1 SUB2 8/ SWP POP ~cursor.size EQU #02 MUL ADD =Sprite.color |
|
| 487 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
| 556 |
+@draw-pattpane |
|
| 557 |
+ |
|
| 558 |
+ ~pattpane.x1 -- ~pattpane.y1 -- ~pattpane.x2 ~pattpane.y2 #00 ,line-rect JSR2 |
|
| 559 |
+ ~pattpane.x1 #0002 SUB2 ~pattpane.y1 #0002 SUB2 ~pattpane.x2 ~pattpane.y2 #01 ,line-rect JSR2 |
|
| 560 |
+ |
|
| 561 |
+ ~pattpane.x1 =Sprite.x |
|
| 562 |
+ ~pattpane.y1 =Sprite.y |
|
| 563 |
+ ,patt_icn =Sprite.addr |
|
| 564 |
+ |
|
| 565 |
+ $patterns |
|
| 566 |
+ ( draw ) #01 ~Sprite.x ~pattpane.x1 SUB2 8/ SWP POP ~cursor.patt EQU #02 MUL ADD =Sprite.color |
|
| 567 |
+ ( incr ) ~Sprite.x 8+ =Sprite.x |
|
| 488 | 568 |
( incr ) ~Sprite.addr 8+ =Sprite.addr |
| 489 |
- ,$sizes ~Sprite.y ~toolbar.y1 #0040 ADD2 LTH2 JMP2? |
|
| 569 |
+ ,$patterns ~Sprite.x ~pattpane.x2 LTH2 JMP2? |
|
| 570 |
+ |
|
| 571 |
+RTN |
|
| 572 |
+ |
|
| 573 |
+@draw-sizepane |
|
| 490 | 574 |
|
| 491 |
- ( draw brush patterns ) |
|
| 575 |
+ ~sizepane.x1 -- ~sizepane.y1 -- ~sizepane.x2 ~sizepane.y2 #00 ,line-rect JSR2 |
|
| 576 |
+ ~sizepane.x1 #0002 SUB2 ~sizepane.y1 #0002 SUB2 ~sizepane.x2 ~sizepane.y2 #01 ,line-rect JSR2 |
|
| 492 | 577 |
|
| 493 |
- ~toolbar.x1 8+ =Sprite.x |
|
| 494 |
- ~toolbar.y1 =Sprite.y |
|
| 495 |
- ,pattern_icn =Sprite.addr |
|
| 578 |
+ ~sizepane.x1 =Sprite.x |
|
| 579 |
+ ~sizepane.y1 =Sprite.y |
|
| 580 |
+ ,size_icn =Sprite.addr |
|
| 496 | 581 |
|
| 497 | 582 |
$patterns |
| 498 |
- ( draw ) #01 ~Sprite.y ~toolbar.y1 SUB2 8/ SWP POP ~cursor.patt EQU #02 MUL ADD =Sprite.color |
|
| 499 |
- ( incr ) ~Sprite.y 8+ =Sprite.y |
|
| 583 |
+ ( draw ) #01 ~Sprite.x ~sizepane.x1 SUB2 8/ SWP POP ~cursor.size EQU #02 MUL ADD =Sprite.color |
|
| 584 |
+ ( incr ) ~Sprite.x 8+ =Sprite.x |
|
| 500 | 585 |
( incr ) ~Sprite.addr 8+ =Sprite.addr |
| 501 |
- ,$patterns ~Sprite.y ~toolbar.y1 #0040 ADD2 LTH2 JMP2? |
|
| 586 |
+ ,$patterns ~Sprite.x ~sizepane.x2 LTH2 JMP2? |
|
| 502 | 587 |
|
| 503 | 588 |
RTN |
| 504 | 589 |
|
| ... | ... |
@@ -553,32 +638,6 @@ RTN |
| 553 | 638 |
|
| 554 | 639 |
( Generics ) |
| 555 | 640 |
|
| 556 |
-@paint-line ( x1 y1 x2 y2 color ) |
|
| 557 |
- |
|
| 558 |
- ( load ) =color =line.y0 =line.x0 =line.y =line.x |
|
| 559 |
- ~line.x0 ~line.x SUB2 ABS2 =line.dx |
|
| 560 |
- ~line.y0 ~line.y SUB2 ABS2 #0000 SWP2 SUB2 =line.dy |
|
| 561 |
- #ffff #00 ~line.x ~line.x0 LTS2 #0002 MUL2 ADD2 =line.sx |
|
| 562 |
- #ffff #00 ~line.y ~line.y0 LTS2 #0002 MUL2 ADD2 =line.sy |
|
| 563 |
- ~line.dx ~line.dy ADD2 =line.e1 |
|
| 564 |
- $loop |
|
| 565 |
- ( paint ) ~line.x ~line.y ~cursor.oper JSR2 |
|
| 566 |
- ,$end ~line.x ~line.x0 EQU2 ~line.y ~line.y0 EQU2 #0101 EQU2 JMP2? |
|
| 567 |
- ~line.e1 #0002 MUL2 =line.e2 |
|
| 568 |
- ,$skipy ~line.e2 ~line.dy LTS2 JMP2? |
|
| 569 |
- ~line.e1 ~line.dy ADD2 =line.e1 |
|
| 570 |
- ~line.x ~line.sx ADD2 =line.x |
|
| 571 |
- $skipy |
|
| 572 |
- ,$skipx ~line.e2 ~line.dx GTS2 JMP2? |
|
| 573 |
- ~line.e1 ~line.dx ADD2 =line.e1 |
|
| 574 |
- ~line.y ~line.sy ADD2 =line.y |
|
| 575 |
- $skipx |
|
| 576 |
- ,$loop JMP2 |
|
| 577 |
- |
|
| 578 |
- $end |
|
| 579 |
- |
|
| 580 |
-RTN |
|
| 581 |
- |
|
| 582 | 641 |
@line-rect ( x1 y1 x2 y2 color ) |
| 583 | 642 |
|
| 584 | 643 |
( load ) =color =rect.y2 =rect.x2 DUP2 =Screen.y =rect.y1 DUP2 =Screen.x =rect.x1 |
| ... | ... |
@@ -620,8 +679,8 @@ RTN |
| 620 | 679 |
[ 387c fefe fe7c 3800 ] |
| 621 | 680 |
[ 7cfe fefe fefe 7c00 ] |
| 622 | 681 |
|
| 623 |
-@pattern_icn |
|
| 624 |
- [ fe82 baba ba82 fe00 ] |
|
| 682 |
+@patt_icn |
|
| 683 |
+ [ fefe fefe fefe fe00 ] |
|
| 625 | 684 |
[ fed6 aad6 aad6 fe00 ] |
| 626 | 685 |
[ fe92 82d6 8292 fe00 ] |
| 627 | 686 |
[ fe82 92aa 9282 fe00 ] |
| ... | ... |
@@ -630,6 +689,17 @@ RTN |
| 630 | 689 |
[ feaa aaaa aaaa fe00 ] |
| 631 | 690 |
[ fe82 fe82 fe82 fe00 ] |
| 632 | 691 |
|
| 692 |
+@tool_icn |
|
| 693 |
+ [ c0e0 5028 140a 0400 ] |
|
| 694 |
+ [ e0d0 a844 2212 0c00 ] |
|
| 695 |
+ [ c0b8 4848 7804 0200 ] |
|
| 696 |
+ [ 44ba 4444 44ba 4400 ] |
|
| 697 |
+ [ 3844 8282 8244 3800 ] |
|
| 698 |
+ [ fe82 8282 8282 fe00 ] |
|
| 699 |
+ [ 80c0 e0f0 f8e0 1000 ] |
|
| 700 |
+ [ 0202 0438 4080 8000 ] |
|
| 701 |
+ [ 0204 0810 2040 8000 ] |
|
| 702 |
+ |
|
| 633 | 703 |
@brush_view |
| 634 | 704 |
[ 0000 0010 0000 0000 ] |
| 635 | 705 |
[ 0000 1028 1000 0000 ] |
| ... | ... |
@@ -409,6 +409,14 @@ audio_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1) |
| 409 | 409 |
return b1; |
| 410 | 410 |
} |
| 411 | 411 |
|
| 412 |
+Uint8 |
|
| 413 |
+midi_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1) |
|
| 414 |
+{
|
|
| 415 |
+ (void)u; |
|
| 416 |
+ printf("%04x - %02x,%02x\n", ptr, b0, b1);
|
|
| 417 |
+ return b1; |
|
| 418 |
+} |
|
| 419 |
+ |
|
| 412 | 420 |
Uint8 |
| 413 | 421 |
system_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1) |
| 414 | 422 |
{
|
| ... | ... |
@@ -487,13 +495,13 @@ main(int argc, char **argv) |
| 487 | 495 |
devmouse = portuxn(&u, "mouse", ppnil); |
| 488 | 496 |
portuxn(&u, "file", file_poke); |
| 489 | 497 |
portuxn(&u, "audio", audio_poke); |
| 490 |
- portuxn(&u, "empty", ppnil); |
|
| 491 |
- portuxn(&u, "empty", ppnil); |
|
| 492 |
- portuxn(&u, "empty", ppnil); |
|
| 493 |
- portuxn(&u, "empty", ppnil); |
|
| 494 |
- portuxn(&u, "empty", ppnil); |
|
| 495 |
- portuxn(&u, "empty", ppnil); |
|
| 496 |
- portuxn(&u, "empty", ppnil); |
|
| 498 |
+ portuxn(&u, "midi", ppnil); |
|
| 499 |
+ portuxn(&u, "---", ppnil); |
|
| 500 |
+ portuxn(&u, "---", ppnil); |
|
| 501 |
+ portuxn(&u, "---", ppnil); |
|
| 502 |
+ portuxn(&u, "---", ppnil); |
|
| 503 |
+ portuxn(&u, "---", ppnil); |
|
| 504 |
+ portuxn(&u, "---", ppnil); |
|
| 497 | 505 |
portuxn(&u, "system", system_poke); |
| 498 | 506 |
|
| 499 | 507 |
/* Write screen size to dev/screen */ |