#include "pmc.h" long __pascal filecopy (WORD dst, WORD src, long size) { REGSTRUCT rs; WORD len; long sizeout = 0; int r; rs.w.FLAGS = rs.d.SSSP = 0; rs.w.DS = (DWORD)_lowbufptr + database >> 4; rs.w.DX = (DWORD)_lowbufptr + database & 15; while (size) { rs.w.CX = len = min (size, _lowbuflen); rs.w.BX = src; rs.b.AH = 0x3f; if ((r = xlt_simrmint (0x21, &rs, 0)) < 0) return r; if (rs.w.FLAGS & fCF) return rs.d.EAX | 0xffff0000; if (!(rs.w.CX = rs.w.AX)) break; rs.w.BX = dst; rs.b.AH = 0x40; if ((r = xlt_simrmint (0x21, &rs, 0)) < 0) return r; if (rs.w.FLAGS & fCF) return rs.d.EAX | 0xffff0000; sizeout += rs.w.AX; size -= rs.w.AX; if (rs.w.AX != len) break; } return sizeout; }