うよ さん
色々と試行錯誤されているみたいですね。。
現在悩んでいる状況ってテスターがあればものの数分で解決しそうなのですが、
パナのスイッチをどのピンに接続しているか?はんだ付け状況は?という本人にしかわからない「不確定要素」がある限り、こちらではどのような状況になっているか判断できません(撮影画像でもあれば分かりやすんですけどね。。)
とりあえず、書き込まれた情報について解いていきます。
・a.1の戻り値について
comstatのHSPヘルプを見る限り 2は bit1なので("odsr=on")による ON(=2)の場合は DSR待ち状態となっているので正しいです。
試しに("odsr=on octs=on")とすることでbit0とbit1で 3になると思います(追加でDSR/CTS待ち状態となる)
※bit1と書いているのは2進数のことなので10進数にすると ONで2となります。bit0は ONで 1となります。これらを足すと 3になります。
本来このDSR信号線にDTR信号の送信(comcontrol 5)によって+2〜5Vの電気信号が入力されれば待ち状態が解除される(OFF=0)はずなのですが、電気的な問題なのかスクリプトの問題なのか切り分けて判断することができません。
試しにピン4(DTR)とピン6(DSR)を半田もしくは導線(ジャンパー線)で直接繋いでもらえませんでしょうか?そうすることで少なくとも不確定要素が消えると思います。
それとDTR信号をボタンでON/OFF出来るようにしてみてはどうでしょうか(以下修正分)
;---[onexit *exit]の次に追加
button gosub "DTR=x",*onoff_dtr:idbtn=stat
;---[*rs232c]直下の comcontrol 5 をコメントアウト
;comcontrol 5
;---最下段に追加
*onoff_dtr
if(dtron):comcontrol 6:dtron=0:else:comcontrol 5:dtron=1
objprm idbtn,"DTR="+dtron
return
ピンを直接繋いでいれば、ボタンを押すごとに送信した DTR信号によって 2と 0の変化があると思われます。