summaryrefslogtreecommitdiff
path: root/eater_cpu/cpp/Veater_computer__main.cpp
diff options
context:
space:
mode:
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