赞
踩
1.前面我们使用C语言实现了把启动代码写入3.5寸虚拟软盘头512字节,成功完成了字符显示功能。我们的操作系统在头512字节是远远不够用的,我们就需要把操作系统的其他数据写入软盘的其他扇区,通过头512字节加载操作系统到内存中,并跳转到操作系统代码处。其中这头512字节我们称作为内核加载器。
实现一个能把操作系统代码数据写入虚拟软盘任意扇区的功能模块
1.软盘结构:
3.5英寸软盘片,其上、下两面各被划分为80个磁道,每个磁道被划分为18个扇区,每个扇区的存储容量固定为512字节。共计 80*2*18*512
字节
软盘片的存储格式:盘片的每面划分为多少个同心圆式的磁道,以及每个磁道划分成多少个存储信息的扇区。扇区是软盘的基本存储单位,每次对磁盘的读写均以扇区为单位进行的。
2.C语言实现虚拟软盘读写功能
floppy.h 文件内容如下:
#include<stdio.h> #include<stdlib.h> #include<string.h> /** *根据文件名创建一个3.5寸虚拟软盘 *3.5寸软盘结构:80个磁道,2个磁头,18个扇区。每个扇区512字节 *系统读取磁盘结构:0磁道0磁头1扇区,0磁道0磁头2扇区...,0磁道0磁头18扇区,0磁道1磁头1扇区, *0磁道1磁头2扇区...,0磁道1磁头18扇区。再从1磁道0磁头1扇区....循环读取操作 */ FILE* initFloppy(char *fileName); /** *读取软盘指定磁道,磁头,扇区数据 *@param c 磁道
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。