diff options
author | Dylan Muller <md.node.0@gmail.com> | 2021-02-25 15:19:09 +0200 |
---|---|---|
committer | Dylan Muller <dylan.muller@corigine.com> | 2023-09-03 22:44:04 +0200 |
commit | 6c912dd0a750f897f6271ccd65a26f6f87996c03 (patch) | |
tree | f511088c4435daa546c26e7f008370fd9c481d40 /main.ts | |
download | z80emu-6c912dd0a750f897f6271ccd65a26f6f87996c03.tar.gz z80emu-6c912dd0a750f897f6271ccd65a26f6f87996c03.zip |
z80emu: core: Initial commit
Initial commit of z80 emulator.
Diffstat (limited to 'main.ts')
-rw-r--r-- | main.ts | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -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]); +} |