summaryrefslogtreecommitdiff
path: root/eater_cpu/cpp/Veater_computer__main.cpp
diff options
context:
space:
mode:
authoruvok2026-01-22 19:19:44 +0100
committeruvok2026-01-22 19:19:44 +0100
commit32dab1dcf0f70af7e987a4532724d6e055533764 (patch)
tree810090f0563874d5ea26c4a56eeba0150cc277ca /eater_cpu/cpp/Veater_computer__main.cpp
parent0ae15275d34c55859d0a7b55acab132852fc7b71 (diff)
Put instructions into std::vector
Diffstat (limited to 'eater_cpu/cpp/Veater_computer__main.cpp')
-rw-r--r--eater_cpu/cpp/Veater_computer__main.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/eater_cpu/cpp/Veater_computer__main.cpp b/eater_cpu/cpp/Veater_computer__main.cpp
index b986029..c415454 100644
--- a/eater_cpu/cpp/Veater_computer__main.cpp
+++ b/eater_cpu/cpp/Veater_computer__main.cpp
@@ -10,20 +10,30 @@
#include "verilated_fst_c.h"
#include "simpc_ui.h"
+#include <algorithm>
+#include <vector>
//======================
void load_program(const std::unique_ptr<Veater_computer> &topp) {
- // LDA 14
- topp->eater_computer->RAM->r_datastore[0] = 0x1e;
- // ADD 15
- 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[4] = 0xf0;
+ std::vector<uint8_t> instructions
+ //
+ {// LDA 14
+ 0x1e,
+ // ADD 15
+ 0x2f,
+ // SUB 13
+ 0x3d,
+ // OUT
+ 0xe0,
+ // NOP
+ 0x00,
+ // HALT
+ 0xf0};
+ std::copy(instructions.begin(), instructions.end(),
+ &topp->eater_computer->RAM->r_datastore[0]);
+ // Data @ 13
+ topp->eater_computer->RAM->r_datastore[13] = 1;
// Data @ 14
topp->eater_computer->RAM->r_datastore[14] = 14;
// Data @ 15