Browse code

Renamed ROL for SHL

neauoire authored on 16/03/2021 16:33:44
Showing 7 changed files
... ...
@@ -46,7 +46,7 @@ Program p;
46 46
 
47 47
 char ops[][4] = {
48 48
 	"BRK", "NOP", "LIT", "LDR", "STR", "---", "JMP", "JSR", 
49
-	"EQU", "NEQ", "GTH", "LTH", "AND", "XOR", "ROL", "ROR",
49
+	"EQU", "NEQ", "GTH", "LTH", "AND", "XOR", "SHL", "SHR",
50 50
 	"POP", "DUP", "SWP", "OVR", "ROT", "---", "CLN", "WSR",
51 51
 	"ADD", "SUB", "MUL", "DIV", "---", "---", "---", "---"
52 52
 };
... ...
@@ -20,5 +20,5 @@ cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werr
20 20
 # cc uxn.c emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -o bin/emulator
21 21
 
22 22
 # run
23
-./bin/assembler projects/software/left.usm bin/boot.rom
23
+./bin/assembler projects/software/nasu.usm bin/boot.rom
24 24
 ./bin/emulator bin/boot.rom
... ...
@@ -35,13 +35,13 @@ BRK
35 35
 
36 36
 	( detect movement )
37 37
 	~Controller.buttons #f0 AND
38
-		DUP #04 ROR #01 AND #01 NEQ ,$no-up JMC2 
38
+		DUP #04 SHR #01 AND #01 NEQ ,$no-up JMC2 
39 39
 			( move ) ~Sprite.y DECR2 =Sprite.y ,up_icn =Sprite.addr $no-up
40
-		DUP #05 ROR #01 AND #01 NEQ ,$no-down JMC2 
40
+		DUP #05 SHR #01 AND #01 NEQ ,$no-down JMC2 
41 41
 			( move ) ~Sprite.y INCR2 =Sprite.y ,down_icn =Sprite.addr $no-down
42
-		DUP #06 ROR #01 AND #01 NEQ ,$no-left JMC2 
42
+		DUP #06 SHR #01 AND #01 NEQ ,$no-left JMC2 
43 43
 			( move ) ~Sprite.x DECR2 =Sprite.x ,left_icn =Sprite.addr $no-left
44
-		DUP #07 ROR #01 AND #01 NEQ ,$no-right JMC2 
44
+		DUP #07 SHR #01 AND #01 NEQ ,$no-right JMC2 
45 45
 			( move ) ~Sprite.x INCR2 =Sprite.x ,right_icn =Sprite.addr $no-right
46 46
 	POP
47 47
 
... ...
@@ -46,7 +46,7 @@ BRK
46 46
 	,no-click ~Mouse.state #00 EQU JMP2?
47 47
 
48 48
 		( load ) ~editor.addr ~Mouse.y ~editor.y1 SUB2 #0008 DIV2 ADD2 LDR
49
-		( mask ) #01 #07 ~Mouse.x ~editor.x1 SUB2 #0008 DIV2 SWP POP SUB ROL 
49
+		( mask ) #01 #07 ~Mouse.x ~editor.x1 SUB2 #0008 DIV2 SWP POP SUB SHL 
50 50
 		XOR
51 51
 		( save ) ~editor.addr ~Mouse.y ~editor.y1 SUB2 #0008 DIV2 ADD2 STR
52 52
 
... ...
@@ -81,7 +81,7 @@ RTN
81 81
 		$hor
82 82
 			( get bit )
83 83
 			,cell0_icn #00
84
-			~editor.addr #00 ~pixel.y ADD2 LDR #07 ~pixel.x SUB ROR #01 AND ( get bit )
84
+			~editor.addr #00 ~pixel.y ADD2 LDR #07 ~pixel.x SUB SHR #01 AND ( get bit )
85 85
 			#0008 MUL2 ADD2 =Sprite.addr ( add *8 )
86 86
 			( draw ) #08 =Sprite.color
87 87
 			( incr ) ~Sprite.x #0008 ADD2 =Sprite.x
... ...
@@ -74,37 +74,37 @@ BRK
74 74
 		@no-ctrl-right
75 75
 		( alt )
76 76
 		,no-alt ~Controller #0f AND #02 NEQ JMP2?
77
-			,no-aup ~Controller #04 ROR #01 NEQ JMP2?
77
+			,no-aup ~Controller #04 SHR #01 NEQ JMP2?
78 78
 				,find-wordstart JSR2 =selection.to
79 79
 				,clamp-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
80 80
 			@no-aup
81
-			,no-adown ~Controller #04 ROR #02 NEQ JMP2?
81
+			,no-adown ~Controller #04 SHR #02 NEQ JMP2?
82 82
 				,find-wordend JSR2 =selection.to
83 83
 				,clamp-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
84 84
 			@no-adown
85
-			,no-aleft ~Controller #04 ROR #04 NEQ JMP2?
85
+			,no-aleft ~Controller #04 SHR #04 NEQ JMP2?
86 86
 				~selection.to #0001 SUB2 =selection.to
87 87
 				,clamp-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
88 88
 			@no-aleft
89
-			,no-aright ~Controller #04 ROR #08 NEQ JMP2?
89
+			,no-aright ~Controller #04 SHR #08 NEQ JMP2?
90 90
 				~selection.to #0001 ADD2 =selection.to
91 91
 				,clamp-selection JSR2 ,redraw JSR2 ,ctrl-end JMP2
92 92
 			@no-aright
93 93
 		@no-alt
94 94
 		( ctrl )
95 95
 		,no-ctrl ~Controller #0f AND #01 NEQ JMP2?
96
-			,no-cup ~Controller #04 ROR #01 NEQ JMP2?
96
+			,no-cup ~Controller #04 SHR #01 NEQ JMP2?
97 97
 				#0004 ,scroll-up JSR2
98 98
 				,redraw JSR2 ,ctrl-end JMP2
99 99
 			@no-cup
100
-			,no-cdown ~Controller #04 ROR #02 NEQ JMP2?
100
+			,no-cdown ~Controller #04 SHR #02 NEQ JMP2?
101 101
 				#0004 ,scroll-down JSR2
102 102
 				,redraw JSR2 ,ctrl-end JMP2
103 103
 			@no-cdown
104
-			,no-cleft ~Controller #04 ROR #04 NEQ JMP2?
104
+			,no-cleft ~Controller #04 SHR #04 NEQ JMP2?
105 105
 				,goto-linestart JSR2 ,redraw JSR2 ,ctrl-end JMP2
106 106
 			@no-cleft
107
-			,no-cright ~Controller #04 ROR #08 NEQ JMP2?
107
+			,no-cright ~Controller #04 SHR #08 NEQ JMP2?
108 108
 				,goto-lineend JSR2 ,redraw JSR2 ,ctrl-end JMP2
109 109
 			@no-cright
110 110
 		@no-ctrl
... ...
@@ -464,13 +464,13 @@ RTN
464 464
 @draw-short ( short )
465 465
 
466 466
 	=addr
467
-	,font_hex #00 ,addr LDR #f0 AND #04 ROR #08 MUL ADD2 =Sprite.addr
467
+	,font_hex #00 ,addr LDR #f0 AND #04 SHR #08 MUL ADD2 =Sprite.addr
468 468
 	( draw ) #0e =Sprite.color
469 469
 	~Sprite.x #0008 ADD2 =Sprite.x
470 470
 	,font_hex #00 ,addr LDR #0f AND #08 MUL ADD2 =Sprite.addr
471 471
 	( draw ) #0e =Sprite.color
472 472
 	~Sprite.x #0008 ADD2 =Sprite.x
473
-	,font_hex #00 ,addr #0001 ADD2 LDR #f0 AND #04 ROR #08 MUL ADD2 =Sprite.addr
473
+	,font_hex #00 ,addr #0001 ADD2 LDR #f0 AND #04 SHR #08 MUL ADD2 =Sprite.addr
474 474
 	( draw ) #0e =Sprite.color
475 475
 	~Sprite.x #0008 ADD2 =Sprite.x
476 476
 	,font_hex #00 ,addr #0001 ADD2 LDR #0f AND #08 MUL ADD2 =Sprite.addr
... ...
@@ -552,7 +552,7 @@ RTN
552 552
 			#0000 =Sprite.x
553 553
 			~scroll.y ~Sprite.y #0008 DIV2 ADD2 DUP2 SWP POP =k 
554 554
 			~position.y EQU2 #0c MUL =l
555
-			,font_hex #00 ~k #f0 AND #04 ROR #08 MUL ADD2 =Sprite.addr
555
+			,font_hex #00 ~k #f0 AND #04 SHR #08 MUL ADD2 =Sprite.addr
556 556
 			#02 ~l ADD =Sprite.color
557 557
 			#0008 =Sprite.x
558 558
 			,font_hex #00 ~k #0f AND #08 MUL ADD2 =Sprite.addr
... ...
@@ -157,7 +157,7 @@ BRK
157 157
 				,redraw JSR2 ,click-end JMP2
158 158
 			@no-erase-mode
159 159
 			( load ) ~addr ~pos.y #0008 DIV2 ADD2 LDR
160
-			( mask ) #01 #07 ~pos.x #0008 DIV2 SWP POP SUB ROL 
160
+			( mask ) #01 #07 ~pos.x #0008 DIV2 SWP POP SUB SHL 
161 161
 			XOR
162 162
 			( save ) ~addr ~pos.y #0008 DIV2 ADD2 STR
163 163
 			,redraw JSR2 ,click-end JMP2
... ...
@@ -354,7 +354,7 @@ RTN
354 354
 	#00 =i
355 355
 	$bytes
356 356
 		~tileview.x #0088 ADD2 =SPRT.x
357
-		,font_hex #00 ~tileview.addr #00 ~i ADD2 LDR #f0 AND #04 ROR #08 MUL ADD2 =SPRT.addr
357
+		,font_hex #00 ~tileview.addr #00 ~i ADD2 LDR #f0 AND #04 SHR #08 MUL ADD2 =SPRT.addr
358 358
 		( draw ) #02 =SPRT.color
359 359
 		~SPRT.x #0008 ADD2 =SPRT.x
360 360
 		,font_hex #00 ~tileview.addr #00 ~i ADD2 LDR #0f AND #08 MUL ADD2 =SPRT.addr
... ...
@@ -399,7 +399,7 @@ RTN
399 399
 		$hor
400 400
 			( get bit )
401 401
 			,blank_icn #00
402
-			~tileview.addr #00 ~pt.y ADD2 LDR #07 ~pt.x SUB ROR #01 AND ( get bit )
402
+			~tileview.addr #00 ~pt.y ADD2 LDR #07 ~pt.x SUB SHR #01 AND ( get bit )
403 403
 			#0008 MUL2 ADD2 =SPRT.addr ( add *8 )
404 404
 			( draw ) #01 =SPRT.color
405 405
 			( incr ) ~SPRT.x #0008 ADD2 =SPRT.x
... ...
@@ -440,13 +440,13 @@ RTN
440 440
 @draw-short ( short )
441 441
 
442 442
 	=addr
443
-	,font_hex #00 ,addr LDR #f0 AND #04 ROR #08 MUL ADD2 =SPRT.addr
443
+	,font_hex #00 ,addr LDR #f0 AND #04 SHR #08 MUL ADD2 =SPRT.addr
444 444
 	( draw ) #02 =SPRT.color
445 445
 	~SPRT.x #0008 ADD2 =SPRT.x
446 446
 	,font_hex #00 ,addr LDR #0f AND #08 MUL ADD2 =SPRT.addr
447 447
 	( draw ) #02 =SPRT.color
448 448
 	~SPRT.x #0008 ADD2 =SPRT.x
449
-	,font_hex #00 ,addr #0001 ADD2 LDR #f0 AND #04 ROR #08 MUL ADD2 =SPRT.addr
449
+	,font_hex #00 ,addr #0001 ADD2 LDR #f0 AND #04 SHR #08 MUL ADD2 =SPRT.addr
450 450
 	( draw ) #02 =SPRT.color
451 451
 	~SPRT.x #0008 ADD2 =SPRT.x
452 452
 	,font_hex #00 ,addr #0001 ADD2 LDR #0f AND #08 MUL ADD2 =SPRT.addr
... ...
@@ -40,8 +40,8 @@ void op_str(Uxn *u) { Uint16 a = pop16(u->src); Uint8 b = pop8(u->src); mempoke8
40 40
 /* Logic */
41 41
 void op_and(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b & a); }
42 42
 void op_xor(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b | a); }
43
-void op_rol(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b << (a % 8)); }
44
-void op_ror(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b >> (a % 8)); }
43
+void op_shl(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b << (a % 8)); }
44
+void op_shr(Uxn *u) { Uint8 a = pop8(u->src), b = pop8(u->src); push8(u->src, b >> (a % 8)); }
45 45
 /* Stack */
46 46
 void op_pop(Uxn *u) { pop8(u->src); }
47 47
 void op_dup(Uxn *u) { push8(u->src, peek8(u->src, 0)); }
... ...
@@ -68,8 +68,8 @@ void op_ldr16(Uxn *u) { Uint16 a = pop16(u->src); push16(u->src, mempeek16(u, a)
68 68
 void op_str16(Uxn *u) { Uint16 a = pop16(u->src); Uint16 b = pop16(u->src); mempoke16(u, a, b); }
69 69
 void op_and16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push16(u->src, b & a); }
70 70
 void op_xor16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push16(u->src, b ^ a); }
71
-void op_rol16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push16(u->src, b << (a % 16)); }
72
-void op_ror16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push16(u->src, b >> (a % 16)); }
71
+void op_shl16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push16(u->src, b << (a % 16)); }
72
+void op_shr16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push16(u->src, b >> (a % 16)); }
73 73
 /* Stack(16-bits) */
74 74
 void op_pop16(Uxn *u) { pop16(u->src); }
75 75
 void op_dup16(Uxn *u) { push16(u->src, peek16(u->src, 0)); }
... ...
@@ -90,12 +90,12 @@ void op_lth16(Uxn *u) { Uint16 a = pop16(u->src), b = pop16(u->src); push8(u->sr
90 90
 
91 91
 void (*ops[])(Uxn *u) = {
92 92
 	op_brk, op_nop, op_lit, op_ldr, op_str, op_nop, op_jmp, op_jsr, 
93
-	op_equ, op_neq, op_gth, op_lth, op_and, op_xor, op_rol, op_ror, 
93
+	op_equ, op_neq, op_gth, op_lth, op_and, op_xor, op_shl, op_shr, 
94 94
 	op_pop, op_dup, op_swp, op_ovr, op_rot, op_nop, op_cln, op_sth, 
95 95
 	op_add, op_sub, op_mul, op_div, op_nop, op_nop, op_nop, op_nop,
96 96
 	/* 16-bit */
97 97
 	op_brk,   op_nop16, op_lit16, op_ldr16, op_str16, op_nop,   op_jmp16, op_jsr16, 
98
-	op_equ16, op_neq16, op_gth16, op_lth16, op_and16, op_xor16, op_rol16, op_ror16, 
98
+	op_equ16, op_neq16, op_gth16, op_lth16, op_and16, op_xor16, op_shl16, op_shr16, 
99 99
 	op_pop16, op_dup16, op_swp16, op_ovr16, op_rot16, op_nop,   op_cln16, op_sth16, 
100 100
 	op_add16, op_sub16, op_mul16, op_div16, op_nop,   op_nop,   op_nop,   op_nop
101 101
 };