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 / VDCFILL.C < prev    next >
C/C++ Source or Header  |  1993-08-10  |  796b  |  37 lines

  1. /*
  2. SG C Tools 1.2
  3.  
  4. (C) 1993 Steve Goldsmith
  5. All Rights Reserved
  6.  
  7. Compiled with HI-TECH C 3.09 (CP/M-80).
  8. */
  9.  
  10. #include <hitech.h>
  11. #include <vdc.h>
  12.  
  13. /* fast fill using block writes */
  14.  
  15. void fillmemvdc(ushort FillMem, ushort FillLen, uchar Filler)
  16. {
  17.   uchar Blocks, Remain;
  18.   register uchar I;
  19.  
  20.   outvdc(vdcUpdAddrHi,(uchar) (FillMem >> 8));
  21.   outvdc(vdcUpdAddrLo,(uchar) FillMem);
  22.   outvdc(vdcVtSmScroll,(invdc(vdcVtSmScroll) & 0x7F));
  23.   outvdc(vdcCPUData,Filler);
  24.   if (FillLen > vdcMaxBlock)
  25.   {
  26.     Blocks = FillLen/vdcMaxBlock;
  27.     Remain = FillLen%vdcMaxBlock;
  28.     for(I = 1; I <= Blocks; I++)
  29.       outvdc(vdcWordCnt,vdcMaxBlock);
  30.     if (Remain > 1)
  31.       outvdc(vdcWordCnt,--Remain);
  32.   }
  33.   else
  34.     if (FillLen > 1)
  35.       outvdc(vdcWordCnt,--FillLen);
  36. }
  37.