|
|
/*===========================================================================*/ /* 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 <windows.h>
#include <port1632.h>
#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 */
|