/*===========================================================================*/ /* Copyright (c) 1987 - 1990, Future Soft Engineering, Inc. */ /* Houston, Texas */ /*===========================================================================*/ #define NOGDICAPMASKS TRUE #define NOVIRTUALKEYCODES TRUE #define NOICONS TRUE #define NOKEYSTATES TRUE #define NOSYSCOMMANDS TRUE #define NOATOM TRUE #define NOCLIPBOARD TRUE #define NODRAWTEXT TRUE #define NOMB TRUE #define NOMINMAX TRUE #define NOSCROLL TRUE #define NOHELP TRUE #define NOPROFILER TRUE #define NODEFERWINDOWPOS TRUE #define NOPEN TRUE #define NO_TASK_DEFINES TRUE #define NOLSTRING TRUE #define WIN31 #define USECOMM #include #include #include "dcrc.h" #include "dynacomm.h" #include "network.h" #include "video.h" #include "connect.h" /**************************************************************************/ /* */ /* initConnectors */ /* */ /**************************************************************************/ BOOL initConnectors(BOOL bInit) { LPCONNECTORS lpConnectors; /* slc nova 031 */ if(bInit) /* we are initializing stuff */ { ghConnectors = GlobalAlloc(GHND | GMEM_ZEROINIT, (DWORD) sizeof(CONNECTORS)); if(ghConnectors == NULL) return(FALSE); /* slc nova 031 */ ghCCB = GlobalAlloc(GHND | GMEM_ZEROINIT, (DWORD)sizeof(CONNECTOR_CONTROL_BLOCK)); /* the lpConnectors struct not really used by DynaComm at this time */ /* let's go ahead and allocate room for one CCB */ lpConnectors = (LPCONNECTORS) GlobalLock(ghConnectors); lpConnectors->hCCBArray = ghCCB; if(lpConnectors->hCCBArray == NULL) { GlobalUnlock(ghConnectors); GlobalFree(ghConnectors); return(FALSE); } lpConnectors->lpCCB[0] = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(lpConnectors->hCCBArray); GlobalUnlock(ghConnectors); } else { /* we are unloading this stuff */ GlobalFree(ghCCB); /* slc nova 031 */ GlobalFree(ghConnectors); /* slc nova 031 */ } return(TRUE); } /**************************************************************************/ /* */ /* addConnectorList */ /* */ /**************************************************************************/ VOID addConnectorList(HWND hDlg, WORD wId) /* slc nova 031 */ { HANDLE theHandle; OFSTRUCT ofDummy; if (MOpenFile((LPSTR)"LANMAN.DLL", (LPOFSTRUCT)&ofDummy, OF_EXIST) != -1) SendDlgItemMessage(hDlg, wId, LB_INSERTSTRING, -1, (LPARAM)"LANMAN"); } /**************************************************************************/ /* */ /* DLL_ConnectConnector seh nova 005 */ /* */ /**************************************************************************/ WORD DLL_ConnectConnector(HANDLE hCCB, BOOL bShow) /* slc nova 031 seh nova 005 */ { FARPROC lpfnGetType; LPCONNECTOR_CONTROL_BLOCK lpCCB; WORD wResult = 0; if(hCCB == NULL) /* slc nova 028 */ return(0); if((lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB)) == NULL) return(0); if((lpfnGetType = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_CONNECTCONNECTOR))) != NULL) { wResult = ((WORD)(*lpfnGetType)(dlgGetFocus(), lpCCB, (BOOL)bShow)); } GlobalUnlock(hCCB); return(wResult); } /**************************************************************************/ /* */ /* DLL_DisconnectConnector seh nova 005 */ /* */ /**************************************************************************/ WORD DLL_DisconnectConnector(HANDLE hCCB) { FARPROC lpfnGetType; LPCONNECTOR_CONTROL_BLOCK lpCCB; WORD wResult = 0; if(hCCB == NULL) return(0); if((lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB)) == NULL) return(0); if((lpfnGetType = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_DISCONNECTCONNECTOR))) != NULL) { /* wResult = ((WORD)(*lpfnGetType)(dlgGetFocus(), lpCCB)); */ } GlobalUnlock(hCCB); return(wResult); } /**************************************************************************/ /* */ /* DLL_modemSendBreak */ /* */ /**************************************************************************/ WORD DLL_modemSendBreak(HANDLE hCCB, INT nTimes) { LPCONNECTOR_CONTROL_BLOCK lpCCB; FARPROC lpfnCommandConnector; WORD wResult = 0; if(hCCB == NULL) return(0); if((lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB)) == NULL) return(0); if((lpfnCommandConnector = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_COMMANDCONNECTOR))) != NULL) { } GlobalUnlock(hCCB); return(wResult); } /**************************************************************************/ /* */ /* DLL_ReadConnector */ /* */ /**************************************************************************/ WORD DLL_ReadConnector(HANDLE hCCB) /* slc nova 031 */ { LPCONNECTOR_CONTROL_BLOCK lpCCB; FARPROC lpfnRead; WORD wResult = 0; if(hCCB == NULL) /* slc nova 028 */ return(0); if((lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB)) == NULL) return(0); if((lpfnRead = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_READCONNECTOR))) != NULL) { wResult = (WORD)(*lpfnRead)(lpCCB); } GlobalUnlock(hCCB); return(wResult); } /**************************************************************************/ /* */ /* DLL_ConnectBytes */ /* */ /**************************************************************************/ WORD DLL_ConnectBytes(HANDLE hCCB) /* slc nova 031 */ { if(hCCB == NULL) { serCount = 0; return(FALSE); } return(DLL_ReadConnector(hCCB)); } /**************************************************************************/ /* */ /* DLL_WriteConnector */ /* */ /**************************************************************************/ WORD DLL_WriteConnector(HANDLE hCCB) /* slc nova 031 */ { LPCONNECTOR_CONTROL_BLOCK lpCCB; WORD wResult = FALSE; FARPROC lpfnWrite; if(hCCB == NULL) /* slc nova 028 */ { serCount = 0; return(wResult); } if((lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB)) == NULL) return(0); if((lpfnWrite = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_WRITECONNECTOR))) != NULL) { wResult = (WORD)(*lpfnWrite)(lpCCB); } GlobalUnlock(hCCB); return(wResult); } /**************************************************************************/ /* */ /* DLL_ExitConnector */ /* */ /**************************************************************************/ WORD DLL_ExitConnector(HANDLE hCCB, recTrmParams *pTrmParams) { LPCONNECTOR_CONTROL_BLOCK lpCCB; FARPROC lpfnGetType; if(hCCB == NULL) /* slc nova 028 */ return(0); if((lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB)) == NULL) return(0); if((lpfnGetType = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_EXITCONNECTOR))) != NULL) { } if(lpCCB->hConnectorInst != 0) /* slc nova 031 */ FreeLibrary(lpCCB->hConnectorInst); lpCCB->hConnectorInst = 0; GlobalUnlock(hCCB); return(0); } /**************************************************************************/ /* */ /* DLL_ResetConnector */ /* */ /**************************************************************************/ WORD DLL_ResetConnector(HANDLE hCCB, BOOL bShow) /* slc nova 031 */ { LPCONNECTOR_CONTROL_BLOCK lpCCB; FARPROC lpfnGetType; WORD wResult = 0; if((lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB)) == NULL) return(0); if((lpfnGetType = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_RESETCONNECTOR))) != NULL) { wResult = (WORD)(*lpfnGetType)(dlgGetFocus(), lpCCB, (BOOL)bShow); } GlobalUnlock(hCCB); return(wResult); } /**************************************************************************/ /* */ /* DLL_SetupConnector */ /* */ /**************************************************************************/ WORD DLL_SetupConnector(HANDLE hCCB, BOOL bShow) /* slc nova 031 */ { LPCONNECTOR_CONTROL_BLOCK lpCCB; FARPROC lpfnProcAddr; WORD wResult = 0; if((lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB)) == NULL) return(0); if((lpfnProcAddr = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_SETUPCONNECTOR))) != NULL) { ccbFromTrmParams(lpCCB, &trmParams); wResult = (WORD)(*lpfnProcAddr)(dlgGetFocus(), lpCCB, (BOOL)bShow); ccbToTrmParams(&trmParams, lpCCB); } GlobalUnlock(hCCB); return(wResult); } /**************************************************************************/ /* */ /* loadConnector */ /* */ /**************************************************************************/ HANDLE loadConnector(HWND hTopWnd, HANDLE hCCB, LPSTR lpszConnector, BOOL bShow) { LPCONNECTOR_CONTROL_BLOCK lpCCB; FARPROC lpfnGetType; CHAR szWork[PATHLEN]; HANDLE hResult = NULL; if((lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB)) == NULL) return(0); if(lpCCB->hConnectorInst != 0) FreeLibrary(lpCCB->hConnectorInst); lpCCB->hConnectorInst = 0; if(*lpszConnector) { if(!lstrcmp(lpszConnector, (LPSTR)"LANMAN")) { lstrcpy((LPSTR)szWork, lpszConnector); strcat(szWork, ".DLL"); } lpCCB->hConnectorInst = LoadLibrary((LPSTR)szWork); /* slc nova 028 */ } /* in win30 <32 rc is an error, but in win32 rc is NULL in case of an error -sdj*/ #ifdef ORGCODE if(lpCCB->hConnectorInst < 32) lpCCB->hConnectorInst = 0; #else if(lpCCB->hConnectorInst == NULL) lpCCB->hConnectorInst = (HANDLE)0; #endif if(lpCCB->hConnectorInst != 0) { /* check to see if we have a DC_CONNECTOR type dll */ if((lpfnGetType = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_GETDLLTYPE))) == NULL) { FreeLibrary(lpCCB->hConnectorInst); lpCCB->hConnectorInst = 0; } else { if((WORD)(*lpfnGetType)((HWND)hTopWnd, (BOOL)bShow) != DC_CONNECTOR) { FreeLibrary(lpCCB->hConnectorInst); lpCCB->hConnectorInst = 0; } } } hResult = lpCCB->hConnectorInst; GlobalUnlock(hCCB); if(hResult) /* slc nova 031 */ DLL_ResetConnector(hCCB, FALSE); return(hResult); } /**************************************************************************/ /* */ /* DLL_HasSetupBox seh nova 006 */ /* */ /**************************************************************************/ BOOL DLL_HasSetupBox(HANDLE hCCB) { LPCONNECTOR_CONTROL_BLOCK lpCCB; FARPROC lpProc; BOOL bHasSetup; if(hCCB == NULL) /* slc nova 028 */ return(0); lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB); /* slc nova 031 */ if((lpProc = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_GETEXTENDEDINFO))) == NULL) { bHasSetup = FALSE; } else { bHasSetup = (WORD)(*lpProc)((WORD)GI_IDENTIFY, (WORD)GI_SETUPBOX, (LPSTR)NULL); } return(bHasSetup); } /**************************************************************************/ /* */ /* getConnectorCaps */ /* */ /**************************************************************************/ WORD getConnectorCaps(LPCONNECTOR_CONTROL_BLOCK lpCCB) /* slc nova 031 */ { FARPROC lpProc; WORD wReturn; if((lpProc = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_GETCONNECTCAPS))) != NULL) { wReturn = (WORD)(*lpProc)((WORD)SET_PARAMETERS); } return(wReturn); } /**************************************************************************/ /* */ /* getConnectorSettings */ /* */ /**************************************************************************/ WORD getConnectorSettings(LPCONNECTOR_CONTROL_BLOCK lpCCB, BOOL bShow) /* slc nova 031 */ { FARPROC lpProc; WORD wReturn; WORD wPassVal = SP_GETDEFAULT; if(bShow) wPassVal |= SP_SHOW; if((lpProc = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_SETPARAMETERS))) != NULL) { wReturn = (WORD)(*lpProc)((WORD)wPassVal, (LPCONNECTOR_CONTROL_BLOCK)lpCCB); } return(wReturn); } /**************************************************************************/ /* */ /* setConnectorSettings */ /* */ /**************************************************************************/ WORD setConnectorSettings(HWND hDlg, HANDLE hCCB, BOOL bDefaults) /* slc nova 031 */ { LPCONNECTOR_CONTROL_BLOCK lpCCB; /* slc nova 031 */ LPCONNECTORS lpConnectors; /* slc nova 031 */ FARPROC lpProc; WORD wSettings; WORD wWorkSettings, wWork; if(hCCB == NULL) /* slc nova 028 */ return(0); lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB); /* slc nova 031 */ if(lpCCB->hConnectorInst == 0) /* slc nova 046 */ { GlobalUnlock(hCCB); return(0); } if((lpProc = GetProcAddress(lpCCB->hConnectorInst, MAKEINTRESOURCE(ORD_GETEXTENDEDINFO))) != NULL) { wSettings = (WORD)(*lpProc)((WORD)GI_IDENTIFY, (WORD)GI_SETUPBOX, (LPSTR)NULL); } if(wSettings) { EnableWindow(GetDlgItem(hDlg, ITMSETUP), TRUE); /* seh nova 005 */ ShowWindow(GetDlgItem(hDlg, ITMSETUP), SW_SHOW); /* seh nova 005 */ } else { EnableWindow(GetDlgItem(hDlg, ITMSETUP), FALSE); /* seh nova 005 */ ShowWindow(GetDlgItem(hDlg, ITMSETUP), SW_HIDE); /* seh nova 005 */ } wSettings = getConnectorCaps(lpCCB); /* slc nova 031 */ getConnectorSettings(lpCCB, FALSE); /* slc nova 031 */ if(bDefaults) /* slc nova 031 */ { ccbFromTrmParams(lpCCB, &trmParams); ccbToTrmParams(&trmParams, lpCCB); } /* enable baud rates */ for(wWork = ITMBD110; wWork <= ITMBD192; wWork++) EnableWindow(GetDlgItem(hDlg, wWork), FALSE); if((wSettings & SP_BAUD) == SP_BAUD) { wWorkSettings = lpCCB->wBaudFlags; if((wWorkSettings & BAUD_110) == BAUD_110) EnableWindow(GetDlgItem(hDlg, ITMBD110), TRUE); if((wWorkSettings & BAUD_300) == BAUD_300) EnableWindow(GetDlgItem(hDlg, ITMBD300), TRUE); if((wWorkSettings & BAUD_600) == BAUD_600) EnableWindow(GetDlgItem(hDlg, ITMBD600), TRUE); if((wWorkSettings & BAUD_120) == BAUD_120) EnableWindow(GetDlgItem(hDlg, ITMBD120), TRUE); if((wWorkSettings & BAUD_240) == BAUD_240) EnableWindow(GetDlgItem(hDlg, ITMBD240), TRUE); if((wWorkSettings & BAUD_480) == BAUD_480) EnableWindow(GetDlgItem(hDlg, ITMBD480), TRUE); if((wWorkSettings & BAUD_960) == BAUD_960) EnableWindow(GetDlgItem(hDlg, ITMBD960), TRUE); if((wWorkSettings & BAUD_192) == BAUD_192) EnableWindow(GetDlgItem(hDlg, ITMBD192), TRUE); CheckRadioButton(hDlg, ITMBD110, ITMBD192, putCCB_BAUDITM(lpCCB->wBaudSet)); } /* enable data bits */ for(wWork = ITMDATA5; wWork <= ITMDATA8; wWork++) EnableWindow(GetDlgItem(hDlg, wWork), FALSE); if((wSettings & SP_DATABITS) == SP_DATABITS) { wWorkSettings = lpCCB->wDataBitFlags; if((wWorkSettings & DATABITS_5) == DATABITS_5) EnableWindow(GetDlgItem(hDlg, ITMDATA5), TRUE); if((wWorkSettings & DATABITS_6) == DATABITS_6) EnableWindow(GetDlgItem(hDlg, ITMDATA6), TRUE); if((wWorkSettings & DATABITS_7) == DATABITS_7) EnableWindow(GetDlgItem(hDlg, ITMDATA7), TRUE); if((wWorkSettings & DATABITS_8) == DATABITS_8) EnableWindow(GetDlgItem(hDlg, ITMDATA8), TRUE); CheckRadioButton(hDlg, ITMDATA5, ITMDATA8, putCCB_DATABITS(lpCCB->wDataBitSet)); } /* enable stop bits */ for(wWork = ITMSTOP1; wWork <= ITMSTOP2; wWork++) EnableWindow(GetDlgItem(hDlg, wWork), FALSE); if((wSettings & SP_STOPBITS) == SP_STOPBITS) { wWorkSettings = lpCCB->wStopBitFlags; if((wWorkSettings & STOPBITS_10) == STOPBITS_10) EnableWindow(GetDlgItem(hDlg, ITMSTOP1), TRUE); if((wWorkSettings & STOPBITS_15) == STOPBITS_15) EnableWindow(GetDlgItem(hDlg, ITMSTOP5), TRUE); if((wWorkSettings & STOPBITS_20) == STOPBITS_20) EnableWindow(GetDlgItem(hDlg,ITMSTOP2), TRUE); CheckRadioButton(hDlg, ITMSTOP1, ITMSTOP2, putCCB_STOPBITS(lpCCB->wStopBitSet)); } /* enable parity options */ for(wWork = ITMNOPARITY; wWork <= ITMSPACEPARITY; wWork++) EnableWindow(GetDlgItem(hDlg, wWork), FALSE); if((wSettings & SP_PARITY) == SP_PARITY) { wWorkSettings = lpCCB->wParityFlags; if((wWorkSettings & PARITY_NONE) == PARITY_NONE) EnableWindow(GetDlgItem(hDlg, ITMNOPARITY), TRUE); if((wWorkSettings & PARITY_ODD) == PARITY_ODD) EnableWindow(GetDlgItem(hDlg, ITMODDPARITY), TRUE); if((wWorkSettings & PARITY_EVEN) == PARITY_EVEN) EnableWindow(GetDlgItem(hDlg, ITMEVENPARITY), TRUE); if((wWorkSettings & PARITY_MARK) == PARITY_MARK) EnableWindow(GetDlgItem(hDlg, ITMMARKPARITY), TRUE); if((wWorkSettings & PARITY_SPACE) == PARITY_SPACE) EnableWindow(GetDlgItem(hDlg, ITMSPACEPARITY), TRUE); CheckRadioButton(hDlg, ITMNOPARITY, ITMSPACEPARITY, putCCB_PARITY(lpCCB->wParitySet)); } /* enable handshake options */ for(wWork = ITMXONFLOW; wWork <= ITMNOFLOW; wWork++) EnableWindow(GetDlgItem(hDlg, wWork), FALSE); if((wSettings & SP_HANDSHAKING) == SP_HANDSHAKING) { wWorkSettings = lpCCB->wHandshakeFlags; if((wWorkSettings & HANDSHAKE_XONXOFF) == HANDSHAKE_XONXOFF) EnableWindow(GetDlgItem(hDlg, ITMXONFLOW), TRUE); if((wWorkSettings & HANDSHAKE_HARDWARE) == HANDSHAKE_HARDWARE) EnableWindow(GetDlgItem(hDlg, ITMHARDFLOW), TRUE); if((wWorkSettings & HANDSHAKE_NONE) == HANDSHAKE_NONE) EnableWindow(GetDlgItem(hDlg, ITMNOFLOW), TRUE); CheckRadioButton(hDlg, ITMXONFLOW, ITMNOFLOW, putCCB_FLOWCTRL(lpCCB->wHandshakeSet)); } /* enable carrier detect button */ //if((wSettings & SP_RLSD) == SP_RLSD) needs to be changed to SP_CARRIER_DETECT //{ // EnableWindow(GetDlgItem(hDlg, ITMCARRIER), TRUE); //} //else //{ EnableWindow(GetDlgItem(hDlg, ITMCARRIER), FALSE); //} /* enable parity check button */ if((wSettings & SP_PARITY_CHECK) == SP_PARITY_CHECK) { EnableWindow(GetDlgItem(hDlg, ITMPARITY), TRUE); } else { EnableWindow(GetDlgItem(hDlg, ITMPARITY), FALSE); } GlobalUnlock(hCCB); /* slc nova 031 */ return(wSettings); } /**************************************************************************/ INT GetDynaCommProfileString(LPSTR lpsz1, LPSTR lpsz2, LPSTR lpsz3, LPSTR lpsz4, INT nSize, LPSTR lpsz5) { return GetPrivateProfileString(lpsz1, lpsz2, lpsz3, lpsz4, nSize, lpsz5); } /**************************************************************************/ /* getConnectType seh nova 005 */ /**************************************************************************/ WORD getConnectType(HANDLE hConnector, HANDLE hCCB) { LPCONNECTOR_CONTROL_BLOCK lpCCB; WORD wResult; lpCCB = (LPCONNECTOR_CONTROL_BLOCK)GlobalLock(hCCB); wResult = (WORD)lpCCB->wType; GlobalUnlock(hCCB); return(wResult); } /**************************************************************************/ /* ccbFromTrmParams slc nova 028 */ /**************************************************************************/ /**************************************************************************/ /* getCCB_BAUD seh nova 005 */ /**************************************************************************/ WORD getCCB_BAUD(WORD wSpeed) { WORD wReturn; switch(wSpeed) /* from DC to CCB */ { case 75: wReturn = BAUD_075; break; case 110: wReturn = BAUD_110; break; case 300: wReturn = BAUD_300; break; case 600: wReturn = BAUD_600; break; case 1200: wReturn = BAUD_120; break; case 2400: wReturn = BAUD_240; break; case 4800: wReturn = BAUD_480; break; case 9600: wReturn = BAUD_960; break; case 19200: wReturn = BAUD_192; break; default: wReturn = (WORD)BAUD_USER; break; } return(wReturn); } /**************************************************************************/ /* getCCB_DATABITS slc nova 028 */ /**************************************************************************/ WORD getCCB_DATABITS(WORD wInput) { WORD wReturn; switch(wInput) { case ITMDATA5: wReturn = DATABITS_5; break; case ITMDATA6: wReturn = DATABITS_6; break; case ITMDATA7: wReturn = DATABITS_7; break; case ITMDATA8: wReturn = DATABITS_8; break; default: wReturn = DATABITS_8; break; } return(wReturn); } /**************************************************************************/ /* getCCB_PARITY slc nova 028 */ /**************************************************************************/ WORD getCCB_PARITY(WORD wInput) { WORD wReturn; switch(wInput) { case ITMNOPARITY: wReturn = PARITY_NONE; break; case ITMODDPARITY: wReturn = PARITY_ODD; break; case ITMEVENPARITY: wReturn = PARITY_EVEN; break; case ITMMARKPARITY: wReturn = PARITY_MARK; break; case ITMSPACEPARITY: wReturn = PARITY_SPACE; break; default: wReturn = PARITY_NONE; break; } return(wReturn); } /**************************************************************************/ /* getCCB_STOPBITS slc nova 028 */ /**************************************************************************/ WORD getCCB_STOPBITS(WORD wInput) { WORD wReturn; switch(wInput) { case ITMSTOP1: wReturn = STOPBITS_10; break; case ITMSTOP5: wReturn = STOPBITS_15; break; case ITMSTOP2: wReturn = STOPBITS_20; break; default: wReturn = STOPBITS_10; break; } return(wReturn); } /**************************************************************************/ /* getCCB_FLOWCTRL slc nova 028 */ /**************************************************************************/ WORD getCCB_FLOWCTRL(WORD wInput) { WORD wReturn; switch(wInput) { case ITMXONFLOW: wReturn = HANDSHAKE_XONXOFF; break; case ITMHARDFLOW: wReturn = HANDSHAKE_HARDWARE; break; case ITMNOFLOW: wReturn = HANDSHAKE_NONE; break; case ITMETXFLOW: wReturn = HANDSHAKE_ETXFLOW; break; default: wReturn = HANDSHAKE_XONXOFF; break; } return(wReturn); } /**************************************************************************/ /* getCCB_MISCSET slc nova 028 */ /**************************************************************************/ WORD getCCB_MISCSET(WORD wInput1, WORD wInput2) { WORD wReturn = 0; if(wInput1) wReturn = MISC_CARRIER_DETECT; if(wInput2) wReturn |= MISC_PARITY_CHECK; return(wReturn); } /**************************************************************************/ VOID ccbFromTrmParams(LPCONNECTOR_CONTROL_BLOCK lpCCB, recTrmParams *pTrmParams) { // -sdj, dec'91 If the trmparams structure is packed with 1 byte alignment // -sdj, MIPS compiler breaks while compiling this funciton, I think the line // -sdj, is: lpCCB->byPadChar = (pTrmParams->commFlags & DCS_CF_NETNAMEPADDING) ? 0x20 : 0x00; // -sdj, the Fix for this cc bug wont make it into the pdk2, so lets bypass // -sdj, this function code for the time being // #ifdef BUGBYPASS // #else lstrcpy(lpCCB->szDLLName, (LPSTR)pTrmParams->szConnectorName); /* slc nova 106 */ lpCCB->wSpeed = pTrmParams->speed; /* seh nova 005 */ lpCCB->wBaudSet = getCCB_BAUD(lpCCB->wSpeed); /* seh nova 005 */ lpCCB->wDataBitSet = getCCB_DATABITS(pTrmParams->dataBits); lpCCB->wParitySet = getCCB_PARITY(pTrmParams->parity); lpCCB->wStopBitSet = getCCB_STOPBITS(pTrmParams->stopBits); lpCCB->wHandshakeSet = getCCB_FLOWCTRL(pTrmParams->flowControl); lpCCB->wMiscSet = getCCB_MISCSET(pTrmParams->fCarrier, pTrmParams->fParity); lstrcpy(lpCCB->szPhoneNumber, (LPSTR)pTrmParams->phone); /* slc nova 106 */ lstrcpy(lpCCB->szClient, (LPSTR)pTrmParams->localName); /* slc nova 106 */ lstrcpy(lpCCB->szServer, (LPSTR)pTrmParams->remoteName); /* slc nova 106 */ lpCCB->byPadChar = (pTrmParams->commFlags & DCS_CF_NETNAMEPADDING) ? 0x20 : 0x00; lmovmem((LPSTR)pTrmParams->connectorConfigData, lpCCB->configBuffer, 32); /* slc nova 106 */ // #endif } /**************************************************************************/ /* ccbToTrmParams slc nova 028 */ /**************************************************************************/ /**************************************************************************/ /* putCCB_BAUDITM seh nova 005 */ /**************************************************************************/ WORD putCCB_BAUDITM(WORD wID) /* called by setConnectorSettings() */ { WORD wReturn; switch(wID) { case BAUD_075: wReturn = ITMBD110; /* dc does not support yet */ break; case BAUD_110: wReturn = ITMBD110; break; case BAUD_300: wReturn = ITMBD300; break; case BAUD_600: wReturn = ITMBD600; break; case BAUD_120: wReturn = ITMBD120; break; case BAUD_240: wReturn = ITMBD240; break; case BAUD_480: wReturn = ITMBD480; break; case BAUD_960: wReturn = ITMBD960; break; case BAUD_192: wReturn = ITMBD192; break; default: wReturn = ITMBD120; break; } return(wReturn); } /**************************************************************************/ /* putCCB_BAUD seh nova 005 */ /**************************************************************************/ WORD putCCB_BAUD(WORD wID) { WORD wReturn; switch(wID) { case BAUD_075: wReturn = 75; break; case BAUD_110: wReturn = 110; break; case BAUD_300: wReturn = 300; break; case BAUD_600: wReturn = 600; break; case BAUD_120: wReturn = 1200; break; case BAUD_240: wReturn = 2400; break; case BAUD_480: wReturn = 4800; break; case BAUD_960: wReturn = 9600; break; case BAUD_192: wReturn = 19200; break; default: wReturn = 1200; break; } return(wReturn); } /**************************************************************************/ /* putCCB_DATABITS slc nova 028 */ /**************************************************************************/ WORD putCCB_DATABITS(WORD wInput) { WORD wReturn; switch(wInput) { case DATABITS_5: wReturn = ITMDATA5; break; case DATABITS_6: wReturn = ITMDATA6; break; case DATABITS_7: wReturn = ITMDATA7; break; case DATABITS_8: wReturn = ITMDATA8; break; default: wReturn = ITMDATA8; break; } return(wReturn); } /**************************************************************************/ /* putCCB_PARITY slc nova 028 */ /**************************************************************************/ WORD putCCB_PARITY(WORD wInput) { WORD wReturn; switch(wInput) { case PARITY_NONE: wReturn = ITMNOPARITY; break; case PARITY_ODD: wReturn = ITMODDPARITY; break; case PARITY_EVEN: wReturn = ITMEVENPARITY; break; case PARITY_MARK: wReturn = ITMMARKPARITY; break; case PARITY_SPACE: wReturn = ITMSPACEPARITY; break; default: wReturn = ITMNOPARITY; break; } return(wReturn); } /**************************************************************************/ /* putCCB_STOPBITS slc nova 028 */ /**************************************************************************/ WORD putCCB_STOPBITS(WORD wInput) { WORD wReturn; switch(wInput) { case STOPBITS_10: wReturn = ITMSTOP1; break; case STOPBITS_15: wReturn = ITMSTOP5; break; case STOPBITS_20: wReturn = ITMSTOP2; break; default: wReturn = ITMSTOP1; break; } return(wReturn); } /**************************************************************************/ /* putCCB_FLOWCTRL slc nova 028 */ /**************************************************************************/ WORD putCCB_FLOWCTRL(WORD wInput) { WORD wReturn; switch(wInput) { case HANDSHAKE_XONXOFF: wReturn = ITMXONFLOW; break; case HANDSHAKE_HARDWARE: wReturn = ITMHARDFLOW; break; case HANDSHAKE_NONE: wReturn = ITMNOFLOW; break; case HANDSHAKE_ETXFLOW: wReturn = ITMETXFLOW; break; default: wReturn = ITMXONFLOW; break; } return(wReturn); } /**************************************************************************/ /* putCCB_MISCSET slc nova 028 */ /**************************************************************************/ WORD putCCB_MISCSET(WORD wInput1, WORD wInput2) { WORD wReturn = 0; if(wInput1) wReturn = MISC_CARRIER_DETECT; if(wInput2) wReturn |= MISC_PARITY_CHECK; return(wReturn); } /**************************************************************************/ VOID ccbToTrmParams(recTrmParams *pTrmParams, LPCONNECTOR_CONTROL_BLOCK lpCCB) { // -sdj, dec'91 If the trmparams structure is packed with 1 byte alignment // -sdj, MIPS compiler breaks while compiling this funciton, // -sdj, the Fix for this cc bug wont make it into the pdk2, so lets bypass // -sdj, this function code for the time being // #ifdef BUGBYPASS // #else lstrcpy((LPSTR)pTrmParams->szConnectorName, lpCCB->szDLLName); /* slc nova 106 */ pTrmParams->speed = putCCB_BAUD(lpCCB->wBaudSet); pTrmParams->dataBits = (BYTE)putCCB_DATABITS(lpCCB->wDataBitSet); pTrmParams->parity = (BYTE)putCCB_PARITY(lpCCB->wParitySet); pTrmParams->stopBits = (BYTE)putCCB_STOPBITS(lpCCB->wStopBitSet); pTrmParams->flowControl = (BYTE)putCCB_FLOWCTRL(lpCCB->wHandshakeSet); pTrmParams->fCarrier = (lpCCB->wMiscSet & MISC_CARRIER_DETECT) ? 1 : 0; pTrmParams->fParity = (lpCCB->wMiscSet & MISC_PARITY_CHECK) ? 1 : 0; lstrcpy((LPSTR)pTrmParams->phone, lpCCB->szPhoneNumber); /* slc nova 106 */ lstrcpy((LPSTR)pTrmParams->localName, lpCCB->szClient); /* slc nova 106 */ lstrcpy((LPSTR)pTrmParams->remoteName, lpCCB->szServer); /* slc nova 106 */ if(lpCCB->byPadChar == 0x20) { pTrmParams->commFlags |= DCS_CF_NETNAMEPADDING; NETNAMEPADDING = ' '; } else { pTrmParams->commFlags &= ~DCS_CF_NETNAMEPADDING; NETNAMEPADDING = '\0'; } lmovmem(lpCCB->configBuffer, (LPSTR)pTrmParams->connectorConfigData, 32); /* slc nova 106 */ // #endif } /* the end */