in atari_py/ale_interface/src/emucore/Keyboard.cxx [79:183]
Int32 Keyboard::read(AnalogPin pin)
{
// NOTE: maximumResistance = GND, while minimumResistance = +5V
if(pin == Nine)
{
if(myJack == Left)
{
if(!(myPinState & 0x01) && (myEvent.get(Event::KeyboardZero1) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x02) && (myEvent.get(Event::KeyboardZero4) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x04) && (myEvent.get(Event::KeyboardZero7) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x08) && (myEvent.get(Event::KeyboardZeroStar) != 0))
{
return maximumResistance;
}
else
{
return minimumResistance;
}
}
else
{
if(!(myPinState & 0x01) && (myEvent.get(Event::KeyboardOne1) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x02) && (myEvent.get(Event::KeyboardOne4) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x04) && (myEvent.get(Event::KeyboardOne7) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x08) && (myEvent.get(Event::KeyboardOneStar) != 0))
{
return maximumResistance;
}
else
{
return minimumResistance;
}
}
}
else
{
if(myJack == Left)
{
if(!(myPinState & 0x01) && (myEvent.get(Event::KeyboardZero2) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x02) && (myEvent.get(Event::KeyboardZero5) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x04) && (myEvent.get(Event::KeyboardZero8) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x08) && (myEvent.get(Event::KeyboardZero0) != 0))
{
return maximumResistance;
}
else
{
return minimumResistance;
}
}
else
{
if(!(myPinState & 0x01) && (myEvent.get(Event::KeyboardOne2) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x02) && (myEvent.get(Event::KeyboardOne5) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x04) && (myEvent.get(Event::KeyboardOne8) != 0))
{
return maximumResistance;
}
else if(!(myPinState & 0x08) && (myEvent.get(Event::KeyboardOne0) != 0))
{
return maximumResistance;
}
else
{
return minimumResistance;
}
}
}
return minimumResistance;
}