Skip to content

Latest commit

 

History

History
118 lines (78 loc) · 5.6 KB

File metadata and controls

118 lines (78 loc) · 5.6 KB

File

appendbytes

コマンドライン引数で指定したバイト数(最大65536)の数字の列を、指定したファイルの末尾に追記します。 バイト数は,で区切って10個まで指定できます(追記される数字は指定した順に0...9となります)。

closerewindatr

コマンドライン引数で指定したファイルを書き込みモードでオープンし、 ファイル末尾に改行を追記、読み込み専用属性を反転してからクローズします。
ファイル更新後にDOS _CLOSEを実行するとファイル属性がDOS _OPEN時点の値に書き戻されるため、 プログラム実行前後で読み込み専用属性は同じになります。

duptable

Important

Human68k version 3.02専用です。

ファイルハンドルのDUPテーブルを表示します。 Human68kの内部テーブルを直接参照しています。

exfiles

コマンドライン引数で指定したファイル名(省略時は*.*)をDOS _FILESの拡張モードで検索し、 結果を表示します。

existsdir

コマンドライン引数で指定したディレクトリが存在するかどうかを、DOS _NAMESTSDOS _FILESで調べます。
ディレクトリ名の末尾にパスデリミタがあるかどうかでDOSコールの引数と返り値のチェック方法を変えることで、 パス名文字列を加工せずに判定しています。

fileop

指定したファイルに対し作成、オープン、入出力などの操作を行い、 戻り値(ファイルハンドルまたは入力データ、エラーコードなど)を表示します。

一つ目のコマンドライン引数でファイル名を指定します。

二つ目以降のコマンドライン引数でどのような操作を行うかのコマンドを指定します。 複数の文字を連続または空白で区切って指定することができます(<atr><data>の直後は空白を入れます)。

  • c ... DOS _CREATE
  • f ... DOS _CREATE (高速モード; 常に新しいファイルを作成する)
  • n ... DOS _NEWFILE
  • a <atr> ... ファイル作成時のファイル属性(既定で 0x20 = アーカイブ属性)
  • r ... DOS _OPEN (読み込みモード)
  • w ... DOS _OPEN (書き込みモード)
  • b ... DOS _OPEN (読み書きモード)
  • g ... DOS _FGETCで1バイト入力。
  • p <data> ... DOS _FPUTCで1バイト出力。1バイトの値を指定します。
  • h ... DOS _SEEKでファイルポインタをファイル先頭に移動。
  • t ... DOS _SEEKでファイルポインタをファイル末尾に移動。

使用例: fileop foo cwp 0x1a hg

エラーが発生したら処理を打ち切って終了します。

辞書アクセスモード、シェアリングモードの指定には対応していません。

files

コマンドライン引数で指定したファイル名をDOS _FILESDOS _NFILESで検索し、 見つかったファイル名をすべて表示します。

ファイル名はDOS _FILESにそのまま渡されるもので、パス名やワイルドカードも指定できます。

getassign

コマンドライン引数で指定したパス名について、仮想ドライブ・仮想ディレクトリの 割り当て状態をDOS _ASSIGN (MD=0)で調べ、結果を表示します。

ioctrl12

コマンドライン引数で指定したファイルを読み込みオープンし、DOS _IOCTRL (MD=12, F_CODE=0) でファイルの特殊コントロールを行います。
ファイル名を省略した場合は標準入力(ファイルハンドル0)に対して実行します。

Human68k version 3.02ではキャラクタデバイスが特殊IOコントロールに対応しているか 調べずにデバイスドライバを呼び出しているため、対応していないデバイスに対して 実行するとアドレスエラー等が発生する場合があります。

ioctrl13

コマンドライン引数で指定したドライブ(省略時はカレントドライブ)に対して DOS _IOCTRL (MD=13, F_CODE=0)でドライブの特殊コントロールを行います。

newvol

コマンドライン引数で指定したボリュームラベルをDOS _NEWFILEで作成します。
サブディレクトリ内や、ボリュームラベルが既存の場合でもそのまま新規作成されます。

openedfiles

オープン中のファイルの一覧(ファイルハンドルとファイル名)を表示します。

pathlenfix

Human68kにおけるパス名のディレクトリ名部分の長さは、 DOS _NAMESTSのバッファ構造などを見ると最大64バイトに見えますが、 実際の動作ではそれより小さい値となっています。

実行するとメモリ上のHuman68kにパッチをあて、最大64バイトに拡張します。
Human68k version 3.02専用です。

Warning

実験用に用意したシステムでのみ実行してください。
※普段使っているシステムでは実行しないこと!

rewind

コマンドライン引数で指定したファイルをDOS _OPENで開き、ファイル末尾-1の位置に DOS _SEEK (mode=2, offset=-1)で移動し、戻り値(移動先位置またはエラーコード)を表示します。

ファイルサイズが0バイトのファイルは移動できないのでエラー$ffff_ffe7になります。

CD-ROMなどのドライバ(リモートドライブ)によっては、mode=2の場合のoffset の扱いが逆方向になっているため移動できずエラーになることがあります。