home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ENTERPRS
/
CPM
/
UTILS
/
S
/
SGTOOL12.ARC
/
LIBC128.ARC
/
VDCCPY.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-08-10
|
845b
|
38 lines
/*
SG C Tools 1.2
(C) 1993 Steve Goldsmith
All Rights Reserved
Compiled with HI-TECH C 3.09 (CP/M-80).
*/
#include <hitech.h>
#include <vdc.h>
/* fast copy using block copy */
void copymemvdc(ushort SMem, ushort DMem, ushort CopyLen)
{
uchar Blocks, Remain;
register uchar I;
outvdc(vdcUpdAddrHi,(uchar) (DMem >> 8));
outvdc(vdcUpdAddrLo,(uchar) DMem);
outvdc(vdcVtSmScroll,(invdc(vdcVtSmScroll) | 0x80));
outvdc(vdcBlkCpySrcAddrHi,(uchar) (SMem >> 8));
outvdc(vdcBlkCpySrcAddrLo,(uchar) SMem);
if (CopyLen > vdcMaxBlock)
{
Blocks = CopyLen/vdcMaxBlock;
Remain = CopyLen%vdcMaxBlock;
for(I = 1; I <= Blocks; I++)
outvdc(vdcWordCnt,vdcMaxBlock);
if (Remain > 0)
outvdc(vdcWordCnt,Remain);
}
else
if (CopyLen > 0)
outvdc(vdcWordCnt,CopyLen);
}