home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / ckc192.zip / CKUUSR.H < prev    next >
C/C++ Source or Header  |  1996-11-24  |  50KB  |  1,317 lines

  1. /*  C K U U S R . H  --  Symbol definitions for C-Kermit ckuus*.c modules  */
  2.  
  3. /*
  4.   Author: Frank da Cruz <fdc@columbia.edu>,
  5.   Columbia University Academic Information Systems, New York City.
  6.  
  7.   Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New
  8.   York.  The C-Kermit software may not be, in whole or in part, licensed or
  9.   sold for profit as a software product itself, nor may it be included in or
  10.   distributed with commercial products or otherwise distributed by commercial
  11.   concerns to their clients or customers without written permission of the
  12.   Office of Kermit Development and Distribution, Columbia University.  This
  13.   copyright notice must not be removed, altered, or obscured.
  14. */
  15. #ifndef CKUUSR_H
  16. #define CKUUSR_H
  17.  
  18. #include "ckucmd.h"            /* Get symbols from command package */
  19.  
  20. /* Sizes of things */
  21.  
  22. #define FSPECL 300            /* Max length for MSEND/GET string */
  23. #define VNAML 64            /* Max length for variable name */
  24. #define ARRAYREFLEN 128            /* Max length for array reference */
  25. #define FORDEPTH 10            /* Maximum depth of nested FOR loops */
  26. #define GVARS 126            /* Highest global var allowed */
  27. #define MAXTAKE 32            /* Maximum nesting of TAKE files */
  28. #define MACLEVEL 64            /* Maximum nesting for macros */
  29. #define NARGS 10            /* Max number of macro arguments */
  30. #define LINBUFSIZ (CMDBL + 10)        /* Size of line[] buffer */
  31. #define TMPBUFSIZ 257            /* Size of temporary buffer */
  32. #define LBLSIZ 50            /* Maximum length for a GOTO label */
  33. #define INPBUFSIZ 256            /* Size of INPUT buffer */
  34. #define CMDSTKL ( MACLEVEL + MAXTAKE + 2) /* Command stack depth */
  35. #define MAC_MAX 256            /* Maximum number of macros */
  36. #define MSENDMAX 100            /* Number of filespecs for MSEND */
  37. #define PROMPTL 256            /* Max length for prompt */
  38.  
  39. #ifndef NOMINPUT            /* MINPUT command */
  40. #ifndef NOSPL
  41. #define CK_MINPUT
  42. #ifndef MINPMAX
  43. #ifdef BIGBUFOK
  44. #define MINPMAX 96            /* Max number of MINPUT strings */
  45. #else
  46. #define MINPMAX 16
  47. #endif /* BIGBUFOK */
  48. #endif /* MINPMAX */
  49. #define MINPBUFL 256            /* Size of MINPUT temp buffer */
  50. #endif /* NOSPL */
  51. #endif /* NOMINPUT */
  52.  
  53. #define ARRAYBASE 95            /* Lowest array-name character */
  54.  
  55. /* Bit values (1, 2, 4, 8, ...) for the ccflgs field */
  56.  
  57. #define CF_APC  1            /* Executing an APC command */
  58. #define CF_KMAC 2            /* Executing a \Kmacro */
  59. #define CF_CMDL 4            /* Macro from -C "blah" command line */
  60. #define CF_REXX 8            /* Macro from REXX interpreter */
  61.  
  62. struct cmdptr {                /* Command stack structure */
  63.     int src;                /* Command Source */
  64.     int lvl;                /* Current TAKE or DO level */
  65.     int ccflgs;                /* Flags */
  66. };
  67.  
  68. struct mtab {                /* Macro table, like keyword table */
  69.     char *kwd;                /* But with pointers for vals */
  70.     char *mval;                /* instead of ints. */
  71.     short flgs;
  72. };
  73.  
  74. struct localvar {            /* Local variable structure. */
  75.     char * lv_name;
  76.     char * lv_value;
  77.     struct localvar * lv_next;
  78. };
  79.  
  80. /*
  81.   C-Kermit Initialization file...
  82.  
  83.   System-dependent defaults are built into the program, see below.
  84.   These can be overridden in either of two ways:
  85.   1. CK_DSYSINI is defined at compile time, in which case a default
  86.      system-wide initialization file name is chosen from below, or:
  87.   2: CK_SYSINI is defined to be a string, which lets the program
  88.      builder choose the initialization filespec at compile time. 
  89.   These can be given on the CC command line, so the source code need not be
  90.   changed.
  91. */
  92.  
  93. #ifndef CK_SYSINI            /* If no initialization file given, */
  94. #ifdef CK_DSYSINI            /* but CK_DSYSINI is defined... */
  95.  
  96. /* Supply system-dependent "default default" initialization file */
  97.  
  98. #ifdef UNIX                /* For UNIX, system-wide */
  99. /* This allows one copy of the standard init file on the whole system, */
  100. /* rather than a separate copy in each user's home directory. */
  101. #ifdef HPUX10
  102. #define CK_SYSINI "/usr/share/lib/kermit/ckermit.ini"
  103. #else
  104. #ifdef CU_ACIS
  105. #define CK_SYSINI "/usr/share/lib/kermit/ckermit.ini"
  106. #else
  107. #define CK_SYSINI "/usr/local/bin/ckermit.ini"
  108. #endif /* CU_ACIS */
  109. #endif /* HPUX10 */
  110. /* Fill in #else..#ifdef's here for VMS, OS/2, etc. */
  111. /* Fill in matching #endif's here. */
  112. #endif /* UNIX */
  113.  
  114. #endif /* CK_DSYSINI */
  115. #endif /* CK_SYSINI */
  116.  
  117. #ifdef CK_SYSINI            /* Init-file precedence */
  118. #ifndef CK_INI_A            /* A means system-wide file first */
  119. #ifndef CK_INI_B            /* B means user's first */
  120. #define CK_INI_A            /* A is default */
  121. #endif /* CK_INI_B */
  122. #endif /* CK_INI_A */
  123. #else
  124. #ifdef CK_INI_A                /* Otherwise */
  125. #undef CK_INI_A                /* make sure these aren't defined */
  126. #endif /* CK_INI_A */
  127. #ifdef CK_INI_B
  128. #undef CK_INI_B
  129. #endif /* CK_INI_B */
  130. #endif /* CK_SYSINI */
  131.  
  132. #ifdef CK_SYSINI            /* One more check... */
  133. #ifdef CK_INI_A                /* Make sure they're not both */
  134. #ifdef CK_INI_B                /* defined. */
  135. #undef CK_INI_B
  136. #endif /* CK_INI_B */
  137. #endif /* CK_INI_A */
  138. #endif /* CK_SYSINI */
  139. /*
  140.   If neither CK_DSYSINI nor CK_SYSINI are defined, these are the
  141.   built-in defaults for each system:
  142. */
  143. #ifdef vms
  144. #define KERMRC "CKERMIT.INI"
  145. #define KERMRCL 256
  146. #else
  147. #ifdef OS2
  148. #ifdef NT
  149. #define KERMRC "k95.ini"
  150. #else
  151. #define KERMRC "k2.ini"
  152. #endif /* NT */
  153. #define KERMRCL 256
  154. #else
  155. #ifdef UNIX
  156. #define KERMRC ".kermrc"
  157. #define KERMRCL 256
  158. #else
  159. #ifdef OSK
  160. #define KERMRC ".kermrc"
  161. #define KERMRCL 256
  162. #else
  163. #ifdef STRATUS
  164. #define KERMRC "ckermit.ini"
  165. #define KERMRCL 256
  166. #else
  167. #define KERMRC "CKERMIT.INI"
  168. #define KERMRCL 256
  169. #endif /* STRATUS */
  170. #endif /* OSK */
  171. #endif /* UNIX */
  172. #endif /* OS2 */
  173. #endif /* vms */
  174.  
  175. #ifndef KERMRCL
  176. #define KERMRCL 256
  177. #endif /* KERMRCL */
  178.  
  179. /* User interface features */
  180.  
  181. #ifdef CK_CURSES            /* Thermometer */
  182. #ifndef NO_PCT_BAR
  183. #ifndef CK_PCT_BAR
  184. #define CK_PCT_BAR
  185. #endif /* NO_PCT_BAR */
  186. #endif /* CK_PCT_BAR */
  187. #endif /* CK_CURSES */
  188.  
  189. #ifdef KUI            /* KUI requires the Thermometer code */
  190. #ifndef NO_PCT_BAR
  191. #ifndef CK_PCT_BAR
  192. #define CK_PCT_BAR
  193. #endif /* NO_PCT_BAR */
  194. #endif /* CK_PCT_BAR */
  195. #endif /* KUI */
  196.  
  197. /* Includes */
  198.  
  199. #ifdef MINIX
  200. /* why? */
  201. #include <sys/types.h>
  202. #endif /* MINIX */
  203.  
  204. /* Symbols for command source */
  205.  
  206. #define CMD_KB 0            /* KeyBoard or standard input */
  207. #define CMD_TF 1            /* TAKE command File */
  208. #define CMD_MD 2            /* Macro Definition */
  209.  
  210. /*
  211.   SET TRANSFER CANCELLATION command should be available in all versions.
  212.   But for now...
  213. */
  214. #ifdef UNIX                /* UNIX has it */
  215. #ifndef XFRCAN
  216. #define XFRCAN
  217. #endif /* XFRCAN */
  218. #endif /* UNIX */
  219. #ifdef VMS                /* VMS has it */
  220. #ifndef XFRCAN
  221. #define XFRCAN
  222. #endif /* XFRCAN */
  223. #endif /* VMS */
  224. #ifdef datageneral            /* DG AOS/VS has it */
  225. #ifndef XFRCAN
  226. #define XFRCAN
  227. #endif /* XFRCAN */
  228. #endif /* datageneral */
  229. #ifdef STRATUS                /* Stratus VOS has it */
  230. #ifndef XFRCAN
  231. #define XFRCAN
  232. #endif /* XFRCAN */
  233. #endif /* STRATUS */
  234. #ifdef OSK                /* OS-9 */
  235. #ifndef XFRCAN
  236. #define XFRCAN
  237. #endif /* XFRCAN */
  238. #endif /* OSK */
  239.  
  240. /* Top Level Commands */
  241. /* Values associated with top-level commands must be 0 or greater. */
  242.  
  243. #define XXBYE   0    /* BYE */
  244. #define XXCLE   1    /* CLEAR */
  245. #define XXCLO   2    /* CLOSE */
  246. #define XXCON   3    /* CONNECT */
  247. #define XXCPY   4    /* COPY */
  248. #define XXCWD   5    /* CWD (Change Working Directory) */
  249. #define XXDEF    6    /* DEFINE (a command macro) */
  250. #define XXDEL   7    /* (Local) DELETE */
  251. #define XXDIR   8    /* (Local) DIRECTORY */
  252. #define XXDIS   9    /* DISABLE */
  253. #define XXECH  10    /* ECHO */
  254. #define XXEXI  11    /* EXIT */
  255. #define XXFIN  12    /* FINISH */
  256. #define XXGET  13    /* GET */
  257. #define XXHLP  14    /* HELP */
  258. #define XXINP  15    /* INPUT */
  259. #define XXLOC  16    /* LOCAL */
  260. #define XXLOG  17    /* LOG */
  261. #define XXMAI  18    /* MAIL */
  262. #define XXMOU  19    /* (Local) MOUNT */
  263. #define XXMSG  20    /* (Local) MESSAGE */
  264. #define XXOUT  21    /* OUTPUT */
  265. #define XXPAU  22    /* PAUSE */
  266. #define XXPRI  23    /* (Local) PRINT */
  267. #define XXQUI  24    /* QUIT */
  268. #define XXREC  25    /* RECEIVE */
  269. #define XXREM  26    /* REMOTE */
  270. #define XXREN  27    /* (Local) RENAME */
  271. #define XXSEN  28    /* SEND */
  272. #define XXSER  29       /* SERVER */
  273. #define XXSET  30    /* SET */
  274. #define XXSHE  31    /* Command for SHELL */
  275. #define XXSHO  32    /* SHOW */
  276. #define XXSPA  33    /* (Local) SPACE */
  277. #define XXSTA  34    /* STATISTICS */
  278. #define XXSUB  35    /* (Local) SUBMIT */
  279. #define XXTAK  36    /* TAKE */
  280. #define XXTRA  37    /* TRANSMIT */
  281. #define XXTYP  38    /* (Local) TYPE */
  282. #define XXWHO  39    /* (Local) WHO */
  283. #define XXDIAL 40    /* (Local) DIAL */
  284. #define XXLOGI 41    /* (Local) SCRIPT */
  285. #define XXCOM  42    /* Comment */
  286. #define XXHAN  43       /* HANGUP */
  287. #define XXXLA  44    /* TRANSLATE */
  288. #define XXIF   45    /* IF */
  289. #define XXLBL  46       /* label */
  290. #define XXGOTO 47    /* GOTO */
  291. #define XXEND  48       /* END */
  292. #define XXSTO  49       /* STOP */
  293. #define XXDO   50       /* DO */
  294. #define XXPWD  51       /* PWD */
  295. #define XXTES  52       /* TEST */
  296. #define XXASK  53       /* ASK */
  297. #define XXASKQ 54       /* ASKQ */
  298. #define XXASS  55       /* ASSIGN */
  299. #define XXREI  56       /* REINPUT */
  300. #define XXINC  57       /* INCREMENT */
  301. #define XXDEC  59       /* DECREMENT */
  302. #define XXELS  60       /* ELSE */
  303. #define XXEXE  61    /* EXECUTE */
  304. #define XXWAI  62    /* WAIT */
  305. #define XXVER  63       /* VERSION */
  306. #define XXENA  64       /* ENABLE */
  307. #define XXWRI  65       /* WRITE */
  308. #define XXCLS  66       /* CLS (clear screen) */
  309. #define XXRET  67    /* RETURN */
  310. #define XXOPE  68       /* OPEN */
  311. #define XXREA  69    /* READ */
  312. #define XXON   70       /* ON */
  313. #define XXDCL  71       /* DECLARE */
  314. #define XXBEG  72       /* BEGIN (not used) */
  315. #define XXFOR  72       /* FOR */
  316. #define XXWHI  73       /* WHILE */
  317. #define XXIFX  74       /* Extended IF */
  318. #define XXCMS  75       /* SEND from command output (not yet) */
  319. #define XXCMR  76       /* RECEIVE to a command's input (not yet) */
  320. #define XXCMG  77       /* GET to a command's input (not yet) */
  321. #define XXSUS  78       /* SUSPEND */
  322. #define XXERR  79       /* ERROR */
  323. #define XXMSE  80       /* MSEND */
  324. #define XXBUG  81       /* BUG */
  325. #define XXPAD  82       /* PAD (as in X.25 PAD) ANYX25 */
  326. #define XXRED  83       /* REDIAL */
  327. #define XXGTA  84    /* _getargs (invisible internal) */
  328. #define XXPTA  85    /* _putargs (invisible internal) */
  329. #define XXGOK  86       /* GETOK - Ask for YES/NO */
  330. #define XXTEL  87    /* TELNET */
  331. #define XXASX  88    /* _ASSIGN (evaluates var name) */
  332. #define XXDFX  89    /* _DEFINE (evaluates var name) */
  333. #define XXPNG  90    /* PING (for TCP/IP) */
  334. #define XXINT  91       /* INTRODUCTION */
  335. #define XXCHK  92    /* CHECK (a feature) */
  336. #define XXMSL  93       /* MSLEEP, MPAUSE (millisecond sleep) */
  337. #define XXNEW  94       /* NEWS */
  338. #define XXAPC  95       /* APC */
  339. #define XXFUN  96       /* REDIRECT */
  340. #define XXWRL  97    /* WRITE-LINE */
  341. #define XXREXX 98    /* Rexx */
  342. #define XXMINP 100    /* MINPUT */
  343. #define XXRSEN 101    /* RESEND */
  344. #define XXPSEN 102    /* PSEND */
  345. #define XXGETC 103    /* GETC */
  346. #define XXEVAL 104    /* EVALUATE */
  347. #define XXFWD  105    /* FORWARD */
  348. #define XXUPD  106      /* UPDATES */
  349. #define XXBEEP 107      /* BEEP */
  350. #define XXMOVE 108      /* MOVE */
  351. #define XXMMOVE 109     /* MMOVE */
  352. #define XXREGET 110     /* REGET */
  353. #define XXLOOK  111    /* LOOKUP */
  354. #define XXVIEW  112     /* VIEW (terminal buffer) */
  355. #define XXANSW  113    /* ANSWER (the phone) */
  356. #define XXPDIA  114    /* PDIAL (partial dial) */
  357. #define XXASC   115    /* ASCII / TEXT */
  358. #define XXBIN   116    /* BINARY */
  359. #define XXFTP   117    /* FTP */
  360. #define XXMKDIR 118    /* MKDIR */
  361. #define XXRMDIR 119    /* RMDIR */
  362. #define XXTELOP 120    /* TELOPT */
  363. #define XXRLOG  121    /* RLOGIN */
  364. #define XXUNDEF 122    /* UNDEFINE */
  365. #define XXNPSH  123    /* NOPUSH */
  366. #define XXADD   124    /* ADD */
  367. #define XXLOCAL 125    /* LOCAL */
  368. #define XXKERMI 126    /* KERMIT */
  369. #define XXDATE  127    /* DATE */
  370. #define XXSWIT  128     /* SWITCH */
  371. #define XXXFWD  129    /* _FORWARD */
  372. #define XXSAVE  130     /* SAVE */
  373. #define XXXECH  131     /* XECHO */
  374. #define XXRDBL  132     /* READBLOCK */
  375. #define XXWRBL  133     /* WRITEBLOCK */
  376. #define XXRETR  134     /* RETRIEVE */
  377. #define XXEIGHT 135     /* EIGHTBIT */
  378.  
  379. /* IF conditions */
  380.  
  381. #define  XXIFCO 0       /* IF COUNT */
  382. #define  XXIFER 1       /* IF ERRORLEVEL */
  383. #define  XXIFEX 2       /* IF EXIST */
  384. #define  XXIFFA 3       /* IF FAILURE */
  385. #define  XXIFSU 4       /* IF SUCCESS */
  386. #define  XXIFNO 5       /* IF NOT */
  387. #define  XXIFDE 6       /* IF DEFINED */
  388. #define  XXIFEQ 7    /* IF EQUAL (strings) */
  389. #define  XXIFAE 8       /* IF = (numbers) */
  390. #define  XXIFLT 9       /* IF < (numbers) */
  391. #define  XXIFGT 10      /* IF > (numbers) */
  392. #define  XXIFLL 11      /* IF Lexically Less Than (strings) */
  393. #define  XXIFLG 12      /* IF Lexically Greater Than (strings) */
  394. #define  XXIFEO 13      /* IF EOF (READ file) */
  395. #define  XXIFBG 14      /* IF BACKGROUND */
  396. #define  XXIFNU 15    /* IF NUMERIC */
  397. #define  XXIFFG 16      /* IF FOREGROUND */
  398. #define  XXIFDI 17      /* IF DIRECTORY */
  399. #define  XXIFNE 18      /* IF NEWER */
  400. #define  XXIFRO 19      /* IF REMOTE-ONLY */
  401. #define  XXIFAL 20    /* IF ALARM */
  402. #define  XXIFSD 21      /* IF STARTED-FROM-DIALER */
  403. #define  XXIFTR 22      /* IF TRUE */
  404. #define  XXIFNT 23      /* IF FALSE */
  405. #define  XXIFTM 24      /* IF TERMINAL-MACRO */
  406. #define  XXIFEM 25      /* IF EMULATION */
  407.  
  408. /* SET parameters */
  409.  
  410. #define XYBREA  0    /* BREAK simulation */
  411. #define XYCHKT  1    /* Block check type */
  412. #define XYDEBU  2    /* Debugging */
  413. #define XYDELA  3    /* Delay */
  414. #define XYDUPL  4    /* Duplex */
  415. #define XYEOL   5    /* End-Of-Line (packet terminator) */
  416. #define XYESC   6    /* Escape character */
  417. #define XYFILE  7    /* File Parameters */
  418.             /* (this space available) */
  419. #define XYFLOW  9    /* Flow Control */
  420. #define XYHAND 10    /* Handshake */
  421. #define XYIFD  11    /* Incomplete File Disposition */
  422. #define XYIMAG 12    /* "Image Mode" */
  423. #define XYINPU 13    /* INPUT command parameters */
  424. #define XYLEN  14    /* Maximum packet length to send */
  425. #define XYLINE 15    /* Communication line to use */
  426. #define XYLOG  16    /* Log file */
  427. #define XYMARK 17    /* Start of Packet mark */
  428. #define XYNPAD 18    /* Amount of padding */
  429. #define XYPADC 19    /* Pad character */
  430. #define XYPARI 20    /* Parity */
  431. #define XYPAUS 21    /* Interpacket pause */
  432. #define XYPROM 22    /* Program prompt string */
  433. #define XYQBIN 23    /* 8th-bit prefix */
  434. #define XYQCTL 24    /* Control character prefix */
  435. #define XYREPT 25    /* Repeat count prefix */
  436. #define XYRETR 26    /* Retry limit */
  437. #define XYSPEE 27    /* Line speed (baud rate) */
  438. #define XYTACH 28    /* Character to be doubled */
  439. #define XYTIMO 29    /* Timeout interval */
  440. #define XYMODM 30    /* Modem - also see XYDIAL */
  441.  
  442. #define XYSEND 31    /* SET SEND parameters */
  443. #define XYRECV 32       /* SET RECEIVE parameters */
  444. #define XYTERM 33    /* SET TERMINAL parameters */
  445. #define   XYTBYT 0      /*  Terminal Bytesize (7 or 8) */
  446. #define   XYTTYP 1      /*  Terminal emulation Type */
  447. #define     TT_NONE  0    /*    NONE, no emulation */
  448. /*
  449.   Note, the symbols for VT and VT-like terminals should be in ascending 
  450.   numerical order, so that higher ones can be treated as supersets of
  451.   lower ones with respect to capabilities.
  452. */
  453. #define     TT_DG200    1     /*    Data General 200/210 */
  454. #define     TT_HP2621   2     /*    Hewlett-Packard 2621A */
  455. #define     TT_HZL1500  3     /*    Hazeltine 1500 */
  456. #define     TT_VC4404   4     /*    Volker Craig VC4404/404 */
  457. #define     TT_WY30     5    /*    WYSE-30/30+ */
  458. #define     TT_WY50     6     /*    WYSE-50/50+ */
  459. #define     TT_WY60     7       /*    WYSE-60     */
  460. #define     TT_VT52     8    /*    DEC VT-52  */
  461. #define     TT_H19      9    /*    Heath-19 */
  462. #define     TT_ANSI    10    /*    IBM ANSI.SYS (BBS) */
  463. #define     TT_SCOANSI 11    /*    SCOANSI (Unix mode) */
  464. #define     TT_AT386   12     /*    Unixware AT386 (Unix mode) */
  465. #define     TT_VT100   13    /*    DEC VT-100 */
  466. #define     TT_VT102   14    /*    DEC VT-102 */
  467. #define     TT_VT220   15    /*    DEC VT-220 */
  468. #define     TT_VT320   16    /*    DEC VT-320 */
  469. #define     TT_WY370   17    /*    WYSE 370 ANSI Terminal */
  470. #define     TT_TVI910  18    /*    TVI 910+ */
  471. #define     TT_TVI925  19       /*    TVI 925  */
  472. #define     TT_TVI950  20       /*    TVI950   */
  473. #define     TT_MAX   TT_TVI950
  474. #define     TT_VT420   96    /*    DEC VT-420 */
  475. #define     TT_VT520   97    /*    DEC VT-520/525 */    
  476. #define     TT_IBM     98       /*    IBM 31xx */
  477. #define     TT_TEK40 99    /*    Tektronix 401x */
  478.  
  479. #define ISANSI(x)  (x >= TT_ANSI && x <= TT_AT386)
  480. #define ISSCO(x)   (x == TT_SCOANSI)
  481. #define ISAT386(x) (x == TT_AT386)
  482. #define ISAVATAR(x) (x == TT_ANSI)
  483. #define ISUNIXCON(x) (x == TT_SCOANSI || x == TT_AT386)
  484. #define ISDG200(x) (x == TT_DG200)
  485. #define ISHZL(x)   (x == TT_HZL1500)
  486. #define ISH19(x)   (x == TT_H19) 
  487. #define ISIBM(x)   (x == TT_IBM)
  488. #define ISTVI(x)   (x >= TT_TVI910 && x <= TT_TVI950)
  489. #define ISTVI910(x) (x == TT_TVI910)
  490. #define ISTVI925(x) (x == TT_TVI925)
  491. #define ISTVI950(x) (x == TT_TVI950)
  492. #define ISVT52(x)  (x == TT_VT52 || x == TT_H19)
  493. #define ISVT100(x) (x >= TT_VT100 && x <= TT_WY370)
  494. #define ISVT102(x) (x >= TT_VT102 && x <= TT_WY370)
  495. #define ISVT220(x) (x >= TT_VT220 && x <= TT_WY370)
  496. #define ISVT320(x) (x >= TT_VT320 && x <= TT_WY370)
  497. #define ISVT420(x) (x >= TT_VT420 && x <= TT_VT520)
  498. #define ISVT520(x) (x == TT_VT520)
  499. #define ISWY30(x)  (x == TT_WY30)
  500. #define ISWY50(x)  (x >= TT_WY30 && x <= TT_WY60)
  501. #define ISWY60(x)  (x == TT_WY60)
  502. #define ISWY370(x) (x == TT_WY370)
  503. #define ISVC(x)    (x == TT_VC4404)
  504. #define ISHP(x)    (x == TT_HP2621)
  505.  
  506. #define   XYTCS  2      /*  Terminal Character Set */
  507. #define   XYTSO  3    /*  Terminal Shift-In/Shift-Out */
  508. #define   XYTNL  4      /*  Terminal newline mode */
  509. #define   XYTCOL 5      /*  Terminal colors */
  510. #define   XYTEC  6    /*  Terminal echo = duplex = local-echo */
  511. #define   XYTCUR 7    /*  Terminal cursor */
  512. #define     TTC_ULINE 0 
  513. #define     TTC_HALF  1
  514. #define     TTC_BLOCK 2
  515. #define   XYTARR 8    /*  Terminal arrow-key mode */
  516. #define   XYTKPD 9      /*  Terminal keypad mode */
  517. #define    TTK_NORM 0   /*    Normal mode for arrow / keyad keys */
  518. #define    TTK_APPL 1   /*    Application mode for arrow / keyad keys */
  519. #define   XYTWRP 10     /*  Terminal wrap */
  520. #define   XYTCRD 11    /*  Terminal CR-display */
  521. #define   XYTANS 12    /*  Terminal answerback */
  522. #define   XYSCRS 13     /*  Terminal scrollback buffer size */
  523. #define   XYTAPC 14    /*  Terminal APC */
  524. #define   XYTBEL 15     /*  Terminal Bell */
  525. #define   XYTDEB 16    /*  Terminal Debug */
  526. #define   XYTROL 17     /*  Terminal Rollback */
  527. #define     TTR_OVER   0  /*  Rollback Overwrite */
  528. #define     TTR_INSERT 1  /*  Rollback Insert */
  529. #define   XYTCTS 18     /*  Terminal Transmit-Timeout */
  530. #define   XYTCPG 19     /*  Terminal Code Page */
  531. #ifdef COMMENT
  532. #define   XYTHCU 20     /*  Terminal Hide-Cursor */
  533. #endif /* COMMENT */
  534. #define   XYTPAC 21        /*  Terminal Output-Pacing */
  535. #define   XYTMOU 22        /*  Terminal Mouse */
  536. #define   XYTHIG 23     /*  Terminal Width */
  537. #define   XYTWID 24     /*  Terminal Height */
  538. #define   XYTUPD 25     /*  Terminal Screen-update */
  539. #define    TTU_FAST 0   /*     FAST but jerky */
  540. #define    TTU_SMOOTH 1 /*     SMOOTH but slow */
  541. #define   XYTFON 26     /*  Terminal Full screen Font */
  542. #define    TTF_ROM    0 /*     ROM font */
  543. #define    TTF_CY1    1 /*     CYRILL1 font */
  544. #define    TTF_CY2    2 /*     CYRILL2 font */
  545. #define    TTF_CY3    3 /*     CYRILL3 font */
  546. #define    TTF_111  111 /*     CP111 font */
  547. #define    TTF_112  112 /*     CP112 font */
  548. #define    TTF_113  113 /*     CP113 font */
  549. #define    TTF_437  437 /*     CP437 font */
  550. #define    TTF_850  850 /*     CP850 font */
  551. #define    TTF_851  851 /*     CP851 font */
  552. #define    TTF_852  852 /*     CP852 font */
  553. #define    TTF_853  853 /*     CP853 font */
  554. #define    TTF_860  860 /*     CP860 font */
  555. #define    TTF_861  861 /*     CP861 font */
  556. #define    TTF_862  862 /*     CP862 font */
  557. #define    TTF_863  863 /*     CP863 font */
  558. #define    TTF_864  864 /*     CP864 font */
  559. #define    TTF_865  865 /*     CP865 font */
  560. #define    TTF_866  866 /*     CP866 font */
  561. #define    TTF_880  880 /*     CP880 font */
  562. #define    TTF_881  881 /*     CP881 font */
  563. #define    TTF_882  882 /*     CP882 font */
  564. #define    TTF_883  883 /*     CP883 font */
  565. #define    TTF_884  884 /*     CP884 font */
  566. #define    TTF_885  885 /*     CP885 font */
  567. #define   XYTVCH 27     /* SET TERMINAL VIDEO-CHANGE */
  568. #define   XYTAUTODL 28  /* SET TERMINAL AUTODOWNLOAD */
  569. #define   XYTAUTOUL 29  /* SET TERMINAL AUTOUPLOAD   */
  570. #define   XYTATTBUG 30  /* SET TERM ATTR-BUG */
  571. #define   XYTSTAT   31  /* SET TERM STATUSLINE */
  572. #define   XYTESC    32  /* SET TERM ESCAPE-CHARACTER */
  573. #define   XYTCTRL   33  /* SET TERM CONTROLS */
  574. #define   XYTATTR   34  /* SET TERM ATTRIBUTE representation */
  575. #define   XYTSGRC   35  /* SET TERM SGRCOLORS */
  576. #define   XYTLCS    36  /* SET TERM LOCAL-CHARACTER-SET */
  577. #define   XYTRCS    37  /* SET TERM REMOTE-CHARACTER-SET */
  578. #define   XYTUNI    38  /* SET TERM UNICODE */
  579. #define   XYTKEY    39  /* SET TERM KEY */
  580. #define   XYTSEND   40  /* SET TERM SEND-DATA */
  581. #define   XYTSEOB   41  /* SET TERM SEND-END-OF-BLOCK */
  582.  
  583. #define XYATTR 34       /* Attribute packets */
  584. #define XYSERV 35    /* Server parameters */
  585. #define   XYSERT 0      /*  Server timeout   */
  586. #define   XYSERD 1    /*  Server display   */
  587. #define   XYSERI 2      /*  Server idle      */
  588. #define   XYSERP 3    /*  Server get-path  */
  589. #define   XYSERL 4    /*  Server login     */
  590. #define XYWIND 36       /* Window size */
  591. #define XYXFER 37       /* Transfer */
  592. #define   XYX_CAN 0    /*   Cancellation  */
  593. #define   XYX_CSE 1    /*   Character-Set */
  594. #define   XYX_LSH 2    /*   Locking-Shift */
  595. #define   XYX_PRO 3    /*   Protocol      */
  596. #define   XYX_MOD 4    /*   Mode          */
  597. #define   XYX_DIS 5    /*   Display       */
  598. #define   XYX_SLO 6    /*   Slow-start    */
  599. #define   XYX_CRC 7    /*   CRC calculation */
  600. #define   XYX_BEL 8    /*   Bell */
  601. #define XYLANG 38       /* Language */
  602. #define XYCOUN 39       /* Count */
  603. #define XYTAKE 40       /* Take */ 
  604. #define XYUNCS 41       /* Unknown-character-set */
  605. #define XYKEY  42       /* Key */
  606. #define XYMACR 43       /* Macro */
  607. #define XYHOST 44       /* Hostname on network */
  608. #define XYNET  45       /* SET NETWORK things */
  609.  
  610. #define XYNET_D 99    /* NETWORK DIRECTORY */
  611. #define XYNET_T 100    /* NETWORK TYPE */
  612.  
  613. #define XYCARR 46    /* Carrier */
  614. #define XYXMIT 47       /* Transmit */
  615.  
  616. #define XYDIAL 48       /* Dial options */
  617.  
  618. /* And now we interrupt the flow to bring you lots of stuff about dialing */
  619.  
  620. #ifndef MAXDNUMS
  621. #ifdef BIGBUFOK
  622. #define MAXDDIR 32    /* Maximum number of dialing directories */
  623. #define MAXDNUMS 4095    /* Max numbers to fetch from dialing directories */
  624. #else
  625. #define MAXDDIR 12
  626. #define MAXDNUMS 1024
  627. #endif /* BIGBUFOK */
  628. #endif /* MAXDNUMS */
  629. /*
  630.   IMPORTANT: In 5A(192), the old SET DIAL command was split into two commands:
  631.   SET MODEM (for modem-related parameters) and SET DIAL (for dialing items).
  632.   To preserve the old formats, etc, invisibly we keep one symbol space for
  633.   both commands.
  634. */
  635. #define  XYDHUP  0    /*   Dial Hangup */
  636. #define  XYDINI  1      /*   MODEM (dial) Initialization string */
  637. #define  XYDKSP  2      /*   MODEM (dial) Kermit-Spoof */
  638. #define  XYDTMO  3      /*   Dial Timeout */
  639. #define  XYDDPY  4      /*   Dial Display */
  640. #define  XYDSPD  5      /*   Dial Speed matching */
  641. #define  XYDMNP  6    /*   MODEM (dial) MNP negotiation enabled (obsolete) */
  642. #define  XYDEC   7    /*   MODEM (dial) error correction enabled */
  643. #define  XYDDC   8      /*   MODEM (dial) compression enabled */
  644. #define  XYDHCM  9      /*   MODEM (dial) hangup-string (moved elsewhere) */
  645. #define  XYDDIR 10    /*   Dial directory */
  646. #define  XYDDIA 11    /*   MODEM (dial) dial-command */
  647. #define  XYDMHU 12    /*   MODEM HANGUP (dial modem-hangup) */
  648. #define  XYDNPR 13      /*   Dial PREFIX */
  649. #define  XYDSTR 14    /*   MODEM COMMAND (dial string) ... */
  650.  
  651. #define   XYDS_DC 0    /*    Data compression */
  652. #define   XYDS_EC 1    /*    Error correction */
  653. #define   XYDS_HU 2     /*    Hangup command */
  654. #define   XYDS_HW 3     /*    Hardware flow control */
  655. #define   XYDS_IN 4     /*    Init-string */
  656. #define   XYDS_NF 5     /*    No flow control */
  657. #define   XYDS_PX 6     /*    Prefix (no, this goes in SET DIAL) */
  658. #define   XYDS_SW 7     /*    Software flow control */
  659. #define   XYDS_DT 8     /*    Tone dialing command */
  660. #define   XYDS_DP 9     /*    Pulse dialing command */
  661. #define   XYDS_AN 10    /*    Autoanswer */
  662. #define   XYDS_RS 11    /*    Reset */
  663. #define   XYDS_MS 12    /*    Dial mode string */
  664. #define   XYDS_MP 13    /*    Dial mode prompt */
  665.  
  666. #define   XYDM_D  0     /*    Method: Default */
  667. #define   XYDM_T  1     /*      Tone */
  668. #define   XYDM_P  2     /*      Pulse */
  669.  
  670. #define  XYDFC   15    /*   MODEM (dial) flow-control */
  671. #define  XYDMTH  16    /*   Dial method */
  672. #define  XYDESC  17     /*   MODEM (dial) escape-character */
  673. #define  XYDMAX  18    /*   MODEM (dial) maximum interface speed */
  674. #define  XYDCAP  19     /*   MODEM (dial) capabilities */
  675. #define  XYDTYP  20    /*   MODEM TYPE */
  676. #define  XYDINT  21    /*   DIAL retries */
  677. #define  XYDRTM  22    /*   DIAL time between retries */
  678. #define  XYDNAM  23    /*   MODEM NAME */
  679. #define  XYDLAC  24    /*   DIAL LOCAL-AREA-CODE */
  680. #define  XYDMCD  25    /*   MODEM CARRIER */
  681.  
  682. #define  XYDCNF  26    /*   DIAL CONFIRMATION */
  683. #define  XYDCVT  27    /*   DIAL CONVERT-DIRECTORY */
  684. #define  XYDIXP  28    /*   DIAL INTERNATIONAL-PREFIX */
  685. #define  XYDIXS  29    /*   DIAL INTERNATIONAL-SUFFIX */
  686. #define  XYDLCC  30    /*   DIAL LOCAL-COUNTRY-CODE */
  687. #define  XYDLDP  31    /*   DIAL LONG-DISTANCE-PREFIX */
  688. #define  XYDLDS  32    /*   DIAL LONG-DISTANCE-SUFFIX */
  689. #define  XYDPXX  33    /*   DIAL PBX-EXCHANGE */
  690. #define  XYDPXI  34    /*   DIAL PBX-INTERNAL-PREFIX */
  691. #define  XYDPXO  35    /*   DIAL PBX-OUTSIDE-PREFIX */
  692. #define  XYDSFX  36    /*   DIAL SUFFIX */
  693. #define  XYDSRT  37    /*   DIAL SORT */
  694. #define  XYDTFC  38    /*   DIAL TOLL-FREE-AREA-CODE */
  695. #define  XYDTFP  39    /*   DIAL TOLL-FREE-PREFIX */
  696. #define  XYDTFS  40    /*   DIAL TOLL-FREE-SUFFIX */
  697. #define  XYDCON  41     /*   DIAL CONNECT */
  698. #define  XYDRSTR 42     /*   DIAL RESTRICT */
  699. #define  XYDRSET 42     /*   MODEM RESET */
  700.  
  701. #define XYSESS 49       /* SET SESSION options */
  702. #define XYBUF  50       /* Buffer length */
  703. #define XYBACK 51    /* Background */
  704. #define XYDFLT 52       /* Default */
  705. #define XYDOUB 53    /* Double */
  706. #define XYCMD  54       /* COMMAND */
  707.  
  708. /* SET COMMAND items... */
  709.  
  710. #define SCMD_BSZ 0    /* BYTESIZE */
  711. #define SCMD_RCL 1    /* RECALL */
  712. #define SCMD_RTR 2    /* RETRY */
  713. #define SCMD_QUO 3    /* QUOTING */
  714. #define SCMD_COL 4    /* COLOR */
  715. #define SCMD_HIG 5    /* HEIGHT */
  716. #define SCMD_WID 6    /* WIDTH */
  717. #define SCMD_CUR 7    /* CURSOR-POSITION */
  718. #define SCMD_SCR 8    /* SCROLLBACK */
  719. #define SCMD_MOR 9    /* MORE-PROMPTING */
  720.  
  721. #define XYCASE 55       /* Case */
  722. #define XYCOMP 56       /* Compression */
  723. #define XYX25  57       /* X.25 parameter (ANYX25) */
  724. #define XYPAD  58       /* X.3 PAD parameter (ANYX25) */
  725. #define XYWILD 59       /* Wildcard expansion method */
  726. #define XYSUSP 60       /* Suspend */
  727. #define XYMAIL 61    /* Mail-Command */
  728. #define XYPRIN 62    /* Print-Command */
  729. #define XYQUIE 63    /* Quiet */
  730. #define XYLCLE 64    /* Local-echo */
  731. #define XYSCRI 65    /* SCRIPT command paramaters */
  732. #define XYMSGS 66       /* MESSAGEs ON/OFF */
  733. #define XYTEL  67       /* TELNET parameters */
  734. #define  CK_TN_EC 0    /*  TELNET ECHO */
  735. #define  CK_TN_TT 1    /*  TELNET TERMINAL-TYPE */
  736. #define  CK_TN_NL 2     /*  TELNET NEWLINE-MODE */
  737. #define  CK_TN_BM 3     /*  TELNET BINARY-MODE */
  738. #define  CK_TN_BUG 4    /*  TELNET BUG */
  739. #define  CK_TN_ENV 5    /*  TELNET ENVIRONMENT */
  740. #define    TN_ENV_USR  0 /*    VAR USER */
  741. #define    TN_ENV_JOB  1 /*    VAR JOB */
  742. #define    TN_ENV_ACCT 2 /*    VAR ACCT */
  743. #define    TN_ENV_PRNT 3 /*    VAR PRINTER */
  744. #define    TN_ENV_SYS  4 /*    VAR SYSTEMTYPE */
  745. #define    TN_ENV_DISP 5 /*    VAR DISPLAY */
  746. #define    TN_ENV_UVAR 6 /*    USERVAR */
  747. #define XYOUTP 68    /* OUTPUT command parameters */
  748. #define  OUT_PAC 0    /*  OUTPUT pacing */
  749. #define XYEXIT  69    /* SET EXIT */
  750. #define XYPRTR  70    /* SET PRINTER */
  751. #define XYFPATH 71    /* PATHNAME */
  752. #define XYMOUSE 72    /* MOUSE SUPPORT */
  753.  
  754. #define  XYM_ON     0   /* Mouse ON/OFF        */
  755. #define  XYM_BUTTON 1   /* Define Mouse Events */
  756. #define  XYM_CLEAR  2   /* Clear Mouse Events  */
  757. /* These must match similar definitions in ckokey.h */
  758. #define   XYM_B1 0      /* Mouse Button One */
  759. #define   XYM_B2 1      /* Mouse Button Two */
  760. #define   XYM_B3 2      /* Mouse Button Three */
  761. #define   XYM_ALT   1     /* Alt */
  762. #define   XYM_CTRL  2     /* Ctrl */
  763. #define   XYM_SHIFT 4     /* Shift */
  764. #define   XYM_C1    0     /* Single Click */
  765. #define   XYM_C2    8     /* Double Click */
  766. #define   XYM_DRAG  16    /* Drag Event */
  767.  
  768. #define XYBELL 73   /* BELL */
  769.  
  770. #define   XYB_NONE  0     /* No bell */
  771. #define   XYB_AUD   1     /* Audible bell */
  772. #define   XYB_VIS   2     /* Visible bell */
  773. #define   XYB_BEEP  0     /* Audible Beep */
  774. #define   XYB_SYS   4     /* Audible System Sounds */
  775.  
  776. #define XYPRTY     74   /* Thread Priority Level */
  777.  
  778. #define   XYP_IDLE  1 
  779. #define   XYP_REG   2
  780. #define   XYP_SRV   4
  781. #define   XYP_RTP   3
  782.  
  783. #define XYALRM     75    /* SET ALARM */
  784. #define XYPROTO    76    /* SET PROTOCOL */
  785. #define XYPREFIX   77   /* SET PREFIXING */
  786. #define XYLOGIN    78   /* Login info for script programs... */
  787.  
  788. #define  LOGI_UID   0    /* User ID  */
  789. #define  LOGI_PSW   1    /* Password */
  790. #define  LOGI_PRM   2    /* Prompt   */
  791.  
  792. #define XYSTARTUP  79    /* Startup file */
  793. #define XYTMPDIR   80    /* Temporary directory */
  794. #define XYTAPI     81    /* Microsoft Telephone API options */
  795. #define   XYTAPI_CFG     1  /* TAPI Configure-Line */
  796. #define   XYTAPI_DIAL    2  /* TAPI Dialing-Properties */
  797. #define   XYTAPI_LIN     3  /* TAPI Line */
  798. #define   XYTAPI_LOC     4  /* TAPI Location */
  799.  
  800. #define XYTCP  82       /* TCP options */
  801. #define  XYTCP_NODELAY   1  /* No Delay */
  802. #define  XYTCP_SENDBUF   2  /* Send Buffer Size */
  803. #define  XYTCP_LINGER    3  /* Linger */
  804. #define  XYTCP_RECVBUF   4  /* Receive Buffer Size */
  805. #define  XYTCP_KEEPALIVE 5  /* Keep Alive packets */
  806.  
  807. #define XYMSK  83       /* MS-DOS Kermit compatibility options */
  808. #define  MSK_COLOR 0    /*  Terminal color handling   */
  809. #define  MSK_KEYS  1    /*  SET KEY uses MSK keycodes */
  810.  
  811. #define XYDEST 84    /* SET DESTINATION as in MS-DOS Kermit */
  812. #define XYWIN95 85    /* SET WIN95 work arounds  */
  813. #define   XYWKEY  0    /*    Keyboard translation */
  814. #define   XYWAGR  1     /*    Alt-Gr               */
  815. #define   XYWOIO  2     /*    Overlapped I/O       */
  816. #define XYDLR  86     /* SET K95 DIALER work arounds */
  817. #define XYTITLE 87    /* SET TITLE of window */
  818.  
  819. /* #ifdef ANYX25 */
  820. /* PAD command parameters */
  821.  
  822. #define XYPADL 0        /* clear virtual call */
  823. #define XYPADS 1        /* status of virtual call */
  824. #define XYPADR 2        /* reset of virtual call */
  825. #define XYPADI 3        /* send an interrupt packet */
  826.  
  827. /* Used with XYX25... */
  828. #define XYUDAT 0       /* X.25 call user data */
  829. #define XYCLOS 1       /* X.25 closed user group call */
  830. #define XYREVC 2       /* X.25 reverse charge call */
  831. /* #endif */ /* ANYX25 */
  832.  
  833. /* SHOW command symbols */
  834.  
  835. #define SHPAR 0                /* Parameters */
  836. #define SHVER 1                /* Versions */
  837. #define SHCOM 2                /* Communications */
  838. #define SHPRO 3                /* Protocol */
  839. #define SHFIL 4                /* File */
  840. #define SHLNG 5                /* Language */
  841. #define SHCOU 6                /* Count */
  842. #define SHMAC 7                /* Macros */
  843. #define SHKEY 8                /* Key */
  844. #define SHSCR 9                /* Scripts */
  845. #define SHSPD 10            /* Speed */
  846. #define SHSTA 11            /* Status */
  847. #define SHSER 12            /* Server */
  848. #define SHXMI 13            /* Transmit */
  849. #define SHATT 14            /* Attributes */
  850. #define SHMOD 15            /* Modem */
  851. #define SHDFLT 16            /* Default (as in VMS) */
  852. #define SHVAR 17            /* Show global variables */
  853. #define SHARG 18            /* Show macro arguments */
  854. #define SHARR 19            /* Show arrays */
  855. #define SHBUI 20            /* Show builtin variables */
  856. #define SHFUN 21            /* Show functions */
  857. #define SHPAD 22            /* Show (X.25) PAD */
  858. #define SHTER 23            /* Show terminal settings */
  859. #define SHESC 24            /* Show escape character */
  860. #define SHDIA 25            /* Show DIAL parameters */
  861. #define SHNET 26            /* Show network parameters */
  862. #define SHLBL 27            /* Show VMS labeled file parameters */
  863. #define SHSTK 28            /* Show stack, MAC debugging */
  864. #define SHCSE 29            /* Show character sets */
  865. #define SHFEA 30            /* Show features */
  866. #define SHCTL 31            /* Show control-prefix table */
  867. #define SHEXI 32            /* Show EXIT items */
  868. #define SHPRT 33            /* Show printer */
  869. #define SHCMD 34            /* Show command parameters */
  870. #define SHKVB 35            /* Show \Kverbs */
  871. #define SHMOU 36            /* Show Mouse (like Show Key) */
  872. #define SHTAB 37            /* Show Tabs */
  873. #define SHVSCRN 38            /* Show Virtual Screen (OS/2) */
  874. #define SHALRM  39            /* ALARM */
  875. #define SHSFL   40            /* SEND-LIST */
  876. #define SHUDK   41                      /* DEC VT UDKs (OS/2) */
  877.  
  878. /* REMOTE command symbols */
  879.  
  880. #define XZCPY  0    /* Copy */
  881. #define XZCWD  1    /* Change Working Directory */
  882. #define XZDEL  2    /* Delete */
  883. #define XZDIR  3    /* Directory */
  884. #define XZHLP  4    /* Help */
  885. #define XZHOS  5    /* Host */
  886. #define XZKER  6    /* Kermit */
  887. #define XZLGI  7    /* Login */
  888. #define XZLGO  8    /* Logout */
  889. #define XZMAI  9    /* Mail <-- wrong, this should be top-level */
  890. #define XZMOU 10    /* Mount */
  891. #define XZMSG 11    /* Message */
  892. #define XZPRI 12    /* Print */
  893. #define XZREN 13    /* Rename */
  894. #define XZSET 14    /* Set */
  895. #define XZSPA 15    /* Space */
  896. #define XZSUB 16    /* Submit */
  897. #define XZTYP 17    /* Type */
  898. #define XZWHO 18    /* Who */
  899. #define XZPWD 19    /* Print Working Directory */
  900. #define XZQUE 20    /* Query */
  901. #define XZASG 21    /* Assign */
  902.  
  903. /* SET INPUT command parameters */
  904.  
  905. #define IN_DEF  0            /* Default timeout */
  906. #define IN_TIM  1            /* Timeout action */
  907. #define IN_CAS  2            /* Case (matching) */
  908. #define IN_ECH  3            /* Echo */
  909. #define IN_SIL  4            /* Silence */
  910. #define IN_BUF  5            /* Buffer size */
  911. #define IN_PAC  6                       /* Input Pacing (debug) */
  912.  
  913. /* ENABLE/DISABLE command parameters */
  914.  
  915. #define EN_ALL  0            /* ALL */
  916. #define EN_CWD  1            /* CD/CWD */
  917. #define EN_DIR  2            /* DIRECTORY */
  918. #define EN_FIN  3            /* FINISH */
  919. #define EN_GET  4            /* GET */
  920. #define EN_HOS  5            /* HOST command */
  921. #define EN_KER  6            /* KERMIT command */
  922. #define EN_LOG  7            /* LOGIN */
  923. #define EN_SEN  8            /* SEND */
  924. #define EN_SET  9            /* SET */
  925. #define EN_SPA 10            /* SPACE */
  926. #define EN_TYP 11            /* TYPE */
  927. #define EN_WHO 12            /* WHO, finger */
  928. #define EN_DEL 13            /* Delete */
  929. #define EN_BYE 14            /* BYE (as opposed to FINISH) */
  930. #define EN_QUE 15            /* QUERY */
  931. #define EN_ASG 16            /* ASSIGN */
  932. #define EN_CPY 17            /* COPY */
  933. #define EN_REN 18            /* RENAME */
  934. #define EN_RET 19            /* RETRIEVE */
  935. #define EN_MAI 20            /* MAIL */
  936. #define EN_PRI 21            /* PRINT */
  937.  
  938. /* BEEP TYPES */
  939. #define BP_BEL  0           /* Terminal BEL         */
  940. #define BP_NOTE 1           /* Notify the user      */
  941. #define BP_WARN 2           /* Warn the user        */
  942. #define BP_FAIL 3           /* Failure has occurred */
  943.  
  944. /* CLEAR command symbols */
  945. #define CLR_DEV  1                /* Clear Device Buffers */
  946. #define CLR_INP  2                /* Clear Input Buffers */
  947. #define CLR_BTH  CLR_DEV|CLR_INP  /* Clear Device and Input */
  948. #define CLR_SCL  4                /* Clear Scrollback buffer */
  949. #define CLR_CMD  8                /* Clear Command Screen */
  950. #define CLR_TRM  16               /* Clear Terminal Screen */
  951. #define CLR_DIA  32          /* Clear Dial Status */
  952. #define CLR_SFL  64          /* Clear Send-File-List */
  953. #define CLR_APC 128          /* Clear APC */
  954.  
  955. /* Symbols for logs */
  956.  
  957. #define LOGD 0            /* Debugging */
  958. #define LOGP 1          /* Packets */
  959. #define LOGS 2          /* Session */
  960. #define LOGT 3          /* Transaction */
  961. #define LOGX 4          /* Screen */
  962. #define LOGR 5        /* The "OPEN read file */
  963. #define LOGW 6          /* The "OPEN" write/append file */
  964. #define LOGE 7        /* Error (e.g. stderr) */
  965.  
  966. /* Symbols for builtin variables */
  967.  
  968. #define VN_ARGC 0            /* ARGC */
  969. #define VN_COUN 1            /* COUNT */
  970. #define VN_DATE 2            /* DATE */
  971. #define VN_DIRE 3            /* DIRECTORY */
  972. #define VN_ERRO 4            /* ERRORLEVEL */
  973. #define VN_TIME 5            /* TIME */
  974. #define VN_VERS 6            /* VERSION */
  975. #define VN_IBUF 7            /* INPUT buffer */
  976. #define VN_SUCC 8            /* SUCCESS flag */
  977. #define VN_LINE 9            /* LINE */
  978. #define VN_ARGS 10            /* Program command-line arg count */
  979. #define VN_SYST 11            /* System type */
  980. #define VN_SYSV 12            /* System version */
  981. #define VN_RET  13            /* RETURN value */
  982. #define VN_FILE 14            /* Most recent filespec */
  983. #define VN_NDAT 15            /* Numeric date yyyy/mm/dd */
  984. #define VN_HOME 16            /* Home directory */
  985. #define VN_SPEE 17            /* Transmission speed */
  986. #define VN_HOST 18            /* Host name */
  987. #define VN_TTYF 19            /* TTY file descriptor (UNIX only) */
  988. #define VN_PROG 20            /* Program name */
  989. #define VN_NTIM 21            /* NTIME */
  990. #define VN_FFC  22            /* Characters in last file xferred */
  991. #define VN_TFC  23            /* Chars in last file group xferred */
  992. #define VN_CPU  24            /* CPU type */
  993. #define VN_CMDL 25            /* Command level */
  994. #define VN_DAY  26                      /* Day of week, string */
  995. #define VN_NDAY 27                      /* Day of week, numeric */
  996. #define VN_LCL  28            /* Local (vs) remote mode */
  997. #define VN_CMDS 29            /* Command source */
  998. #define VN_CMDF 30            /* Command file name */
  999. #define VN_MAC  31            /* Macro name */
  1000. #define VN_EXIT 32            /* Exit status */
  1001. #define VN_ICHR 33            /* INPUT character */
  1002. #define VN_ICNT 34            /* INPUT count */
  1003. #define VN_PRTY 35            /* Current parity */
  1004. #define VN_DIAL 36            /* DIAL status */
  1005. #define VN_KEYB 37            /* Keyboard type */
  1006. #define VN_CPS  38            /* Chars per second, last transfer */
  1007. #define VN_RPL  39            /* Receive packet length */
  1008. #define VN_SPL  40            /* Send packet length */
  1009. #define VN_MODE 41            /* Transfer mode (text, binary) */
  1010. #define VN_REXX 42            /* Rexx return value */
  1011. #define VN_NEWL 43            /* Newline character or sequence */
  1012. #define VN_COLS 44            /* Columns on console screen */
  1013. #define VN_ROWS 45            /* Rows on console screen */
  1014. #define VN_TTYP 46            /* Terminal type */
  1015. #define VN_MINP 47            /* MINPUT result */
  1016. #define VN_CONN 48            /* Connection type */
  1017. #define VN_SYSI 49            /* System ID */
  1018. #define VN_TZ   50            /* Timezone */
  1019. #define VN_SPA  51            /* Space */
  1020. #define VN_QUE  52            /* Query */
  1021. #define VN_STAR 53            /* Startup directory */
  1022. #define VN_CSET 54            /* Local character set */
  1023. #define VN_MDM  55            /* Modem type */
  1024. #define VN_EVAL 56            /* Most recent EVALUATE result */
  1025.  
  1026. #define VN_D_CC 57            /* DIAL COUNTRY-CODE */
  1027. #define VN_D_AC 58            /* DIAL AREA-CODE */
  1028. #define VN_D_IP 59            /* DIAL INTERNATIONAL-PREFIX */
  1029. #define VN_D_LP 60            /* DIAL LD-PREFIX */
  1030.  
  1031. #define VN_UID  61
  1032. #define VN_PWD  62
  1033. #define VN_PRM  63
  1034.  
  1035. #define VN_PROTO 64            /* Protocol */
  1036. #define VN_DLDIR 65            /* Download directory */
  1037.  
  1038. #define VN_M_AAA 66            /* First MODEM one */
  1039. #define VN_M_INI 66            /* Modem init string */
  1040. #define VN_M_DCM 67            /* Modem dial command */
  1041. #define VN_M_DCO 68            /* Modem data compression on */
  1042. #define VN_M_DCX 69            /* Modem data compression off */
  1043. #define VN_M_ECO 70            /* Modem error correction on */
  1044. #define VN_M_ECX 71            /* Modem error correction off */
  1045. #define VN_M_AAO 72            /* Modem autoanswer on */
  1046. #define VN_M_AAX 73            /* Modem autoanswer off */
  1047. #define VN_M_HUP 74            /* Modem hangup command */
  1048. #define VN_M_HWF 75            /* Modem hardware flow command */
  1049. #define VN_M_SWF 76            /* Modem software flow command */
  1050. #define VN_M_NFC 77            /* Modem no flow-control command */
  1051. #define VN_M_PDM 78            /* Modem pulse dialing mode */
  1052. #define VN_M_TDM 79            /* Modem tone dialing mode */
  1053. #define VN_M_ZZZ 79            /* Last MODEM one */
  1054.  
  1055. #define VN_SELCT 80            /* Selected Text from Mark Mode */
  1056. #define VN_TEMP  81            /* Temporary directory */
  1057. #define VN_ISTAT 82            /* INPUT command status */
  1058. #define VN_INI   83            /* INI (kermrc) directory */
  1059. #define VN_EXEDIR 84            /* EXE directory */
  1060. #define VN_ERRNO  85            /* Value of errno */
  1061. #define VN_ERSTR  86            /* Corresponding error message */
  1062. #define VN_TFLN   87            /* TAKE file line number */
  1063. #define VN_XVNUM  88            /* Product-specific version number */
  1064. #define VN_RPSIZ  89            /* Receive packet length */
  1065. #define VN_WINDO  90            /* Window size */
  1066. #define VN_MDMSG  91            /* Modem message */
  1067. #define VN_DNUM   92            /* Dial number */
  1068. #define VN_APC    93            /* APC active */
  1069. #define VN_IPADDR 94            /* My IP address */
  1070. #define VN_CRC16  95            /* CRC-16 of most recent file group */
  1071. #define VN_TRMK   96                    /* Macro executed from Terminal Mode */
  1072.  
  1073. /* INPUT status values */
  1074.  
  1075. #define INP_OK  0            /* Succeeded */
  1076. #define INP_TO  1            /* Timed out */
  1077. #define INP_UI  2            /* User interrupted */
  1078. #define INP_IE  3            /* Internal error */
  1079. #define INP_IO  4            /* I/O error or connection lost */
  1080.  
  1081. /* Symbols for builtin functions */
  1082.  
  1083. #define FNARGS 6            /* Maximum number of function args */
  1084.  
  1085. #define FN_IND 0            /* Index (of string 1 in string 2) */
  1086. #define FN_LEN 1            /* Length (of string) */
  1087. #define FN_LIT 2            /* Literal (don't expand the string) */
  1088. #define FN_LOW 3            /* Lower (convert to lowercase) */
  1089. #define FN_MAX 4            /* Max (maximum) */
  1090. #define FN_MIN 5            /* Min (minimum) */
  1091. #define FN_MOD 6            /* Mod (modulus) */
  1092. #define FN_EVA 7            /* Eval (evaluate arith expression) */
  1093. #define FN_SUB 8            /* Substr (substring) */
  1094. #define FN_UPP 9            /* Upper (convert to uppercase) */
  1095. #define FN_REV 10            /* Reverse (a string) */
  1096. #define FN_REP 11            /* Repeat (a string) */
  1097. #define FN_EXE 12            /* Execute (a macro) */
  1098. #define FN_VAL 13            /* Return value (of a macro) */
  1099. #define FN_LPA 14            /* LPAD (left pad) */
  1100. #define FN_RPA 15            /* RPAD (right pad) */
  1101. #define FN_DEF 16            /* Definition of a macro, unexpanded */
  1102. #define FN_CON 17            /* Contents of a variable, ditto */
  1103. #define FN_FIL 18                       /* File list */
  1104. #define FN_FC  19            /* File count */
  1105. #define FN_CHR 20            /* Character (like BASIC CHR$()) */
  1106. #define FN_RIG 21            /* Right (like BASIC RIGHT$()) */
  1107. #define FN_COD 22            /* Code value of character */
  1108. #define FN_RPL 23            /* Replace */
  1109. #define FN_FD  24            /* File date */
  1110. #define FN_FS  25            /* File size */
  1111. #define FN_RIX 26            /* Rindex (index from right) */
  1112. #define FN_VER 27            /* Verify */
  1113. #define FN_IPA 28            /* Find and return IP address */
  1114. #define FN_CRY 39            /* ... */
  1115. #define FN_OOX 40            /* ... */
  1116. #define FN_HEX 41            /* Hexify */
  1117. #define FN_UNH 42            /* Unhexify */
  1118. #define FN_BRK 43            /* Break */
  1119. #define FN_SPN 44            /* Span */
  1120. #define FN_TRM 45            /* Trim */
  1121. #define FN_LTR 46            /* Left-Trim */
  1122. #define FN_CAP 47            /* Capitalize */
  1123. #define FN_TOD 48            /* Time-of-day-to-secs-since-midnite */
  1124. #define FN_SEC 49            /* Secs-since-midnite-to-time-of-day */
  1125. #define FN_FFN 50            /* Full file name */
  1126. #define FN_CHK 51            /* Checksum of text */
  1127. #define FN_CRC 52            /* CRC-16 of text */
  1128. #define FN_BSN 53            /* Basename of file */
  1129.  
  1130. /* Screen line numbers */
  1131.  
  1132. #define CW_BAN  0            /* Curses Window Banner */
  1133. #define CW_DIR  2            /* Current directory */
  1134. #define CW_LIN  3            /* Communication device */
  1135. #define CW_SPD  4            /* Communication speed */
  1136. #define CW_PAR  5            /* Parity */
  1137. #define CW_TMO  6
  1138. #define CW_NAM  7            /* Filename */
  1139. #define CW_TYP  8            /* File type */
  1140. #define CW_SIZ  9            /* File size */
  1141. #define CW_PCD 10            /* Percent done */
  1142.  
  1143. #ifndef CK_PCT_BAR
  1144. #define CW_TR  11            /* Time remaining */
  1145. #define CW_CP  12            /* Characters per second */
  1146. #define CW_WS  13            /* Window slots */
  1147. #define CW_PT  14            /* Packet type */
  1148. #define CW_PC  15            /* Packet count */
  1149. #define CW_PL  16            /* Packet length */
  1150. #define CW_PR  17            /* Packet retry */
  1151. #ifdef COMMENT
  1152. #define CW_PB  17            /* Packet block check */
  1153. #endif /* COMMENT */
  1154. #else /* CK_PCT_BAR */
  1155. #define CW_BAR 11       /* Percent Bar Scale */
  1156. #define CW_TR  12            /* Time remaining */
  1157. #define CW_CP  13            /* Chars per sec */
  1158. #define CW_WS  14            /* Window slots */
  1159. #define CW_PT  15            /* Packet type */
  1160. #define CW_PC  16            /* Packet count */
  1161. #define CW_PL  17            /* Packet length */
  1162. #define CW_PR  18            /* Packet retry */
  1163. #ifdef COMMENT
  1164. #define CW_PB  18            /* Packet block check */
  1165. #endif /* COMMENT */
  1166. #endif /* CK_PCT_BAR */
  1167.  
  1168. #define CW_ERR 19            /* Error message */
  1169. #define CW_MSG 20            /* Info message */
  1170. #define CW_INT 22            /* Instructions */
  1171.  
  1172. /* Save Commands */
  1173. #define XSKEY   0            /* Key map file */
  1174.  
  1175. /* ANSI-style prototypes for user interface functions */
  1176.  
  1177. _PROTOTYP( char * brstrip, (char *) );
  1178. _PROTOTYP( int parser, ( int ) );
  1179. _PROTOTYP( int chkvar, (char *) );
  1180. _PROTOTYP( int zzstring, (char *, char **, int *) );
  1181. #ifndef NOFRILLS
  1182. _PROTOTYP( int yystring, (char *, char **) );
  1183. #endif /* NOFRILLS */
  1184. _PROTOTYP( int xxstrcmp, (char *, char *, int) );
  1185. _PROTOTYP( int getncm, (char *, int) );
  1186. _PROTOTYP( int getnct, (char *, int, FILE *, int) );
  1187. _PROTOTYP( VOID bgchk, (void) );
  1188. _PROTOTYP( char * nvlook, (char *) );
  1189. _PROTOTYP( char * arrayval, (int, int) );
  1190. _PROTOTYP( int arraynam, (char *, int *, int *) );
  1191. _PROTOTYP( char * bldlen, (char *, char *) );
  1192. _PROTOTYP( int chkarray, (int, int) );
  1193. _PROTOTYP( int dclarray, (char, int) );
  1194. _PROTOTYP( int parsevar, (char *, int *, int *) );
  1195. _PROTOTYP( int macini, (void) );
  1196. _PROTOTYP( VOID initmac, (void) );
  1197. _PROTOTYP( int delmac, (char *) );
  1198. _PROTOTYP( int addmac, (char *, char *) );
  1199. _PROTOTYP( int domac, (char *, char *, int) );
  1200. _PROTOTYP( int addmmac, (char *, char *[]) );
  1201. _PROTOTYP( int dobug, (void) );
  1202. _PROTOTYP( int docd, (void) );
  1203. _PROTOTYP( int doclslog, (int) );
  1204. _PROTOTYP( int docmd, (int) );
  1205. _PROTOTYP( int doconect, (int) );
  1206. _PROTOTYP( int dodo, (int, char *, int) );
  1207. _PROTOTYP( int doenable, (int, int) );
  1208. _PROTOTYP( int doget, (int) );
  1209. _PROTOTYP( int dogoto, (char *, int) );
  1210. _PROTOTYP( int dogta, (int) );
  1211. _PROTOTYP( int dohlp, (int) );
  1212. _PROTOTYP( int dohrmt, (int) );
  1213. _PROTOTYP( int doif, (int) );
  1214. _PROTOTYP( int doinput, (int, char *[]) );
  1215. _PROTOTYP( int doreinp, (int, char *) );
  1216. _PROTOTYP( int dolog, (int) );
  1217. _PROTOTYP( int dologin, (char *) );
  1218. _PROTOTYP( int doopen, (void) );
  1219. _PROTOTYP( int doprm, (int, int) );
  1220. _PROTOTYP( int doreturn, (char *) );
  1221. _PROTOTYP( int dormt, (int) );
  1222. _PROTOTYP( int doshow, (int) );
  1223. _PROTOTYP( int doshodial, (void) );
  1224. _PROTOTYP( int dostat, (void) );
  1225. _PROTOTYP( int dostop, (void) );
  1226. _PROTOTYP( int dotype, (char *) );
  1227. _PROTOTYP( int transmit, (char *, char) );
  1228. _PROTOTYP( int xlate, (char *, char *, int, int) );
  1229. _PROTOTYP( int litcmd, (char **, char **) );
  1230. _PROTOTYP( int incvar, (char *, int, int) );
  1231. _PROTOTYP( int ckdial, (char *, int, int, int) );
  1232. _PROTOTYP( char * getdws, (int) );
  1233. _PROTOTYP( char * getdcs, (int) );
  1234. _PROTOTYP( int hmsg, (char *) );
  1235. _PROTOTYP( int hmsga, (char * []) );
  1236. _PROTOTYP( int mlook, (struct mtab [], char *, int) );
  1237. _PROTOTYP( int mxlook, (struct mtab [], char *, int) );
  1238. _PROTOTYP( int prtopt, (int *, char *) );
  1239. _PROTOTYP( CHAR rfilop, (char *, char) );
  1240. _PROTOTYP( int setcc, (char *, int *) );
  1241. _PROTOTYP( int setnum, (int *, int, int, int) );
  1242. _PROTOTYP( int seton, (int *) );
  1243. _PROTOTYP( VOID shmdmlin, (void) );
  1244. _PROTOTYP( VOID initmdm, (int) );
  1245. _PROTOTYP( char * showoff, (int) );
  1246. _PROTOTYP( int shoatt, (void) );
  1247. _PROTOTYP( VOID shocharset, (void) );
  1248. _PROTOTYP( int shomac, (char *, char *) );
  1249. _PROTOTYP( VOID shopar, (void) );
  1250. _PROTOTYP( VOID shoparc, (void) );
  1251. _PROTOTYP( VOID shoparc, (void) );
  1252. _PROTOTYP( VOID shoparf, (void) );
  1253. _PROTOTYP( VOID shoparp, (void) );
  1254. #ifndef NOCSETS
  1255. _PROTOTYP( VOID shoparl, (void) );
  1256. #endif /* NOCSETS */
  1257. _PROTOTYP( VOID shodial, (void) );
  1258. _PROTOTYP( VOID shomdm, (void) );
  1259. _PROTOTYP( VOID shonet, (void) );
  1260. _PROTOTYP( VOID shover, (void) );
  1261. _PROTOTYP( int pktopn, (char *,int) );
  1262. _PROTOTYP( int traopn, (char *,int) );
  1263. _PROTOTYP( int sesopn, (char *,int) );
  1264. _PROTOTYP( int debopn, (char *,int) );
  1265. _PROTOTYP( char * parnam, (char) );
  1266. _PROTOTYP( int popclvl, (void) );
  1267. _PROTOTYP( int varval, (char *, int *) );
  1268. _PROTOTYP( char * evala, (char *) );
  1269. _PROTOTYP( int setat, (int) );
  1270. _PROTOTYP( int setinp, (void) );
  1271. _PROTOTYP( int setlin, (int, int) );
  1272. _PROTOTYP( int setmodem, (void) );
  1273. _PROTOTYP( int setfil, (int) );
  1274. #ifdef OS2    
  1275. _PROTOTYP( int settapi, (void) ) ;
  1276. #ifdef OS2MOUSE
  1277. _PROTOTYP( int setmou, (void) );
  1278. #endif /* OS2MOUSE */
  1279. _PROTOTYP( int setbell, (void) );
  1280. #endif /* OS2 */
  1281. _PROTOTYP( int settrm, (void) );
  1282. _PROTOTYP( int setsr, (int, int) );
  1283. _PROTOTYP( int setxmit, (void) );
  1284. _PROTOTYP( int set_key, (void) );
  1285. _PROTOTYP( int dochk, (void) );
  1286. _PROTOTYP( int ludial, (char *, int) );
  1287. _PROTOTYP( char * getdnum, (int) );
  1288. _PROTOTYP( VOID getnetenv, (void) );
  1289. _PROTOTYP( VOID setflow, (void) );
  1290. _PROTOTYP( int getyesno, (char *) );
  1291. _PROTOTYP( VOID xwords, (char *, int, char *[], int) );
  1292. _PROTOTYP( VOID shotcs, (int, int) );
  1293. _PROTOTYP( char *hhmmss, (long) );
  1294. _PROTOTYP( VOID shoctl, (void) );
  1295. _PROTOTYP( VOID keynaminit, (void) );
  1296. _PROTOTYP( int xlookup, (struct keytab[], char *, int, int *) );    
  1297. _PROTOTYP( VOID shokeycode, (int) );
  1298. _PROTOTYP( int hupok, (int) );
  1299. _PROTOTYP( VOID shods, (char *) );
  1300. _PROTOTYP( char * zzndate, (void) );
  1301. _PROTOTYP( char * chk_ac, (int, char[]) );
  1302. _PROTOTYP( char * gmdmtyp, (void) );
  1303. _PROTOTYP( char * gfmode, (int) );
  1304. _PROTOTYP( int setdest, (void) );
  1305. _PROTOTYP( VOID ndinit, (void) );
  1306. _PROTOTYP( int doswitch, (void) );
  1307. _PROTOTYP( int dolocal, (void) );
  1308. _PROTOTYP( long tod2sec, (char *) );
  1309. _PROTOTYP( int shomodem, (void) );
  1310. _PROTOTYP( int lunet, (char *) );
  1311. _PROTOTYP( int doxdis, (void) );
  1312. _PROTOTYP( int dosave, (int) );
  1313.  
  1314. #endif /* CKUUSR_H */
  1315.  
  1316. /* End of ckuusr.h */
  1317.