From ba35470c3caa0f4b2fefb42720263993cc90d86b Mon Sep 17 00:00:00 2001 From: n loewen Date: Wed, 26 Jul 2023 15:02:21 +0100 Subject: [PATCH] Make assembler a javascript module, remove code for working over stdio --- sketches/assembler_sketch.js | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/sketches/assembler_sketch.js b/sketches/assembler_sketch.js index d51286d..e9cee51 100644 --- a/sketches/assembler_sketch.js +++ b/sketches/assembler_sketch.js @@ -1,5 +1,3 @@ -// Usage: `node assembler_sketch.js assembly.asm` - // Syntax: // ADD $01 ; comments follow a `;` // ADD $FF ; this is direct addressing @@ -7,9 +5,6 @@ // END ; END, CFC, and CHP don't require arguments // ; (a default value of 0 will be used as their operand) -const fs = require('fs'); -const filename = process.argv[2]; - const mnemonicsWithOptionalArgs = ['end', 'cfc', 'chp']; const mnemonics2opcodes = { end: { direct: 0, indirect: 0 }, @@ -32,7 +27,7 @@ function decodeMultipleInstructions(str) { output.push(decoded.op); output.push(decoded.arg); }); - return output; + return new Uint8Array(output); } function decodeInstruction(line) { @@ -80,10 +75,6 @@ function hex2num(hex) { return parseInt(hex, 16) }; // RUN IT -try { - // console.log(`Reading ${filename}`); - const inputFile_str = fs.readFileSync(filename, 'utf8'); - console.log(decodeMultipleInstructions(inputFile_str)); -} catch (err) { - console.error(err); +exports.assemble = (str) => { + return decodeMultipleInstructions(str); } \ No newline at end of file