home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / researchmachines.zip / rmlext.h < prev    next >
Text File  |  1985-07-11  |  8KB  |  262 lines

  1.  
  2. /************************************************************************/
  3.  
  4. /* KEXT.H  -  Externals File for RML Kermit.
  5.             Chris Kennington    8th July 1985.    */
  6.  
  7. /* Revised 7th April to permit new main-menu operation;
  8.    int procedure declarations removed to avoid compiler limitations. */
  9.  
  10. struct  mode  {
  11.     char     m_value;
  12.     char    *m_text;
  13.     char    *m_help[5];
  14. };
  15.  
  16.  
  17. /* The following sets of #defines are only included in certain files:-    */
  18.  
  19. #ifdef    DEFS1
  20. /* Global modes of Kermit program                */
  21. #define     KERM    1    /* command-mode        */
  22. #define     CONN    2    /* connect-mode        */
  23. #define  SEND    3    /* send-mode        */
  24. #define  RECV    4    /* receive-mode        */
  25. #define  CMND    5    /* send server commands    */
  26. #define  PARM    6    /* set parameters    */
  27. #define     DISK    8    /* process disk commands*/
  28. #define  QUIT    9    /* exit from Kermit    */
  29. #define  MODMAX    9    /* number of modes    */
  30.  
  31. /* types of remote server command        */
  32. #define  GET    21
  33. #define  RMH    22
  34. /*     SEND    3    */
  35. #define  LOGO    24
  36. #define     BYE    25
  37. #define  RMSV    26
  38. #define  MAIN    27
  39. /*     QUIT    9    */
  40. #define  CMDMAX    9
  41.  
  42. /* data items used only in main()        */
  43. extern  char    head2[], head3[], head4[], head5[], head6[];
  44. extern  struct    mode    modker, modconn, modrec, modsend,
  45.           modparm, modcmd, modisk, modauto, modquit;
  46. extern    struct    mode    rcget, rcrmsv, rcrmh, rclogo, rcbye, rcmain;
  47. extern  struct    mode    *kmodes[], *rcmds[];
  48. extern  char    *locations[], inform[], interr[], canx[];
  49. #endif
  50.  
  51. #ifdef    DEFS2
  52. /* Locations of text items in header of screen            */
  53. #define  LOCCRCS    0x032a
  54. #define  LOCDUPES    0x031e
  55. #define  LOCESC        0x0141
  56. #define  LOCFILE    0x0208
  57. #define  LOCIN        0x023c
  58. #define     LOCLOC        0x0540
  59. #define  LOCMODE    0x0108
  60. #define  LOCNAKS    0x0341
  61. #define  LOCOUT        0x024a
  62. #define  LOCPKTS    0x0228
  63. #define  LOCSEQ        0x022f
  64. #define  LOCSPEED    0x0127
  65. #define  LOCTIMOS    0x0334
  66. #define  LOCVER        0x0030
  67. /* others                            */
  68. #define     DEFNAM        "INVALID.NAM"
  69. #define  DEFLEN        11        /* length of DEFNAM    */
  70. #endif
  71.  
  72. #ifdef    DEFS3
  73. /* positions of rows & columns in set/show & menu:-            */
  74. #define  MENUCOL    20        /* main-menu heading        */
  75. #define  PKCOL        15        /* column for key-letter    */
  76. #define  PNMCOL        25        /* column for pamrameter-name    */
  77. #define  PVCOL        50        /* column for parameter-value    */
  78. #define  PA2COL        68        /* column for right-arrow    */
  79. #define  SCRTOP         7
  80. #define  SCRBOT        16
  81. #define  SCRSIZE     5        /* number of entries on screen    */
  82. #define  FIRSTLINE    SCRTOP*256    /* first useable line of screen    */
  83. #define  LASTLINE    (SCRTOP+(2*SCRSIZE)-2)*256 /* last useable line    */
  84. #endif
  85.  
  86. #ifdef DEFS4
  87. /* Global Kermit symbols                    */
  88. #define MAXPACKSIZ    94    /* Maximum packet size */
  89. #define MAXTRY        10    /* Times to retry a packet */
  90. #define MYQUOTE        '#'    /* Quote character I will use */
  91. #define MYPAD        0    /* No padding            */
  92. #define MYEOL        '\r'    /* End-Of-Line character I need (CR)    */
  93. #define MYTIME        10    /* Seconds after which I should be timed out */
  94.  
  95. #endif
  96.  
  97. #ifdef    DEFS5
  98.  
  99. /* BDOS Function-Codes                        */
  100. #define SELDSK    14    /* 0x0e    */
  101. #define SCHFST    17    /* 0x17    */
  102. #define SCHNXT    18    /* 0x12    */
  103. #define DELFIL    19    /* 0x13    */
  104. #define RENFIL    23    /* 0x17    */
  105. #define CURDSK    25    /* 0x19    */
  106. #define SETDMA    26    /* 0x1a    */
  107.  
  108. #ifdef    MPUZ80    /* following for CP/M only    */
  109. #define GETROV    29    /* 0x1d    */
  110. #define GETUSR    32    /* 0x20    */
  111. #define RSTDRV    37    /* 0x25    */
  112.  
  113. #else        /* following for MSDOS only    */
  114. #define    DIRPTH    0x47
  115. #define MCHFST    0x4e
  116. #define    MCHNXT    0x4f
  117. #endif
  118.  
  119. #endif
  120.  
  121. /* Items which differ between 480Z & Nimbus:-            */
  122.  
  123. #ifdef     MPUZ80            /* 480Z versions        */
  124. #define  CHAR    char
  125. #define  DEOL    0x19
  126. #define  MAXSPD    7        /* max baud rate code        */
  127. #define  NL    0x0d
  128. #define  SCRLEN    24        /* lines on screen        */
  129.  
  130. #else                /* Nimbus versions        */
  131. #define     CHAR    unsigned char
  132. #define  DEOL    0x00
  133. #define  MAXSPD    6        /* max baud rate code        */
  134. #define  NL    0x0d
  135. #define  SCRLEN    25        /* lines on screen        */
  136.  
  137. #endif
  138.  
  139.  
  140. /* #defines needed in all files:-                */
  141.  
  142. /* ASCII characters etc.                    */
  143. #define     SOH    1    
  144. #define  CTLC    0x03
  145. #define     EOT    0x04
  146. #define  BKSP    0x08
  147. #define  TAB    0x09
  148. #define  LF    0x0a
  149. #define  UP    0x0b
  150. #define  CR    0x0d
  151. #define     XON    0x11
  152. #define     XOFF    0x13
  153. #define  FWD    0x18
  154. #define  CTLZ    0x1a
  155. #define     LARROW    0x1b        /* left arrow            */
  156. #define  ESC    0x1b
  157. #define  SP    0x20
  158. #define  DELT    0x7f
  159.  
  160. #define TRUE    -1
  161. #define FALSE     0
  162.  
  163.  
  164. /* Kermit Macro Definitions                    */
  165. #define tochar(ch)  ((ch) + ' ')
  166. #define unchar(ch)  ((ch) - ' ')
  167. #define ctl(ch)  ((ch) ^ 64 )
  168.  
  169. #define  forever  while (1)
  170.  
  171.  
  172. /* procedures in code of standard Kermit                */
  173.  
  174. extern  char    sbreak(),  sdata(),  seof(),  sfile(),  sinit();
  175. extern  char    rpack(),  rdata(),  rfile(),  rinit();
  176. /* extern  int    connect(),  recsw(),  sendsw(),  spack();
  177. extern  int    bufemp(),  bufill(),  gnxtfl(),  rpar(),  spar();
  178. extern  int    error(),  flushinput(),  prerrpkt(),  printmsg();
  179. */
  180.  
  181. /* Additional routines in RML version                */
  182.  
  183. extern  char    ascch(), *avoid(), cpmunge(),  strcp(),  strcop();
  184. extern  char    dirprt(), filechek(), fileok(), osaction(), *userpath();
  185. extern  CHAR    wildex();
  186. /* extern  int    filexpand(), findcmd();
  187. extern  int    kermkill(),  keyget(),  keyline(),  parse();
  188. extern  int    curset(),  setbaud(),  setpar(),  setshow();
  189. extern  int    errdisp(),  nextin(),  nextout(),  cmdhelp(),  eschelp();
  190. */
  191. extern  unsigned  getram();
  192. extern  FILE    *kropen(),  *kwopen();
  193.  
  194. /* RML standard communications interface            */
  195.  
  196. /* extern  int    s4break(),  s4env(),  s4get(),  s4go(),  s4put(),  s4reset();
  197. extern  int    s4set(),  s4sleep(),  s4speed(),  s4stop(),  s4test();
  198. */
  199.  
  200. /* RML keyboard/screen standard procedures etc.            */
  201.  
  202. extern  char    kbdin();
  203. /* extern  int    bell(),  cpmgo(),  cursor(),  jump();
  204. extern  int    keyinit(),  keyrest(),  netcool(),  outc();
  205. extern  int    screen(),  scroll(),  txtout(),  vtout(),  vtline();
  206. */
  207.  
  208. /* Global Original Kermit Variables                    */
  209.  
  210. extern     int    size,        /* Size of present data */
  211.         rpsiz,        /* Maximum receive packet size */            
  212.         spsiz,        /* Maximum send packet size */
  213.         pad,        /* How much padding to send */
  214.         n,        /* Packet number */
  215.         numtry,        /* Times this packet retried */
  216.         oldtry,        /* Times previous packet retried */
  217.         image,        /* 8th-bit mode */
  218.         filecount;    /* Number of files left to send */
  219.  
  220. extern    char state,        /* Present state of the automaton */
  221.         padchar,    /* Padding character to send */
  222.         eol,        /* End-Of-Line character to send */
  223.         quote,        /* Quote character in incoming data */
  224.         **filelist,    /* List of files to be sent */
  225.         *filnam,    /* Current file name */
  226.         *recpkt,    /* Receive packet buffer */
  227.         *packet,    /* Packet buffer */
  228.         *oldpkt;    /* Copy of last incoming data    */
  229.  
  230. extern    FILE    *fp;        /* File pointer for current disk file */
  231.  
  232.  
  233. /* additional externals for RML version:        */
  234.  
  235. extern    char    *cmdline, *cmdparm[], dots[], files;
  236. extern  char    kmode, abtflag, nakflag, nmavoid, type;
  237. extern    char    env, esccode, spdcode, pager, scrline;
  238. extern    char    comctrl, escch, netslow, softeof;
  239. extern  char    *filblank, badmsg[], errmsg[], prompt[];
  240. extern  char    connto[], diskcmds[], mainsays[], rcvng[], sendf[], trying[];
  241. extern  char    sp0[],sp1[],sp2[],sp3[],sp4[],sp5[],sp6[],sp7[];
  242. extern    char    *spval[], blanx[], divide[], divisor[], forhelp[], kqhelp[], *parsets[];
  243. extern  char    *osline, oprompt[], *ermsg, *fname, *work;
  244. extern  int    commode, echo, list, oldimage, parity, fuzz[], rptflg;
  245. extern  struct    fcb    *ownfcb;
  246.  
  247. /* global event counters                */
  248. extern  int    badcrcs, dupes, naxin, timouts;
  249.  
  250. /* data in machine-dependent files (K480Z.C, KNIM.C)    */
  251. extern  char    backto[], eprompt[], head1[];
  252. extern  char    diskfail[], null[], os1[], os2[];
  253. extern  char    oscmd1[], oscmd2[], prompt[];
  254.  
  255.  
  256. /* Aztec-C globals:                    */
  257. extern  int    errno;
  258.  
  259. /*********  End of Kermit externals header-file  ********************/
  260.  
  261.  
  262.