雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
1: 2005-07-30 (土) 09:17:44 ソース バックアップ No.1 を復元して編集 現: 2024-01-06 (土) 22:39:10 ソース 編集
Line 32: Line 32:
・・・っとまあ、こういう感じかな??? ・・・っとまあ、こういう感じかな???
 +
 +FAT12は、ルートディレクトリ領域にファイルの情報が書かれている。また、FAT12では1つのファイルに32バイトの情報を持っている。どういう情報かというと
 +
 +|0|ファイル名。(thebbl.sysだったら、「thebbl」が入る|
 +|1|~|
 +|2|~|
 +|3|~|
 +|4|~|
 +|5|~|
 +|6|~|
 +|7|~|
 +|8|拡張子。(thebbl.sysだったら、「sys」が入る)|
 +|9|~|
 +|10|~|
 +|11|ファイルの属性の情報|
 +|12|予約領域(将来用に用意された部分。FAT12では使わない)|
 +|13|ファイル作成時刻(秒の部分?)|
 +|14|ファイル作成時刻(何時何分)|
 +|15|~|
 +|16|ファイル作成時刻(何年何月何日)|
 +|17|~|
 +|18|ファイルアクセス日付(???よくわからんな・・・)|
 +|19|~|
 +|20|ファイルが格納されているセクタの番号。(上位2バイト。FAT12では使用しないらしい・・・)|
 +|21|~|
 +|22|ファイル更新時刻(何時何分何秒)|
 +|23|~|
 +|24|ファイル更新時刻(何年何月何日)|
 +|25|~|
 +|26|ファイルが格納されているセクタの番号。(下位2バイト。FAT12ではここだけ使用すればいいらしい・・・)|
 +|27|~|
 +|28|ファイルのサイズ|
 +|29|~|
 +|30|~|
 +|31|~|
 +
 +
 +なるほどなるほど。じゃ、この「26」の部分を見れば、このファイルがセクタ何番からスタートしているかわかるわけか。
 +
 +「ルートディレクトリ領域」には、上記32ビットを一組にして、ずらーーーーっとこれが並んでいるわけね。
 +
 +
 +
 +*プログラムを妄想 [#df4c64c3]
 +
 +そんなわけでファイルを探すプログラムを妄想してみる。
 +
 +
 +
 + ;==================================================
 + [BITS 16]
 + [OPTIMIZE 1]
 + [OPTION 1]
 + [INSTRSET "8086"]
 + [FORMAT "BIN"]
 + ORG 0x100
 + ;----------------------------------------------
 + 
 + ;==とりあえず一個のルートディレクトリ領域を読み込み、そこで指定のファイルを
 + ;探してみる
 + 
 + 
 + MOV    AH,02H    ;モード指定。(読み込みを指定)
 + MOV    AL,01H    ;連続処理するセクタ数(とりあえず1)
 + MOV    CH,01H    ;シリンダ番号(シリンダ1を指定)
 + MOV    CL,14    ;セクタ番号(セクター14を指定)
 + MOV    DH,0      ;ヘッド番号(0すなわち表を指定)
 + MOV    DL,0      ;ドライブ番号(0すなわちAドライブを指定)
 + MOV    ES,xxx    ;データを読み込むアドレスのセグメント値
 + MOV    BX,xxx    ;データを読み込むアドレスのオフセット値
 + INT    13H
 +
 +
 +
 +
 + ;--end---
 + 
 + ;----------------------------------------------
 + MOV AX,0x4c00
 + INT 0x21
 + ;===============================================