当前位置:   article > 正文

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

csdn zllvincent

简介

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/346567
推荐阅读
相关标签
  

闽ICP备14008679号