From f3e040230772f978540a71aea43dfde200992922 Mon Sep 17 00:00:00 2001 From: "John Wilbert M. Villamor" Date: Sat, 6 Apr 2019 10:11:07 +0800 Subject: First commit --- libpsn00b/lzp/bit.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 libpsn00b/lzp/bit.c (limited to 'libpsn00b/lzp/bit.c') diff --git a/libpsn00b/lzp/bit.c b/libpsn00b/lzp/bit.c new file mode 100644 index 0000000..aefa45d --- /dev/null +++ b/libpsn00b/lzp/bit.c @@ -0,0 +1,65 @@ +#include "bit.h" + +// Bit I/O +// + +unsigned char* inPtr = 0; +int inBytes = 0; +unsigned char* outPtr = 0; +int outBytes = 0; + +int bit_buf; +int bit_count; + +void init_bits() { + + bit_count = bit_buf=0; + +} + +void put_bits(int n, int x) { + + bit_buf |= x<= 8) { + + *outPtr = bit_buf; + outPtr++; + outBytes++; + + bit_buf >>= 8; + bit_count -= 8; + + } + +} + +void flush_bits() { + + put_bits(7, 0); + bit_count = bit_buf = 0; + +} + +int get_bits(int n) { + + int x; + + while(bit_count < n) { + + bit_buf |= *inPtr<>= n; + bit_count -= n; + + return(x); + +} -- cgit v1.2.3