changeset 57:c44170825b16

Implement lsli and lsri in assembler
author Michael Pavone <pavone@retrodev.com>
date Thu, 01 Sep 2016 21:52:48 -0700
parents fa9cf7108ab7
children bed2d84eeabe
files simple_console.txt src/asm.c
diffstat 2 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/simple_console.txt	Wed Aug 31 23:50:20 2016 -0700
+++ b/simple_console.txt	Thu Sep 01 21:52:48 2016 -0700
@@ -53,7 +53,7 @@
 B: ori
 C: xori
 D: ls[lr]i
-	MSB of AAAA determines direction
+	MSB of AAAA determines direction (0 = lsli, 1 = lsri)
 	LS 3 bits determines magnitude
 E: cmpi
 F: single reg
--- a/src/asm.c	Wed Aug 31 23:50:20 2016 -0700
+++ b/src/asm.c	Thu Sep 01 21:52:48 2016 -0700
@@ -122,6 +122,18 @@
 		}
 		return ret;
 	}
+	if (!strcmp("lsli", mnemonic) || !strcmp("lsri", mnemonic)) {
+		ret.base = LSI << 4 | SINGLE_SOURCE;
+		if (mnemonic[2] == 'r') {
+			ret.base |= 0x800;
+		}
+		ret.immed_min = 1;
+		ret.immed_max = 8;
+		ret.first_shift = 8;
+		ret.second_shift = 12;
+		ret.expected_args = 2;
+		return ret;
+	}
 	index = find_string_arr(mnemonics_single_reg, mnemonic, SETVBR+1);
 	if (index > SETVBR) {
 		ret.base = 0xFFFF;