| ... | ... |
@@ -23,14 +23,18 @@ |
| 23 | 23 |
|
| 24 | 24 |
|0100 @RESET |
| 25 | 25 |
|
| 26 |
- ,pattern =editor.addr |
|
| 27 |
- #0030 =window.x1 #0030 =window.y1 #00b0 =window.x2 #0090 =window.y2 |
|
| 26 |
+ #0030 =window.x1 #0030 =window.y1 #00a8 =window.x2 #0090 =window.y2 |
|
| 28 | 27 |
|
| 29 |
- #0040 =editor.x1 #0040 =editor.y |
|
| 28 |
+ #0040 =editor.y ( TODO: Remove ) |
|
| 30 | 29 |
|
| 31 |
- ,draw-window JSR |
|
| 30 |
+ ~window.x1 #0010 ADD2 =editor.x1 |
|
| 31 |
+ ~window.y1 #0010 ADD2 =editor.y1 |
|
| 32 |
+ |
|
| 33 |
+ ( starting addr ) |
|
| 34 |
+ ,pattern =editor.addr |
|
| 32 | 35 |
|
| 33 |
- #0040 #0040 #01 ,draw-editor JSR |
|
| 36 |
+ ,draw-window JSR |
|
| 37 |
+ ,draw-editor JSR |
|
| 34 | 38 |
|
| 35 | 39 |
BRK |
| 36 | 40 |
|
| ... | ... |
@@ -41,13 +45,13 @@ BRK |
| 41 | 45 |
,no-ctrl-up ~dev/ctrl.buttons #10 EQU JMP? POP2 |
| 42 | 46 |
~editor.addr #0001 ADD2 =editor.addr |
| 43 | 47 |
,draw-window JSR |
| 44 |
- ,redraw JSR |
|
| 48 |
+ ,draw-editor JSR |
|
| 45 | 49 |
@no-ctrl-up |
| 46 | 50 |
|
| 47 | 51 |
,no-ctrl-down ~dev/ctrl.buttons #20 EQU JMP? POP2 |
| 48 | 52 |
~editor.addr #0001 SUB2 =editor.addr |
| 49 | 53 |
,draw-window JSR |
| 50 |
- ,redraw JSR |
|
| 54 |
+ ,draw-editor JSR |
|
| 51 | 55 |
@no-ctrl-down |
| 52 | 56 |
|
| 53 | 57 |
@no-ctrl |
| ... | ... |
@@ -60,7 +64,7 @@ BRK |
| 60 | 64 |
( save ) ~editor.addr ~dev/mouse.y ~editor.y1 SUB2 #0008 DIV2 ADD2 STR |
| 61 | 65 |
|
| 62 | 66 |
,draw-window JSR |
| 63 |
- ,redraw JSR |
|
| 67 |
+ ,draw-editor JSR |
|
| 64 | 68 |
|
| 65 | 69 |
@no-click |
| 66 | 70 |
|
| ... | ... |
@@ -70,30 +74,19 @@ BRK |
| 70 | 74 |
|
| 71 | 75 |
@draw-window |
| 72 | 76 |
|
| 73 |
- #0000 #0000 ~dev/screen.width ~dev/screen.height #03 ~editor.addr ,tile-rect JSR |
|
| 74 |
- |
|
| 75 |
- ~window.x1 #0001 SUB2 ~window.y1 #0001 SUB2 ~window.x2 ~window.y2 #01 ,line-rect JSR |
|
| 76 |
- ~window.x1 ~window.y1 ~window.x2 ~window.y2 #02 ,fill-rect JSR |
|
| 77 |
- ~window.x1 ~window.y1 #04 ,window_name ,draw-label-left JSR |
|
| 77 |
+ ( desktop ) #0000 #0000 ~dev/screen.width ~dev/screen.height #03 ~editor.addr ,tile-rect JSR |
|
| 78 |
+ ( outline ) ~window.x1 #0001 SUB2 ~window.y1 #0001 SUB2 ~window.x2 ~window.y2 #01 ,line-rect JSR |
|
| 79 |
+ ( background ) ~window.x1 ~window.y1 ~window.x2 ~window.y2 #02 ,fill-rect JSR |
|
| 80 |
+ ( label ) ~window.x1 ~window.y1 #04 ,window_name ,draw-label-left JSR |
|
| 78 | 81 |
|
| 79 | 82 |
RTS |
| 80 | 83 |
|
| 81 | 84 |
@draw-editor |
| 82 | 85 |
|
| 83 |
- =color DUP2 =dev/sprite.y =editor.y1 DUP2 =dev/sprite.x =editor.x1 |
|
| 84 |
- |
|
| 85 |
- ,redraw JSR |
|
| 86 |
- |
|
| 87 |
-RTS |
|
| 88 |
- |
|
| 89 |
-@redraw |
|
| 90 |
- |
|
| 91 | 86 |
~editor.x1 =dev/sprite.x |
| 92 | 87 |
~editor.y1 =dev/sprite.y |
| 93 | 88 |
~editor.addr =dev/sprite.addr |
| 94 | 89 |
|
| 95 |
- #02 =color |
|
| 96 |
- |
|
| 97 | 90 |
#00 =pixel.y |
| 98 | 91 |
@redraw-ver |
| 99 | 92 |
#00 =pixel.x |
| ... | ... |
@@ -118,6 +111,7 @@ RTS |
| 118 | 111 |
~window.x2 #0008 SUB2 =dev/sprite.x |
| 119 | 112 |
( draw ) #01 =dev/sprite.color |
| 120 | 113 |
|
| 114 |
+ ( TODO: Make a loop.. ) |
|
| 121 | 115 |
~window.x1 #0058 ADD2 ~window.y1 #0010 ADD2 #08 ~editor.addr ,draw-byte JSR |
| 122 | 116 |
~window.x1 #0058 ADD2 ~window.y1 #0018 ADD2 #08 ~editor.addr #0001 ADD2 ,draw-byte JSR |
| 123 | 117 |
~window.x1 #0058 ADD2 ~window.y1 #0020 ADD2 #08 ~editor.addr #0002 ADD2 ,draw-byte JSR |
| ... | ... |
@@ -285,4 +279,4 @@ RTS |
| 285 | 279 |
|FF50 ;dev/mouse Mouse |
| 286 | 280 |
|
| 287 | 281 |
|FFF0 .RESET .FRAME .ERROR ( vectors ) |
| 288 |
-|FFF8 [ 0ff4 0f04 0ff4 ] ( palette ) |
|
| 289 | 282 |
\ No newline at end of file |
| 283 |
+|FFF8 [ 0fcf 0fc4 0fc4 ] ( palette ) |
|
| 290 | 284 |
\ No newline at end of file |
| ... | ... |
@@ -42,7 +42,7 @@ void op_str(Uxn *u) { Uint16 a = pop16(&u->wst); Uint8 b = pop8(&u->wst); mempok
|
| 42 | 42 |
/* Logic */ |
| 43 | 43 |
void op_and(Uxn *u) { Uint8 a = pop8(&u->wst), b = pop8(&u->wst); push8(&u->wst, b & a); }
|
| 44 | 44 |
void op_xor(Uxn *u) { Uint8 a = pop8(&u->wst), b = pop8(&u->wst); push8(&u->wst, b | a); }
|
| 45 |
-void op_rol(Uxn *u) { Uint8 a = pop8(&u->wst), b = pop8(&u->wst); push8(&u->wst, b << a); }
|
|
| 45 |
+void op_rol(Uxn *u) { Uint8 a = pop8(&u->wst), b = pop8(&u->wst); push8(&u->wst, b << (a % 8)); }
|
|
| 46 | 46 |
void op_ror(Uxn *u) { Uint8 a = pop8(&u->wst), b = pop8(&u->wst); push8(&u->wst, b >> a); }
|
| 47 | 47 |
/* Stack */ |
| 48 | 48 |
void op_pop(Uxn *u) { pop8(&u->wst); }
|
| ... | ... |
@@ -68,7 +68,7 @@ void op_ldr16(Uxn *u) { Uint16 a = pop16(&u->wst); push16(&u->wst, mempeek16(u,
|
| 68 | 68 |
void op_str16(Uxn *u) { Uint16 a = pop16(&u->wst); Uint16 b = pop16(&u->wst); mempoke16(u, a, b); }
|
| 69 | 69 |
void op_and16(Uxn *u) { Uint16 a = pop16(&u->wst), b = pop16(&u->wst); push16(&u->wst, b & a); }
|
| 70 | 70 |
void op_xor16(Uxn *u) { Uint16 a = pop16(&u->wst), b = pop16(&u->wst); push16(&u->wst, b ^ a); }
|
| 71 |
-void op_rol16(Uxn *u) { Uint16 a = pop16(&u->wst), b = pop16(&u->wst); push16(&u->wst, b << a); }
|
|
| 71 |
+void op_rol16(Uxn *u) { Uint16 a = pop16(&u->wst), b = pop16(&u->wst); push16(&u->wst, b << (a % 16)); }
|
|
| 72 | 72 |
void op_ror16(Uxn *u) { Uint16 a = pop16(&u->wst), b = pop16(&u->wst); push16(&u->wst, b >> a); }
|
| 73 | 73 |
/* Stack(16-bits) */ |
| 74 | 74 |
void op_pop16(Uxn *u) { pop16(&u->wst); }
|