1732 lines
55 KiB
C
1732 lines
55 KiB
C
|
#include "fsemacro.h" // rjs - macros for dynacomm
|
||
|
#include <io.h> /* for open,read,write,close file crt -sdj*/
|
||
|
#include <string.h> /* for strncpy -sdj */
|
||
|
#include <stdio.h> /* for sprintf sscanf -sdj */
|
||
|
#include <fcntl.h> /*added cause CRT's need defines*/
|
||
|
#include <sys\types.h>
|
||
|
#include <sys\stat.h>
|
||
|
#include "asm2c_32.h"
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
/* Compilation Switches */
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
#define DEBOUT(a,b) DbgPrint("WIN32DEBUG: " a, (b));
|
||
|
#else
|
||
|
#define DEBOUT(a,b)
|
||
|
#endif
|
||
|
|
||
|
#define DEBUG_FLAG FALSE
|
||
|
#define DEBUG_FLAG1 (DEBUG_FLAG & 0x0002)
|
||
|
|
||
|
#define NULL_PORT TRUE /* enables DynaComm to function */
|
||
|
/* without a valid COMM PORT */
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
/* Type Definitions */
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
typedef BYTE STRING; /* denotes PASCAL-type string */
|
||
|
typedef BYTE * Ptr;
|
||
|
typedef BYTE HUGE_T * HPSTR;
|
||
|
|
||
|
typedef VOID (NEAR *procPtr)();
|
||
|
typedef HWND ControlHandle;
|
||
|
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
typedef enum {KBD_LOCK, KBD_UNLOCK, KBD_ECHO, KBD_BUFFER, KBD_WAIT} KBD_STATE;
|
||
|
|
||
|
typedef enum {ICS_NONE, ICS_BRITISH, ICS_DANISH, ICS_FINISH,
|
||
|
ICS_FRENCH, ICS_CANADIAN, ICS_GERMAN, ICS_ITALIAN,
|
||
|
ICS_SPANISH, ICS_SWEDISH, ICS_SWISS, ICS_MAXTYPE} ICS_TYPE;
|
||
|
|
||
|
typedef enum {XFRNORMAL, XFRCHAR, XFRLINE} TTXTTYPE;
|
||
|
|
||
|
typedef enum {XFRCHRDELAY, XFRCHRWAIT} TCHRTYPE;
|
||
|
|
||
|
typedef enum {XFRLINDELAY, XFRLINWAIT} TLINTYPE;
|
||
|
|
||
|
typedef enum {BNEITHER, BPAUSE, BWHEN, BBOTH} BREAKCOND;
|
||
|
|
||
|
typedef enum {EXNONE, EXVPOS, EXHPOS, EXSCS, EXSETMODE, EXRESETMODE} ESCEXTEND;
|
||
|
|
||
|
typedef enum {TBLBEGINLINE, TBLNONSPACE, TBLONESPACE, TBLSPACES} TBLPOS;
|
||
|
|
||
|
typedef enum {XFRNONE, XFRSND, XFRRCV, XFRTYP, XFRBSND, XFRBRCV} XFERFLAG;
|
||
|
|
||
|
typedef enum {GRNONE, GRSEMI, GRHIGH, GRMEDM} VIDGRAPHICS;
|
||
|
|
||
|
typedef enum {XFRDYNACOMM, XFRXMODEM, XFRYMODEM, XFRKERMIT, XFRYTERM} tBinType;
|
||
|
|
||
|
typedef enum {XFRBOTH, XFRDATA, XFRRESOURCE} tBinFork;
|
||
|
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
/* Constant Definitions */
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
#define PATHLEN 80
|
||
|
#define FILENAMELEN 32 // -sdj 12 is really bad if you have ntfs names 12
|
||
|
|
||
|
#define ESCSKIPNDX 32 /* used: resetEmul (itutil1.c) */
|
||
|
|
||
|
#define MAXTIMERNUM 3 /* mbbx 2.00: multiple timers */
|
||
|
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
/* STANDARD CHARACTER CONSTANTS */
|
||
|
|
||
|
#define CR 13 /* Carriage return */
|
||
|
#define LF 10 /* Line Feed */
|
||
|
#define SP 32 /* Space */
|
||
|
#define TAB 9 /* Tab */
|
||
|
#define FF 12 /* Form Feed */
|
||
|
#define BS 8 /* BackSpace */
|
||
|
#define ESC 27 /* Escape */
|
||
|
#define BELL 7 /* Bell */
|
||
|
#define CHFILL 32 /* buffer fill char. */
|
||
|
#define XOFF 19 /* XOFF */
|
||
|
#define XON 17 /* XON */
|
||
|
#define CNTRLZ 26 /* end of file ^Z */
|
||
|
#define CNTRLC 3 /* ^C same song second CHETX */
|
||
|
|
||
|
#define CHSOH 1
|
||
|
#define CHSTX 2
|
||
|
#define CHETX 3
|
||
|
#define CHEOT 4
|
||
|
#define CHACK 6
|
||
|
#define CHNAK 21
|
||
|
#define CHCAN 24
|
||
|
#define CHTIMEOUT -1
|
||
|
|
||
|
#define CHQUOTE '"' /* mbbx 1.04: REZ... */
|
||
|
#define CHSQUOTE '\''
|
||
|
|
||
|
|
||
|
/* SYSTEM CONSTANTS */
|
||
|
|
||
|
#define KILOBYTES * 1024
|
||
|
#define KILOBYTESL * 1024L
|
||
|
#define MEGABYTES * 1024 KILOBYTES
|
||
|
#define MEGABYTESL * 1024 KILOBYTESL
|
||
|
#define MAXUNSIGNEDINT 64 KILOBYTES - 1
|
||
|
#define MAXUNSIGNEDINTL 64 KILOBYTESL - 1
|
||
|
#define MAXINT 32 KILOBYTES - 1
|
||
|
#define MININT -1 * MAXINT
|
||
|
#define MAXINTL 32 KILOBYTESL -1
|
||
|
#define MAXLONGINT 2048 MEGABYTESL
|
||
|
#define MINLONGINT -1 * MAXLONGINT
|
||
|
#define MAXUNSIGNEDCHAR 255
|
||
|
#define TERM_MAXCHAR 127 /* changed from MAXCHAR to avoid conflict*/
|
||
|
/* MAXCHAR was not used in any files anyway-sdj*/
|
||
|
#define MILLISECONDS * 1
|
||
|
#define SECONDS * 1000 MILLISECONDS
|
||
|
|
||
|
#define versSettings 4
|
||
|
|
||
|
#define STR255 256 /* Faking Pascal str255 type */
|
||
|
#define DONTCARE 0xff /* General purpose don't care */
|
||
|
#define MAXROWCOL MAXLONGINT /* Max. value for type ROWCOL */
|
||
|
#define STANDARDKEY 0x00
|
||
|
#define KEYPADKEY 0x01
|
||
|
#define TERMINALFKEY 0x02
|
||
|
#define SCROLLKEY 0x04
|
||
|
#define SYSTEMFKEY 0xF0
|
||
|
#define SHORTBREAK 0xFE /* Defined for serial short brk */
|
||
|
#define LONGBREAK 0xFF /* Defined for serial long brk */
|
||
|
#define DAYS_IN_A_YEAR 31+28+31+30+31+30+31+31+30+31+30+31
|
||
|
#define SECS_IN_A_DAY 24l*60l*60l
|
||
|
#define MAXSCREENLINE 23
|
||
|
#define MINPOINTSIZE 6
|
||
|
#define MAXPOINTSIZE 15 /* Maximum point size for the */
|
||
|
/* terminal screen font */
|
||
|
#define STATUSLINE 24
|
||
|
#define UPDATETICKS 3
|
||
|
#define YIELDCHARS 48 /* *** optimize this */
|
||
|
|
||
|
/* ARRAY DECLARATOR CONSTANTS */
|
||
|
|
||
|
#define LOCALMODEMBUFSZ 513 /* mbbx: previously 1024 */
|
||
|
#define NINQUEUE 1024 /* mbbx 1.04: was 3072 */
|
||
|
#define NOUTQUEUE 256 /* mbbx 1.04: was 512 */
|
||
|
#define KEYSEQLEN 5
|
||
|
#define SIZEOFEMULKEYINFO 50*KEYSEQLEN /* mbbx 2.00: was 52,44 */
|
||
|
|
||
|
/* #define FKEYLEN 64 jtf 3.12 Max. sizeof funct. key text */
|
||
|
#define DCS_FKEYLEVELS 4 /* Number of level keys */
|
||
|
#define DCS_NUMFKEYS 8 /* Number of function keys */
|
||
|
#define DCS_FKEYTITLESZ 20 /* Length of fkey title rkhx 2.00 */
|
||
|
#define DCS_FKEYTEXTSZ 44 /* Length of fkey text rkhx 2.00 */
|
||
|
#define DCS_NUMSYSVARS 10 /* rkhx 2.00 */
|
||
|
|
||
|
#define MDMRESLEN 20
|
||
|
#define TMPNSTR 255 /* Gen. purpose temp. string len*/
|
||
|
#define MINRESSTR 32
|
||
|
#define STATUSRECTBORDER 4
|
||
|
|
||
|
|
||
|
#define SPACE 32 /* Space (yterm) */
|
||
|
#define SERINBUFFSIZE LOCALMODEMBUFSZ /* mbbx: yterm */
|
||
|
#define YTERMTIMEOUT 600
|
||
|
|
||
|
|
||
|
/* VIRTUAL KEY STATE */
|
||
|
|
||
|
#define VKS_SHIFT 0x0100 /* mbbx 1.04: keymap ... */
|
||
|
#define VKS_CTRL 0x0200
|
||
|
#define VKS_ALT 0x0400
|
||
|
|
||
|
|
||
|
#define FKB_UPDATE_BKGD 0x0001 /* mbbx 2.00: fkey button options... */
|
||
|
#define FKB_UPDATE_TIMER 0x0002
|
||
|
#define FKB_DISABLE_CTRL 0x8000
|
||
|
|
||
|
|
||
|
/* CHARACTER ATTRIBUTES */
|
||
|
|
||
|
#define ANORMAL 0x00 /* mbbx 1.03 ... */
|
||
|
#define ABOLD 0x01
|
||
|
#define AREVERSE 0x02
|
||
|
#define ABLINK 0x04
|
||
|
#define AUNDERLINE 0x08
|
||
|
#define APROTECT 0x10
|
||
|
#define AGRAPHICS 0x20
|
||
|
#define ADIRTY 0x40
|
||
|
#define ACLEAR 0x80
|
||
|
#define AMASK (ABOLD | AREVERSE | ABLINK | AUNDERLINE | APROTECT)
|
||
|
#define ANOTGRAPHICS ~AGRAPHICS
|
||
|
|
||
|
|
||
|
/* LINE ATTRIBUTES */
|
||
|
|
||
|
#define LNORMAL 0
|
||
|
#define LHIGHTOP 1
|
||
|
#define LHIGHBOTTOM 2
|
||
|
#define LWIDE 3
|
||
|
#define LATTRIB 132
|
||
|
#define LFLAGS 133
|
||
|
#define LDIRTY 0x01
|
||
|
#define LCLEAR 0x02
|
||
|
#define ATTRROWLEN 134
|
||
|
|
||
|
|
||
|
/* FILE ERROR CONSTANTS */
|
||
|
|
||
|
#define NOERR FALSE /* No file error flag value */
|
||
|
#define EOFERR 262
|
||
|
#define FERR_FILENOTFOUND 2
|
||
|
#define FERR_PATHNOTFOUND 3
|
||
|
#define FERR_TOOMANYOPENFILES 4
|
||
|
#define FERR_ACCESSDENIED 5
|
||
|
#define FERR_INVALIDACCESS 12
|
||
|
#define FERR_INVALIDFILENAME 257
|
||
|
#define FERR_OPEN 258
|
||
|
#define FERR_READ 259
|
||
|
#define FERR_FILELENGTH 260
|
||
|
#define FERR_CLOSE 261
|
||
|
|
||
|
|
||
|
/* rkhx 2.00 ... */
|
||
|
|
||
|
#if OLD_CODE /* mbbx 2.00: using bit fields... */
|
||
|
/* commFlags */
|
||
|
#define DCS_CF_RESETDEVICE 0x8000 /* select new comm device */
|
||
|
#endif
|
||
|
|
||
|
/* termFlags */
|
||
|
#define DCS_TF_SCROLLBARS 0x0001 /* show terminal scroll bars */
|
||
|
|
||
|
/* modemFlags */
|
||
|
#define DCS_MF_USEDEFAULT 0x0001 /* use default modem settings */
|
||
|
|
||
|
/* communication flags */ /* rjs bug2 */
|
||
|
#define DCS_CF_NETNAMEPADDING 0x0001 /* if set, then use blank padding in NetBios names, else null */
|
||
|
|
||
|
/* environmentFlags */
|
||
|
#define DCS_EVF_FKEYSSHOW 0x0001 /* show fkeys */
|
||
|
#define DCS_EVF_FKEYSARRANGE 0x0002 /* auto arrange when shown */
|
||
|
|
||
|
/* parentFlags */
|
||
|
#define DCS_PF_ 0x0001 /* */
|
||
|
|
||
|
#define DCS_FILE_ID 0x20534344 /* mbbx 2.00 ... */
|
||
|
/* #define DCS_HEADERSZ 4 */
|
||
|
#define DCS_VERSIONSZ 6
|
||
|
#define DCS_DESCRIPTIONSZ 53
|
||
|
#define DCS_PASSWORDSZ 16
|
||
|
|
||
|
#define DCS_ANSWERBACKSZ 44
|
||
|
#define DCS_FONTFACESZ 32
|
||
|
|
||
|
#define DCS_XLINSTRSZ 24
|
||
|
|
||
|
#define DCS_MODEMCMDSZ 32
|
||
|
|
||
|
#define DCS_FKEYNEXTSZ 20
|
||
|
#define DCS_SYSVARSZ 44
|
||
|
|
||
|
#define DCS_DCINITAGSZ 16
|
||
|
|
||
|
#if OLD_CODE
|
||
|
|
||
|
/* FILE DIALOG BOX ATTRIBUTE CONSTANTS */
|
||
|
#define GETFILE 0x0001
|
||
|
#define PUTFILE 0x0002
|
||
|
#define VIEWTXTFILE 0x0004
|
||
|
#define SENDTXTFILE 0x0008
|
||
|
#define MACFILETYPE 0x0010
|
||
|
#define APPENDTXTFILE 0x0020
|
||
|
#define SENDFILE 0x0040
|
||
|
#define FORCEXTENSION 0x0080
|
||
|
#define RECEIVEFILE 0x0100
|
||
|
#define EXECUTEFILE 0x0200
|
||
|
#define PRINTFILE 0x0400
|
||
|
#define REMOTEFILE 0x0800
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/* strings constants: */
|
||
|
|
||
|
#define DC_WNDCLASS "DC_Term" /* mbbx 1.04: REZ... */
|
||
|
|
||
|
#define HEX_STR "0123456789ABCDEF" /* mbbx 2.00 */
|
||
|
|
||
|
#define NULL_STR "\0" /* mbbx 1.00: 00 00 */
|
||
|
#define VOID_STR "\1\0" /* mbbx 1.00: 01 00 00 */
|
||
|
#define PRMPT_STR "\1?"
|
||
|
#define LABEL_STR "\1*"
|
||
|
#define SPACE_STR "\1 "
|
||
|
#define SEMI_STR "\1;"
|
||
|
|
||
|
#define TIME_STR "\800:00:00"
|
||
|
#define OK_STR "\2OK"
|
||
|
#define VIDEO_STR "\5VIDEO"
|
||
|
#define CRLF_STR "\2\015\012"
|
||
|
#define DBG_FNL_STR "["
|
||
|
#define DBG_FNR_STR "]\r\n"
|
||
|
#define MSDOS_STR "MSDOS"
|
||
|
#define VT100_STR "VT-100"
|
||
|
|
||
|
#define PAR2_STR "PAR2"
|
||
|
#define TEXT_STR "TEXT"
|
||
|
#define PARM_STR "PARM"
|
||
|
#define CCL_STR "CCL "
|
||
|
#define YT_WSA_STR "\3WSA"
|
||
|
#define YT_W43_STR "\3W43"
|
||
|
#define YT_RSA_STR "\3RSA"
|
||
|
#define YT_R43_STR "\3R43"
|
||
|
#define YT_CRC_STR "\02##"
|
||
|
#define YT_RESP_STR "012345"
|
||
|
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
/* Data File Definitions */
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
typedef enum {FILE_NDX_DATA, FILE_NDX_SETTINGS, FILE_NDX_TASK,
|
||
|
FILE_NDX_SCRIPT, FILE_NDX_MEMO, MAX_FILE_NDX} FILEDOCTYPE;
|
||
|
|
||
|
|
||
|
#define DATA_FILE_TYPE "\\*.*"
|
||
|
#define SETTINGS_FILE_TYPE "\\*.TRM"
|
||
|
#define TASK_FILE_TYPE "\\*.TXT"
|
||
|
#define SCRIPT_FILE_TYPE "\\*.TXT"
|
||
|
#define MEMO_FILE_TYPE "\\*.TXT"
|
||
|
#define ANY_FILE_TYPE "\\*.*"
|
||
|
#define NO_FILE_TYPE "\\*." /* mbbx 2.00 */
|
||
|
|
||
|
#define INI_FILE_TYPE "\\*.INI"
|
||
|
#define EXE_FILE_TYPE "\\*.EXE"
|
||
|
#define DRIVER_FILE_TYPE "\\*.DRV" /* mbbx 2.00 ... */
|
||
|
/* #define TERMINAL_FILE_TYPE "\\*.TRM" mbbx 2.00: no forced extents */
|
||
|
|
||
|
|
||
|
#define FILEDOCDATA struct tagFileDocData
|
||
|
|
||
|
struct tagFileDocData
|
||
|
{
|
||
|
BYTE filePath[PATHLEN];
|
||
|
BYTE fileName[16];
|
||
|
BYTE fileExt[16];
|
||
|
BYTE title[PATHLEN];
|
||
|
} fileDocData[MAX_FILE_NDX];
|
||
|
|
||
|
/*
|
||
|
struct tagFileDocData
|
||
|
{
|
||
|
BYTE filePath[FO_MAXPATHLENGTH];
|
||
|
BYTE fileName[FO_MAXFILELENGTH];
|
||
|
BYTE fileExt[FO_MAXEXTLENGTH];
|
||
|
BYTE title[FO_MAXPATHLENGTH];
|
||
|
} fileDocData[MAX_FILE_NDX];
|
||
|
*/
|
||
|
|
||
|
/* #define ATTRDIRLIST 0x4010 */
|
||
|
|
||
|
|
||
|
INT saveFileType; /* mbbx 2.00: save prev file type... */
|
||
|
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
/* Structure Definitions */
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
|
||
|
/* rkhx 2.00 */
|
||
|
/* obsolete
|
||
|
typedef
|
||
|
struct {
|
||
|
BYTE title[TITLELEN];
|
||
|
BYTE xtra[XTRALEN];
|
||
|
} TITLEREC;
|
||
|
*/
|
||
|
|
||
|
|
||
|
// -sdj this is the portable way to pack the structures 1 byte aligned.
|
||
|
// win3.0 sources are compiled with -Zp option so that the structures are
|
||
|
// byte aligned. This pragma would work for MIPS and X86 MS compilers
|
||
|
|
||
|
#ifdef ORGCODE
|
||
|
#else
|
||
|
#pragma pack(1)
|
||
|
#endif
|
||
|
|
||
|
typedef
|
||
|
struct {
|
||
|
/* House keeping: 86 + 42 = 128 bytes */
|
||
|
LONG fileID; /* mbbx 2.00 ... */
|
||
|
/* BYTE header[DCS_HEADERSZ]; header ('DCS ') */
|
||
|
BYTE version[DCS_VERSIONSZ]; /* version (2.00: ) */
|
||
|
BYTE description[DCS_DESCRIPTIONSZ]; /* description */
|
||
|
BYTE controlZ; /* fake eof for typing text */
|
||
|
WORD fileSize; /* file size */
|
||
|
WORD crc; /* crc check */
|
||
|
WORD groupSave; /* global save params flag DCS_GS_... */
|
||
|
BYTE password[DCS_PASSWORDSZ]; /* password */
|
||
|
BYTE headerXtraRoom[42]; /* extra room for header section */
|
||
|
|
||
|
/* Communications: (7 + 5) + (7 + 5) + (98 + 6) = 128 bytes */
|
||
|
WORD fParity: 1; /* mbbx 2.00: bit fields... */
|
||
|
WORD fCarrier: 1;
|
||
|
WORD commFlags: 13; /* communication settings DCS_CF_... */
|
||
|
WORD fResetDevice: 1;
|
||
|
|
||
|
BYTE newDevRef; /* new comm device */
|
||
|
BYTE comDevRef; /* comm device */
|
||
|
BYTE comExtRef; /* comm extension */
|
||
|
BYTE comPortRef; /* comm port */
|
||
|
BYTE comModeRef;
|
||
|
BYTE commXtraRoom1[5]; /* extra room for comm section */
|
||
|
|
||
|
WORD speed; /* mbbx 2.00: allow ANY baud rate */
|
||
|
BYTE dataBits;
|
||
|
BYTE parity;
|
||
|
BYTE stopBits;
|
||
|
BYTE flowControl;
|
||
|
BYTE priority; /* com priority (as per spooler) */
|
||
|
BYTE commXtraRoom2[5]; /* extra room for comm section */
|
||
|
|
||
|
BYTE localName[16]; /* used for deviceName */
|
||
|
BYTE remoteName[64];
|
||
|
BYTE deviceName[14]; /* used for deviceName */
|
||
|
WORD netRcvTimeOut;
|
||
|
WORD netSndTimeOut;
|
||
|
BYTE commXtraRoom3[6]; /* extra room for comm section */
|
||
|
|
||
|
/* Terminal: 94 + 34 = 128 bytes */
|
||
|
WORD termFlags: 12;
|
||
|
WORD fInpLFCR: 1;
|
||
|
WORD fBSKey: 1;
|
||
|
WORD fHideTermHSB: 1;
|
||
|
WORD fHideTermVSB: 1;
|
||
|
BYTE emulate; /* terminal emulation */
|
||
|
BYTE fCtrlBits; /* mbbx 1.10: VT220 8BIT */
|
||
|
BYTE answerBack[DCS_ANSWERBACKSZ]; /* answer back string */
|
||
|
BYTE lineWrap;
|
||
|
BYTE localEcho;
|
||
|
BYTE sound;
|
||
|
BYTE inpCRLF;
|
||
|
BYTE outCRLF;
|
||
|
BYTE columns;
|
||
|
BYTE termCursor;
|
||
|
BYTE cursorBlink;
|
||
|
BYTE fontFace[DCS_FONTFACESZ]; /* font face */
|
||
|
WORD fontSize; /* font point size */
|
||
|
WORD language; /* mbbx 1.04 */
|
||
|
WORD bufferLines; /* terminal scroll buffer size */
|
||
|
/**** nov25,91 win31 added 2 bytes here! -sdj ********************/
|
||
|
/**** to compensate the xtra room was reduced by 2 bytes 34->32 -sdj *********/
|
||
|
BYTE setIBMXANSI;
|
||
|
BYTE useWinCtrl;
|
||
|
|
||
|
BYTE termXtraRoom[32]; /* extra room for terminal section */
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/* Binary Transfers: 9 + 119 = 128 bytes */
|
||
|
WORD binXferFlags; /* binary transfer state DCS_BXF_... */
|
||
|
BYTE xBinType;
|
||
|
WORD rcvBlSz;
|
||
|
WORD sendBlSz;
|
||
|
BYTE retryCt;
|
||
|
BYTE psChar; /* mbbx 1.04: xferPSChar */
|
||
|
BYTE binXferXtraRoom[119]; /* extra room for bin xfer section */
|
||
|
|
||
|
/* Text Transfers: 33 + 95 = 128 bytes */
|
||
|
WORD txtXferFlags; /* text transfer state DCS_TXF_... */
|
||
|
BYTE xTxtType;
|
||
|
BYTE xChrType;
|
||
|
BYTE xChrDelay;
|
||
|
BYTE xLinType;
|
||
|
BYTE xLinDelay;
|
||
|
BYTE xLinStr[DCS_XLINSTRSZ];
|
||
|
BYTE xWordWrap;
|
||
|
BYTE xWrapCol;
|
||
|
BYTE txtXferXtraRoom[95]; /* extra room for txt xfer section */
|
||
|
|
||
|
/* Phone: 38 + 90 = 128 bytes */
|
||
|
WORD phoneFlags; /* phone state DCS_PHF_... */
|
||
|
BYTE phone[DCS_MODEMCMDSZ];
|
||
|
BYTE dlyRetry;
|
||
|
BYTE cntRetry;
|
||
|
BYTE flgRetry;
|
||
|
BYTE flgSignal;
|
||
|
BYTE phoneXtraRoom[90]; /* extra room for phone section */
|
||
|
|
||
|
/* Modem: 387 + 253 = 640 bytes */
|
||
|
WORD modemFlags; /* modem state DCS_MF_... */
|
||
|
BYTE xMdmType;
|
||
|
BYTE dialPrefix[DCS_MODEMCMDSZ];
|
||
|
BYTE dialSuffix[DCS_MODEMCMDSZ];
|
||
|
BYTE hangPrefix[DCS_MODEMCMDSZ];
|
||
|
BYTE hangSuffix[DCS_MODEMCMDSZ];
|
||
|
BYTE binTXPrefix[DCS_MODEMCMDSZ];
|
||
|
BYTE binTXSuffix[DCS_MODEMCMDSZ];
|
||
|
BYTE binRXPrefix[DCS_MODEMCMDSZ];
|
||
|
BYTE binRXSuffix[DCS_MODEMCMDSZ];
|
||
|
BYTE answer[DCS_MODEMCMDSZ];
|
||
|
BYTE originate[DCS_MODEMCMDSZ];
|
||
|
BYTE fastInq[DCS_MODEMCMDSZ]; /* mbbx 2.00: not used */
|
||
|
BYTE fastRsp[DCS_MODEMCMDSZ]; /* mbbx 2.00: not used */
|
||
|
BYTE modemXtraRoom[221]; /* extra room for modem section */
|
||
|
BYTE phone2[DCS_MODEMCMDSZ]; /* mbbx 2.00: not used */
|
||
|
|
||
|
/* Environment: 2510 + 50 = 2560 bytes */
|
||
|
WORD environmentFlags; /* environment state DCS_EVF_... */
|
||
|
BYTE fKeyNext[DCS_FKEYNEXTSZ];
|
||
|
BYTE fKeyTitle[DCS_FKEYLEVELS][DCS_NUMFKEYS][DCS_FKEYTITLESZ]; /* 4 * 8 * 20 = 640 */
|
||
|
BYTE fKeyText[DCS_FKEYLEVELS][DCS_NUMFKEYS][DCS_FKEYTEXTSZ]; /* 4 * 8 * 44 = 1408 */
|
||
|
BYTE systemVariables[DCS_NUMSYSVARS][DCS_SYSVARSZ]; /* 10 * 44 = 440 */
|
||
|
BYTE environmentXtraRoom[50]; /* extra room for environment section */
|
||
|
|
||
|
/* Parent: 42 + 86 = 128 bytes */
|
||
|
WORD parentFlags; /* arrange/stack flags DCS_PF_... */
|
||
|
SHORT dummy1;
|
||
|
SHORT dummy2;
|
||
|
SHORT dummy3;
|
||
|
SHORT dummy4;
|
||
|
BYTE keyMapTag[DCS_DCINITAGSZ]; /* key remapping tag (.ini file) */
|
||
|
BYTE videoAttrTag[DCS_DCINITAGSZ]; /* video tag (.ini file) */
|
||
|
BYTE szConnectorName[DCS_DCINITAGSZ]; /* slc nova 031 bjw nova 001 Connector DLL file name */
|
||
|
BYTE connectorConfigData[32]; /* slc nova 028 */
|
||
|
BYTE parentXtraRoom[86 - DCS_DCINITAGSZ - 32 ]; /* extra room for parent section */
|
||
|
} recTrmParams;
|
||
|
|
||
|
typedef recTrmParams FAR *LPSETTINGS;
|
||
|
|
||
|
#ifdef ORGCODE
|
||
|
#else
|
||
|
#pragma pack()
|
||
|
#endif
|
||
|
|
||
|
typedef
|
||
|
struct {
|
||
|
LONG row;
|
||
|
LONG col;
|
||
|
} ROWCOL;
|
||
|
|
||
|
|
||
|
typedef
|
||
|
struct {
|
||
|
GLOBALHANDLE hText;
|
||
|
RECT viewRect;
|
||
|
LONG selStart;
|
||
|
LONG selEnd;
|
||
|
BOOL active;
|
||
|
FARPROC clikLoop;
|
||
|
HFONT hFont;
|
||
|
} tEHandle;
|
||
|
|
||
|
|
||
|
#define TF_CHANGED 0x8000
|
||
|
#define TF_NOCLOSE 0x4000
|
||
|
#define TF_DIM 0x2000
|
||
|
#define TF_HIDE 0x1000
|
||
|
#define TF_DEFTITLE 0x0010
|
||
|
|
||
|
typedef
|
||
|
struct
|
||
|
{
|
||
|
BYTE filePath[PATHLEN+1];
|
||
|
BYTE fileName[FILENAMELEN+1];
|
||
|
BYTE fileExt[FILENAMELEN+1];
|
||
|
BYTE title[PATHLEN+1];
|
||
|
WORD flags;
|
||
|
} curDataRec;
|
||
|
|
||
|
|
||
|
typedef
|
||
|
struct {
|
||
|
BOOL good;
|
||
|
BYTE vRefNum[PATHLEN+1];
|
||
|
BYTE fName[PATHLEN+1];
|
||
|
} FSReply;
|
||
|
|
||
|
typedef
|
||
|
struct {
|
||
|
WORD hour;
|
||
|
WORD minute;
|
||
|
WORD second;
|
||
|
WORD dayOfWeek; /* 0 = Sunday ... 6 = Saturday */
|
||
|
WORD mm; /* Month (1 - 12) */
|
||
|
WORD dd; /* Day (1 - 31) */
|
||
|
WORD yy; /* Year (1980 - 2099) */
|
||
|
} DOSTIME;
|
||
|
|
||
|
|
||
|
typedef
|
||
|
struct {
|
||
|
BYTE fdType[4];
|
||
|
BYTE fdCreator[4];
|
||
|
INT fdFlags;
|
||
|
DWORD ioFlLgLen;
|
||
|
DWORD ioFlRLgLen;
|
||
|
LONG ioFlCrDat;
|
||
|
LONG ioFlMdDat;
|
||
|
} PARAMBLOCKREC;
|
||
|
|
||
|
|
||
|
typedef
|
||
|
struct {
|
||
|
BYTE reserved[21];
|
||
|
BYTE attribute;
|
||
|
WORD time;
|
||
|
WORD date;
|
||
|
LONG size;
|
||
|
BYTE filename[14];
|
||
|
} DTA;
|
||
|
|
||
|
typedef DTA FAR *LPDTA;
|
||
|
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
/* Variable Definitions */
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
/* WORD winVersion; */
|
||
|
|
||
|
INT itemHit;
|
||
|
|
||
|
BOOL doneFlag; /* End of DynaComm - Flag */
|
||
|
BOOL cancelAbort; /* Abort spooling process ? */
|
||
|
DWORD dwWriteFileTimeout; /* used for wait after writefile*/
|
||
|
BYTE MaxComPortNumberInMenu; /* N in max ComN, just now 4 */
|
||
|
BYTE bPortDisconnected; /* this flag is used to indicate that
|
||
|
the specified port is no longer accesible
|
||
|
user should select some other port. Typically
|
||
|
this will happen when user presses cntl-c or
|
||
|
quit at the telnet prompt, and after this the
|
||
|
right thing to do is to close this port and
|
||
|
prompt user to select other port */
|
||
|
|
||
|
int WindowXPosition; // x cord for createwindow
|
||
|
int WindowYPosition; // y cord for createwindow
|
||
|
int WindowWidth; // width for createwindow
|
||
|
int WindowHeight; // height for createwindow
|
||
|
CHAR szCurrentPortName[TMPNSTR+1]; // this variable will contain the name
|
||
|
// of port which terminal attempted an open on
|
||
|
|
||
|
|
||
|
BOOL bPortIsGood; /* to indicate that the port is good*/
|
||
|
|
||
|
typedef struct _ComNumAndName {
|
||
|
BYTE Index;
|
||
|
CHAR PortName[TMPNSTR+1];
|
||
|
} COMMNUMANDNAME, *PCOMMNUMANDNAME;
|
||
|
|
||
|
COMMNUMANDNAME arComNumAndName[20];
|
||
|
|
||
|
BOOL activTerm; /* Active terminal flag */
|
||
|
|
||
|
POINT nScrollRange;
|
||
|
POINT nScrollPos; /* port macro added MPOINT*/
|
||
|
|
||
|
BOOL noSelect; /* rjs bugs 020 */
|
||
|
BOOL activSelect;
|
||
|
BOOL answerMode; /* Answer mode flag */
|
||
|
BOOL mdmValid;
|
||
|
BOOL cursorValid;
|
||
|
BOOL debugFlg; /* Monitor mode (dis)enabled ? */
|
||
|
BOOL prtFlag;
|
||
|
BOOL transPrintFlag; /* rjs bug2 */
|
||
|
BOOL prtPause;
|
||
|
BOOL escSeq; /* Incoming are part of escSeq */
|
||
|
BOOL ansi;
|
||
|
BOOL escAnsi;
|
||
|
BOOL escGraphics;
|
||
|
BOOL escCursor;
|
||
|
BOOL escVideo;
|
||
|
BOOL statusLine; /* Status line enabled ? */
|
||
|
BOOL chInsMode;
|
||
|
BOOL vidInverse;
|
||
|
BOOL cursorKeyMode;
|
||
|
BOOL keyPadAppMode;
|
||
|
BOOL originMode;
|
||
|
BOOL grChrMode;
|
||
|
BOOL cursorOn;
|
||
|
BOOL dialing;
|
||
|
BOOL cursBlinkOn;
|
||
|
BOOL scrapSeq;
|
||
|
BOOL outBufSeq;
|
||
|
BOOL copiedTable;
|
||
|
BOOL useScrap;
|
||
|
BOOL mdmOnLine;
|
||
|
BOOL timerActiv;
|
||
|
BOOL useMacFileName;
|
||
|
BOOL vScrollShowing;
|
||
|
BOOL later;
|
||
|
BOOL bufferFull;
|
||
|
BOOL fKeysShown;
|
||
|
BOOL protectMode; /* mbbx: emulation */
|
||
|
|
||
|
BYTE szAppClass[20]; /* rjs bug2 */
|
||
|
BYTE szAppName_private[20]; /* Windows registered name */
|
||
|
BYTE szAppName[20]; /* Windows name */
|
||
|
BYTE szMessage[80]; /* Tiled window caption */
|
||
|
|
||
|
BYTE serBytes[LOCALMODEMBUFSZ]; /* Our IT local modem buffer */
|
||
|
BYTE attrib[25][134]; /* Screen attribute map */
|
||
|
BYTE curAttrib; /* Current character attribute */
|
||
|
BYTE ch; /* Modem character */
|
||
|
BYTE theChar; /* Modem character - all 7 bits */
|
||
|
BYTE the8Char; /* Modem character - all 8 bits */
|
||
|
BYTE tabs[132];
|
||
|
BYTE fileVolume[80];
|
||
|
BYTE macFileName[PATHLEN+1];
|
||
|
BYTE charSet[2];
|
||
|
BYTE chAscii;
|
||
|
BYTE emulInfo[128];
|
||
|
BYTE icsXlateTable[256]; /* mbbx 1.04: ics */
|
||
|
BYTE ansiXlateTable[256]; /* mbbx 1.06A: ics new xlate */
|
||
|
WORD keyMapState; /* mbbx 1.04: keymap */
|
||
|
|
||
|
STRING mdmResult[MDMRESLEN]; /* Non-displayed modem chars. */
|
||
|
STRING line25[132]; /* Status line 25 characters */
|
||
|
STRING strAnsi[STR255];
|
||
|
STRING outBuf[134];
|
||
|
STRING fKeyStr[STR255];
|
||
|
STRING keyPadString[5];
|
||
|
|
||
|
/*---------------------------------------------------------------------------*/
|
||
|
|
||
|
XFERFLAG xferFlag;
|
||
|
BOOL xferStopped;
|
||
|
INT xferErrors;
|
||
|
LONG xferLength;
|
||
|
HANDLE xferBufferHandle; /* rjs bugs 016 */
|
||
|
WORD xferBufferCount; /* rjs bugs 016 */
|
||
|
|
||
|
INT xferRefNo;
|
||
|
STRING xferVRefNum[PATHLEN];
|
||
|
STRING xferFname[PATHLEN];
|
||
|
STRING rdCH[256];
|
||
|
int ioCnt; /* flagged by port macro*/
|
||
|
|
||
|
WORD xferMenuAdds;
|
||
|
|
||
|
INT xferSndLF; /* mbbx: (-1,0,1)=>(NOLF,CR,CRLF) */
|
||
|
WORD xferViewPause; /* mbbx: auto line count */
|
||
|
WORD xferViewLine;
|
||
|
|
||
|
INT xferBlkNumber;
|
||
|
INT xferPct;
|
||
|
INT xferLinDelay;
|
||
|
INT xferChrDelay;
|
||
|
|
||
|
BOOL xferPaused;
|
||
|
BOOL xferBreak; /* mbbx 2.00: xfer ctrls */
|
||
|
BOOL xferSaveCtlChr;
|
||
|
BOOL xferTableSave;
|
||
|
BOOL xferWaitEcho;
|
||
|
BOOL xferAppend;
|
||
|
BOOL xferFast;
|
||
|
|
||
|
BYTE xferCharEcho;
|
||
|
BYTE xferPSChar; /* mbbx 1.02: packet switching */
|
||
|
|
||
|
STRING xferLinStr[DCS_XLINSTRSZ]; /* rkhx 2.00 */
|
||
|
STRING strRXBytes[32];
|
||
|
STRING strRXErrors[32];
|
||
|
STRING strRXFname[32];
|
||
|
STRING strRXFork[4];
|
||
|
|
||
|
TTXTTYPE xferTxtType;
|
||
|
TCHRTYPE xferChrType;
|
||
|
TLINTYPE xferLinType;
|
||
|
tBinType xferBinType;
|
||
|
tBinFork xferBinFork;
|
||
|
|
||
|
LONG xferEndTimer;
|
||
|
LONG xferOrig;
|
||
|
LONG xferBlkSize;
|
||
|
LONG xferRLgLen;
|
||
|
LONG xferLgLen;
|
||
|
LONG xferBytes;
|
||
|
LPBYTE xferBuffer;
|
||
|
CHAR NoMemStr[41];
|
||
|
|
||
|
/*---------------------------------------------------------------------------*/
|
||
|
|
||
|
INT serNdx; /* Index into local modem buff. */
|
||
|
INT serCount; /* Index comm. buffer */
|
||
|
INT curCol;
|
||
|
INT curLin;
|
||
|
INT maxChars;
|
||
|
INT maxLines;
|
||
|
INT escChar;
|
||
|
INT escSkip;
|
||
|
BOOL termDirty; /* mbbx: used to be termLine */
|
||
|
INT savTopLine;
|
||
|
INT curTopLine;
|
||
|
INT savLeftCol;
|
||
|
INT chrWidth, stdChrWidth;
|
||
|
INT chrHeight, stdChrHeight;
|
||
|
INT scrRgnBeg;
|
||
|
INT scrRgnEnd;
|
||
|
INT escCol;
|
||
|
INT escLin;
|
||
|
INT curLeftCol;
|
||
|
INT maxScreenLine; /* Windows only */
|
||
|
INT visScreenLine; /* Windows only */
|
||
|
INT curLevel;
|
||
|
INT vidBG;
|
||
|
INT textIndex;
|
||
|
INT outBufCol;
|
||
|
INT fKeyNdx;
|
||
|
INT keyPadIndex;
|
||
|
HANDLE sPort; /* Serial port id win32 */
|
||
|
INT portLocks; /* number of unreleased getPorts*/
|
||
|
BOOL sPortErr;
|
||
|
|
||
|
INT lineFeeds;
|
||
|
INT seqTableNdx;
|
||
|
INT progress;
|
||
|
INT decScs;
|
||
|
INT shiftCharSet;
|
||
|
INT activCursor;
|
||
|
INT scrollBegin;
|
||
|
INT scrollEnd;
|
||
|
INT nScroll;
|
||
|
INT fKeysHeight; /* (mbbx) */
|
||
|
INT ctrlsHeight; /* mbbx 1.04 */
|
||
|
|
||
|
ESCEXTEND escExtend;
|
||
|
TBLPOS tblPos;
|
||
|
VIDGRAPHICS vidGraphics;
|
||
|
KBD_STATE kbdLock;
|
||
|
|
||
|
DWORD gIdleTimer; /* rjs bug2 001 */
|
||
|
|
||
|
LONG lastChTick;
|
||
|
LONG timPointer;
|
||
|
LONG cursorTick;
|
||
|
LONG dialStart;
|
||
|
|
||
|
LONG textLength;
|
||
|
|
||
|
/* \\\ Long Pointers /// */
|
||
|
|
||
|
LPBYTE textPtr;
|
||
|
|
||
|
HWND hItWnd; /* Application Window Handle */
|
||
|
HWND hTermWnd; /* Window handle to terminal */
|
||
|
HWND hdbmyControls; /* Window handle to fkey dlg. */
|
||
|
HWND hdbXferCtrls; /* mbbx 1.04: term ctrls */
|
||
|
HWND hEdit;
|
||
|
HWND fKeyHdl;
|
||
|
|
||
|
HWND hwndThread; // rjs thread
|
||
|
DWORD dwTimerRes; // rjs thread
|
||
|
HWND commThread; // rjs thread
|
||
|
BOOL CommThreadExit; // sdj thread
|
||
|
BOOL gotCommEvent; // rjs thread
|
||
|
HANDLE overlapEvent; // rjs thread
|
||
|
BOOL gbThreadDoneFlag; // rjs thread
|
||
|
HANDLE hMutex; // rjs thread
|
||
|
BOOL gbXferActive; // rjs thread
|
||
|
BOOL bgOutStandingWrite; /* slc swat */
|
||
|
|
||
|
ControlHandle xferCtlStop;
|
||
|
ControlHandle xferCtlPause;
|
||
|
ControlHandle xferCtlScale;
|
||
|
ControlHandle fKeyHandles[DCS_NUMFKEYS+1];
|
||
|
|
||
|
HDC hPrintDC;
|
||
|
HDC thePort;
|
||
|
HBRUSH theBrush;
|
||
|
HBRUSH blackBrush;
|
||
|
|
||
|
HMENU hMenu;
|
||
|
WORD sysAppMenu[16]; /* mbbx 2.00.03: control app menu */
|
||
|
HMENU hEditMenu; /* Edit popup for Terminal WND */
|
||
|
HMENU hLastEdit;
|
||
|
|
||
|
HANDLE hInst;
|
||
|
HANDLE hIconLib; /* mbbx 1.10: DCICONS.LIB */
|
||
|
HANDLE hemulKeyInfo;
|
||
|
HANDLE tEScrapHandle;
|
||
|
|
||
|
HANDLE hDevNames;
|
||
|
HANDLE hDevMode;
|
||
|
|
||
|
HBITMAP hCloseBox; /* mbbx: mdi */
|
||
|
|
||
|
HANDLE hDCCLib; /* mbbx 2.00: compile */
|
||
|
HWND hDCCDlg; /* mbbx 2.00: compile */
|
||
|
|
||
|
MSG msg; /* Application queue messages */
|
||
|
RECT cursorRect; /* Rectangle of the current curs*/
|
||
|
RECT timerRect;
|
||
|
RECT statusRect; /* CCL commands show up in here */
|
||
|
POINT lastPoint; /* last hTermWnd client point */
|
||
|
DOSTIME startTimer[MAXTIMERNUM]; /* mbbx 2.00: multiple timers */
|
||
|
DOSTIME lastTime;
|
||
|
recTrmParams trmParams; /* Contains global 'settings' */
|
||
|
tEHandle hTE; /* Main text edit window struct */
|
||
|
curDataRec termData; /* Current data associated w/ */
|
||
|
/* terminal window */
|
||
|
PARAMBLOCKREC xferParams;
|
||
|
|
||
|
struct icontype
|
||
|
{
|
||
|
HICON hIcon;
|
||
|
INT last;
|
||
|
BOOL flash;
|
||
|
INT dy;
|
||
|
INT dx;
|
||
|
} icon;
|
||
|
|
||
|
struct /* mbbx 2.00: intl date/time... */
|
||
|
{
|
||
|
INT iDate; /* 0=MDY, 1=DMY, 2=YMD */
|
||
|
BYTE sDate[2]; /* date separator */
|
||
|
INT iTime; /* 0=12HR, 1=24HR */
|
||
|
BYTE sTime[2]; /* time separator */
|
||
|
BYTE s1159[4]; /* AM trailing string */
|
||
|
BYTE s2359[4]; /* PM trailing string */
|
||
|
} intlData;
|
||
|
|
||
|
|
||
|
/* \\\ Functions & Procedures /// */
|
||
|
|
||
|
/* FARPROC lpdbPortInit; mbbx: now local */
|
||
|
|
||
|
/* mbbx 1.04: obsolete...
|
||
|
FARPROC lpitWndProc;
|
||
|
FARPROC lptrmWndProc;
|
||
|
FARPROC lpSizeBoxProc;
|
||
|
FARPROC lpdbStdFN;
|
||
|
FARPROC lpdbGetPutFN;
|
||
|
FARPROC lpdbTypTFile;
|
||
|
FARPROC lpdbRcvTFile;
|
||
|
FARPROC lpdbSendFile;
|
||
|
FARPROC lpdbPrompt;
|
||
|
FARPROC lpdbSelSavApp;
|
||
|
FARPROC lpdbPhon;
|
||
|
FARPROC lpdbEmul;
|
||
|
FARPROC lpdbTerm;
|
||
|
FARPROC lpdbFkey;
|
||
|
FARPROC lpdbTxtX;
|
||
|
FARPROC lpdbBinX;
|
||
|
FARPROC lpdbComm;
|
||
|
FARPROC lpdbModem;
|
||
|
FARPROC lpEditProc;
|
||
|
*/
|
||
|
|
||
|
procPtr termState;
|
||
|
procPtr escHandler;
|
||
|
procPtr pEscTable[128];
|
||
|
procPtr aEscTable[128];
|
||
|
procPtr pProcTable[72]; /* mbbx 2.00 ... */
|
||
|
procPtr aProcTable[72];
|
||
|
procPtr ansiParseTable[16];
|
||
|
|
||
|
|
||
|
/* KERMIT STUFF */
|
||
|
|
||
|
#define DEL 127 /* Delete (rubout) */
|
||
|
/* crt also defines EOF so dont define this twice -sdj*/
|
||
|
#ifndef EOF
|
||
|
#define EOF -1
|
||
|
#endif
|
||
|
|
||
|
#define DEFESC '^' /* Default escape character for CONNECT */
|
||
|
#define DEFIM TRUE /* Default image mode */
|
||
|
|
||
|
#define DEFFNC FALSE
|
||
|
|
||
|
#define KERFILE 1 /* bufemp goes to a file */
|
||
|
#define KERBUFF 2 /* bufemp goes to KER_buff */
|
||
|
#define KERSCREEN 4 /* bufemp goes to the screen */
|
||
|
|
||
|
#define tochar(ch) ((ch) + ' ')
|
||
|
#define unchar(ch) ((ch) - ' ')
|
||
|
#define ctl(ch) ((ch) ^ 64 )
|
||
|
#define unpar(ch) ((ch) & 127)
|
||
|
|
||
|
INT
|
||
|
KER_size, /* Size of present data */
|
||
|
KER_rpsiz, /* Maximum receive packet size */
|
||
|
KER_spsiz, /* Maximum send packet size */
|
||
|
KER_pad, /* How much padding to send */
|
||
|
KER_timint, /* Timeout for foreign host on sends */
|
||
|
KER_n, /* Packet number */
|
||
|
KER_numtry, /* Times this packet retried */
|
||
|
KER_oldtry, /* Times previous packet retried */
|
||
|
ttyfd, /* File descriptor of tty for I/O, 0 if remote */
|
||
|
KER_remote, /* -1 means we're a remote kermit */
|
||
|
KER_image, /* -1 means 8-bit mode */
|
||
|
KER_parflg, /* TRUE means use parity specified */
|
||
|
KER_turn, /* TRUE means look for turnaround char (XON) */
|
||
|
KER_lecho, /* TRUE for locally echo chars in connect mode */
|
||
|
KER_8flag, /* TRUE means 8th bit quoting is done */
|
||
|
KER_initState, /* jtf 3.20 Used for retries durring send/receive */
|
||
|
KER_parMask, /* tge Used for auto parity selection */
|
||
|
KER_mask, /* tge Used for auto parity checsum masking */
|
||
|
KER_pktdeb, /* TRUE means log all packet to a file */
|
||
|
KER_filnamcnv, /* -1 means do file name case conversions */
|
||
|
KER_filecount, /* Number of files left to send */
|
||
|
KER_timeout; /* TRUE means a timeout has occurred. */
|
||
|
|
||
|
BYTE
|
||
|
KER_state, /* Present state of the automaton */
|
||
|
KER_cchksum, /* Our (computed) checksum */
|
||
|
KER_padchar, /* Padding character to send */
|
||
|
KER_eol, /* End-Of-Line character to send */
|
||
|
KER_escchr, /* Connect command escape character */
|
||
|
KER_quote, /* Quote character in incoming data */
|
||
|
KER_select8, /* 8th bit quote character to send either 'Y' or '&'*/
|
||
|
KER_firstfile,
|
||
|
KER_getflag,
|
||
|
**KER_filelist, /* List of files to be sent */
|
||
|
*KER_filnam, /* Current file name */
|
||
|
recpkt[94], /* Receive packet buffer */
|
||
|
packet[94], /* Packet buffer */
|
||
|
KER_buff[94], /* buffer for translations */
|
||
|
outstr[80], /*output string for debugging and translations */
|
||
|
KERRCVFLAG; /* direct recieved buffers to screen, file or buffer*/
|
||
|
|
||
|
LONG
|
||
|
KER_bytes; /* number of bytes received */
|
||
|
|
||
|
/*
|
||
|
19 * 2 byte = 38 bytes
|
||
|
|
||
|
9 * 1 byte
|
||
|
2 * 4 bytes
|
||
|
3 * 94 bytes
|
||
|
1 * 80 bytes
|
||
|
1 * 1 byte = 380 bytes
|
||
|
|
||
|
1 * 4 bytes = 4 bytes
|
||
|
|
||
|
422 bytes total + room for filenames */
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
/* Macro Definitions */
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
#define proc void near
|
||
|
#define getResId MAKEINTRESOURCE
|
||
|
#define eraseRect(rectangle) FillRect(getPort(),(LPRECT) &rectangle, theBrush); releasePort()
|
||
|
#define invalRect(rectangle) InvalidateRect(hTermWnd, (LPRECT) &rectangle)
|
||
|
#define validRect(rectangle) ValidateRect(hTermWnd, (LPRECT) &rectangle)
|
||
|
#define invertRect(rectanlge) InvertRect(getPort(), (LPRECT) &rectanlge); releasePort()
|
||
|
#define tickCount() GetCurrentTime() * 60/1000
|
||
|
#define TEDelete(h) SendMessage(h, WM_CLEAR, 0, 0L)
|
||
|
#define sysBeep() MessageBeep(0)
|
||
|
#define nullTerminate(str) str[*str+1] = 0
|
||
|
#define strEquals(dst,src) memcpy(dst, src, (WORD) src[0] + 1), nullTerminate(dst)
|
||
|
#define blockMove(src, dst, len) lmovmem(src, dst, (DWORD) len)
|
||
|
#define equalString(str1, str2) !strcmpi(str1, str2)
|
||
|
#define repeat do
|
||
|
#define until(cond) while(!(cond))
|
||
|
#define stringToNum(str,num) sscanf(&str[1], "%ld", num)
|
||
|
#define c2p(str1, str2) lstrcpy((LPBYTE) &str1[1], (LPBYTE) str2), *str1 = lstrlen((LPBYTE) &str1[1])
|
||
|
#define p2c(str1, str2) lmovmem((LPBYTE) &str2[1], (LPBYTE) str1, (unsigned) *str2), str1[*str2] = NULL
|
||
|
#define SWAPBYTES(i) (((WORD) i >> 8) | (i << 8))
|
||
|
#define yield(lpmsg, hWnd) PeekMessage(lpmsg, hWnd, 0, 0, FALSE)
|
||
|
|
||
|
|
||
|
/*****************************************************************************/
|
||
|
/* Forward Procedure Definitions */
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
/*** INITCODE.C ***/
|
||
|
//WORD MMain(HANDLE, HANDLE, LPSTR, INT); /* causing compiler to puke*/
|
||
|
BOOL initWndClass(); /* mbbx 1.04: was registerIt(); */
|
||
|
VOID initPort();
|
||
|
VOID initIcon();
|
||
|
BOOL createWindows(INT);
|
||
|
/* VOID hidemyControls(); mbbx 2.00: obsolete... */
|
||
|
VOID setDefaultFonts();
|
||
|
VOID sizeWindows();
|
||
|
HBITMAP NEAR extractCloseBitmap();
|
||
|
BOOL initWindows(HANDLE, HANDLE, INT);
|
||
|
VOID initDialogs();
|
||
|
INT_PTR APIENTRY dbPortInit(HWND, UINT, WPARAM, LPARAM);
|
||
|
BOOL NEAR setProfileExtent(BYTE *, BYTE *); /* mbbx 2.00: default paths... */
|
||
|
BOOL NEAR initFileDocData(FILEDOCTYPE fileType, WORD strResID,BYTE *fileExt,BYTE *szSection);
|
||
|
VOID initProfileData();
|
||
|
BOOL setup();
|
||
|
/* VOID initMemPort(); mbbx 2.00: */
|
||
|
VOID NEAR initIconLib();
|
||
|
BOOL NEAR initTermFile(BYTE *);
|
||
|
BOOL NEAR initTaskExec(BYTE *);
|
||
|
BOOL NEAR initEditFile(INT, BYTE *);
|
||
|
VOID NEAR readCmdLine(LPSTR);
|
||
|
VOID freeItResources();
|
||
|
|
||
|
/*** WINMAIN.C ***/
|
||
|
VOID FAR mainProcess();
|
||
|
VOID FAR mainEventLoop();
|
||
|
BOOL NEAR checkInputBuffer(MSG *);
|
||
|
void APIENTRY idleProcess(VOID);
|
||
|
VOID FAR updateTimer();
|
||
|
BOOL updateFKeyButton(WPARAM wParam ,LPARAM lParam,WORD status); /* JAP fix adding wParam*/
|
||
|
VOID getTimeString(BYTE *, DOSTIME *); /* mbbx 2.00: intl date/time */
|
||
|
VOID FAR cursorAdjust();
|
||
|
VOID NEAR blinkCursor();
|
||
|
BOOL NEAR taskProcess();
|
||
|
|
||
|
/*** WNDPROC.C ***/ /* mbbx 1.04 ... */
|
||
|
VOID selectTopWindow();
|
||
|
/* changed WORD -> UINT -sdj */
|
||
|
LRESULT APIENTRY DC_WndProc(HWND, UINT, WPARAM, LPARAM);
|
||
|
VOID termKeyProc(HWND hWnd, UINT message, WPARAM wParam,LPARAM lParam);
|
||
|
/* changed WORD -> UINT -sdj */
|
||
|
LRESULT APIENTRY TF_WndProc(HWND, UINT, WPARAM, LPARAM);
|
||
|
|
||
|
/*** CHRPAINT.C ***/
|
||
|
VOID eraseColorRect(HDC hDC,LPRECT rect,BYTE cAttr);
|
||
|
VOID reDrawTermScreen(INT, INT, INT); /* mbbx 2.00.06: jtf disp2 */
|
||
|
VOID reDrawTermLine(INT, INT, INT);
|
||
|
VOID updateLine(INT);
|
||
|
VOID drawTermLine(LPBYTE txtPtr,INT len, INT lin, INT col,BYTE lAttr,BYTE cAttr);
|
||
|
VOID setAttrib(BYTE cAttr);
|
||
|
|
||
|
/*** DOFILE.C ***/
|
||
|
VOID getFileDocData(FILEDOCTYPE, BYTE *, BYTE *, BYTE *, BYTE *);
|
||
|
VOID setFileDocData(FILEDOCTYPE, BYTE *, BYTE *, BYTE *, BYTE *); /* mbbx 2.00: no forced extents... */
|
||
|
VOID getDataPath(FILEDOCTYPE, BYTE *, BYTE *);
|
||
|
BOOL setDataPath(FILEDOCTYPE, BYTE *, BOOL);
|
||
|
BOOL EditGetDocData(BYTE *, BYTE *, BYTE *);
|
||
|
BOOL EditSetDocData(BYTE *, BYTE *, BYTE *, WORD, BOOL);
|
||
|
|
||
|
/*** MODEMINP.C ***/
|
||
|
VOID cleanRect(INT, INT);
|
||
|
VOID updateLine(INT);
|
||
|
proc scrollBuffer();
|
||
|
proc doScroll();
|
||
|
VOID trackCursor();
|
||
|
VOID termCleanUp();
|
||
|
proc putChar(BYTE ch);
|
||
|
VOID checkSelect();
|
||
|
VOID clrAttrib(INT, INT, INT, INT);
|
||
|
proc clrLines(INT, INT);
|
||
|
proc clrChars(INT, INT, INT);
|
||
|
VOID getUnprot(INT, INT, INT *, INT *);
|
||
|
INT getProtCol();
|
||
|
proc pCursToggle();
|
||
|
proc pCursOn();
|
||
|
proc pCursOff();
|
||
|
proc pCursRC();
|
||
|
proc pSetStatusLine(); /* mbbx 1.03: TV925 ... */
|
||
|
proc pCursHome();
|
||
|
proc pVideo(BYTE attr);
|
||
|
proc pCursRelative(INT, INT);
|
||
|
proc pCursUp();
|
||
|
proc pCursDn();
|
||
|
proc pCursRt();
|
||
|
proc pCursLt();
|
||
|
proc pVPosAbsolute();
|
||
|
proc pHPosAbsolute();
|
||
|
proc pClrScr();
|
||
|
proc pClrBol();
|
||
|
proc pClrBop();
|
||
|
proc pClrEol();
|
||
|
proc pClrEop();
|
||
|
proc pClrLine();
|
||
|
proc scrollAttrib(INT, INT, INT, BOOL);
|
||
|
proc pLF();
|
||
|
proc pInsLin(INT, INT);
|
||
|
proc pDelLin(INT, INT, INT);
|
||
|
proc pDelChar(INT);
|
||
|
VOID begGraphics();
|
||
|
VOID endGraphics();
|
||
|
proc pGrSemi();
|
||
|
proc pGrDoIt(INT, HBRUSH);
|
||
|
proc pGrFill();
|
||
|
proc pGrChar();
|
||
|
proc pSetGrMode();
|
||
|
proc pSetMode();
|
||
|
proc pDecScs();
|
||
|
proc getParms();
|
||
|
proc pInquire();
|
||
|
proc pTab();
|
||
|
proc pClearAllTabs();
|
||
|
proc pSetTab();
|
||
|
proc pClearTab();
|
||
|
proc pCmpSrvResponse();
|
||
|
proc pSndCursor();
|
||
|
proc pIndex();
|
||
|
proc pRevIndex();
|
||
|
proc pSetLineAttrib();
|
||
|
proc pInsChar();
|
||
|
proc pSaveCursorPos();
|
||
|
proc pRestoreCursorPos();
|
||
|
proc pEscSkip();
|
||
|
proc pNullState();
|
||
|
proc pCursorState();
|
||
|
proc pVPosState();
|
||
|
proc pHPosState();
|
||
|
proc pLAttrState();
|
||
|
proc pAnsi();
|
||
|
proc pAnsiState();
|
||
|
proc pGrState();
|
||
|
proc pSkipState();
|
||
|
proc pReverseOff();
|
||
|
proc pReverseOn();
|
||
|
proc pProtOff();
|
||
|
proc pProtOn();
|
||
|
proc pBegProtect(); /* mbbx 1.03: TV925 */
|
||
|
proc pEndProtect(); /* mbbx 1.03: TV925 */
|
||
|
proc pBegGraphics(); /* mbbx 1.03: TV925 */
|
||
|
proc pEndGraphics(); /* mbbx 1.03: TV925 */
|
||
|
proc pLinDel();
|
||
|
proc pCharDel();
|
||
|
proc pLinIns();
|
||
|
proc pNextLine();
|
||
|
proc pClrAll();
|
||
|
proc pPrintOn();
|
||
|
proc pPrintOff();
|
||
|
proc pTransPrint(); /* rjs bug2 */
|
||
|
VOID NEAR checkTransPrint(BYTE); /* rjs swat */
|
||
|
proc pVideoAttrib();
|
||
|
proc pVideoAttribState();
|
||
|
proc pCursorOnOff();
|
||
|
proc pCursorOnOffState();
|
||
|
proc pAnswerBack();
|
||
|
proc pEchoOff();
|
||
|
proc pEchoOn();
|
||
|
proc pCR();
|
||
|
proc pBackSpace();
|
||
|
proc pBeep();
|
||
|
proc pEscSequence();
|
||
|
VOID NEAR aSetCompLevel(); /* mbbx 1.10: VT220 8BIT */
|
||
|
VOID NEAR pSetCtrlBits(); /* mbbx 2.00: VT220 8BIT */
|
||
|
proc aCursor();
|
||
|
proc aClrEol();
|
||
|
proc aClrEop();
|
||
|
proc aCursUp();
|
||
|
proc aCursDn();
|
||
|
proc aCursRt();
|
||
|
proc aCursLt();
|
||
|
proc aClearTabs();
|
||
|
proc aVideo();
|
||
|
proc aSetMode();
|
||
|
proc aReport();
|
||
|
proc aSetScrRgn();
|
||
|
proc aDelLin();
|
||
|
proc aInsLin();
|
||
|
proc aDelChar();
|
||
|
proc pVT100H();
|
||
|
proc pVT100D();
|
||
|
proc pVT100M();
|
||
|
proc pVT100c();
|
||
|
proc pVT100P(); /* mbbx: new routine */
|
||
|
proc pDCS(); /* mbbx: yterm */
|
||
|
proc pDCSTerminate();
|
||
|
proc ansiArgument();
|
||
|
proc ansiDelimiter();
|
||
|
proc ansiHeathPrivate();
|
||
|
proc ansiDecPrivate();
|
||
|
proc testPause(BYTE);
|
||
|
BOOL NEAR writeRcvChar(BYTE theChar); /* mbbx 1.10 */
|
||
|
VOID NEAR putRcvChar(BYTE theChar); /* mbbx 1.10 */
|
||
|
VOID putDebugChar(BYTE, BOOL); /* mbbx 2.00: FAR, bRcvChar... */
|
||
|
VOID modemInp(INT, BOOL); /* mbbx 1.10 */
|
||
|
|
||
|
/*** PHONE.C ***/
|
||
|
BOOL termSendCmd(BYTE *str, INT nBytes,WORD wFlags);
|
||
|
|
||
|
/*** RDMODEM.C ***/
|
||
|
BOOL FAR testWhenEnabled();
|
||
|
BOOL FAR testWhenActive();
|
||
|
BOOL NEAR brake();
|
||
|
VOID rdModem(BOOL);
|
||
|
|
||
|
/*** SERIAL.C ***/
|
||
|
VOID resetSerial(recTrmParams *trmParams, BOOL bLoad, BOOL bInit, BYTE byFlowFlag); /* slc swat */
|
||
|
BOOL PASCAL NEAR resetSerialError0(recTrmParams *trmParams, WORD count);
|
||
|
BOOL PASCAL NEAR resetSerialError1(recTrmParams *trmParams, WORD count);
|
||
|
DWORD checkCommEvent(LPVOID);
|
||
|
|
||
|
/*** SETTINGS.C ***/
|
||
|
BOOL doSettings(INT, DLGPROC);
|
||
|
/* changed WORD -> UINT -sdj */
|
||
|
INT_PTR APIENTRY dbPhon(HWND, UINT, WPARAM, LPARAM);
|
||
|
INT_PTR APIENTRY dbEmul(HWND, UINT, WPARAM, LPARAM);
|
||
|
INT_PTR APIENTRY dbTerm(HWND, UINT, WPARAM, LPARAM);
|
||
|
VOID NEAR setDlgFkeys(HWND, INT);
|
||
|
VOID NEAR getDlgFkeys(HWND, INT);
|
||
|
/* changed WORD -> UINT -sdj */
|
||
|
INT_PTR APIENTRY dbFkey(HWND, UINT, WPARAM, LPARAM);
|
||
|
VOID NEAR enableChrItems(HWND, BOOL);
|
||
|
VOID NEAR enableLinItems(HWND, BOOL);
|
||
|
/* changed WORD -> UINT -sdj */
|
||
|
INT_PTR APIENTRY dbTxtX(HWND, UINT, WPARAM, LPARAM);
|
||
|
INT_PTR APIENTRY dbBinX(HWND, UINT, WPARAM, LPARAM);
|
||
|
INT_PTR APIENTRY dbComm(HWND, UINT, WPARAM, LPARAM);
|
||
|
INT_PTR APIENTRY dbComBios(HWND, WORD, WPARAM, LPARAM); /* mbbx 2.00: network... */
|
||
|
INT_PTR APIENTRY dbNetBios(HWND, WORD, WPARAM, LPARAM); /* mbbx 2.00: network... */
|
||
|
INT_PTR APIENTRY dbUBNetCI(HWND, WORD, WPARAM, LPARAM); /* mbbx 2.00: network... */
|
||
|
INT_PTR APIENTRY dbDevice(HWND, WORD, WPARAM, LPARAM); /* mbbx 2.00: network... */
|
||
|
/* changed WORD -> UINT -sdj */
|
||
|
INT_PTR APIENTRY dbModem(HWND, UINT, WPARAM, LPARAM); /* mbbx 1.10: CUA... */
|
||
|
VOID chkGrpButton(HWND, INT, INT, INT);
|
||
|
BYTE whichGrpButton(HWND, INT, INT);
|
||
|
/* mbbx 1.04: obsolete routines...
|
||
|
VOID initDlgPhon ();
|
||
|
VOID dlgCommandPhon ();
|
||
|
VOID initDlgEmul ();
|
||
|
VOID dlgCommandEmul ();
|
||
|
VOID initDlgTerm ();
|
||
|
VOID dlgCommandTerm ();
|
||
|
VOID initDlgFkey ();
|
||
|
VOID dlgCommandFkey ();
|
||
|
VOID setFkeys ();
|
||
|
VOID getFkeys ();
|
||
|
VOID enableButton ();
|
||
|
VOID initDlgTxtX ();
|
||
|
VOID dlgCommandTxtX ();
|
||
|
VOID initDlgBinX ();
|
||
|
VOID dlgCommandBinX ();
|
||
|
VOID initDlgComm ();
|
||
|
VOID dlgCommandComm ();
|
||
|
BOOL APIENTRY dbModem();
|
||
|
*/
|
||
|
INT_PTR APIENTRY dbKerRemote(HWND, UINT, WPARAM, LPARAM);
|
||
|
/*
|
||
|
VOID initDlgKerRemote();
|
||
|
VOID dlgCommandKerRemote();
|
||
|
*/
|
||
|
|
||
|
/*** MDMUTIL.C ***/
|
||
|
BOOL mdmConnect();
|
||
|
VOID modemReset();
|
||
|
VOID modemSendBreak(INT);
|
||
|
INT modemBytes();
|
||
|
/* BOOL modemAvail(); */
|
||
|
BYTE getMdmChar(BOOL); /* mbbx 1.06A: ics new xlate */
|
||
|
BOOL getRcvChar(BYTE *, BYTE);
|
||
|
BOOL waitRcvChar(BYTE *, WORD, BYTE,BYTE, ...);
|
||
|
BOOL modemRd(BYTE *); /* obsolete !!! */
|
||
|
BOOL modemRdy(); /* obsolete !!! */
|
||
|
BOOL modemWt(BYTE *); /* obsolete !!! */
|
||
|
VOID flushRBuff();
|
||
|
BOOL modemWrite(LPSTR, INT);
|
||
|
VOID modemWr(BYTE);
|
||
|
VOID termStr(STRING *, INT, BOOL);
|
||
|
|
||
|
/*** YTERM.C ***/
|
||
|
VOID yTermRcvBlock();
|
||
|
VOID yTermEnd();
|
||
|
VOID yTermCancel();
|
||
|
VOID yTermInit();
|
||
|
VOID blk43Decode();
|
||
|
VOID yTermPutStr();
|
||
|
INT yTermBlkEncode();
|
||
|
VOID ytSendCRC();
|
||
|
VOID yTermResponse();
|
||
|
VOID yTermBegin();
|
||
|
VOID yTermCheckSum();
|
||
|
VOID hostReady();
|
||
|
BYTE hostAck();
|
||
|
|
||
|
/*** DCUTIL1.C ***/
|
||
|
VOID setDefaults();
|
||
|
BOOL clearTermBuffer(UINT prevLines,UINT bufLines,UINT lineWidth); /* mbbx 2.00.03 ... */
|
||
|
BOOL initTermBuffer(WORD bufLines, WORD lineWidth,BOOL bReset);
|
||
|
VOID resetTermBuffer(VOID);
|
||
|
|
||
|
/*** DCUTIL2.C ***/
|
||
|
VOID showTerminal(BOOL, BOOL); /* mbbx 2.00.08: term init */
|
||
|
VOID showHidedbmyControls(BOOL, BOOL); /* mbbx 2.00 */
|
||
|
|
||
|
/*** DCUTIL3.C ***/
|
||
|
VOID buildTermFont();
|
||
|
VOID clearFontCache();
|
||
|
|
||
|
// VOID lsetmem(LPSTR, BYTE, WORD);
|
||
|
|
||
|
VOID getFileDate(DOSTIME *, INT);
|
||
|
|
||
|
// VOID lmovmem(LPSTR, LPSTR, WORD);
|
||
|
/*** SCROLL.C ***/
|
||
|
VOID updateTermScrollBars(BOOL); /* mbbx 2.00.06: jtf display... */
|
||
|
proc scrollTermWindow(INT, INT);
|
||
|
proc scrollTermLine(INT, INT, INT);
|
||
|
VOID scrollBits();
|
||
|
VOID scrollUp(INT, INT, INT);
|
||
|
VOID scrollDown(INT, INT, INT);
|
||
|
VOID pageScroll(INT);
|
||
|
VOID hPageScroll(INT);
|
||
|
VOID trackScroll(INT, INT);
|
||
|
|
||
|
/*** SHOWSTAT.C ***/ /* mbbx 2.00: xfer ctrls... */
|
||
|
VOID setXferCtrlButton(WORD wCtrlID, WORD wResID);
|
||
|
INT NEAR placeXferCtrl(HWND, INT);
|
||
|
VOID showXferCtrls(WORD fShowCtrls);
|
||
|
HDC NEAR beginXferCtrlUpdate(HWND, RECT *, BOOL);
|
||
|
VOID NEAR setItemText(INT, BYTE *, BOOL);
|
||
|
VOID bSetUp(BYTE *);
|
||
|
VOID showScale();
|
||
|
VOID updateProgress(BOOL);
|
||
|
VOID showBBytes(LONG, BOOL);
|
||
|
VOID showRXFname(BYTE *, INT);
|
||
|
VOID showBErrors(INT);
|
||
|
VOID updateIndicators();
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/* mbbx: yterm mods to SNDBFILE.C */
|
||
|
VOID setupFinderInfo();
|
||
|
VOID getFinderInfo();
|
||
|
|
||
|
proc scrollTopPart ();
|
||
|
proc scroll ();
|
||
|
|
||
|
VOID pageFeed ();
|
||
|
VOID paintTerm ();
|
||
|
|
||
|
VOID setFKeyTitles(); /* mbbx 2.00 ... */
|
||
|
BOOL NEAR testFKeyLevel(INT);
|
||
|
INT NEAR nextFKeyLevel(INT);
|
||
|
VOID setFKeyLevel(INT, BOOL);
|
||
|
|
||
|
VOID doCommand ();
|
||
|
VOID resetEmul ();
|
||
|
VOID openAwindow ();
|
||
|
VOID clearBuffer ();
|
||
|
VOID termAnswer ();
|
||
|
VOID termSpecial ();
|
||
|
VOID clearModes ();
|
||
|
VOID onCursor ();
|
||
|
VOID offCursor ();
|
||
|
|
||
|
VOID putCursor ();
|
||
|
|
||
|
VOID reDrawTermLine ();
|
||
|
VOID toggleCursor ();
|
||
|
VOID doEditMenu ();
|
||
|
VOID scrollText ();
|
||
|
VOID xferFile ();
|
||
|
VOID termSpecial ();
|
||
|
VOID stripLeadingSpaces ();
|
||
|
VOID xferEnd ();
|
||
|
VOID trackScroll ();
|
||
|
VOID scrollBits ();
|
||
|
VOID scrollUp ();
|
||
|
VOID scrollDown ();
|
||
|
VOID pageScroll ();
|
||
|
VOID hPageScroll ();
|
||
|
VOID teScr ();
|
||
|
VOID delay (UINT units, DWORD *endingCount);
|
||
|
VOID setDefaultFonts ();
|
||
|
/* VOID zoomTerm (); */
|
||
|
VOID zoomChild(HWND);
|
||
|
VOID freeItResources ();
|
||
|
VOID updateTimer ();
|
||
|
VOID readDateTime ();
|
||
|
VOID timerAction(BOOL, BOOL); /* mbbx 1.03: VOID tmrAction(); */
|
||
|
VOID timerToggle(BOOL); /* mbbx 1.03: VOID tmrToggle(); */
|
||
|
VOID clipRect ();
|
||
|
//VOID setAttrib ();
|
||
|
VOID getMdmResult ();
|
||
|
VOID saveSelection ();
|
||
|
VOID frameTime ();
|
||
|
VOID loadKeyPadString ();
|
||
|
VOID rectCursor ();
|
||
|
VOID exitSerial ();
|
||
|
VOID errTest ();
|
||
|
VOID newFile ();
|
||
|
VOID clsFile ();
|
||
|
VOID savFile ();
|
||
|
VOID svsFile ();
|
||
|
VOID opnFile ();
|
||
|
VOID getWTitle ();
|
||
|
VOID addExtension();
|
||
|
VOID setWTitle ();
|
||
|
VOID execErr ();
|
||
|
VOID addParen ();
|
||
|
VOID rdErr ();
|
||
|
VOID stripFileExt ();
|
||
|
/* VOID forceExtension(); mbbx 2.00: defined in FILEOPEN.H */
|
||
|
VOID sndTFile ();
|
||
|
VOID typTFile ();
|
||
|
VOID rcvTFile ();
|
||
|
VOID sndBFile ();
|
||
|
VOID rcvPutFile ();
|
||
|
VOID rcvBFile ();
|
||
|
VOID rcvErr ();
|
||
|
VOID rcvPre ();
|
||
|
VOID showRXFname ();
|
||
|
VOID showScale ();
|
||
|
VOID sndBPre ();
|
||
|
VOID sndBFileErr ();
|
||
|
VOID showBErrors ();
|
||
|
VOID rcvErr ();
|
||
|
VOID rcvBPre ();
|
||
|
VOID showBBytes ();
|
||
|
VOID rxEventLoop ();
|
||
|
VOID rcvAbort ();
|
||
|
|
||
|
VOID getDateTime ();
|
||
|
VOID sec2date ();
|
||
|
VOID date2secs ();
|
||
|
VOID termActivate ();
|
||
|
VOID termDeactivate ();
|
||
|
VOID termSetSelect ();
|
||
|
VOID termClick ();
|
||
|
VOID releasePort ();
|
||
|
VOID dialPhone ();
|
||
|
VOID hangUpPhone ();
|
||
|
VOID waitCall ();
|
||
|
VOID printchar ();
|
||
|
VOID lineFeed ();
|
||
|
VOID endOfPrintJob ();
|
||
|
VOID prAction ();
|
||
|
VOID prSelection ();
|
||
|
VOID xShowLine ();
|
||
|
VOID ansInTalk ();
|
||
|
VOID ansKermit();
|
||
|
VOID selectTermFont ();
|
||
|
VOID sizeTimerRect ();
|
||
|
VOID hideTermCursor ();
|
||
|
VOID showTermCursor ();
|
||
|
|
||
|
BOOL getScrCh ();
|
||
|
BOOL copyTable ();
|
||
|
BOOL myAbort();
|
||
|
BOOL keyPadSequence ();
|
||
|
BOOL getArg ();
|
||
|
BOOL APIENTRY dbSendFile ();
|
||
|
BOOL APIENTRY pasClikLoop ();
|
||
|
BOOL APIENTRY dbSelSavApp ();
|
||
|
INT_PTR APIENTRY dbAbortDlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||
|
//BOOL APIENTRY dbDialing ();
|
||
|
//BOOL APIENTRY dbmyControls();
|
||
|
BOOL writeFile ();
|
||
|
BOOL myPutFile ();
|
||
|
BOOL getPutFN ();
|
||
|
BOOL newPath ();
|
||
|
BOOL searchFileSpec ();
|
||
|
BOOL checkFilename ();
|
||
|
BOOL isCharLegal ();
|
||
|
BOOL fnErr ();
|
||
|
BOOL fileExist ();
|
||
|
BOOL ldFile ();
|
||
|
BOOL readFile ();
|
||
|
BOOL rdFileErr ();
|
||
|
BOOL APIENTRY dbStdFN ();
|
||
|
BOOL APIENTRY dbGetPutFN ();
|
||
|
BOOL APIENTRY dbTypTFile ();
|
||
|
BOOL APIENTRY dbRcvTFile ();
|
||
|
BOOL APIENTRY abortDlgProc (HDC, INT);
|
||
|
BOOL readMacSettings ();
|
||
|
BOOL writeMacSettings ();
|
||
|
BOOL readMacSettings ();
|
||
|
BOOL writeMacSettings ();
|
||
|
//BOOL APIENTRY dbDialing ();
|
||
|
|
||
|
BOOL rcvPutBFile ();
|
||
|
BOOL getSndTFile ();
|
||
|
BOOL getSndBFile ();
|
||
|
BOOL getSndTFile ();
|
||
|
BOOL startOfPrintJob ();
|
||
|
|
||
|
BYTE *concat ();
|
||
|
// BYTE *getcwd ();
|
||
|
/* this is redefined here, now including the cruntime headers -sdj*/
|
||
|
/* BYTE *strchr (); */
|
||
|
BYTE whichGrpButton ();
|
||
|
|
||
|
INT valIndex ();
|
||
|
INT pos ();
|
||
|
INT classifyKey (WORD vrtKey);
|
||
|
INT availSerial ();
|
||
|
INT testBox ();
|
||
|
INT sysError ();
|
||
|
INT wrErr ();
|
||
|
|
||
|
LONG fileSize();
|
||
|
|
||
|
HDC getPort ();
|
||
|
|
||
|
HANDLE macToDOSText ();
|
||
|
|
||
|
/* VOID newHTE (); mbbx 2.00.03: old code */
|
||
|
/* VOID crBuffer(int, int); mbbx 2.00.03: old code */
|
||
|
|
||
|
/*** DATESTUF.C ***/
|
||
|
VOID date2secs (DOSTIME *, LONG *);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/*were not defined but called from initcode.c */
|
||
|
|
||
|
BOOL PrintFileInit();
|
||
|
void PrintFileShutDown ();
|
||
|
VOID sizeFkeys(LONG clientSize);
|
||
|
VOID initChildSize(RECT *pRect);
|
||
|
VOID setDefaultAttrib(BOOL bLoad);
|
||
|
VOID initDlgPos(HWND hDlg);
|
||
|
VOID initComDevSelect(HWND hDlg, WORD wListID, BOOL bInit);
|
||
|
BYTE getComDevSelect(HWND hDlg, WORD wListID, BYTE *newDevRef);
|
||
|
BOOL getFileType(BYTE *fileName, BYTE *fileExt);
|
||
|
VOID taskInit();
|
||
|
VOID keyMapInit();
|
||
|
BOOL termInitSetup(HANDLE hPrevInstance);
|
||
|
VOID forceExtension(BYTE *fileName, BYTE *fileExt, BOOL bReplace);
|
||
|
BOOL termFile(BYTE *filePath,BYTE *fileName,BYTE *fileExt,BYTE *title,WORD flags);
|
||
|
VOID sizeTerm(LONG termSize);
|
||
|
VOID keyMapCancel();
|
||
|
|
||
|
/*****************/
|
||
|
|
||
|
/* were not defined but called from winmain.c */
|
||
|
|
||
|
VOID xSndBFile();
|
||
|
VOID xRcvBFile();
|
||
|
|
||
|
/**************/
|
||
|
|
||
|
/* were not defined but called from winmain.c*/
|
||
|
|
||
|
void myDrawIcon(HDC hDC, BOOL bErase);
|
||
|
BOOL termCloseAll(VOID);
|
||
|
void flashIcon(BOOL bInitFlash, BOOL bEndProc);
|
||
|
WORD childZoomStatus(WORD wTest, WORD wSet);
|
||
|
VOID initMenuPopup(WORD menuIndex);
|
||
|
BOOL keyMapTranslate(WPARAM *wParam, LPARAM *lParam, STRING *mapStr);
|
||
|
BOOL fKeyStrBuffer(BYTE *str,WORD len);
|
||
|
BOOL keyMapSysKey(HWND hWnd, WORD message , WPARAM *wParam, LPARAM lParam); //sdj: AltGr
|
||
|
VOID longToPoint(long sel, POINT *pt);
|
||
|
|
||
|
VOID keyMapKeyProc(HWND hWnd, WORD message, WPARAM wParam, LPARAM lParam); //sdj: AltGr
|
||
|
BOOL termCloseFile(VOID);
|
||
|
VOID hpageScroll(int which);
|
||
|
|
||
|
|
||
|
|
||
|
VOID PrintFileString(LPSTR lpchr,LONG count, BOOL bCRtoLF);
|
||
|
BOOL PrintFileOn(HANDLE theInstance,HWND theWnd,
|
||
|
LPSTR thePrintName,LPSTR thePrintType,LPSTR thePrintDriver,
|
||
|
LPSTR thePrintPort,BOOL showDialog);
|
||
|
BOOL PrintFileOff();
|
||
|
void PrintFileLineFeed (BOOL nextLine);
|
||
|
void PrintFilePageFeed ();
|
||
|
|
||
|
|
||
|
BOOL termSaveFile(BOOL bGetName);
|
||
|
|
||
|
|
||
|
int testMsg(BYTE *str0, BYTE* str1, BYTE *str2);
|
||
|
|
||
|
|
||
|
|
||
|
VOID xferStopBreak(BOOL bStop);
|
||
|
|
||
|
VOID xferPauseResume(BOOL bPause, BOOL bResume);
|
||
|
|
||
|
void selectFKey(UINT wIDFKey);
|
||
|
|
||
|
BOOL sendKeyInput(BYTE theByte);
|
||
|
|
||
|
VOID sndAbort ();
|
||
|
|
||
|
int countChildWindows(BOOL bUnzoom);
|
||
|
|
||
|
VOID stripBlanks (LPBYTE ptr, DWORD *len);
|
||
|
|
||
|
VOID doFileNew();
|
||
|
|
||
|
VOID doFileOpen();
|
||
|
VOID doFileClose();
|
||
|
VOID doFileSave();
|
||
|
VOID doFileSaveAs();
|
||
|
|
||
|
VOID stripControl(STRING *str);
|
||
|
int TF_ErrProc(WORD errMess, WORD errType,WORD errCode);
|
||
|
|
||
|
|
||
|
BOOL XM_RcvFile(WORD rcvStatus);
|
||
|
BOOL FAR KER_Receive(BOOL bRemoteServer);
|
||
|
VOID listFontSizes(BYTE *faceName, BYTE *sizeList, int maxSize);
|
||
|
|
||
|
void updateIcon();
|
||
|
BOOL XM_SndFile(WORD);
|
||
|
BOOL FAR KER_Send();
|
||
|
VOID setAppTitle();
|
||
|
|
||
|
|
||
|
VOID icsResetTable(WORD icsType);
|
||
|
VOID rcvFileErr();
|
||
|
|
||
|
|
||
|
/* connector.c needs this fn from wndproc.c */
|
||
|
HWND dlgGetFocus();
|
||
|
|
||
|
/* initcode.c needs this from connect.c */
|
||
|
BOOL initConnectors(BOOL bInit);
|
||
|
/* defined in messages.c called from dcutil */
|
||
|
INT testResMsg(WORD wResID);
|
||
|
|
||
|
/* two famous functions. dont know how this was working in win3.0 -sdj*/
|
||
|
/* these functions have some case problem, called with uppercase B and
|
||
|
defined with lowercase b in term.c, not changed to Board */
|
||
|
|
||
|
VOID keyBoardToMouse(INT partCode);
|
||
|
|
||
|
/* this one was called as bSetup and defined as bSetUp() in showstat.c */
|
||
|
VOID bSetup(BYTE *str);
|
||
|
|
||
|
void APIENTRY nextFlash(HWND hWnd, UINT message, UINT_PTR nIDEvent, DWORD sysTime);
|
||
|
INT_PTR APIENTRY dbDialing(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
|
||
|
INT_PTR APIENTRY dbmyControls(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
|
||
|
|
||
|
/* rjs - add prototype for the about dialog function */
|
||
|
INT_PTR CALLBACK dbAbout(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|