FAT12文件系统 理解

目录

标准

从需求出发

FAT(FAT12)

保留扇区Boot Sector & BPB

BPB信息的使用

BootSector&BPB地址

首地址:0x0000

末地址:0x0000+0x0200-1 = 0x01FF

计算FAT位置

FAT[0]起始地址:0x0200

FAT[0]末地址=0x13FF

FAT[1]首地址=0x1400

FAT[0]末地址=0x25FF

计算根目录区的扇区数RootDirSectors

数据区Data Region

DataRegion的首地址:0x4200

 文件(文件夹)的存放

DirEntry中标记有Cluster编号与DataRegion对应

测试的重点备注

FAT数据结构

LBA到CHS

FAT类型的确认 

题外话:

FAT数据结构后端是有空白的

为什么是FAT12


FAT文件系统用在(DOS) windows环境下用的比较多。最近好奇,查一下资料,做一下笔记。

标准

FAT文件系统应该是有一本规范的,零星找来找去,走了不少弯路才找到。以下是文档的版本。(以下简称白皮书)

Microsoft Extensible Firmware Initiative
FAT32 File System Specification
FAT: General Overview of On-Disk Format

Version 1.03, December 6, 2000
Microsoft Corporation

此文描述中不清楚或是谬误之处还是要参照标准。

备注:

按白皮书所讲,FAT12微软只用在软盘上。

从需求出发

以档案馆作为例子来看,要存放的文件就是档案,存放的位置就是档案柜。文件存入档案馆后为了方便查找,我们通常会做一个目录或是索引,索引中至少需要有文件名和存放位置,大致如下。

如果来了一份档案,内容很多,一个位置放不下,可以如下方式存放(暂时ok)。

这份档案后期又有新的内容补充,

但这份档案越来越多后,文件在索引中和物理位置上都不连续,查收起来会有麻烦,而且比较容易遗漏,比如没有看到“文件名5-4”。可以如下:

这样也是可以的,但每次有新档案加入,就需改写一遍之前的,也不太好。

另外,档案多了以后,我们也不容易知道哪个些位置是空的,哪些位置是满的,如何改善呢?

FAT的方式是,另外做一个索引或表,用来标记位置的使用情况,

 

 这样,哪些位置是空的,哪些是满的,就一目了然了,新来的档案也比较容易找到哪个位置够大。

结合这个“位置表”和文件-位置索引表,位置表中的状态信息做一下补充(除了满、空之外,再补充一下,文件的结束,及如果没结束,剩下的部分的位置号),对于“文件名5”的存放以有另外一个方式,如下

这就是FAT的方式。(这样对于“文件5”的存放比较方便,但查阅就有些不方便了,但计算机速度快,还好) 

FAT(FAT12)

如白皮书所讲:

The FAT (File Allocation Table) file system has its origins in the late 1970s and early1980s
and was the file system supported by the Microsoft® MS-DOS® operating system. It was
originally developed as a simple file system suitable for floppy disk drives less than 500K in
size. Over time it has been enhanced to support larger and larger media. Currently there arethree FAT file system types: FAT12, FAT16 and FAT32.

FAT文件系统在1970年代末1980年代初,设计用来给小于500K的软盘使用,慢慢被用来支持越来越大的存储介质,现在有FAT12、FAT16、FAT32三种。

上文中的“位置表”就是FAT(File Allocate Table),“索引表”对应根目录区(Root Directory Region)。再加上真正存放档案的位置(DataRegion),结构如下

由于FAT很重要,所以在FAT可以有备份,在FAT12中一般是有一个备份。然后就是下面的样子。

从计算机发展看,是新的计算机,后有磁盘(在磁盘发明前,前面还有其它的方式来存储信息),所谓的“计算机文件系统”是在计算机+磁盘的使用过程中诞生(在电脑上实现人脑中的想法,或是将系统由其它介质(如纸)移植到电脑),后又强化或方便了磁盘的使用的。

在“计算机文件系统”发明前,文件系统的概念一定时存的,如同我们上面的图表,只是不存在于电脑中,而是存于人脑中,记录在纸或其它介质上。

而计算机(很多东西也一样),需要具备向后的兼容性,所以也是一点点由小到大,由少到多的积过程。也正因如此,从小的、简陋的开始了解,往往看似难,实则更容易找到本源,更容易理解后期的成品。

在FAT_0前面还有一个保留区域,猜测是兼容的原因。所以完整的FAT系统如下:

 下面我们一起来一点一点的分解(以FAT12为例,也是最小的FAT文件系统)。

分解前,首先明确几个数据的组织单位。

  1. 数据的最小单位是bit(比特),
  2. 8bit (比特)= Byte(字节),
  3. 512Byte(字节)=1Sector(扇区)(不一定都是,但对软盘来是的)
  4. 2^nSector(扇区)=1Cluster(簇)(可能叫作“集群”更合适。怀疑这个概念是在后期FAT版本中加入的。在FAT12中 n=0,即1Sector = 1Cluster)

Sector(扇区)是机械磁盘的引入的。暂时我们磁盘抽象成一个地址连续的线性空间就好。(这也就是Logical Block Address)其中,bit、Byte、Sector都从0开始计数。

保留扇区Boot Sector & BPB

这个扇区很重要,内部记录了很多系统访问需要的基本信息,主要分为BootSector相关的,后续以"BS_"开头,和与BPB (Bios Parameter Block)相关的,以“BPB_”开头。(Bios = Basic Input & Output System,基本输入输出系统)结构如下。

白皮书中有如下描述:

The first important data structure on a FAT volume is called the BPB (BIOS Parameter Block), which is located in the first sector of the volume in the Reserved Region. This sector is sometimes called the “boot sector” or the “reserved sector” or the “0th sector,” but the important fact is simply that it is the first sector of the volume.
This is the first thing about the FAT file system that sometimes causes confusion. In MS-DOS version 1.x, there was not a BPB in the boot sector. In this first version of the FAT file system, there were only two different formats, the one for single-sided and the one for double-sided 360K 5.25-inch floppy disks. The determination of which type was on the disk was done by looking at the first byte of the FAT (the low 8 bits of FAT[0]).
This type of media determination was superseded in MS-DOS version 2.x by putting a BPB in the boot sector, and the old style of media determination (done by looking at the first byte of the FAT) was no longer supported. All FAT volumes must have a BPB in the boot sector.

几点:

  1. 在MS-DOS1.x时代,FAT的保留扇区(Sector 0 )中是没有BPB信息的
  2. BPB信息是在MS-DOS2.x中加入的
  3. FAT[0]中的低8位,被历史原因占用了

##测试记录

在Win XP Pro Sp3 CN下没有BPB的软盘是不被识别的,认为是未被格式化的。

(在虚拟机中测试的;

  1. 加载一个空的软盘映像
  2. 用Win XP Pro Sp3 CN格式化,放入几个测试文件,退出映像
  3. 用16进制编辑器,清除掉BPB信息,再加载)

此部分的总体结构是这样的,开头是固定长度的代码,3byte长,通常是Jmp指令,借此跳过BPB,执行后续代码。

如果是Jmp指令不足3Byte,用0x90 (空指令补全,实际是什么应该不重要)

 0xAA55的标记(据说是对应电路中的方波,最容易检测的),是此扇区中有启动代码的标记。(不论这个Sector是否有启有信息,BPB的位置固定的,固定是重要的,地址固定了,也就可以寻址了)

BPB和BS代码部分如下(FAT12\FAT16的,FAT32的后半部分不同):

;	名称									10进制偏移地址 16进制偏移		说明	
;												长度		结束地址
;	BS_jmpBOOT:			jmp Entry			;	0_3byte		0x00-0x02	跳转指令	
;						db 0x90				;	
	BS_OEMName:			DB	'MSDOS5.0'		;	3_8byte		0x03-0x0a	OEM厂商名	
	BPB_BytesPerSec:	dw	0x200			;	11_2		0x0b-0x0c	每扇区字节数(Bytes/Sector)	
	BPB_SecPerClus:		db	0x01			;	13_1		0x0d		每簇扇区数(Sectors/Cluster)	
	BPB_ResvdSecCnt:	dw	0x0001			;	14_2		0x0e-ox0f	Boot记录占用多少扇	
	BPB_NumFATs:		DB	0x02			;	16_1		0x10		共有多少个FAT表	
	BPB_RootEntCnt:		dw	0xE0			;	17_2		0x11-0x12	根目录区文件最大数	
	BPB_TotSec16:		dw	0x0B40			;	19_2		0x13-0x14	扇区总数=80x2x18=2880	
	BPB_Media:			db	0xF0			;	21_1		0x15		介质描述符	
	BPB_FATSz16:		dw	0x0009			;	22_2		0x16-0x17	每个FAT表所占扇区数	
	BPB_SecPerTrk:		DW	0X0012			;	24_2		0x18-0x19	每个磁道扇数(Sector/track)	
	BPB_NumHeads:		dw	0x0002			;	26_2		0x1a-0x1b	磁头数(面数)				
	BPB_HiddSec:		dd	0x0000_0000		;	28_4		0x1c-0x1f	隐藏扇区数					
	BPB_TotSec32:		dd	0x0000_0000		;	32_4		0x20-0x23	如果BPB_TotSec16=0,则上此处给出扇区数	
	BS_DrvNum:			db	0x00			;	36_1		0x24		Int 13H的驱动器号	
	BS_Reserved1:		db	0x00			;	37_1		0x25		保留,未使用	
	BS_BootSig:			db	0x29			;	38_1		0x26		扩展引导标记(29H),用于指明此后的三个域可用	
	BS_VolID:			dd	0x0000			;	39_4		0x27-0x2a	卷序列号	
	BS_VolLab:			DB	'NO_NAME    '	;	43_11		0x2b-0x35	卷标	
	BS_FileSysType:		db	'FAT12   '		;	54_8		0x36-0x3d	文件系统类型	
;	引导代码及其它内容						;	62至448					引导代码及其它内容
;	dw	0xAA55								;	510_2				用于引导的结束标志

以下是个Win XP Pro SP3下格式非DOS启动软盘的分析截图。

BPB信息的使用

BootSector&BPB地址

首地址:0x0000

长度=BPB_ResvdSecCn * BPB_BytsPerSec=1*512 (通常)=512 =0x0200

末地址:0x0000+0x0200-1 = 0x01FF

计算FAT位置

FAT[0]起始地址:0x0200

FAT[0]长度 = FAT 结构的扇区数*BPB_BytsPerSec * BPB_BytsPerSec

               FAT 结构的扇区数(FATSz)的确认,对于软盘3.5”,1.44M:为9x512= 0x1200

if(BPB_FATSz16 != 0)
    FATSz = BPB_FATSz16;
else
    FATSz = BPB_FATSz32;

FAT[0]末地址=0x13FF

FAT[1]首地址=0x1400

FAT[1]长度 = FAT[0]长度 = 0x1200

FAT[0]末地址=0x25FF

计算根目录区的扇区数RootDirSectors

RootDirSectors首地址=0x2600

主目录区的样子如下图

自然,RootDirSectors(根目录占用扇区数)

 向上圆整可以替换为

每个条目的字节数固定为32byte

占用字节数:=14x512=7168 = 0x1C00 

RootDirSectors末地址=0x41FF

数据区Data Region

DataRegion的首地址:0x4200

到此为止,各个大区域的地址都确认到了,FAT(12)的样子如下:

 文件(文件夹)的存放

接下来就是文件(文件夹的存放)

  1. 在根目录中找一个空闲区域
  2. 到FAT数据结构(FAT-FileAllocateTable本名就是表,不便称为FAT表)中找一个空闲数据区域(Cluster)
  3. 将以上两项的信息合并,作为一个条目(Entry)写入根目录区,在FAT中标记此Cluster占用。

在根目录中建立的条目(Entry)称作:Directory Entry,结构如下:

	DIR_Name:	times 11 db 	;0	0x00-0x0a	11字节,8.3文件名
	DIR_Attr:	db				;11	0x0b-		是一个 位给合
	DIR_NTRes:	db				;12	0x0c-		为WIN NT保留
	DIR_CrtTimeTenth:	db		;13	0x0d-		创建时间100ms精度
	DIR_CrtTime:	dw			;14	0x0e-0x0f	创建时间
	DIR_CrtDate:	dw			;16	0x10-0x11	创建日期
	DIR_LstAccDate:	dw			;18	0x12-0x13	最后访问日期
	DIR_FstClusHI:	dw			;20	0x14-0x15	首cluster编号的高word
	DIR_WrtTime:	dw			;22	0x16-0x17	写时间	
	DIR_WrtDate:	dw			;24	0x18-0x19写日期
	DIR_FstClusLO:	dw			;26	0x1a-0x1b	首Cluster编号的低word
	DIR_FileSize:	dd			;28	0x1c-0x1f	文件大小

测试:

  1. 新建一个软盘映像
  2. 用虚拟机中的Win XP Pro SP3(下同)格式化,
  3. 并依次写入文件
    1. A1A2AEA4.txt        内容为重复的字母"a",长度小于512byte;
    2. B1B2B3B4.txt        内容为重复的字母"b",长度小于512byte;
    3. C1C2C3C4.txt        内容为重复的字母"c",长度小于512byte;
    4. 文件夹:FOLD_A1A
    5. 在FOLD_A1A下写入文件  D1D2D3D4.TXT,内容为重复的字母"c",长度小于512byte;

目录结构及信息如下:

//目录结果
A:\>tree /f
文件夹 PATH 列表
卷序列号为 5008-EBA2
A:.
│  A1A2AEA4.txt
│  B1B2B3B4.txt
│  C1C2C3C4.txt
│
└─FOLD_A1A
        D1D2D3D4.TXT
//根目录下的文件&文件夹的详情
A:\>dir
 驱动器 A 中的卷没有标签。
 卷的序列号是 5008-EBA2

 A:\ 的目录

2022-12-25  15:54               217 A1A2AEA4.txt
2022-12-25  15:56               217 B1B2B3B4.txt
2022-12-25  15:56               217 C1C2C3C4.txt
2022-12-25  15:59    <DIR>          FOLD_A1A
               3 个文件            651 字节
               1 个目录      1,455,104 可用字节
//FOLD_A1A目录下的文件详情
A:\>dir FOLD_A1A
 驱动器 A 中的卷没有标签。
 卷的序列号是 5008-EBA2

 A:\FOLD_A1A 的目录

2022-12-25  15:59    <DIR>          .
2022-12-25  15:59    <DIR>          ..
2022-12-25  15:59               217 D1D2D3D4.TXT
               1 个文件            217 字节
               2 个目录      1,455,104 可用字节

得到的分析结果如下,与推算的一致在0x2600处,找到了三个文件和一个文件夹

各文件的数据区数据:

序号文件名首Cluster高word首Cluster代word首字Cluster编号Cluster对应地址
1A1A2A3A4.TXT  0X000x020x00020x4200
2B1B2B3B4.TXT0x000x030x00030x4400
3C1C2C3C4.TXT0x000x040x00040x4600
4FOLD_A1A0x000x050x0005     0x4800
5

在0x4200的位置找到了文件"A1A2A3A4.TXT"的内容,如下

紧接近在0x4800的位置,找到的文件夹“FOLD_A1A”的内容。(暂时是推)

按DirEntry的格式分析一下0x4800的数据,如下图:

发现这里有3个文件(Entry), 

再向下找,分在0x4A00的位置找到文件“D1D2D3D4.TXT”的内容,如下:

把两个表格合并到一起,把根目录的地址也填上,得到下表:

序号文件名首Cluster高word首Cluster代word首字Cluster编号Cluster对应地址
0  根目录NANANA0x2600
1A1A2A3A4.TXT  0X000x020x00020x4200
2B1B2B3B4.TXT0x000x030x00030x4400
3C1C2C3C4.TXT0x000x040x00040x4600
4FOLD_A1A0x000x050x0005     0x4800
5.0X000x050x00050x4800
6..0x000x000x00000x4200
7D1D2D3D4.TXT0x000x060x00060x4A00

这样理论和实物就手工对上了。

DirEntry中标记有Cluster编号与DataRegion对应

很明显,DirEntry中给定的Cluster编号N,对应的LBA地址有如下规律: 0x4200 +(N-2)x 0x0200;

N=0x0000时,LBA = 0x2600 = RootDireSector的首地址

N<>0x0000时,LBA =  0x4200 +(N-2)x 0x0200 = DataRegionSector的首地址+(N-2)x BPB_BytsPerSec

在BPB_SecPerClus 现在刚好=1,可以推测在不等于1时,

LBA =  0x4200 +(N-2)x 0x0200 = DataRegionSector的首地址+(N-2)x BPB_BytsPerSec x BPB_SecPerClus

测试的重点备注

测试时有可能得不到上面的数据,而且看起来怪怪,原因:

1、用win xp 格式化软盘时,有一个“卷标”,如果选种了卷标,出现在0x2600的Entry就是“卷标”。

2、文件是在其它文件夹是建好,然后逐个移入的,如果我们在接在文夹或文件,直观的看起来,系统会在文件夹下放一下“新建文件夹”或是“新建 文本文档.txt”,而且处于改名状态。预计系统是分两步进行的:

        A、先在磁盘上完成了一个完整的“新建”动作;(我们用的是中文系统,此时写入的DirEntry中使用了中文文件名UTF-16,和长文件名两个后来补充内FAT(12)文件系统的功能),增加了复杂度;

        B、执行改名操作。文件改名的操作,并不是修改原来的DirEntry,而是将原来的标记为删除,并新插入了一条DirEntry,所以也会增加复杂度。

关于DIR_Name的基本描述,其它的都是扩展的(猜的):

DIR_Name[0]
Special notes about the first byte (DIR_Name[0]) of a FAT directory entry:
· If DIR_Name[0] == 0xE5, then the directory entry is free (there is no file or directory name in this
entry).
· If DIR_Name[0] == 0x00, then the directory entry is free (same as for 0xE5), and there are no
allocated directory entries after this one (all of the DIR_Name[0] bytes in all of the entries after
this one are also set to 0).

DIR_Name[0] == 0xE5,代表是写入后,又被删除的

DIR_Name[0] == 0 ,条目 是空的,很明显

FAT数据结构

下面来看一下FAT的数据结构,FAT的结构与前面以档案馆为例描述的一致,就是一个表状结构,里面装着每个cluster的状态信息。

FAT[0]        Reserved,== BPB_Media

FAT[1]        在格式化时被格式成EOC,== End Of Clusterchain,

另外FAT[1],在FAT16 和 FAT32中,除可以用于标记EOC外,还可以用来标记,指示需要进行磁盘检查(Chkdsk/Scandisk)

关于EOC:

Microsoft operating system FAT drivers use the EOC value 0x0FFF for FAT12, 0xFFFF for FAT16, and 0x0FFFFFFF for FAT32 when they set the contents of a cluster to the EOC mark. There are various disk utilities for Microsoft operating systems that use a different value, however.

即微软在白皮书中描述的作法是:

FAT12    EOC == 0xFFF(清单是3个F)

FAT16    EOC == 0xFFFF

FAT32    EOC == 0x0FFF_FFFF

但在白皮书的伪代码中的描述为:

IsEOF = FALSE;
If(FATType == FAT12) {
    If(FATContent >= 0x0FF8)
        IsEOF = TRUE;
} else if(FATType == FAT16) {
    If(FATContent >= 0xFFF8)
        IsEOF = TRUE;
} else if (FATType == FAT32) {
    If(FATContent >= 0x0FFFFFF8)
        IsEOF = TRUE;
}

另外,

There is also a special “BAD CLUSTER” mark. Any cluster that contains the  “BAD CLUSTER” value in its FAT entry is a cluster that should not be placed on the free list because it is prone to disk errors. The “BAD CLUSTER” value is 0x0FF7 for FAT12, 0xFFF7 for FAT16, and 0x0FFFFFF7 for FAT32. The other relevant note here is that these bad clusters are also lost clusters—clusters that appear to be allocated because they contain a non-zero value but which are not part of any files allocation chain. Disk repair utilities must recognize lost clusters that contain this special value as bad clusters and not change the content of the cluster entry. 

 FAT[x] 的值还可以为 BAD CLUSTER标记,

FAT12   BAD CLUSTER == 0xFF7

FAT16   BAD CLUSTER == 0xFFF7

FAT32   BAD CLUSTER == 0x0FFF_FFF7 

另外:

NOTE: It is not possible for the bad cluster mark to be an allocatable cluster number on FAT12 and FAT16 volumes, but it is feasible for 0x0FFFFFF7 to be an allocatable cluster number on FAT32 volumes. To avoid possible confusion by disk utilities, no FAT32 volume should ever be configured such that 0x0FFFFFF7 is an allocatable cluster number.

FAT32下真的存在一个编号为 BAD CLUSTER (0x0FFF_FFF7)的块,这这块要特别注意不要使用。

FAT12下,FAT[]的取值整理如下:

FAT[]可取值描术
0BPB_Media磁盘标识字,低字节需要与BPB_Mdeia数值一致
10xFFF表示第一簇(Cluster)已占用(固定不变的)
2~N 0x000可用Cluster
0x002~0xFEF已经Cluster,具体最大值应该取决于最大Cluster值
>=0xFF8EOF 文件结束
-------
0xFF7坏Cluster

 FAT12数据结构中,每个Cluset用12bit表示,我们现在的样子如下:

我们将第一个文件A1A2AEA4.TXT的内容增加到>1K后(直接对比如下),(备注,文件名写错了)

 

即如下图所示,按照1、2、4、5、6的顺序完成的文件内容的查找

文件的内容刚好如前面推算的,在0x4C00和 0x4E00的位置。

 

LBA到CHS

 上面的地址地址偏移都是基于逻辑地址的,而实访问的磁盘是硬件相关的,比如软盘是按Cylider(柱面)、Head(磁头)、Sector(扇区)进行编号的。(似乎机械硬盘也是如些),这里需要有一下地址转换。

(图来自《30天手写操作系统》合秀实)

软盘有80个柱面x2磁头x18个扇区 = 2880个扇区。

柱面 从0开始编号,0-79

磁头 从0开始编号,0-1

扇区 从1开始编号,1-18(这个比较不一样) 

逻辑扇区

柱面

磁头

物理扇区

逻辑扇区0

0柱面

0磁头

1扇区

逻辑扇区1

0柱面

0磁头

2扇区

逻辑扇区2

0柱面

0磁头

3扇区

……

逻辑扇区17

0柱面

0磁头

18扇区

逻辑扇区18

0柱面

1磁头

1扇区

逻辑扇区19

0柱面

1磁头

2扇区

……

逻辑扇区35

0柱面

1磁头

18扇区

逻辑扇区36

1柱面

0磁头

1扇区

逻辑扇区37

1柱面

0磁头

2扇区

……          

 从最外层算起,计算柱面号,1个柱面有2个磁头,每个磁头的18个扇区,即36;

1、逻辑扇区号/36,商a余b,a即是物理柱面号,从0开始 (相当于36进制)

2、b/18,商c=0或1,余d,c即为磁头号,从0开始(相当于2进制)

3、d+1,即为物理扇区号,物理扇区从1开始计数

-----------或者少用一次除法

1、逻辑扇区/18,商a余b

2、a>>1,即是柱面号(右移于除2相当,所以还是除了36)

3、a&0x01,即最低一位,即磁头号

4、b+1,即是物理扇区号

FAT类型的确认 

BPB中有一个 BS_FileSysType,但这个不是判断该文件系统是FAT12或FAT16或FAT32的依据,按白皮书的讲法,此值只是参考。判断FAT文件类型的唯一标准是Cluster的数量。

It is really quite simple how this works. The FAT type—one of FAT12, FAT16, or FAT32—is determined by the count of clusters on the volume and nothing else. 

If(CountofClusters < 4085) { //注,4085 = 0xFF5
    /* Volume is FAT12 */
} else if(CountofClusters < 65525) { //注 65225 = 0xFEC9
    /* Volume is FAT16 */
} else {
    /* Volume is FAT32 */
}

另外,白皮书中讲,FAT12只用在软盘上。

Microsoft operating systems only do FAT12 on floppy disks. 

题外话:

FAT数据结构后端是有空白的

与我们用“本子”记录是一样的,本子后面通常会有空白,并不是刚刚好 

对于软盘而言,总的扇区数 = 80x2x18 = 2880个,
保留扇区 1个
FAT_0    9个
FAT_1    9个
根目录  = (0xE0 x32byte + 511)/512 = 14 个 
合计用掉了 1+9+9+14 = 33 个
剩余 2880-33 = 2847 = B1F 个扇区

为什么是FAT12

 1.44MB的软盘有2880个扇区,按照1扇区/cluster的规划,需要12位来记录,8位=1byte最大是是255;10位 = 1023;11位 2045;12位 = 0xFFF = 4095,刚好余了一点点儿。

---------FAT12的主线部分就理清,告一段落了。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
README.TXT NOTES ON MS-DOS VERSION 5.0 =========================== In this file the following topics are covered: 1. Introduction 2. Solving Setup Problems 2.1 Priam and Everex Hard Disks 2.2 SyQuest Removable Hard Disk 2.3 Bernoulli Drive 2.4 Disk Manager 2.5 SpeedStor and Volume Expansion 2.6 Novell Partitions 2.7 Vfeature Deluxe 2.8 Columbia Data Systems Device Driver 2.9 Incompatible Partition 2.10 WYSE Partitions 2.11 286 Accelerator Cards 2.12 Bernoulli Cache 2.13 AT&T 6300 Computers 2.14 LANtastic 2.15 Western Digital SCSI Hard-Disk Controllers 2.16 Change CONFIG.SYS File 2.17 Toshiba T1600 and a Hard RAM Disk 3. Installing MS-DOS 5.0 on OS/2 Systems 3.1 Installing MS-DOS 5.0 and OS/2 Dual-Boot Systems 3.2 Using the Uninstall Program on an OS/2 System 4. Solving Memory Problems 4.1 386MAX 4.2 All Computers Expanded-Memory Driver 4.3 Bus Master DMA Controller 4.4 HIMEM.SYS Location 4.5 INT15 Access to Extended Memory 4.6 Intel LIM Driver 4.7 Phoenix BIOS and HIMEM.SYS 4.8 QEMM 4.9 XMAEM.SYS and XMA2EM.SYS 5. Solving Problems with Windows 5.1 DOS Applications in Windows Enhanced Mode 5.2 EMM386.EXE Location 5.3 WINA20.386 File 5.4 Windows 3.0 Enhanced Debug Version 5.5 Windows 2.03 5.6 Windows/286 2.1 5.7 Windows 386 and the Upper Memory Area 6. Making Your Hardware Compatible with MS-DOS 5.0 6.1 101-key Keyboards and QBasic/MS-DOS Editor 6.2 Acer 1100/33 6.3 Adaptec Controller Boards 6.4 Amstrad Systems and KEYB.COM 6.5 Hardcard II 6.6 COMPAQ EXTDISK.SYS Driver 6.7 Corel System Drivers 6.8 External Disk Drives 6.9 Mice and MS-DOS Shell 6.10 NCR VGA BIOS 6.11 Olivetti Systems 6.12 Toshiba T3100SX 6.13 Western Digital VGA Card 6.14 Zenith Computers 7. Making Your Network Compatible with MS-DOS 5.0 7.1 3+Share 7.2 AT&T StarGROUP 7.3 DCA 10Net and Word5 7.4 DOS LAN Requester 7.5 I

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值