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 >
Wrap
Text File
|
1988-04-10
|
2KB
|
37 lines
/************************************************************************/
/* Get configuration switches the external register */
/* This is a dangerous routine do not run! */
/************************************************************************/
read_switches()
{
int i, bits, switches = 0, old_mode;
old_mode = get_mode();
/* Writing to 3C2 disables video ! */
write_register(0x3C2,0x1C); /* Select interpretation */
bits = read_register(0x3C2); /* Get external register */
bits = (bits & 0X10) >> 4; /* Isolate switch bit */
switches = bits | switches; /* Add bit to switch */
write_register(0x3C2,0x18); /* Select interpretation */
bits = read_register(0x3C2); /* Get external register */
bits = (bits & 0X10) >> 3; /* Isolate switch bit */
switches = bits | switches; /* Add bit to switch */
write_register(0x3C2,0x14); /* Select interpretation */
bits = read_register(0x3C2); /* Get external register */
bits = (bits & 0X10) >> 2; /* Isolate switch bit */
switches = bits | switches; /* Add bit to switch */
write_register(0x3C2,0x10); /* Select interpretation */
bits = read_register(0x3C2); /* Get external register */
bits = (bits & 0X10) >> 1; /* Isolate switch bit */
switches = bits | switches; /* Add bit to switch */
set_mode(old_mode); /* Restore 3c2 to proper value */
printf("\nSwitch setting is %x hex", switches);
}