我得到了一些使用 *nix 命令创建的软盘映像(原始 DOS 6.22 和 FreeDOS 1.44 MB 启动盘),dd
它们在虚拟环境中使用时可以正常工作。
现在我想了解这些文件的结构。
据我所知,1.44 MB 软盘有80 首曲目,每条轨道都有18 个部门每个部门包括512 字节。乘以这个数字得到大约 0.7MB,这正好是双方。
0 号轨道 2 扇区 2 头的位置是 9728(或 0x2600) - 这是 DOS 6.22 引导加载程序从磁盘获取的第一个扇区。但是这个位置是如何计算出来的呢?
我如何获得这些值?我使用模拟器逐步执行引导加载程序。第一次软盘访问是通过调用中断 013h 完成的,其中 AH = 2(从软盘读取)、AL = 1(读取一个扇区)、CH = 0(从磁道 0 读取)、CL = 2(从扇区 2 读取)和 DH = 1(使用磁头 1 = 使用第二面)。此调用使模拟器加载从位置 9728 开始的字节。
除扇区号(以 1 为基数)之外的每个寄存器值都是以 0 为基数。
提前致谢!