Add licence and readme.
This commit is contained in:
parent
2831b26d99
commit
31c40f9f55
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,4 @@
|
||||
*.o
|
||||
*.toy
|
||||
/*.toy
|
||||
/coredump*
|
||||
toy_cpu
|
||||
|
50
README.md
Normal file
50
README.md
Normal file
@ -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".<br>
|
||||
|
||||
## Build
|
||||
|
||||
The project can be built using `make`.
|
||||
|
||||
## Usage
|
||||
|
||||
<pre>
|
||||
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 |
|
||||
---------------------------------------
|
||||
</pre>
|
||||
|
||||
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 <br>
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user