=============================================================================\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
\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
*/\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