Ralf Brown's Interrupt List (aka RBIL, x86 Interrupt List, MS-DOS Interrupt List or INTER) is a comprehensive list of
interrupt
In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
s,
call
Call or Calls may refer to:
Arts, entertainment, and media Games
* Call (poker), a bet matching an opponent's
* Call, in the game of contract bridge, a bid, pass, double, or redouble in the bidding stage
Music and dance
* Call (band), from L ...
s,
hooks,
interfaces,
data structure
In computer science, a data structure is a data organization and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the relationships amo ...
s,
CMOS settings,
memory
Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembe ...
and
port
A port is a maritime facility comprising one or more wharves or loading areas, where ships load and discharge cargo and passengers. Although usually situated on a sea coast or estuary, ports can also be found far inland, such as Hamburg, Manch ...
addresses, as well as processor
opcode
In computing, an opcode (abbreviated from operation code) is an enumerated value that specifies the operation to be performed. Opcodes are employed in hardware devices such as arithmetic logic units (ALUs), central processing units (CPUs), and ...
s for
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
machines from the 1981
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the List of IBM Personal Computer models, IBM PC model line and the basis for the IBM PC compatible ''de facto'' standard. Released on ...
up to 2000 (including many
clones),
most of it still applying to
IBM PC compatibles
An IBM PC compatible is any personal computer that is hardware- and software-compatible with the IBM Personal Computer (IBM PC) and its subsequent models. Like the original IBM PC, an IBM PC–compatible computer uses an x86-based central pro ...
today. It also lists some
special function registers for the
NEC V25 and V35
microcontrollers
A microcontroller (MC, uC, or μC) or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Pro ...
.
Overview
The list covers
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s,
device driver
In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
s, and application
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
; both documented and
undocumented information including
bugs, incompatibilities, shortcomings, and workarounds, with version, locale, and date information, often at a detail level far beyond that found in the contemporary literature.
A large part of it covers
system BIOSes and internals of operating systems such as
DOS
DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
,
OS/2
OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
, and
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, as well as their interactions.
It has been a widely used resource by
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the List of IBM Personal Computer models, IBM PC model line and the basis for the IBM PC compatible ''de facto'' standard. Released on ...
system developers,
analysts,
as well as application programmers in the pre-
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
era.
Parts of the compiled information have been used for and in the creation of several books on systems programming,
some of which have also been translated into Chinese,
Japanese
and Russian.
As such the compilation has proven to be an important resource in developing various closed and open source operating systems, including
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
FreeDOS
FreeDOS (formerly PD-DOS) is a free software operating system for IBM PC compatible computers. It intends to provide a complete MS-DOS-compatible environment for running Legacy system, legacy software and supporting embedded systems. FreeDOS ca ...
.
Today it is still used as a reference to BIOS calls and to develop programs for DOS as well as other system-level software.
The project is the result of the research and collaborative effort of more than 650 listed contributors worldwide over a period of 15 years, of which about 290 provided significant information (and some 55 of them even more than once).
The original list was created in January 1985 by Janet Jack and others,
and, named "Interrupt List for MS-DOS", it was subsequently maintained and mailed to requestors on
Usenet
Usenet (), a portmanteau of User's Network, is a worldwide distributed discussion system available on computers. It was developed from the general-purpose UUCP, Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Elli ...
by
Ross M. Greenberg until 1986.
Since October 1987 it is maintained by Ralf D. Brown,
a researcher at
Carnegie Mellon University
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania, United States. The institution was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools. In 1912, it became the Carnegie Institu ...
's
Language Technologies Institute.
Information from several other interrupt listings was merged into the list in order to establish one comprehensive reference compilation. Over the years, Michael A. Shiels,
Timothy Patrick Farley, Matthias R. Paul, Robin Douglas Howard Walker, Wolfgang Lierz and Tamura Jones became major contributors to the project, providing information all over the list.
The project was also expanded to include other PC development-related information and therefore absorbed a number of independently maintained lists on PC I/O ports (by Wim Osterholt and Matthias R. Paul), BIOS CMOS memory contents (by
Atley Padgett Peterson), processor opcodes (by Alex V. Potemkin) and bugs (by Harald Feldmann).
Brown and Paul also conducted several systematic surveys on specific hard- and software details among a number of dedicated user groups in order to validate some info and to help fill some gaps in the list.
Originally, the list was distributed in an archive named INTERRUP in various compression formats as well as in the form of
diff
In computing, the utility diff is a data comparison tool that computes and displays the differences between the contents of files. Unlike edit distance notions used for other purposes, diff is line-oriented rather than character-oriented, but i ...
s. The distribution file name was changed to include a version in the form INTERnyy (with n = issue number, and yy = 2-digit release year) in 1988. In mid 1989 the distribution settled to only use
ZIP compression.
When the archive reached the size of a 360 KB
floppy
A floppy disk or floppy diskette (casually referred to as a floppy, a diskette, or a disk) is a type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined with a ...
in June 1991, the distribution split into several files following an INTERrrp.ZIP naming scheme (with rr = revision starting with 26 for version 91.3, and p = part indicator of the package starting with letter A). Officially named "MS-DOS Interrupt List" and "x86 Interrupt List" (abbreviated as "INTER") by its maintainer, the community coined the unofficial name "Ralf Brown's Interrupt List" (abbreviated as "RBIL") in the 1990s.
The publication is currently at revision 61 as of 17 July 2000 with almost 8
MB of
ASCII
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
text including close to entries plus about tables,
fully cross linked, which would result in more than 3700 pages (at 60 lines per page) of condensed information when printed. Of this, the interrupt list itself makes up some 5.5 MB for more than 2500 pages printed.
While the project is not officially abandoned and the website is still maintained (), new releases have not been forthcoming for a very long time, despite the fact that information was still pending for release even before the INTER61 release in 2000.
New releases were planned for at several times in 2001
and 2002,
but when they did not materialize, portions of the new information on DOS and PC internals provided by Paul were circulated in preliminary form in the development community for peer-review and to assist in operating system development.
See also
*
BIOS interrupt call
BIOS implementations provide interrupts that can be invoked by operating systems and application programs to use the facilities of the firmware on IBM PC compatible computers. Traditionally, BIOS calls are mainly used by DOS programs and some ot ...
*
DOS API
*
INT (x86 instruction)
INT is an assembly language instruction for x86 processors that generates a software interrupt. It takes the interrupt number formatted as a byte value.
When written in assembly language, the instruction is written like this:
:INT ''X''
wher ...
*
Malware analysis
Notes
References
External links
*
* (NB. Delorie Software's HTML-converted version of INTER61.)
* {{cite web , title=Ralf Brown's Interrupt List: Indexed HTML Version - Release 61: A Gift to DOS Programmers , editor-first=Marc , editor-last=Perkel , editor-link=Marc Perkel , date=2000-07-17 , version=61 , url=http://www.ctyme.com/rbrown.htm , access-date=2017-08-24 , url-status=dead , archive-url=https://web.archive.org/web/20170824130835/http://www.ctyme.com/rbrown.htm , archive-date=2017-08-24 (NB. Computer Tyme's HTML-converted version of INTER61.)
Interrupts
x86 architecture
IBM PC compatibles
History of computing