Esempio n. 1
0
        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");
        }
Esempio n. 2
0
 private void OnPeripheralRead(object sender, PeripheralEventArgs e)
 {
     e.Value = _debugConsoleAdapter.Write();
 }
Esempio n. 3
0
 private void OnPeripheralWrite(object sender, PeripheralEventArgs e)
 {
     _debugConsoleAdapter.Read(e.Value & 1);
 }