This is a von Neumann 8-bit breadboard computer with:
- 16-bytes of RAM
- 1 memory address register
- 1 instruction register
- 1 program counter
- 2 general-purpose registers
- 1 arithmetic logic unit
- 1 flags register with 2 flags (carry and zero)
- 1 output register with 7-segment displays
- 16 microinstructions and 11 instructions (including conditional and unconditional jumps) managed by 2 EEPROMs
Control Pin |
Function |
HLT |
Halt Clock |
MI |
Memory Address Register (IN) |
RI |
RAM (IN) |
RO |
RAM (OUT) |
IO |
Instruction Register (OUT) |
II |
Instruction Register (IN) |
AI |
Register A (IN) |
AO |
Register A (OUT) |
SU |
Subtract |
EO |
Arithmetic Logic Unit (OUT) |
BI |
Register B (IN) |
OUT |
Output Register (IN) |
CE |
Program Counter (ENABLE) |
CJ |
Program Counter (JUMP) |
CO |
Progarm Counter (Out) |
FI |
Flags Register (IN) |
Instruction |
Function |
Control Sequence |
NOP |
No operation |
(CO MI) (RO II CE) |
LDA |
Load register A with contents in xxxx |
(CO MI) (RO II CE) (IO MI) (RO AI) |
ADD |
Add contents in register A and xxxx |
(CO MI) (RO II CE) (IO MI) (RO BI) (EO AI FI) |
SUB |
Subtract contents in register A and xxxx |
(CO MI) (RO II CE) (IO MI) (RO BI) (EO AI SU FI) |
STA |
Store contents in register A at xxxx |
(CO MI) (RO II CE) (IO MI) (AO RI) |
LDI |
Immediately load xxxx to register A |
(CO MI) (RO II CE) (IO MI) (IO AI) |
JMP |
Jump to program stored in xxxx |
(CO MI) (RO II CE) (IO MI) (IO CJ) |
JC |
Jump to program stored in xxxx if carry flag is set |
(CO MI) (RO II CE) (IO MI) (IO CJ)* |
JZ |
Jump to program stored in xxxx if zero flag is set |
(CO MI) (RO II CE) (IO MI) (IO CJ)* |
OUT |
Dump register A contents to output register |
(CO MI) (RO II CE) (IO MI) (AO OUT) |
HLT |
Halt clock signal |
(CO MI) (RO II CE) (IO MI) (HLT) |
![SIM-8 PROGRAMS (JULY 2024).pdf](https://github.com/junyoung-sim/8-bit/raw/main/SIM-8%20PROGRAMS%20(JULY%202024).pdf)