home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-02 | 113.1 KB | 2,367 lines |
-
- ** technische Referenz für Programmierer für MSDOS und den IBM PC **
- ─────────────────────────┤ eingetragene Anwenderversion ├───────────────────────────
- nicht für den allgemeinen Vertrieb
- Urheberrecht (c) 1987, 1990 Dave Williams
- Deutsche Übersetzung Urheberrecht (c) 1990 Klaus Overhage
- Änderungen und Erweiterungen Urheberrecht (c) 1990 Klaus Overhage
-
-
- K A P I T E L D R E I
-
-
- Das PC ROM BIOS
-
-
- I N H A L T E
-
- Anruf des ROM BIOS .................................................. 3**1
- Interrupt 10h Videofunktionen ....................................... 3**2
- Interrupt 11h Ausstattungskontrolle ................................. 3**3
- Interrupt 12h Speichergröße ......................................... 3**4
- Interrupt 13h Diskettenfunktionen ................................... 3**5
- Interrupt 14h Initialisieren und Zugriff serieller Port ............. 3**6
- FOSSIL Treiber ........................................ 3**7
- Interrupt 15h Kassette I/O .......................................... 3**8
- Interrupt 16h Tastatur I/O .......................................... 3**9
- Interrupt 17h Drucker ............................................... 3**10
- Interrupt 18h ROM BASIC ............................................. 3**11
- Interrupt 19h Systemstart ........................................... 3**12
- Interrupt 1Ah Datum und Zeit ........................................ 3**13
- Interrupt 1Bh Control-Break ......................................... 3**14
- Interrupt 1Ch Zeit-Zähler Takteinheit ............................... 3**15
- Interrupt 1Dh Vektor zur Video Initialisierungsparameter ............ 3**16
- Interrupt 1Eh Vektor zur Diskettenparametertabelle....... ........... 3**17
- Interrupt 1Fh Ptr zu Grafikzeichen (zweiter Teil) ................... 3**18
-
-
-
- Anruf des ROM BIOS .................................................. 3**1
-
- Die BIOS Funktionen werden aufgerufen, indem die gewünschte Funktionsnummer in das
- Register AH übertragen wird, Unterfunktion in AL, und die anderen Register mit den
- erforderlichen Werten versorgt werden, und einer der ints 10h bis int 1Fh durchgeführt wird.
-
- Sobald der Interrupt aufgerufen wird, werden alle Register und Werte der Kennzeichen
- auf den Stapel abgelegt. Die Interruptadresse enthält ein Zeiger auf eine absolute Adresse
- in dem Adreßbereich des ROM BIOS Chips. Dies Adresse kann einen Zeiger in die
- IBMBIO.COM (oder gleichwertige) Datei oder einer Anwenderdatei enthalten.
-
- Der Adressvektor zeigt zu einem besonderen BIOS Befehls Handler. Dieser Handler
- holt sich die Registerwerte, vergleicht diese mit seiner Liste von Funktionen, und führt
- die Funktion aus, falls diese zulässig ist. Sobald die Funktion ausgeführt ist, gibt diese
- Werte an den Handler zurück. Der Handler sichert die Werte in den Stapel und
- gibt die Steuerung an das aufrufende Programm zurück.
-
- Die meisten Funktionen geben eine Fehlercode zurück; einige liefern jedoch noch
- mehr Information. Details hierüber sind bei der Beschreibung der einzeln Funktionen
- enthalten.
-
- Registerwerte sind nur aufgeführt, wenn diese vom BIOS benutzt werden. Einige Funktion
- geben wertlose Daten in ungebrauchten Registern zurück. Diese sollten nicht zum
- Testen benutzt werden, da man sich hierauf nicht verlassen kann.
-
-
- Drei Arten von BIOS Routinen sind verfügbar: PC BIOS, AT BIOS (auch CBIOS oder
- "altes Kompatibilitäts BIOS " genannt, und das PS/2 ABIOS "erweitertes BIOS".
-
- Das erweiterte BIOS ist in den PS/2 ROMs enthalten. Es wurde erst geplant zur OS
- Benutzung, anstatt zur Anwenderbenutzung. OS/2 kann die Vorteile vom ABIOS nutzen, um
- den benötigten RAM auf PS/2 Systeme zu reduzieren. Der ABIOS kann falls dies ge-
- wünscht wird durch ABIOS Code auf der Festplatte oder im RAM ersetzt werden.
- Es ist außerdem ein neuer BIOS Datenbereich im oberen Speicherbereich definiert,
- der 1K vom RAM belegt. In OS/2 Systemen, werden Teile vom ABIOS durch OS/2 Treiber
- ersetzt.
-
- Solange das CBIOS via Zeiger adressiert werden muß, sind die Routinen im ABIOS
- an absolute Adressen festgelegt. Deshalb könne diese direkt durch OS/2 an-
- gesprochen werden..
-
- Das ABIOS kann im geschützten Modus ausgeführt werden, und ist voll ablaufinvariant.
- Es unterstützt drei Arten von Anforderungen - single-staged, discrete-multistaged, oder continuous-
- multistaged. Ein single-staged Anforderung erledigt seine Arbeit unmittelbar und gibt die
- Steuerung danach an den Aufrufer zurück. Ein discrete-multistaged Anforderung kann sich ereignen
- in zwei oder mehr Stufen mit Pausen zwischen den Stufen. Der Aufrufer kann die Steuerung während
- der Pausen wiedererlangen. Eine continuous-multistaged Anforderung startet einen Arbeitsgang der
- nie beendet wird. (manchmal auch als Daemon bezeichnet).
-
- Entgegen dem CBIOS welches mit Software Interrupts aufgerufen wird, erfolgt der Zugang
- zum ABIOS mit FAR Calls. Aufrufe an das ABIOS sind komplett ablaufinvariant im echten und
- geschützten Modus. Um eine ABIOS Funktion aufzurufen muß das aufrufende Programm einen
- Zeiger zu zwei Datenstrukturen aufbauen - einen Anforderungsblock und ein allgemeinen Datenbereich. Der
- Anforderungsblock spezifiziert die gewünschte Funktionsnummer und der allgemein Datenbereich ist
- eine Tabelle die einen Zeiger zu allen anderen Tabellen und Datenbereichen des ABIOS enthält.
- Der interne Aufbau der allgemeinen Datenbereiche enthält die Funktionsübergabe-
- tabellen welche die Adressen von den BIOS Routinen haben.
-
- ABIOS Stapel Rahmen und Anrufvereinbarungen:
- Bytes Stapelinhalt
- 2 allgemeiner Datenbereichszeiger (Segment/Selektor ausschließlich) - verlangt
- 4 Zeiger Anforderungsblock - verlangt
- 4 Zeiger Funktionsübergabetabelle - geliefert durch das ABIOS oder dem Aufrufer
- 4 Zeiger Geräteblock - geliefert durch das ABIOS oder dem Aufrufer
- 4 Rücksprungadresse
-
- In den ABIOS Übergabekonventionen werden ausschließlich die ersten beiden Elemente
- verlangt. ABIOS versorgt die nächsten beiden. In den Betriebssystem Übergabekonventioen
- übergibt diese der Aufrufer. Weil die Parameter nicht vom Stapel entfernt und an den
- Aufrufer zurückgegeben werden, kann das Betriebssystem die Funktionsübergabetabellen
- und Geräteadressen sichern, nachdem diese durch einen Aufruf des ABIOS versorgt wurden.
-
- ABIOS tut nein Interrupt Schiedsspruch. Es nimmt an, das alle Interrupts durch den Aufrufer
- oder dem OS gehandhabt werden und es wird ausschließlich für den Service aufgerufen. Falls
- mehr als ein Gerät gemeinsam einen Hardware Interrupt benutzen muß das OS entscheiden welcher
- Interrupt für das ABIOS zulässig ist.
-
- OS/2 kann das ABIOS benutzen falls es gefunden wurde, ansonsten kopiert es die BIOS Aufrufe für
- die DOS Kompatibilitätsbox indem die BIOS Aufrufe in seinen eigenen Gerätetreiber um-
- geleitet werden. Dies macht es eher schwierig für DOS Treiber für Massenpeicher, hoch-
- auflösende Videokarten, multitasking APIs benutzen int 15h, etc. Falls die Software
- die direkt Hardwaremanipulation benötigt, sollte kontrolliert werden, ob diese unter
- OS/2 abläuft. Der einfachste Methode dies zu kontrollieren, ist die DOS Version 10
- oder höher abzufragen.
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 10h Video Services 3**2 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0040h) die BIOS Video Services sind in Kapitel 16 beschrieben.
-
- (Intern) Koprozessor Fehler( 80286+)
- erzeugt von der CPU sobald das -ERROR Signal vom Koprozessor aktiviert wird.
- (gewöhnlich 80x87, kann aber auch eine multimaster CPU oder ein alternativer NDP
- wie Weitek, etc.) sein. ATs und Nachbauten verdrahten den Koprozessor gewöhnlich so
- das IRQ13 benutzt wird, aber nicht alle machen es richtig.
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 11h Ausstattungskontrolle 3**3 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0044h) liest den BIOS Datenbereich und gibt zwei Bytes mit den einstellten Information zurück.
- Aufruf keine Parameter
- Rückgabe AX Ausstattungliste. Bits sind:
- 0 Anzahl Diskettenlaufwerke
- 0 keine Laufwerke
- 1 startfähige (IPL) Diskettenlaufwerk installiert
- 1 Arithmetikprozessor
- 0 kein Arithmetikprozessor (80x87) vorhanden
- 1 Arithmetikprozessor( 80x87) vorhanden
- (PS/2) 2 0 Maus nicht installiert
- 1 Maus installiert
- (PC) 2, 3 RAM auf dem Systemboard
- 0, 0 16k (PC-0, PC-1)
- 0, 1 32k
- 1, 0 48k
- 1, 1 64k (PC-2, XT)
- Anmerkung 1) nicht häufig benutzt. Alle Bits sind dann 1
- 2) beim AT sind die Bits immer 1
- 4, 5 Videomodus beim Systemstart
- 0, 0 kein Video installiert (benutzen mit stumm Datenstation)
- 0, 1 40x25 Farbe (CGA)
- 1, 0 80x25 Farbe (CGA, EGA, PGA, MCGA, VGA)
- 1, 1 80x25 Monochrom (MDA oder Herkules, viele Super-hires
- Monochrom-Adapter)
- 6, 7 Anzahl Diskettenlaufwerke (nur wenn Bit 0 = 1 ist)
- 0, 0 1 Laufwerk
- 0, 1 2 Laufwerke
- 1, 0 3 Laufwerke
- 1, 1 4 Laufwerke
- 8 0 DMA vorhanden
- 1 kein DMA (PCjr, einige Tandy 1000s, 1400LT)
- 9,A,B Anzahl serieller RS232 Anschlüsse (0-3)
- 0, 0, 0 keine
- 0, 0, 1 1
- 0, 1, 0 2
- 0, 1, 1 3
- 1, 0, 0 4
- C 0 kein Spiele I/O angeschlossen
- 1 Spiele I/O angeschlossen (vorgegeben für PCjr)
- D installiertes serielles Zubehör
- 0 kein serielles Zubehör installiert
- 1 Convertible - internes Modem installiert
- oder PCjr - serieller Drucker angeschlossen
- E,F Anzahl paralleler Drucker
- 0, 0 keine
- 0, 1 einer (LPT1, PRN)
- 1, 0 zwei (LPT2)
- 1, 1 drei (LPT3)
- Anmerkung Modelle bevor PS/2 erlaubten einen vierten
- parallelen Drucker. Änderungen im BIOS der
- PS/2s erlauben nicht die Benutzung von LPT4.
-
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 12h Speichergröße 3**4 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0048h) feststellen Systemspeicher
- Aufruf keine Parameter
- Rückgabe AX Anzahl zusammenhängender 1K RAM Blöcke verfügbar für DOS
- Anmerkung 1) dies ist derselbe Wert wie an der absoluten Adresse 04:13h.
- 2) einige ältere PC Modelle, geben den verfügbaren Speicher zurück, der
- über DIP Schalter auf der Systemplatine eingestellt ist und nicht
- den Speicher der physisch vorhanden ist.
- 3) für den PC/AT, dieser Wert gibt den funktionsfähigen Speicher an, der
- beim power-on self-test gefunden wurde, ungeachtet der Speichergröße
- die im CMOS RAM gespeichert ist.
- 4) der Wert gibt nicht irgendeinen Erweiterungsspeicher (über der 1 Mb Grenze)
- zurück, der auf 80286 oder 80386 Maschinen vorhanden sein kann.
-
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 13h Diskettenfunktionen 3**5 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0049h) der Service für die BIOS Diskettenfunktionen sind in Kapitel 8
- beschrieben.
-
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 14h Initialisieren und Zugriff serieller Port 3**6 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0050h) der folgende Status ist definiert:
-
- Modem-Status:
- Bits 0 (DELTA) Modem zum Senden bereit
- 1 (DELTA) Modem ist eingeschaltet
- 2 (DELTA) Telefon läutet
- 3 (DELTA) Verbindung zum Empfänger-Modem aufgebaut
- 4 Sendebereit
- 5 Endgerät betriebsbereit
- 6 Telefon läutet
- 7 Verbindung ist aufgebaut
-
- Status der seriellen Schnittstelle:
- Bits 0 Daten stehen bereit
- 1 Datenüberlauf
- 2 Paritätsfehler
- 3 Protokoll nicht eingehalten
- 4 Unterbrechung festgestellt
- 5 übertragen holding Register leer
- 6 Übertragungs-Shift-Register leer
- 7 Zeitüberschreitung Anmerkung: falls Bit 7 einstellen dann andere Bits sind ungültig
-
- Alle Routinen haben in AH die Funktionsnummer und in DX die RS232 Kartennummer (Basis 0).
- In AL= das zu sendene Zeichen oder das empfangene Zeichen, falls nicht anders vermerkt.
-
- Aufruf AH 00h Initialisieren und Zugriff serieller Port
- Bitmuster: BBBPPSLL
- BBB= Baud-Rate: 110, 150, 300, 600, 1200, 2400, 4800, 9600
- PP= Parität: 01= ungerade, 11= gerade
- S= Stop-Bits: 0= 1, 1= 2
- LL= Datenlänge: 10= 7-bits, 11= 8-bits
- AL Konfigurationsparamter
- Bitmuster:
- 0 Datenlänge
- 1 Datenlänge
- 2 Stop-Bits
- 3 Parität
- 4 Parität
- 5 Baud-Rate
- 6 Baud-Rate
- 7 Baud-Rate
- Datenlänge 10 7 Bits
- 11 8 Bits
- Stop-Bits 0 1 Stop-Bit
- 1 2 Stop-Bits
- Parität 00 keine
- 01 ungerade
- 11 gerade
- Baud-Rate 000 110 Baud
- 001 150 Baud
- 010 300 Baud
- 011 600 Baud
- 100 1200 Baud
- 101 2400 Baud
- 110 4800 Baud
- 111 9600 Baud( 4800 auf PCjr)
- DX Portnummer (0= COM1, 1= COM2, etc.)
- Rückgabe AH Status der seriellen Schnittstelle
- AL Modem-Status
- Anmerkung Um den seriellen Port auf PS/2 Maschinen mit mehr als 9600 Baud zu
- initialisieren, siehe fns 04h und 05h.
-
-
- Funktion 01h Zeichen in AL zum Comm Port ausgeben
- Aufruf AH 01h
- AL Zeichen
- DX Portnummer (0 - 3)
- Rückgabe AH Status RS232
- Bit 0 Daten stehen bereit
- 1 Datenüberlauf
- 2 Paritätsfehler
- 3 Protokoll nicht eingehalten
- 4 Unterbrechung erkannt
- 5 Übertragungs-Hold-Register leer
- 6 Übertragungs-Shift-Register leer
- 7 Zeitüberschreitung
- AL Modem-Status
- Bit 0 (DELTA) Modem zum Senden bereit
- 1 (DELTA) Modem ist angeschaltet
- 2 (DELTA) Telefon läutet
- 3 (DELTA), Verbindung zum Empfänger-Modem aufgebaut
- 4 Modem zum Senden bereit
- 5 Modem ist angeschaltet
- 6 Telefon läutet
- 7 Verbindung zum Empfänger-Modem aufgebaut
-
-
- Funktion 02h Zeichen vom Comm Port DX einlesen
- Aufruf AH 02h
- DX Portnummer (0-3)
- Rückgabe AL empfangenes Zeichen
- AH Fehlercode (siehe Funktion 01h) (00h für kein Fehler)
-
-
- Funktion 03h Status vom Comm Port DX (0 oder 1) erfragen
- Aufruf AH 03h
- DX Port (0-3)
- Rückgabe AH Status der seriellen Schnittstelle
- Bit 7 Zeitüberschreitung
- Bit 6 Übertragungs-Shift-Register leer
- Bit 5 Übertragungs-Hold-Register leer
- Bit 4 Unterbrechung erkannt ("long-space")
- Bit 3 Protokoll nicht eingehalten
- Bit 2 Paritätsfehler
- Bit 1 Datenüberlauf
- Bit 0 Daten stehen bereit
- AL Modem-Status
- Bit 7 Verbindung zum Empfänger-Modem aufgebaut
- Bit 6 Telefon läutet
- Bit 5 Endgerät betriebsbereit
- Bit 4 Sendebereit
- Bit 3 (DELTA) Verbindung zum Empfänger-Modem aufgebaut
- Bit 2 (DELTA) Telefon läutet
- Bit 1 (DELTA) Modem ist eingeschaltet
- Bit 0 (DELTA) Modem zum Senden bereit
-
-
- Funktion 04h erweitertes Initialisieren (Convertible, PS/2)
- Aufruf AH 04h
- AL abschalten Zustand
- 01h falls abschalten
- 00h wenn kein abschalten
- BH Parität
- 00h keine Parität
- 01h ungerade Parität
- 02h gerade Parität
- 03h Steuerknüppel Parität ungerade
- 04h Steuerknüppel Parität gerade
- BL Anzahl Stop-Bits
- 00h 1 Stop-Bit
- 01h 2 Stop-Bits (1½ falls 5 Bit Datenlänge)
- CH Datenlänge
- 00h 5 Bits
- 01h 6 Bits
- 02h 7 Bits
- 03h 8 Bits
- CL Baud-Rate
- 00h 110
- 01h 150
- 02h 300
- 03h 600
- 04h 1200
- 05h 2400
- 06h 4800
- 07h 9600
- 08h 19200
- DX comm Port (0-3)
- Rückgabe AH Status der seriellen Schnittstelle
- AL Modem-Status
- Anmerkung liefert ein mehrfaches der fn 00h Möglichkeiten für PS/2 Maschinen.
-
-
- Funktion 05h erweitert Kommunikation Port steuern( Convertible, PS/2)
- Aufruf AH 05h
- AL 00h lese Modem Steuerungsregister
- 01h schreibe Modem Steuerungsregister
- BL Modem Steuerungsregister
- Bits 0 DTR Endgerät bereit
- 1 RTS Sender einschalten
- 2 out1
- 3 out2
- 4 loop
- 5, 6, 7 reserviert
- DX Portnummer (0= COM1, 1= COM2, etc.)
- Rückgabe AH Status der seriellen Schnittstelle (siehe fn 00h)
- AL Modem-Status (siehe fn 00h)
- BL Modem Steuerungsregister (siehe fn 01h)
-
-
-
- FOSSIL Treiber ........................................................ 3**7
-
- Interrupt 14h FOSSIL (Fido/Opus/Seadog Standard Interface Level) Treiber
- Ein FOSSIL ist ein Gerätetreiber zur Behandlung der IBM PC seriellen
- Schnittstellen in einem Standardmodus von einem Anwendungs
- (Kommunikations) Programm. Ein FOSSIL wird mit dem int 14h BIOS
- Kommunikationsvektor verkettet und ersetzt viele Funktionen mit erweiterten
- Routinen, auf die leicht durch eine Anwendung zugegriffen werden kann.
-
- Für alle Funktionen: alle Register die keinen Rückgabewert enthalten,
- bleiben durch den Aufruf erhalten.
-
-
- Aufruf AH 00h einstellen Baud-Rate und Parameter
- AL Byte
- Bits 7,6,5 Baud-Rate
- 000 19200 Baud
- 001 38400 Baud
- 010 300 Baud
- 011 600 Baud
- 100 1200 Baud
- 101 2400 Baud
- 110 4800 Baud
- 111 9600 Baud
- Bits 4,3 Parität
- 00 keine
- 01 ungerade
- 10 keine
- 11 gerade
- Bit 2 Stop-Bits
- 0 1 Stop-Bit
- 1 2 Stop-Bits
- Bit 1 Datenlänge
- 0 5 Bits plus Wert
- andere wahlweise
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe AX Status (siehe fn 03h)
- Anmerkung die niederwertigen 5 Bits sind bei FOSSIL 1.0 nicht definiert.
-
-
- Aufruf AH 01h Zeichen übertragen mit Warten
- AL ASCII Wert des Zeichen das gesendet werden soll
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe AX Status (siehe Funktion 03h)
- Anmerkung 1) Zeichen wird zur Übertragung gepuffert. Falls im Sendepuffer Platz ist,
- wird das Zeichen in den Puffer übertragen und die Steuerung an den
- Aufrufer zurückgegeben. Falls der Puffer voll ist, wartet der Treiber
- solange bis Platz da ist. Dies Funktion sollte mit Vorsicht benutzt
- werden, sobald die Überlaufkontrolle eingeschaltet ist.
-
-
- Aufruf AH 02h FOSSIL: ein Zeichen empfangen mit Warten
- DX Portnummer (0-3)(NOP falls DX= 00FFh)
- Rückgabe AH RS-232 Status (siehe Funktion 00h)
- AL ASCII Wert des empfangenen Zeichens vom seriellen Port
- Anmerkung Ergibt Zeitüberschreitung falls DSR nicht besteht, selbst wenn
- Funktion 03h zurückgibt das Daten bereit stehen.
-
-
- Aufruf AH 03h FOSSIL: Status anfordern
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe AX Status
- AH Bit 0 gesetzt RDA Eingabedaten sind im Puffer verfügbar
- 1 gesetzt OVRN Überlauf Eingabepuffer
- 2 nicht benutzt
- 3 nicht benutzt
- 4 nicht benutzt
- 5 gesetzt THRE Platz ist verfügbar im Ausgabepuffer
- 6 gesetzt TSRE Ausgabepuffer ist leer
- 7 nicht benutzt
- AL Bit 0 nicht benutzt
- 1 nicht benutzt
- 2 nicht benutzt
- 3 gesetzt, dieses Bit ist immer gesetzt
- 4 nicht benutzt
- 5 nicht benutzt
- 6 nicht benutzt
- 7 gesetzt DCD Übertragung festgestellt
- Anmerkung Bit 3 von AL ist immer gesetzt, damit Programme es als carrier detect bit
- bei festverdrahteten (Null Modem) Verbindungen benutzen können.
-
-
- Aufruf AH 04h Initialisieren FOSSIL Treiber
- BX 4F50h (wahlweise)
- DX Portnummer (DX= 00FFh spezial)
- ES:CX Zeiger zur ^C Adresse (wahlweise)
- Rückgabe AX 1954h falls erfolgreich
- BL maximum Funktion Nummer unterstützt (ausschließend 7Eh-0BFh)
- BH Revision von FOSSIL unterstützt
- Anmerkung 1) DTR wird errichtet sobald FOSSIL initialisiert ist.
- 2) existierende Baud-Rate bleibt erhalten.
- 3) falls BX 4F50h enthält, spezifiziert die Adresse in ES:CX das ^C
- Kennzeichenbyte im Anwenderprogramm, welches erhöht wird sobald ^C
- durch die Tastaturroutinen erkannt wird. Dies ist wahlweise und wird
- ausschließlich auf Maschinen benötigt, wo die Tastaturroutinen kein
- int 1Bh oder int 23h durchführen können oder wollen, sobald ein control-C
- eingegeben wurde.
-
-
- Aufruf AH 05h Deinitialisiere FOSSIL Treiber
- DX Portnummer (DX= 00FFh besonders)
- Rückgabe keine
- Anmerkung 1) DTR wird nicht beeinflusst.
- 2) Befreit Treiber von comm Port. Sollte ausgeführt werden, sobald
- die Transaktionen am Port beendet sind.
- 3) falls DX= 00FFh, die Initialisierung die mit der FOSSIL Funktion
- 04h und DX= 00FFh durchgeführt wurde, ist unerledigt.
-
-
- Aufruf AH 06h FOSSIL: erhöhen/verringern DTR
- AL DTR gesetzter Status
- 00h verringerte DTR
- 01h erhöhte DTR
- DX comm Port (NOP falls DX= 00FFh)
- Rückgabe keine
-
-
- Aufruf AH 07h FOSSIL: Feststellen Zeit-Zähler Takteinheit Parameter
- Rückgabe AH Takteinheiten pro Sekunde auf Interruptnummer in AL
- AL Zeit-Zähler Takteinheit Interrupt Nummer (nicht Vektor!)
- DX Millisekunden pro Takteinheit( annähern)
-
-
- Aufruf AH 08h FOSSIL: Ausgabepuffer leeren
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe keine
- Anmerkung wartet bis alle Ausgaben erledigt sind.
-
-
- Aufruf AH 09h FOSSIL: Ausgabepuffer löschen
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe keine
- Anmerkung wird unmittelbar an den Aufrufer zurückgegeben.
-
-
- Aufruf AH 0Ah FOSSIL: Eingabepuffer löschen
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe keine
- Anmerkung 1) falls irgendein Hindernis auftritt (fallendes RTS oder gesendetes
- XOFF) wird der Port "freigegeben", indem ein RTS erstellt wird oder
- XON gesendet wird.
- 2) wird unmittelbar an den Aufrufer zurückgegeben.
-
-
- Aufruf AH 0Bh FOSSIL: Übertragen ohne Warten
- AL ASCII Wert des Zeichen das gesendet werden soll
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe AX 0000h Zeichen wurde nicht akzeptiert
- 0001h Zeichen wurde akzeptiert
- Anmerkung dies ist genau dasselbe wie das "reguläre" Übertragen, mit der Einschränkung,
- das wenn kein Platz im Ausgabepuffer ist der Wert 0 im Register AX
- zurückgegeben wird und andernfalls eine 1.
-
-
- Aufruf AH 0Ch FOSSIL: Nondestructive lesen nicht Warten
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe AH Zeichen
- 0FFFFh Zeichen nicht verfügbar
- Anmerkung 1) liest async Puffer.
- 2) entfernt den Tastaturcode nicht vom Puffer.
-
-
- Aufruf AH 0Dh FOSSIL: Tastatur lesen, nicht warten
- Rückgabe AX IBM Tastaturauswahlcode oder
- 0FFFFh wenn kein Zeichen verfügbar ist
- Anmerkung 1) benutzt IBM-style Funktionstastenabbildung im höherwertigen Byte.
- 2) Scancodes für NICHT-Funktionstasten werden nicht benötigt, sind aber
- mit enthalten.
- 3) entfernt den Tastaturcode nicht vom Puffer.
-
-
- Aufruf AH 0Eh FOSSIL: Tastatur Eingabe mit warten
- Rückgabe AX IBM Tastaturauswahlcode
- Anmerkung gibt das nächstes Zeichen von der Tastatur zurück oder wartet wenn
- kein Zeichen verfügbar ist.
-
-
- Aufruf AH 0Fh aktivieren oder deaktivieren Flußsteuerung
- AL Bitmuster beschreibt die angeforderte Flußsteuerung
- Bits 0 XON/XOFF auf übertragen (überwachen XOFF solange gesendet wird)
- 1 CTS/RTS (CTS auf übertragen/RTS auf empfangen)
- 2 reserviert
- 3 XON/XOFF auf empfangen (senden XOFF sobald Puffer fast voll ist)
- 4-7 nicht benutzt, FOSSIL spezielle Aufrufe zur Einstellung von 1
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe keine
- Anmerkung 1) Bit 2 ist reserviert für DSR/DTR, wird zur Zeit aber von keiner
- Ausführung unterstützt .
- 2) Übertragungsflußsteuerung erlaubt dem anderen Ende den Sender zurückzuhalten
- sobald es einen Überlauf bekommt. Die Empfangsflußsteuerung teilt dem FOSSIL
- mit, falls dieser bewältigt wurde, um die Übertragung erneut zu versuchen.
- 3) wenn übertragen XON/XOFF eingeschaltet ist, hält der FOSSIL die Übertragung an
- sobald ein XOFF empfangen wurde. Der FOSSIL nimmt die Übertragung wiederauf
- sobald ein XON empfangen wurde.
- 4) eingeschaltetes CTS/RTS ermöglicht dem FOSSIL mit dem Übertragen aufzuhören,
- sobald CTS gelöscht ist. Die Übertragung wird wiederaufgenommen, sobald CTS
- gesetzt ist. Der FOSSIL hebt RTS auf, sobald der Empfangspuffer zu einem vorher
- bestimmten Prozentsatz voll ist. Der FOSSIL setzt RTS wieder, sobald der Empfangspuffer
- unter einem vorher bestimmten Prozentsatz geleert ist. Der Punkt an dem dies auftritt
- bleibt dem jeweiligen FOSSIL Ausführer überlassen.
- 5) einschalten empfangen XON/XOFF ermöglicht dem FOSSIL ein XOFF zu senden,
- sobald der Empfangspuffer zu einem vorher definierten Prozentsatz voll
- ist. Eine XON wird gesendet, sobald der Empfangspuffer unter einem vorher
- bestimmten Prozentsatz geleert ist. Der Punkt an dem dies auftritt
- bleibt dem jeweiligen FOSSIL Ausführer überlassen.
- 6) Anwendungen die diese Funktion benutzen, sollten alle Bits auf ON setzen, auch
- die im Halbbyte von AL. Da ist eine kompatible (aber nicht identische) FOSSIL
- Treiber Ausführung die das obere Halbbyte zur Steuerung benutzt. Falls eine Anwendung
- alle Bits im oberen Halbbyte auf 1 gesetzt hat, sollte diese immerlaufen
- ungeachtet der Methode die von dem gegebenen Treiber benutzt wird.
-
-
- Aufruf AH 10h erweiterte Ctrl-C/Ctrl-K Kontrolle und Übertragung An/Aus
- AL Kennzeichen Bitmaskenbyte (Bit ist gesetzt falls aktiv)
- Bits 0 aktivieren/deaktivieren Ctrl-C/Ctrl-K Kontrolle
- 1 deaktivieren/aktivieren des Senders
- 2-7 nicht benutzt
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe AX Statusbyte
- 0000h control-C/K wurde nicht empfangen
- 0001h control-C/K wurde empfangen
- Anmerkung dies wird primär von Programmen benutzt, die kein Vertrauen an das XON/XOFF auf FOSSIL
- Ebene haben (ähnlich wie BBS Software).
-
-
- Aufruf AH 11h FOSSIL: einstellen aktuelle Cursorposition.
- DH Zeile( Zeile) 0-24
- DL Spalte 0-79
- Rückgabe keine
- Anmerkung 1) diese Funktion ist dasselbe wie der int 10h, fn 02h auf dem IBM PC.
- Die Cursorposition wird in DX übergeben: Zeile in DH und Spalte in DL. Diese
- Funktion behandelt den Bildschirm wie ein Koordinatensystem dessen Ursprung (0,0)
- die obere linke Ecke von dem Bildschirm ist.
- 2) Zeile und Spalte beginnt bei 0.
-
-
- Aufruf AH 12h FOSSIL: lesen aktuelle Cursorposition.
- Rücklauf DH Zeile
- DL Spalte
- Anmerkung 1) Dasselbe wie int 10h/fn 03h in dem IBM PC BIOS. Die aktuelle
- Cursorposition (dasselbe Koordinatensystem wie Funktion 16h)
- wird in DX zurückgegeben.
- 2) Zeile und Spalte beginnt bei 0.
-
-
- Aufruf AH 13h FOSSIL: einzelnes ANSI Zeichen am Bildschirm anzeigen.
- AL Wert des Zeichen das angezeigt werden soll
- Rückgabe keine
- Anmerkung dieser Aufruf ist ablaufinvariant, da die ANSI Abarbeitung über DOS
- durchgeführt wird.
-
-
- Aufruf AH 14h FOSSIL: aktivieren oder deaktivieren Watchdog Abarbeitung
- AL 00h deaktivieren Watchdog
- 01h aktivieren Watchdog
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe keine
- Anmerkung 1) dieser Aufruf ist die Ursache die den FOSSIL zum Neustart das System
- veranlasst, falls das Carrier detect Signal für den spezifizierten
- Port abfällt solange der Watchdog aktiviert ist.
- 2) der Port braucht nicht aktiv sein, damit diese Funktion arbeitet.
-
-
- Aufruf AH 15h zeige Zeichen am Bildschirm an, benutze dabei BIOS Routinen
- AL ASCII Wert des Zeichen das angezeigt werden soll
- Rückgabe keine
- Anmerkung 1) diese Funktion ist ablaufinvariant.
- 2) ANSI Abarbeitung wird nicht vorausgesetzt.
-
-
- Aufruf AH 16h einfügen oder löschen einer Funktion in der Takteinheitenkette
- AL 00h löschen einer Funktion
- 01h hinzufügen einer Funktion
- ES:DX Adresse der Funktion
- Rückgabe AX 0000h erfolgreich
- 0FFFFh erfolglos
-
-
- Aufruf AH 17h FOSSIL: Neustart System
- AL Startart
- 00h Kaltstart
- 01h Warmstart
- Rückgabe keine
-
-
- Aufruf AH 18h FOSSIL: lesen Block
- CX maximale Anzahl der Zeichen die übertragen werden
- DX Portnummer (NOP falls DX= 00FFh)
- ES:DI Zeiger zum Anwenderpuffer
- Rückgabe AX Anzahl der Zeichen die übertragen wurden
- Anmerkung 1) dies Funktion wartet nicht auf mehr Zeichen falls der Wert in CX die
- Anzahl der vorhandenen überschreitet.
- 2) ES:DI wird durch den Aufruf nicht verändert; der Anzahl der Bytes die
- übertragen wurden, wird in AX zurückgegeben.
-
-
- Aufruf AH 19h FOSSIL: schreiben Block
- CX maximale Anzahl der Zeichen die übertragen werden
- DX Portnummer (NOP falls DX= 00FFh)
- ES:DI Zeiger zum Anwenderpuffer
- Rückgabe AX Anzahl der Zeichen die übertragen wurden
- Anmerkung ES und DI wird nicht verändert
-
-
- Aufruf AH 1Ah FOSSIL: Break Signal senden, Start oder Ende
- AL 00h senden 'break' beenden
- 01h senden 'break' starten
- DX Portnummer (NOP falls DX= 00FFh)
- Rückgabe keine
- Anmerkung 1) Zurücksetzen aller Hindernisse zur Übertragungsflußsteuerung, wie XOFF
- empfangen.
- 2) Initialisieren (fn 04h) oder Deinitialisieren (fn 05h) beendet einen aktiven break.
- 3) die Anwendung die "Länge" vom break bestimmen.
-
-
- Aufruf AH 1Bh FOSSIL: rücklauf Information über der Treiber
- CX Größe des Anwenderpuffers in Bytes
- DX Portnummer (falls DX= 00FFh, Port Daten sind nicht zulässig)
- ES:DI Zeiger zum Anwenderpuffer
- Rückgabe AX Anzahl Zeichen übertragen
- ES:DI Anwenderpuffer Aufbau:
- 00h Wort Größe des Aufbaus in Bytes
- 02h Byte FOSSIL Treiber Version
- 03h Byte Revisionsebene von diesem Treiber
- 04h dwort FAR Zeiger zur ASCII ID Zeichenkette
- 08h Wort Größe des Eingabepuffers in Bytes
- 0Ah Wort Anzahl Bytes im Eingabepuffer
- 0Ch Wort Größe des Ausgabepuffers in Bytes
- 0Eh Wort Anzahl Bytes im Ausgabepuffer
- 10h Byte Bildschirmbreite in Zeichen
- 11h Byte Bildschirmhöhe in Zeichen
- 12h Byte aktuelle Baud-Rate, Computer zu Modem
- (siehe Maske in Funktion 00h
- Anmerkung 1) das Baud-Rate Byte enthält die Bits die fn 00h benutzt um den Port
- auf die Geschwindigkeit einzustellen.
- 2) die Felder die für einen einzelnen Port benutzt werden (Puffergröße, Platz im
- Puffer, Baud-Rate) sind undefiniert falls Port= 0FFh oder eine ungültiger
- Port in DX enthalten ist.
- 3) zusätzlich Information werden immer an diesen angefügt, deshalb ändern
- sich diese Felder mit FOSSIL Revisionänderungen nicht.
-
-
- Aufruf AH 7Eh FOSSIL: installieren einer externen Anwendung
- AL zugewiesener Code zur externen Anwendung
- ES:DX Zeiger zum Einsprungspunkt
- Rückgabe AX 1954h FOSSIL Treiber ist vorhanden
- nicht 1954h FOSSIL Treiber ist nicht vorhanden
- BH 00h scheiterte
- 01h erfolgreich
- BL zugewiesener Code zur Anwendung (derselbe wie AL beim Aufruf)
- Anmerkung 1) Anwendungcodes 80h-0BFh sind unterstützt. Codes 80h-83h sind reserviert.
- 2) eine Fehlercode von BH= 00h und AX= 1954h bedeutet, daß eine andere externe
- Anwendung schon mit dem Code in AL installiert wurde.
- 3) Anwendungen werden mit einem FAR Call aufgerufen und müssen einen
- FAR Return durchführen.
-
- Aufruf AH 7Fh FOSSIL: entfernen einer externen Anwendung
- AL zugewiesener Code zur externen Anwendung
- ES:DX Zeiger zum Einsprungspunkt
- Rückgabe AX 1954h
- BH 00h scheiterte
- 01h erfolgreich
- BL zugewiesener Code zur Anwendung (derselbe wie AL beim Aufruf)
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 15h Kassette I/O 3**8 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0054h) 1) umbenannt in "System Services" beim PS/2 Entwurf.
- 2) ausführen eines int 15h auf einem XT kann Ursache für ein Systemabsturz sein.
- Beim AT und später, Interrupts werden mit CLI ausgeschaltet sobald die
- Interrupt Service Routine aufgerufen wird, aber die meisten ROM
- Versionen schalten die Interrupts mit STI nicht wieder an.
- 3) Für den original IBM PC, int 15h gibt in AH= 80h zurück und CF ist gesetzt
- bei allen Aufrufen außer AH mit 0, 1, oder 2.
- 4) Für den PC/XT, int 15h gibt in AH= 86h zurück, CF ist gesetzt falls
- der Interrupt aufgerufen wird. (Das PC/XT ROM BIOS unterstützt den int 15h nicht)
- 5) Für den AT/339, int 15h gibt in AH= 86h zurück, CF ist gesetzt falls
- der Aufruf mit einem ungültigen Funktionscode erfolgte.
-
-
- Funktion 00h anschalten Kassettenmotor (PC, PCjr ausschließlich)
- Aufruf AH 00h
- Rückgabe CF gesetzt wenn Fehler
- AH Fehlercode
- 00h keine Fehler
- 01h CRC Fehler
- 02h schlechte Bandsignale
- keine Datenübergänge (PCjr)
- 03h keine Daten auf dem Band gefunden
- nicht benutzt (PCjr)
- 04h keine Daten
- kein Vorspann (PCjr)
- 80h ungültiger Befehl
- 86h keine Kassette vorhanden
- nicht zulässig in PCjr
- Anmerkung NOP für Systeme wo die Kassette nicht unterstützt wird.
-
-
- Funktion 01h ausschalten Kassettenmotor (PC, PCjr ausschließlich)
- Aufruf AH 01h
- Rückgabe CF gesetzt wenn Fehler
- AH Fehlercode( 86h)
- Anmerkung NOP für Systeme wo die Kassette nicht unterstützt wird.
-
-
- Funktion 02h lesen Blöcke von Kassette (PC, PCjr ausschließlich)
- Aufruf AH 02h
- CX Anzahl zu lesender Bytes
- ES:BX Segment:Offset + 1 vom letzten gelesenen Byte
- Rückgabe CF gesetzt wenn Fehler
- AH Fehlercode( 01h, 02h, 04h, 80h, 86h)
- DX Anzahl der Bytes die gelesen wurden
- ES:BX Zeiger auf das letzte geschriebene Byte
- Anmerkung 1) NOP für Systeme wo die Kassette nicht unterstützt wird.
- 2) Kassettentransaktionen lesen normalerweise 256 Byte große Blöcke.
-
-
- Funktion 03h schreibe Datenblöcke auf Kassette (PC, PCjr ausschließlich)
- Aufruf AH 03h
- CX Anzahl zu schreibender Bytes
- ES:BX Zeiger zum Datenpuffer
- Rückgabe CF gesetzt wenn Fehler
- AH Fehlercode( 80h, 86h)
- CX 00h
- ES:BX Zeiger zum letzten geschriebenen Byte +1
- Anmerkung 1) NOP für Systeme wo die Kassette nicht unterstützt wird.
- 2) der letzte Blocken wird auf 256 Bytes mit Nullen aufgefüllt, falls benötigt.
- 3) es werden bei diesem Service keine Fehler zurückgegeben
-
-
- Funktion 0Fh ESDI formatieren Einheit periodisch Interrupt( PS/2 50+)
- Aufruf AH 0Fh
- AL Phasencode
- 00h reserviert
- 01h Oberflächenanalyse
- 02h Formatierung
- Rückgabe CF gelöscht falls Formatierung fortsetzt werden soll
- gesetzt falls es beendet werden sollt
- Anmerkung 1) ruft das BIOS auf dem ESDI Festplattenlaufwerksadapter auf/dies erfolgt während
- der Formatierung oder der Oberflächenanalyse nachdem ein Zylinder vervollständigt ist.
- 2) dieser Funktionsaufruf kann durch ein Programm belegt sein, sodaß es erkennen kann,
- wie jede Zylinder formatiert oder analysiert ist. Das Programm kann
- die Interrupts für jede Phase zählen um den aktuellen Zylinder festzustellen.
- 3) der vorgegebene BIOS Handler gibt ein gesetztes CF für diese Funktion zurück.
-
-
- Funktion 10h TopView API Funktionsaufrufe (TopView)
- siehe Kapitel 17
-
-
- Funktion 20h PRINT.COM (DOS 3.1+ intern) (AT, XT/286, PS/2 50+)
- Aufruf AH 20h
- AL Unterfunktion
- 00h ausschalten kritisches Bereichskennzeichen
- 01h einstellen kritisches Bereichskennzeichen
- ES:BX Zeiger zum Kennzeichenbyte gesetzt solange DOS Aufrufe aktiv sind
- 10h einstellen SysReq Routine
- 11h Abschluß der SysReq Routine (ausschließlich Software)
-
-
- Funktion 21h Lesen Power-On Selbsttest (POST) Fehleraufzeichnung (PS/2 50+)
- Aufruf AH 21h
- AL 00h Lesen POST Aufzeichnungen
- 01h Schreiben POST Aufzeichnungen
- BH Gerät ID
- BL Gerät Fehlercode
- Rückgabe CF gesetzt wenn Fehler
- AH Zustand
- 00h erfolgreich gelesen
- BX Anzahl POST Fehlercodes gespeichert
- ES:DI Zeiger zur Fehleraufzeichnung
- 01h Liste voll
- 80h ungültiger Befehl
- 86h Funktion wird nicht unterstützt
- Anmerkung die Aufzeichnung ist ein Reihe von Wörtern, das erste Byte identifiziert den
- Fehlercode und das zweite ist das Gerät ID.
-
-
- Funktion 40h Lesen/modifizieren Profile (Convertible)
- Aufruf AH 40h
- AL 00h lesen System Profile in CX, BX
- 01h schreiben System Profile von CX, BX
- 02h lesen internes Modem Profile in BX
- 03h schreiben internes Modem Profile von BX
- BX profile Information
- Rückgabe BX internes Modem Profile (von 02h)
- CX, BX System Profile (von 00h)
-
-
- Funktion 41h warten auf ein externes Ereignis (Convertible)
- Aufruf AH 41h
- AL Bedingungstyp
- Bits 0-2 Bedingung zum Warten auf
- 0, 0, 0 irgendein externes Ereignis
- 0, 0, 1 vergleichen und Rücksprung falls gleich
- 0, 1, 0 vergleichen und Rücksprung falls nicht gleich
- 0, 1, 1 testen und Rücksprung falls nicht Null
- 1, 0, 0 testen und Rücksprung falls Null
- 3 reserviert
- 4 0 Anwender Byte
- 1 Portadresse
- 5-7 reserviert
- BH Bedingungsvergleich oder Maskenwert
- Bedingungcodes:
- 00h irgendein externes Ereignis
- 01h vergleichen und Rücksprung falls gleich
- 02h vergleichen und Rücksprung falls nicht gleich
- 03h test und Rücksprung falls nicht Null
- 04h test und Rücksprung falls Null
- BL Zeitüberschreitung Wert in 55 Millisekunden Einheiten
- 00h wenn keine Zeitbegrenzung
- DX I/O Portadresse (falls AL Bit 4= 1)
- ES:DI Zeiger zum Anwender Byte (falls AL Bit 4= 0)
-
-
- Funktion 42h Anforderung Systemabschaltung (Convertible)
- Aufruf AH 42h
- AL 00h benutze System Profile
- 01h Unterbrechnung erzwingen ungeachtet vom Profile
- Rückgabe Unbekannt
-
-
- Funktion 43h lesen Systemstatus (Convertible)
- Aufruf AH 43h
- Rückgabe AL Statusbyte
- Bit 0 LCD nicht angeschlossen
- 1 reserviert
- 2 RS232/parallel angeschaltet
- 3 internes Modem angeschaltet
- 4 Netz ativiert beim Alarm
- 5 ungültige Uhrzeit
- 6 externes Netzteil in Benutzung
- 7 Batteriespannung niedrig
-
-
- Funktion 44h (De)aktivieren Energie für internes Modem (Convertible)
- Aufruf AH 44h
- AL 00h Energie auschalten
- 01h Energie anchalten
- Rückgabe Unbekannte
-
-
- Funktion 4Fh OS Hook - Tastatur abstellen (außer PC, PCjr, und XT)
- Aufruf AH 4Fh
- AL Auswahlcode, CF gesetzt
- Rückgabe AL Auswahlcode
- CF gesetzt Abarbeitung gewünscht
- gelöscht Auswahlcode wird nicht benötigt
- Anmerkung 1) aufgerufen vom int 9 Handler für jeden Tastenanschlag zum übersetzen der Auswahlcodes.
- 2) ein OS oder ein TSR kann diese Funktion benutzen, um die unbearbeiteten Tastatureingaben
- zu filrtern. Der neue Handler kann den Auswahlcode ersetzen, denselben Auswahlcode
- zurückgeben, oder das CF setzen um die Eingabe zu verwerfen.
- Der vorgegebene BIOS Routine gibt einfach den unveränderten
- Auswahlcode zurück.
- 3) ein Programm kann den int 15h/fn0C0h aufrufen, um festzustellen ob das
- das BIOS auf dem Hauptrechner die Tastaturabschaltung unterstützt.
- 4) intern benutzt von PC-MOS/386 v4.00+ zur Tastatureingabe.
-
-
- Funktion 52h MicroSoft RAM-Residente Software Spezifikationen 1.0
- dieser Standard wurde 1986 von MicroSoft vorgeschlagen, als eine allgemein
- gültige Schnittstelle für TSR Programme. Es scheint weitgehend unbekannt
- zu sein oder wird einfach mißachtet.
-
- Funktion 0: holen Programminformation durch den Namen
- Aufruf DS:BX das Programm ID von dem memory-residenten Programm das gesucht wird
- Rückgabe AL 0FFh falls das Programm installiert ist
- 00h falls es nicht installiert ist
- CX die Nummer des Programms. Der erste Programm wird installiert mit der
- Nummer 0, das zweite Programm mit der Nummer 1, usw. Bei Benutzen
- eines dynamischen numerierenden Systems, vermeiden wir Konflikte
- zwischen Programme die dasselbe ID wählen. Auch ist dies ein guter Weg
- um alle speicherresistente Programme mit der Funktion 1 zu untersuchen .
- ES:DX Zeiger zu der Programm ID Aufzeichnung (PIDR)
- Anmerkung dies Funktion testet ob ein Programm speicherresistent ist und gibt einen Zeiger
- zu dessen Programminformation zurück, falls es speicherresistent ist. Um diese Funktion
- zu benutzen, DS:BX auf das Programm ID zeigen. Jede installierte Programm
- überprüft das Programm ID mit seinem eigenen internen Programm ID.
-
- Funktion 1: holen Programminformation durch die Nummer
- Aufruf CX Programmnummer für welches wir die Information benötigen
-
- Rückgabe AL 0FFh falls das Programm installiert ist
- 00h falls es nicht installiert ist
- ES:DX Zeiger zu der Programm ID Aufzeichnung (PIDR)
- Anmerkung diese Funktion gibt genau dieselben Information wie Funktion 0 zurück. Die
- einzige Differenz ist, wie das benötigte Programm identifiziert wird, welches
- durch seine Position in der Interruptkette bestimmt wird; Programm 0 ist das
- letzte Programm in der Kette, und das erste Programm in der Kette (normalerweise
- das letzte installierte Programm) hat die höchste Nummer.
-
- Funktion 2: aktivieren Programm
- Aufruf CX Nummer des Programms welches aktiviert werden soll
- DS:BX Aktivierungaufzeichnung. Dies Aufzeichnung übergibt dem Programm Information
- wie und was in dem Programm aktiviert werden soll.
- Rückgabe keine
- Anmerkung dies Funktion aktiviert eins von den installierten Programmen. Es ist nützlich
- falls viele Schreibtisch Anwendungen über ein Bedienungsfeld gesteuert werden
- sollen, ähnlich dem was in SideKick benutzt wird. Es kann auch dazu benutzt werden,
- um Programm wie ProKey einen benannten Makro unter Programmsteuerung ausführen zulassen,
- oder mit SideKick eine von den Schreibtischanwendungen von einem
- Programm oder einer Stapeldatei aufzurufen.
-
- Funktion 3: Programm deaktivieren
- Aufruf CX Nummer des Programms welches deaktiviert werden soll
- DS:BX Deaktivierungsaufzeichnung. Dies Aufzeichnung übergibt dem Programm Information
- wie und was in dem Programm deaktiviert werden soll.
- Rückgabe keine
- Anmerkung diese Funktion ist das Gegenteil von Funktion 2 (aktivieren Programm).
-
- Funktion 4: Programm einschalten
- Aufruf CX Nummer des Programms welches eingeschaltet werden soll
- DS:BX Einschaltmaskenaufzeichnung. Dies Maske beschreibt welche Merkmale eingeschaltet
- werden sollen. Ein Aufzeichnung die nichts enthält, ermöglicht alle Merkmale.
- Rücklauf keine
- Anmerkung dies Funktion ist der Gegenteil von Funktion 5 (ausschalten Programm).
-
- Funktion 5: Programm ausschalten
- Aufruf CX Nummer des Programms welches ausgeschaltet werden soll
- DS:BX Ausschaltmaskenaufzeichnung. Dies Maske beschreibt welche Merkmale ausgeschaltet
- werden sollen. Eine Aufzeichnung die nichts enthält, schaltet alle Merkmale aus.
- Rücklauf keine
- Anmerkung manchmal ist es notwendig ein Programm auszuschalten um Konflikte mit anderen
- Programmen zu verhindern, diese Funktion ist dafür gedacht.
- Diese Funktion ist das Gegenteil von Funktion 4 (einschalten Programm).
-
-
- Funktion 70h EEROM Handler (Tandy 1000HX)
- Aufruf AH 00h lesen vom EEROM
- BL 00h
- 01h schreiben zum EEROM
- BL Welches Wort geschrieben werden soll (0-15)
- DX Wert des zu schreibenden Wortes
- Rückgabe DX (AH= 00h) Wert des Wortes
- CF gesetzt wenn Fehler (System ist kein Tandy 1000 HX)
-
-
- Funktion 80h OS Hook - Gerät öffnen (AT, XT/286, PS/2)
- Aufruf AH 80h
- BX Gerät ID
- CX Prozeß ID
- Rückgabe CF gesetzt wenn Fehler
- AH Status
- Anmerkung 1) erwirbt die Rechte an einem logisch Gerät für einen Vorgang.
- 2) dieser Aufruf, zusammen mit fns 81h und 82h, definiert ein einfaches Protokoll
- daß benutzt werden kann, um über die Verwendung von Geräten bei mehrfacher
- Benutzung zu entscheiden. Ein Multitasking Programmmanager sollte den int 15h
- umleiten um den geeigneten Service zu liefern.
- 3) die vorgegebene BIOS Routine dieser Funktion gibt einfach in AH= 00h
- zurück und das CF wird gelöscht.
-
-
- Funktion 81h Gerät schließen (AT, XT/286, PS/2)
- Aufruf AH 81h
- BX Gerät ID
- CX Prozeß ID
- Rückgabe CF gesetzt wenn Fehler
- AH Status
- Anmerkung 1) Freigeben eines logischen Gerätes nach einem abgearbeiteten Vorgang.
- 2) Ein Multitasking Programmmanager sollte den int 15h umleiten um den
- geeigneten Service zu liefern.
- 3) die vorgegebene BIOS Routine dieser Funktion gibt einfach in AH= 00h
- zurück und das CF wird gelöscht.
-
-
- Funktion 82h Programmbeendigung (AT, XT/286, PS/2)
- AH 82h
- BX Gerät ID
- Rückgabe CF gesetzt wenn Fehler
- AH Status
- Anmerkung 1) schließt alle logischen Geräte die mit Funktion 80h geöffnet wurden.
- 2) Ein Multitasking Programmmanager sollte den int 15h umleiten um den
- geeigneten Service zu liefern.
- 3) die vorgegebene BIOS Routine dieser Funktion gibt einfach in AH= 00h
- zurück und das CF wird gelöscht.
-
-
- Funktion 83h Ereignis abwarten (AT, XT/286, Convertible, PS/2 50+)
- Aufruf AH 83h
- AL 00h einstellen Intervall
- 01h abbrechen
- CX:DX Anzahl Mikrosekunden abwarten (eine Einheit sind 976 Mikrosekunden)
- ES:BX Zeiger zum Semaphorkennzeichen (Bit 7 ist gesetzt sobald der Intervall abläuft)
- (Zeiger zum Speicher des Aufrufers) (einige Quellen schreiben das Bit 15 gesetzt ist)
- Rückgabe CF gesetzt (1) falls Funktion schon beschäftigt ist
- Anmerkung 1) erbittet das setzen des Semaphors nach einem spezifizierten Intervall oder
- annulliert ein vorhergehende Anforderung.
- 2) der aufrufende Programm ist verantwortlich für das Löschen des Semaphors
- bevor diese Funktion angefordert wird.
- 3) die eigentliche Dauer ist immer ein mehrfaches Integral von
- 976 Mikrosekunden. Die CMOS Datum/Taktgeber Chip Interrupts werden
- benutzt um diese Funktion zu realisieren.
- 4) diese Funktion erlaubt programmierte, hardware-unabhängige Verzögerungen in
- einer feineren Auflösung als dies durch die Beutzung der MS-DOS
- Zeitfunktionen (int 21h/fn 2Ch) möglich wäre. Diese gibt die Zeit in
- hunderstel Sekunden zurück.
- 5) CX:DX ist eine 4-Byte Ganzzahl.
-
-
- Funktion 84h lesen Joystick Einstellungen (AT, XT/286, PS/2)
- Aufruf AH 84h
- DX 00h lesen der aktuellen Schaltereinstellungen (Rückgabe in AL)
- 01h Stellung der Joysticks lesen
- Rückgabe CF gesetzt wenn Fehler
- (fn 00h)
- AL Schaltereinstellungen (Bits 7-4)
- ( fn 01h)
- AX Joystick A (X) Wert
- BX Joystick A (Y) Wert
- CX Joystick B (X) Wert
- DX Joystick B (Y) Wert
- Anmerkung 1) ein Fehler wird zurückgegeben, falls DX keine zulässige Unterfunktion enthält.
- 2) wenn kein Spieleadapter installiert ist, geben alle Werte 00h zurück.
- 3) Bei Benutzung eines 250K Ohm Joysticks, liegen die Potentiometer Werte
- gewöhnlich im Bereich von 0-416 (0000h-01A0h).
-
-
- Funktion 85h System Anforderung (SysReq) Taste gedrückt (außer PC, PCjr, XT)
- Aufruf AH 85h
- AL 00h Taste gedrückt
- 01h Taste losgelassen
- Rückgabe CF gesetzt wenn Fehler
- AH Fehlercode
- Anmerkung 1) wird durch die BIOS Tastaturroutine aufgerufen, sobald die SysReq Taste erkannt wurde.
- 2) der BIOS Handler für diesen Aufruf ist eine Dummy-Routine die immer einen
- erfolgreichen Status meldet, falls diese nicht mit einer ungültigen Unterfunktion in AL aufgerufen wurde.
- 3) Ein Multitasking Programmmanager sollte den int 15h umleiten um
- sich zu melden sobald der Anwender die SysReq Taste betätigt.
-
-
- Funktion 86h Verzögern (außer PC, PCjr, XT)
- AH 86h
- CX:DX 4-Byte Ganzzahl, Anzahl Mikrosekunden verzögern
- Rückgabe CF gelöschen nach der Verzögerung
- CF gesetzt unmittelbar beim auftreten von Fehlern
- Anmerkung 1) Suspendiert das aufrufenden Programm für ein spezifizierten Intervall in Mikrosekunden.
- 2) die eigentliche Dauer ist immer ein mehrfaches Integral von
- 976 Mikrosekunden.
- 3) diese Funktion erlaubt programmierte, hardware-unabhängige Verzögerungen in
- einer feineren Auflösung als dies durch die Beutzung der MS-DOS
- Zeitfunktionen (int 21h/fn 2Ch) möglich wäre. Diese gibt die Zeit in
- hunderstel Sekunden zurück.
-
-
- Funktion 87h Speicherblock verschieben (ausschließlich 2-3-486 Maschinen)
- AH 87h
- CX Anzahl der zu verschiebenden Worte
- ES:SI Zeiger zur Global Deskriptor Tabelle( GDT)
- Offset 00h-0Fh reserviert, auf Null gesetzt
- 00h Null Deskriptor
- 08h uninitialisiert, wird erzeugt im GDT Deskriptor
- 10h-11h Quelle Segmentlänge in Bytes
- (2*CX-1 oder größer)
- 12h-14h 24-bit gerade Quelladresse
- 15h Zugriffsrechte Byte (immer 93h)
- 16h-17h reserviert, auf Null gesetzt
- 18h-19h Ziel Segmentlänge in Bytes
- (2*CX-1 oder größer)
- 1Ah-1Ch 24-bit gerade Zieladresse
- 1Dh Zugriffsrechte Byte (immer 93h)
- 1Eh-2Fh reserviert, auf Null gesetzt
- 20h uninitialisiert, benutzt von BIOS
- 28h uninitialisiert, wird erzeugt im SS Deskriptor
- Rückgabe CF gesetzt wenn Fehler
- AH Status
- 00h Quelle wurde an das Ziel kopiert
- 01h Paritätsfehler
- 02h Ausnahme Interrupt Fehler
- 03h Auswertung der Adresszeile 20 scheiterte
- Anmerkung 1) die GDT Tabelle setzt sich aus sechs 8-byte Deskriptoren zusammen, die
- von der CPU in geschützten Modus benutzt wird. Der vier Deskriptoren
- der Offsets 00h-0Fh und 20h-2Fh werden durch das BIOS gefüllt, bevor der
- CPU Modus umgeschaltet wird.
- 2) die Adressen die in der Deskriptor Tabelle benutzt werden, sind gerade (physisch)
- 24-bit Adressen in dem Bereich 000000h-0FFFFFFh - keine Segmente und
- Offsets - mit dem niederwertigen Byte an der niedrigsten Adresse und dem
- höherwertigen Byte an der höchsten Adresse.
- 3) Die Interrupts sind während dieses Aufrufes ausgeschaltet; kann zu Störungen
- beim arbeiten mit comm Programmen, Netzwerktreiber, oder anderer Software führen,
- die sich prompten Service von Hardware Interrupts verlassen.
- 4) Dieser Aufruf ist nicht zulässig in der OS/2 Kompatibilitäts Box.
- 5) Der Aufruf verschiebt ein Speicherblock von irgendeiner Adresse im echten
- oder geschützten Modus zu igendeiner anderen in den beiden Modi.
-
-
- Funktion 88h Größe des Erweiterungsspeichers ermitteln (AT, XT/286, PS/2)
- Aufruf AH 88h
- Rückgabe AX Anzahl zusammenhängender 1K Blöcke des Erweiterungsspeichers
- beginnent bei der Adresse 1024k
- Anmerkung dieser Aufruf funktioniert nicht in der OS/2 Kompatibilitäts Box.
-
-
- Funktion 89h Prozessor in geschützten Modus umschalten (AT, XT/286, PS/2)
- Aufruf AH 89h
- BH Interruptnummer für IRQ0, geschrieben zu ICW2 von 8259 PIC #1
- (muß durch 8 teilbar sein, entscheidet IRQ0-IRQ7)
- BL Interruptnummer für IRQ8, geschrieben zu ICW2 von 8259 PIC #2
- (muß durch 8 teilbar sein, entscheidet IRQ8-IRQ15)
- ES:SI Zeiger zur 8-Einträge umfassende Deskriptor Tabelle für geschützten Modus:
- Offset 00h Null Deskriptor, initialisiert mit Null
- 08h GDT Deskriptor
- 10h IDT (Interrupt Deskriptor Tabelle) Deskriptor
- 18h DS, Datensegment des Benutzers
- 20h ES, Extrasegment des Benutzers
- 28h SS, Stacksegment des Benutzers
- 30h CS, Codesegment des Benutzers
- 38h uninitialisiert, benutzt zur Erstellung eines Deskriptors
- für das BIOS Codesegment
- Rückgabe CF gesetzt wenn Fehler
- AH 0FFh Fehler beim schalten der Adresszeile 20
- CF gelöscht Funktion erfolgreich (CPU ist im geschützten Modus)
- AH 00h
- CS benutzerbestimmt Selektor
- DS benutzerbestimmt Selektor
- ES benutzerbestimmt Selektor
- SS benutzerbestimmt Selektor
- Anmerkung der Anwender muß die ersten sieben Deskriptoren initialisieren; der achte
- wird vom BIOS gefüllt, um eine Adressierbarkeit für seine eigene Ausführung zu liefern.
- Der aufrufende Programm kann den achten Deskriptor nach Beendigung dieser
- Funktion modifizieren und benutzen.
-
-
- Funktion 90h Schleife Gerät ist beschäftigt (außer PC, PCjr, XT)
- Aufruf AH 90h
- AL vordefinierter Gerättypen Code:
- 00h Festplatte (kann Zeit überschreiten)
- 01h Diskette (kann Zeit überschreiten)
- 02h Tastatur (keine Zeitüberschreitung möglich)
- 03h PS/2 pointing device (kann Zeit überschreiten)
- 80h Netzwerk (keine Zeitüberschreitung möglich)
- 0FCh Festplatte zurücksetzen (PS/2) (kann Zeit überschreiten)
- 0FDh Diskettenmotor Start (kann Zeit überschreiten)
- 0FEh Drucker (kann Zeit überschreiten)
- ES:BX Zeiger zum Anforderungsblock für Typencodes 80h bis 0FFh
- (für Netzwerk Adapter ES:BX ist ein Zeiger zum Netzsteuerungsblock)
- Rückgabe CF gesetzt falls Wartezeit um ist
- gelöscht falls Treiber warten muß
- Anmerkung 1) benutzt von NETBIOS.
- 2) auswählbar Typencodes sind wie folgt belegt:
- 00h-7Fh nicht ablaufinvariante Geräte; OS entscheidet den Zugriff
- auf mehrfach aufrufbare serielle Geräte
- 80h-0BFh ablaufinvariant Geräte; ES:BX zeigt zu einen eindeutigen Kontrollblock
- 0C0h-0FFh nur Warten Aufrufe, kein POST int 15/fn 91h Ergänzungsaufruf
- 3) aufgerufen von dem BIOS Festplatten, Drucker, Netzwerk, und Tastatur Handler
- um ein programmiertes Warten für den I/O Abschluß durchzuführen.
- 4) Ein Multitasking Programmmanager sollte den int 15h/fn 90h umleiten um
- andere Aufgaben zu versenden solange die I/O Operation aktiv ist.
- 5) die vorgegebene BIOS Routine dieser Funktion gibt einfach in AH= 00h
- zurück und das CF wird gelöscht.
-
-
- Funktion 91h Interrupt vervollständigen (AT, XT/286, PS/2 50+)
- Aufruf AH 91h
- AL Typencode (siehe AH= 90h vorher)
- 00h-7Fh mehrfach aufrufbare serielle Geräte
- 80h-0BFh ablaufinvariante Geräte
- ES:BX Zeiger zum Anforderungsblock für Typenccodes 80h bis 0BFh
- Rückgabe AH 00h
- Anmerkung 1) benutzt von NETBIOS.
- 2) aufgerufen vom BIOS Festplatten, Netzwerk, und Tastatur Handler um zu
- signalisieren das die I/O Operation abgeschlossen oder das Gerät bereit ist.
- 3) vordefinierte Gerätarten die den Geräte POST benutzen können sind:
- 00H Festplatte (kann Zeit überschreiten)
- 01H Diskette (kann Zeit überschreiten)
- 02H Tastatur (keine Zeitüberschreitung möglich)
- 03H PS/2 pointing device (kann Zeit überschreiten)
- 80H Netzwerk (keine Zeitüberschreitung möglich)
- 4) die BIOS Drucker Routine benutzt diese Funktion nicht, weil die
- Druckerausgabe nicht Interruptgesteuert ist.
- 5) Ein Multitasking Programmmanager sollte den int 15h/fn 91h umleiten um
- andere Aufgaben durchzuführen, sobald die I/O Operation abgeschlossen ist.
- 6) die vorgegebene BIOS Routine dieser Funktion gibt einfach in AH= 00h
- zurück und das CF wird gelöscht.
-
-
- Funktion 0C0h Feststellen Systemkonfiguration (XT nach 1/10/86, PC Convertible,
- XT/286, AT, PS/2)
- Aufruf AH 0C0h
- Rückgabe CF gesetzt falls das BIOS den Aufruf nicht unterstützt
- ES:BX Zeiger zur ROM System Deskriptor Tabelle
- Bytes 00h-01h Anzahl Bytes in der folgenden Tabelle (norm. 16 Bytes)
- 02h System ID Byte; siehe Abschnitt 2 zur Interpretation
- 03h sekundär ID Byte unterscheidet zwischen AT und XT/286, etc.
- 04h BIOS Revisionsebene, 0 für erste Freigabe, 1 für zweite, etc.
- 05h Besonderheiten Informationsbyte
- Bits 0 reserviert
- 1 Mikro Kanal Bus (an Stelle von ISA oder EISA)
- 2 erweiterter BIOS Bereich ab 640k
- 3 warten auf ein externes Ereignis wird unterstützt (int 15fn41)
- benutzt beim Convertible; reserviert bei PS/2 Systemen
- 4 kbd intrcpt: int 15h, fn 04h nach int 09h aufgerufen
- 5 Echtzeituhr installiert
- 6 zweiter 8259 installiert (Kaskade IRQ2)
- 7 DMA Kanal 3 - benutzt vom Festplatten BIOS
- 06h Unbekannte (auf 0 gesetzt) (reserviert von IBM)
- 07h Unbekannte (auf 0 gesetzt) (reserviert von IBM)
- 08h Unbekannte (auf 0 gesetzt)
- 09h Unbekannte (auf 0 gesetzt) (Award BIOS Urheberrecht hier)
- Anmerkung 1) Int 15h ist auch benutzt für den Multitask Hook auf PS/2 Maschinen.
- Bis jetzt keine Register Einstellungen verfügbar.
- 2) der 1/10/86 XT BIOS gibt einen falschen Wert im Besonderheiten Byte zurück.
-
-
- Funktion 0C1h Rückgabe erweiterter BIOS Datenbereich Segmentadresse (PS/2)
- Aufruf AH 0C1h
- Rückgabe CF gesetzt wenn Fehler
- ES Segment vom XBIOS Datenbereich
- Anmerkung 1) der XBIOS Datenbereich wird am oberen Ende des konventionellen
- Speicher während der POST (Power-On-Self-Test) abläuft belegt.
- 2) das Wort an 0040:0013h (Speichergröße) wird aktualisiert, damit der
- verfügbare Speicher für DOS und Anwenderprogramme zurückgegeben wird.
- 3) das erste Byte im XBIOS Datenbereich ist initialisiert mit seiner Länge in K.
- 4) ein Programm kann durch den int 15h/fn 0C0h überprüfen ob der XBIOS
- Datenbereich existiert.
-
-
- Funktion 0C2h pointing device BIOS Schnittstelle (DesQview 2.x) (PS/2)
- Aufruf AH 0C2h
- AL 00h aktivieren/deaktivieren pointing device
- BH 00h deaktivieren
- 01h aktivieren
- 01h zurücksetzen pointing device
- zurücksetzen der Maus oder ein anderes pointing device
- setzen der Abtastrate, Auflösung, und andere Kenndaten auf ihre
- vorgegebenen Werte.
- Rückgabe BH Gerät ID ( 0= erstes)
- Anmerkung 1) nach einem zurücksetzen, der Status des
- pointing device ist wie folgt:
- ausgeschaltet;
- Abtastrate ist 100 Meldungen pro Sekunde;
- Auflösung ist 4 Schritte pro Millimeter;
- Skalierung ist 1 zu 1.
- 2) die Paketgröße der Daten bleibt unverändert bei dieser fn.
- 3) Anwendungen können die Unterfunktionen der fn 0C2h benutzen,
- um die Geärte auf andere Werte zu initialisieren und
- dann das Gerät mit fn 00h aktivieren.
- 4) BL ist wird geändert.
- 02h einstellen Abtastrate
- BH 00h 10/Sekunde
- 01h 20/Sekunde
- 02h 40/Sekunde
- 03h 60/Sekunde
- 04h 80/Sekunde
- 05h 100/Sekunde (vorgegeben)
- 06h 200/Sekunde
- 03h einstellen Auflösung
- BH 00h ein Schritt pro mm
- 01h zwei Schritte pro mm
- 02h vier Schritte pro mm (vorgegeben)
- 03h acht Schritte pro mm
- 04h Typ des pointing device feststellen
- Rückgabe BH ID Code für die Maus oder anderes pointing device
- 05h Initialisieren pointing device Schnittstelle
- setzten der Paketgröße der Daten für die Maus oder anderes pointing
- device, und initialisieren der Auflösung, Abtastrate und der Skalierung
- auf ihre vorgegeben Werte.
- BH Paketgröße Daten (1-8 Bytes)
- Anmerkung nach diesem Arbeitsgang, der Status des pointing device
- ist wie folgt:
- a) ausgeschaltet;
- b) Abtastrate ist 100 Meldungen pro Sekunde;
- c) Auflösung ist 4 Schritte pro Millimeter;
- d) Skalierung ist 1 zu 1.
- 06h Status feststellen oder einstellen Skalierungsfaktor
- gibt den aktuellen Zustand von der Maus oder ein anderes pointing
- device zurück, oder setzt den Skalierungsfaktor.
- BH 00h Rückgabe Gerätestatus
- Rückgabe BL Statusbyte
- Bits 0 gesetzt falls rechter Knopf gedrückt ist
- 1 reserviert
- 2 gesetzt falls linker Knopf gedrückt ist
- 3 reserviert
- 4 0 1:1 Skalieren
- 1 2:1 Skalieren
- 5 0 Gerät ist ausgeschaltet
- 1 Gerät ist eingeschaltet
- 6 0 Stream Modus
- 1 Remote Modus
- 7 reserviert
- CL Auflösung
- 00h 1 Schritt pro Millimeter
- 01h 2 Schritte pro Millimeter
- 02h 4 Schritte pro Millimeter
- 03h 8 Schritte pro Millimeter
- DL Abtastrate (in Hex)
- 0Ah 10 Meldungen pro Sekunde
- 14h 20 Meldungen pro Sekunde
- 28h 40 Meldungen pro Sekunde
- 3Ch 60 Meldungen pro Sekunde
- 50h 80 Meldungen pro Sekunde
- 64h 100 Meldungen pro Sekunde
- 0C8h 200 Meldungen pro Sekunde
- 01h einstellen Skalierung 1:1
- 02h einstellen Skalierung 2:1
- 07h einstellen Adresse pointing device handler
- meldet dem BIOS pointing device Treiber die Adresse einer Routine
- die aufgerufen wird sobald Daten an dem pointing device verfügbar
- sind.
- ES:BX Adresse vom Geräte Handler des Benutzers
- Rückgabe AL 00h
- Rückgabe CF gesetzt wenn Fehler
- AH Status
- 00h erfolgreich
- 01h ungültige Funktion
- 02h ungültige Eingabe
- 03h Schnittstellenfehler
- 04h gebraucht zur Rücksendung
- 05h kein Geräte Handler installiert
- Anmerkung 1) die Werte in BH für diese Funktionen die als Eingabe dienen, werden
- in unterschiedlich Adressen für jede Unterfunktion gespeichert.
- 2) der Benutzer Handler für pointing device Daten wird via ein FAR Call
- aufgerufen, mit vier Parameter auf dem Stapel:
- SS:SP+0Ah Zustand
- SS:SP+08h x Koordinaten
- SS:SP+06h y Koordinaten
- SS:SP+04h z Koordinaten (immer 0)
- der Handler muß via ein FAR Return beendet wrede, ohne das die
- Parameter vom Stapel entfernt werden.
- 3) das Parameterstatus Wort das an den Handler zurückgegeben wird,
- ist interpretiert wie folgt:
- Bits 0 linker Knopf gedrückt
- 1 rechter Knopf gedrückt
- 2-3 reserviert
- 4 Vorzeichen vom x Wert ist negativ
- 5 Vorzeichen vom y Wert ist negativ
- 6 Überlauf beim x Wert
- 7 Überlauf beim y Wert
- 8-0Fh reserviert
-
-
- Funktion 0C3h aktivieren/deaktivieren Watchdog Zeitüberschreitung (PS/2 50+)
- Aufruf AH 0C3h
- AL 00h deaktivieren Watchdog
- 01h aktivieren Watchdog
- BX Zeitzähler
- Rückgabe CF gesetzt wenn Fehler
- Anmerkung 1) der Watchdog Zeit-Zähler erzeugt ein NMI.
- 2) dies ist zum Schutz mit einem echten OS , damit dies nicht ahhängig
- ist und temporäre Meister nicht fähig sind den Bus für immer zu belegen.
-
-
- Funktion 0C4h programmierbare Optionsauswahl (PS/2 50+)
- Aufruf AH 0C4h
- AL 00h Rückgabe Basisadresse POS Register
- 01h aktivieren Steckplatz
- BL Steckplatz Nummer
- 02h aktivieren Adapter
- Rückgabe CF gesetzt wenn Fehler
- DX Basisadresse POS Register (falls Funktion 00h)
- Anmerkung 1) Fn 00h gibt die Basisadresse des programmierbaren Optionsauswahl Registers zurück,
- aktiviert ein Steckplatz zur Einstellung, oder aktiviert einen Adapter.
- 2) ausschließlich zulässig auf Maschinen mit Mikro Kanal Architektur (MCA) Bus.
- 3) nachdem ein Steckplatz mit fn 01h aktiviert wurde, wesentlich Information
- für den Adapter können erhalten werden, indem eine Eingabetransaktion
- für den Port durchgeführt wird.
- Port Funktion
- 100h MCA ID (niederwertiges Byte)
- 101h MCA ID (höherwertiges Byte)
- 102h Optionsauswahl Byte 1
- Bit 0 0 falls deaktiviert
- 1 falls aktiviert
- 103h Optionsauswahl Byte 2
- 104h Optionsauswahl Byte 3
- 105h Optionsauswahl Byte 4
- Bits 6-7 sind Kanal Kontrollanzeiger
- 106h Unteradresse Erweiterung (niedwertiges Byte)
- 107h Unteradresse Erweiterung (höherwertiges Byte)
-
-
- Funktion 0C5h benutzt von PS/2 Modell 50+ und Olivetti MCA Maschinen
- benutzt von Desqview 2.2
- benutzt von Lotus 123 Freigabe 2.2
- benutzt von Microsoft Wort 5.0
- Anmerkung Funktionen unbekannt. Berichtet von InfoWorld November 13 1989's Mikro Kanal
- 386 Test als ein Konflikt zwischen den vorstehenden Softwarepacketen. InfoWorld
- sagte daß Quarterdeck (Desqview) an einer Behebung für ihr Produkt arbeitet.
- Produkt. Keine anderen Information.
-
-
- Funktion 0DEh DesQview Services (DesQview)
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 16h Tastatur I/O 3**9 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0058h) Zugriff auf die Tastatur. Scancodes siehe Anhang 1. ASCII Codes siehe
- Anhang 2.
-
- IBM's originale Tastatur Anordnung ist bezeichnet als eine 84-Tasten
- oder "old style" Tastatur. Es hat die Funktionstasten auf der linken
- und ein verankertes ein Cursor/numerisches Tastenfeld auf der rechten Seite.
- Bei der 101-Tasten "new style" oder "enhanced" Tastatur (wie auf den PS/2s benutzt)
- sind verschiedene Tasten hinzugekommen. Das frühere BIOS kann die neuen Scancodes
- nicht feststellen und das neue BIOS hat hierfür vernünftigerweise neue Funktionsaufrufe.
- anstatt die alten zu erweitern. Dieses verursacht einige Belästigungen
- beim schreiben von Programme welche beide Tastaturen voll unterstützen
- müssen. Die meisten Programme begrenzen daher ihre Funktionen auf
- die 84-Tasten Tastatur im Interesse der Rückwärtkompatibilität.
-
- Der SWITCHES Befehl in der CONFIG.SYS zwingt DOS 4.0 dazu, den Standard
- int 16h Aufruf für die Tastatur I/O anstatt den erweiterten int 16h
- Aufruf zu benutzen.
-
-
- Funktion 00h holen Tastatureingabe - lesen des nächsten Zeichens in den Tastaturpuffer,
- wenn kein Taste bereit, warten bis eine Taste eingegeben wird.
- Aufruf AH 00h
- Rückgabe AH Auswahlcode
- AL ASCII Zeichen
- Anmerkung 1) entfernt Tastenanschlag von Puffer (löschen nach dem lesen).
- 2) tut nicht arbeiten mit der besonders Tasten auf der 101-key " steigerte " Tastatur.
-
-
- Funktion 01h kontrollieren Tastaturpuffer - nicht löschen
- Aufruf AH 01h
- Rückgabe ZF 0 (gelöscht) falls Zeichen im Puffer vorhanden
- 1 (gesetzt) wenn kein Zeichen im Puffer vorhanden
- AH Auswahlcode des Zeichens (falls ZF= 0)
- AL ASCII Zeichen falls benutzbar
- Anmerkung 1) Tastenanschlag wird nicht vom Puffer entfernt. Dasselbe Zeichen und Auswahlcode
- wird beim nächsten Aufruf von Int 16h/fn 00h zurückgegeben.
- 2) dies Aufrufen entfernt die 101-key codes von dem Puffer falls ihnen ein
- ein 84-key Code vorausgeht.
-
-
- Funktion 02h Umschaltzustand - feststellen Bit Kennzeichen deuten auf den Umschaltzustand hin
- Aufruf AH 02h
- Rückgabe AL Zustandsbyte (dasselbe wie [0040:0017])
- Bits 7 Einfügen an
- 6 CapsLock an
- 5 NumLock an
- 4 ScrollLock an
- 3 Alt Taste gedrückt
- 2 CTRL (STRG) Taste gedrückt
- 1 links Umschalttaste gedrückt
- 0 rechte Umschalttaste gedrückt
- Anmerkung das Tastatur Kennzeichenbyte ist gespeichert im BIOS Datenbereich an 0000:0417h.
-
-
- Funktion 03h Tastatur - einstellen Wiederholungsfaktor (PCjr, AT, XT/286, PS/2)
- Aufruf AH 03h
- AL 00h zurücksetzen typematic standard (PCjr)
- 01h erhöhen anfängliche Verzögerung (PCjr)
- 02h vermindern Wiederholungsrate um 1/2 (PCjr)
- 03h erhöhen beide Verzögerungen um 1/2( PCjr)
- 04h ausschalten typematic( PCjr)
- 05h einstellen Wiederholungsfaktor (AT, PS/2)
- BH 00h-03h für Verzögerungen von 250ms, 500ms, 750ms, oder 1 Sekunde
- 0, 0 250ms
- 0, 1 500ms
- 1, 0 750ms
- 1, 1 1 Sekunde
- BL 00h-1Fh für Wiederholungsraten von 30cps abwärts zu 2cps
- 00000 30 01011 10.9 10101 4.5
- 00001 26.7 01100 10 10110 4.3
- 00010 24 01101 9.2 10111 4
- 00011 21.8 01110 8.6 11000 3.7
- 00100 20 01111 8 11001 3.3
- 00101 18.5 10000 7.5 11010 3
- 00110 17.1 10001 6.7 11011 2.7
- 00111 16 10010 6 11100 2.5
- 01000 15 10011 5.5 11101 2.3
- 01001 13.3 10011 5.5 11110 2.1
- 01010 12 10100 5 11111 2
- Rückgabe keine
- Anmerkung 1) Unterfunktion 05h ist verfügbar auf ATs mit dem ROM BIOS Datum 11/15/85 und
- später, dem XT/286, und dem PS/2.
- 2) Unterfunktion 0 (Standard Tastaturfestlegung) schaltet die Tastatur in den
- Originalzustand zurück. Der Originalzustand beim einschalten ist Typematic an,
- normale anfängliche Verzögerung und normalem Wiederholungsfaktor.
- 3) Unterfunktion 1 (erhöhen anfängliche Verzögerung) erhöht die Verzögerung zwischen dem
- ersten eingebenen Zeichen und den eingegebenen Wiederholungszeichen.
- 4) Unterfunktionen 0 bis 4, immer wenn der Wiederholungsfaktor geändert wird,
- alle vorhergehend Einstellungen sind entfernt.
-
-
- Funktion 04h Tastaturklick umschalten (PCjr und Convertible)
- Aufruf AH 04h
- AL 00h Tataturklick aus
- 01h Tataturklick an
- Rückgabe keine
-
-
- Funktion 05h Zeichen in Tastaturpuffer einfügen (AT oder PS/2 mit enhanced kbd)
- Aufruf AH 05h
- CH Auswahlcode
- CL ASCII Zeichen
- Rückgabe CF gesetzt wenn Fehler
- AL 00h erfolgreich
- 01h falls Puffer voll
- Anmerkung Plaziert ein Zeichen und den Auswahlcode an das Ende vom Tastaturpuffer.
-
-
- Funktion 06h Zeichen in Tastaturpuffer schreiben (Fansi-Console bis 2.00)
- Aufruf AH 06h
- BX erweiterter Tastenwert der in den Tastaturpuffer plaziert werden soll.
- Rückgabe Unbekannt
- Anmerkung Dieser Aufruf kann ignoriert werden, seit er durch die Funktion 05h ersetzt wird.
-
-
- Funktion 07h Ändern Umschaltzustand (Fansi-Console bis 2. 00)
- Aufruf AH 07h
- AL Wert Umschaltzustand
- Rückgabe Unbekannte
- Anmerkung Zustandsbyte ist dasselbe wie in Funktion 02h.
-
-
- Funktion 10h holen erweiterte Tastatureingabe und lesen (F11, F12 erweiterte Tastatur)
- (XT/286, PS/2, AT mit "enhanced" Tastatur)
- Aufruf AH 10h
- Rückgabe AH Auswahlcode
- AL ASCII Zeichen falls verfügbar
- Anmerkung 1) liest ein Zeichen und den Auswahlcode vom Tastaturpuffer.
- 2) diese Funktion sollte für die erweiterten Tastaturen an Stelle von Int 16h fn 00h benutzt werden.
- Es erlaubt den Anwendungen die zusätzlichen Tasten F11, F12, und die zusätzlichen
- Cursortasten abzufragen.
- 3) dies ist eine erweiterte Version von Funktion 00h.
-
-
- Funktion 11h Kontrollieren erweiterten Tastenanschlag (F11-F12 erweiterte Tastatur)
- ( XT/286, PS/2, AT mit "enhanced" Tastatur)
- Aufruf AH 11h
- Rückgabe ZF 0 (gelöscht) falls Taste gedrückt
- AH Auswahlcode
- AL ASCII Zeichen falls erfügbar
- 1 falls Puffer leer ist
- Anmerkung 1) der Tastenanschlag wird nicht vom Puffer entfernt. Dasselbe Zeichen und der Auswahlcode
- wird beim nächsten Aufrufe von Int 16h/fn 10h zurückgegeben.
- 2) diese Funktion sollte für die erweiterten Tastaturen an Stelle von Int 16h fn 00h benutzt werden.
- Es erlaubt den Anwendungen die zusätzlichen Tasten F11, F12, und die zusätzlichen
- Cursortasten abzufragen.
-
-
- Funktion 12h erweiterten Umschaltzustand feststellen (F11, F12 erweiterte Tastatur)
- Aufruf AH 12h
- Rückgabe AX Zustandswort
- AL Bit 0 rechte Umschalttaste gedrückt
- 1 linke Umschalttaste gedrückt
- 2 CTRL (STRG) Taste gedrückt
- 3 Alt Taste gedrückt
- 4 ScrollLock eingeschaltet
- 5 NumLock eingeschaltet
- 6 CapsLock eingeschaltet
- 7 Einfügen ist eingeschaltet
- AH Bit 0 linke Control Taste gedrückt
- 1 linke ALT Taste gedrückt
- 2 rechte Control Taste gedrückt
- 3 rechte ALT Taste gedrückt
- 4 Scroll Lock Taste gedrückt
- 5 NumLock Taste gedrückt
- 6 CapsLock Taste gedrückt
- 7 SysReq Taste gedrückt
- Anmerkung diese Funktion sollte für die erweiterten Tastaturen an Stelle von Int 16h fn 02h benutzt werden.
-
-
-
- Funktion 4Fh prüfen ob installiert (Gerkey)
- Aufruf AH 4Fh
- AL 56h Funktion
- BX 00h prüfen ob installiert
- Rückgabe AX 0FFFFh speicherresistent und aktiv
- alle anderen Werte - nicht speicherresistent
- BX Versionsnummer
- BH übergeordnete Versionsnummer
- BL untergeordnete Versionsnummer
-
-
-
- Funktion 4Fh Komma/Punkt Umschaltung (Gerkey)
- Aufruf AH 4Fh
- AL 56h Funktion
- BX 01h Komma/Punkt umschalten
- Rückgabe AX 0FFFFh speicherresistent und aktiv
- alle anderen Werte - nicht speicherresistent
- Anmerkung Dieser Aufruf ändert die Bedeutung der Punkt/Komma Taste vom numerischen
- Eingabeblock. Jenachdem wie die aktuelle Belegung der Taste ist, ändert
- sich diese (z.B. wenn Punkt aktiv ist, wird auf Komma umgeschaltet).
-
- Funktion 75h einstellen Anzahl Takteinheiten für Abtastung (Scanning) (pcAnywhere 2.00)
- Aufruf AH 75h
- AL Anzahl Takteinheiten
- Rückgabe keine
- Anmerkung 1) setzt Anzahl von 55ms Zeit-Zähler Takteinheiten um Bildschirmänderungen zu überprüfen.
- 2) pcAnywhere ist ein Programm das es erlaubt über eine serielle Verbindung
- an einer anderen Maschine zu arbeiten.
-
-
- Funktion 76h Modus zur Fehlerkontrolle einstellen (pcAnywhere 2.00)
- Aufruf AH 76h
- AL Art der Fehlerkontrolle
- 00h keine
- 01h schnell
- 02h langsam
- Rückgabe keine
-
-
- Funktion 77h reserviert (pcAnywhere 2.00)
- pcAnywhere API - reserviert
-
-
- Funktion 78h aufzeichnen aus (pcAnywhere 2.00)
- Aufruf AL 00h auf einen anderen Aufruf warten
- 01h beenden aber als TSR belassen
- 02h automatischer Modus - überwachen DTR
- 0FFh im aktuell Bedienungsmodus belassen (pcAnywhere 2.1)
- Rückgabe keine
-
-
- Funktion 79h prüfen ob installiert (pcAnywhere 2.00)
- Aufruf AH 79h
- AL 00h prüfen ob installiert
- Rückgabe AX 0FFFFh speicherresistent und aktiv
- 0FFFEh speicherresistent aber nicht aktiv
- 0FFFDh speicherresistent TSR
- 0FFFCh automatischer Modus
- alle anderen Werte - nicht speicherresistent
-
-
- Funktion 7Ah abbrechen pcAnywhere Sitzung (pcAnywhere 2.00)
- Aufruf AH 7Ah
- Rückgabe keine
- Anmerkung beläßt pcAnywhere speicherresistent, ist aber unfähig einen Aufruf zu beantworten.
-
-
- Funktion 7Bh aktivieren/deaktivieren Operationen (pcAnywhere 2.00)
- Aufruf AH 7Bh
- AL Status
- 00h deaktiviert
- 01h aktiviert
- Rückgabe keine
- Anmerkung der entfernte Bildschirm ist automatisch aufgefrischt sobald die Sitzung eingeschaltet wird.
-
-
- Funktion 7Ch holen Port Ausstattung (pcAnywhere 2.00)
- Aufruf AH 7Ch
- Rückgabe AH Portnummer in binär (0-15)
- AL Baud-Rate
- 00h 50
- 01h 75
- 02h 110
- 03h 134.5
- 04h 150
- 05h 300
- 06h 600
- 07h 1200
- 08h 1800
- 09h 2000
- 0Ah 2400
- 0Bh 4800
- 0Ch 7200
- 0Dh 9600
- 0Fh 19200
-
-
- Funktion 7Dh holen/einstellen Terminal Parameter (pcAnywhere 2.00)
- Aufruf AH 7Dh
- AL 00h einstellen Parameter
- 01h holen Parameter
- 02h holen Ausstattungskopf und Terminal Parameter
- CX:DS Adresse vom Terminal Parameterblock
- Rückgabe AL 00h nichts
- 01h aktueller Terminal Parameterblock in CX:DS
- 02h Ausstattungskopf und Terminal Parameterblock in CX:DS
- Anmerkung Terminal Parameterblock Format: (1152 Bytes) (dezimal)
- 384 Bytes CRT Steuerungsinformation
- Bytes Funktion
- 1-8 Cursor aufwärts
- 9-16 Cursor abwärts
- 17-24 Cursor links
- 25-32 Cursor rechts
- 33-40 Cursor Pos1
- 41-48 löschen Bildschirm
- 49-56 löschen bis zum Ende der Zeile
- 57-64 löschen bis zum Ende der Seite
- 65-72 einfügen Zeile
- 73-80 löschen Zeile
- 81-88 einfügen Zeichen
- 89-96 löschen Zeichen
- 97-104 Cursorposition Zuführung
- 105-112 zwischen Zeile und Spalte
- 113-120 nach Cursorposition
- 121-128 CRT Initialisierung
- 256 Bytes Zeichen Übersetzungstabelle
- übersetzt ASCII Zeichen von Host. Normalerweise werden die IBM
- Grafikzeichen in andere anzeigbare Symbole übersetzt.
- 512 Bytes Tastatur Folgen
- 641-644 Cursor aufwärts
- 645-648 Cursor abwärts
- 649-652 Cursor links
- 653-656 Cursor rechts
- 657-660 Pos1
- 661-664 Ende
- 665-668 PgUp
- 669-672 PgDn
- 673-676 Einfügen
- 677-680 Löschen
- 681-684 Control-Pos1
- 685-688 Control-End
- 689-692 Control-PgUp
- 693-696 Control-PgDn
- 697-700 Escape
- 701-740 F1 ... F10
- 741-780 S_F1 ... S_F10
- 781-820 CTRL_F1 ... CTRL_F10
- 821-860 ALT_F1 ... ALT_F10
- 861-964 Alt A-Z
- 965-1004 Alt 0-9
- 1005-1008 Alt=
- 1009-1012 Alt -
- 1013-1016 Drucken Bildschirm
- 1017-1020 Ctrl-Cursor links
- 1021-1024 Ctrl-Cursor rechts
- 1025-1120 reserviert
- 1121-1124 beginnen conv. Modus
- 1125-1128 entfernt drucken aus
- 1129-1132 entfernt drucken an
- 1133-1136 Backspace
- 1137-1140 auffrischen Bildschirm
- 1141-1144 sende nächsten Code
- 1145-1148 Anzeige oberen 24 Zeilen
- 1149-1152 Anzeige untenen 24 Zeilen
-
-
- Funktion 7Eh serielle I/O zum pcAnywhere Port (pcAnywhere 2. 00)
- Aufruf AH 7Eh
- AL I/O Funktion
- 01h holen Port Eingabestatus
- 02h holen Port Eingabezeichen
- 03h Zeichenausgabe
- 04h Telefon auflegen
- CX ASCII Zeichen zur Ausgabe (fn 03h)
- Rückgabe (falls AL= 01h)
- AX 00h kein Zeichen bereit
- 01h Zeichen ist verfügbar
- (falls AL= 02h)
- AL ASCII Code vom empfangenen Zeichen
-
-
- Funktion 7Fh einstellen Tastatur/Bildschirm Modus (pcAnywhere 2.00)
- Aufruf AH 7Fh
- AL Parameter
- 00h aktivieren Remote Tastatur ausschließlich |
- 01h aktivieren Host Tastatur ausschließlich | Tastaturgruppe
- 02h aktivieren beide keyboards |
-
- 08h Anzeige oberen 24 Zeilen | Bildschirmgruppe
- 09h Anzeige unteren 24 Zeilen |
-
- 10h Hayes Modem |
- 11h anderes modem | Modemgruppe
- 12h direkt angeschlossen |
-
-
- Funktion 0EDh Borland Turbo Lightning API (teilweise)
- Aufruf AH 0EDh
- BH 0EDh
- BL Funktion
- 00h prüfen ob installiert
- 02h Zeiger zum Lightning internen Datenaufbau lobyte
- 03h Zeiger zum Lightning internen Datenaufbau hibyte
- 04h laden Hilfswörterbuch
- 06h autoproof Modus
- 0Fh holen Anzahl Ersetzungen (Segment)
- DS:DI Zeiger zur verarbeitenden Zeichenkette
- Rückgabe AX Fehlercode (Unbekannt)
- Anmerkung Ich habe verschiedene Versuche unternommen, um eine Kopie von dem Turbo Lightning API zu bekommen,
- welches 1985 vermutlich für Entwickler verfügbar war.
- 1988 schrieb Borland das sie daran arbeiten.
- Ende 1989 gab Borland über BIX bekannt, das keine weiteren Versionen
- des APIs mehr erstellt werden. Die Information hier sind aus
- Chris Dunford's LSPELL.PAS Schnittstelle zu Lightning entnommen.
-
-
- Funktion 0F0h einstellen CPU Geschwindigkeit (Compaq 386)
- Aufruf AH 0F0h einstellen Geschwindigkeit
- AL Geschwindigkeit
- 00h gleichwertig zu 6 mHz 80286 (allgemein)
- 01h gleichwertig zu 8 mHz 80286 (schnell)
- 02h volle 16 mHz (hohe)
- 03h umschalten zwischen 8 mHz-gleichwertig und der Geschwindigkeitseinstellung
- auf dem Systemboard (auto oder hohe)
- 04h-07h Unbekannt
- 08h voll 16 mHz außer 8 mHz-gleichwertig während der Diskettenzugriffe
- 09h Geschwindigkeit direkt wählen
- CX Geschwindigkeitswert, 1 (langsamste) bis 50 (voll), 3 ~= 8088
- Rückgabe keine?
- Anmerkung 1) benutzt vom Compaq DOS MODE Befehl.
-
-
- Funktion 0F1h lesen aktuelle CPU Geschwindigkeit (Compaq 386)
- Aufruf AH 0F1h
- Rückgabe AL Geschwindigkeitscode (siehe Funktion 0F0h)
- falls AL= 09h, CX= Geschwindigkeitscode
-
-
- Funktion 0F2h feststellen des angeschlossenen Tastaturtyps (Compaq 386)
- Aufruf AH 0F2h
- Rückgabe AL Type
- 00h falls 11-bit AT Tastatur benutzt wird
- 01h falls 9-bit PC Tastatur benutzt wird
-
-
- Funktion 0FFh PC-Tools API
- Aufruf AH 0FFh
- andere Parameter unbekannt
- Anmerkung PC-Tools ist ein Swiss-army-knife Softwarepaket mit einem Editor, DOS
- Befehlsinterpreter, Cache, Festplattenoptimierer, und verschiedene andere
- Funktionen von Central Point Software.
-
-
- Funktion 0FFh 2-The-Max VGA-16 Karte
- Aufruf AH 0FFh feststellen Zoomen Interrupt
- Rückgabe AL Zoomen Interruptnummer
- AL+1 alter BIOS Tastatur Handler Interruptnummer
- BX Hot Key
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 17h Drucker 3**10 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:005Ch) Zugriff auf die parallelen Drucker
- AH wird geändert. Alle andere Register bleiben erhalten.
-
-
- Funktion 00h drucken Zeichen/senden AL zum Drucker DX (0, 1, oder 2)
- Aufruf AH 00h
- AL ASCII Zeichen Code
- DX benuzter Drucker
- 00h PRN oder LPT1
- 01h LPT2
- 02h LPT3
- Rückgabe AH Zustandsbyte
- Bits 0 Zeitüberschreitung
- 1 ungebraucht
- 2 ungebraucht
- 3 I/O Fehler
- 4 Drucker ausgewählt
- 5 kein Papier mehr
- 6 Empfangsbestätigung
- 7 nicht beschäftigt
-
-
- Funktion 01h initialisieren Drucker - einstellen init Zeile niedrig, senden 0Ch zum Drucker in DX
- Aufruf AH 01h
- DX Druckeranschluß welcher initialisiert wird (0, 1, 2)
- Rückgabe Zustand wie nachfolgend
-
-
- Funktion 02h Druckerstatus - lesen Status von Drucker in DX nach AH
- Aufruf AH 02h
- DX Druckeranschluß (0, 1, 2)
- Rückgabe AH Zustandsbyte
- Bits 7 0 beschäftigt/Pause: der Drucker kann nicht unmittelbar
- mehr Daten annehmen, weil er gerade ein Zeichen empfängt
- eine Zeile druckt, Offline ist, oder ein Fehler aufge-
- treten ist.
- 1 bereit
- 6 Empfangsbestätigung Zeile umgeschaltet: gibt den Status der ACK
- Zeile auf dem Druckeranschluß zurück, in dem Moment in dem der Zustand gelesen wurde.
- ACK ist ein abtasten: es geht niedrig für ein sehr kurze Zeit (12
- Mikrosekunden auf einem Epson) sobald der Drucker bereit ist ein
- anderes Zeichen zu empfangen. Soweit dies den Druckerzustand betrifft,
- ist dies nutzlos; es ist ausschließlich nützlich für etwas wie eine
- Interrupt-gesteuerte Schnittstelle. Die meiste Zeit, es wird ACK hoch
- (Bit 6 an) angezeigt, aber gelegentlich, falls man den Zustand kontrolliert
- nachdem ein Zeichen gesendet wurde, es wird niedrig angezeigt.
- ACK ist niedrig sobald der Drucker ausgeschaltet ist.
- 5 out-of-paper Zeile umgeschaltet
- 4 Drucker ausgewählt: Drucker ist ausgewählt/bereit/online. Normalerweise
- gibt es einen Schalter am Drucker der dies steuert.
- 3 I/O Fehler: offline, kein Papier mehr oder andere Fehlerbedingung
- wie kein Farbband.
- 2 ungebraucht
- 1 ungebraucht
- 0 Zeitüberschreitung Fehler: Drucker scheiterte daran ein ACK
- zu senden und falls beschäftigt nachdem ein Zeichen gesendet wurde.
- Anmerkung 1) folgende Zustände können bei einem geeigneten funktionierenden Drucker festgestellt werden:
- normal Offline ausgeschaltet
- ====== ======= =============
- nicht beschäftigt/Pause beschäftigt/Pause beschäftigt/Pause
- Papier vorhanden Papier vorhanden Papier vorhanden
- ausgewählt/online nicht ausgewählt/online nicht ausgewählt/online
- kein I/O Fehler I/O Fehler (gewöhnlicher) I/O Fehler
- kein Zeitüberschreitungsfehler kein Zeitüberschreitungsfehler kein Zeitüberschreitungsfehler
- 2) nicht alle Drucker geben geeignete Statuscodes zurück. Das ist OK, nicht alle
- nachgemachten BIOS führen eine von zweien aus. Falls das Programm in Abhängigkeit der
- richtigen Codes arbeitet, wird eine leichte Programmanpassung benötigt oder es
- muß für nichtstandardmäßige Hardware konfiguriert werden.
-
-
-
- Funktion 4Fh aktivieren/deaktivieren Druckertreiber (PRN7BIT)
- Aufruf AH 04Fh
- AL 056H
- DH 0
- DL Unterfunktion
- 0 = deaktivieren PRN7BIT
- 1 = aktivieren PRN7BIT
- Rückgabe keine
-
-
- Funktion 4Fh Druckeranschluß für Druckertreiber wählen (PRN7BIT)
- Aufruf AH 04Fh
- AL 056H
- DH 1
- DL Druckeranschluß welcher benutzt werden soll (0, 1, 2)
- Rückgabe keine
-
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 18h ROM BASIC 3**11 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0060h) Ausführen ROM BASIC an Adresse 0F600h:0000h
- Aufruf keine Parameter benutzt
- Rückgabe springt ins ROM BASIC auf IBM Systemen
- Anmerkung 1) oft startet dies einen kompatiblen Computer.
- 2) benutzt von Turbo C 1.5. 2.0 und später soltte nicht benutzt werden.
- 3) auf IBM Systeme, dieser Interrupt wird aufgerufen falls bei Start Festplattenfehler auftreten.
- 4) Video Interrupt beim DEC Rainbow.
- 5) Digital Research's ROM Ausführung von DR-DOS benutzt int 18h als
- den anfänglichen Einsprungstellenvektor in den Betriebssystemcode.
- Anmerkung daß einige nachgemachte BIOSes keine geeignete Realisierung
- des int 18h in dem ROM vornehmen, sodaß die DR-DOS ROMs nicht immer
- benutzt werden können.
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 19h Starten des Systems / Erweiterungsspeicher VDISK ID 3**12 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0064h)
- Aufruf keine Parameter benutzt
- Rückgabe keine
- Anmerkung 1) liest Spur 0, Sektor 1 in Adresse 0000h:7C00h, übergibt dann die Steuerung
- an die Adresse. Wenn kein Diskettenlaufwerk verfügbar ist, schaut an der
- absoluten Adresse C:800 ob eine zulässige Festplatte oder anderes ROM vorhanden ist.
- Falls nicht, Aufruf des ROM-BASIC via int 18h oder anzeigen Fehlermeldung.
- 2) veranlässt Neustart von Festplattensystem falls in Betrieb. (Es wird kein
- Speichertest ausgeführt).
- 3) falls die Adresse 0000:0472h nicht den Wert 1234h enthält, ein Speichertest
- (POST) wird ausgeführt bevor der Startsektor gelesen wird.
- 4) VDISK von DOS 3.0+ biegt diesen Vektor um, damit festgestellt werden kann
- wenn die CPU vom geschützten Modus in den echtesn Modus umgeschaltet wird.
- Ein ausführlich Diskussion von Ray Duncan hierüber kann im PC Magazine,
- Mai 30, 1989 nachgelesen werden.
- 5) wie verlautet, einige Versionen von DOS 2.x und alle Versionen von DOS 3.x+
- den int 19h um einige Interrupt Vektoren die von DOS benutzt werden
- wieder in den Originalzustand für den Neustart zu versetzen
- weil der POST durch den int 19h nicht ausführt wird. Diese Vektoren
- so wird berichtet sind: 02h, 08h, 09h, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 70h, 72h,
- 73h, 74h, 75h, 76h, und 77h. Nachdem diese zurückergesetzt wurden, wird auch
- der original int 19h Vektor zurückgesetzt und der int 19h aufgerufen.
- 6) das System überprüft ob ROMs installiert sind, indem der Speicher von 0C000h bis
- zum Anfang von des BIOS in 2k Schritte durchsucht wird. ROM Speicher ist identifiziert
- falls es mit dem Wort 0AA55h startet. Dem folgt ein 1 Byte großes Feld mit der Länge von
- dem ROM (dividiert durch 512). Falls ein ROM gefunden wird, das BIOS ruft das ROM
- an einem Offset von 3 vom Anfang auf. Dies Eigenschaft wurde nicht unterstützt in
- der ersten PC Maschinen. Die letzte Task übergibt die Steuerung wieder an das
- Urladerprogramm (vorausgesetzt die Disketten Steuereinheit ist betriebsbereit).
- 7) 8255 Port 60h Bit 0= 1 falls von einer Diskette gestartet wird.
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 1Ah Datum und Zeit 3**13 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0068h) 1) Greift auf den PC internen Taktgeber zu.
- 2) dieser Interrupt auf einige Maschinen nicht unterstützt, z.B.
- der HP150 PC.
- 3) einige "Turbo" BIOSes führen den Taktgeber langsamer als normal aus
- um Benchmark Software zu täuschen, welche gewöhnlich den int 1Ah
- zur Zeitmessung benutzen.
- 4) zählt das Auftreten der Rate von 1193180/65536 Aufrufe/Sek
- (18.2 mal pro Sekunde).
-
- Funktion 00h Zeit-Zähler lesen (außer PC)
- Aufruf AH 00h
- Rückgabe AL 00h falls der Taktgeber gelesen oder geschrieben (via AH= 0, 1)
- wurde in der aktuellen 24-Stunden Zeit.
- <> 0 Mitternacht ist vorbei seit dem letzten Lesen
- CX:DX 32-bit Takteinheitenzähler (höherwertige 16 Bits in CX)
- Anmerkung 1) der zurückgegebene Wert ist die aufgelaufene Anzahl Takteinheiten seit
- Mitternacht. Da sind 18.2 Takteinheiten pro Sekunde, oder eine je 54.92ms.
- Sobald der Zähler 1,573,040 erreicht, wird er auf Null gesetzt, und das
- Überschreitungskennzeichen gesetzt.
- 2) das Überschreitungskennzeichen wird durch diesen Funktionsaufruf gelöscht,
- sodaß ausschließlich einmal pro Tag nicht Null zurückgegeben wird.
- 3) Int 1Ah/fn 01h kann benutzt werden, um den Zähler auf einen beliebigen
- 32 Bit Wert einzustellen.
-
-
- Funktion 01h Zeitzähler setzen (außer PC)
- Aufruf AH 01h
- CX:DX 32-bit höherwertiges Wort/niederwertiges Wort des Zeitzählers
- Rückgabe keine
- Anmerkung 1) die Takteinheiten werden durch den Zeitzähler Interrupt 18.2065 mal
- pro Sekunde oder alle 54.9254 Millisekunden erhöht. Deshalb:
- Aufrufe pro Sekunde 18 (12h)
- Aufrufe pro Minute 1092 (444h)
- Aufrufe pro Stunde 65543 (10011h)
- Aufrufe pro Tag 1573040 (1800B0h)
- 2) der Zähler wird auf Null gesetzt sobald System neu gestartet wird.
- 3) speichert einen 32-bit Wert im Takteinheitzähler.
- 4) das Überschreitungskennzeichen wird durch diesen Aufruf gelöscht.
-
-
- Funktion 02h lesen der Echtzeituhr (AT und nachfolgende)
- Aufruf AH 02h
- Rückgabe CH Stunden in BCD
- CL Minuten in BCD
- DH Sekunden in BCD
- DL 00h Standard Uhrzeit
- 01h Sommerzeit
- CF 0 falls Uhr in Ordnung
- 1 falls die Uhr nicht läuft (Batterie leer, etc.)
- Anmerkung liest die aktuell Uhrzeit vom CMOS Uhrzeit/Datum Chip.
-
-
- Funktion 03h einstellen der Echtzeituhr (AT und nachfolgende)
- Aufruf AH 03h
- CH Stunden in BCD
- CL Minuten in BCD
- DH Sekunden in BCD
- DL 0 (gelöscht) falls Standard Uhrzeit
- 1 (gesetzt) falls Sommerzeit
- Rückgabe keine
- Anmerkung setzt die Uhrzeit im CMOS Uhrzeit/Datum Chip.
-
-
- Funktion 04h lesen des Datums aus der Echtzeituhr (AT und nachfolgende)
- Aufruf AH 04h
- Rückgabe CH Jahrhundert in BCD (19 oder 20)
- CL Jahr in BCD
- DH Monat in BCD
- DL Tag in BCD
- CF 0 falls Uhr in Ordnung
- 1 falls die Uhr nicht läuft (Batterie leer, etc.)
- Anmerkung liest das aktuelle Datum vom CMOS Uhrzeit/Datum Chip.
-
-
- Funktion 05h setzen des Datum der Echtzeituhr (AT und nachfolgende)
- Aufruf AH 05h
- CH Jahrhundert in BCD (19 oder 20)
- CL Jahr in BCD
- DH Monat in BCD
- DL Tag in BCD
- Rückgabe keine
- Anmerkung setzt das Datum im CMOS Uhrzeit/Datum Chip.
-
-
- Funktion 06h Alarmzeit einstellen (AT und nachfolgende)
- Aufruf AH 06h
- CH Stunden in BCD
- CL Minuten in BCD
- DH Sekunden in BCD
- Rückgabe CF gesetzt falls Alarm schon einstellt oder Uhr nicht bereit ist
- Anmerkung 1) setzt Alarm im CMOS Datum/Uhrzeit Chip. Int 4Ah wird bei erreichen
- der spezifizierten Alarmzeit aufgerufen und zwar alle 24 Stunden
- bis die mit Int 1Ah/fn 07h gelöscht wird.
- 2) ein Nebenefekt dieser Funktion ist, daß die Taktgeber chip's Interrupt
- Ebene (IRQ8) aktiviert ist.
- 3) es kann ausschließlich eine Alarmzeit zur Zeit aktiv sein.
- 4) das Programm das diese Funktion benutzt, muß die Adresse von seinem Interrupt
- Handler für den Alarm in dem Vektor für Int 4Ah setzen.
-
-
- Funktion 07h löschen Alarmzeit (AT und nachfolgende)
- Aufruf AH 07h
- Rückgabe keine
- Anmerkung 1) annulliert irgendwelche Alarmzeiten auf dem CMOS Datum/Uhrzeit Chip.
- 2) dies Funktion schalten nicht die Taktgeber chip's Interrupt Ebene (IRQ8) aus.
-
-
- Funktion 08h einstellen Einschaltzeit (Convertible)
- Aufruf AH 08h
- CH Stunden in BCD
- CL Minuten in BCD
- DH Sekunden in BCD
-
-
- Funktion 09h lesen Alarmzeit und Status (Convertible und PS/2 Modell 30)
- Aufruf AH 09h
- Rückgabe CH Stunden in BCD
- CL Minuten in BCD
- DH Sekunden in BCD
- DL Alarm Zustand:
- 00h falls Alarm nicht eingeschaltet ist
- 01h falls Alarm eingeschaltet ist, aber kein Neustart des Systems ausgeführt wird
- 02h falls Alarm einen Neustart des Systems bewirkt
-
-
- Funktion 0Ah lesen Tageszähler (PS/2)
- Aufruf AH 0Ah
- Rückgabe CF gesetzt wenn Fehler
- CX Anzahl Tage seit dem Jan 1, 1980
- Anmerkung gibt den Inhalte des Tageszählers vom System zurück.
-
-
- Funktion 0Bh einstellen Tageszähler (PS/2)
- Aufruf AH 0Bh
- CX Anzahl Tage seit dem Jan 1, 1980
- Rückgabe CF gesetzt wenn Fehler
- Anmerkung speichert einen beliebigen Wert im Tageszähler des Systems.
-
-
- Funktion 80h einstellen Sound Multiplexor (PCjr) (Tandy 1000?)
- Aufruf AH 80h
- AL Sound Quelle
- 00h Quelle ist der 8253 Zeit-Zähler Chip, Kanal 2
- 01h Quelle ist die Kassetteneingabe
- 02h Quelle ist I/O Kanal "Audio In "Zeile
- 03h Quelle ist der TI Sound Generator Chip
- Rückgabe keine
- Anmerkung einstellen der Quelle für die Töne die auf dem
- Audio out Bus Zeile oder RF Modulator erscheinen.
-
-
- Funktion 1Ah lesen Uhrzeit und Datum (AT&T 6300)
- Aufruf AH 0FEh
- Rückgabe BX Tageszähler (1= Jan 1, 1984)
- CH Stunden
- CL Minuten
- DH Sekunden
- DL hunderstel
- Anmerkung Tageszähler in BX ist eindeutig zu AT&T/Olivetti Computer.
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 1Bh Control-Break 3**14 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:006Ch) dieser Interrupt wird aufgerufen sobald der Tastatur Handler auf den IBM
- Maschinen erkennt das Ctrl und Break gleichzeitig gedrückt wurden. DOS
- belegt diesen Interrupt normalerweise mit seiner eigenenen Ctrl-Break Routine.
-
- Anmerkung 1) falls der Abbruch sich während eines Interrupts ereignete, müssen ein oder mehrere
- EOI Befehle zu der 8259 programmierbaren Interrupt Steuereinheit
- gesendet werden.
- 2) alle I/O Geräte sollte sein löschen in Fach eine Arbeitsgang war laufend an
- der Uhrzeit.
- 3) zeigt normalerweise auf eine IRET Instruktion während der Systeminitialisierung,
- deshalb es tut nichts, aber einige Programme ändern es, um ein Ctrl-C
- Abtastcode zurückzugeben und so ein Aufruf von int 23h erfolgt.
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 1Ch Zeit-Zähler Takteinheit 3**15 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0070h)
- Anmerkung 1) aufgerufen 18.2065 mal pro Sekunde vom int 08h Interrupt.
- 2) zeigt normalerweise auf einen IRET falls nicht PRINT.COM installiert ist.
- 3) falls eine Anwendung bewegt den Interrupt Zeiger, es ist dafür verantwortlich
- daß die Anwendung alle Rgister sichert und zrücksichert die
- modifizierte werden.
- 4) gibt zurück Werte an der absoluten Adresse 40:6x (BIOS Datenbereich); Anzahl
- Takteinheiten seit Mitternacht
- 40:6C Wort Zeitzähler höherwertiges Wort
- 40:6E Wort Zeitzähler niederwertiges Wort
- 5) Ventura Publisher 2.0 benutzt diesen Interrupt und läßt keine nachträglichen
- Vektor Rückzuweisungen zu. Dies ergibt Probleme mit einigen TSRs und
- Netzwerk Software.
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 1Dh Vektor von Video Initialisierung Parameter 3**16 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0074h) diese Doppelwortadresse zeigt zu 3 Sätze von 16-bytes die die Daten
- zum initialisieren der Video Modi für Video Modi 0 & 1 (40 Spalten),
- 2 & 3 (80 Spalten), und 4, 5 & 6 (Grafik) auf dem Motorola 6845 CRT
- Steuereinheit Chip beinhalten.
- 6845 Register:
- R0 horizontal total (horizontale sync in Zeichen)
- R1 horizontal angezeigt (Zeichen je Zeile)
- R2 horizontale sync Position (bewegen Anzeige nach links oder rechts)
- R3 sync Schriftbreite (vertikal und horizontal pulsieren: 4-bits jede)
- R4 vertikal total (totale Zeichen Zeilen)
- R5 vertikal Anpassung (Anpassung für 50 oder 60 Hz Auffrischung)
- R6 vertikal angezeigt (Zeilen von chars angezeigt)
- R7 vertikal sync Position (Zeilen versetzten aufwärts oder abwärts)
- R8 Interlace (Bits 4 und 5) und Asymmetrie (Bits 6 und 7)
- R9 max Rasterzeile addr (Rasterzeilen pro Zeichen Zeile)
- R10 Cursor Start (Startzeile des Cursors)
- R11 Cursor Ende (Endezeile des Cursors)
- R12 Videospeicher Anfangsadresse höherwertiges Byte (6 Bits)
- R13 Videospeicher Anfangsadresse niederwertiges Byte (8 Bits)
- R14 Cursor Adresse höherwertiges Byte (6 Bits)
- R15 Cursor Adresse niederwertiges Byte (8 Bits)
-
- 6845 Video Init Tabellen:
- Tabelle für Modi 0 und 1 \
- Tabelle für Modi 2 und 3 \ jede Tabelle ist 16 Bytes lang und
- Tabelle für Modi 4, 5, und 6 / enthält Werte für das 6845 Register
- Tabelle für Modus 7 /
- 4 Wörter Größe vom Video RAM für Modi 0/1, 2/3, 4/5, und 6/7
- 8 Bytes Anzahl Spalten in jedem Modus
- 8 Bytes Video Steuereinheit Modusbyte für jeden Modus
- Anmerkung 1) da sind 4 getrennte Tabellen, und alle 4 müssen initialisiert falls alle
- Video Modi benutzt werden sollen.
- 2) der Initialisierung Code vom Computer setzt diesen Vektor beim
- Systemstart auf die ROM BIOS Video Routinen.
- 3) IBM empfiehlt daß falls dies Tabelle modifiziert werden muß, diese ins RAM
- zu kopieren und dort ausschließlich die benötigten Änderungen durchzuführen.
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 1Eh Vektor von Diskettencontroller Parameter 3**17 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:0078h) Doppelwortadresse zeigt zur Datenbasistabelle die vom BIOS benutzt wird.
- Vorgegeben Stelle ist an 0F000:0EFC7h. Format 11-byte Tabelle:
- Bytes:
- 00h 4-bit Step Rate, 4-bit Kopf Entladezeit
- 01h 7-bit Kopf Ladezeit, 1-bit DMA Kennzeichen
- 02h 54. 9254 ms Takteinheiten - Verzögerung für Motor aus (36-38 normal)
- 03h Sektorgröße:
- 00h 128 Bytes
- 01h 256 Bytes
- 02h 512 Bytes
- 03h 1024 Bytes
- 04h letzter Sektor auf Spur (normalerweise 8 oder 9)
- 05h inter-sector Lücke beim Lesen/Schreiben (normalerweise 42)
- 06h Datenlänge für DMA Transfer (normalerweise 0FFh)
- 07h Lückenlänge zwischen Sektoren fürs Formatieren (normal 80)
- 08h Sektor Füllbyte fürs Formatieren (normal 0F6h)
- 09h Kopf sich niederlassen Uhrzeit( in Millisekunden)( 15 zu 25 bezeichnend)
- DOS 1. 0 0
- DOS 1. 10 0
- DOS 2. 10 15
- DOS 3. 1 1
- 0Ah Motor Startzeit (in 1/8 Sek Intervalle) (2-4 normal)
- DOS 2.10 2
- Anmerkung 1) dieser Vektor zeigt zu den ROM BIOS Diskettentabellen bei der System-
- initialisierung
- 2) IBM empfiehlt daß falls dies Tabelle modifiziert werden muß, diese ins RAM
- zu kopieren und dort ausschließlich die benötigten Änderungen durchzuführen.
- 3) einige Versionen von DOS 3.2 enthalten einen Fehler. DOS 3.2 nimmt an daß das
- dwort an 0070:0F37 die Adresse von dem Diskettenparameterblock enthält
- und ändert die Werte in diesem Block. Diese Stelle enthält eine
- Kopie von dem Wert an 0:78 (int 1Eh, DISK_POINTER) falls DOS von einer
- Diskette gestartet wurde, aber sobald von der Festplatte gestartet wurde, enthält die Stelle
- 0:0. Dies verleitet zu falschen Annahmen, besonders sobald laufen unter ein
- Debugger weil DOS überschreibt ein Stück von den Interrupt Vektoren für die
- Interrupts 1 bis 3. Die Lösung des Problems ist ein Umstieg auf die nächsthöhere
- DOS 3.3 Version oder den Festplattenparameter Vektor zu 70:0F37 zu kopieren bevor
- das Programm gestartet wird.
-
-
-
- ┌─────────────────────────────────────────────────────────────────────────────┐
- │ Interrupt 1Fh Ptr zu Grafikzeichen Erweiterungen (zweiter Teil) 3**18 │
- └─────────────────────────────────────────────────────────────────────────────┘
- (0:007Ch) dies ist der Zeiger zu den Daten die von den ROM Video Routinen benutzt werden,
- um die Zeichen über ASCII 127 in dem mittleren und hochauflösenden Video
- Modus der CGA Karte anzuzeigen.
-
- Anmerkung 1) Doppelwortadresse zeigt zu einer 1K großen Tabelle die sich aus den 28 8-byte Zeichen
- Bitmusterdefinition zusammensetzt. Das erste Byte eines jeden Zeichens ist der Anfang der Zeile,
- und das letzte Byte ist die untere Zeile.
- 2) die ersten 128 Zeichen Muster sind im System ROM enthalten.
- 3) dieser Vektor wird auf 000:0 gesetzt bei der Systeminitialisierung.
- 4) wird vom DOS externen GRAFTABL Befehl benutzt.
-
-
-