📄 floppy.h
字号:
/*
File Name: floppy.h
Description: Floppy disk BPB table header file.
Author: Brian E. Reifsnyder
Copyright: 2001 under the terms of the GNU GPL, Version 2
*/
#ifdef FLOP
#define FEXTERN /* */
#else
#define FEXTERN extern
#endif
#define FD160 0
#define FD180 1
#define FD320 2
#define FD360 3
#define FD720 4
#define FD1200 5
#define FD1440 6
#define FD2880 7
#define HD 8
#define FD400 9
#define FD800 10
#define FD1680 11
#define FD3360 12
#define FD1494 13
#define FD1743 14
#define FD3486 15
#define FD1700 16
typedef struct BIOS_Parameter_Block
{ /* diskoffset */
unsigned cylinders : 8;
unsigned bytes_per_sector : 16; /* 0b */
unsigned sectors_per_cluster : 8; /* 0d */
unsigned reserved_sectors : 16; /* 0e */
unsigned number_of_fats : 8; /* 10 */
unsigned root_directory_entries : 16; /* 11 */
unsigned total_sectors : 16; /* 13 */
unsigned media_descriptor : 8; /* 15 */
unsigned sectors_per_fat : 16; /* 16 */
unsigned sectors_per_cylinder : 16; /* 18 */
unsigned number_of_heads : 16; /* 1a */
unsigned hidden_sectors_low : 16; /* 1c */
unsigned hidden_sectors_high : 16; /* 1e */
unsigned large_sector_count_low : 16; /* 20 */
unsigned large_sector_count_high : 16; /* 22 */
int interleave_factor;
int sector_skew;
unsigned long total_logical_sectors;
} BPB;
/* make sure, struct size is OK; i.e. alignement is 0 */
struct verify_BIOS_Parameter_Block {
char x[1 - 2*(sizeof(BPB) != 1 + 25 + 2*sizeof(int) + sizeof(long))];
};
#ifdef FLOP
BPB drive_specs[17]=
{
{40,512,1,1,2, 64, 320,0xfe,1, 8,1,0,0,0,0, 1, 0}, /* FD160 5.25 SS */
{40,512,1,1,2, 64, 360,0xfc,2, 9,1,0,0,0,0, 1, 0}, /* FD180 5.25 SS */
{40,512,2,1,2,112, 640,0xff,1, 8,2,0,0,0,0, 1, 0}, /* FD320 5.25 DS */
{40,512,2,1,2,112, 720,0xfd,2, 9,2,0,0,0,0, 1, 0}, /* FD360 5.25 DS */
{80,512,2,1,2,112,1440,0xf9,3, 9,2,0,0,0,0, 1, 0}, /* FD720 3.5 LD */
{80,512,1,1,2,224,2400,0xf9,7,15,2,0,0,0,0, 1, 0}, /* FD1200 5.25 HD */
{80,512,1,1,2,224,2880,0xf0,9,18,2,0,0,0,0, 1, 0}, /* FD1440 3.5 HD */
{80,512,2,1,2,240,5760,0xf0,9,36,2,0,0,0,0, 1, 0}, /* FD2880 3.5 ED */
{ 0,512,0,1,2,512, 0,0xf8,0, 0,0,0,0,0,0, 0, 0}, /* HD HARD DISK */
/* Non-Standard Format BPB Values */
/* More Sectors Only */
{40,512,2,1,2,112, 800,0xfd,2,10,2,0,0,0,0, 3, 3}, /* FD400 5.25 DS */
{80,512,2,1,2,112,1600,0xf9,3,10,2,0,0,0,0, 3, 3}, /* FD800 3.5 LD */
{80,512,1,1,2,224,3360,0xf0,9,21,2,0,0,0,0, 3, 3}, /* FD1680 3.5 HD */
{80,512,2,1,2,240,6720,0xf0,9,42,2,0,0,0,0, 3, 3}, /* FD3360 3.5 ED */
/* More Cylinders and Sectors */
{83,512,1,1,2,224,2988,0xf9,7,18,2,0,0,0,0, 3, 3}, /* FD1494 5.25 HD */
{83,512,1,1,2,224,3486,0xf0,9,21,2,0,0,0,0, 3, 3}, /* FD1743 3.5 HD */
{83,512,2,1,2,240,6972,0xf0,9,42,2,0,0,0,0, 3, 3}, /* FD3486 3.5 ED */
/* DMF Format */
{80,512,1,1,2, 16,3360,0xf0,9,21,2,0,0,0,0, 2, 3} /* FD1700 3.5 HD */
};
#else
extern BPB drive_specs[];
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -