データセグメント編 カーネルパッチ編
ファイルハンドル(36hバイト) -03h - 02h リンクアドレス(BBF2hからたどるアドレス) -1 デバイスコード? +0 常にFFh +01h - 0Dh ファイル名 +0Eh ファイルの属性 +0Fh - 10h 最終変更時刻 +11h - 12h 最終変更日付 +13h - 14h 開始クラスタ +15h - 18h ファイルサイズ +19h 論理ドライブ +1Ah - 1Dh VOL.No. +1Eh READ/WRITEのフラグ(BBC4hと同じ) +1Fh ? +20h - 21h データセグメント内のドライブ登録テーブルのアドレス +22h - 23h ディレクトリのセクタ番号 +24h ディレクトリの何番目のファイルか +25h - 26h ディレクトリのクラスタ番号(FFFFhはルートディレクトリ) +27h - 28h 開始クラスタ +29h - 2Ah 最終クラスタ +2Bh - 2Ch 相対クラスタ +2Dh - 30h ファイルリードのポインタ +31h オープンモード(ファンクションコール43hでAレジスタにセットした値)
ドライブ登録テーブル(60hバイト) +0 ドライブのDISK ROMのスロット番号 +01h RAMDISKは80h、それ以外は10h ここを使って独自のディスクアクセスルーチンに飛ばすこともできるのでは。 +02h - 03h DPBアドレス +06h DISK ROMからみたドライブ番号 +08h 論理ドライブ番号(A=01, B=02・・・) +09h フラグ? +0Ah クラスタマスク +0Bh クラスタシフト +0Ch - 0Dh FATの先頭(セクタ) +0Eh FATの数 +0Fh +10h ルートディレクトリのセクタ数 +11h FATサイズ +12h - 13h ディレクトリの先頭(セクタ) +14h - 15h データ領域の先頭(セクタ) +16h - 17h クラスタ総数 +18h 00=UNDEL不可、 01=UNDEL可能なファイルがある +19h - 1Ch VOL.No. +1Dh メディアID +1Eh - 1Fh カレントディレクトリのクラスタ番号(FF00hはRoot directory) +20h - サブディレクトリ名(Rootなら00)
ディスクバッファ (20Bhバイト) +00h - 01h リンクアドレス +02h ドライブ番号 +03h フラグ +04h - 05h バッファに読み込んだセクタの番号 +06h 01はディレクトリ又はデータ、02はFAT +07h FATサイズ +08h (空いているようなので、FAT16パッチではセクタ番号のbit16-23に使用) +09h - 0Ah データセグメント内ドライブ登録テーブルのアドレス +0Bh - 20Ah セクタの内容(200hバイト)
BB80h〜BBFFh(80hバイト) BB9Eh - Fh FIBのポインタ BBA2h セクタをディスクバッファに読み込むとき、+06hにこの値が入る。 バッファのデータをディスクに書き出すときの回数なので、 FATは02h、それ以外は01hが入ります。 BBA3h - 4h 空きクラスタ番号の保存場所。 ファイルやサブディレクトリを作成するとき、FATを調べて空きクラスタを 探します。 BBA5h - 6h クラスタ番号の一時保存場所。 FAT12でクラスタ番号が2つのセクタにまたがるとき使用。 BBA7h - 8h FATの先頭セクタ番号 BBB4h - 5h アクセスするクラスタのセクタ番号 BBB6h - 7h アクセスするクラスタ番号(最終クラスタ) BBB8h クラスタマスク+1(クラスタサイズ) BBB9h - Ah 1セクタ未満のファイルの半端(バイト数) BBBCh 相対クラスタ BBBEh - Fh リード/ライトしたバイト数 BBC0h - 1h リード/ライトするバイト数 BBC2h - 3h DTAアドレス BBC4h リード/ライトのフラグ bit0が0はリード、1はライト BBC6h - D1h BBDEh〜BBE9hの保存場所 BBD2h - DDh BBDEh〜BBE9hの保存場所 BBDEh BBDFh BBE0h ディレクトリが何番目にあるか BBE1h ディレクトリのセクタ数 BBE2h - 3h ディレクトリのセクタ番号 BBE4h - 5h サブディレクトリの続きのクラスタ FF00hはROOT DIR / FFFFhはSUB DIRの終わり BBE6h - 7h ディレクトリのクラスタ番号 FF00hはROOT DIR BBE8h - 9h ディレクトリのクラスタ番号 FFFFhはROOT DIR BBEBh カレントドライブ
DOS2解析カーネルパッチ編 トップページに戻る