Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Ralf Brown's Interrupt List (Part 1,2) - int 19 - disk boot http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 19 - DISK BOOT
   causes reboot of disk system (no memory test performed, interrupt vectors
   preserved).  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.

   Usually, the BIOS will try to read sector 1, head 0, track 0 from drive A:
   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.

Notes:  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 (the three bytes at
          offset 2Ch in the INT 19 handler's segment contain the linear address
          of the first free extended memory).

Format of hard disk master boot sector:
Offset  Size    Description
 00h 446 BYTEs  Master bootstrap loader code
1BEh 16 BYTEs   partition record for partition 1 (see below)
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

Format of partition record:
Offset  Size    Description
 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 (see below)
 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

Values for operating system indicator:
 00h empty
 01h DOS 12-bit FAT
 02h XENIX file system
 03h XENIX /usr file system (obsolete???)
 04h DOS 16-bit FAT
 05h DOS 3.3+ extended partition
 06h DOS Large File System
 07h QNX
 08h AIX bootable partition
 09h AIX data partition
 51h Disk Manager
 52h CP/M ???
 56h GB ???
 61h SpeedStor
 63h SysV/386
 64h Novell NetWare
 75h PC/IX
 80h Minix v1.3 and below
 81h Minix v1.5+
 DBh CP/M
 E1h SpeedStor 12-bit FAT extended partition
 E4h SpeedStor 16-bit FAT extended partition
 FFh BBT ???

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson