Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ca52.h (C/C++)
- CA52 - Compression Algorithm 52 - ("Compress Area 52") - Header
- Coded & Developed by [DA2K] Reptor * youtube.com/c/reptorultra7
- */
- #define CA52HEAD_SIG 0x52CA // CA 52 (bugfix:reversed order!)
- #define CA52STRM_LEN 0xFFFF // 65535 Bytes (64K)
- #define CA52DATA_LEN 0x00FFFFFF // 16777215 Bytes (16MB)
- // Custom Variable Types
- #define uchar unsigned char // 8-bit byte (00..FF/255)
- #define uword unsigned short // 16-bit word (00..FFFF/65535)
- #define ulong unsigned long // 32-bit word (00..FFFFFFFF/4294967295)
- // File Header (5 Bytes)
- typedef struct { // word integers are stored in little-endian (lo,hi)
- uword Sig; // CA52 Header Signature (Magic Number CA52HEAD_SIG)
- uword DataLen; // Length of Packed Data Stream (1..65535 Bytes)
- uchar Method; // Compression Method (see CA52METHOD[])
- } CA52HEADER;
- // Compression Methods
- const uchar CA52METHOD[4] = {
- 0xEF, // "Ethereum Frontier": mostly packed http-URLs for BTC/ETH
- 0x25, // "2-Step": packed stream crunched twice for better ratio!
- 0xCD, // "Compressed Dictionary": w/macros, for packed ASCII text
- 0x7E // "Zetauri WAV Crunch": highly compressed *.WAV audio data
- };
- // Global Variables
- uchar CA52STREAM [CA52STRM_LEN]; // packed stream (input)
- uchar CA52BUFFER [CA52STRM_LEN]; // buffered data (temporary)
- uchar CA52OUTPUT [CA52DATA_LEN]; // uncompressed (output)
- bool IsCA52; // used for checks
- /*
- Initial Version 0.1 (2015-08-28)
- * URL: pastie.org/pastes/10394287
- * MD5: 6482deb2020c1edb82d16f256b1c0fa5
- Revised Version 0.2 (2015-09-15)
- * URL: pastebin.com/Cu6EKsX1
- * MD5: a3a5fa8a2bdb32389387acbea8ae75c8
- Updated Version 0.3 (2015-12-11)
- * URL: pastebin.com/1zh50698
- * MD5: 68f0a19f93d2ab424a72607e689db382
- Updated Version 0.4 (2016-06-02)
- * URL: pastebin.com/1e5TsfGT
- * MD5: (n/a)
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement