summaryrefslogtreecommitdiff
path: root/main.ts
diff options
context:
space:
mode:
authorDylan Muller <md.node.0@gmail.com>2021-02-25 15:19:09 +0200
committerDylan Muller <dylan.muller@corigine.com>2023-09-03 22:44:04 +0200
commit6c912dd0a750f897f6271ccd65a26f6f87996c03 (patch)
treef511088c4435daa546c26e7f008370fd9c481d40 /main.ts
downloadz80emu-6c912dd0a750f897f6271ccd65a26f6f87996c03.tar.gz
z80emu-6c912dd0a750f897f6271ccd65a26f6f87996c03.zip
z80emu: core: Initial commit
Initial commit of z80 emulator.
Diffstat (limited to 'main.ts')
-rw-r--r--main.ts43
1 files changed, 43 insertions, 0 deletions
diff --git a/main.ts b/main.ts
new file mode 100644
index 0000000..28ba3a5
--- /dev/null
+++ b/main.ts
@@ -0,0 +1,43 @@
+// Copyright (C)
+// Author: Dylan Muller
+
+import {fstat, readFile, readFileSync, existsSync, exists } from "fs";
+import {Z80, Instruction} from "./z80"
+
+function printUsage(){
+ console.log("usage: node main.js [in]");
+}
+
+if(process.argv.length < 3){
+ printUsage();
+ process.exit();
+}
+
+if(!existsSync(process.argv[2])){
+ console.log("?")
+ process.exit();
+}
+
+let bytecode: Buffer = readFileSync(process.argv[2]);
+let z80 : Z80 = new Z80(bytecode);
+z80.rf.HL = 0xFE00;
+z80.rf.BC = 0x00FF;
+
+console.log("init");
+z80.dump();
+for(; z80.rf.PC < bytecode.length;){
+ let dasm: Instruction = z80.decode(z80.rf.PC);
+ console.log("");
+ console.log(z80.format16(z80.rf.PC, 4) + "\t" + dasm.syntax);
+ console.log("");
+ z80.step();
+ z80.dump();
+}
+
+console.log("");
+console.log("Memory Dump");
+console.log("");
+
+for(let i = 0; i < z80.mem.length;i++){
+ z80.print8(i.toString(16), z80.mem[i]);
+}