Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//typedef unsigned char BYTE;
const BYTE terminator[5] = {0x1B, 0x7E, 0x01, 0x00, 0x00};
#define RL4_MAXISIZE 0xFFFE
#define RL4_MAXHEIGHT 0xFFFE
#define RL4_MAXWIDTH 4096
#define VALID 0x00
#define INVALID 0x01
LPBYTE RL_ImagePtr; LPBYTE RL_CodePtr; LPBYTE RL_BufEnd; WORD RL_ImageSize; WORD RL_CodeSize;
WORD FAR PASCAL RL_ECmd(LPBYTE, LPBYTE, WORD); BYTE FAR PASCAL RL_Init(LPBYTE, LPBYTE, WORD); char FAR PASCAL RL_Enc( void );
#define RL4_BLACK 0x00
#define RL4_WHITE 0x01
#define RL4_BYTE 0x00
#define RL4_NONBYTE 0x01
#define RL4_CLEAN 0x00
#define RL4_DIRTY 0x01
#define RL4_FIRST 0x00
#define RL4_SECOND 0x01
#define COMP_FAIL 0x00
#define COMP_SUCC 0x01
#define CODBUFSZ 0x7FED /* NOTE : THIS SHOULD MATCH THE SPACE GIVEN */
/* TO COMPRESSED DATA BY THE DEVICE */ /* DRIVER. CHANGE THIS BASED ON YOUR */ /* OWN DISCRETION. C.Chi */
/* Variables */
LPBYTE RL4_CodePtr; LPBYTE RL4_ImagePtr; WORD RL4_IWidth; WORD RL4_IHeight; WORD RL4_CurrRL; WORD RL4_NblCnt; BYTE RL4_RowAttrib; BYTE RL4_CurrColor; BYTE RL4_Status; BYTE RL4_Nibble; WORD RL4_ISize; WORD RL4_CodeSize;
LPBYTE RL4_BufEnd;
BYTE BUF_OVERFLOW;
/* macros */
#define PUTNBL(lval, nblcnt) { \
short i; \ for (i=nblcnt ; i>0; i--) \ { if (RL4_Nibble==RL4_FIRST) \ { RL4_Nibble = RL4_SECOND; \ *RL4_CodePtr = (BYTE) (lval >> ((i-1)*4)) << 4 ; \ } else \ { RL4_Nibble = RL4_FIRST; \ *RL4_CodePtr |= (BYTE) (lval >> ((i-1)*4)) ; \ RL4_CodePtr++; \ if (RL4_CodePtr>RL4_BufEnd) \ { BUF_OVERFLOW = 1; return; \ } \ } \ } \ }
/* Function Prototypes */
WORD FAR PASCAL RL4_ECmd (LPBYTE, LPBYTE, WORD, WORD, WORD); BYTE FAR PASCAL RL4_ChkParms (LPBYTE, LPBYTE, WORD , WORD, WORD ); char FAR PASCAL RL4_Enc (void); char FAR PASCAL RL4_ConvRow(LPBYTE); char FAR PASCAL RL4_ConvLast(LPBYTE, WORD); char FAR PASCAL RL4_ByteProc (BYTE); char FAR PASCAL RL4_EncRow(LPBYTE, WORD); WORD FAR PASCAL RL4_TransRun(WORD); char RL4_PutNbl(long , short );
|