public TestSystemWithTwoDevices(bool simulateSlowMemoryAndDevices) : base(simulateSlowMemoryAndDevices) { // Initialize components clock = new __Clock(3500000L); cpu = new __Z80CPU(); if (!simulateSlowMemoryAndDevices) { memory = new _TestMemory(65536, 0); device1 = new _TestDevice(1, 10, 0); device2 = new _TestDevice(2, 20, 0); } else { memory = new _TestMemory(65536, 2); device1 = new _TestDevice(1, 10, 2); device2 = new _TestDevice(2, 20, 2); } // Connect buses cpu.Address.ConnectTo(addressBus); cpu.Data.ConnectTo(dataBus); memory.Address.ConnectTo(addressBus); memory.Data.ConnectTo(dataBus); device1.Address.ConnectTo(addressBus); device1.Data.ConnectTo(dataBus); device2.Address.ConnectTo(addressBus); device2.Data.ConnectTo(dataBus); // Connect individual PINs ((__Clock)clock).ConnectTo(cpu, (TestMemory)memory, device1, device2); ((__Z80CPU)cpu).ConnectTo(clock, (TestMemory)memory, device1, device2); ((_TestMemory)memory).ConnectTo(clock, cpu); ((_TestDevice)device1).ConnectTo(clock, cpu); ((_TestDevice)device2).ConnectTo(clock, cpu); }
public TestSystemWithTestSignals( int[][] BUSREQstartAfterTStatesAndActivateDuringTStates, int[][] INTstartAfterTStatesAndActivateDuringTStates, int[][] NMIstartAfterTStatesAndActivateDuringTStates, int[][] RESETstartAfterTStatesAndActivateDuringTStates, int[][] WAITstartAfterTStatesAndActivateDuringTStates ) { // Initialize components clock = new __Clock(3500000L); cpu = new __Z80CPU(); memory = new _TestMemory(65536, 0); BUSREQSignal = new _TestSignal(BUSREQstartAfterTStatesAndActivateDuringTStates); INTSignal = new _TestSignal(INTstartAfterTStatesAndActivateDuringTStates); NMISignal = new _TestSignal(NMIstartAfterTStatesAndActivateDuringTStates); RESETSignal = new _TestSignal(RESETstartAfterTStatesAndActivateDuringTStates); WAITSignal = new _TestSignal(WAITstartAfterTStatesAndActivateDuringTStates); // Connect buses cpu.Address.ConnectTo(addressBus); cpu.Data.ConnectTo(dataBus); memory.Address.ConnectTo(addressBus); memory.Data.ConnectTo(dataBus); // Connect individual PINs ((__Clock)clock).ConnectTo(cpu, (TestMemory)memory, BUSREQSignal, INTSignal, NMISignal, RESETSignal, WAITSignal); ((__Z80CPU)cpu).ConnectTo(clock, (TestMemory)memory, BUSREQSignal, INTSignal, NMISignal, RESETSignal, WAITSignal); ((_TestMemory)memory).ConnectTo(clock, cpu); }
public TestSystemWithInterruptingDevice(byte portAddress, byte initialValue, int waitCycles, int[][] startInterruptAfterTStatesAndDuringTStates, byte valueForDataBusAfterInterrupt) { // Initialize components clock = new __Clock(3500000L); cpu = new __Z80CPU(); memory = new _TestMemory(65536, 0); device = new _TestInterruptingDevice(portAddress, initialValue, waitCycles, startInterruptAfterTStatesAndDuringTStates, valueForDataBusAfterInterrupt); // Connect buses cpu.Address.ConnectTo(addressBus); cpu.Data.ConnectTo(dataBus); memory.Address.ConnectTo(addressBus); memory.Data.ConnectTo(dataBus); device.Address.ConnectTo(addressBus); device.Data.ConnectTo(dataBus); // Connect individual PINs ((__Clock)clock).ConnectTo(cpu, (TestMemory)memory, device); ((__Z80CPU)cpu).ConnectTo(clock, (TestMemory)memory, device); ((_TestMemory)memory).ConnectTo(clock, cpu); ((_TestInterruptingDevice)device).ConnectTo(clock, cpu); }