MSX-DOS2ファンクションコール一覧

(佐藤@NECソフトウェア[msx:01439],[msx:01468])

 番号 機能
-----------------------------------------------------------------------------
  40H 最初のエントリーの検索
  41H 次のエントリーの検索
  42H 新しいエントリーの検索
  43H F.H.のオープン
  44H F.H.の作成
  45H F.H.のクローズ
  46H F.H.のエンシュア
  47H F.H.の複製
  48H F.H.からの読みだし
  49H F.H.への書き出し
  4AH F.H.ポインターへの移動
  4BH デバイスI/Oの制御
  4CH F.H.のテスト
  4DH ファイル、サブディレクトリの削除
  4EH ファイル、サブディレクトリの名前変更
  4FH ファイル、サブディレクトリの移動
  50H ファイル属性の獲得、設定
  51H ファイル日時の獲得、設定
  52H F.H.の削除
  53H F.H.の名前の変更
  54H F.H.の移動
  55H F.H.の属性の獲得、設定
  56H
  57H F.H.の日付の獲得、設定
  58H ベリファイフラグの獲得
  59H カレントディレクトリの獲得
  5AH カレントディレクトリの変更
  5BH パス名の解析
  5CH ファイル名の解析
  5DH 文字の検査
  5EH 完全なパス名の獲得
  5FH ディスクバッファのフラッシュ
  60H 子プロセスの起動
  61H 親プロセスに戻る
  62H エラー番号を伴う終了
  63H アボート終了ルーチンの定義
  64H ディスクエラー処理ルーチンの定義
  65H 直前のエラー番号の獲得
  66H エラー番号の説明
  67H ディスクのフォーマット
  68H RAMディスクの作成/消去
  69H セクタバッファの割り当て
  6AH 論理ドライブの割り当て
  6BH 環境変数の獲得
  6CH 環境変数の設定
  6DH 環境変数の検索
  6EH ディスク検査状態の獲得/設定
  6FH MSX-DOSのバージョン番号獲得
  70H リダイレクション状態の獲得/設定

==============================================================================
 MSX−DOS2ファンクションコール一覧

 参考文献:MSXマガジン'92.5
      MSXテクニカルガイドブック(ディスク編)

------------------------------------------------------------------------------

  P.N.   =PATH NAME       パス名(ASCIIZ)
                          (ドライブ名+サブディレクトリ名+ファイル名)
                          例."A:\TOOLS\KID.COM"+00H
  F.N.   =FILE NAME       ファイル名(ASCIIZ)  例."KID.COM"+00H
  F.H.   =FILE HANDLE     ファイルハンドル
  BUF[64]=BUFFER (64 BYTES)
  FIB    =FILE INFORMATION BLOCK ファイル情報ブロック
          FIBの内容
             + 0,1  常に0FFH(パス名文字列との区別のため)
             + 1,13 ファイル名(ASCIIZ)
             +14,1  ファイル属性
             +15,2  最終更新時刻
             +17,2  最終更新日付
             +19,2  開始クラスタ
             +21,4  ファイルサイズ
             +25,1  論理ドライブ
             +26,38 内部情報(変更してはならない)

          ファイル属性
             b0  読み出し専用         b4  ディレクトリ
             b1  不可視               b5  アーカイブビット
             b2  システムファイル     b6  予約(常に0)
             b3  ボリューム名         b7  デバイスビット(FIBが文字デバイス)

  DRVNO  =ドライブ番号 (1=A: 2=B:...場合により0=カレントドライブ)
  ASCIIZ =アスキー文字列+00H
==============================================================================

番号 機能                       パラメータ              結果
------------------------------------------------------------------------------
 40H 最初のエントリの検索       (DE)=P.N. OR FIB        A=エラー番号
     (_FFIRST)                  (HL)=F.N.(IF DE=FIB)    (IX)=一致するエントリ
                                B=検索属性                   のFIB
                                (IX)=BUF[64]
------------------------------------------------------------------------------
 41H 次のエントリの検索         (IX)=最初のエントリ     A=エラー番号
     (_FNEXT)                   検索結果           (IX)=一致するエントリ
                                                             のFIB 
------------------------------------------------------------------------------
 42H 新しいエントリの検索       (DE)=P.N. OR FIB        A=エラー番号
     (_FNEW)                    (HL)=F.N.(IF DE=FIB)    (IX)=一致するエントリ
                                B=b0-b6:要求する属性         のFIB
                                     b7:新規作成フラグ
                                (IX)=テンプレートを含む
                                     FIB
------------------------------------------------------------------------------
 43H F.H.のオープン             (DE)=P.N. OR FIB        A=エラー番号
     (_OPEN)                    A=オープンモード        B=新しいF.H.
------------------------------------------------------------------------------
 44H F.H.の作成                 (DE)=P.N. OR FIB     A=エラー番号
     (_CREATE)                  A=オープンモード     B=新しいF.H.
                 B=b0-b6:要求する属性
                      b7:新規作成フラグ
------------------------------------------------------------------------------
 45H F.H.のクローズ             B=F.H.          A=エラー番号
     (_CLOSE)
------------------------------------------------------------------------------
 46H F.H.のエンシュア           B=F.H.                  A=エラー番号
     (_ENSURE)
------------------------------------------------------------------------------
 47H F.H.の複製                 B=F.H.                  A=エラー番号
     (_DUP)                                             B=新しいF.H.
------------------------------------------------------------------------------
 48H F.H.からの読みだし         B=F.H.                  A=エラー番号
     (_READ)                    (DE)=BUF                HL=実際に読み込まれた
                                HL=読み込みバイト数        バイト数
------------------------------------------------------------------------------
 49H F.H.への書き出し           B=F.H.                  A=エラー番号
     (_WRITE)                   (DE)=BUF                HL=実際に書き込まれた
                                HL=書き込むバイト数        バイト数
------------------------------------------------------------------------------
 4AH F.H.ポインタの移動         B=F.H.                  A=エラー番号
     (_SEEK)                    A=0:最初から            DE:HL=新しい位置
                                  1:現在位置から
                                      DE:HL=符号付きオフセット
                                  2:最後から
------------------------------------------------------------------------------
 4BH デバイスI/Oの制御          B=F.H.                  A=エラー番号
     (_IOCTL)                   A=サブファンクション    DE=他の結果
                                  コード
                                  00H ファイルハンドル状態の獲得
                                  01H ASCII・バイナリモードのセット
                                  02H 入力レディの検査
                                  03H 出力レディの検査
                                  04H 画面サイズの検出
                                DE=他のパラメータ
------------------------------------------------------------------------------
 4CH F.H.のテスト               B=F.H.                  A=エラー番号
     (_HTEST)                   (DE)=P.N. OR FIB        B=00H 異なるファイル
                                                          FFH 同じファイル
------------------------------------------------------------------------------
 4DH ファイル、サブディレクトリ (DE)=P.N. OR FIB        A=エラー番号
     の削除
     (_DELETE)
------------------------------------------------------------------------------
 4EH ファイル、サブディレクトリ (DE)=P.N. OR FIB        A=エラー番号
     の名前変更                 (HL)=新しいF.N.
     (_RENAME)
------------------------------------------------------------------------------
 4FH ファイル、サブディレクトリ (DE)=P.N. OR FIB        A=エラー番号
     の移動                     (HL)=新しいP.N.
     (_MOVE)
------------------------------------------------------------------------------
 50H ファイル属性の獲得、設定   (DE)=P.N. OR FIB        A=エラー番号
     (_ATTR)                    A=0 属性の獲得          L=属性
                                  1 属性の設定
                                L=新しい属性(IF A=1)
------------------------------------------------------------------------------
 51H ファイル日時の獲得、設定   (DE)=P.N. OR FIB        A=エラー番号
     (_FTIME)                   A=0 日時の獲得          DE=新しい時刻
                                  1 日時の設定          HL=新しい日付
                                IX=新しい時刻(IF A=1)
                                HL=新しい日付(IF A=1)
------------------------------------------------------------------------------
 52H F.H.の削除                 B=F.H.                  A=エラー番号
     (_HDELETE)
------------------------------------------------------------------------------
 53H F.H.の名前の変更           B=F.H.                  A=エラー番号
     (_HRENAME)                 (HL)=新しいF.N.
------------------------------------------------------------------------------
 54H F.H.の移動                 B=F.H.                  A=エラー番号
     (_HMOVE)                   (HL)=新しいP.N.
------------------------------------------------------------------------------
 55H F.H.の属性の獲得、設定     B=F.H.                  A=エラー番号
     (_HATTR)                   A=0 属性の獲得          L=属性
                                  1 属性の設定
                                L=新しい属性(IF A=1)
------------------------------------------------------------------------------
 56H F.H.の日付の獲得、設定     B=F.H.                  A=エラー番号
     (_HFTIME)                  A=0 日時の獲得          DE=新しい時刻
                                  1 日時の設定          HL=新しい日付
                                IX=新しい時刻(IF A=1)
                                HL=新しい日付(IF A=1)
------------------------------------------------------------------------------
 57H DTAの獲得                                          DE=ディスク転送番地
     (_HGETDTA)
------------------------------------------------------------------------------
 58H ベリファイフラグの獲得                             B=00H ベリファイ無効
     (_GETVFY)                                          B=FFH ベリファイ有効
------------------------------------------------------------------------------
 59H カレントディレクトリの獲得 B=DRVNO                 A=エラー番号
     (_GETCD)                   (DE)=BUF[64]            (DE)=P.N.
------------------------------------------------------------------------------
 5AH カレントディレクトリの変更 (DE)=P.N.               A=エラー番号
     (_CHDIR)
------------------------------------------------------------------------------
 5BH パス名の解析               B=B4:ボリューム名フラグ A=エラー番号
     (_PARSE)                   (DE)=解析する文字列     (DE)=終了文字
                                                        (HL)=最後の項目の先頭
                                                        B=解析フラグ
                                                        C=論理DRVNO
------------------------------------------------------------------------------
 5CH ファイル名の解析           (DE)=解析すつ文字列     A=0
     (_PFILE)                   (HL)=BUF[11]            (DE)=終了文字
                                                        B=解析フラグ
------------------------------------------------------------------------------
 5DH 文字の検査                 D=文字フラグ            A=0
     (_CHKCHR)                  E=検査する文字          D=更新された文字フラグ
                                                        E=検査された文字
------------------------------------------------------------------------------
 5EH 完全なパス名の獲得         (DE)=BUF[64]            A=エラー番号
     (_WPATH)                                           (DE)=完全なP.N.
                                                        (HL)=最後の項目の先頭
------------------------------------------------------------------------------
 5FH ディスクバッファの         B=DRVNO                 A=エラー番号
     フラッシュ                   00H=カレントドライブ
     (_FLUSH)                     FFH=全てのドライブ
                                D=00H フラッシュのみ
                                  FFH フラッシュして無効
------------------------------------------------------------------------------
 60H 子プロセスの起動                                   A=エラー番号
     (_FORK)                                            B=親プロセスのID
------------------------------------------------------------------------------
 61H 親プロセスに戻る           B=親プロセスのID        A=エラー番号
     (_JOIN)                      または 0              BC=子プロセスの
                                                           エラー番号
------------------------------------------------------------------------------
 62H エラー番号を伴う終了       B=終了のエラー番号      もどらない
     (_TERM)
------------------------------------------------------------------------------
 63H アボート終了ルーチンの定義 DE=アボート処理ルーチン A=0
     (_DEFAB)                      の番地(0000H 解除)
------------------------------------------------------------------------------
 64H ディスクエラー処理ルーチン DE=ディスクエラー処理   A=0
     の定義                        ルーチンの番地
     (_DEFER)                      (0000H 解除)
------------------------------------------------------------------------------
 65H 直前のエラー番号の獲得                             A=0
     (_ERROR)                                           B=直前のファンクション
                                                          コールのエラー番号
------------------------------------------------------------------------------
 66H エラー番号の説明           B=説明すべきエラー番号  A=0
     (_EXPLAIN)                 (DE)=BUF[64]            B=説明できれば 0
                                                        (DE)=エラーメッセージ
------------------------------------------------------------------------------
 67H ディスクのフォーマット       B=DRVNO                 A=エラー番号
     (_FORMAT)
     ・フォーマットの選択         A=0                     B:HL=選択文字列の
                                                               スロットと番地
     ・フォーマット               A=選択(1-9)
     ・パラメータの更新           A=FEH
     ・ブートセクタの更新         A=FFH
------------------------------------------------------------------------------
 68H RAMディスクの作成/消去    A=00H 消去              A=エラー番号
     (_RAMD)                      FFH 大きさの検査      B=RAMディスクの大きさ
                                  その他 作成するサイズ
                                   (サイズは16K単位 最大で254*16K=4064K)
------------------------------------------------------------------------------
 69H セクタバッファの割り当て   B=00H    バッファ数の   A=エラー番号
     (_BUFFER)                           獲得           B=バッファ数
                                  その他 要求する
                                         バッファ数
------------------------------------------------------------------------------
 6AH 論理ドライブの割り当て     B:D=論理:物理DRVNO
     (_ASSIGN)                      XX00H               D=物理DRVNO
                                    0000H 全て取り消し
                                    XXFFH 調べる
------------------------------------------------------------------------------
 6BH 環境変数の獲得             (HL)=環境変数の名前     A=エラー番号
     (_GENV)                         (ASCIIZ)           (DE)=環境変数の値
                                (DE)=BUF
                                B=BUF長
------------------------------------------------------------------------------
 6CH 環境変数の設定             (HL)=環境変数の名前     A=エラー番号
     (_SENV)                    (DE)=値
------------------------------------------------------------------------------
 6DH 環境変数の検索             DE=環境変数の番号       A=エラー番号
     (_FENV)                    (HL)=BUF[255]           (HL)=環境変数の名前
------------------------------------------------------------------------------
 6EH ディスク検査状態の獲得     A=00H 獲得              A=エラー番号
     /設定                     A=01H B=00H 有効に設定  B=ディスク検査状態
     (_DSKCHK)                  A=01H B=FFH 無効に設定
------------------------------------------------------------------------------
 6FH MSX-DOSのバージョン番号                            A=エラー番号
     獲得                                               BC=ROMバージョン
     (_DOSVER)                                          DE=ディスクバージョン
                                                        B<02Hの時はCDEは不定
     バージョン表記の例.0231H=2.31
------------------------------------------------------------------------------
 70H リダイレクション状態の獲得 A=00H 獲得              A=エラー番号
   /設定                       01H 設定              B=現在の状態(IF A=0)
     (_REDIR)                   B=新しい状態(IF A=1)      元の状態  (IF A=1)
                                  (B=b0:入力,b1:出力)
                                  (BIT ON :リダイレクションON )
                                  (BIT OFF:リダイレクションOFF)
------------------------------------------------------------------------------

MSXに関する資料集へ
サイバラのホームページへ
(旧)サイバラのホームページへ (現在移行作業中のためコンテンツが散在します)

E-mail address :「saibara」アットマーク「big.or.jp」