home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-ASM_VI.ARJ / PROGC.ZIP / PROGC005.C < prev    next >
Text File  |  1988-04-10  |  2KB  |  37 lines

  1.  
  2. /************************************************************************/
  3. /* Get configuration switches the external register                     */
  4. /* This is a dangerous routine do not run!                              */
  5. /************************************************************************/
  6.  
  7. read_switches()
  8.         {
  9.         int     i, bits, switches = 0, old_mode;
  10.         old_mode = get_mode();
  11.  
  12.         /* Writing to 3C2 disables video !                              */
  13.  
  14.         write_register(0x3C2,0x1C);     /* Select interpretation        */
  15.         bits = read_register(0x3C2);    /* Get external register        */
  16.         bits = (bits & 0X10) >> 4;      /* Isolate switch bit           */
  17.         switches = bits | switches;     /* Add bit to switch            */
  18.  
  19.         write_register(0x3C2,0x18);     /* Select interpretation        */
  20.         bits = read_register(0x3C2);    /* Get external register        */
  21.         bits = (bits & 0X10) >> 3;      /* Isolate switch bit           */
  22.         switches = bits | switches;     /* Add bit to switch            */
  23.  
  24.         write_register(0x3C2,0x14);     /* Select interpretation        */
  25.         bits = read_register(0x3C2);    /* Get external register        */
  26.         bits = (bits & 0X10) >> 2;      /* Isolate switch bit           */
  27.         switches = bits | switches;     /* Add bit to switch            */
  28.  
  29.         write_register(0x3C2,0x10);     /* Select interpretation        */
  30.         bits = read_register(0x3C2);    /* Get external register        */
  31.         bits = (bits & 0X10) >> 1;      /* Isolate switch bit           */
  32.         switches = bits | switches;     /* Add bit to switch            */
  33.  
  34.         set_mode(old_mode);             /* Restore 3c2 to proper value  */
  35.         printf("\nSwitch setting is %x hex", switches);
  36.         }
  37.