/* Sets input and output filters on Soundblaster Pro card */
#include <stdio.h>
int on_off_val, hi_lo_val, dnfi_val;
int reg_0C_val, reg_0E_val;
main(int argc,char **argv)
{
if(argc > 1)
{
on_off_val = atoi(argv[1]);
outportb(0x224,0x0C);
reg_0C_val = inportb(0x225);
switch(on_off_val)
{
case 1: reg_0C_val = reg_0C_val & 0xDF;
if(argc == 4)
hi_lo_val = atoi(argv[2]);
else break;
switch(hi_lo_val){
case 1: reg_0C_val = reg_0C_val | 0x08;break;
case 0: reg_0C_val = reg_0C_val & 0xF7;break;
}
break;
case 0: reg_0C_val = reg_0C_val | 0x20;
}
outportb(0x224,0x0C);
outportb(0x225,reg_0C_val);
dnfi_val = atoi(argv[argc-1]);
outportb(0x224,0x0E);
reg_0E_val = inportb(0x225);
switch(dnfi_val)
{
case 1: reg_0E_val = reg_0E_val & 0xDF;break;
case 0: reg_0E_val = reg_0E_val | 0x20;break;
}
outportb(0x224,0x0E);
outportb(0x225,reg_0E_val);
}
else
{
printf("Sets filters on Soundblaster Pro sound card\n");
printf("usage: setfilt <ANFIOnOff> [<FiltType>] <DNFIOnOff>\n\n");
printf("ANFI, DNFI: 1=On, 0=Off FiltType: 1=High, 0=Low\n");
}
}