USHORT InputNumericalHex(CHAR *szCount, UINT32 length) { USHORT cwNumChars = 0; USHORT InChar = 0; while(!((InChar == 0x0d) || (InChar == 0x0a))) { InChar = toUpper(OEMReadDebugByte()); if (InChar != OEM_DEBUG_COM_ERROR && InChar != OEM_DEBUG_READ_NODATA) { // If it's a number or a period, add it to the string. // if ((InChar >= '0' && InChar <= '9')) { if (cwNumChars < length) { szCount[cwNumChars++] = (char)InChar; OEMWriteDebugByte((BYTE)InChar); } } if ((InChar >= 'A' && InChar <= 'F')) { if (cwNumChars < length) { szCount[cwNumChars++] = (char)InChar; OEMWriteDebugByte((BYTE)InChar); } } // If it's a backspace, back up. // else if (InChar == 8) { if (cwNumChars > 0) { cwNumChars--; OEMWriteDebugByte((BYTE)InChar); } } } } // If it's a carriage return with an empty string, don't change anything. // if (cwNumChars) { szCount[cwNumChars] = '\0'; } else { szCount[0] = '\0'; } return cwNumChars; }
/***************************************************************************** * * * @func void | pOutputByte | Sends a byte out of the monitor port. * * @rdesc none * * @parm unsigned int | c | * Byte to send. * */ static void pOutputByte( unsigned char c ) { if (szSprintf) *szSprintf++ = c; else OEMWriteDebugByte(c); }
USHORT GetIPString(char *szDottedD) { USHORT InChar = 0; USHORT cwNumChars = 0; while(!((InChar == 0x0d) || (InChar == 0x0a))) { InChar = OEMReadDebugByte(); if (InChar != OEM_DEBUG_COM_ERROR && InChar != OEM_DEBUG_READ_NODATA) { // If it's a number or a period, add it to the string. // if (InChar == '.' || (InChar >= '0' && InChar <= '9')) { if (cwNumChars < 16) // IP string cannot over 15. xxx.xxx.xxx.xxx { szDottedD[cwNumChars++] = (char)InChar; OEMWriteDebugByte((BYTE)InChar); } } // If it's a backspace, back up. // else if (InChar == 8) { if (cwNumChars > 0) { cwNumChars--; OEMWriteDebugByte((BYTE)InChar); } } } } return cwNumChars; }
//------------------------------------------------------------------------------ // // Function: OEMWriteDebugString // // Output unicode string to debug serial port // VOID OEMWriteDebugString(LPWSTR string) { while (*string != L'\0') OEMWriteDebugByte((UINT8)*string++); }