■MSX-DOS マシン語プログラミング(メモ)

(MSX-DOS マシン語プログラミングの備忘録)
2024年にもなって MSX-DOS でマシン語プログラミングを新たに始めようとする方は僅かだと思いますが、当時と比べて書籍等での情報収集も容易ではないので自分宛て備忘録を兼ね、とりあえず書き連ねてみます(以下、基本的に MSX-DOS1を対象)

◆OSとしての機能
・周辺機器とのデータ入出力
・ファイル管理
・プログラムの実行

◆データ入出力
・以下の周辺機器とのデータ入出力のための標準的なルーチンを備えている(システムコール)
 キーボード、モニタ(コンソール)、プリンタ、ディスク(FDD,HDD等)
・システムコールは CP/M の BDOSコールと互換性があり移植が容易
・MSX-DOS、DISK-BASIC それぞれで システムコールを利用可能

◆ファイル管理
・ディスクに対するデータの入出力はファイルの単位で行い、管理する

◆プログラムの実行
・コマンドプロンプトから外部コマンド(拡張子 .COM)として呼び出される
・.COMファイルは 0100h番地~に読み込まれ、0100h から実行される
 0100h を開始番地としてプログラムする
・コマンドの引数は 実行時にシステムスクラッチエリアで引き継がれる
  005Ch~引数1個め、006Ch~引数2個め、0080h~全引数

■ファイル操作(読み書きの手順)

◆ディスクアクセスの事前準備
・FCB(ファイル・コントロール・ブロック)※をメモリ上に確保しておく
 005Ch~のエリアをそのまま利用することも可能
 ※MSX-DOS2ではファイルハンドルで管理
・DTA(ディスク転送アドレス)を設定する
 0080h~のエリアをそのまま利用可能だが、エリアが狭く引数が入っているため
 自前のエリアに変更した方が組みやすいかも

◆ファイル操作(読み書きの手順)
①ファイルを開く
・FCBにファイル名を設定しファンクションコールで開く
②データを入出力
・FCBに読み書きするレコードサイズ、レコード番号を設定
・HLでレコード数を指定し、ファンクションコールで入出力
③ファイルを閉じる
・ファンクションコールでファイルを閉じる
※該当ファイルなし、作成時に同名のファイルが存在、書き込み不可等の
 エラー処理も必要


この記事が気に入ったらサポートをしてみませんか?