⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 first-dos.h

📁 linux下从网卡远程启动
💻 H
字号:
/* * first.inc  -  constants for assembler module for DOS boot loader * * Copyright (C) 1996-1998 Gero Kuhlmann   <gero@gkminix.han.de> * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *//* *==================================================================== * * Definitions for accessing the BIOS data area */#define BIOS_SEG	0x0040		/* Segment of BIOS data area */#define BIOS_FDSTAT	0x0041		/* Floppy disk status byte */#define BIOS_HDSTAT	0x0074		/* Hard disk status byte */#define I13_INT		0x13 * 4	/* interrupt vector 13h */#define I2F_INT		0x2F * 4	/* interrupt vector 2Fh */#define IF1_INT		0xF1 * 4	/* interrupt vector F1h */#define IF8_INT		0xF8 * 4	/* interrupt vector F8h *//* *==================================================================== * * Layout of disk boot sector */#define SECT_SIZE	512		/* sector size must be 512 bytes */#define DISK_BPS	11		/* offset of bytes per sectors */#define DISK_SECTS	19		/* offset of total number of sects */#define DISK_SPT	24		/* offset of sectors per track */#define DISK_HEADS	26		/* offset of number of heads */#define DISK_BOOT	36		/* offset of disk ID to boot from */#define PART_STATUS	0x01BE		/* offset of partition status */#define PART_FRST_HEAD	0x01BF		/* offset of first head number */#define PART_FRST_SECT	0x01C0		/* offset of first sector number */#define PART_FRST_CYL	0x01C1		/* offset of first cylinder number */#define PART_TYPE	0x01C2		/* offset of partition id */#define PART_LAST_HEAD	0x01C3		/* offset of last head number */#define PART_LAST_SECT	0x01C4		/* offset of last sector number */#define PART_LAST_CYL	0x01C5		/* offset of last cylinder number */#define PART_ABS_SECT	0x01C6		/* offset of first sector number */#define PART_SEC_NUM	0x01CA		/* offset of number of sectors */#define PART_ACTIVE	0x80		/* indicates active partition */#define PART_FAT12	0x01		/* indicates partition type */#define PART_FAT16	0x04		/* indicates partition type */#define BOOT_ID_FD	0x00		/* BIOS id of floppy boot disk */#define BOOT_ID_HD	0x80		/* BIOS id of hard boot disk */#define BOOT_OFFSET	0x7C00		/* offset for boot block in segment 0 */#define TEMP_SEGMENT	0x7000		/* segment for temporary storage *//* *==================================================================== * * Layout of BIOS parameter block as used by DOS */#define BPB_BPS		 0		/* offset to bytes per sector */#define BPB_SPC		 2		/* offset to sectors per cluster */#define BPB_RES		 3		/* offset to # of reserved sectors */#define BPB_FATS	 5		/* offset to # of FATs */#define BPB_DIR		 6		/* offset to # of root dir entries */#define BPB_TOT_SECTS	 8		/* offset to total # of sectors */#define BPB_MEDIA_ID	10		/* offset to media ID */#define BPB_SPF		11		/* offset to # of sectors per FAT */#define BPB_SPT		13		/* offset to # of sectors per track */#define BPB_HEADS	15		/* offset to # of heads */#define BPB_HIDDEN	17		/* offset to # of hidden sectors *//* *==================================================================== * * Flags for DOS drive parameter block */#define DPB_F_FIXED	0x0001		/* fixed media */#define DPB_F_DOOR	0x0002		/* drive supports door lock status */#define DPB_F_TSIZE	0x0004		/* all sectors in track are same size */#define DPB_F_MULTI	0x0008		/* multiple logical units in drive */#define DPB_F_SHARED	0x0010		/* logical for shared physical drive */#define DPB_F_CHANGE	0x0020		/* disk change detected */#define DPB_F_NEWPARA	0x0040		/* device parameters were changed */#define DPB_F_FORMAT	0x0080		/* disk reformatted */#define DPB_F_ACCESS	0x0100		/* access flag - fixed media only */#define DPB_F_DEFAULT	DPB_F_CHANGE + DPB_F_NEWPARA#define DPB_T_360	0		/* type ID for 360kB disk */#define DPB_T_1200	1		/* type ID for 1.2MB disk */#define DPB_T_720	2		/* type ID for 720kB disk */#define DPB_T_SD8	3		/* type ID for SD 8 inch disk */#define DPB_T_HD8	4		/* type ID for HD 8 inch disk */#define DPB_T_FIXED	5		/* type ID for fixed disk */#define DPB_T_TAPE	6		/* type ID for tape drive */#define DPB_T_1440	7		/* type ID for 1.44MB disk */#define DPB_T_OPTICAL	8		/* type ID for optical disk */#define DPB_T_2880	9		/* type ID for 2.88MB disk *//* *==================================================================== * * Vendor information for the boot rom image. These values have to be * identical to those in mknbi.h. */#ifdef	FREEDOS#define VENDOR_SIZE	5		/* sizeof "mknbi-fdos-1.x-y" in dwords */#else#define VENDOR_SIZE	4		/* sizeof "mknbi-dos-1.x-y" in dwords */#endif#define VENDOR_BOOTL	16		/* tag for boot loader segment */#ifdef	FREEDOS#define VENDOR_RAMDISK	18		/* tag for ramdisk image */#else#define VENDOR_RAMDISK	17		/* tag for ramdisk image */#endif/* *==================================================================== * * Layout and magic ID of boot rom image header. These values have to * be identical to those used by the boot rom. See SPEC.DOC of the * boot rom source for further information. */#define	BOOT_MAGIC	0x1B031336	/* boot image header magic cookie */#define BOOT_SIZE	512		/* total size of boot image header */#define BOOT_HD_SIZE	4		/* size of header in dwords */#define BOOT_HD_MAGIC	0		/* offset for header magic number */#define BOOT_HD_LENGTH	4		/* offset for header length */#define BOOT_HD_FLAG1	5		/* offset for header flag 1 */#define BOOT_HD_FLAG2	6		/* offset for header flag 2 */#define BOOT_HD_FLAG3	7		/* offset for header flag 3 */#define BOOT_HD_LOCN	8		/* offset for header location */#define BOOT_HD_EXEC	12		/* offset for execute address */#define BOOT_HD_VENDOR	16		/* offset for header vendor information */#define BOOT_LD_SIZE	4		/* size of load record in dwords */#define BOOT_LD_LENGTH	0		/* offset for load record length */#define BOOT_LD_TAG1	1		/* offset for load record tag 1 */#define BOOT_LD_TAG2	2		/* offset for load record tag 2 */#define BOOT_LD_FLAGS	3		/* offset for load record flags */#define BOOT_LD_ADDR	4		/* offset for absolute address */#define BOOT_LD_ILENGTH	8		/* offset for image length */#define BOOT_LD_MLENGTH	12		/* offset for memory length */#define BOOT_LD_VENDOR	16		/* offset for vendor information */#define BOOT_FLAG_B0	0x01		/* mask for load record flag B0 */#define BOOT_FLAG_B1	0x02		/* mask for load record flag B1 */#define BOOT_FLAG_EOF	0x04		/* mask for load record flag EOF */#define BOOT_LD_SECNUM	0		/* offset of total number of sectors */#define BOOT_LD_HEADS   4		/* offset of head count */#define BOOT_LD_SPT	6		/* offset of sectors per track */#define BOOT_LD_CYL	8		/* offset of number of cylinders */#define BOOT_LD_DRIVE	10		/* offset of boot drive ID */#define BOOT_LD_NOHD	11		/* offset of no-hard-disk flag *//* *==================================================================== * * Layout and magic ID of bootp record. Refer to RFC 951, RFC 1048 * and RFC 1533 for further information. The BOOTP record can be * longer than the standard length as the bootrom might be able to * load a vendor extension file via tftp. */#define BOOTP_MAGIC_RFC	0x63, 0x82, 0x53, 0x63	/* RFC 1048 vendor ID */#define BOOTP_MAGIC_CMU	0x43, 0x4D, 0x55, 0x00	/* CMU vendor ID */#define BOOTP_MAGIC_STA	0x53, 0x54, 0x41, 0x4E	/* Stanford vendor ID */#define BOOTP_MAGIC_LEN	4			/* length of vendor ID */#define BOOTP_REQUEST	1		/* bootp OP-code */#define BOOTP_REPLY	2#define BOOTP_OP	0		/* offset to bootp OP-code */#define BOOTP_VEND	236		/* offset to vendor information */#define BOOTP_SIZE	300		/* size of complete bootp record */#define BOOTP_RFC_NOP	0		/* RFC vendor tag for NO-OP */#define BOOTP_RFC_END	255		/* RFC vendor tag for end of record */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -