diff --git a/src/emucore/AtariVox.cxx b/src/emucore/AtariVox.cxx index 9cb60012f..b80f6de4b 100644 --- a/src/emucore/AtariVox.cxx +++ b/src/emucore/AtariVox.cxx @@ -51,8 +51,9 @@ bool AtariVox::read(DigitalPin pin) { // Pin 2: SpeakJet READY case DigitalPin::Two: - // For now, we just assume the device is always ready - return setPin(pin, true); + { + return setPin(pin, mySerialPort->isCTS()); + } default: return SaveKey::read(pin); diff --git a/src/emucore/SerialPort.hxx b/src/emucore/SerialPort.hxx index aa08acbe8..f2ac5bf68 100644 --- a/src/emucore/SerialPort.hxx +++ b/src/emucore/SerialPort.hxx @@ -58,6 +58,14 @@ class SerialPort */ virtual bool writeByte(uInt8 data) { return false; } + /** + Test for 'Clear To Send' enabled. By default, assume it's always + OK to send more data. + + @return True if CTS signal enabled, else false + */ + virtual bool isCTS() { return true; } + private: // Following constructors and assignment operators not supported SerialPort(const SerialPort&) = delete;