From 31c40f9f559268177c9d4111277434f228e5cc1d Mon Sep 17 00:00:00 2001 From: lux Date: Sun, 20 Aug 2017 01:58:56 +0200 Subject: [PATCH] Add licence and readme. --- .gitignore | 2 +- README.md | 50 ++++++++++++++++++++++++++++ ram.toy => doc/examples/add_5000.toy | 0 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 README.md rename ram.toy => doc/examples/add_5000.toy (100%) diff --git a/.gitignore b/.gitignore index d10c826..57bd562 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ *.o -*.toy +/*.toy /coredump* toy_cpu diff --git a/README.md b/README.md new file mode 100644 index 0000000..daad191 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# Koopman TOY CPU Interpreter + +This is a CPU interpreter, based on the specification of Phil Koopmans paper: "Microcoded Versus Hard-wired Control".
+ +## Build + +The project can be built using `make`. + +## Usage + +
+OP_Code 0 (0000b):	   STORE<12 BIT ADDRESS>
+OP_Code 1 (0001b):	   LOAD	<12 BIT ADDRESS>
+OP_Code 2 (0010b):	   JMPZ	<12 BIT ADDRESS>
+OP_Code 3 (0011b):	   ADD	<12 BIT ADDRESS>
+OP_Code 4 (0100b):	   SUB	<12 BIT ADDRESS>
+OP_Code 5 (0101b):	   OR	<12 BIT ADDRESS>
+OP_Code 6 (0110b):	   AND	<12 BIT ADDRESS>
+OP_Code 7 (0111b):	   XOR	<12 BIT ADDRESS>
+OP_Code 8 (1000b):	   NOT	<12 BIT undefined>
+OP_Code 9 (1001b):	   INC	<12 BIT undefined>
+OP_Code 10 (1010b):	   DEC	<12 BIT undefined>
+OP_Code 11 (1011b):	   ZERO	<12 BIT undefined>
+OP_Code 12 (1100b):	   NOP	<12 BIT undefined>
+OP_Code 13 (1101b):	   NOP	<12 BIT undefined>
+OP_Code 14 (1110b):	   NOP	<12 BIT undefined>
+OP_Code 15 (1111b):	   NOP	<12 BIT undefined>
+
+
+
+BIT |15 14 13 12|11 10 9 8 7 6 5 4 3 2 1 0|
+	---------------------------------------
+	|  OP-CODE  |		ADDRESS	          |
+	---------------------------------------
+
+ +This machine has the following registers: + +* 16 BIT Instruction Register (4 BIT OP, 12 BIT Adr) +* 16 BIT Accumulator +* 12 BIT Program Counter + +Example: 0001000000001010 on RAM position 0
+0001 means: LOAD the content of ADDRESS 000000001010 into the ACCU + + +## Licence + +This program by Michael Krause is licenced under the terms of the GPLv3. + diff --git a/ram.toy b/doc/examples/add_5000.toy similarity index 100% rename from ram.toy rename to doc/examples/add_5000.toy