CP/Mプログラミング三昧 ― 2018年09月22日 09:20
自作CP/MマシンTRN-8が快調に動くようになり、この所TRN-8にどっぷりとはまっている。 過去に作成したファイルを収めたディスケットを調べてみると、保管状態が良くダメージを受けずに ファイルを取り出せた。その中にはトランジスタ技術 1984年8月から1985年7月に連載された 藤井敦氏の「CP/Mを使いこなすために 初心者のためのアセンブラ入門」に掲載されたプログラム集が あった。当時の記事の切り抜きも見つかった。
この連載では、
- プログラムの開始、終了関連モジュール
- コンソール入出力関連モジュール
- 16ビット演算モジュール
- ファイル入出力関連モジュール
- 応用プログラム
これらのモジュールを眺めてみると、結構よく使う機能を網羅しているが、 コマンドライン引数取得関連のモジュールがない。コマンドライン引数でオプションを プログラムに引き渡すことは日常上茶飯事に行うことなので、このモジュール"GETARG"を作成する事にした。
- 引数は、ブランク、タブ、コンマで区切る。
- ダブルクォート又はシングルクォートで始まる引数は、次に同一の文字が現れるまで一塊として取り扱う。
- "\"に続く文字列はエスケーブシーケンスとして解釈する。現在のところ、\\(エスケーブ文字自身)、\t(タブ)、
\xHH(16進数)をサポートしている。
-
例えば、echoコマンド。
c>echo one "two and three" and\tmore
とするとONE TWO AND THREE AND MORE
と表示する。文字はCP/Mが大文字に変換してしまう。ターミナルプログラムがVT-100やANSIターミナルを サポートしていれば、画面のコントロールもできる。c>echo \x1b[2J
とすれば、画面が消去される。また、c>echo \x1b[1;1H (<===すみません。"H"が抜けていました。)
とすれば、カーソルが1行目の1カラムに移動する。echoは、改行するため2行目にコマンドプロンプとが表示される。関連ファイルは、これです。ご興味のあるかたはご覧ください。
getarg.zip (8,254Byte)
使用したツールは、以下のとおり。- アセンブラ Z80ASM(SLR Systems)
- ライブラリアン SLRIB(SLR Systems)
- リンケージエディタ SLRNK(SLR Systems)
プログラミングは面白い。
コメント
トラックバック
このエントリのトラックバックURL: http://kida.asablo.jp/blog/2018/09/22/8963495/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。