(その2はあとでかく) ひとまず Compact Flash で MS-DOS が BOOT できるようになりましたので現行のパソコンから dd で dump してみました. 筆者は開発環境として msys2 を常用していますので dd なり /dev/sdx というデバイスは普段から利用できます.
実データ
LBA=1, パーティションテーブル.
説明はここにちょっとある. https://hp.vector.co.jp/authors/VA013937/editdisk/tech.html
パーティションテーブルの開始シリンダから MS-DOS 6.2 の領域(つまり FAT) が始まる. これは FORMAT.EXE の固定ディスクの領域確保 (つまりいまでいう fdisk) らしい.
ここまでやって1シリンダが何バイトなのか不明だったのと、利用した古い 64MB の Compact Flash で MBR なしのフォーマットと PC-98 の固定ディスクフォーマットと PC/AT の固定ディスクフォーマットがまざりまくって、 FAT の先頭が3つありどれかわからなくなったのでやり直します.
dd if=/dev/zero of=/dev/sdx bs=1M count=2
FAT filesystem の先頭
先頭 2Mbyte を data 0 で埋めた Compact Flash を接続し再度PC-98から固定ディスクの初期化とシステム転送をしてきました.
LBA=0x88, NEC 5.0 (?) の filesystem header
LBA=0x89, NEC 6.2 (?) の filesystem header
LBA=0x8a, FAT16 の cluster chain table
固定ディスク領域マップによるとこの領域はシリンダ 00001-00915, サイズ 00061 とのことです. 1シリンダが 0x11000 byte なのか 0x11200 byte なのか謎ですが filesystem header をみることにします.
JmpBoot 0xeb 0x45 0x90 OEMName "NEC 5.0" BytesPerSector 1024 SectorPerCluster 2 ReservedSectorCount 1 NumFats 2 RootEntryCount 3072 TotalSector16 60390 Media 0xf8 FATSz16 59 SectorPerTrack 17 NumHeads 8 HideSector 136 TotSec32 0 DriveNumber 128 Reserved1 0x00 BootSignature 0x29 VolumeID 0x29 0xfe 0x07 0x10 VolumeLabel "NO NAME " FilesystemType "FAT16 " BootSign 0x00 0x00
JmpBoot 0xeb 0x45 0x90 OEMName "NEC 6.2" BytesPerSector 1024 SectorPerCluster 2 ReservedSectorCount 1 NumFats 2 RootEntryCount 3072 TotalSector16 60390 Media 0xf8 FATSz16 59 SectorPerTrack 17 NumHeads 8 HideSector 136 TotSec32 0 DriveNumber 128 Reserved1 0x00 BootSignature 0x29 VolumeID 0x29 0xc0 0x07 0x16 VolumeLabel "NO NAME " FilesystemType "FAT16 " BootSign 0x00 0x00
NEC 5.0 と NEC 6.2 の内容は大きな違いはないのですがその次に cluster chain がある NEC 6.2 を使うことにします.