#include #include #include #define SYSVER " MS-DOS/MSC Routines V1.0 created xx:xx xx/xx/xx" #define DEFARCNAM ".ARC" #define DEFWRKNAM ".$$$" #define DEFBAKNAM ".BAK" #define ALLFILES "*.*" #define PROTO(x) x #define getstamp(f, date, time) \ _dos_getftime(fileno(f), (unsigned *)date, (unsigned *)time) #define coreleft() _memavl() #define opnarcrd(p) fopen(p, "rb") #define opnarcwr(p) fopen(p, "wb") #define clsarc(f, name, date, time) clsfil(f, name, date, time) #define opnfilrd(p) fopen(p, "rb") #define getfilch(f) getc(f) #define putfilch(c, f) putc(c & 0xff, f) #define putc_tst(c, t) \ do { if (t && putc(c,t)==EOF) fatal("Write fail (disk full?)"); } while(0) void clsfil PROTO((FILE *, char *, unsigned, unsigned)); void fatal PROTO((char *, ...)); char *dir PROTO((char *)); void rempath PROTO((int, char **)); char *makefnam PROTO((char *, char *, char *)); char *basename PROTO((char *)); FILE *opnfilwr PROTO((char *)); void runarc PROTO((int, char **)); int readhdr PROTO((struct heads *, FILE *)); void writehdr PROTO((struct heads *, FILE *)); void filecopy PROTO((FILE *, FILE *, long));