/* file duplication for clink 1.2 */#include "clinkg"/* duplicate(fname) -- read file into * buffer, let user swap disk, write * out file */duplicate(fname)char *fname;$(char c;int i,j,fin,fout;pl("Insert source disk & type RETURN");gets(buf); /* dummy input */if((fin=copen(fname,'r'))<0)$(ioerror("Can't read",fname,fin);return;$)i=ciov(fin,7,stab,stsize,-1,-1);if(i>=0)$(pl("File too big, use DOS");cclose(fin);return;$)if(i!=-136)$(ioerror("read error",fname,i);cclose(fin);return;$)/* get # of bytes read */j=dpeek(0x348+(fin<<4));cclose(fin);pl("Insert destination disk & type RETURN");gets(buf); /* dummy input */if((fout=copen(fname,'w'))<0)$(ioerror("Can't write",fname,fout);return;$)j=ciov(fout,11,stab,j,-1,-1);cclose(fout);if(j<0)ioerror("write error",fname,j);else pl("Duplicated successfully");$)/* * fcopy(in,out) -- copy all bytes in * in to out */fcopy(fin,fout)int fin,fout;$(char c;int i,j;i=ciov(fin,7,stab,stsize,-1,-1);if(i>=0)pl("File too big. Sorry");else if(i!=-136)ioerror("Read error",".OBJ file",i);else$(/* get # of bytes read */j=dpeek(0x348+(fin<<4));j=ciov(fout,11,stab,j,-1,-1);if(j<0)ioerror("Write error",".OBJ file",j);$)$)