Browse code

Fixed issue with shift left

neauoire authored on 03/03/2021 05:35:48
Showing 2 changed files
... ...
@@ -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); }