]> 4ch.mooo.com Git - 16.git/commitdiff
vgacamm.exe fixed and vrstest works better~! wwwwwwwwwwwww
authorsparky4 <sparky4@cock.li>
Fri, 2 Sep 2016 19:57:56 +0000 (14:57 -0500)
committersparky4 <sparky4@cock.li>
Fri, 2 Sep 2016 19:57:56 +0000 (14:57 -0500)
src/lib/16_ca.c
src/lib/typdefst.h

index 35c225102fb1fa6e9265856982d57fc1712ce75a..8acba51635bcaab7dccde33be6da319f3999a6b3 100755 (executable)
@@ -46,10 +46,10 @@ loaded into the data segment
 =============================================================================\r
 */\r
 \r
-/*typedef struct\r
+typedef struct\r
 {\r
-  unsigned bit0,bit1;  // 0-255 is a character, > is a pointer to a node\r
-} huffnode;*/  //moved to src/lib/typdefst.h\r
+  word bit0,bit1;      // 0-255 is a character, > is a pointer to a node\r
+} huffnode;\r
 \r
 \r
 /*typedef struct\r
@@ -498,7 +498,7 @@ void CAL_OptimizeNodes(huffnode *table)
 ======================\r
 */\r
 \r
-/*++++void CAL_HuffExpand (byte huge *source, byte huge *dest,\r
+void CAL_HuffExpand (byte huge *source, byte huge *dest,\r
   long length,huffnode *hufftable)\r
 {\r
 //  unsigned bit,byte,node,code;\r
@@ -534,7 +534,7 @@ void CAL_OptimizeNodes(huffnode *table)
 \r
        __asm\r
        {\r
-               mov     bx,[headptr]\r
+;;;;;          mov     bx,[headptr]\r
 \r
                mov     si,[sourceoff]\r
                mov     di,[destoff]\r
@@ -555,28 +555,28 @@ expandshort:
                jnc     sourceupshort\r
 \r
 bit1short:\r
-asm    mov     dx,[ss:bx+2]            // take bit1 path\r
-asm    shl     cl,1                            // advance to next bit position\r
-asm    jnc     sourceupshort\r
+               mov     dx,[ss:bx+2]            // take bit1 path\r
+               shl     cl,1                            // advance to next bit position\r
+               jnc     sourceupshort\r
 \r
 newbyteshort:\r
-asm    mov     ch,[si]                         // load next byte\r
-asm    inc     si\r
-asm    mov     cl,1                            // back to first bit\r
+               mov     ch,[si]                         // load next byte\r
+               inc     si\r
+               mov     cl,1                            // back to first bit\r
 \r
 sourceupshort:\r
-asm    or      dh,dh                           // if dx<256 its a byte, else move node\r
-asm    jz      storebyteshort\r
-asm    mov     bx,dx                           // next node = (huffnode *)code\r
-asm    jmp     expandshort\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
 storebyteshort:\r
-asm    mov     [es:di],dl\r
-asm    inc     di                                      // write a decopmpressed byte out\r
-asm    mov     bx,[headptr]            // back to the head node for next bit\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
 \r
-asm    cmp     di,ax                           // done?\r
-       jne     expandshort\r
+               cmp     di,ax                           // done?\r
+               jne     expandshort\r
        }\r
        }\r
        else\r
@@ -590,59 +590,59 @@ asm       cmp     di,ax                           // done?
 \r
        __asm\r
        {\r
-       mov     bx,[headptr]\r
-       mov     cl,1\r
+;;;;           mov     bx,[headptr]\r
+               mov     cl,1\r
 \r
-       mov     si,[sourceoff]\r
-       mov     di,[destoff]\r
-       mov     es,[destseg]\r
-       mov     ds,[sourceseg]\r
+               mov     si,[sourceoff]\r
+               mov     di,[destoff]\r
+               mov     es,[destseg]\r
+               mov     ds,[sourceseg]\r
 \r
-       lodsb                   // load first byte\r
+               lodsb                   // load first byte\r
 \r
 expand:\r
-       test    al,cl           // bit set?\r
-       jnz     bit1\r
-       mov     dx,[ss:bx]      // take bit0 path from node\r
-       jmp     gotcode\r
+               test    al,cl           // bit set?\r
+               jnz     bit1\r
+               mov     dx,[ss:bx]      // take bit0 path from node\r
+               jmp     gotcode\r
 bit1:\r
-       mov     dx,[ss:bx+2]    // take bit1 path\r
+               mov     dx,[ss:bx+2]    // take bit1 path\r
 \r
 gotcode:\r
-       shl     cl,1            // advance to next bit position\r
-       jnc     sourceup\r
-       lodsb\r
-       cmp     si,0x10         // normalize ds:si\r
-asm    jb      sinorm\r
-       mov     cx,ds\r
-       inc     cx\r
-       mov     ds,cx\r
-       xor     si,si\r
+               shl     cl,1            // advance to next bit position\r
+               jnc     sourceup\r
+               lodsb\r
+               cmp     si,0x10         // normalize ds:si\r
+               jb      sinorm\r
+               mov     cx,ds\r
+               inc     cx\r
+               mov     ds,cx\r
+               xor     si,si\r
 sinorm:\r
-       mov     cl,1            // back to first bit\r
+               mov     cl,1            // back to first bit\r
 \r
 sourceup:\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
+               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
 storebyte:\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
-\r
-       cmp     di,0x10         // normalize es:di\r
-asm    jb      dinorm\r
-       mov     dx,es\r
-       inc     dx\r
-       mov     es,dx\r
-       xor     di,di\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
+\r
+               cmp     di,0x10         // normalize es:di\r
+               jb      dinorm\r
+               mov     dx,es\r
+               inc     dx\r
+               mov     es,dx\r
+               xor     di,di\r
 dinorm:\r
 \r
-       sub     [WORD PTR ss:length],1\r
-       jnc     expand\r
-       dec     [WORD PTR ss:length+2]\r
+               sub     [WORD PTR ss:length],1\r
+               jnc     expand\r
+               dec     [WORD PTR ss:length+2]\r
                jns     expand          // when length = ffff ffff, done\r
        }\r
        }\r
@@ -653,7 +653,7 @@ dinorm:
                mov     ds,ax\r
        }\r
 \r
-}*/\r
+}\r
 \r
 \r
 /*\r
index d01ebab40598eea90e70e85fbdba0ad4273d67bd..286f675cffb6addfb4cf93885b19f13f6f555874 100755 (executable)
@@ -184,15 +184,10 @@ typedef struct
 //from 16_ca\r
 //==========================================================================\r
 \r
-typedef struct\r
-{\r
-  unsigned bit0,bit1;  // 0-255 is a character, > is a pointer to a node\r
-} huffnode;\r
-\r
 typedef struct\r
 {\r
        byte            ca_levelbit,ca_levelnum;\r
-       huffnode huffnode;\r
+       //huffnode huffnode;\r
 } ca_t;\r
 \r
 //==========================================================================\r