home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C128CPM / SGTOOL11.ARC / LIBC128.ARC / VDCFILL.C < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-25  |  778 b   |  36 lines

  1. /*
  2. SG C Tools 1.1
  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, I;
  18.  
  19.   outvdc(vdcUpdAddrHi,(uchar) (FillMem >> 8));
  20.   outvdc(vdcUpdAddrLo,(uchar) FillMem);
  21.   outvdc(vdcVtSmScroll,(invdc(vdcVtSmScroll) & 0x7F));
  22.   outvdc(vdcCPUData,Filler);
  23.   if (FillLen > vdcMaxBlock)
  24.   {
  25.     Blocks = FillLen/vdcMaxBlock;
  26.     Remain = FillLen%vdcMaxBlock;
  27.     for(I = 1; I <= Blocks; I++)
  28.       outvdc(vdcWordCnt,vdcMaxBlock);
  29.     if (Remain > 1)
  30.       outvdc(vdcWordCnt,--Remain);
  31.   }
  32.   else
  33.     if (FillLen > 1)
  34.       outvdc(vdcWordCnt,--FillLen);
  35. }
  36.