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