Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09534 Media Support Trivial Always 22 hours ago 7 hours ago
Tester Marcher View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows (x64)
Status [?] Driver
Version 0.288 Fixed in Version Build x64
Fixed in Git Commit Github Pull Request #
Summary 09534: DCD/DSR/CTS permanently hardcoded to 0 in null_modem.cpp
Description Running mac128k and attempting to dial through MacTerminal's Dial dialog (Connection Type = Modem, with tcpser acting as a real modem emulator) consistently reports "no modem found", even when the rest of the path is confirmed working (manually typed "AT"/"ATDT777" gets through cleanly and tcpser replies "OK"/dials out correctly). The cause was found in source, src/devices/bus/rs232/null_modem.cpp, function update_serial():
// TODO: make this configurable
output_dcd(0);
output_dsr(0);
output_cts(0);
This is the only place in the entire file where DCD/DSR/CTS are set — they are unconditionally forced to 0 on every device reset and on every speed/parity/data-bits change, regardless of anything arriving over bitb (bitbanger). The only other BITBANGER-capable device in the same directory, rs232_sync_io.cpp, was also checked and shows the same pattern (output_dcd(0); output_dsr(0); hardcoded). In other words, MAME 0.288 has no rs232 device at all that combines socket connectivity (bitbanger) with real DSR/CTS signaling.

The guest OS (here, MacTerminal's modem-detection routine) apparently checks exactly these lines before allowing a dial attempt — and since they can never go high, any software relying on hardware modem-presence detection via DSR/CTS is guaranteed to see "no modem", regardless of tcpser settings, bitbanger, or any intermediate tooling.
Steps To Reproduce
Additional Information
Github Commit
Flags Noted in Source
Regression Version
Affected Sets / Systems
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
1
User avatar
No.24624
cuavas
Administrator
7 hours ago
0 is the active state for RS-232. The issue is elsewhere.