diff options
| -rw-r--r-- | eater_cpu/cpp/Veater_computer__main.cpp | 8 | ||||
| -rw-r--r-- | eater_cpu/eater_decoder.sv | 1 | ||||
| -rw-r--r-- | eater_cpu/eater_types.sv | 5 | ||||
| -rw-r--r-- | eater_cpu/readme.txt | 5 |
4 files changed, 12 insertions, 7 deletions
diff --git a/eater_cpu/cpp/Veater_computer__main.cpp b/eater_cpu/cpp/Veater_computer__main.cpp index 7afa4d0..b986029 100644 --- a/eater_cpu/cpp/Veater_computer__main.cpp +++ b/eater_cpu/cpp/Veater_computer__main.cpp @@ -15,13 +15,15 @@ void load_program(const std::unique_ptr<Veater_computer> &topp) { // LDA 14 - topp->eater_computer->RAM->r_datastore[0] = 0x0e; + topp->eater_computer->RAM->r_datastore[0] = 0x1e; // ADD 15 - topp->eater_computer->RAM->r_datastore[1] = 0x1f; + topp->eater_computer->RAM->r_datastore[1] = 0x2f; // OUT topp->eater_computer->RAM->r_datastore[2] = 0xe0; + // NOP + topp->eater_computer->RAM->r_datastore[3] = 0x00; // HALT - topp->eater_computer->RAM->r_datastore[3] = 0xf0; + topp->eater_computer->RAM->r_datastore[4] = 0xf0; // Data @ 14 topp->eater_computer->RAM->r_datastore[14] = 14; // Data @ 15 diff --git a/eater_cpu/eater_decoder.sv b/eater_cpu/eater_decoder.sv index ba7cf16..5bb8feb 100644 --- a/eater_cpu/eater_decoder.sv +++ b/eater_cpu/eater_decoder.sv @@ -25,6 +25,7 @@ end function CpuState insdep_state; case (actual_instruction) + NOP: insdep_state = PC_to_MAR; LDA: insdep_state = LDA_INS_to_MAR; ADD: insdep_state = ADD_INS_to_MAR; OUT: insdep_state = OUT_A_to_OUT; diff --git a/eater_cpu/eater_types.sv b/eater_cpu/eater_types.sv index 9c8945c..256f6ca 100644 --- a/eater_cpu/eater_types.sv +++ b/eater_cpu/eater_types.sv @@ -40,8 +40,9 @@ typedef enum logic[7:0] { } CpuState; typedef enum logic[3:0] { - LDA = 'b0000, - ADD = 'b0001, + NOP = 'b0000, + LDA = 'b0001, + ADD = 'b0010, OUT = 'b1110, HALT_op = 'b1111 } eater_instruction; diff --git a/eater_cpu/readme.txt b/eater_cpu/readme.txt index 44fe1b1..a003415 100644 --- a/eater_cpu/readme.txt +++ b/eater_cpu/readme.txt @@ -28,8 +28,9 @@ instruction set -LDA <memaddress> 0b_0000_<memaddress> Load memory > A -ADD <memaddress> 0b_0001_<memaddress> "Add memory" + A -> A +NOP ____________ 0b_0000_xxxx No-op +LDA <memaddress> 0b_0001_<memaddress> Load memory > A +ADD <memaddress> 0b_0010_<memaddress> "Add memory" + A -> A OUT ____________ 0b_1110_xxxx Output A -> OUT HLT ____________ 0b_1111_xxxx Sets halt flag --- |
