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