【通信】TeraTermの送信遅延が効かないからマクロ作った

むかーしのゲームでFruits Fieldsってのがあって、ポケコンPC-E500で授業中に遊んでたんだよね

これたまーに思い出してプレイしたくなる

たぶんPJに掲載されてたんだろうから、国立国会図書館に行ってPJをコピーしてOCRしてperlとかで整形してPC-E500に転送すりゃ即遊べるだろ

なんて思ってたんだよね

まあ思うだけでやらない定期であったところ、

X(エックス)でフル・フィーなるゲーム作ったぜ!というポストが流れてきた

名前がフル・フィーということでオリジナルのFruits Fieldsとは面データが違うのかなとか邪推しつつ

国立国会図書館に行かなくてもFruits Fieldsが遊べるのか!?となったら俄然やる気が出てきたんだよね

早速ポケコンPC-G850VSをPCに接続して、TeraTermを起動してファイルを転送

だが、うまくいかない

TEXTのSIO受信はCTS/RTSのハードフローが効いて転送できる

モニタモードでIntelHexを転送するのがうまくいかない

モニタモードはハードフローがダメらしいとどこかのWebに書いてあり、やはりそうらしいが

それならゆっくり転送すりゃいいってことになるよね

でも、ここで問題が発生

TeraTermの送信遅延が効かなくて、100ms/行 とか設定しても一瞬で流れちゃう

PCはWin11、USBシリアルは秋月の ”正規品” FT232RLで、CTS/RTS線含め各信号反転設定済

TeraTermはVer4系とVer5系、どちらも最新版で試したけどだめ

検索しても不具合情報が見つからないから俺環のマイナー障害っつーことなんかな

こういうのは不具合を直すよりほかの方法で何とかしたほうが楽で簡単なのが世の常である

だからTeraTermマクロで何とかすることにした

早速

「1行ごとに任意のウエイト入れてファイル送信するTeraTermマクロくれ」ってChatGPTに頼んだ

そしたら自信たっぷりで作ってくれたんだけど、動かしたらエラー

最初のコマンドからエラー。1行も動かない

こんなくそマクロ作りやがってとぶち切れて手取り足取り正しい作り方を教えるべきなのかも知れんが

無職のおっさんが神であるChatGPTを育成とかおこがましいですよね?

AI様に狼藉はたらいたら、のちのち復讐されるかもしれない

そう考えたら怖くなってきたので、仕方なく自分で作ったの置いときますね

; TeraTerm macro
;   transmit to PC-G850V
;
; 基本設定
;   マクロで設定できず手動設定が必要
;   改行コード(送信):CR+LF
;   漢字コード(送受信):SJIS
setecho 1
setbaud 9600

; フローコントロール設定
; 2(HW) or 3(none)
setflowctrl 2

; 1行送信後の待ち時間[ms]
;   テストは50msで良好
;   マージンで2倍
lineWaitTime = 100

; 送信ファイル選択
filenamebox 'File select' 0
if result==0 goto err

; 送信ファイルオープン
fileopen fhandle inputstr 0
if fhandle==-1 goto err

; 送信ループ
while 1
	filereadln fhandle line
	if result<>0 break

	strlen line
	if result==0 continue

	sendln line

	mpause lineWaitTime

endwhile

; 終端コード送信
;pause 1
mpause lineWaitTime
send 26

; ファイルクローズ
fileclose fhandle

; 終了表示
messagebox "Finish" ""
exit

; 中断表示
:err
messagebox "Abort" ""
exit

なお肝心のフル・フィーはすごく楽しめてて、すぐ解いたらもったいないからチマチマのんびりやっている感じ

ありがとうございます😊

#TeraTerm #PC-G850 #送信遅延 #ポケコン