#!/usr/bin/env node // Run: `./run-cpu.js run assembly.asm` // Debug: `./run-cpu.js debug assembly.asm` // TODO: allow running pre-compiled machine code. // // i'm thinking of an interface like this... // // $ ./run-cpu -mc code.bin // $ ./run-cpu code.asm // $ ./run-cpu --debug code.asm const fs = require('fs'); const computer = require('./simulator.js'); const assembler = require('./assembler.js'); const { logRunningHeader, logMemory } = require('./logging.js'); const mode = process.argv[2]; // console.log(`Reading ${filename}`); const filename = process.argv[3]; const inputFile_str = fs.readFileSync(filename, 'utf8'); let machineCode; if (mode === "debug") { logRunningHeader(); machineCode = assembler.assemble(inputFile_str); computer.runProgram(machineCode, true); } else { machineCode = assembler.assemble(inputFile_str); computer.runProgram(machineCode, false); }