Hyfaxのこと-こんにちはTTS

x86リアルモードでモニターを作ろうシリーズです。
まずshell機能を独立させるかMonitorに取り込むかという問題ですが、shellとして独立させることにしました。そのうえ常駐します。このため、Monitorとほぼ同様のメモリに展開されます。アプリケーションとは完全独立です。
shellはTiny Thin Shell、小さい最低限のシェルということでTSSという名称にしました。

TTS本体

TTSはline_input(1行入力)を行います。
次にパースしたトップの文字列をファイル名とみなしてMonitorに実行依頼をします。
大枠で言うとこれだけです。

split処理

パース処理についてもちょっと触れておきますね。パースとか言ってますけど、内容はsplitです。入力された文字列を空白を区切り文字として複数の文字列に分解するアレです。データ構造はこんな感じ。

先頭にアドレス配列があり、アイテム数を持っていてこれで管理します。
splitのコードはこちら。

83形式編集処理

最後は83形式に変換する関数です。
『APP.BIN』の形式を『APP BIN』の11文字にします。

主要な関数は以上になります。
これらをうまく組み込んでTTSは成り立っています。

実行結果図

実行結果はこんな感じになります。

所感

セグメントが辛かったです。かつてセグメントが面倒臭いとか、厄介だとかいろいろ話は聞いていたのですが、思っていたより10倍も面倒くさかったなぁ。
特に文字列が複数セグメントに設置されているような場合、セグメント合わせに多大な時間がかかることがわかりました。

元日そうそう丸一日セグメントと格闘してしまいました。

はい、今日はここまでです。お読みくださりありがとうございました。

このソースはgithubで公開しています。よろしければどうぞ。
https://github.com/CbWB-Inc/software/tree/main/laboratory/lab02/hyfax-03-hello-tts

《2026/01/02 06:12:12》

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です