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 / VDCMAP.C < prev    next >
C/C++ Source or Header  |  1993-08-10  |  1KB  |  49 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. uchar  vdcScrHorz;
  14. uchar  vdcScrVert;
  15. ushort vdcScrSize;
  16. ushort vdcDispMem;
  17. ushort vdcAttrMem;
  18. ushort vdcCharMem;
  19. ushort vdcCharMemSize;
  20. uchar  vdcCharBytes;
  21. uchar  vdcCharVert;
  22. ushort vdcBitMapMemSize;
  23.  
  24. /* set global 'vdc' prefixed vars from current vdc settings.  the char mem */
  25. /* value is only correct if character set is at 2000, 6000, a000 and e000. */
  26.  
  27. void mapvdc(void)
  28. {
  29.   vdcScrHorz = invdc(vdcHzDisp);
  30.   vdcScrVert = invdc(vdcVtDisp);
  31.   vdcScrSize = vdcScrHorz*vdcScrVert;
  32.   vdcDispMem = (invdc(vdcDspStAddrHi) << 8)+invdc(vdcDspStAddrLo);
  33.   vdcAttrMem = (invdc(vdcAttrStAddrHi) << 8)+invdc(vdcAttrStAddrLo);
  34.   vdcBitMapMemSize = 16000;
  35.   vdcCharVert = (invdc(vdcChTotalVt) & 0x1F)+1;
  36.   if (vdcCharVert > 16)
  37.   {
  38.     vdcCharMem = (invdc(vdcChSetStAddr) & 0xC0) << 8;
  39.     vdcCharBytes = vdcMaxCharBytes;
  40.     vdcCharMemSize = (vdcCharsPerSet*vdcCharBytes) << 1;
  41.   }
  42.   else
  43.   {
  44.     vdcCharMem = (invdc(vdcChSetStAddr) & 0xE0) << 8;
  45.     vdcCharBytes = vdcMaxCharBytes >> 1;
  46.     vdcCharMemSize = (vdcCharsPerSet*vdcCharBytes) << 1;
  47.   }
  48. }
  49.