public int Get(int registerSelect) { switch (registerSelect) { // RS1 = 0, RS0 = 0 case 0: switch (CRA & 4) { // CRA-B4 = 1 case 4: var eventArgs = new PeripheralEventArgs(Peripheral.PRA); OnPeripheralRead.Invoke(this, eventArgs); return(eventArgs.Value); // CRA-B4 = 0 case 0: return(DDRA); } break; // RS1 = 0, RS0 = 1 case 1: return(CRA); // RS1 = 1, RS0 = 0 case 2: switch (CRB & 4) { // CRB-B4 = 1 case 4: var eventArgs = new PeripheralEventArgs(Peripheral.PRB); OnPeripheralRead.Invoke(this, eventArgs); return(eventArgs.Value); // CRB-B4 = 0 case 0: return(DDRB); } break; // RS1 = 0, RS0 = 1 case 3: return(CRB); } throw new Exception("Invalid state"); }
private void OnPeripheralRead(object sender, PeripheralEventArgs e) { e.Value = _debugConsoleAdapter.Write(); }
private void OnPeripheralWrite(object sender, PeripheralEventArgs e) { _debugConsoleAdapter.Read(e.Value & 1); }