public Z80Disassembler(byte[] memory) { Memory = memory; Registers = new Z80RegisterFile(); ControlLines = new Z80CPULines(); InterruptsBeingServiced = new Stack <ushort>(); }
public Z80CPU(Z80CPULines lines) { Registers = new Z80RegisterFile(); ControlLines = lines; InterruptsBeingServiced = new Stack <ushort>(); ControlLines.AttachCpu(this); }
public Z80System() { DataBus = new DataBus(); AddressBus = new AddressBus(); Z80Clock = new PassthroughClock(); CpuLines = new Z80CPULines { AddressBus = AddressBus, DataBus = DataBus, SystemClock = Z80Clock, BUSACK = new TristateWire(), BUSREQ = new TristateWire(TristateWireState.PullUp), HALT = new TristateWire(), INT = new TristateWire(TristateWireState.PullUp), IORQ = new TristateWire(), M1 = new TristateWire(), MREQ = new TristateWire(), NMI = new TristateWire(TristateWireState.PullUp), RD = new TristateWire(), RESET = new TristateWire(TristateWireState.PullUp), RFSH = new TristateWire(), WAIT = new TristateWire(TristateWireState.PullUp), WR = new TristateWire() }; var memoryConnects = new MemoryLines { AddressBus = AddressBus, Clock = Z80Clock, DataBus = DataBus, MREQ = CpuLines.MREQ, RD = CpuLines.RD, WAIT = CpuLines.WAIT, WR = CpuLines.WR }; Memory = new RandomAccessMemory(0, 0x10000, memoryConnects); Cpu = new Z80CPU(CpuLines); }