ある言語である機器用に書かれた通信エミュレータを、似た言語で、別の機器に移植した際の成果と課題を記録する。
BASIC言語で、メインフレームホストとの通信エミュレータです。
<この項は書きかけです。順次追記します。>
1 通信仕様(communication specification)
1.1 直列通信(serial communication)
大学の構内モデムを介して、ホストコンピュータに接続する。
シリアルの設定は半二重通信、通信速度が9600bpsなど、資料は揃っている。
半二重(half duplex) 一つの線で、行きと帰りを切り替えて使う。切り替えを別の線で行うハードウェア制御と同じ線でエスケープシーケンスを使うソフトウェア制御とがある。
1.2 目的(Fortranのプログラム作成)Purpose:programming with fortran
FORTRANプログラムを、端末から入力する画面編集機能がある。
ホスト(メインフレーム)に保存できる。
端末(PC)でソースコードを印刷する機能を有する。
1.2.1 プログラムの編集は、ホスト側の画面エディタと端末側の画面エディタを同期させて働く。
1.2 2 ホスト側の保存はホストのコマンドで行う。
1.2.3 端末側の保存はソースコードの印刷先をファイルにする。
1.2.4 印刷はホスト側のソースコード一覧を印刷機に流し込むことで完了する。
1.3 通信速度・費用(communication speed and cost)
通信は内線を用いる。
費用がかからない。
通信速度は費用対効果で決定する必要はない。
通信速度は1200bps-9600bps。
電話代がかからないこと、通信速度が速くないため計算処理速度に大きな制約はない。
1.4 制約・条件(constraint and condition)
機器はPC-8801用をPC-9801に移植。
言語はBASICである。
2 作業(task)
BASICノ言語比較表が販売されていた。
最新マイコンBASIC規格表〈1982年版〉CQ出版,1982
https://www.amazon.co.jp/dp/B000J7HJVC/
規格表とあるが、比較表。
その比較に基づいて、一つづつ書き換えて動作させ、エラーにならないか確認する。
3 課題(issue)
移植したプログラムを動かしていると、印刷すると改行を毎回2度行い、印字が1行置きになってしまう現象が生じた。
少し作業していると起きる現象で、再現性はありそう。
3.1 当面の回避策(work around)
STOPキーを押して、プログラムを中断しても、編集中のファイルはそのまま引き継げることが分かった。
そこで、STOPキーを押し、プログラムを中断し、再度プログラムを走らせると印字は元に戻る。
この回避策のため、本格的に修正する作業が進まなかった。
というより、これはFORTRANの卒業研究の傍で頼まれ仕事。
卒業研究の題材
連立微分方程式のPade近似解法 Fortran手による最適化とコンパイラの最適化、誤差の評価
https://qiita.com/kaizen_nagoya/items/c55d29f0d7e9ebd07a31
3.2 状態遷移(state chart)
不具合を取るためには、状態遷移を明確にすると良い。
何が改行を不可する状態か、どの変数が関係するか。
状態遷移図を書いて、冷静に調査する必要があった。
3.3 時系列(sequence chart)
通信であるため、何を送ったかを記録を取っておく。どう言う順番で処理したかの記録があれば、状態の遷移も確認できた。
4 言語及び機種(language and PC)
旧機種旧言語 PC-8801, N-basic
新機種新言語 PC-9801, N88-Basic
参考文献(reference)
プログラムは単純に~状態遷移~
https://qiita.com/gazami/items/84be9c53536d7702c367
【新人教育 資料】第6章 UMLまでの道 〜ステートマシン図の説明&書いてみよう編〜
https://qiita.com/devopsCoordinator/items/289f77fc83813ba7cc76
UE4におけるUMLの使い方、ステートマシン図、クラス図、シーケンス図
https://qiita.com/nano06126728/items/327b5173d1ae1b64d412
自己参照(self reference)
情報処理技術者試験 ネットワークスペシャリストに合格
https://qiita.com/kaizen_nagoya/items/407857392ca5c5677ee4
開発環境を豊かにする開発事例 過去・現在・未来
https://qiita.com/kaizen_nagoya/items/d9bf0c2c671fe7f1c749
文書履歴(document history)
ver. 1.00 初稿 20180227
ver. 1.01 項目追記 20180303
ver. 1.02 表現訂正 20180325
ver. 1.03 仕様明確化 20180814
ver. 1.04 自己参照 20200105
ver. 1.05 補足 20221225
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.