]> 4ch.mooo.com Git - 16.git/commitdiff
starting to port cache system .-.
authorsparky4 <sparky4@cock.li>
Thu, 2 Jul 2015 16:51:16 +0000 (11:51 -0500)
committersparky4 <sparky4@cock.li>
Thu, 2 Jul 2015 16:51:16 +0000 (11:51 -0500)
modified:   exmmtest.exe
modified:   src/lib/16_ca.c
modified:   src/lib/16_mm.c

exmmtest.exe
src/lib/16_ca.c
src/lib/16_mm.c

index 138b13c0edf8d2454c2a6a5d41598a517488ab90..3b7d54aeea255b2d434d20ab40eb7c9cfe25c0cd 100644 (file)
Binary files a/exmmtest.exe and b/exmmtest.exe differ
index 29df8f63d634516031dd1f9e672a7fe43912f415..c5d983fcfe74663e6f3334317e992dfc21b292f0 100644 (file)
@@ -90,7 +90,7 @@ void  (*finishcachebox)       (void);
 =============================================================================\r
 */\r
 \r
-extern long    far     CGAhead;\r
+/*extern       long    far     CGAhead;\r
 extern long    far     EGAhead;\r
 extern byte    CGAdict;\r
 extern byte    EGAdict;\r
@@ -128,13 +128,13 @@ SDMode            oldsoundmode;
 \r
 void   CAL_DialogDraw (char *title,unsigned numcache);\r
 void   CAL_DialogUpdate (void);\r
-void   CAL_DialogFinish (void);\r
+void   CAL_DialogFinish (void);*/\r
 void   CAL_CarmackExpand (unsigned far *source, unsigned far *dest,\r
                unsigned length);\r
 \r
 \r
-#ifdef THREEBYTEGRSTARTS\r
-#define FILEPOSSIZE    3\r
+/*#ifdef THREEBYTEGRSTARTS\r
+#define FILEPOSSIZE    3*/\r
 //#define      GRFILEPOS(c) (*(long far *)(((byte far *)grstarts)+(c)*3)&0xffffff)\r
 long GRFILEPOS(int c)\r
 {\r
@@ -218,25 +218,31 @@ void CAL_GetGrChunkLength (int chunk)
 */\r
 \r
 boolean CA_FarRead (int handle, byte far *dest, long length)\r
-{\r
+{
+       union REGS CPURegs;\r
        if (length>0xffffl)\r
                printf("CA_FarRead doesn't support 64K reads yet!\n");\r
-\r
-asm            push    ds\r
-asm            mov     bx,[handle]\r
-asm            mov     cx,[WORD PTR length]\r
-asm            mov     dx,[WORD PTR dest]\r
-asm            mov     ds,[WORD PTR dest+2]\r
-asm            mov     ah,0x3f                         // READ w/handle\r
-asm            int     21h\r
-asm            pop     ds\r
-asm            jnc     good\r
-       errno = _AX;\r
-       return  false;\r
+
+       __asm
+       {\r
+               push    ds\r
+               mov     bx,[handle]\r
+               mov     cx,[WORD PTR length]\r
+               mov     dx,[WORD PTR dest]\r
+               mov     ds,[WORD PTR dest+2]\r
+               mov     ah,0x3f                         // READ w/handle\r
+               int     21h\r
+               pop     ds\r
+               jnc     good
+       }\r
+       errno = CPURegs.x.ax;\r
+       return  false;
+       __asm
+       {\r
 good:\r
-asm            cmp     ax,[WORD PTR length]\r
-asm            je      done\r
-       errno = EINVFMT;                        // user manager knows this is bad read\r
+               cmp     ax,[WORD PTR length]\r
+               je      done\r
+               errno = EINVFMT;                        // user manager knows this is bad read\r
        return  false;\r
 done:\r
        return  true;\r
index 45411033464f18b476e50b71081904e33d13ef59..9802e4d8d66626f6760dc31f463b4712db284bde 100644 (file)
@@ -335,16 +335,14 @@ void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi)
 {
        unsigned        base,size;
 
+getmemory:
        __asm
        {
                mov     ax,0x4310
                int     0x2f
                mov     [WORD PTR XMSaddr],bx
                mov     [WORD PTR XMSaddr+2],es         // function pointer to XMS driver
-       }
-getmemory:
-       __asm
-       {
+
                mov     ah,XMS_ALLOCUMB
                mov     dx,0xffff                                       // try for largest block possible
                call    [DWORD PTR XMSaddr]