int AdlibGetRegValueParam(int chan, byte param)
{
byte channel;
Debug.Assert(chan >= 0 && chan < 9);
if (param <= 12)
{
channel = operator2Offsets[chan];
}
else if (param <= 25)
{
param -= 13;
channel = operator1Offsets[chan];
}
else if (param <= 27)
{
param -= 13;
channel = (byte)chan;
}
else if (param == 28)
{
return 0xF;
}
else if (param == 29)
{
return 0x17F;
}
else
{
return 0;
}
var asp = setParamTable[param];
int val = AdlibGetRegValue((byte)(channel + asp.RegisterBase));
val &= asp.Mask;
val >>= asp.Shift;
if (asp.Inversion != 0)
val = asp.Inversion - val;
return val;
}