home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 106 / EnigmaAmiga106CD.iso / software / on-line / abe / amy / abe.h
Encoding:
C/C++ Source or Header  |  1999-08-25  |  2.6 KB  |  118 lines

  1. #define A1NSETS 3            /* number of character sets */
  2. #define MAX_SETS 5        /* max number of char sets */
  3. #define A1NPRINTS 86        /* number of printable characters */
  4. #define MAX_PRINTS 96
  5. #define TOTAL_PRINTS 128    /* highest ASCII printable possible */
  6. #define A1FPRINT '%'        /* first printable to be used (ABE1)*/
  7. #define SFBYTE 31        /* index of first line number byte in
  8.                     line number char set table */
  9. #define NUM_SAFE 64
  10. #define A1LPRINT 'z'
  11.  
  12. #ifndef INB_LEN
  13. # define INB_LEN 10000        /* input buffer for pre-pass */
  14. #endif
  15. #define MAX_LLEN 80        /* max output line len */
  16. #define FNAMELEN 255        /* max len of file name */
  17. #define CSUM_MOD 65536l        /* modulus for checksums */
  18.  
  19. typedef char bool;
  20.  
  21.  
  22.     /* read mode for binary files in this OS */
  23. # define READMODE "r"
  24. # define WRITEMODE "w"
  25. # define DIRCHARS "/"
  26. # define OUROS "AmigaOS"
  27.  
  28. #ifndef DECODER
  29. #define DECODER "td%s"
  30. #endif
  31.  
  32.     /* methods of processing */
  33. #define ONEPASS 1
  34. #define TWOPASS 2
  35.  
  36. struct frq {
  37.     long freq;
  38.     int bytenum;
  39.     };
  40.  
  41. #define LB_LEN 4        /* length of look ahead buffer */
  42.  
  43. #define MPERLINE 65
  44.  
  45. #define MAX_UNAME 14        /* max len of universal name */
  46. #define MAX_FNAME 255        /* maximum file names */
  47. #define MAX_BLOCKS 255
  48. #define MAX_COMLEN MAX_LLEN    /* maximum command len */
  49. #define OUR_VERSION 1000
  50. #define MAX_STYLE 8        /* max len of a style code */
  51.  
  52. #define OUR_EOF 256
  53.  
  54. /* general names for control characters in decoder */
  55. #define MCHAR 0
  56. #define SHIFTX 1
  57. #define SHIFTXX 2
  58. #define SHIFTXcX 3
  59. #define CHANGE_SET 4
  60. #define RUNLENGTH 5
  61.  
  62. /* for ABE1 format */
  63. #define SETXX '!'
  64. #define NEWSET1 '{'
  65. #define SET10X '}'
  66.  
  67. /* for ABE2 format */
  68. #define A2SETXX '"'
  69. #define A2NEWSET1 '+'
  70. #define A2X0XSET  ":;<=>?@_"
  71.     
  72.  
  73.  
  74. #define TRUE 1
  75. #define FALSE 0
  76.  
  77. /* header characters */
  78.  
  79. #define CODE_HEAD '"'
  80. #define MAIN_HEAD '#'
  81. #define SUB_HEAD '$'
  82.  
  83. #define DEF_BLOCKSIZE 40000L
  84.  
  85. #define VERNUM 1000
  86. #define EARLIEST_VERNUM 1000
  87. #define EARLIEST_SIMD 1000
  88.  
  89. #define FULL_MAP 255        /* all 8 lines of the character map */
  90.  
  91. extern char *malloc();
  92. extern char *allocstring();
  93. extern FILE *openout();
  94. extern char *lineconv();
  95. extern long atol();
  96.  
  97. struct fseen_list {
  98.     char *name_seen;
  99.     struct fseen_list *next_fs;
  100.     };
  101.  
  102. /* codes for return from decoder */
  103. #define GOOD_FILE 0
  104. #define NO_DATA 1
  105. #define UUDECODE -1
  106.  
  107. /* encoding styles */
  108. #define UNDEF -1
  109. #define ABE1 0
  110. #define ABE2 1
  111. #define UUENCODE 2
  112. #define TEXT 3
  113. /* crc information */
  114. #define TABSIZE         256            /* no of entries in table */
  115. typedef unsigned long   tcrc;          /* type of crc value */
  116. /* Gary S. Brown's CRC32 macro */
  117. #define UPDC32(b, c) (crctab[((int)c ^ b) & 0xff] ^ ((c >> 8) & 0x00FFFFFF))
  118.