home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / doc / techref / kapitel.002 < prev    next >
Text File  |  1993-03-01  |  83KB  |  1,282 lines

  1.  
  2.      ** technische Referenz für Programmierer für MSDOS und den IBM PC **
  3.  ─────────────────────────┤ eingetragene Anwenderversion ├───────────────────────────
  4.                          nicht für den allgemeinen Vertrieb 
  5.                     Urheberrecht (c) 1987, 1990 Dave Williams
  6.               Deutsche Übersetzung Urheberrecht (c) 1990 Klaus Overhage
  7.          Änderungen und Erweiterungen Urheberrecht (c) 1990 Klaus Overhage
  8.  
  9.  
  10.                              K A P I T E L      Z W E I
  11.  
  12.  
  13.  CPU Port Zuordnungen, Systemspeicherabbildung, BIOS Datenbereich,
  14.  Interrupts 00h bis 09h
  15.  
  16.  
  17.  
  18.                                 I N H A L T E 
  19.  
  20. Einführung ........................................................... 2**1
  21. Systemspeicherabbildung .............................................. 2**2
  22. PC Port Zuordnung .................................................... 2**3
  23. reservierte Speicherbereiche ......................................... 2**4
  24.         Interruptvektor-Tabelle ......................................   "
  25.         BIOS Datenbereich ............................................   "
  26.         DOS Datenbereich .............................................   "
  27.         BASIC Datenbereich ...........................................   "
  28.         EGA Kennung ..................................................   "
  29.         Modell und BIOS ID ...........................................   "
  30. die IBM PC System Interrupts (Übersicht) ............................. 2**5
  31.         grafische Schnellübersicht 00h-0FFh ..........................   "
  32. die IBM-PC System Interrupts (ausführlich) ........................... 2**6
  33.         00h-0Fh ......................................................   "
  34.  
  35.  
  36.  
  37. Einführung ........................................................... 2**1
  38.  
  39. Für die Übereinstimmung in dieser Referenz, sind alle Adressen und Offsets in
  40. Hexadezimal, (falls nicht anders angegeben). Alle hexadezimale Zahlen sind mit einer
  41. führenden Null versehen, wenn sie mit einem alphabetischen Zeichen beginnen,
  42. und enden mit dem Kleinbuchstabe H(h). Die Formate entsprechen der allgemeinen
  43. Verwendung.
  44.  
  45.  
  46.  
  47. Systemspeicherabbildung .............................................. 2**2
  48.  
  49. Der IBM PC behandelt seinen Adreßbereich als 64k Segmente, aufgeteilt in
  50. Einzelsegmente zu 16k und dann ferner wie notwendig.
  51.  
  52.  ┌──────┬─────┬─────┬──────────────────────────────────────────────────────────┐
  53.  │ Start│Start│Ende │                                                          │
  54.  │ addr.│addr.│addr.│                      Verwendung                          │
  55.  │ (Dec)│   (Hex)   │                                                          │
  56.  ├──────┴───────────┴──────────────────────────────────────────────────────────┤
  57.  │ *640k RAM Area*                                                             │
  58.  ├──────┬───────────┬──────────────────────────────────────────────────────────┤
  59.  │ 0k   │           │ Start vom RAM, erstes K ist Interruptvektor-Tabelle      │
  60.  │ 16k  │00000-03FFF│ PC-0 Systemboard RAM Ende                                │
  61.  │ 32k  │04000-07FFF│                                                          │
  62.  │ 48k  │08000-0BFFF│                                                          │
  63.  ├──────┼───────────┼──────────────────────────────────────────────────────────┤
  64.  │ 64k  │10000-13FFF│ PC-1 Systemboard RAM Ende                                │
  65.  │ 80k  │14000-17FFF│                                                          │
  66.  │ 96k  │18000-1BFFF│                                                          │
  67.  │ 112k │1C000-1FFFF│                                                          │
  68.  ├──────┼───────────┼──────────────────────────────────────────────────────────┤
  69.  │ 128k │20000-23FFF│                                                          │
  70.  │ 144k │24000-27FFF│                                                          │
  71.  │ 160k │28000-2BFFF│                                                          │
  72.  │ 176k │2C000-2FFFF│                                                          │
  73.  ├──────┼───────────┼──────────────────────────────────────────────────────────┤
  74.  │ 192k │30000-33FFF│                                                          │
  75.  │ 208k │34000-37FFF│                                                          │
  76.  │ 224k │38000-3BFFF│                                                          │
  77.  │ 240k │3C000-3FFFF│                                                          │
  78.  ├──────┼───────────┼──────────────────────────────────────────────────────────┤
  79.  │ 256k │40000-43FFF│ PC-2 Systemboard RAM Ende                                │
  80.  │ 272k │44000-47FFF│                                                          │
  81.  │ 288k │48000-4BFFF│                                                          │
  82.  │ 304k │4C000-4FFFF│                                                          │
  83.  ├──────┼───────────┼──────────────────────────────────────────────────────────┤
  84.  │ 320k │50000-53FFF│                                                          │
  85.  │ 336k │54000-57FFF│                                                          │
  86.  │ 352k │58000-5BFFF│                                                          │
  87.  │ 368k │5C000-5FFFF│                                                          │
  88.  ├──────┼───────────┼──────────────────────────────────────────────────────────┤
  89.  │ 384k │60000-63FFF│                                                          │
  90.  │ 400k │64000-67FFF│                                                          │
  91.  │ 416k │68000-6BFFF│                                                          │
  92.  │ 432k │6C000-6FFFF│                                                          │
  93.  ├──────┼───────────┼──────────────────────────────────────────────────────────┤
  94.  │ 448k │70000-73FFF│                                                          │
  95.  │ 464k │74000-77FFF│                                                          │
  96.  │ 480k │78000-7BFFF│                                                          │
  97.  │ 496k │7C000-7FFFF│                                                          │
  98.  ├──────┼───────────┼──────────────────────────────────────────────────────────┤
  99.  │ 512k │80000-83FFF│                                                          │
  100.  │ 528k │84000-87FFF│                                                          │
  101.  │ 544k │88000-8BFFF│ das original IBM PC-1 BIOS begrenzt den Speicher bei 544k│
  102.  │ 560k │8C000-8FFFF│                                                          │
  103.  ├──────┼───────────┼──────────────────────────────────────────────────────────┤
  104.  │ 576k │90000-93FFF│                                                          │
  105.  │ 592k │94000-97FFF│                                                          │
  106.  │ 609k │98000-9BFFF│                                                          │
  107.  │ 624k │9C000-9FFFF│ bis 640k (oberstes Ende vom RAM Adreßbereich)            │
  108.  ├──────┴───────────┴──────────────────────────────────────────────────────────┤
  109.  │ A0000 ***** 64k ***** EGA/VGA Startadresse                                  │
  110.  │ A0000 ***** 64k ***** Toshiba 1000 DOS ROM (MS-DOS 2. 11V)                  │
  111.  ├──────┬───────────┬──────────────────────────────────────────────────────────┤
  112.  │ 640k │A0000-A95B0│ MCGA 320x200 256 Farben Bildschirmpuffer                 │
  113.  │      │     -AF8C0│ MCGA 640x480 2 Farben Bildschirmpuffer                   │
  114.  │      │     -A3FFF│                                                          │
  115.  │ 656k │A4000-A7FFF│                                                          │
  116.  │ 672k │A8000-ABFFF│ dieses 64k Segment kann für ein zusammenhängendes DOS RAM│
  117.  │ 688k │AC000-AFFFF│ mit geeigneter Hardware und Software benutzt werden      │
  118.  ├──────┴───────────┴──────────────────────────────────────────────────────────┤
  119.  │ B0000 ***** 64k ***** Mono und CGA Adresse                                  │
  120.  ├──────┬───────────┬──────────────────────────────────────────────────────────┤
  121.  │ 704k │B0000-B3FFF│4k Monochrome Anzeige |der PCjr und die ersten Tandy 1000 │
  122.  │ 720k │B4000-B7FFF│                      |leiten das BIOS zum direkten       │
  123.  │ 736k │B8000-BBFFF│ 16k CGA benutzt      |Schreiben in den B8 Bereich zum    │
  124.  │ 756k │BC000-BFFFF│                      |Video Gate Bereich und reserv. RAM │
  125.  ├──────┴───────────┴──────────────────────────────────────────────────────────┤
  126.  │ C0000 ***** 64k *************** ROM Erweiterung                             │
  127.  ├──────┬───────────┬──────────────────────────────────────────────────────────┤
  128.  │ 768k │C0000-C3FFF│ 16k EGA BIOS C000:001E EGA BIOS Kennung (Buchstaben IBM) │
  129.  │ 784k │C4000-C5FFF│                                                          │
  130.  │      │C6000-C63FF│ 256 Bytes Professional Graphics Display Kommunikationsb. │
  131.  │      │C6400-C7FFF│                                                          │
  132.  │ 800k │C8000-CBFFF│ 16k Festplatte Steuereinheit BIOS, Laufwerk 0 vorgegeben │
  133.  │      │CA000      │ einige zweite Diskette (High Density) BIOS Steuereinheit │
  134.  │ 816k │CC000-CDFFF│ 8k IBM PC Netzwerk NETBIOS                               │
  135.  │      │CE000-CFFFF│                                                          │
  136.  ├──────┴───────────┴──────────────────────────────────────────────────────────┤
  137.  │ D0000 ***** 64k ***** ROM Erweiterung                                       │
  138.  ├──────┬───────────┬──────────────────────────────────────────────────────────┤
  139.  │ 832k │D0000-D7FFF│ 32k IBM Cluster Adapter | PCjr erster ROM Einschub       │
  140.  │      │DA000      │ Sprachkommunikation     | Adressenbereich.               │
  141.  │ 848k │D4000-D7FFF│                         | allgemein Erweiterungsspeicher │
  142.  │ 864k │D8000-DBFFF│                         | Seitenüberlagerungsbereich.    │
  143.  │ 880k │DC000-DFFFF│                         |                                │
  144.  │      │DE000      │ TI Pro vorgegebener Bildschirmpuffer, 4k                 │
  145.  ├──────┴───────────┴──────────────────────────────────────────────────────────┤
  146.  │ E0000 ***** 64k ***** ROM Erweiterung                                       │
  147.  ├──────┬───────────┬──────────────────────────────────────────────────────────┤
  148.  │ 896k │E0000-E3FFF│                         | PCjr zweiter ROM Einschub      │
  149.  │ 912k │E4000-E7FFF│                         | Adressenbereich                │
  150.  │ 928k │E8000-EBFFF│                         |                                │
  151.  │ 944k │EC000-EFFFF│                         | freier ROM Sockel beim AT      │
  152.  ├──────┴───────────┴──────────────────────────────────────────────────────────┤
  153.  │ F0000 ***** 64k ***** System                                                │
  154.  ├──────┬───────────┬──────────────────────────────────────────────────────────┤
  155.  │ 960k │F0000-F3FFF│ von IBM reserviert        | Kassette Adressenbereich     │
  156.  │ 976k │F4000-     │                           | (PCjr Kassette)              │
  157.  │      │F6000      │ Anfang ROM BASIC          | BASIC)                       │
  158.  │ 992k │F8000-FB000│                           |                              │
  159.  │ 1008k│FC000-FFFFF│ ROM BASIC und original    |                              │
  160.  │      │           │ BIOS(Kompatibilitäts BIOS |                              │
  161.  │      │           │ in PS/2)                  |                              │
  162.  │ 1024k│      FFFFF│ Ende des Speichers (1024k) für 8088 Maschinen            │
  163.  ├──────┼───────────┴─┬────────────────────────────────────────────────────────┤
  164.  │ 384k │100000-15FFFF│80286/AT Erweiterungsspeicher Bereich,1Mb Systemplatine │
  165.  │ 15Mb │100000-FFFFFF│80286/AT Erweiterungsspeicher Adreßbereich              │
  166.  │ 15Mb │160000-FDFFFF│Mikro Kanal RAM Erweiterung (15Mb Erweiterungsspeicher) │
  167.  │ 128k │FE0000-FFFFFF│Systemboard ROM                 (PS/2 erweitertes BIOS) │
  168.  └──────┴─────────────┴────────────────────────────────────────────────────────┘
  169.  
  170. Beachten sie daß das ROM BIOS einen doppelten Adreßbereich hat, welcher
  171. veranlässt das beide am Ende von der 1 Megabyte im echtem Modus und am Ende
  172. der 16 Megabyte des geschützten Modus erscheinen. Die Adressen von 0E0000
  173. bis 0FFFFF sind gleich wie 0FE0000 bis 0FFFFFF. Dies ist notwendig wegen
  174. der Unterschiede in der Speicheradressierung zwischen echtem und
  175. geschützten Modus.
  176.  
  177.  
  178.  
  179. PC Port Zuordnung .................................................... 2**3
  180.  
  181.  
  182. D sind allgemeine Funktionen im IBM Bereich. Der PCjr, PC-AT, PC Convertible
  183. und PS/2 (beide Busse) haben Erweiterungen. Im gewissen Rahmen, (vom AT und
  184. der PS/2 Reihe ignoriert) duplizieren, oder teilen die Anschlüsse willkürlich neu
  185. zu. Falls Programme wesentliche Portaddressen zur Video oder Systemsteuerung
  186. benutzen, sollte man feststellen auf welcher Maschine es läuft, um die
  187. richtigen Portadressen zu benutzen.
  188.  
  189.  Hex Adresse                  Funktion                       Modelle
  190.                                                    PCjr|PC|XT|AT|CVT|M30|PS2
  191.  
  192.  0000-000F           8237 DMA Steuereinheit PC          PC
  193.  0010-001F           8237 DMA Steuereinheit AT PS2            AT
  194.  0020-0027           8259A Interrupt Steuereinheit                       PS2
  195.  0020-002F           IOSGA Interrupt Funktion PS2                        PS2
  196.  0020-003F           8259A Interrupt Steuereinheit (AT)
  197.  0020-0021           Interrupt Steuereinheit 1, 8259A   PC    AT         PS2
  198.  0040-0043           programmierbarer Zeit-Zähler 8253  PC
  199.  0040-0047           programmierbare Zeit-Zähler                         PS2
  200.  0040-005F           8253-5 programmierbare Zeit-Zähler       AT
  201.                      Anmerkung 1) 0041 war auffrischen des Speichers in PCs.
  202.                                   Wird nicht benutzt bei PS/2.
  203.                                2) einige der ersten 80386 Maschinen benutzen
  204.                                   statisches RAM und benutzen dies nicht, d.h.
  205.                                   Der PCjr frischt den vertikalen Strahlrück-
  206.                                   laufsignal des Bildschirms auf.
  207.  0060-0063           Tastatur Steuereinheit 8255A       PC
  208.  0060-006F           8042 Tastatur Steuereinheit              AT
  209.  0060                IOSGA Tastatureingabe Port                          PS2
  210.  0061                Lautsprecher                  PCjr PC XT AT CVT
  211.  0061                IOSGA Lautsprechersteuerung                     M30 PS2
  212.  0061                auf einige Nachbauten, Steuerung Turbo Modus über Bit 2
  213.  0061                Toshiba 1000 - Systembefehl
  214.  0062                IOSGA Ausstattungskontrolle                     M30 PS2
  215.  0062                Toshiba 1000 - Systemzustand, Port C
  216.  0063                SSGA, nicht dokumentiert                            PS2
  217.  0063                Toshiba 1000 - Modus einstellen
  218.  0064                Tastatur Hilfseinheit PS2
  219.  0065-006A           SSGA, nicht dokumentiert PS2
  220.  006B                SSGA, RAM aktivieren / remap PS2
  221.  006C-006F           SSGA, nicht dokumentiert                            PS2
  222.  0070                AT CMOS schreiben interne Register
  223.  0071                AT CMOS lesen interne Register
  224.  0070-0071           CMOS Echtzeituhr, NMI maskieren                     PS2
  225.  0070-007F           CMOS Echtzeituhr, NMI maskieren          AT
  226.  0074-0076           reserviert                                          PS2
  227.  0800-008F           SSGA DMA Seitenregister                             PS2
  228.  0080-009F           DMA Seitenregister, 74LS612              AT
  229.  0090                zentrale Vermittlungssteuerung Port (Mikro Kanal)
  230.  0091                Rückmeldung gewählte Karte (Mikro Kanal)
  231.  0092                Systemsteuerung Port A (Mikro Kanal)
  232.  0093                reserviert (Mikro Kanal)
  233.  0094                Systemboard Einstellung (Mikro Kanal)
  234.  0096                POS "CD Einstellung" Selektor (Mikro Kanal)
  235.  00A0-00A1           Interrupt Steuereinheit 2, 8259A         AT         PS2
  236.  00A0-00AF           IOSGA NMI Maskenregister                            PS2
  237.  00B0-00BF           Echtzeituhr/Kalender, (nicht dokumentiert)          PS2
  238.  00C0-00DF           reserviert                    PCjr PC XT AT CVT M30
  239.  00C0-00CF           DOS ROM Register, Toshiba 1000
  240.  00D0-00EF           Spezialregister, Toshiba 1000
  241.       00C0           0C1 Tastenregister, Toshiba 1000
  242.       00C1           Tastatur Senderegister, Toshiba 1000
  243.       00C2           Tastatur Empfangsregister, Toshiba 1000
  244.       00C3           Tastatur Statusregister, Toshiba 1000
  245.       00C8           DOS ROM Seite Register, Toshiba 1000
  246.       00E0           CPU Geschwindigkeitssteuerung, Toshiba 1000
  247.       00E1           Tastatur Zustand/0E2 Tastenregister, Toshiba 1000
  248.       00E2           Arbeitsregister, Toshiba 1000
  249.       00E3           0E4 Tastenregister, Toshiba 1000
  250.       00E4           Systemsteuerungsregister 0, Toshiba 1000
  251.       00E5           0E6 Tastenregister, Toshiba 1000
  252.       00E6           Systemsteuerungsregister 1, Toshiba 1000
  253.       00EE           EMS Einheit Index, Toshiba 1000
  254.       00EF           EMS Einheit Daten, Toshiba 1000
  255.  00C0-00DF           DMA Steuereinheit 2, 8237A-5             AT         PS2
  256.  00E0-00EF           Echtzeituhr/Kalender (nicht dokumentiert)       M30 PS2
  257.  00F0-00FF           PS/2 Arithmetikprozessor I/O (Modell 50+)(Diskette IO beim PCjr)
  258.  0100-0101           PS/2 POS Adapter ID Auskunft (Mikro Kanal)
  259.  0102-0107           PS/2 POS Adapter Ausstattungsauskunft (Mikro Kanal)
  260.  01F0-01F8           Festplatte                               AT         PS2
  261.  0200-0201           Spielsteuerungsadapter (Joystick)
  262.  0200-020F           Spielsteuerungseinheit             PC    AT
  263.  0208-020F           Toshiba 1000 - EMS Einheit I/O #1
  264.  020C-020D           von IBM reserviert
  265.  0210-0217           Erweiterungsbox (PC, XT)
  266.  0218-021F           Toshiba 1000 - EMS Einheit I/O #2
  267.  021F                von IBM reserviert
  268.  0258-025F           Toshiba 1000 - EMS Einheit I/O #3
  269.  0258-0259           LIM EMS 3.1 (nicht definiert in 3.2+)
  270.  0268-026F           Toshiba 1000 - EMS Einheit I/O #4
  271.  0278-027F           paralleler Druckeranschluß 2             AT
  272.  0278-027B           paralleler Druckeranschluß 3                        PS2
  273.  02A2                Taktgeber Chip in den ersten Sperry PCs
  274.  02A8-02AF           Toshiba 1000 - EMS Einheit I/O #5
  275.  02B8-02BF           Toshiba 1000 - EMS Einheit I/O #6
  276.  02B0-02DF           EGA (alternativ)                   PC    AT
  277.  02C0-02DF           Toshiba 1000 - Echtzeituhr
  278.  02E1                GPIB (Adapter 0)                         AT
  279.  02E2-02E3           Datenerfassung (Adapter 0)               AT
  280.  02E8                "Industriestandard" COM4
  281.  02E8-02EF           Toshiba 1000 - EMS Einheit I/O #7
  282.  02F8-02FF           serielle Kommunikationstechnik (COM2) PC AT         PS2
  283.  0300-031F           Prototypenkarte                    PC    AT
  284.  0300-031F           Leading Edge Modell D Taktgeber    --------------------
  285.  0320-032F           Festplattensteuereinheit           PC
  286.  0320                Perstor erste HD Steuereinheit     --------------------
  287.  0324                Perstor zweite HD Steuereinheit    --------------------
  288.  0340                Sony CD-ROM                        --------------------
  289.  0348-0357           DCA 3278
  290.  0360-0367           PC Netzwerk (niedrige Adresse)
  291.  0368-036F           PC Netzwerk (hohe Adresse)               AT
  292.  0370                Colorado Speicher externes Bandlaufwerk Steuerungsport
  293.                      bei einigen "zweite Steuereinheit" für Diskettenkarten
  294.  0378-037F           paralleler Druckeranschluß         PC    AT
  295.  0378-037B           paralleler Druckeranschluß                          PS2
  296.  0380-038F           SDLC, bi-synchron 2                PC    AT
  297.  0380-0389           BSC Kommunikationstechnik (alternativ)   PC
  298.  0390-0393           Cluster (Adapter 0)                PC    AT
  299.  03A0-03A9           BSC Kommunikationstechnik (erste)  PC    AT
  300.  03B0-03BF           Monochrom/paralleler Druckeradapter PC   AT
  301.  03B4-03B5           Video Untersystem                                   PS2
  302.  03BA                Video Untersystem                                   PS2
  303.  03BC-03BF           paralleler Druckeranschluß 1                        PS2
  304.  03C0-03CF           erweiteter Grafikadapter
  305.  03C0-03DA           Video Untersystem und DAC                           PS2
  306.  03DA                Video Statusregister AT&T 6300, Olivetti PC
  307.  03D0-03DF           CGA, MCGA, VGA Adaptersteuerung
  308.  03DE                Videomodus Selektorregister AT&T 6300, Olivetti PC
  309.  03E8h               "Industriestandard" COM3
  310.  03F0-03F7           Diskettensteuereinheit             PC    AT         PS2
  311.  03F0                Colorado Speicher internes Bandlaufwerk Steuerungsport
  312.  03F8-03FF           serielle Kommunikationstechnik (COM1) PC AT         PS2
  313.  06E2-06E3           Datenerfassung (Adapter 1)               AT
  314.  0790-0793           Cluster (Adapter 1)                   PC AT
  315.  0AE2-0AE3           Datenerfassung (Adapter 2)               AT
  316.  0B90-0B93           Cluster (Adapter 2)                   PC AT
  317.  0EE2-0EE3           Datenerfassung (Adapter 3)               AT
  318.  1390-1393           Cluster (Adapter 3)                   PC AT
  319.  22E1                GPIB (Adapter 1)
  320.  2390-2393           Cluster (Adapter 4)                   PC AT
  321.  4258                LIM EMS 3.1 (nicht definiert in 3.2+) ----------------
  322.  42E1                GPIB (Adapter 2)                         AT
  323.  62E1                GPIB (Adapter 3)                         AT
  324.  8258                LIM EMS 3.1 (nicht definiert in 3.2+) ----------------
  325.  82E1                GPIB (Adapter 4)                         AT
  326.  A2E1                GPIB (Adapter 5)                         AT
  327.  C258                LIM EMS 3.1 (nicht definiert in 3.2+) ----------------
  328.  C2E1                GPIB (Adapter 6)                         AT
  329.  E2E1                GPIB (Adapter 7)                         AT
  330.  
  331. Anmerkung 1) IOSGA= I/O Unterstützung Gate Array
  332.              SSGA= Systemunterstützung Gate Array
  333.           2) I/O Adressen, Hex 000 bis 0FF, sind für das Systemboard reserviert.
  334.              Hex 100 bis 3FF sind verfügbar auf dem I/O Kanal.
  335.           3) Diese Adressen werden auf den Adapterkarten eingestellt.
  336.              IBM kann alle der nicht aufgeführten Adressen in der Zukunft benutzen.
  337.           4) SDLC Kommunikation und sekundäre binäre Synchrone Kommunikationstechnik
  338.              kann nicht gemeinsam benutzt werden, weil sich ihre Portadressen
  339.              überlappen.
  340.  
  341.  
  342.  
  343. Reservierte Speicherbereiche ......................................... 2**4
  344.  
  345.  ┌──────────────────────────────────────────────────────────────────────────────
  346.  │  000-3FF - 1k DOS Interruptvektor-Tabelle, 4 Byte Vektoren für ints 00h-0FFh.
  347.  │    30:00 - benutzt als Stapelbereich während POST und den Urlader Routinen.
  348.  │bis 3F:FF Dieser Stapelbereich kann durch ein Anwenderprogramm verschoben werden.
  349.  ├──────────────────────────────────────────────────────────────────────────────
  350.  │ ** der BIOS Datenbereich ** Adressen von 400h bis 4FFh
  351.  ├─────┬───────┬────────────────────────────────────────────────────────────────
  352.  │addr.│ Größe │                         Beschreibung
  353.  ├─────┼───────┼────────────────────────────────────────────────────────────────
  354.  │40:00│ Wort  │ COM1 Portadresse | diese Adressen sind auf Null gesetzt außerhalb
  355.  │40:02│ Wort  │ COM2 Portadresse | der OS/2 DOS Kompatibilitätsbox falls irgendeiner
  356.  │40:04│ Wort  │ COM3 Portadresse | der OS/2 COMxx. SYS Treiber geladen sind.
  357.  │40:06│ Wort  │ COM4 Portadresse |
  358.  │40:08│ Wort  │ LPT1 Portadresse
  359.  │40:0A│ Wort  │ LPT2 Portadresse
  360.  │40:0C│ Wort  │ LPT3 Portadresse
  361.  │40:0E│ Wort  │ LPT4 Portadresse (nicht zulässig in PS/2 Maschinen)
  362.  │40:0E│ Wort  │ PS/2 Zeiger zum erweiterten BIOS Datenbereich (1k) am oberen Ende vom RAM
  363.  │40:10│ Wort  │ Ausstattungskennzeichen (siehe int 11h)
  364.  └─────┴───────┤ Bits:
  365.                │ 0       0 kein Diskettenlaufwerk vorhanden
  366.                │         1 falls Diskettenlaufwerk vorhanden (siehe Bits 6&7)
  367.                │ 1       0 kein Arithmetikprozessor installiert
  368.                │         1 falls 80x87 installiert (nicht zulässig im PCjr)
  369.                │ 2, 3    Speicher auf Systemboard (nicht benutzt beim AT oder PS/2)
  370.                │         0, 0     16k            0, 1 32k
  371.                │         1, 0     48k            1, 1 64k
  372.                │ 4, 5    Videomodus beim Systemstart
  373.                │         0, 0 kein Videoadapter
  374.                │         0, 1 40 Spalten Farbe (beim PCjr vorgegeben)
  375.                │         1, 0 80 Spalten Farbe
  376.                │         1, 1 MDA
  377.                │ 6, 7    Anzahl Diskettenlaufwerke
  378.                │         0, 0 1 Laufwerk         0, 1 2 Laufwerke
  379.                │         1, 0 3 Laufwerke        1, 1 4 Laufwerke
  380.                │ 8       0 DMA vorhanden
  381.                │         1 DMA nicht vorhanden (PCjr, Tandy 1400, Sanyo 55x)
  382.                │ 9,A,B   Anzahl serieller Anschlüsse RS232
  383.                │ C       Spieleadapter (Joystick)
  384.                │         0 kein Spieleadapter
  385.                │         1 falls Spieleadapter vorhanden
  386.                │ D       serieller Drucker (ausschließlich PCjr)
  387.                │         0 kein Drucker
  388.                │         1 serieller Drucker vorhanden
  389.         ┌──────┘ E, F    Anzahl paralleler Drucker die installiert sind
  390.         │ Anmerkung 1) der IBM PC und AT speichert die Einstellungen vom Systemboard
  391.         └───┐          oder der CMOS RAM Einstellung (als wenn er diese vom BIOS
  392.             │ beim Power-On Selbsttest(POST) erhalten hat) an den Adressen 40:10h
  393.             │ und 40:13h. 00000001b bedeutet "AN ", 00000000b ist "AUS".
  394.  ┌─────┬────┴──┐
  395.  │40:12│ Byte  │ reserviert (PC, AT)
  396.  └─────┴───────┤ Anzahl Fehler erkannt bei Verbindung der Infrarottastatur (PCjr)
  397.  ┌─────┬───────┤ POST Zustand (Convertible)
  398.  │40:13│ Wort  │ verfügbar Speichergröße in Kbytes (minus Bildspeicher im PCjr)
  399.  ├─────┼───────┤ dies ist der Wert der beim int 12h zurückgegeben wird
  400.  │40:15│ Wort  │ reserviert
  401.  │40:17│ Byte  │ Tastaturkennzeichen Byte 0 (siehe int 9h)
  402.  └─────┴───────┤ Bit 7 Einfügemodus an        3 alt gedrückt
  403.                │     6 Capslock an            2 ctrl gedrückt
  404.                │     5 Numlock an             1 linke Umschalttaste gedrückt
  405.  ┌─────┬───────┤     4 Scrollock an           0 rechte Umschalttaste gedrückt
  406.  │40:18│ Byte  │ Tastaturkennzeichen Byte 1 (siehe int 9h)
  407.  └─────┴───────┤ Bit 7 Einfügen gedrückt      3 ctrl-numlock(Pause) umgeschaltet
  408.                │     6 Capslock gedrückt      2 PCjr Tastaturklick eingeschaltet
  409.                │     5 Numlock gedrückt       1 PCjr ctrl-alt-capslock gedrückt
  410.  ┌─────┬───────┤     4 Scrollock gedrückt     0
  411.  │40:19│ Byte  │ Speicher für alternative Tastatureingabe (wird normalerweise nicht benutzt)
  412.  │40:1A│ Wort  │ Zeiger zum Anfang des Tastaturpuffers
  413.  │40:1C│ Wort  │ Zeiger zum Ende des Tastaturpuffers
  414.  │40:1E│32bytes│ 16 2-byte Einträge für kreisförmigen Tastaturpuffer, lesen mit int 16h
  415.  │40:3E│ Byte  │ Zustand beim positionieren - falls Bit= 0, beim nächsten positionieren
  416.  └─────┴───────┤ Laufwerk kalibrieren und auf Spur 0 positionieren.
  417.                │ Bit 3    Laufwerk D          Bit 2 Laufwerk C
  418.  ┌─────┬───────┤     1    Laufwerk B          0 Laufwerk A
  419.  │40:3F│ Byte  │ Status Diskettenmotor (Bit ist gesetzt um die Bedingung anzuzeigen)
  420.  └─────┴───────┤ Bit 7   Schreibzugriff aktiv   3 Motor an (Diskette 3)
  421.                │     6                          2 Motor an (Diskette 2)
  422.                │     5                          1 B: Motor an (Diskette 1)
  423.  ┌─────┬───────┤     4                          0 A: Motor an (Diskette 0)
  424.  │40:40│ Byte  │ Zähler für Motorabschaltung
  425.  │     │       │ startet bei 37 und wird bei jedem Systemtakt um 1 vermindert.
  426.  │     │       │ Motor wird ausgeschaltet wenn der Zähler = 0 ist.
  427.  │40:41│ Byte  │ Status der letzten Diskettenoperation:
  428.  └─────┴───────┤ Bit 7 Zeitüberschreitung       3 DMA Überlauf
  429.                │     6 Positionierungsfehler    2 Sektor nicht gefunden
  430.                │     5 Fehler des Controllers   1 Adreß-Markierung nicht gefunden
  431.  ┌─────┬───────┤     4 CRC Fehler               0 unerlaubte Funktion
  432.  │40:42│7 Bytes│ Status NEC Diskettencontroller
  433.  │40:49│ Byte  │ Videosteuerung Datenbereich 1 von 0040:0049 bis 0040:0066
  434.  └─────┴───────┤ aktueller CRT Modus (Hex Wert)
  435.                │ 00h 40x25 Schwarz/Weiß   (CGA)   01h 40x25 Farbe          (CGA)
  436.                │ 02h 80x25 Schwarz/Weiß   (CGA)   03h 80x25 Farbe          (CGA)
  437.                │ 04h 320x200 Farbe        (CGA)   05h 320x200 Schwarz/Weiß (CGA)
  438.                │ 06h 640x200 Schwarz/Weiß (CGA)   07h Monochrom            (MDA)
  439.                │ erweiterte Videomodi (EGA/MCGA/VGA oder andere)
  440.                │ 08h niedr. Auflösung, 16 Farben  09h mittl. Auflösung,16 Farben
  441.                │ 0Ah hohe Auflösung, 4 Farbe      0Bh nicht benutzt
  442.                │ 0Ch mittl. Auflösung, 16 Farben  0Dh hohe Auflösung, 16 Farben
  443.  ┌─────┬───────┤ 0Eh hohe Auflösung, 4 Farben     0Fh hohe Auflösung, 64 Farben
  444.  │40:4A│ Wort  │ Anzahl Spalten auf Bildschirm, Wert ist hexadezimal
  445.  └─────┴───────┤ 20 Spalten= 14h (Videomodus 8, niedrige Aufl. 160x200 CGA Grafik)
  446.                │ 40 Spalten= 28h 
  447.  ┌─────┬───────┤ 80 Spalten= 46h
  448.  │40:4C│ Wort  │ Länge Bildschirmpuffer in Bytes
  449.  ├─────┼───────┤ (Anzahl benutzter Bytes pro Bildschirmseite, variiert mit Videomodus)
  450.  │40:4E│ Wort  │ Offsetadresse Bildschirmpuffer (aktive Seite)
  451.  │40:50│8 Worte│ Cursorposition der Seiten 1-8
  452.  └─────┴───────┤ das erste Byte eines Wortes enthält die Spalte (0-19, 39, oder 79)
  453.  ┌─────┬───────┤ der zweite Byte enthält die Zeile( 0-24)
  454.  │40:60│ Byte  │ Endzeile des Cursors (normalerweise 1)
  455.  │40:61│ Byte  │ Startzeile des Cursors (normalerweise 0)
  456.  │40:62│ Byte  │ aktuelle Bildschirmseite (0-7)
  457.  │40:63│ Wort  │ Portadresse von der 6845 CRT Steuereinheit oder gleichwertige
  458.  ├─────┼───────┤ 3B4h= Monochrom aktiv, 3D4h= Farbe aktiv
  459.  │40:65│ Byte  │ aktuelle Einstellung vom CRT Modusregister
  460.  │40:66│ Byte  │ aktuelle Farbpalette (CGA)
  461.  │40:67│5 Bytes│ temporärer Speicher für SS:SP während des Abschaltens (Kassettenschnittstelle)
  462.  │40:6C│ Wort  │ Zeitzähler niederwertiges Wort
  463.  │40:6E│ Wort  │ Zeitzähler höherwertiges Wort
  464.  │40:69│ Byte  │ HD_INSTALL (Columbia PCs) (nicht zulässig bei den meisten Nachbauten)
  465.  └─────┴───────┤ Bit 0      0 externe 8 Zoll Diskettenlaufwerke
  466.                │            1 externe 5-1/4 Zoll Diskettenlaufwerke
  467.                │     1, 2   höchste Laufwerksadresse welche für int 13 gültig ist
  468.                │            (wenn Diskettenlaufwerke von 0-3 zugewiesen sind, subtrahiere
  469.                │             3 um die Anzahl der installierten Festplatten zu bekommen)
  470.                │     4, 5 Anzahl Festplatten an der zusätzlichen Steuereinheit
  471.                │     6, 7 Anzahl Festplatten an der Steuereinheit auf Systemplatine
  472.                │         (falls Bit 6 oder 7= 1, kein Laufwerk A vorhanden und
  473.  ┌─────┬───────┤         die maximale Anzahl Diskettenlaufwerke von int 11 ist 3)
  474.  │40:70│ Byte  │ Zeit-Zähler 24 Stunden Überschreitung, 1 falls 24 Stunden überschritten
  475.  ├─────┼───────┤ sind und wird auf Null gesetzt, sobald die Zeit über int 1Ah angefordert wird.
  476.  │40:71│ Byte  │ BIOS Unterbrechnungskennzeichen (Bit 7=1 wenn CTRL-C oder CTL-BREAK gedrückt wurde)
  477.  │40:72│ Wort  │ Reset Kennzeichen
  478.  └─────┴───────┤ PCjr enthält hier 1234h hier für Warmstart sobald eine Kassette installiert ist
  479.                │ Bits 1234h= Warmstart, Speichertest wird übergangen
  480.                │ 4321h= Speicherinhalt nicht löschen (PS/2 ausschließlich)
  481.                │ 5678h= System suspendiert (Convertible)
  482.                │ 9ABCh= Hersteller Testmodus (Convertible)
  483.  ┌─────┬───────┤ ABCDh= System POST soll durchgeführt werden (Convertible)
  484.  │40:74│ Byte  │ Status der letzten Festplattenoperation; PCjr spezielle Festplattensteuerung
  485.  │40:75│ Byte  │ # angeschlossener Festplatten (0-2)    ; PCjr spezielle Festplattensteuerung
  486.  │40:76│ Byte  │ HD Kontrollbyte; temporärer Sicherungsbereich für den 6. Eintrag der Parametertabelle
  487.  │40:77│ Byte  │ Port Offset zum aktuellen HD-Adapter   ; PCjr spezielle Festplattensteuerung
  488.  │40:78│4 Bytes│ Wert der Zeitüberschreitung für LPT1, LPT2, LPT3, LPT4
  489.  │40:7C│4 Bytes│ Wert der Zeitüberschreitung für COM1, COM2, COM3, COM4 (0-0FFh sec., vorgegeben 1)
  490.  │40:80│ Wort  │ Zeiger zum Anfang des kreisförmigen Tastaturpuffers, vorgegeben 03:1E
  491.  │40:82│ Wort  │ Zeiger zum Ende des kreisförmigen Tastaturpuffers, vorgegeben 03:3E
  492.  └─────┴───────┤ Anmerkung: bei den ersten ZENITH Z183 BIOS wurde hier Null ein-
  493.  ┌─────┬───────┤ getragen und nicht berücksichtigt.
  494.  │40:84│ ....  │ Videosteuerung Datenbereich 2, von 0040:0084 bis 0040:008A
  495.  │40:84│ Byte  │ Zeilen auf dem Bildschirm minus 1 (ausschließlich EGA)
  496.  │40:84│ Byte  │ PCjr Interrupt Kennzeichen; Zeit-Zähler Kanal 0 (wird von POST benutzt)
  497.  │40:85│ Wort  │ Bytes pro Zeichen (ausschließlich EGA)
  498.  │40:85│2 Bytes│ (ausschließlich PCjr) Wiederholungsrate für Zeichen
  499.  │40:86│2 Bytes│ (ausschließlich PCjr) Verzögerungsfaktor
  500.  │40:87│ Byte  │ Statusinformationen (ausschließlich EGA)
  501.  └─────┴───────┤ Bit 0   0 Cursor-Emulation ist eingeschaltet
  502.                │         1 Cursor-Emulation ist ausgeschaltet
  503.                │     1   0 EGA mit Farbmonitor
  504.                │         1 EGA Monochrom-Monitor
  505.                │     2   0 auf vertikalen Strahlrücklauf warten (CGA eingeschaltet)
  506.                │         1 nicht auf vertikalen Strahlrücklauf warten (EGA oder MDA eingeschaltet)
  507.                │     3   0 EGA ist der aktive Adapter.
  508.                │         1 EGA ist nicht der aktive Adapter.
  509.                │     4   reserviert
  510.                │     5,6 EGA Speichergröße
  511.                │         0,0   64k
  512.                │         0,1   128k
  513.                │         1,0   192k
  514.                │         1,1   256k
  515.                │     7   0 beim Moduswechsel den Bildschirm nicht löschen
  516.                │         1 falls beim letzten Moduswechsel angegeben war,
  517.                │           das der Bildschirmpuffer nicht gelöscht werden soll.
  518.                │ Moduskombinationen:
  519.                │ bit3  bit1  Bedeutung
  520.                │   0     0   EGA mit Farbmonitor ist aktiv
  521.                │   0     1   EGA mit Monochrom-Monitor ist aktiv
  522.                │   1     0   EGA ist nicht aktiv, Monochrom-Adapter ist aktiv
  523.  ┌─────┬───────┤   1     1   EGA ist nicht aktiv, CGA ist aktiv
  524.  │40:87│ Byte  │ (ausschließlich PCjr) aktueller Fn Tastencode
  525.  ├─────┼───────┤ 80h Bit zeigt Tastencode beim drücken/loslassen an ?
  526.  │40:88│ Byte  │ Kennzeichenbits und Schalter (ausschließlich EGA) 0=AN, 1=AUS
  527.  └─────┴───────┤ Bit 0    Schalter 1
  528.                │     1    Schalter 2
  529.                │     2    Schalter 3
  530.                │     3    Schalter 4
  531.  ┌─────┬───────┤     4-7  Kennzeichenbits
  532.  │40:88│ Byte  │ (ausschließlich PCjr) spezielles Byte für Tastaturzustand
  533.  └─────┴───────┤ Bit 7 Funktionskennzeichen  3 Wiederholfunktion (0=aktiv, 1=ausgeschaltet)
  534.                │     6 Fn-B losgelassen      2 Geschwindigkeit Wiederholung (0=langsam, 1=schnell)
  535.                │     5 Fn gedrückt           1 extra Verzögerung vor Wiederholung (0=aktiv)
  536.  ┌─────┬───────┤     4 Fn sperren            0 Zeichen schreiben, Verzögerung zu Ende
  537.  │40:89│ Byte  │ (PCjr) aktueller Wert vom 6845 reg 2 (horizontale Synchronisation) von
  538.  └─────┴───────┤ ctrl-alt-cursor Routine zum Bildschirm positionieren im ROM benutzt
  539.                │  (VGA)
  540.                │ Bit 0           reserviert
  541.                │     1           Video Summing ist eingeschaltet
  542.                │     2     0     Farbbildschirm ist angeschlossen
  543.                │           1     Monochrom-Monitor ist angeschlossen
  544.                │     3     0     vorgegebene Palette wird geladen
  545.                │     4     0     8x8 Text Schrifttyp
  546.                │           1     8x16 Text Schrifttyp
  547.  ┌─────┬───────┤     5-7         reserviert
  548.  │40:8A│ Byte  │ (PCjr) CRT/CPU Seitenregister Abbildung, vorgegeben 3Fh
  549.  └─────┴───────┤ (VGA) Anzeige Monitor-Kombination. Dies ist der Wert der über
  550.                │ die Funktion 1Ah vom Video BIOS gesetzt/gelesen wird. Dieses Byte
  551.                │ enthält einen Index auf die Tabelle der Monitor-Kombinationen
  552.                │ ROM BIOS, welche die gültigen Kombinationen für ein oder
  553.                │ zwei Video Untersysteme enthält. Video Untersysteme
  554.                │ sind durch die folgenden Werte gekennzeichnet:
  555.                │ 00h kein Monitor
  556.                │ 01h MDA mit Monochrom-Monitor
  557.                │ 02h CGA mit Farbmonitor
  558.                │ 03h reserviert 
  559.                │ 04h EGA mit Farbmonitor
  560.                │ 05h EGA mit Monochrom-Monitor
  561.                │ 06h Professional Grafikmonitor
  562.                │ 07h VGA mit analogem Monochrom-Monitor
  563.                │ 08h VGA mit analogem Farbmonitor
  564.                │ 09h reserviert 
  565.                │ 0Ah MCGA mit digitalem Farbmonitor
  566.                │ 0Bh MCGA mit analogem Monochrom-Monitor
  567.                │ 0Ch MCGA mit analogem Farbmonitor
  568.  ┌─────┬───────┤ 0FFh unbekanntes Video Untersystem
  569.  │40:8B│ Byte  │ letzte Datenübertragungsrate des Diskettenlaufwerks
  570.  └─────┴───────┤ Bit 7,6 Datenübertragungsrate beim Systemstart
  571.                │         0,0 500 kb/Sek
  572.                │         0,1 300 kb/Sek
  573.                │         1,0 250 kb/Sek
  574.                │         1,1 reserviert
  575.                │     5,4 letzte ausgewählte Steprate
  576.                │     3   letzte Datenübertragungsrate die benutzt wurde
  577.                │     2   reserviert
  578.                │     1   reserviert
  579.                │     0   1 kombinierten Disketten/Festplattencontroller erkannt
  580.                │         0 XT nur Diskettencontroller (für 360kb Laufwerke) erkannt
  581.                │              Datenübertragungsraten
  582.                │     Kbits/Sek   Medium  Laufwerk    Sektoren/Spur
  583.                │        250       360k     360k             9
  584.                │        300       360k     1.2M             9
  585.                │        500       1.2M     1.2M            15
  586.                │        250       720k     720k             9
  587.                │        250       720k     1.4M             9
  588.  ┌─────┬───────┤        500       1.4M     1.4M            18
  589.  │40:8C│ Byte  │ Status der letzten Festplattenoperation
  590.  │40:8D│ Byte  │ Fehler der letzten Festplattenoperation
  591.  │40:8E│ Byte  │ Festplatten Interrupt (Bit 7= Interrupt aktiv)
  592.  │40:8 │ Byte  │ combo_card - Status von Laufwerk 0 und 1
  593.  └─────┴───────┤ Bit 7 reserviert
  594.                │     6 Laufwerkstyp für Laufwerk 1 erkannt
  595.                │     5 Laufwerk kann mehrfach Daten einstufen, Leistungsfähigkeit für Laufwerk 1
  596.                │       0 keine mehrfache Datenrate
  597.                │       1 hat mehrfache Datenrate
  598.                │     4 1 Laufwerk 1 hat 80 Spuren
  599.                │       0 Laufwerk 1 hat 40 Spuren
  600.                │     3 reserviert
  601.                │     2 Laufwerkstyp für Laufwerk 0 erkannt
  602.                │     1 Laufwerk mehrfach Daten einstufen Leistungsfähigkeit für Laufwerk 0
  603.                │       0 keine mehrfache Datenrate
  604.                │       1 hat mehrfache Datenrate
  605.                │     0 1 Laufwerk 0 hat 80 Spuren
  606.  ┌─────┬───────┤       0 Laufwerk 0 hat 40 Spuren
  607.  │40:90│4 Bytes│ festgelegtes Medium Laufwerk 0, 1, 2, 3
  608.  └─────┴───────┤ Floppy_Medium_Festlegung
  609.                │ Bit 7,6 Datenübertragungsrate
  610.                │         00 - 500 K/Sek
  611.                │         01 - 300 K/Sek
  612.                │         10 - 250 K/Sek
  613.                │         11 - reserviert
  614.                │     5   doppelte Schrittzeit verlangt
  615.                │     4   Medium/Laufwerk erkannt
  616.                │     3   reserviert
  617.                │     2-0 gegenwärtige Festlegung
  618.                │         000 360k in 360k unbestehend
  619.                │         001 360k in 1.2M unbestehend
  620.                │         010 1.2M in 1.2M unbestehend
  621.                │         011 360k in 360k bestehend
  622.                │         100 360k in 1.2M bestehend
  623.                │         101 1.2M in 1.2M bestehend
  624.                │         110 reserviert
  625.  ┌─────┬───────┤         111 keine von den aufgeführten
  626.  │40:94│2 Bytes│ aktuelle gesuchte Spur im Laufwerk 0, 1
  627.  │40:96│  Byte │ Tastaturkennzeichen Byte 3 (siehe int 9h)
  628.  │40:97│  Byte │ Tastaturkennzeichen Byte 2 (siehe int 9h)
  629.  │40:98│ dwort │ Segment:Offset Zeiger zum Benutzerkennzeichen Warten
  630.  │40:9C│ dwort │ Zeitüberschreitung in Mikrosekunden des Benutzers
  631.  │40:A0│  Byte │ Echtzeituhr Funktion Warten in Betrieb
  632.  └─────┴───────┤ Bits 7   Wartezeit läuft und hängt auf dem Kennzeichen
  633.                │      6-1 reserviert
  634.  ┌─────┬───────┤        0 int 15h, Funktion 86h (Warten) Zeit ist verstrichen
  635.  │40:A1│ Byte  │ LAN A DMA Kanal Flags
  636.  │40:A2│2 Bytes│ Status LAN A 0, 1
  637.  │40:A4│ dwort │ gesicherter Festplatten Interrupt Vektor
  638.  │40:A8│ dwort │ SAVE_PTR: EGA Zeiger zur Tabelle mit 7 Parameter in Segment:
  639.  └─────┴───────┤ Offset Format. Aufbau der Tabelle:
  640.                │ D_1 dwort Zeiger zu einer 1472 Byte großen Tabelle die 64 Video
  641.                │           Parameter enthält
  642.                │ D_2 dwort reserviert 
  643.                │ D_3 dwort reserviert 
  644.                │ D_4 dwort reserviert 
  645.                │ D_5 dwort reserviert für zukünftige Benutzung
  646.                │ D_6 dwort reserviert für zukünftige Benutzung
  647.  ┌─────┬───────┤ D_7 dwort reserviert für zukünftige Benutzung
  648.  │40:B0│2Wörter│ internationale Unterstützung (Tandy 1000 TX)
  649.  │40:B4│  Byte │ Tastatur NMI Kontrollkennzeichen (Convertible)
  650.  │40:B4│  Byte │ Monochrom-Monitor Schaltung erkannt (Tandy 1000 TX)
  651.  │     │       │ 00h nicht vorhanden      0FFh vorhanden
  652.  │40:B5│ dwort │ Kennzeichen Tastaturabschaltung unerledigt (Convertible)
  653.  │40:B5│  Byte │ erweiterte Ausstattung feststellen (5 Bits) (Tandy 1000 TX)
  654.  └─────┴───────┤ Bit 0 = 0  Laufwerk ein ist 5 ¼
  655.                │         1  Laufwerk ein ist 3 ½
  656.                │     1 = 0  Laufwerk ein ist 5 ¼
  657.                │         1  Laufwerk ein ist 3 ½
  658.                │     2 = 0  Tandy 1000 Tastatur Ausstattung
  659.                │         1  IBM Tastatur Ausstattung
  660.                │     3 = 0  CPU langsamer Modus
  661.                │         1  CPU schnell Modus
  662.                │     4 = 0  intern Video Farbe wird unterstützt
  663.                │         1  intern Video Farbe wird nicht unterstützt, externes
  664.                │            Video eingeschaltet (umgeschaltet von der Hauptplatine
  665.                │            zur Erweiterungskarte)
  666.                │     5 = 0  kein externes Monochrom Video installiert
  667.  ┌─────┬───────┤         1  externes Monochrom Video ist installiert
  668.  │40:B6│  Byte │ erweiterte Ausstattung feststellen (1 Bit) (Tandy 1000 TX)
  669.  └─────┴───────┤ Bit 0 = 0  Laufwerk C ist 5 ¼
  670.  ┌─────┬───────┤         1 Laufwerk C ist 3 ½
  671.  │40:B9│  Byte │ Port 60 Warteschlange für einzelne Bytes (Convertible)
  672.  │40:BA│  Byte │ Auswahlcode der letzten Taste (Convertible)
  673.  │40:BB│  Byte │ Zeiger zum NMI Pufferanfang (Convertible)
  674.  │40:BC│  Byte │ Zeiger zum NMI Pufferende (Convertible)
  675.  │40:BD│16bytes│ NMI Puffer Auswahlcode (Convertible)
  676.  │40:CE│  Wort │ Tageszähler (Convertible und spätere)
  677.  │ bis │ -04:8F│ Ende vom BIOS Datenbereich
  678.  ├─────┴───────┴────────────────────────────────────────────────────────────────
  679.  │ ** Ende vom BIOS Datenbereich **
  680.  ├─────┬───────┬────────────────────────────────────────────────────────────────
  681.  │40:90│ -40:EF│ von IBM reserviert
  682.  │40:F0│16bytes│ Inter-Application Kommunikationsbereich (wird von Anwendungen
  683.  │40:FF│       │ benutzt, um Daten oder Parameter zu übergeben)
  684.  └─────┴───────┤ 1) benutzt von Turbo Power's FMARK (markieren Speicher für TSRs).
  685.                │ 2) benutzt von Norton Utilities' TimeMark um die Zeit zu speichern.
  686.                │ 3) benutzt von BRIEF Editor.
  687.  ┌─────┬───────┤
  688.  │50:00│  Byte │ Statuskennzeichen DOS PRINT-SCREEN
  689.  └─────┴───────┤ 00h nicht aktiv oder erfolgreich beendet
  690.                │ 01h Bildschirmausdruck ist aktiv
  691.  ┌─────┬───────┤ 0FFh Fehler während des Druckens aufgetreten
  692.  │50:01│       │ benutzt von BASIC
  693.  │50:02-03     │ PCjr POST und Diagnose Arbeitsbereich
  694.  │50:04│  Byte │ Statusbyte wenn nur ein Laufwerk da ist - nicht benutzt von AT&T DOS 2.11!
  695.  └─────┴───────┤   00 logisches Laufwerk A war zuletzt in Betrieb
  696.  ┌─────────────┤   01 logisches Laufwerk B war zuletzt in Betrieb
  697.  │50:05-0E     │ PCjr POST und Diagnose Arbeitsbereich
  698.  │50:0F│       │ BASIC: Kennzeichen Befehlsinterpreter (ist 02h falls ein aktueller Befehlsinterpreter da ist)
  699.  │50:10│  Wort │ BASIC: Speicher Segmentadresse (eingestellt mit DEF SEG)
  700.  │50:12│4 Bytes│ BASIC: Segment:Offset int 1Ch Taktgeber Interrupt Vektor
  701.  │50:16│4 Bytes│ BASIC: Segment:Offset int 23h ctrl-break Interrupt
  702.  │50:1A│4 Bytes│ BASIC: Segment:Offset int 24h Kritischer Fehler int Vektor
  703.  │50:1B-1F     │ benutzt von BASIC zur dynamischen Speicherung
  704.  │50:20-21     │ benutzt von DOS zur dynamischen Speicherung
  705.  │50:22-2C     │ benutzt von DOS als Diskettenparametertabelle. Siehe int 1Eh für Werte.
  706.  └─────┴───────┤ In DOS 1.0 ist diese im ROM BIOS abgelegt, aber in DOS 1.1 und späteren
  707.                │ Versionen ist diese ein Teil von DOS ab Adresse 50:22. Das erste Byte
  708.                │ (von den elf) von den Festplattenparametern enthält den hexadezimalen
  709.                │ Wert CF in DOS 1.0 und DF in DOS 1.1 und später Versionen.
  710.                │ DOS 1.0 24ms
  711.  ┌─────────────┤ DOS 1. 1 26ms
  712.  │50:30-33     │ benutzt von MODE Befehl
  713.  │50:81│       │ Anzahl Diskettenlaufwerke im System installiert ?
  714.  │50:82│       │ erstes Festplattenlaufwerk?
  715.  │50:83│       │ letztes Festplattenlaufwerk?
  716.  │50:34-FF     │ Unbekannt - reserviert für DOS
  717.  └─────────────┴─────────────────────────────────────────────────────────────────
  718.  
  719.  
  720. An absoluten Adressen:
  721.  
  722. 0008:0047 IO.SYS oder IBMBIO.COM IRET Anweisung. Dies ist eine Dummy Routine der
  723.           Interrupts 01h, 03h, und 0Fh die währende dem POST initialisiert werden.
  724. C000:001E EGA BIOS Kennung (die Buchstaben IBM)
  725. F000:FA6E Tabelle der Zeichen 00h-7Fh die vom int 10h Video BIOS benutzt werden.
  726.           Die ersten 128 Zeichen sind hier gespeichert und jedes benötigt 8 Bytes.
  727.           Die höheren Zeichen sind irgendwo auf dem Videoadapter.
  728. F000:FFF5 BIOS Freigabe Datum
  729. F000:FFFE PC Modellidentifizierung
  730.  
  731.       ┌─────────────────────────────────────────────────────────────────────┐
  732.       │ ROM BIOS   ┌ Modell Byte                                            │
  733.       │ Freigabe-  │     ┌ Untermodell Byte          Maschine               │
  734.       │ Datum      │     │    ┌ Revision                                    │
  735.       ├──────────┼────┼────┼────┼───────────────────────────────────────────┤
  736.       │          │ 00 │ 00 │ 00 │ AT&T 6300, Olivetti PC                    │
  737.       │ 09/02/86 │ FA │ 00 │ 00 │ PS/2 Modell 30                            │
  738.       │ 01/10/86 │ FB │ 00 │ 01 │ XT                                        │
  739.       │ 01/10/86 │ FB │ 00 │ 00 │ XT-2 (die ersten) (640k Systemplatine     │
  740.       │ 05/09/86 │ FB │ 01 │    │ XT-2 (revidiert) (640k Systemplatine)     │
  741.       │ 01/10/84 │ FC │ -- │ -- │ AT                                        │
  742.       │ 06/10/85 │ FC │ 00 │ 01 │ AT Modell 239 6mHz (6.6 max governor)     │
  743.       │ 11/15/85 │ FC │ 01 │ 00 │ AT Modell 319, 339 8mHz (8.6 max governor)│
  744.       │          │ FC │ 01 │ 00 │ Compaq 386/16                             │
  745.       │          │ FC │ 01 │ 03 │ einige Phoenix 386 BIOS                   │
  746.       │          │ FC │ 01 │ 81 │ einige Phoenix 386 BIOS                   │
  747.       │ 04/21/86 │ FC │ 02 │ 00 │ XT/286                                    │
  748.       │ 02/13/87 │ FC │ 04 │ 00 │ PS/2 Modell 50                            │
  749.       │ 02/13/87 │ FC │ 05 │ 00 │ PS/2 Modell 60                            │
  750.       │          │ FC │ 00 │    │ 7531/2 Industrie AT                       │
  751.       │          │ FC │ 06 │    │ 7552 "Gearbox"                            │
  752.       │ 06/01/83 │ FD │ -- │ -- │ PCjr                                      │
  753.       │ 11/08/82 │ FE │ -- │ -- │ XT, tragbarer PC, XT/370, 3270PC          │
  754.       │ 04/24/81 │ FF │ -- │ -- │ PC-0 (16k Systemplatine)                  │
  755.       │ 10/19/81 │ FF │ -- │ -- │ PC-1 (64k Systemplatine)                  │
  756.       │ 08/16/82 │ FF │ -- │ -- │ PC, XT, XT/370 (256k Systemplatine)       │
  757.       │ 10/27/82 │ FF │ -- │ -- │ PC, XT, XT/370 (256k Systemplatine)       │
  758.       │   1987   │ F8 │ 00 │ 00 │ PS/2 Modell 80                            │
  759.       │   1987   │ F8 │ 01 │ 00 │ PS/2 Modell 80 20mHz                      │
  760.       │ 09/13/85 │ F9 │ 00 │ 00 │ Convertible                               │
  761.       │          │ 2D │ -- │ -- │ Compaq PC (4.77mHz Original)              │
  762.       │          │ 9A │ -- │ -- │ Compaq Plus (XT kompatibel)               │
  763.       └──────────┴────┴────┴────┴───────────────────────────────────────────┘
  764.  
  765.  
  766.  
  767.  
  768. Die IBM PC System Interrupts (Übersicht) ............................. 2**5
  769.  
  770. Die Interrupt Tabelle ist an der niedrigsten Stelle im Speicher gespeichert, beginnend
  771. bei 0000:0000h. Der Adressen sind Offsets vom Segment 0, z.B. Stelle 0000h hat
  772. die Adresse für int 0, etc. Die Tabelle ist 1024 Bytes lang und enthält 256
  773. vier Byte Vektoren von 00h zu 0FFh. Jede Addresse in Speicher kann gefunden
  774. werden, indem die Interrupt Nummer mit 4 multipliziert wird. Als Beispiel, int 7
  775. (7x4=28) oder 1Bh (0000:001Bh) ergibt die Adresse.
  776.  
  777. Diese Interrupt Vektoren zeigen normalerweise auf ROM Tabellen oder werden von DOS übernommen,
  778. sobald eine Anwendung ausführt wird. Einige Anwendungen biegen diese Interrupts auf
  779. ihr eigenen Code um, um die Systemfunktionen anzuändern. DOS bietet über int 21h
  780. Funktion 25h die Möglichkeit die Interrupts umzuleiten; Das direkte abändern der
  781. Interruptvektor-Tabelle wird nicht empfohlen, auch nicht um diese irgendwohin
  782. zu holen.
  783.  
  784.  
  785.  ┌─────────────────────┬────────────────────────────────────────────────────────┐
  786.  │  Interrupt Adresse  │                                                        │
  787.  ├───────┬───────┬─────┘                          Funktion                      │
  788.  │Nummer │ (Hex) │ Type                                                         │
  789.  ├───────┼───────┼─────┬────────────────────────────────────────────────────────┤
  790.  │   0   │ 00-03 │ CPU │ Division durch Null                                    │
  791.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  792.  │   1   │ 04-07 │ CPU │ Einzelschritt                                          │
  793.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  794.  │   2   │ 08-0B │ CPU │ Nicht maskierbarer Interrupt                           │
  795.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  796.  │   3   │ 0C-0F │ CPU │ Programmunterbrechung                                  │
  797.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  798.  │   4   │ 10-13 │ CPU │ Überlauf                                               │
  799.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  800.  │   5   │ 14-17 │ BIOS│ drucken Bildschirm                                     │
  801.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  802.  │   6   │ 18-1B │ hdw │ reserviert                                             │
  803.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  804.  │   7   │ 1C-1F │ hdw │ reserviert                                             │
  805.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  806.  │   8   │ 20-23 │ hdw │ Datum und Zeit                                         │
  807.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  808.  │   9   │ 24-27 │ hdw │ Tastatur                                               │
  809.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  810.  │   A   │ 28-2B │ hdw │ reserviert                                             │
  811.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  812.  │   B   │ 2C-2F │ hdw │ Kommunikation (8259)                                   │
  813.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  814.  │   C   │ 30-33 │ hdw │ Kommunikation                                          │
  815.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  816.  │   D   │ 34-37 │ hdw │ Festplatte                                             │
  817.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  818.  │   E   │ 38-3B │ hdw │ Diskette                                               │
  819.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  820.  │   F   │ 3C-3F │ hdw │ Drucker                                                │
  821.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  822.  │   10  │ 40-43 │ BIOS│ Video                                                  │
  823.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  824.  │   11  │ 44-47 │ BIOS│ Ausstattungskontrolle                                  │
  825.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  826.  │   12  │ 48-4B │ BIOS│ Speicher                                               │
  827.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  828.  │   13  │ 4C-4F │ BIOS│ Diskette/Festplatte                                    │
  829.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  830.  │   14  │ 50-53 │ BIOS│ serielle Kommunikation                                 │
  831.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  832.  │   15  │ 54-57 │ BIOS│ Kassette, Systemverwaltung                             │
  833.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  834.  │   16  │ 58-5B │ BIOS│ Tastatur                                               │
  835.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  836.  │   17  │ 5C-5F │ BIOS│ Paralleler Drucker                                     │
  837.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  838.  │   18  │ 60-63 │ BIOS│ ROM BASIC                                              │
  839.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  840.  │   19  │ 64-67 │ BIOS│ Systemstart                                            │
  841.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  842.  │   1A  │ 68-6B │ BIOS│ Datum und Zeit                                         │
  843.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  844.  │   1B  │ 6C-6F │ BIOS│ Tastaturunterbrechung                                  │
  845.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  846.  │   1C  │ 70-73 │ BIOS│ Zeit-Zähler Takteinheit                                │
  847.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  848.  │   1D  │ 74-77 │ BIOS│ Video Initialisierung                                  │
  849.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  850.  │   1E  │ 78-7B │ BIOS│ Diskettenparameter                                     │
  851.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  852.  │   1F  │ 7C-7F │ BIOS│ Video Grafikzeichen, zweiter Teil                      │
  853.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  854.  │   20  │ 80-83 │ DOS │ allgemein Programmbeendigung                           │
  855.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  856.  │   21  │ 84-87 │ DOS │ DOS Service Funktionsanforderungen                     │
  857.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  858.  │   22  │ 88-8B │ DOS │ Adresse Programmbeendigung                             │
  859.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  860.  │   23  │ 8C-8F │ DOS │ Adresse Programmabbruch                                │
  861.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  862.  │   24  │ 90-93 │ DOS │ Kritischer Fehler Routine                              │
  863.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  864.  │   25  │ 94-97 │ DOS │ Absolutes Lesen                                        │
  865.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  866.  │   26  │ 98-9B │ DOS │ Absolutes Schreiben                                    │
  867.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  868.  │   27  │ 9C-9F │ DOS │ beenden und verbleiben speicherresistent               │
  869.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  870.  │ 28-3F │ A0-FF │ DOS │ reserviert für DOS                                     │
  871.  └───────┴───────┴─────┼────────────────────────────────────────────────────────┤
  872.                        │ *29h schnelle Bildschirmausgabe                        │
  873.                        │ *2Ah Microsoft Netzwerke - Sitzungsebene Interrupt     │
  874.                        │  2Fh mehrfach Interrupt                                │
  875.                        │ *30h FAR JUMP Instruktion für CP/M-artige Aufrufe      │
  876.                        │  33h benutzt vom Microsoft Maustreiber                 │
  877.  ┌───────┬───────┬─────┼────────────────────────────────────────────────────────┤
  878.  │ 40-43 │100-115│ BIOS│ reserviert für BIOS                                    │
  879.  └───────┴───────┴─────┼────────────────────────────────────────────────────────┤
  880.                        │ 40h Festplatten BIOS                                   │
  881.                        │ 41h Festplattenparameter (außer PC1)                   │
  882.                        │ 42h Zeiger zum Bildschirm BIOS (EGA, VGA, PS/2)        │
  883.                        │ 43h Zeiger zu EGA Initialisierung Parametertabelle     │
  884.  ┌───────┬───────┬─────┼────────────────────────────────────────────────────────┤
  885.  │   44  │116-119│ BIOS│ ersten 128 Grafikzeichen                               │
  886.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  887.  │ 45-47 │120-131│ BIOS│ reserviert für BIOS                                    │
  888.  └───────┴───────┴─────┼────────────────────────────────────────────────────────┤
  889.                        │ 45h reserviert von IBM (nicht initialisiert)           │
  890.                        │ 46h Zeiger zu Festplattenparameter 2 (AT, PS/2)        │
  891.                        │ 47h reserviert von IBM (nicht initialisiert)           │
  892.  ┌───────┬───────┬─────┼────────────────────────────────────────────────────────┤
  893.  │   48  │132-135│ BIOS│ PCjr Kabellose Tastatur Übertragung                    │
  894.  ├───────┼───────┼─────┼────────────────────────────────────────────────────────┤
  895.  │   49  │136-139│ BIOS│ PCjr Non-Keyboard Scancode Übersetzungstabelle         │
  896.  └───────┴───────┴─────┼────────────────────────────────────────────────────────┤
  897.                        │ 4Ah Echtzeituhr Alarm (Convertible, PS/2)              │
  898.  ┌───────┬───────┬─────┼────────────────────────────────────────────────────────┤
  899.  │ 50-5F │140-17F│ BIOS│ reserviert für BIOS                                    │
  900.  └───────┴───────┴─────┼────────────────────────────────────────────────────────┤
  901.                        │ 5Ah Cluster Adapter BIOS Adresse Einsprungstelle       │
  902.                        │ *5Bh IBM (Cluster Adapter?)                            │
  903.                        │ 5Ch NETBIOS Schnittstelle                              │
  904.  ┌───────┬───────┬─────┴────────────────────────────────────────────────────────┤
  905.  │ 60-67 │180-19F│ allgemein verfügbar für Anwenderprogramme                    │
  906.  └───────┴───────┴─────┬────────────────────────────────────────────────────────┤
  907.                        │ 60h 10-Net Netzwerk                                    │
  908.                        │ 67h benutzt von LIM & AQA EMS, EEMS                    │
  909.  ┌───────┬───────┬─────┴────────────────────────────────────────────────────────┤
  910.  │ 68-7F │1A0-1FF│ reserviert von IBM                                           │
  911.  └───────┴───────┴─────┬────────────────────────────────────────────────────────┤
  912.                        │ 6Ch System Resume Vektor (Convertible)                 │
  913.                        │ 6Fh einige Novell und 10-Net API Funktionen            │
  914.                        │ 70h IRQ 8, Echtzeituhr Taktgeber Interrupt (AT, PS/2)  │
  915.                        │ 71h IRQ 9, LAN Adapter 1                               │
  916.                        │ 72h IRQ 10 (AT, XT/286, PS/2) reserviert               │
  917.                        │ 73h IRQ 11 (AT, XT/286, PS/2) reserviert               │
  918.                        │ 74h IRQ 12 Maus Interrupt (PS/2)                       │
  919.                        │ 75h IRQ 13, Koprozessorfehler                          │
  920.                        │ 76h IRQ 14, Steuereinheit Festplatte (AT, PS/2)        │
  921.                        │ 77h IRQ 15 (AT, XT/286, PS/2) reserviert               │
  922.                        │ 7Ch IBM REXX88PC Kommandosprache                       │
  923.  ┌───────┬───────┬─────┴────────────────────────────────────────────────────────┤
  924.  │ 80-85 │200-217│ ROM BASIC                                                    │
  925.  ├───────┼───────┼──────────────────────────────────────────────────────────────┤
  926.  │ 86-F0 │218-3C3│ benutzt vom BASIC Interpreter sobald BASIC läuft             │
  927.  ├───────┼───────┼──────────────────────────────────────────────────────────────┤
  928.  │ F1-FF │3C4-3FF│ reserviert von IBM                                           │
  929.  └───────┴───────┴──────┬───────────────────────────────────────────────────────┤
  930.                         │ *0F8h Einstellen Befehlsinterpreter Interrupt (OEM)   │
  931.                         │ *0F9h OEM Befehlsinterpreter Service Codes            │
  932.                         └───────────────────────────────────────────────────────┘
  933.  
  934.  
  935.  
  936. Die IBM-PC System Interrupts (ausführlich) ........................... 2**6
  937.  
  938.  ┌─────────────────────────────────────────────────────────────────────────────┐
  939.  │ Interrupt 00h Division durch Null                                           │
  940.  └─────────────────────────────────────────────────────────────────────────────┘
  941.  (0:0000h) (Prozessor Fehler). Wird automatisch am Ende einer DIV oder IDIV An-
  942.            weisung aufgerufen, wenn das Ergebniss fehlerhaft ist. Normalerweise
  943.            von DOS so eingestellt, das eine Fehlermeldung angezeigt und das
  944.            Programm beendet wird.
  945.  
  946. Anmerkung: auf dem 8086/8088, zeigt die Rückkehradresse auf die folgende Instruktion,
  947.            auf dem 80286/80386, zeigt diese auf die Divisionanweisung.
  948.  
  949.  
  950.  ┌─────────────────────────────────────────────────────────────────────────────┐
  951.  │ Interrupt 01h Einzelschritt                                                 │
  952.  └─────────────────────────────────────────────────────────────────────────────┘
  953.  (0:0004h) Wird nach jeder Instruktion aufgerufen, sobald die CPU ein Kennzeichen
  954.           für Einzelschritt Modus erkennt (Bit 8 von Flags ist 1). Dies ist das was
  955.           der "T" Befehl von DEBUG macht. Wird nicht erzeugt nach einem MOV
  956.           zu Segmentregister oder POP von Segmentregister. (falls kein älterer
  957.           8088 mit einem Fehler im Microcode benutzt wird).
  958.  
  959.  
  960.  ┌─────────────────────────────────────────────────────────────────────────────┐
  961.  │ Interrupt 02h Nicht maskierbarer Interrupt                                  │
  962.  └─────────────────────────────────────────────────────────────────────────────┘
  963.  (0:0008h) Vektor wird nicht über CLI ausgeschaltet. Wird erzeugt vom NMI Signal
  964.            der Hardware. Dies Funktion wird aufgerufen, wenn ein Paritätsfehler
  965.            im Speicher oder andere Ereignisse die auf Hardware Probleme oder Fehler
  966.            hinweisen. Dies ist im wesentlichen von der verwendeten Hardware ab-
  967.            hängig. Zeigt die geeignete Fehlermeldung und hält den Prozessor an.
  968.            Einige AT Chips benutzen int 02h scheinbar um I/O Fehler als auch
  969.            Paritätsfehler anzuzeigen.
  970.  
  971.                Dies Signal wird verschiedenartig benutzt:
  972.         POST Paritätsfehler:                        alle außer PCjr und Convertible
  973.         80x87 Koprozessor Interrupt:                alle außer PCjr und Convertible
  974.         Tastatur Interrupt:                         PCjr, Convertible
  975.         I/O Kanal Überprüfung:                      Convertible, PS/2 50+
  976.         Festplattencontroller power-on Anforderung: Convertible
  977.         Systemunterbrechung:                        Convertible
  978.         Echtzeituhr:                                Convertible
  979.         System Watchdog Zeit-Zähler:                PS/2 50+
  980.         Zeitüberschreitung Interrupt:               PS/2 50+
  981.         DMA Zeit-Zähler Zeitüberschreitung Int.:    PS/2 50+
  982.         Infrarottastatur Verbindung:                PCjr
  983.  
  984.  
  985.  ┌─────────────────────────────────────────────────────────────────────────────┐
  986.  │ Interrupt 03h Programmunterbrechung                                         │
  987.  └─────────────────────────────────────────────────────────────────────────────┘
  988.  (0:000Ch) Wird aufgerufen sobald die CPU ein 1-byte int 3 (0CCh) ausführt. Ähnlich der 8080
  989.  
  990.  (Intern) RST Instruktion. Wird im allgemeinen benutzt, um Programmstops zum Testen zu setzen.
  991.  
  992. Anmerkung 1) Wird auch von den Turbo PASCAL Versionen 1, 2, 3 benutzt, sobald {$ U+} spezifiziert ist.
  993.           2) Int 3s werden manchmal vom Microsoft Linker als Antwort auf unaufgelöste
  994.              Symbole eingefügt.
  995.  
  996.  
  997.  ┌─────────────────────────────────────────────────────────────────────────────┐
  998.  │ Interrupt 04h Divisionsüberlauf                                             │
  999.  └─────────────────────────────────────────────────────────────────────────────┘
  1000.  (0:0010h) Erzeugt von einer INTO Instruktion falls OF Kennzeichen gesetzt ist.
  1001.            Falls nicht
  1002.  (Intern)  INTO ist effektiv ein NOP. Benutzt um arithmetische Fehler schneller
  1003.            aufzufangen, sobald ein Programm bereit ist diese zu verarbeiten, als
  1004.            unmittelbar nach auftreten eines Überlaufs.
  1005.  
  1006.  
  1007.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1008.  │ Interrupt 05h drucken Bildschirm                                            │
  1009.  └─────────────────────────────────────────────────────────────────────────────┘
  1010.  (0:0014h) Service Drucken Bildschirm auf den Drucker. Aufgerufen von int 9 wenn
  1011.            Shift + Taste 55 (PrtSc) gedrückt wurde. Automatisch aufgerufen sobald
  1012.            dir PrtSc Taste gedrückt ist. Normalerweise wird eine Routine zu drucken
  1013.            des Bildschirm aufgerufen, kann aber auch eine beliebige Routine inner-
  1014.            halb des Tastaturtreibers sein. Status und Ergebnis der Routine werden
  1015.            an der Adresse 0050:0000 gespeichert.
  1016.  
  1017.  (Intern) BOUND Kontrolle scheiterte (80286+)
  1018.           erzeugt von der BOUND Instruktion sobald der Wert der geprüft wurde kleiner
  1019.           als der niedrigste oder größer als der größte BOUND Wert ist.
  1020.  
  1021. Aufruf    AH 05h
  1022. Rückgabe  absolute Adresse 50:0
  1023.           00h nicht aktiv oder erfolgreich beendet
  1024.           01h Bildschirmausdruck ist aktiv
  1025.           0FFh Fehler während des Drucken aufgetreten
  1026. Anmerkung 1) benutzt BIOS Aufrufe um den Bildschirm zu lesen.
  1027.           2) Ausgabe erfolgt über LPT1.
  1028.           3) umgeleitet in GRAPHICS.COM falls GRAPHICS.COM geladen ist.
  1029.           4) beim Tandy 1000TX kann dieser Interrupt über DIP Schalter
  1030.              eingeschaltet oder ausgeschaltet werden.
  1031.  
  1032.  
  1033.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1034.  │ Interrupt 06h reserviert von IBM                                            │
  1035.  └─────────────────────────────────────────────────────────────────────────────┘
  1036.  (0:0018h)
  1037.         auf dem Tandy 1000TX kann dieser Interrupt über DIP Schalter
  1038.         eingeschaltet oder ausgeschaltet werden.
  1039.  
  1040.  (Intern) ungültiger Opcode( 80286+)
  1041.  
  1042.  
  1043.  
  1044.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1045.  │ Interrupt 07h reserviert von IBM                                            │
  1046.  └─────────────────────────────────────────────────────────────────────────────┘
  1047.  (0:00C0h)
  1048.         auf dem Tandy 1000TX kann dieser Interrupt über DIP Schalter
  1049.         eingeschaltet oder ausgeschaltet werden.
  1050.  
  1051.  (Intern) kein Koprozessor verfügbar( 80286+)
  1052.  
  1053. Anmerkung: der 80286 und spätere Maschinen können so programmiert sein, das ein
  1054.            int 7 generiert wird, wenn eine ESC Instruktion durchgeführt werden
  1055.            soll. Dies kann dazu benutzt werden, um einen Koprozessor der 80x87
  1056.            Reihe nachzubilden. Er kann auch dazu benutzt werden, damit ein
  1057.            mathematischer Koprozessor der nicht von Intel ist den 80x87
  1058.            nachbilden kann.
  1059.  
  1060.  
  1061.  
  1062.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1063.  │ Interrupt 08h Zeit-Zähler                                                   │
  1064.  └─────────────────────────────────────────────────────────────────────────────┘
  1065.  (0:0020h) 55ms Zeit-Zähler "Takteinheit"  wird 18.2mal pro Sekunde aufgerufen.
  1066.   (IRQ0)   8259-1 Interrupt Steuereinheit
  1067.            Aktualisiert die Systemzeit an [0040:006C] (niederwertiges Wort) und [0040:006E]
  1068.            (höherwertiges Wort) und ruft den int 1Ch (Zeit-Zähler) auf. (int 1Ch zeigt auf eine
  1069.            IRET Instruktion falls dies nicht von einem speicherresistenten Programm geändert
  1070.            wurde). Der Zeit-Zähler Interrupt bekommt beim Systemstart die höchste
  1071.            Priorität der maskierbaren Interrupts.
  1072.       
  1073.  (Intern)  Doppelter Fehler (80286+ geschützter Modus), wird aufgerufen sobald Mehrfachausnahmen
  1074.            auf eine Instruktion auftreten, oder eine Ausnahme in der Ausnahmesteuerung
  1075.            auftritt. Falls eine Ausnahme beim verarbeiten des doppelten Fehlers auftritt,
  1076.            geht die CPU in den SHUTDOWN Modus (die Schaltung im PC/AT wandelt diesen in einem
  1077.            Systemstart um).
  1078.  
  1079. Aufruf     AH 08h
  1080. Rückgabe   absolute Adressen:
  1081.            40:6C Anzahl Interrupts seit dem Systemstart (4 Bytes)
  1082.            40:70 Anzahl Tage seit dem Systemstart (1 Byte)
  1083.            40:67 Tag zähler auf alle Produkte nach AT
  1084.            40:40 Zähler für Motorabschaltung - wird vermindert, der Motor wird
  1085.                  abgeschaltet wenn der Zähler = 0 ist.
  1086.  
  1087.  
  1088.  
  1089.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1090.  │ Interrupt 09h Tastatur                                                      │
  1091.  └─────────────────────────────────────────────────────────────────────────────┘
  1092.  (0:0024h) Wird immer aufgerufen wenn eine Taste gedrückt oder losgelassen wird.
  1093.   (IRQ1)   Dies ist normalerweise ein Scan-Code, kann auch auch ein ACK oder NAK
  1094.            eines Befehls auf der AT-type Tastatur sein. Die Hardware liefert einen
  1095.            nicht-ASCII Scan-Code der Taste die gedrückt wurde zurück, der vom I/O
  1096.            Port 60h gelesen wird.
  1097.            Der servicer sendet eine Bestätigung der Taste durch das umschalten
  1098.            von Bit 7 am Port 61h. (Port 61h sollte zuerst gelesen werden, dann
  1099.            Bit 7 ORed an, Ausgabe an Port 61h, dann ANDed aus, und dann an Port
  1100.            61h zurückgesendet werden).
  1101.      
  1102.            Die gelesene Taste ist entschlüsselt um ein ein ASCII Zeichen zu liefern, besondere
  1103.            Funktionstasten (wie F1) oder Steuerungsfunktion wie etwa die linke Umschalttaste.
  1104.            Das konvertierte ASCII Zeichen wird in die nächstes verfügbare Position
  1105.            des kreisförmigen Tastaturpuffer abgestellt. Sollte das Ende des Puffers erreicht
  1106.            werden, wird die eingegebene Taste nicht angenommen.
  1107.            Der Anfang des Puffers zeigt auf die älteste gedrückte Taste im Puffer
  1108.            welche noch nicht entfernt bzw. verarbeitet wurde. (normalerweise wird die Taste
  1109.            entfernt, wenn ein int 16h beutzt wird und dieser den Tastencode an den
  1110.            Anrufer zurückgibt).
  1111.       
  1112.            Der 16 Worte große Tastaturpuffer kann bis zu 16 Tasten enthalten. Falls der
  1113.            Anfang und das Ende des Puffers gleich ist, ist der Puffer leer.
  1114.            Zulässige Tasten in dem Puffer umfassen den Auswahlcode im höherwertigen
  1115.            Byte und das ASCII Zeichen im niederwertigen Byte.
  1116.            Wenn die gedrückte Taste kein gleichwertiges ASCII Zeichen hat
  1117.            (z.B. F1 bis F12), enthält das niederwertige Byte Null.
  1118.       
  1119.            Umschalt- und Steuertasten werden nicht im Puffer abgestellt, erscheinen aber
  1120.            in den beiden Bytes des Tastaturkennzeichens an der absoluten Adresse
  1121.            [0040:0017,18].
  1122.       
  1123.            Besondere Tastenkombinationen sind die Ursache dafür, daß andere Ereignisse auftreten:
  1124.            a) Ctrl-Alt_Del - Computer neu starten
  1125.            b) Print Screen - aufrufen int 5 um den aktuellen Bildschirm zu drucken
  1126.            c) Ctrl-Break - aufrufen int_1Bh Tastaturunterbrechung (DOS)
  1127.            d) Pause - warten bis eine ASCII Taste gedrückt wird, ohne diese
  1128.                       in den Tastaturpuffer abzustellen.
  1129.  
  1130.  (Intern) Mathematische Einheit Sicherungsfehler (80286+ geschützt Modus)
  1131.  
  1132. Aufruf     AH 09h
  1133. Rückgabe   absolute Adressen:
  1134.            40:17      Bit
  1135.                        0 rechte Umschalttaste gedrückt
  1136.                        1 linke Umschalttaste gedrückt
  1137.                        2 CTRL (STRG) Taste gedrückt
  1138.                        3 Alt Taste gedrückt
  1139.                        4 ScrollLock an
  1140.                        5 NumLock an
  1141.                        6 CapsLock an
  1142.                        7 Einfügen an
  1143.            40:18      Bit
  1144.                        0 linke Control Taste gedrückt
  1145.                        1 linke ALT Taste gedrückt
  1146.                        2 SysReq Taste gedrückt
  1147.                        3 Pause an
  1148.                        4 ScrollLock Taste ist gedrückt
  1149.                        5 NumLock Taste ist gedrückt
  1150.                        6 CapsLock Taste ist gedrückt
  1151.                        7 Einfügen Taste ist gedrückt
  1152.            40:96      Bit
  1153.                        0 letzter Code war E1h Code
  1154.                        1 letzter Code war E0h Code
  1155.                        2 rechte Control Taste gedrückt
  1156.                        3 rechte ALT Taste gedrückt
  1157.                        4 erweiterte Tastatur mit 101 Tasten installiert
  1158.                        5 NumLock erzwingen falls rd ID & kbx
  1159.                        6 letztes Zeichen war erstes ID Zeichen
  1160.                        7 lese ID (muß Bit 0 sein)
  1161.            40:97      Bit
  1162.                        0 ScrollLock Anzeige
  1163.                        1 NumLock Anzeige
  1164.                        2 CapsLock Anzeige
  1165.                        3 circus System Anzeige
  1166.                        4 ACK empfangen
  1167.                        5 zurückgesendetes Empfangskennzeichen
  1168.                        6 Modusanzeiger aktualisieren
  1169.                        7 Kennzeichen Tastaturübertragungsfehler
  1170.            40:1E       Tastaturpuffer (20h Bytes)
  1171.            40:1C       Zeiger zum Pufferende
  1172.            40:72       1234h falls ctrl-alt-del auf der Tastatur gedrückt wurde
  1173.      AL Auswahlcode 
  1174. Anmerkung 1) Int 05h wird aufgerufen falls PrtSc Taste gedrückt wurde.
  1175.           2) Int 1Bh wird aufgerufen falls Ctrl-Break Taste gedrückt wurde.
  1176.           3) Int 15h, AH= 85h wird aufgerufen, falls auf dem AT die SysReq Taste
  1177.              gedrückt wurde.
  1178.           4) Int 15h, AH= 4Fh wird bei den Maschinen nach dem AT aufgerufen.
  1179.           5) Int 16h, BIOS Tastaturfunktionen benutzen diesen Interrupt.
  1180.  
  1181.  
  1182.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1183.  │ Interrupt 0Ah EGA vertikaler Strahlrücklauf                                 │
  1184.  └─────────────────────────────────────────────────────────────────────────────┘
  1185.  (0:0028h) benutzt von EGA für vertikalen Strahlrücklauf
  1186.   (IRQ2)   8259-1 Interrupt Steuereinheit
  1187. Anmerkung 1) Die TOPS und PCnet Adapter benutzen diesen IRQ als Standardwert.
  1188.           2) Auf Systemen die mit 2 Interrupt-Controller Chips (8259) ausgestattet
  1189.              sind, wird IRQ 2 benutzt um den zweiten Interrupt-Controller zu unterstützen.
  1190.              In diesem Fall, wird int 71h (IRQ 9) benutzt, um IRQ 2 zu ersetzen.
  1191.              Aufrufe der Hardware von int 71h werden zu diesen Interrupt umgeleitet
  1192.              um die Kompatibilität zu erhalten.
  1193.           3) viele VGA Karten benutzen diesen Interrupt nicht.
  1194.  
  1195.  (Intern) ungültiges Task State Segment (80286+ geschützter Modus)
  1196.       
  1197.  
  1198.  
  1199.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1200.  │Interrupt 0Bh Kommunikations-Controller (serieller Port) hdw. Einsprungstelle│
  1201.  └─────────────────────────────────────────────────────────────────────────────┘
  1202.  (0:002Ch) serieller Port 2 (COM2) 8259-1
  1203.   (IRQ3)
  1204. Anmerkung 1) IRQ 3 kann von SDLC (Synchronous Data-Link Control) belegt sein oder
  1205.              von bisynchronen Kommunikationskarten an Stelle des seriellen Ports.
  1206.           2) der TOPS und PCnet Adapter benutzen alternativ diesen Interrupt.
  1207.           3) auf PS/2s, COM2 bis COM8 benutzen diesen IRQ gemeinsam.
  1208.           4) bei den meisten seriellen Karten, COM4 benutzt diesen IRQ.
  1209.           5) auf dem Commodore Amiga 2000 mit der PC Bridge Karte, dieser Interrupt
  1210.              wird zur Kommunikation zwischen dem Amiga Systemboard und der PC Bridge
  1211.              Karte benutzt. Dies war wahrscheinlich die niedrigste IRQ Ebene die sicher
  1212.              benutzt werden konnte, begrenzt aber die Möglichkeiten der A2000's
  1213.              Netzwerkkarten oder ähnliches zu benutzen.
  1214.           6) dies Interrupt wird zum Teil von dem stack-switching Code der im
  1215.              Zusammenhang mit dem lokalen Netzwerkadapter benutzt wird in
  1216.              DOS 3.2 hinzugefügt.
  1217.           7) der PS/2 legt COM3 bis COM8 an die Portadressen über 3FFh (nicht
  1218.              geeignet für ältere PCs) und alle benutzen gemeinsam den IRQ3.
  1219.    
  1220.  (Intern)  Nicht vorhanden (80286+ geschützt Modus)
  1221.            wird erzeugt sobald Segmentregister geladen werden soll und der Segment-
  1222.            deskriptor erkennt, daß das Segment sich zur Zeit nicht im Speicher
  1223.            befindet. Kann außerdem benutzt sein um virtuellen Arbeitsspeicher
  1224.            zu realisieren.
  1225.  
  1226.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1227.  │Interrupt 0Ch Kommunikations-Controller (serieller Port) hdw. Einsprungstelle│
  1228.  └─────────────────────────────────────────────────────────────────────────────┘
  1229.  (0:0030h) serieller Port 1 (COM1) oder internes Modem im PCjr oder Convertible
  1230.   (IRQ4)   8259-1
  1231. Anmerkung 1) IRQ 4 kann von SDLC (synchronous data-link control) belegt sein oder
  1232.              von bisynchronen Kommunikationskarten an Stelle des seriellen Ports.
  1233.           2) auf einigen PCs, wird dieser Interrupt mit COM3 gemeinsam benutzt.
  1234.           3) Tandy Computer benutzen den IRQ4 an Stelle von IRQ5 als Festplatteninterrupt.
  1235.           4) Manchmal wird eine bessere Leistung erreicht, wenn die Maus für IRQ4
  1236.              an Stelle von IRQ3 eingestellt ist, da einige Maustreiber die System-
  1237.              interrupts für längere Perioden sperren.
  1238.  
  1239.  (Intern)  Stapelfehler (80286+ geschützt Modus)
  1240.            erzeugte beim Stapelüberlauf/unterlauf. Beachten sie, das der 80286
  1241.            wenn SP= 1 ist in den echten Modus zurückschaltet, bevor der Stapel
  1242.            gesichert wird (PUSH).
  1243.  
  1244.  
  1245.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1246.  │ Interrupt 0Dh Festplatte                                                    │
  1247.  └─────────────────────────────────────────────────────────────────────────────┘
  1248.  (0:0034h) gemischte Benutzung
  1249.   (IRQ5)   8259-1
  1250. Anmerkung 1) verschiedene Tandy 1000 Modelle benutzen diesen für die 60Hhz RAM
  1251.              Auffrischung oder als "optionalen Bus Interrupt."
  1252.           2) benutzt von der Festplatte auf dem IBM XT und den meisten Kompatiblen.
  1253.           3) LPT2 auf AT, XT/286, und PS/2
  1254.           4) Dummy CRT, vertikaler Strahlrücklauf auf PCjr
  1255.  
  1256.  (Intern)  allgemeine Schutzübertretung (80286+)
  1257.            wird aufgerufen, sobald im echten Modus eine Instruktion versucht auf einen
  1258.            Wort Operand am Offset 0FFFFh zuzugreifen oder eine PUSH MEM oder POP MEM
  1259.            MEM Instruktion einen ungültigen Bit Code im zweiten Byte enthält.
  1260.  
  1261.  
  1262.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1263.  │ Interrupt 0Eh Disketten Interrupt                                           │
  1264.  └─────────────────────────────────────────────────────────────────────────────┘
  1265.  (0:0038h) erzeugt vom Disketten-Controller bei Beendigung eines Arbeitsganges.
  1266.   (IRQ6)   (setzt Bit 8 an 40:3E)
  1267.  
  1268.  (Intern)  Seitenfehler (80386+ Native Modus)
  1269.  
  1270.  
  1271.  ┌─────────────────────────────────────────────────────────────────────────────┐
  1272.  │ Interrupt 0Fh reserviert von IBM                                            │
  1273.  └─────────────────────────────────────────────────────────────────────────────┘
  1274.  (0:003Ch) IRQ7 wird vom 8259 PPI Interrupt (LPT1, LPT2) benutzt
  1275.   (IRQ7)
  1276. Anmerkung 1) erzeugt vom LPT1 Druckeradapter sobald Drucker bereit ist. Viele
  1277.              Druckeradapter erzeugen dies Interrupt korrekt.
  1278.           2) dies Interrupt wird normalerweise vermieden. Falls ein fehlerhafter
  1279.              Interrupt auftritt, zeigt der Unterbrechungszeiger auf diesen Punkt
  1280.              (wenn dies von einem falsch programmierten 8259 PIC veranlaßt wurde)
  1281.  
  1282.