Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*===========================================================================*/ /* Copyright (c) 1987 - 1988, Future Soft Engineering, Inc. */ /* Houston, Texas */ /*===========================================================================*/
#define NOLSTRING TRUE /* jtf win3 mod */
#include <windows.h>
#include "port1632.h"
#include "dcrc.h"
#include "dynacomm.h"
#include "task.h"
BREAKCOND breakcondition_rdModem;
/*---------------------------------------------------------------------------*/ /* rdModem() - Read characters from system modem into local IT buffer. [scf] */ /*---------------------------------------------------------------------------*/
VOID rdModem(BOOL rFlag) { INT i; INT yieldCount; MSG msg;
if(modemBytes()) { if(answerMode) { theChar = getMdmChar(TRUE); /* mbbx 1.06A: ics new xlate */ return; }
later = FALSE; hideTermCursor(); yieldCount = 0; getPort();
repeat { theChar = (the8Char = getMdmChar(TRUE)); /* mbbx 1.06A: ics new xlate... */
if(rFlag) { modemInp(the8Char, TRUE); /* mbbx: make this optional ??? */
if(mdmResult[0] < MDMRESLEN) mdmResult[++(*mdmResult)] = theChar; if(theChar != LF) { if(mdmResult[0] == 1) mdmResult[0] = 0; /* throw it away!!! */ } else if(mdmResult[0] > 2) mdmValid = TRUE; later = TRUE; } else { if(xferWaitEcho) if(xferTxtType == XFRLINE) /* (jtfx) */ { if(theChar == xferLinStr[xferWaitEcho]) if(xferWaitEcho == xferLinStr[0]) xferWaitEcho = FALSE; else xferWaitEcho++; } else if((xferTxtType == XFRCHAR) && (theChar == xferCharEcho)) /* (jtfx) */ xferWaitEcho = FALSE;
modemInp(the8Char, TRUE); /* mbbx 1.10 */ if(theChar == CR) if(trmParams.inpCRLF) /* mbbx 1.10: CUA */ modemInp(LF, TRUE);
if(!modemBytes()) later = TRUE;
if(++yieldCount == YIELDCHARS) { termCleanUp(); /* mbbx: per mac version */ yieldCount = 0; if(yield(&msg, (HWND) NULL)) /* mbbx */ later = TRUE; } } } until(later);
activSelect = FALSE; /* rjs bugs 020 */ termCleanUp(); showTermCursor(); releasePort(); } }
|