INT 13H
This article needs additional citations for verification. (September 2010) |
INT 13h is shorthand for BIOS interrupt call 13hex, the 20th interrupt vector in an x86-based (IBM PC-descended) computer system. The BIOS typically sets up a real mode interrupt handler at this vector that provides sector-based hard disk and floppy disk read and write services using cylinder-head-sector (CHS) addressing. PC BIOSes also include INT 13h extension functions, originated by IBM and Microsoft in 1992, that provide those same disk access services using 64-bit LBA addressing; with minor additions, these were quasi-standardized by Phoenix Technologies and others as the EDD (Enhanced Disk Drive) BIOS extensions.[citation needed]
Overview
[edit]All versions of MS-DOS, (including MS-DOS 7 and Windows 95) have a bug which prevents booting disk drives with 256 heads (register value 0xFF), so many modern BIOSes provide CHS translation mappings with at most 255 (0xFE) heads,[1][2] thus reducing the total addressable space to exactly 8032.5 MiB (approx 7.844 GiB).[3]
To support addressing of even larger disks, an interface known as INT 13h Extensions was introduced by IBM and Microsoft, then later re-published and slightly extended by Phoenix Technologies as part of BIOS Enhanced Disk Drive Services (EDD).[4][5]
Some cache drivers flush their buffers when detecting that DOS is bypassed by directly issuing INT 13h from applications. A dummy read via INT 13h can be used as one of several methods to force cache flushing for unknown caches (e.g. before rebooting).[1][2]
AMI BIOSes from around 1990–1991 trash word unaligned buffers. Some DOS and terminate-and-stay-resident programs clobber interrupt enabling and registers so PC DOS and MS-DOS install their own filters to prevent this.[6]
References
[edit]- ^ a b Brown, Ralf D. (2000-07-16). "Ralf Browns Interrupt List (v61 html)". Retrieved 2016-11-03.
- ^ a b Brown, Ralf D. (2000-07-16). "The x86 Interrupt List (v61 original text) archive: "inter61a.zip", subfile: "INTERRUP.B", heading: "B-1302" (INT13, 02 Read), Notes". Retrieved 2016-11-03.
- ^ Disk size limitations, The 8.4 GB limit (and others)
- ^ Stevens, Curtis (1995-01-26). "Enhanced Disk Drive Specification 1.1 -DRAFT- Phoenix Technologies, see 3.0 BIOS Extensions (registration required)" (PDF). Retrieved 2016-11-03.
- ^ Landis, Hale (1995-02-11). "BIOS Types, CHS Translation, LBA and Other Good Stuff, See BIOS Type 6 The Phoenix Enhanced Disk Drive Specification. (registration required)" (PDF). Retrieved 2016-11-03.
- ^ ctyme.com - Ralf Browns Interrupt List, Indexed html, DISK - READ SECTOR(S) INTO MEMORY
Cite error: A list-defined reference named "int13-08" is not used in the content (see the help page).
Cite error: A list-defined reference named "int13-41" is not used in the content (see the help page).
External links
[edit]- BIOS Interrupt 13h Extensions Archived 2006-02-06 at the Wayback Machine
- Ralf Brown's comprehensive Interrupt List
- Norton Guide about int 13h, ah = 00h .. 1ah Archived 2008-06-27 at the Wayback Machine