static private uint PortNumberToIndex(PortNumbers portNumber) { uint address = (uint)(mLowerAddress + (uint)portNumber); uint index = (address - mLowerAddress) >> 2; return(index); }
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); }
public PortDefinition(PortNumbers portNumber, int bits, bool invertedWrite) : this(portNumber, bits) { mInvertedWrite = invertedWrite; }
public PortDefinition(PortNumbers portNumber, int bits) { mPortNumber = portNumber; mBits = bits; }
public uint RequestRead(PortNumbers portNumber) { return(mPortDefinitions[PortNumberToIndex(portNumber)].Read()); }
}//RequestPortNotify public void RequestWrite(PortNumbers portNumber, uint value) { mPortDefinitions[PortNumberToIndex(portNumber)].WriteNoSideEffect(value); }
}//onMemoryAccessWrite public void RequestPortNotify(PortNumbers portNumber, ioPortNotify notify) { mPortDefinitions[PortNumberToIndex(portNumber)].Notify += notify; }//RequestPortNotify