📄 appendix-int19_3.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0059)http://www.huihoo.com/gnu_linux/own_os/appendix-int19_3.htm -->
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<P><SPAN lang=EN-US><FONT face="Times New Roman" size=6><SPAN
style="mso-tab-count: 1"><STRONG>A.3 INT 19h - Bootstrap
Loader</STRONG></SPAN></FONT></SPAN></P><SPAN lang=EN-US><FONT
face="Times New Roman" size=5><SPAN style="mso-tab-count: 1">
<P>
<P><FONT size=3>[</FONT><A
href="index.htm"
tppabs="http://pagoda-ooos.51.net/os_book/index.htm"><FONT
size=3>Home</FONT></A><FONT size=3>] [</FONT><A
href="appendix.htm"
tppabs="http://pagoda-ooos.51.net/os_book/appendix.htm"><FONT
size=3>Top</FONT></A><FONT size=3>] [</FONT><FONT size=3><A
href="appendix-bios_memory_2.htm"
tppabs="http://pagoda-ooos.51.net/os_book/appendix/appendix-bios_memory_2.htm">Previous</A></FONT><FONT
size=3>] [</FONT><FONT size=3>Next</FONT><FONT size=3>]</FONT></P>
<P></P><STRONG>
<HR width="100%" SIZE=2>
</STRONG></SPAN></FONT></SPAN><B>
<P><B>Desc:</B> This interrupt reboots the system without clearing memory or
restoring interrupt vectors. Because interrupt vectors are preserved, this
interrupt usually causes a system hang if any TSRs have hooked vectors from 00h
through 1Ch, particularly INT 08. </P></B>
<P><B>Notes:</B> Usually, the BIOS will try to read sector 1, head 0, track 0
from drive <PRE><P><B>A:</B><BR>To 0000h:7C00h. If this fails, and a hard disk is installed, the
BIOS will read sector 1, head 0, track 0 of the first hard disk.
This sector should contain a master bootstrap loader and a partition
table. After loading the master boot sector at
0000h:7C00h, the master bootstrap loader is given control
. It will scan the partition table for an active
partition, and will then load the operating system's bootstrap
loader (contained in the first sector of the active partition) and
give it control..
True IBM PCs and most clones issue an INT 18 if neither floppy nor hard
disk have a valid boot sector.
To accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
0040h:0072h and jump to FFFFh:0000h. For a cold boot equivalent to
a reset, store 0000h at 0040h:0072h before jumping..
VDISK.SYS hooks this interrupt to allow applications to find out how
much extended memory has been used by VDISKs. DOS 3.3+
PRINT hooks INT 19 but does not set up a correct VDISK header block
at the beginning of its INT 19 handler segment, thus causing some
programs to overwrite extended memory which is already in use..
The default handler is at F000h:E6F2h for 100% compatible BIOSes.
MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
contains extended partitions which point at each other in a loop,
since it will never find the end of the linked list of extended
partitions.
Under Windows Real and Enhanced modes, calling INT 19 will hang the
system in the same was as under bare DOS; under Windows Standard
mode, INT 19 will successfully perform a cold reboot as it appears
to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
</P></PRE>
<P><B>BUG:</B> When loading the remainder of the DOS system files fails, various
versions of IBMBIO.COM/IO.SYS incorrectly restore INT 1E before calling INT 19,
assuming that the boot sector had stored the contents of INT 1E at DS:SI instead
of on the stack as it actually does <PRE><P><FONT face=宋体></FONT>
Format of VDISK header block (at beginning of INT 19 handler's segment):
<A name=Table623></A>
Offset Size Description (Table 0623)
00h 18 BYTEs n/a (for VDISK.SYS, the device driver header)
12h 11 BYTEs signature string "VDISK Vn.m" for VDISK.SYS version n.m
1Dh 15 BYTEs n/a
2Ch 3 BYTEs linear address of first byte of available extended memory
<P>
Format of hard disk master boot sector:
<A name=Table624></A>
Offset Size Description (Table 0624)
00h 446 BYTEs Master bootstrap loader code
1BEh 16 BYTEs partition record for partition 1
1CEh 16 BYTEs partition record for partition 2
1DEh 16 BYTEs partition record for partition 3
1EEh 16 BYTEs partition record for partition 4
1FEh WORD signature, AA55h indicates valid boot block
<P>
Format of partition record:
<A name=Table625></A>
Offset Size Description (Table 0625)
00h BYTE boot indicator (80h = active partition)
01h BYTE partition start head
02h BYTE partition start sector (bits 0-5)
03h BYTE partition start track (bits 8,9 in bits 6,7 of sector)
04h BYTE operating system indicator
05h BYTE partition end head
06h BYTE partition end sector (bits 0-5)
07h BYTE partition end track (bits 8,9 in bits 6,7 of sector)
08h DWORD sectors preceding partition
0Ch DWORD length of partition in sectors
</P></PRE><PRE><P><STRONG><FONT face=宋体></FONT></STRONG>
<A name=Table626></A>
(Table 0626)
Values for operating system indicator:
00h empty
01h DOS 12-bit FAT
02h XENIX root file system
03h XENIX /usr file system (obsolete)
04h DOS 16-bit FAT (up to 32M)
05h DOS 3.3+ extended partition
06h DOS 3.31+ Large File System (16-bit FAT, over 32M)
07h QNX
07h OS/2 HPFS
07h Windows NT NTFS
07h Advanced Unix
08h OS/2 (v1.0-1.3 only)
08h AIX bootable partition, SplitDrive
08h Commodore DOS
08h DELL partition spanning multiple drives
09h AIX data partition
09h Coherent filesystem
0Ah OS/2 Boot Manager
0Ah OPUS
0Ah Coherent swap partition
0Bh Windows95 with 32-bit FAT
0Ch Windows95 with 32-bit FAT (using LBA-mode INT 13 extensions)
0Eh logical-block-addressable VFAT (same as 06h but using LBA-mode INT 13)
0Fh logical-block-addressable VFAT (same as 05h but using LBA-mode INT 13)
10h OPUS
11h OS/2 Boot Manager hidden 12-bit FAT partition
12h Compaq Diagnostics partition
14h (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
14h OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
16h OS/2 Boot Manager hidden over-32M 16-bit FAT partition
17h OS/2 Boot Manager hidden HPFS partition
17h hidden NTFS partition
18h AST special Windows swap file ("Zero-Volt Suspend" partition)
19h Willowtech Photon coS
1Bh hidden Windows95 FAT32 partition
1Ch hidden Windows95 FAT32 partition (using LBA-mode INT 13 extensions)
1Eh hidden LBA VFAT partition
20h Willowsoft Overture File System (OFS1)
21h officially listed as reserved
21h FSo2
23h officially listed as reserved
24h NEC MS-DOS 3.x
26h officially listed as reserved
31h officially listed as reserved
33h officially listed as reserved
34h officially listed as reserved
36h officially listed as reserved
38h Theos
3Ch PowerQuest PartitionMagic recovery partition
40h VENIX 80286
41h Personal RISC Boot
42h SFS (Secure File System) by Peter Gutmann
50h OnTrack Disk Manager, read-only partition
51h OnTrack Disk Manager, read/write partition
51h NOVEL
52h CP/M
52h Microport System V/386
53h OnTrack Disk Manager, write-only partition???
54h OnTrack Disk Manager (DDO)
56h GoldenBow VFeature
61h SpeedStor
63h Unix SysV/386, 386/ix
63h Mach, MtXinu BSD 4.3 on Mach
63h GNU HURD
64h Novell NetWare 286
65h Novell NetWare (3.11)
67h Novell
68h Novell
69h Novell
70h DiskSecure Multi-Boot
71h officially listed as reserved
73h officially listed as reserved
74h officially listed as reserved
75h PC/IX
76h officially listed as reserved
7Eh F.I.X.
80h Minix v1.1 - 1.4a
81h Minix v1.4b+
81h Linux
81h Mitac Advanced Disk Manager
82h Linux Swap partition
82h Prime
83h Linux native file system (ext2fs/xiafs)
<P><B>84h OS/2-renumbered type 04h partition (related to hiding DOS C:</B><BR>Drive)
86h FAT16 volume/stripe set (Windows NT)
87h HPFS Fault-Tolerant mirrored partition
87h NTFS volume/stripe set
93h Amoeba file system
94h Amoeba bad block table
A0h Phoenix NoteBIOS Power Management "Save-to-Disk" partition
A1h officially listed as reserved
A3h officially listed as reserved
A4h officially listed as reserved
A5h FreeBSD, BSD/386
A6h OpenBSD
A9h NetBSD (http://www.netbsd.org/)
B1h officially listed as reserved
B3h officially listed as reserved
B4h officially listed as reserved
B6h officially listed as reserved
B7h BSDI file system (secondarily swap)
B8h BSDI swap partition (secondarily file system)
C1h DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
C4h DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
C6h DR DOS 6.0 LOGIN.EXE-secured Huge partition
C6h corrupted FAT16 volume/stripe set (Windows NT)
C7h Syrinx Boot
C7h corrupted NTFS volume/stripe set
D8h CP/M-86
DBh CP/M, Concurrent CP/M, Concurrent DOS
DBh CTOS (Convergent Technologies OS)
E1h SpeedStor 12-bit FAT extended partition
E3h DOS read-only
E3h Storage Dimensions
E4h SpeedStor 16-bit FAT extended partition
E5h officially listed as reserved
E6h officially listed as reserved
F1h Storage Dimensions
F2h DOS 3.3+ secondary partition
F3h officially listed as reserved
F4h SpeedStor
F4h Storage Dimensions
F6h officially listed as reserved
FEh LANstep
FEh IBM PS/2 IML
FFh Xenix bad block table
</P></PRE>
<P><B>Note:</B> For partition type 07h, one should inspect the partition boot
record for the actual file system type </P>
<P><BR>(Table 0627)<BR>Values Bootstrap loader is called with (IBM
BIOS):.<BR>CS:IP = 0000h:7C00h.<BR>DH = access<BR></P><PRE><P><B>bits 7-6,4-0:</B><BR>Don't care
<P><B>bit 5:</B><BR>=0 device supported by INT 13.
DL = boot drive
00h first floppy
</P></PRE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -