- if (length>0xffffl)\r
- printf("CA_FarWrite doesn't support 64K reads yet!\n");
-\r
- __asm
- {\r
- push ds\r
- mov bx,[handle]\r
- mov cx,[WORD PTR length]\r
- mov dx,[WORD PTR source]\r
- mov ds,[WORD PTR source+2]\r
- mov ah,0x40 // WRITE w/handle\r
- int 21h\r
- pop ds\r
- jnc good
- mov errno,ax\r
- mov flag,0
- jmp End\r
+ /*dword fat=0;
+ word segm=0;
+ //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
+// printf("CA_FarRead doesn't support 64K reads yet!\n");\r
+ }\r
+
+ if(!fat&&!segm)
+ {*/\r
+ __asm\r
+ {\r
+ push ds\r
+ mov bx,[handle]\r
+ mov cx,[WORD PTR length]\r
+ mov dx,[WORD PTR source]\r
+ mov ds,[WORD PTR source+2]\r
+ mov ah,0x40 // WRITE w/handle\r
+ int 21h\r
+ pop ds\r
+ jnc good\r
+ mov errno,ax\r
+ mov flag,0\r
+ jmp End\r