// expand less than 64k of data\r
//--------------------------\r
\r
- __asm\r
- {\r
-;;;;; mov bx,[headptr]\r
+ __asm {\r
+//// mov bx,[headptr]\r
\r
mov si,[sourceoff]\r
mov di,[destoff]\r
mov ch,[si] // load first byte\r
inc si\r
mov cl,1\r
-\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
expandshort:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
test ch,cl // bit set?\r
jnz bit1short\r
mov dx,[ss:bx] // take bit0 path from node\r
shl cl,1 // advance to next bit position\r
jc newbyteshort\r
jnc sourceupshort\r
-\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
bit1short:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
mov dx,[ss:bx+2] // take bit1 path\r
shl cl,1 // advance to next bit position\r
jnc sourceupshort\r
-\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
newbyteshort:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
mov ch,[si] // load next byte\r
inc si\r
mov cl,1 // back to first bit\r
-\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
sourceupshort:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
or dh,dh // if dx<256 its a byte, else move node\r
jz storebyteshort\r
mov bx,dx // next node = (huffnode *)code\r
jmp expandshort\r
-\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
storebyteshort:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
mov [es:di],dl\r
inc di // write a decopmpressed byte out\r
-;;;; mov bx,[headptr] // back to the head node for next bit\r
+//// mov bx,[headptr] // back to the head node for next bit\r
\r
cmp di,ax // done?\r
jne expandshort\r
\r
length--;\r
\r
- __asm\r
- {\r
-;;;; mov bx,[headptr]\r
+ __asm {\r
+//// mov bx,[headptr]\r
mov cl,1\r
\r
mov si,[sourceoff]\r
mov ds,[sourceseg]\r
\r
lodsb // load first byte\r
-\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
expand:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
test al,cl // bit set?\r
jnz bit1\r
mov dx,[ss:bx] // take bit0 path from node\r
jmp gotcode\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
bit1:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
mov dx,[ss:bx+2] // take bit1 path\r
-\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
gotcode:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
shl cl,1 // advance to next bit position\r
jnc sourceup\r
lodsb\r
inc cx\r
mov ds,cx\r
xor si,si\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
sinorm:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
mov cl,1 // back to first bit\r
-\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
sourceup:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
or dh,dh // if dx<256 its a byte, else move node\r
jz storebyte\r
mov bx,dx // next node = (huffnode *)code\r
jmp expand\r
-\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
storebyte:\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
mov [es:di],dl\r
inc di // write a decopmpressed byte out\r
-;;;; mov bx,[headptr] // back to the head node for next bit\r
+//// mov bx,[headptr] // back to the head node for next bit\r
\r
cmp di,0x10 // normalize es:di\r
jb dinorm\r
inc dx\r
mov es,dx\r
xor di,di\r
+#ifdef __BORLANDC__\r
+ }\r
+#endif\r
dinorm:\r
-\r
+#ifdef __BORLANDC__\r
+ __asm {\r
+#endif\r
sub [WORD PTR ss:length],1\r
jnc expand\r
dec [WORD PTR ss:length+2]\r
}\r
}\r
\r
- __asm\r
- {\r
+ __asm {\r
mov ax,ss\r
mov ds,ax\r
}\r