home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / os9 / os9inc.h < prev    next >
C/C++ Source or Header  |  2020-01-01  |  5KB  |  156 lines

  1. /*
  2.  * os9inc.h  Os9 kermit includes, defines, and global variable declarations
  3.  */
  4.  
  5. #define VERSION 1      /* Unix-OS9 Version number  */
  6. #define RELEASE 6      /* Update release           */
  7.  
  8. /* most conditional compilation has been removed.    */
  9. #define OS9          1        /* OS9 is related to UNIX */
  10.  
  11. #define NO_TANDEM    1        /* no x-on x-off          */
  12.  
  13. #ifdef COCO
  14. #ifndef tps
  15. /* tps is wrong in coco include file */
  16. #define tps 60
  17. #endif /* tps */
  18. /* coco cannot handle floppy and other i/o at the same time */
  19. #define nooverlap
  20. #else /* not COCO */
  21. #ifndef tps
  22. #ifndef OSK   /* tps isn't in Os9/68k time.h */
  23. /* make sure tps is correct in time.h ! */
  24. #include <time.h>
  25. #else /* OSK */
  26. #define tps 100 /* assumption for os9/68k, since tps not defined in time.h */
  27. #endif /* OSK */
  28. #endif /* tps */
  29. #endif /* COCO */
  30.  
  31. #ifdef OSK
  32. #define SGXONOFF   /* os9/68k has xon/xoff in scf drivers */
  33. #define SLEEPOK    /* " sleep function shoudld be relable */
  34. #endif
  35.  
  36. /* see note in readtimed before making tps, ticstosleep,
  37.  * or timeoutint a variable 
  38.  */
  39.  
  40. #ifndef ticstosleep
  41. /* tics to wait between read tries in reading packet (>=1) */
  42. #define ticstosleep 4
  43. #endif
  44.  
  45. #ifndef timeoutint
  46. #define timeoutint 15  /* timeout interval in "seconds" */
  47.                        /* actual timeout time will be longer, unless */
  48.                        /* ticstosleep is 1, where it might be shorter */
  49. #endif
  50.  
  51. #ifndef EXTERN
  52. #define EXTERN extern  /* global varibles are extern in all but one module */
  53. #endif
  54.  
  55. #include <stdio.h>       /* Standard UNIX definitions */
  56.  
  57. #ifndef SLEEPOK
  58. #define sleep(sec) tsleep((sec)*tps+1)   /* library sleep routine is wrong */
  59.                                          /* in some os9 C's (coco) */
  60. #endif
  61.  
  62. /*
  63.  * Speeds
  64.  */
  65. #ifndef OSK /* speeds different for Os9/68k */
  66. #define B110    0
  67. #define B300    1
  68. #define B600    2
  69. #define B1200   3
  70. #define B2400   4
  71. #define B4800   5
  72. #define B9600   6
  73. #define B19200  7
  74. #endif
  75.  
  76. #include <sgstat.h>
  77.  
  78. /* Symbol Definitions */
  79.  
  80. #define MAXPACKSIZ  94       /* Maximum packet size */
  81. #define SOH          1       /* Start of header */
  82. #define CR          13       /* ASCII Carriage Return */
  83. #define SP          32       /* ASCII space */
  84. #define DEL        127       /* Delete (rubout) */
  85. #define ESCCHR     '~'       /* Default escape character for CONNECT */
  86.  
  87. #define MAXTRY      10       /* Times to retry a packet */
  88. #define MYQUOTE    '#'       /* Quote character I will use */
  89. #define MYPAD        0       /* Number of padding characters I will need */
  90. #define MYPCHAR      0       /* Padding character I need (NULL) */
  91.  
  92. #define MYEOL     '\n'       /* End-Of-Line character I need (none needed) */
  93.  
  94. #define MYTIME      10       /* Seconds after which I should be timed out */
  95. #define MAXTIM      60       /* Maximum timeout interval */
  96. #define MINTIM       2       /* Minumum timeout interval */
  97.  
  98. #define TRUE        -1       /* Boolean constants */
  99. #define FALSE        0       /* (TRUE+1 == FALSE) */
  100.  
  101.  
  102. /* Macro Definitions */
  103.  
  104. /*
  105.  * tochar: converts a control character to a printable one by adding a space.
  106.  *
  107.  * unchar: undoes tochar.
  108.  *
  109.  * ctl:      converts between control characters and printable characters by
  110.  *      toggling the control bit (ie. ^A becomes A and A becomes ^A).
  111.  */
  112. #define tochar(ch)    ((ch) + ' ')
  113. #define unchar(ch)    ((ch) - ' ')
  114. #define ctl(ch)       ((ch) ^ 64 )
  115.  
  116.  
  117. /* Global Variables */
  118.  
  119. EXTERN int
  120.    size,             /* Size of present data */
  121.    rpsiz,            /* Maximum receive packet size */
  122.    spsiz,            /* Maximum send packet size */
  123.    pad,              /* How much padding to send */
  124.    timint,           /* Timeout for foreign host on sends */
  125.    n,                /* Packet number */
  126.    n_total,          /* Total number of packets sent  */
  127.    numtry,           /* Times this packet retried */
  128.    oldtry,           /* Times previous packet retried */
  129.    ttyfd,            /* File descriptor of tty for I/O, 0 if remote */
  130.    server,           /* Host server mode flag      */
  131.    hflg,             /* Host Server flag           */
  132.    gflg,             /* Get file flag              */
  133.    uflg,             /* Unix file transfer mode  */
  134.    remot,            /* -1 means we're a remote kermit */
  135.    image,            /* -1 means 8-bit mode */
  136.    debug,            /* indicates level of debugging output (0=none) */
  137.    filnamcnv,        /* -1 means do file name case conversions */
  138.    filecount;        /* Number of files left to send */
  139.  
  140. EXTERN char
  141.    state,            /* Present state of the automaton */
  142.    rpack(),          /* Function to receive packet  */
  143.    padchar,          /* Padding character to send */
  144.    eol,              /* End-Of-Line character to send */
  145.    escchr,           /* Connect command escape character */
  146.    quote,            /* Quote character in incoming data */
  147.    **filelist,       /* List of files to be sent */
  148.    *filnam,          /* Current file name */
  149.    recpkt[MAXPACKSIZ], /* Receive packet buffer */
  150.    packet[MAXPACKSIZ]; /* Packet buffer */
  151.  
  152. EXTERN FILE
  153.    *fp,              /* File pointer for current disk file */
  154.    *log;             /* File pointer for Logfile */
  155.  
  156.