03.C 语言实现3.5寸虚拟软盘

简介

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       磁道
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值