-
Notifications
You must be signed in to change notification settings - Fork 18
/
JAMPAK.H
118 lines (84 loc) · 3.2 KB
/
JAMPAK.H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/* Catacomb Apocalypse Source Code
* Copyright (C) 1993-2014 Flat Rock Software
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
//
//
//
//
//
#define LZW_N 4096
#define LZW_F 18
// LZW_THRESHOLD :encode string into position and length if match_length is
// greater than this
#define LZW_THRESHOLD 2
// index for root of binary search trees
//
#define LZW_NIL LZW_N
//
// FILE CHUNK IDs
//
// NOTE: The only reason for changing from COMP to CMP2 and having multi
// comp header structs is for downward compatablity.
//
#define COMP ("COMP") // Comp type is ct_LZW ALWAYS!
#define CMP2 ("CMP2") // Comp type is determined in header.
//
// COMPRESSION TYPES
//
#if 0
//
// FILE CHUNK HEADER FORMATS
//
struct COMPStruct
{
unsigned long DecompLen;
};
struct CMP2Header
{
unsigned CompType;
unsigned long DecompLen;
};
#endif
memptr segptr;
extern BufferedIO lzwBIO;
//
// PARAMETER PASSING TYPES (POINTER TYPES)
//
#define SRC_FILE (0x0001) // C's non-buffered file i/o
#define SRC_FFILE (0x0002) // C's buffered ffile i/o
#define SRC_MEM (0x0004) // FAR memory Ptrs
#define SRC_BFILE (0x0008) // Buffered File I/O
#define SRC_TYPES (SRC_FILE | SRC_FFILE | SRC_MEM | SRC_BFILE)
#define DEST_FILE (0x0100) // C's non-buffered file i/o
#define DEST_FFILE (0x0200) // C's buffered ffile i/o
#define DEST_MEM (0x0400) // FAR memory Ptrs
#define DEST_TYPES (DEST_FILE | DEST_FFILE | DEST_MEM)
//---------------------------------------------------------------------------
// FUNCTION PROTOTYPEING
//---------------------------------------------------------------------------
//void DecompressFILEtoFILE(FILE *infile, FILE *outfile);
//unsigned long CompressFILEtoFILE(FILE *infile, FILE *outfile,unsigned long DataLength);
unsigned long lzwCompress(void far *infile, void far *outfile,unsigned long DataLength,unsigned PtrTypes);
void lzwDecompress(void far *infile, void far *outfile,unsigned long DataLength,unsigned PtrTypes);
int WritePtr(long outfile, unsigned char data, unsigned PtrType);
int ReadPtr(long infile, unsigned PtrType);
//memptr InitBufferedIO(int handle, BufferedIO *bio);
//void FreeBufferedIO(BufferedIO *bio);
//byte bio_readch(BufferedIO *bio);
unsigned long BLoad(char *SourceFile, memptr *DstPtr);
memptr LoadLIBFile(char *LibName,char *FileName,memptr *MemPtr);
int LoadLIBShape(char *SLIB_Filename, char *Filename,struct Shape *SHP);