*/\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
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
=\r
============================\r
*/\r
-void CA_OpenDebug(void)\r
+void CA_OpenDebug(global_game_variables_t *gvar)\r
{\r
- unlink("DEBUG.TXT");\r
- debughandle = open("DEBUG.TXT", 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
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("pee\n");
- segm=(length%0xfffflu)-1;
- fat=segm*0xfffflu;
- length-=fat;\r
-// printf("CA_FarRead doesn't support 64K reads yet!\n");\r
- }
-
- if(!fat&&!segm)
+ if(length>0xfffflu)\r
{\r
- __asm\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;//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
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
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("pee\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
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
boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm)\r
{\r
int handle;\r
- dword size;\r
+ sdword size;\r
+ //long size;\r
\r
if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
return false;\r
boolean CA_LoadFile(char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi)\r
{\r
int handle;\r
- long size;\r
+ sdword size;\r
+ //long size;\r
\r
if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
return false;\r
======================\r
*/\r
\r
-void CA_Startup(void)\r
+void CA_Startup(global_game_variables_t *gvar)\r
{\r
#ifdef PROFILE\r
- unlink("PROFILE.TXT");\r
- profilehandle = open("PROFILE.TXT", 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
======================\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