public KimI() { UseKeypad = true; memory = new byte[65536]; Address = new int[4]; AddressTime = new int[4]; Data = new int[2]; DataTime = new int[2]; keypadRows = new int[3]; lastPhase = false; phaseCount = 0; BaseMemoryInstalled = new Boolean[8]; for (var i = 0; i < 8; i++) { BaseMemoryInstalled[i] = false; } BaseMemoryInstalled[0] = true; BaseMemoryInstalled[6] = true; BaseMemoryInstalled[7] = true; BaseRom = new Boolean[8]; for (var i = 0; i < 8; i++) { BaseRom[i] = false; } BaseRom[6] = true; BaseRom[7] = true; ExtendedMemoryInstalled = new Boolean[8]; for (var i = 0; i < 8; i++) { ExtendedMemoryInstalled[i] = false; } ExtendedRom = new Boolean[8]; for (var i = 0; i < 8; i++) { ExtendedRom[i] = false; } for (var i = 0; i < 3; i++) { keypadRows[i] = 0; } cpu = new Cpu65c02(this); cpu.Frequency = 500000; TapeDeck = new TapeDeck(cpu.Frequency); TeleType = new Teletype(cpu.Frequency); TeleType.Parity = 'N'; TeleType.DataBits = 8; TeleType.StopBits = 1; TeleType.Baud = 300; Io2 = new IoChip(cpu); Io3 = new IoChip(cpu); MemoryMapper = false; SingleStep = false; Riot1IrqMode = ' '; Riot2IrqMode = ' '; LoadConfiguration(); Io2.IrqMode = Riot1IrqMode; Io3.IrqMode = Riot2IrqMode; cpuThread = new Thread(cpu.Run); cpuThread.Start(); }
public IoChip(Cpu65c02 c) { cpu = c; OutA = 0xff; OutB = 0xff; InA = 0xff; InB = 0xff; PortADir = 0; PortBDir = 0; timerRunning = false; timerIrq = false; countExpired = false; timer = 0; }