Ralf Brown's Interrupt List

From Wikipedia, the free encyclopedia
  (Redirected from RBIL)
Jump to: navigation, search

Ralf Brown's Interrupt List (aka RBIL, x86 Interrupt List, MS-DOS Interrupt List or INTER) is a comprehensive list of interrupts, calls, hooks, interfaces, data structures, CMOS settings, memory and port addresses, as well as processor opcodes and special function registers for x86 machines (including many clones) from the very start of the PC era in 1981 up into the year 2000,[1][2][nb 1] most of it still applying to PCs today.

Overview[edit]

The list covers operating systems, device drivers, and application software; 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.[3][4][5] A large part of it covers system BIOSes and internals of operating systems such as DOS, OS/2, and Windows, as well as their interactions.[3][6]

It has been a widely used resource by IBM PC system developers[7][4][5] as well as application programmers in the pre-Windows era.[3][6] Parts of the compiled information have been used for and in the creation of various books on systems programming.[3][6][8][9][10] As such it has proven to be an important resource in developing various closed and open source operating systems, including Linux and FreeDOS.[11] 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).[1] The original list was created in January 1985 by Janet Jack and others,[12] and, named "Interrupt List for MS-DOS", it was subsequently maintained and mailed to requestors on Usenet by Ross M. Greenberg until 1986.[13][14][15] Since October 1987 it is maintained by Ralf D. Brown,[16] a researcher at Carnegie Mellon University's Language Technologies Institute.[3][6][17] In order to establish one comprehensive reference information from several other compilations was merged into the list. Over the years, Michael A. Shiels, Tim Farley, Matthias Paul, Robin Walker, Wolfgang Lierz and Tamura Jones became major contributors to the project, providing information all over the list.[1] 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 Paul), BIOS CMOS memory contents (by Padgett Peterson), processor opcodes (by Alex V. Potemkin) and bugs (by Harald Feldmann).[1][nb 1] 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.[18][19]

Originally, the list was distributed in an archive named INTERRUP in various compression formats as well as in form of diffs. 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.[20] When the archive reached the size of a 360 KB floppy in June 1991, the distribution split into several files following a 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 text including close to 9600 entries plus about 5400 tables,[1] 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.[nb 1]

While the project is not officially abandoned and the website is still maintained (as of 2017), 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.[21] New releases were planned for at several times in 2001[22][23] and 2002,[24][25][26][19] 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.[23][27][28][29][30][31][32][19][33][34][35]


See also[edit]

Notes[edit]

  1. ^ a b c Contents of INTER release 61 (as formatted ASCII text):
    INTERRUP.LST  5.700.679 bytes,  151.173 lines
    FARCALL.LST      81.446 bytes,    2.178 lines
    MEMORY.LST      144.149 bytes,    3.606 lines
    PORTS.LST       879.133 bytes,   23.893 lines
    CMOS.LST         77.175 bytes,    2.015 lines
    I2C.LST         141.061 bytes,    3.563 lines
    OPCODES.LST     624.174 bytes,   33.936 lines
    MSR.LST          81.345 bytes,    2.190 lines
    SMM.LST           7.939 bytes,      291 lines
    86BUGS.LST      119.004 bytes,    3.004 lines
    
                  7.856.105 bytes,  225.849 lines
    

References[edit]

  1. ^ a b c d e Brown, Ralf D., ed. (2002-12-29) [2000-07-17, 1985]. "The x86 Interrupt List" (61 ed.). Archived from the original on 2017-08-22. Retrieved 2011-10-14.  [1][2][3][4][5][6][7]
  2. ^ Stiller, Andreas; Paul, Matthias (1996-05-12). "Prozessorgeflüster". c't – magazin für computertechnik. Trends & News (in German). Heise Verlag. Archived from the original on 2017-08-28. Retrieved 2017-08-28. 
  3. ^ a b c d e Schulman, Andrew; Brown, Ralf D.; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994). Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1 (2 ed.). Addison Wesley. ISBN 978-0-201-63287-3.  (NB. This includes a repackaged version of INTER36.)
  4. ^ a b Vias, John P., SNOOPER documentation (SNOOPER.DOC), 1.07, An enormous listing of DOS and BIOS interrupt calls, many undocumented and program-specific. Quite simply, some of Snooper's reports wouldn't be there without it. Very useful in that it reports bugs and incompatibilities books rarely mention. And it's free! 
  5. ^ a b Davis, Robert Curtis, TBONES07.DOC, Ralf Brown maintains an astounding file which is chock-full of detailed, absolutely-indispensable information for DOS programmers on Hardware, BIOS, DOS, and other interrupts. […] You should not be without this file, which is widely-known as "Ralf Brown's Interrupt List". Ask about it. You will find it." 
  6. ^ a b c d Schulman, Andrew; Michels, Raymond J.; Kyle, Jim; Paterson, Tim; Maxey, David; Brown, Ralf D. (1990). Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures (1 ed.). Addison Wesley. ISBN 978-0-201-57064-9.  (NB. Contains a hypertext version of INTER490 aka INTER22.)
  7. ^ "unknown". Turbo Technix - The Borland Language Journal. 1 (5): 157. July–August 1988. A cornucopia of descriptions of interrupt and function calls on the IBM PC. A great thing to have on your hard disk if you don't have a Ray Duncan or Peter Norton book handy.  (NB. About the 1988-01-30 version of the interrupt list.)
  8. ^ Brown, Ralf D.; Kyle, Jim (January 1994). PC Interrupts: A Programmer's Reference to BIOS, DOS, and Third-Party Calls (2 ed.). Addison Wesley. ISBN 0-201-62485-0.  (NB. This corresponds to the non-networking portions of INTER36 with some additions from INTER37.)
  9. ^ Brown, Ralf D. (March 1994). Network Interrupts: A Programmer's Reference to Network APIs (1st ed.). Addison Wesley. ISBN 0-201-62644-6.  (NB. This corresponds to the networking portions of INTER37 with some additions from INTER38.)
  10. ^ Brown, Ralf D.; Kyle, Jim (1994-11-01). Uninterrupted Interrupts: A programmer's CD-ROM reference to network APIs and to BIOS, DOS, and third-party calls. Addison Wesley. ISBN 0-201-40966-6. ISBN 9-780201-409666, ISBN 0-201-98597-7, ISBN 0-201-94603-3, ISBN 0-201-98595-0.  (NB. The CD-ROM contains the full text of both "PC Interrupts" (second edition) and "Network Interrupts", updated to include information added through INTER42.)
  11. ^ Hall, Jim (2002-03-25). "The past, present, and future of the FreeDOS Project". Archived from the original on 2017-08-22. Retrieved 2015-01-23. 
  12. ^ Jack, Janet; Weaver Jr., John; Cooper, John; Gilbrech, Skip; Kyle, Jim; Jack, Bob (April 1985) [January 1985]. "Interrupt Structure". Archived from the original on 2017-08-24. Retrieved 2017-08-24. 
  13. ^ Greenberg, Ross M. (1985-07-30). "List of DOS Interrupts (Interrupt List for MS-DOS (2.xx only - With some notes on DOS 3.xx))". net.micro.pc. Archived from the original on 2017-09-04. Retrieved 2017-09-04. 
  14. ^ Greenberg, Ross M. (1985-07-30). "New DOS Interrupt List Posted". net.micro.pc. Archived from the original on 2017-09-04. Retrieved 2017-09-04. 
  15. ^ Greenberg, Ross M. (1986-03-10). "Re: Help with SWITCHAR". net.micro.pc. Archived from the original on 2017-09-04. Retrieved 2017-09-04. 
  16. ^ Brown, Ralf D., ed. (November 1987) [October 1987]. "Interrupt List (INTERRUP.TXT)". Archived from the original on 2017-09-01. Retrieved 2017-09-01. 
  17. ^ Brown, Ralf D. (2008-04-04). "Ralf Brown's Home Page". Archived from the original on 2017-08-22. Retrieved 2011-10-14. 
  18. ^ Brown, Ralf D. (1989-04-07). "Call for Information". comp.sys.ibm.pc. Archived from the original on 2017-09-04. Retrieved 2017-09-04. 
  19. ^ a b c Paul, Matthias (2002-06-30). "Identifying various IBM machines for RBIL". comp.sys.ibm.ps2.hardware. Archived from the original on 2017-09-04. Retrieved 2017-09-04. 
  20. ^ Brown, Ralf D. (1989-04-30). "Interrupt list diffs INTERRUP.1ST v89.1 -> v89.2". Archived from the original on 2017-09-01. Retrieved 2017-09-01. 
  21. ^ Paul, Matthias (2002-07-01). "Re: Tastatur-Problem". de.comp.lang.assembler.x86 (in German). Archived from the original on 2017-09-04. Retrieved 2017-09-04. 
  22. ^ Paul, Matthias (2001-05-27). "Re: A real or a RAM disk?". fd-dev. Topica. Archived from the original on 2017-09-03. Retrieved 2017-09-03. 
  23. ^ a b Paul, Matthias (2001-10-25). "Re: Change \ to / in DOS". alt.msdos.programmer. Archived from the original on 2017-09-03. Retrieved 2017-09-03. 
  24. ^ Paul, Matthias (2002-02-19). "[fd-dev] FYI: RBIL62 schedule / Contributing to Ralf Brown's Interrupt List". freedos-dev. Archived from the original on 2017-09-03. Retrieved 2017-09-03.  [8]
  25. ^ Paul, Matthias (2002-05-15). "CP/M-86 info and ancient PC hardware stuff for RBIL62?". comp.os.cpm. Archived from the original on 2017-09-03. Retrieved 2017-09-03. 
  26. ^ Paul, Matthias (2002-10-05). "Re: Remote filesystem implementation in DOS". comp.os.msdos.programmer. Archived from the original on 2017-09-03. Retrieved 2017-09-03. 
  27. ^ Paul, Matthias (2001-08-18). "Re: [fd-dev] On GRAFTABL and DISPLAY.SYS (Was: Changing codepages in FreeDOS)". freedos-dev. Archived from the original on 2017-09-04. Retrieved 2017-09-04. 
  28. ^ Paul, Matthias (2002-09-06). "Re: Reading Ctrl, Alt and Shifts.." alt.lang.asm. Archived from the original on 2017-09-03. Retrieved 2017-09-03. 
  29. ^ Paul, Matthias (2002-08-13). "Re: Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird". de.comp.lang.assembler.x86 (in German). Archived from the original on 2017-09-03. Retrieved 2017-09-03. 
  30. ^ Paul, Matthias (2002-10-07). "Re: Run a COM file". alt.msdos.programmer. Archived from the original on 2017-09-03. Retrieved 2017-09-03. 
  31. ^ Paul, Matthias (2002-10-07). "Re: masm .com (PSP) related trouble". alt.lang.asm. Archived from the original on 2017-09-03. Retrieved 2017-09-03. 
  32. ^ Paul, Matthias (2002-10-09). "Re: COM style files larger than 64 Kb?". alt.msdos.programmer. Archived from the original on 2017-09-03. Retrieved 2017-09-03. 
  33. ^ Paul, Matthias (2002-05-14). "Re: Probleme mit INT 9h". de.comp.lang.assembler.x86 (in German). Archived from the original on 2017-09-04. Retrieved 2017-09-04. 
  34. ^ Paul, Matthias (2002-11-21). "Re: [fd-dev] Codepage IDs". freedos-dev. Archived from the original on 2017-09-04. Retrieved 2017-09-04. 
  35. ^ Paul, Matthias (2002-09-05). "Re: [fd-dev] NLS and lowercase". freedos-dev. Archived from the original on 2017-09-04. Retrieved 2017-09-04. 


External links[edit]