Esempio n. 1
0
        static private uint PortNumberToIndex(PortNumbers portNumber)
        {
            uint address = (uint)(mLowerAddress + (uint)portNumber);
            uint index   = (address - mLowerAddress) >> 2;

            return(index);
        }
Esempio n. 2
0
        private Boolean ParsePort(String input, Int32 index, Int32 length, Boolean onlyPort = false)
        {
            var start = index;

            while (index < length)
            {
                var c = input[index];

                if (c == Symbols.QuestionMark || c == Symbols.Solidus || c == Symbols.ReverseSolidus || c == Symbols.Num)
                {
                    break;
                }
                else if (c.IsDigit() || c == Symbols.Tab || c == Symbols.LineFeed || c == Symbols.CarriageReturn)
                {
                    index++;
                }
                else
                {
                    return(false);
                }
            }

            _port = SanatizePort(input, start, index - start);

            if (PortNumbers.GetDefaultPort(_scheme) == _port)
            {
                _port = String.Empty;
            }

            if (!onlyPort)
            {
                _path = String.Empty;
                return(ParsePath(input, index, length));
            }

            return(true);
        }
Esempio n. 3
0
 public PortDefinition(PortNumbers portNumber, int bits, bool invertedWrite)
     : this(portNumber, bits)
 {
     mInvertedWrite = invertedWrite;
 }
Esempio n. 4
0
 public PortDefinition(PortNumbers portNumber, int bits)
 {
     mPortNumber = portNumber;
     mBits       = bits;
 }
Esempio n. 5
0
 public uint RequestRead(PortNumbers portNumber)
 {
     return(mPortDefinitions[PortNumberToIndex(portNumber)].Read());
 }
Esempio n. 6
0
        }//RequestPortNotify

        public void RequestWrite(PortNumbers portNumber, uint value)
        {
            mPortDefinitions[PortNumberToIndex(portNumber)].WriteNoSideEffect(value);
        }
Esempio n. 7
0
        }//onMemoryAccessWrite

        public void RequestPortNotify(PortNumbers portNumber, ioPortNotify notify)
        {
            mPortDefinitions[PortNumberToIndex(portNumber)].Notify += notify;
        }//RequestPortNotify