From 6c912dd0a750f897f6271ccd65a26f6f87996c03 Mon Sep 17 00:00:00 2001 From: Dylan Muller Date: Thu, 25 Feb 2021 15:19:09 +0200 Subject: z80emu: core: Initial commit Initial commit of z80 emulator. --- main.ts | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 main.ts (limited to 'main.ts') 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]); +} -- cgit v1.2.3-70-g09d2