#include "pmode.h" long __pascal filecopy (WORD dst, WORD src, long size) { REGSTRUCT rs; WORD len; long sizeout = 0; int r; rs.flags = rs.sp = rs.ss = 0; rsDS(rs) = (DWORD)_lowbufptr + database >> 4; rsDX(rs) = (DWORD)_lowbufptr + database & 15; while (size) { rsCX(rs) = len = min (size, _lowbuflen); rsBX(rs) = src; rsAH(rs) = 0x3f; if ((r = xlt_simrmint (0x21, &rs, 0)) < 0) return r; if (rs.flags & fCF) return rs.eax | 0xffff0000; if (!(rsCX (rs) = rsAX (rs))) break; rsBX(rs) = dst; rsAH(rs) = 0x40; if ((r = xlt_simrmint (0x21, &rs, 0)) < 0) return r; if (rs.flags & fCF) return rs.eax | 0xffff0000; sizeout += rsAX (rs); size -= rsAX(rs); if (rsAX (rs) != len) break; } return sizeout; }