1
2 /*
3 * xDMS v1.3 - Portable DMS archive unpacker - Public Domain
4 * Written by Andre Rodrigues de la Rocha <adlroc@usa.net>
5 * Functions/macros to get a variable number of bits
6 *
7 */
8
9 #include "cdata.h"
10 #include "getbits.h"
11
12
13 ULONG dms_mask_bits[]={
14 0x000000L,0x000001L,0x000003L,0x000007L,0x00000fL,0x00001fL,
15 0x00003fL,0x00007fL,0x0000ffL,0x0001ffL,0x0003ffL,0x0007ffL,
16 0x000fffL,0x001fffL,0x003fffL,0x007fffL,0x00ffffL,0x01ffffL,
17 0x03ffffL,0x07ffffL,0x0fffffL,0x1fffffL,0x3fffffL,0x7fffffL,
18 0xffffffL
19 };
20
21
22 UCHAR *dms_indata, dms_bitcount;
23 ULONG dms_bitbuf;
24
25
26
initbitbuf(UCHAR * in)27 void initbitbuf(UCHAR *in){
28 dms_bitbuf = 0;
29 dms_bitcount = 0;
30 dms_indata = in;
31 DROPBITS(0);
32 }
33
34
35