Commodore 64 を GLINK LT RS-232 アダプタに接続し、Raw TCP をホーム ネットワークの静的 IP/ポートに送信するように構成された Digi-Connect SP に接続しました。宛先は、詳細ログを使用してトラフィックを別の場所に渡す socat プロセスです。
OS X マシンで bash シェルから socat をヒットするテストを実行するcurl http://192.168.1.91:1234
と、有効な応答が返され、socat ログに次のように表示されます
> 2018/12/29 22:06:50.168550 length=81 from=0 to=80
GET / HTTP/1.1\r
Host: 192.168.1.91:1234\r
User-Agent: curl/7.54.0\r
Accept: */*\r
\r
< 2018/12/29 22:06:50.169509 length=144 from=0 to=143
(followed by http response)
しかし、C64 BASIC コード SNIPPET で次を実行すると:
100 OPEN 2,2,3,CHR$(6)+CHR$(0)
110 GET#2,A$: REM TOSS NULL TO OPEN RCVR CHANNEL
120 PRINT#2,"GET /"
...
socat ログには次のように表示されます。
> 2018/12/29 22:11:38.952005 length=1 from=167 to=167
G> 2018/12/29 22:11:38.983674 length=1 from=168 to=168
E> 2018/12/29 22:11:39.015464 length=1 from=169 to=169
T> 2018/12/29 22:11:39.051758 length=1 from=170 to=170
> 2018/12/29 22:11:39.084476 length=1 from=171 to=171
/> 2018/12/29 22:11:39.117131 length=1 from=172 to=172
個々の文字が送信されるようにするために C64 側で何か間違ったことを行っているのか、それとも Digi-Connect の設定が間違っているのかはわかりません。
Digi シリアル設定は次のとおりです。
- TCP クライアント設定:
- TCP 接続を自動的に確立する
- 常に接続し、接続を維持する
- 次のネットワーク サービスへの接続を確立します。
- サーバー: 192.168.1.91
- サービス: 生の TCP
- TCP ポート: 1234
- TCP キープアライブを有効にする: オン
- TCP 接続を自動的に確立する
- 基本シリアル設定
- ボー: 300
- データビット: 8
- パリティ: なし
- ストップ ビット: 0
- フロー制御: ハードウェア
- 高度なシリアル設定
- (ここでは何も設定されていません)