/************************************************************************/ /* KEXT.H - Externals File for RML Kermit. Chris Kennington 8th July 1985. */ /* Revised 7th April to permit new main-menu operation; int procedure declarations removed to avoid compiler limitations. */ struct mode { char m_value; char *m_text; char *m_help[5]; }; /* The following sets of #defines are only included in certain files:- */ #ifdef DEFS1 /* Global modes of Kermit program */ #define KERM 1 /* command-mode */ #define CONN 2 /* connect-mode */ #define SEND 3 /* send-mode */ #define RECV 4 /* receive-mode */ #define CMND 5 /* send server commands */ #define PARM 6 /* set parameters */ #define DISK 8 /* process disk commands*/ #define QUIT 9 /* exit from Kermit */ #define MODMAX 9 /* number of modes */ /* types of remote server command */ #define GET 21 #define RMH 22 /* SEND 3 */ #define LOGO 24 #define BYE 25 #define RMSV 26 #define MAIN 27 /* QUIT 9 */ #define CMDMAX 9 /* data items used only in main() */ extern char head2[], head3[], head4[], head5[], head6[]; extern struct mode modker, modconn, modrec, modsend, modparm, modcmd, modisk, modauto, modquit; extern struct mode rcget, rcrmsv, rcrmh, rclogo, rcbye, rcmain; extern struct mode *kmodes[], *rcmds[]; extern char *locations[], inform[], interr[], canx[]; #endif #ifdef DEFS2 /* Locations of text items in header of screen */ #define LOCCRCS 0x032a #define LOCDUPES 0x031e #define LOCESC 0x0141 #define LOCFILE 0x0208 #define LOCIN 0x023c #define LOCLOC 0x0540 #define LOCMODE 0x0108 #define LOCNAKS 0x0341 #define LOCOUT 0x024a #define LOCPKTS 0x0228 #define LOCSEQ 0x022f #define LOCSPEED 0x0127 #define LOCTIMOS 0x0334 #define LOCVER 0x0030 /* others */ #define DEFNAM "INVALID.NAM" #define DEFLEN 11 /* length of DEFNAM */ #endif #ifdef DEFS3 /* positions of rows & columns in set/show & menu:- */ #define MENUCOL 20 /* main-menu heading */ #define PKCOL 15 /* column for key-letter */ #define PNMCOL 25 /* column for pamrameter-name */ #define PVCOL 50 /* column for parameter-value */ #define PA2COL 68 /* column for right-arrow */ #define SCRTOP 7 #define SCRBOT 16 #define SCRSIZE 5 /* number of entries on screen */ #define FIRSTLINE SCRTOP*256 /* first useable line of screen */ #define LASTLINE (SCRTOP+(2*SCRSIZE)-2)*256 /* last useable line */ #endif #ifdef DEFS4 /* Global Kermit symbols */ #define MAXPACKSIZ 94 /* Maximum packet size */ #define MAXTRY 10 /* Times to retry a packet */ #define MYQUOTE '#' /* Quote character I will use */ #define MYPAD 0 /* No padding */ #define MYEOL '\r' /* End-Of-Line character I need (CR) */ #define MYTIME 10 /* Seconds after which I should be timed out */ #endif #ifdef DEFS5 /* BDOS Function-Codes */ #define SELDSK 14 /* 0x0e */ #define SCHFST 17 /* 0x17 */ #define SCHNXT 18 /* 0x12 */ #define DELFIL 19 /* 0x13 */ #define RENFIL 23 /* 0x17 */ #define CURDSK 25 /* 0x19 */ #define SETDMA 26 /* 0x1a */ #ifdef MPUZ80 /* following for CP/M only */ #define GETROV 29 /* 0x1d */ #define GETUSR 32 /* 0x20 */ #define RSTDRV 37 /* 0x25 */ #else /* following for MSDOS only */ #define DIRPTH 0x47 #define MCHFST 0x4e #define MCHNXT 0x4f #endif #endif /* Items which differ between 480Z & Nimbus:- */ #ifdef MPUZ80 /* 480Z versions */ #define CHAR char #define DEOL 0x19 #define MAXSPD 7 /* max baud rate code */ #define NL 0x0d #define SCRLEN 24 /* lines on screen */ #else /* Nimbus versions */ #define CHAR unsigned char #define DEOL 0x00 #define MAXSPD 6 /* max baud rate code */ #define NL 0x0d #define SCRLEN 25 /* lines on screen */ #endif /* #defines needed in all files:- */ /* ASCII characters etc. */ #define SOH 1 #define CTLC 0x03 #define EOT 0x04 #define BKSP 0x08 #define TAB 0x09 #define LF 0x0a #define UP 0x0b #define CR 0x0d #define XON 0x11 #define XOFF 0x13 #define FWD 0x18 #define CTLZ 0x1a #define LARROW 0x1b /* left arrow */ #define ESC 0x1b #define SP 0x20 #define DELT 0x7f #define TRUE -1 #define FALSE 0 /* Kermit Macro Definitions */ #define tochar(ch) ((ch) + ' ') #define unchar(ch) ((ch) - ' ') #define ctl(ch) ((ch) ^ 64 ) #define forever while (1) /* procedures in code of standard Kermit */ extern char sbreak(), sdata(), seof(), sfile(), sinit(); extern char rpack(), rdata(), rfile(), rinit(); /* extern int connect(), recsw(), sendsw(), spack(); extern int bufemp(), bufill(), gnxtfl(), rpar(), spar(); extern int error(), flushinput(), prerrpkt(), printmsg(); */ /* Additional routines in RML version */ extern char ascch(), *avoid(), cpmunge(), strcp(), strcop(); extern char dirprt(), filechek(), fileok(), osaction(), *userpath(); extern CHAR wildex(); /* extern int filexpand(), findcmd(); extern int kermkill(), keyget(), keyline(), parse(); extern int curset(), setbaud(), setpar(), setshow(); extern int errdisp(), nextin(), nextout(), cmdhelp(), eschelp(); */ extern unsigned getram(); extern FILE *kropen(), *kwopen(); /* RML standard communications interface */ /* extern int s4break(), s4env(), s4get(), s4go(), s4put(), s4reset(); extern int s4set(), s4sleep(), s4speed(), s4stop(), s4test(); */ /* RML keyboard/screen standard procedures etc. */ extern char kbdin(); /* extern int bell(), cpmgo(), cursor(), jump(); extern int keyinit(), keyrest(), netcool(), outc(); extern int screen(), scroll(), txtout(), vtout(), vtline(); */ /* Global Original Kermit Variables */ extern int size, /* Size of present data */ rpsiz, /* Maximum receive packet size */ spsiz, /* Maximum send packet size */ pad, /* How much padding to send */ n, /* Packet number */ numtry, /* Times this packet retried */ oldtry, /* Times previous packet retried */ image, /* 8th-bit mode */ filecount; /* Number of files left to send */ extern char state, /* Present state of the automaton */ padchar, /* Padding character to send */ eol, /* End-Of-Line character to send */ quote, /* Quote character in incoming data */ **filelist, /* List of files to be sent */ *filnam, /* Current file name */ *recpkt, /* Receive packet buffer */ *packet, /* Packet buffer */ *oldpkt; /* Copy of last incoming data */ extern FILE *fp; /* File pointer for current disk file */ /* additional externals for RML version: */ extern char *cmdline, *cmdparm[], dots[], files; extern char kmode, abtflag, nakflag, nmavoid, type; extern char env, esccode, spdcode, pager, scrline; extern char comctrl, escch, netslow, softeof; extern char *filblank, badmsg[], errmsg[], prompt[]; extern char connto[], diskcmds[], mainsays[], rcvng[], sendf[], trying[]; extern char sp0[],sp1[],sp2[],sp3[],sp4[],sp5[],sp6[],sp7[]; extern char *spval[], blanx[], divide[], divisor[], forhelp[], kqhelp[], *parsets[]; extern char *osline, oprompt[], *ermsg, *fname, *work; extern int commode, echo, list, oldimage, parity, fuzz[], rptflg; extern struct fcb *ownfcb; /* global event counters */ extern int badcrcs, dupes, naxin, timouts; /* data in machine-dependent files (K480Z.C, KNIM.C) */ extern char backto[], eprompt[], head1[]; extern char diskfail[], null[], os1[], os2[]; extern char oscmd1[], oscmd2[], prompt[]; /* Aztec-C globals: */ extern int errno; /********* End of Kermit externals header-file ********************/