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 / SGTOOL13.ARC / CIA.ARC / CIAKEY.C < prev    next >
C/C++ Source or Header  |  1993-08-28  |  817b  |  39 lines

  1. /*
  2. SG C Tools 1.3
  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 <sys.h>
  11. #include <hitech.h>
  12. #include <cia.h>
  13.  
  14. ciaKeyRec ciaKeyScan;
  15.  
  16. void getkeyscia(void)
  17. {
  18.   register uchar I, SaveA, SaveB, KeyMask;
  19.  
  20.   SaveA = inp(cia1+ciaDataDirA);
  21.   SaveB = inp(cia1+ciaDataDirB);
  22.   outp(cia1+ciaDataDirA,0xFF);
  23.   outp(cia1+ciaDataDirB,0x00);
  24.   for(I = 0, KeyMask = 1; I < 8; I++, KeyMask <<= 1)
  25.   {
  26.     outp(cia1+ciaDataA,~KeyMask);
  27.     ciaKeyScan[I] = inp(cia1+ciaDataB);
  28.   }
  29.   for(KeyMask = 1; I < sizeof(ciaKeyScan); I++, KeyMask <<= 1)
  30.   {
  31.     outp(vicExtKey,~KeyMask);
  32.     outp(cia1+ciaDataA,0xFF);
  33.     ciaKeyScan[I] = inp(cia1+ciaDataB);
  34.   }
  35.   outp(vicExtKey,0x07);
  36.   outp(cia1+ciaDataDirA,SaveA);
  37.   outp(cia1+ciaDataDirB,SaveB);
  38. }
  39.