]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_ca.c
16_in todo slightly updated thinking about making jpoystick input verbose
[16.git] / src / lib / 16_ca.c
old mode 100644 (file)
new mode 100755 (executable)
index f74a571..7eb30d8
@@ -31,7 +31,10 @@ loaded into the data segment
 */\r
 \r
 #include "src/lib/16_ca.h"\r
-//#include "ID_STRS.H"\r
+#pragma hdrstop\r
+\r
+#pragma warn -pro\r
+#pragma warn -use\r
 \r
 //#define THREEBYTEGRSTARTS\r
 \r
@@ -76,8 +79,6 @@ void          _seg    *grsegs[NUMCHUNKS];
 byte           far     grneeded[NUMCHUNKS];\r
 byte           ca_levelbit,ca_levelnum;*/\r
 \r
-int                    profilehandle,debughandle;\r
-\r
 void   (*drawcachebox)         (char *title, unsigned numcache);\r
 void   (*updatecachebox)       (void);\r
 void   (*finishcachebox)       (void);\r
@@ -173,15 +174,21 @@ long GRFILEPOS(int c)
 =\r
 ============================\r
 */\r
-void CA_OpenDebug(void)\r
+void CA_OpenDebug(global_game_variables_t *gvar)\r
 {\r
-       unlink("debug.16");\r
-       debughandle = open("debug.16", O_CREAT | O_WRONLY | O_TEXT);\r
+#ifdef __BORLANDC__\r
+       unlink("debug.16b");\r
+       gvar->handle.debughandle = open("debug.16b", O_CREAT | O_WRONLY | O_TEXT);\r
+#endif\r
+#ifdef __WATCOMC__\r
+       unlink("debug.16w");\r
+       gvar->handle.debughandle = open("debug.16w", O_CREAT | O_WRONLY | O_TEXT);\r
+#endif\r
 }\r
 \r
-void CA_CloseDebug(void)\r
+void CA_CloseDebug(global_game_variables_t *gvar)\r
 {\r
-       close(debughandle);\r
+       close(gvar->handle.debughandle);\r
 }\r
 \r
 \r
@@ -218,22 +225,22 @@ void CAL_GetGrChunkLength (int chunk)
 boolean CA_FarRead(int handle, byte huge *dest, dword length, mminfo_t *mm)\r
 {\r
        boolean flag;\r
-       /*dword fat=0;
-       word segm=0;
+       //dword fat=0;\r
+       //word segm=0;\r
        //if(mm->EMSVer<0x40)\r
-       if(length>0xfffflu)
-       {
-               printf("File is a fat bakapee\n");
-               segm=(length%0xfffflu)-1;
-               fat=segm*0xfffflu;
-               length-=fat;\r
+       if(length>0xfffflu)\r
+       {\r
+               printf("File is a fat bakapee\n");\r
+               //segm=(length%0xfffflu)-1;\r
+               //fat=segm*0xfffflu;\r
+               //length-=fat;\r
 //             printf("CA_FarRead doesn't support 64K reads yet!\n");\r
-       }
-
-       if(!fat&&!segm)
-       {*/\r
-               __asm\r
-               {\r
+               return 0;//TODO: EXPAND!!!\r
+       }\r
+\r
+       //if(!fat&&!segm)\r
+       //{\r
+               __asm {\r
                        push    ds\r
                        mov     bx,[handle]\r
                        mov     cx,[WORD PTR length]\r
@@ -246,18 +253,34 @@ boolean CA_FarRead(int handle, byte huge *dest, dword length, mminfo_t *mm)
                        mov     errno,ax\r
                        mov     flag,0\r
                        jmp End\r
+#ifdef __BORLANDC__\r
+               }\r
+#endif\r
 good:\r
+#ifdef __BORLANDC__\r
+               __asm {\r
+#endif\r
                        cmp     ax,[WORD PTR length]\r
                        je      done\r
 //                     errno = EINVFMT;                        // user manager knows this is bad read\r
                        mov     flag,0\r
                        jmp End\r
+#ifdef __BORLANDC__\r
+               }\r
+#endif\r
 done:\r
+#ifdef __BORLANDC__\r
+               __asm {\r
+#endif\r
                        mov     flag,1\r
+#ifdef __BORLANDC__\r
+               }\r
+#endif\r
 End:\r
+#ifdef __WATCOMC__\r
                }\r
-       return flag;
-       //}else return 0;//todo: EXPAND!!!\r
+#endif\r
+       return flag;\r
 }\r
 \r
 \r
@@ -274,22 +297,22 @@ End:
 boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm)\r
 {\r
        boolean flag;\r
-       /*dword fat=0;
-       word segm=0;
+       //dword fat=0;\r
+       //word segm=0;\r
        //if(mm->EMSVer<0x40)\r
-       if(length>0xfffflu)
-       {
-               printf("File is a fat bakapee\n");
-               segm=(length%0xfffflu)-1;
-               fat=segm*0xfffflu;
-               length-=fat;\r
+       if(length>0xfffflu)\r
+       {\r
+               printf("File is a fat bakapee\n");\r
+               //segm=(length%0xfffflu)-1;\r
+               //fat=segm*0xfffflu;\r
+               //length-=fat;\r
 //             printf("CA_FarRead doesn't support 64K reads yet!\n");\r
+               return 0;\r
        }\r
-
-       if(!fat&&!segm)
-       {*/\r
-               __asm\r
-               {\r
+\r
+       //if(!fat&&!segm)\r
+       //{\r
+               __asm {\r
                        push    ds\r
                        mov     bx,[handle]\r
                        mov     cx,[WORD PTR length]\r
@@ -302,18 +325,34 @@ boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm)
                        mov     errno,ax\r
                        mov flag,0\r
                        jmp End\r
+#ifdef __BORLANDC__\r
+               }\r
+#endif\r
 good:\r
+#ifdef __BORLANDC__\r
+               __asm {\r
+#endif\r
                        cmp     ax,[WORD PTR length]\r
                        je      done\r
                        //errno = ENOMEM;                               // user manager knows this is bad write\r
                        mov     flag,0\r
                        jmp End\r
+#ifdef __BORLANDC__\r
+               }\r
+#endif\r
 done:\r
+#ifdef __BORLANDC__\r
+               __asm {\r
+#endif\r
                        mov     flag,1\r
+#ifdef __BORLANDC__\r
+               }\r
+#endif\r
 End:\r
+#ifdef __WATCOMC__\r
                }\r
-       return flag;
-       //}else return 0;\r
+#endif\r
+       return flag;\r
 }\r
 \r
 \r
@@ -330,7 +369,7 @@ End:
 boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm)\r
 {\r
        int handle;\r
-       dword size;
+       sdword size;\r
        //long size;\r
 \r
        if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
@@ -361,7 +400,7 @@ boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm)
 boolean CA_LoadFile(char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi)\r
 {\r
        int handle;\r
-       dword size;
+       sdword size;\r
        //long size;\r
 \r
        if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
@@ -1044,12 +1083,20 @@ asm     mov     ds,ax
 ======================\r
 */\r
 \r
-void CA_Startup(void)\r
+void CA_Startup(global_game_variables_t *gvar)\r
 {\r
 #ifdef PROFILE\r
-       unlink("profile.16");\r
-       profilehandle = open("profile.16", O_CREAT | O_WRONLY | O_TEXT);\r
+#ifdef __BORLANDC__\r
+       unlink("profile.16b");\r
+       gvar->handle.profilehandle = open("profile.16b", O_CREAT | O_WRONLY | O_TEXT);\r
+#endif\r
+#ifdef __WATCOMC__\r
+       unlink("profile.16w");\r
+       gvar->handle.profilehandle = open("profile.16w", O_CREAT | O_WRONLY | O_TEXT);\r
+#endif\r
 #endif\r
+//     unlink("debug0.16");\r
+//     gvar->handle.showmemhandle = open("debug0.16", O_CREAT | O_WRONLY | O_TEXT);\r
 /*++++\r
 // MDM begin - (GAMERS EDGE)\r
 //\r
@@ -1106,11 +1153,12 @@ void CA_Startup(void)
 ======================\r
 */\r
 \r
-void CA_Shutdown(void)\r
+void CA_Shutdown(global_game_variables_t *gvar)\r
 {\r
 #ifdef PROFILE\r
-       close(profilehandle);\r
+       close(gvar->handle.profilehandle);\r
 #endif\r
+//     close(gvar->handle.showmemhandle);\r
 /*++++\r
        close(maphandle);\r
        close(grhandle);\r