Beispiel #1
0
 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();
 }
Beispiel #2
0
 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;
 }