[ オリジナルレポート ]

BugID: #09534

カテゴリ 重要度 ステータス 解決状況 登録日時 最終更新
最小未処理2026-08-27 04:452026-08-29 00:33
 
テスターMarcher担当者 ソース
バージョン0.288発生バージョン修正バージョン
修正コミットプルリク
フラグソース内の記述
セット
セット詳細
 
概 要null_modem.cppで、DCD/DSR/CTSが0にハードコードされている。
詳 細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.
再現手順 
追加情報 
 
添付ファイル