/* * Header file for Windows H19 terminal emulator * * Written by William S. Hall * 3665 Benton Street, #66 * Santa Clara, CA 95051 */ #if !defined(EXTERN) #define EXTERN extern #endif /* special messages */ #define WH19_STRINGINPUT WM_USER #define WH19_COMMAND WM_USER+1 #define WH19_CARETFUNCTION WM_USER+2 #define WH19_SAVECURSORPOSITION WM_USER+3 #define WH19_CURSORPOSITION WM_USER+4 #define WH19_SLAPSCREEN WM_USER+5 /* commands */ #define H19_MOVECURSORRIGHT 0 #define H19_MOVECURSORLEFT 1 #define H19_MOVECURSORUP 2 #define H19_MOVECURSORDOWN 3 #define H19_ADJUSTWINDOW 4 #define H19_POSITIONCURSORROW 5 #define H19_POSITIONCURSORCOL 6 #define H19_CURSORHOME 7 #define H19_CLRSCREEN 8 #define H19_CLRTOENDOFSCREEN 9 #define H19_CLRTOENDOFLINE 10 #define H19_ERASELINE 11 #define H19_CLRTOTOPOFSCREEN 12 #define H19_CLRTOSTARTOFLINE 13 #define H19_INSERTLINE 14 #define H19_DELETELINE 15 #define H19_DELETECHAR 16 #define H19_REVERSELINEFEED 17 #define H19_SAVECURSOR 18 #define H19_GETCURSOR 19 /* caret commands */ #define H19_CREATECARET 0 #define H19_DESTROYCARET 1 #define H19_SHOWCARET 2 #define H19_HIDECARET 3 /* command states */ #define NO_COMMAND 0 #define ESC_COMMAND 1 #define YPOS_COMMAND 2 #define XPOS_COMMAND 3 #define SET_COMMAND 4 #define RESET_COMMAND 5 #define SETBAUD_COMMAND 6 /* screen attribute */ #define NORMAL 0 #define REVERSE 1 /* dialog boxes */ #define DT_ABOUT 1 #define DT_COMM 2 #define DT_TERM 3 #define DT_STRING 4 /* controls from comm box */ #define IDD_BAUDRATE 100 #define IDD_110 101 #define IDD_150 102 #define IDD_300 103 #define IDD_600 104 #define IDD_1200 105 #define IDD_1800 106 #define IDD_2000 107 #define IDD_2400 108 #define IDD_3600 109 #define IDD_4800 110 #define IDD_7200 111 #define IDD_9600 112 #define IDD_19200 113 #define IDD_OTHER 114 #define IDD_NONE 115 #define IDD_ODD 116 #define IDD_EVEN 117 #define IDD_MARK 118 #define IDD_SPACE 119 #define IDD_7BIT 120 #define IDD_8BIT 121 #define IDD_COM1 122 #define IDD_COM2 123 #define IDD_DEFPORT 124 #define IDD_SAVE 125 /* controls from term box */ #define IDD_HALF 100 #define IDD_FULL 101 #define IDD_HEATH 102 #define IDD_ANSI 103 #define IDD_NORMAL 104 #define IDD_SHIFTED 105 #define IDD_LINE 106 #define IDD_BLOCK 107 #define IDD_WRAP 108 #define IDD_LFCR 109 #define IDD_CRLF 110 /* controls from key edit box */ #define IDD_STRINGEDIT 100 #define IDD_F1 101 #define IDD_F2 102 #define IDD_F3 103 #define IDD_F4 104 #define IDD_F5 105 #define IDD_F6 106 #define IDD_F7 107 #define IDD_F8 108 #define IDD_F9 109 #define IDD_F10 110 #define IDD_F11 111 #define IDD_F12 112 #define IDD_NOSHIFT 120 #define IDD_SHIFT 121 #define IDD_CONTROL 122 #define IDD_CTRLSHIFT 123 #define IDD_READSTRING 124 #define IDD_SAVESTRING 125 /* strings */ #define IDS_APPNAME 100 #define IDS_ABOUT 101 #define IDS_WINTITLE 102 #define IDS_OFFLINE 103 #define IDS_ONLINE 104 #define IDS_DISPLAYNAME 105 #define IDS_NOCOMOPEN 106 #define IDS_NOCOMSET 107 #define IDS_ADDDEFAULTS 108 #define IDS_FIRSTPORT 109 #define IDS_SECONDPORT 110 #define IDS_COM1 111 #define IDS_COM2 112 #define IDS_CONTINUEPROG 113 #define IDS_BLOCKCURSOR 114 #define IDS_KEYCLICK 115 #define IDS_WRAPAROUND 116 #define IDS_AUTOLFONCR 117 #define IDS_AUTOCRONLF 118 #define IDS_ANSIMODE 119 #define IDS_SHIFTEDKEYPAD 120 #define IDS_FULLDUPLEX 121 #define IDS_CANNOTCLOSECOM 122 #define IDS_TERMNAME 123 #define IDS_STATNAME 124 #define IDS_TERMINAL 125 #define IDS_CANNOTCREATETERM 126 #define IDS_CANNOTCREATESTATUS 127 #define IDS_LINES 128 #define IDS_COLUMNS 129 #define IDS_COMMSTR 130 #define IDS_CANNOTCHANGEPORT 131 #define IDS_SPKEYID1 200 #define IDS_SPKEYID2 201 #define IDS_SPKEYID3 202 #define IDS_SPKEYID4 203 #define IDS_SPKEYID5 204 #define IDS_SPKEYID6 205 #define IDS_SPKEYID7 206 #define IDS_SPKEYID8 207 #define IDS_SPKEYID9 208 #define IDS_SPKEYID10 209 #define IDS_SPKEYID11 210 #define IDS_SPKEYID12 211 #define IDS_SSPKEYID1 220 #define IDS_SSPKEYID2 221 #define IDS_SSPKEYID3 222 #define IDS_SSPKEYID4 223 #define IDS_SSPKEYID5 224 #define IDS_SSPKEYID6 225 #define IDS_SSPKEYID7 226 #define IDS_SSPKEYID8 227 #define IDS_SSPKEYID9 228 #define IDS_SSPKEYID10 229 #define IDS_SSPKEYID11 230 #define IDS_SSPKEYID12 231 #define IDS_CSPKEYID1 240 #define IDS_CSPKEYID2 241 #define IDS_CSPKEYID3 242 #define IDS_CSPKEYID4 243 #define IDS_CSPKEYID5 244 #define IDS_CSPKEYID6 245 #define IDS_CSPKEYID7 246 #define IDS_CSPKEYID8 247 #define IDS_CSPKEYID9 248 #define IDS_CSPKEYID10 249 #define IDS_CSPKEYID11 250 #define IDS_CSPKEYID12 251 #define IDS_CSSPKEYID1 260 #define IDS_CSSPKEYID2 261 #define IDS_CSSPKEYID3 262 #define IDS_CSSPKEYID4 263 #define IDS_CSSPKEYID5 264 #define IDS_CSSPKEYID6 265 #define IDS_CSSPKEYID7 266 #define IDS_CSSPKEYID8 267 #define IDS_CSSPKEYID9 268 #define IDS_CSSPKEYID10 269 #define IDS_CSSPKEYID11 270 #define IDS_CSSPKEYID12 271 /* menus */ #define IDM_ABOUT 300 #define IDM_OFFLINE 301 #define IDM_ONLINE 302 #define IDM_COMM 303 #define IDM_TERM 304 #define IDM_SPECIALKEYS 305 #define IDM_COPY 306 #define IDM_PASTE 307 #define IDM_BREAK 308 #define IDM_RESET 309 #define IDM_SCROLL 310 #define IDM_SHIFTSCROLL 311 #define IDM_CLEARCOM 312 /* accelerators */ #define IDM_F1 400 #define IDM_F2 401 #define IDM_F3 402 #define IDM_F4 403 #define IDM_F5 404 #define IDM_F6 405 #define IDM_F7 406 #define IDM_F8 407 #define IDM_F9 408 #define IDM_F10 409 #define IDM_F11 410 #define IDM_F12 411 #define IDM_SF1 500 #define IDM_SF2 501 #define IDM_SF3 502 #define IDM_SF4 503 #define IDM_SF5 504 #define IDM_SF6 505 #define IDM_SF7 506 #define IDM_SF8 507 #define IDM_SF9 508 #define IDM_SF10 509 #define IDM_SF11 510 #define IDM_SF12 511 #define IDM_CF1 600 #define IDM_CF2 601 #define IDM_CF3 602 #define IDM_CF4 603 #define IDM_CF5 604 #define IDM_CF6 605 #define IDM_CF7 606 #define IDM_CF8 607 #define IDM_CF9 608 #define IDM_CF10 609 #define IDM_CF11 610 #define IDM_CF12 611 #define IDM_CSF1 700 #define IDM_CSF2 701 #define IDM_CSF3 702 #define IDM_CSF4 703 #define IDM_CSF5 704 #define IDM_CSF6 705 #define IDM_CSF7 706 #define IDM_CSF8 707 #define IDM_CSF9 708 #define IDM_CSF10 709 #define IDM_CSF11 710 #define IDM_CSF12 711 /* comm stuff */ #define RXQUESIZE 512 #define BUFSIZE RXQUESIZE - 1 #define TXQUESIZE 128 #define DEF_TABSTOP 8 /* term window size */ #define H19LINES 24 #define H19COLS 80 #define TERMMAXLINES 40 #define TERMMAXCOLS 95 /* misc */ #define VK_SCROLL 0x91 typedef struct MainWndData { HWND hWnd; short BottomTextLine; /* in client coordinates */ short SCTopTextLine, SCBottomTextLine; /* in screen coordinates */ short Width, Height; } MWND; typedef struct TermWndData { HWND hWnd; HDC hDC; HANDLE hVidBuffer; char *pVidBuffer; /* pointer to buffer */ short Xpos, Ypos; short oVidLastLine; /* offset to last line in buffer */ short oTopLine; /* top line of screen */ short oCurrentLine; /* current line of screen */ short oBottomLine; /* bottom line of screen */ short CurLineOffset; /* offset into current screen */ short MaxCols, MaxLines; /* screen size in chars */ short ScreenSize; short TabLimit; short Width, Height; /* screen size */ short CharWidth, CharHeight; } TWND; typedef TWND *PTWND; /* structures */ struct tagS401 { WORD BaudRate; BYTE ByteSize; BYTE Parity; BYTE StopBits; }; struct tagS402 { BOOL BlockCursor; BOOL KeyClick; BOOL WrapAround; BOOL LFonCR; BOOL CRonLF; BOOL ANSIMode; BOOL ShiftedKeypad; BOOL FullDuplex; }; struct CommonData { BOOL BlockCursor; BOOL KeyClick; BOOL WrapAround; BOOL LFonCR; BOOL CRonLF; BOOL ANSIMode; BOOL ShiftedKeypad; BOOL FullDuplex; BOOL InverseVideo; BOOL GraphicsMode; BOOL ICToggle; BOOL AltKeypad; BOOL CursorOff; BOOL OwnCaret; BOOL KeyboardDisabled; BOOL HoldScreen; BOOL ScrollLock; BYTE CharAttribute; HFONT hScreenFont; int CommandState; BOOL StatOpen; BOOL StatOverlayTerm; short CurSaveRow, CurSaveCol; int LineState; int BreakFlag; int ReleaseCount; }; typedef struct GlobalBuf { HANDLE hBuf; LONG lBufSize; LONG lBufHead; LONG lBufTail; } GLOBALBUF; typedef GLOBALBUF *PGLOBALBUF; /* globals */ #define BAUDTABLESIZE 13 EXTERN WORD BaudRateTable[BAUDTABLESIZE] #if defined(INITIALIZE) = {110,150,300,600,1200,1800,2000,2400,3600,4800,7200,9600,19200} #endif ; EXTERN MWND MW; EXTERN TWND TW; EXTERN TWND SW; EXTERN struct CommonData CD; EXTERN struct tagS401 S401; EXTERN struct tagS402 S402; EXTERN GLOBALBUF GB; #define WINTITLELEN 50 EXTERN char szAppName[10]; EXTERN char szTermName[10]; EXTERN char szStatName[10]; EXTERN char szWinTitle[WINTITLELEN]; EXTERN char szOffline[20]; EXTERN char szOnline[20]; EXTERN char *szFKey[12]; EXTERN char *szSFKey[12]; EXTERN char *szCFKey[12]; EXTERN char *szCSFKey[12]; EXTERN short cid; EXTERN DCB CommData; EXTERN HANDLE hInst; EXTERN HANDLE hPrevInst; EXTERN HWND hWndActive; EXTERN HWND hAccel; EXTERN FARPROC fpTerminal; EXTERN HANDLE hCommandLine; EXTERN char *pCommandLine; EXTERN HANDLE hWndNext; EXTERN HANDLE hClipData; EXTERN LPSTR pClipData;