const mos6502 = require("./src/chip/MOS6502"); const Bank = require("./src/common/bank.js"); function toHex(v){ let r = v.toString(16); return (r.length < 2) ? "0" + r : r; } function printBytes(b, acc){ var out = ""; for (let i=0; i < b.length; i++){ if (i % acc === 0 && out !== ""){ console.log(out); out = "" } else { out += toHex(b[i]) + " "; } } console.log(out); } var asm = new mos6502.Assembler(); var cpu = new mos6502.CPU(); cpu.memory = new Bank(65536); cpu.memory.clear(); var tick = cpu.clk(); var src = "SEC\n"; src += "CLV\n"; src += "CLD\n"; src += "CLI\n"; src += "LDA #$00\n"; src += "SBC #$01\n"; src += "CLC\n"; src += "ADC #$01"; var res = asm.compile(src).result(); printBytes(res, 16); cpu.memory.load(0, res); var page = []; for (let i = 0; i < 256; i++){ cpu.memory.address = i; page.push(cpu.memory.byte); } printBytes(page, 16); cpu.reset(); //console.log(cpu.PC); //return; tick(); tick(); tick(); tick(); tick(); tick(); tick(); tick(); tick(); tick(); console.log("A: " + cpu.A); tick(); tick(); console.log("A: " + cpu.A); tick(); tick(); tick(); tick(); console.log("A: " + cpu.A);