hardware:doku:techrefguide:abschnitt3
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hardware:doku:techrefguide:abschnitt3 [01/05/2008 21:05] – ergänzt. uxt | hardware:doku:techrefguide:abschnitt3 [13/06/2020 18:06] (aktuell) – Beispiel zum DTMF karlmueller | ||
---|---|---|---|
Zeile 324: | Zeile 324: | ||
| | ||
| | ||
+ | \\ | ||
+ | Die Beschreibung zum DTMF ist nicht ganz vollständig, | ||
+ | ; Quelle: ATARI.RSC Vol. V, Issue 2 December 1992 | ||
+ | | ||
+ | ; DTMF duration testing under | ||
+ | ; assembled under TASM | ||
+ | | ||
+ | ; 2710h(10000) = short duration, | ||
+ | ; 72e3h(29411) = default duration | ||
+ | | ||
+ | .model small | ||
+ | .stack 100h | ||
+ | .data | ||
+ | | ||
+ | dtmf_dur dw 0 | ||
+ | temp dw 0 | ||
+ | numstr db ' | ||
+ | | ||
+ | .code | ||
+ | mov ax, | ||
+ | mov ds, ax | ||
+ | | ||
+ | mov ah, 18h ; Mute States call | ||
+ | mov al, 08h ; Get DTMF duration | ||
+ | int 61h | ||
+ | | ||
+ | mov dtmf_dur, | ||
+ | ; from register | ||
+ | | ||
+ | mov ah, | ||
+ | mov al, | ||
+ | mov dx, | ||
+ | int 61h ; into register | ||
+ | | ||
+ | mov ah, 17h ; dial number to check tone | ||
+ | mov temp, @data ; duration | ||
+ | mov ds, | ||
+ | mov si, | ||
+ | mov cx, | ||
+ | int 61h | ||
+ | | ||
+ | mov dx, dtmf_dur | ||
+ | ; into register | ||
+ | mov ah, | ||
+ | mov al,09h | ||
+ | int 61h | ||
+ | | ||
+ | mov ah, 17h ; dial number to recheck | ||
+ | ; old tone duration | ||
+ | mov temp, @data | ||
+ | mov ds, | ||
+ | mov si, | ||
+ | mov cx, 8h | ||
+ | int 61h | ||
+ | | ||
+ | ;;;;;;;;;;;;;;;;; | ||
+ | ;terminate | ||
+ | | ||
+ | mov ah,4ch | ||
+ | int 21h | ||
+ | | ||
+ | end | ||
\\ | \\ | ||
\\ | \\ | ||
Zeile 522: | Zeile 584: | ||
**__Fn 2CH__ BIOS-Versionsnummer ermitteln**\\ | **__Fn 2CH__ BIOS-Versionsnummer ermitteln**\\ | ||
Parameter: AH 2CH | Parameter: AH 2CH | ||
- | Rückgabe: | + | Rückgabe: |
**Anmerkung: | **Anmerkung: | ||
+ | Das Technische Referenzhandbuch ist falsch. Es muss DX und nicht BX sein (Quelle: The Resource File Jun 1990, Seite 11. | ||
\\ | \\ | ||
\\ | \\ | ||
Zeile 750: | Zeile 813: | ||
| | ||
Die CONFIG.SYS Datei wird immer von Laufwerk C geladen und kann nicht umgangen werden.\\ | Die CONFIG.SYS Datei wird immer von Laufwerk C geladen und kann nicht umgangen werden.\\ | ||
+ | |||
Zeile 755: | Zeile 819: | ||
Eine RUN Datei ist ein speziell geschriebenes Programm, dass direkt von einer CCM ausgeführt werden kann ohne in das TPA (Transient Programm Area) geladen werden zu müssen. Ein offensichtlicher Vorteil dieser Art der Ausführung ist die Minimierung des Gebrauchs des Hauptspeichers.\\ | Eine RUN Datei ist ein speziell geschriebenes Programm, dass direkt von einer CCM ausgeführt werden kann ohne in das TPA (Transient Programm Area) geladen werden zu müssen. Ein offensichtlicher Vorteil dieser Art der Ausführung ist die Minimierung des Gebrauchs des Hauptspeichers.\\ | ||
\\ | \\ | ||
- | Eine RUN Datei kann vom Befehlsprozessor ausgeführt werden indem man RUN < | + | Eine RUN Datei kann vom Befehlsprozessor ausgeführt werden indem man RUN < |
\\ | \\ | ||
Es gibt mehere Bedingungen für Programme die den Befehl RUN verwenden: | Es gibt mehere Bedingungen für Programme die den Befehl RUN verwenden: | ||
Zeile 890: | Zeile 954: | ||
Der Terminplaner sortiert die Einträge chronologisch wann immer er geladen wird. | Der Terminplaner sortiert die Einträge chronologisch wann immer er geladen wird. | ||
\\ | \\ | ||
+ | |||
==== 3.9.2 Formate der Systemdateien ==== | ==== 3.9.2 Formate der Systemdateien ==== | ||
- | Es gibt drei System-Dateien die die Funktionsweise des BIOS und der internen Anwendungen steuern. Jede dieser Dateien hat ihr eigenes festgelegtes standard Datei-FOrmat. Diese sind:\\ | + | Es gibt drei System-Dateien die die Funktionsweise des BIOS und der internen Anwendungen steuern. Jede dieser Dateien hat ihr eigenes festgelegtes standard Datei-Format. Diese sind:\\ |
| | ||
| | ||
- | | + | |
Alle drei Dateien werden in den Hauptspeicher geladen, wenn eine Anwendung aufgerufen wird. Wenn wärend der Bearbeitung Daten aus diesen Dateien geändert werden, so geschieht dies nur in der Kopie im Hauptspeicher. Alle drei Dateien werden neu geschrieben wenn die Anwendungen beendet werden (z.B.: druch Drücken der Esc-Taste oder durch Beenden im Hauptmenü).\\ | Alle drei Dateien werden in den Hauptspeicher geladen, wenn eine Anwendung aufgerufen wird. Wenn wärend der Bearbeitung Daten aus diesen Dateien geändert werden, so geschieht dies nur in der Kopie im Hauptspeicher. Alle drei Dateien werden neu geschrieben wenn die Anwendungen beendet werden (z.B.: druch Drücken der Esc-Taste oder durch Beenden im Hauptmenü).\\ | ||
\\ | \\ | ||
+ | |||
=== 3.9.2.1 CLIPBORD.DAT === | === 3.9.2.1 CLIPBORD.DAT === | ||
Dies ist die Datei, die von den Anwendungen als Klemmbrett verwendet wird. Es ist ein Datenblock, der mit einer Null (00H) terminiert ist. Zeilenumbrüche werden al 0DH gespeichert, | Dies ist die Datei, die von den Anwendungen als Klemmbrett verwendet wird. Es ist ein Datenblock, der mit einer Null (00H) terminiert ist. Zeilenumbrüche werden al 0DH gespeichert, | ||
Zeile 1010: | Zeile 1076: | ||
==== 3.10.1 Verfügbare Funktionen ==== | ==== 3.10.1 Verfügbare Funktionen ==== | ||
+ | Folgende Dienste stehen in allen ROM-Versionen zur Verfügung: | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | . | ||
+ | . | ||
+ | | ||
+ | | ||
+ | . | ||
+ | . | ||
+ | | ||
+ | | ||
+ | . | ||
+ | . | ||
+ | | ||
+ | . | ||
+ | | ||
+ | |||
+ | \\ | ||
+ | |||
+ | |||
==== 3.10.2 Dataillierte Beschreibung der Funktionen ==== | ==== 3.10.2 Dataillierte Beschreibung der Funktionen ==== | ||
+ | Wo Koordinaten in 16-Bit Registern angegeben werden (z.B. obere linke Ecke, untere rechte Ecke), ist das höhere Byte die y-Koordinate, | ||
+ | \\ | ||
+ | Bei allen Routinen zum zeichnen von Rahmen (einschließlich Menüs und Hilfen), wenn der Rahmen größer als die tatsächliche Bildschirmgröße ist, so werden die Zeichen falsch dargestellt.\\ | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 00H__ Versionsnummer (der ROMs) lesen**\\ | ||
+ | Parameter: AH 00H | ||
+ | Rückgabe: | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 01H__ Zeileneditor**\\ | ||
+ | Parameter: DS:SI Zeiger auf Steuerungsstruktur | ||
+ | Rückgabe: | ||
+ | Beschreibung: | ||
+ | und der Text kann länger sein als die Bildschirmbreite. Scroll-Ränder | ||
+ | | ||
+ | | ||
+ | ep_targ | ||
+ | | ||
+ | ep_pos | ||
+ | ep_max | ||
+ | ep_xpos | ||
+ | ep_ypos | ||
+ | ep_mode | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ep_hit | ||
+ | ;des Anwenders verarbeitet wird. Meistens benutzt um Zeichen vorzubearbeiten. | ||
+ | ep_tit | ||
+ | | ||
+ | ep_exit | ||
+ | | ||
+ | ep_fn dw ? ; | ||
+ | | ||
+ | ep_wid | ||
+ | ep_wind | ||
+ | ;auf 1 für einen doppelten Rahmen. | ||
+ | ep_res | ||
+ | | ||
+ | ep_udel | ||
+ | | ||
+ | ;Wenn nicht benötigt, verwenden sie eine Dummy-Routine (ret far). | ||
+ | ; | ||
+ | ;und 1 für rechts löschen. | ||
+ | ; | ||
+ | |||
+ | **Anmerkungen: | ||
+ | 1. Der Zielpuffer sollte mindestens " | ||
+ | 2. Falls sie einen Text vorgeben wollen, schreiben sie ihn in den Zielpuffer, null-terminiert. | ||
+ | 3. Die Reihe von Beeindigungs-Codes besteht aus 16-Bit " | ||
+ | | ||
+ | 4. TASTENCODES: | ||
+ | Zum Beispiel " | ||
+ | | ||
+ | | ||
+ | | ||
+ | 5. Wenn sie einen Rahmen angeben, so werden beim Bearbeiten 2 Bytes von " | ||
+ | 6. Ähnlich, wenn sie eine Eingabeaufforderung angeben haben sie weniger Spielraum bei der | ||
+ | | ||
+ | 7. Doppelwort Zeiger und Adressen haben die niederwertige Adresse im höherwertigen Wort. | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 02H__ aktuelle Anwendung ermitteln**\\ | ||
+ | Parameter: DL Auf 0FFH eingestellt | ||
+ | Rückgabe: | ||
+ | wobei: | ||
+ | |||
+ | AL=0 keine Anwendung | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Beschreibung: | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 03H__ reserviert für Sonderfunktionen**\\ | ||
+ | Es werden eine Reihe von " | ||
+ | \\ | ||
+ | Es gibt 6 Editor-Hooks. Diese machen es möglich, dass eine Anwendung innerhalb der Textverarbeitung geladen werden kann, die zugang zu einer begrenzten Zahl von internen Funktionen hat, die den Text oder die Umgebung verändern können.\\ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | \\ | ||
+ | \\ | ||
+ | **EDHO_GOTO | ||
+ | Parameter: AL 00H | ||
+ | | ||
+ | | ||
+ | Rückgabe: | ||
+ | |||
+ | Anmerkung: Es gibt 6 Arten von Bewegung: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Wenn der Wiederholungszähler negativ ist, so ist die Bewegung rückwärts.\\ | ||
+ | \\ | ||
+ | \\ | ||
+ | **EDHO_GET | ||
+ | Parameter: | ||
+ | Rückgabe: | ||
+ | DX Zeile | ||
+ | Anmerkung: Gibt die aktuelle Cursor-Position an.\\ | ||
+ | \\ | ||
+ | \\ | ||
+ | **EDHO_REF | ||
+ | Parameter: | ||
+ | BX | ||
+ | DX | ||
+ | Rückgabe: | ||
+ | |||
+ | Anmerkung: Cursor Override ist nur möglich, wenn sich der Cursor außerhalb des Scroll-Bereichs befindet, und erzwingt ein Auffrischen von der angebenen Stelle an:\\ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Invalid Flag Override besteht aus 5 Bits, die intern von der Textverarbeitung verwendet werden. Sie werden logisch " | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 10H | ||
+ | 20H | ||
+ | \\ | ||
+ | \\ | ||
+ | **EDHO_LOC | ||
+ | Parameter: | ||
+ | Rückgabe: | ||
+ | Anmerkung: Diese Funktion ermittelt die Adresse des Zeichens im Arbeitsspeicher.\\ | ||
+ | \\ | ||
+ | \\ | ||
+ | **EDHO_INS | ||
+ | Parameter: | ||
+ | ES:BX Adresse der einzufügenden ASCIIZ-Zeichenkette. | ||
+ | Rückgabe: | ||
+ | Anmerkung: Fügt Text an aktueller Cursor-Position ein, und setzt Cursor an Ende der Zeichenkette. | ||
+ | \\ | ||
+ | \\ | ||
+ | **EDHO_DEL | ||
+ | Parameter: | ||
+ | | ||
+ | | ||
+ | Rückgabe: | ||
+ | Anmerkung: Eine negative Zahl in CX simuliert die Korrekturtaste, | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 08H__ Bildschirm speichern/ | ||
+ | Parameter: | ||
+ | | ||
+ | DS:SI Puffer zur speicherung des Bildschirms | ||
+ | | ||
+ | | ||
+ | Rückgabe: | ||
+ | Beschreibung: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 09H__ Rahmen zeichnen**\\ | ||
+ | Parameter: | ||
+ | | ||
+ | | ||
+ | | ||
+ | Rückgabe: | ||
+ | Beschreibung: | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 0FH__ Menüs**\\ | ||
+ | Parameter: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | DS:SI Menütext (doppelt null-terminiert) | ||
+ | ES:DI Standardtexte ((doppelt null-terminiert) | ||
+ | (Wenn DI FFFFH ist, dann gibt es keine Satndardtexte) | ||
+ | Rückgabe: | ||
+ | oder | ||
+ | | ||
+ | | ||
+ | Beschreibung: | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 10H__ Berechnung der Rahmenfläche**\\ | ||
+ | Parameter: | ||
+ | DS:SI Menütext (doppelt null-terminiert) | ||
+ | ES:DI Standardtexte (doppelt null-terminiert) | ||
+ | Rückgabe: | ||
+ | AL Anzahl Einträge (inkl. Überschrift) | ||
+ | BX Anzahl Bytes (Attribute ausgenommen) | ||
+ | CX untere rechte Ecke des Rahmens | ||
+ | Beschreibung: | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 12H__ eingerahmte Meldungen**\\ | ||
+ | Parameter: | ||
+ | DX obere linke Ecke des Rahmens | ||
+ | CS:SI Meldungstext (doppelt null-terminiert) | ||
+ | Rückgabe: | ||
+ | Beschreibung: | ||
+ | \\ | ||
+ | \\ | ||
+ | **__Fn 14H__ eingerahmte Fehlermeldungen**\\ | ||
+ | Parameter: | ||
+ | DX obere linke Ecke des Rahmens | ||
+ | CX darf nicht Null sein | ||
+ | CS:SI Fehlertext (doppelt null-terminiert) | ||
+ | Rückgabe: | ||
+ | Beschreibung: | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
===== 3.11 IBM PC ENTWICKLUNGSSYSTEM ===== | ===== 3.11 IBM PC ENTWICKLUNGSSYSTEM ===== | ||
+ | Der Portfolio beinhaltet einige System-spezifische erweiterte BIOS Funktionen, auf die durch den Interrupt 61H zugegriffen wird, und eine Reihe von Funktionen für die Anwendungsumgebung auf die durch den Interrupt 60H zugegriffen wird. Wenn sie diese Funktionen, beim Entickweln auf einem standard IBM-PC, emulieren wollen, ist dies möglich indem sie die Programme I60.EXE und I61.EXE auf dem PC ausführen. Diese Programme bleiben als TSR installiert, | ||
+ | \\ | ||
+ | Int 60H Funktionen die von der IBM-Version unterstützt werden:\\ | ||
+ | Fn Nr | ||
+ | |||
+ | 0H | ||
+ | 7H | ||
+ | 8H | ||
+ | 9H | ||
+ | BH | ||
+ | DH | ||
+ | EH | ||
+ | FH | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | \\ | ||
+ | \\ |
hardware/doku/techrefguide/abschnitt3.1209671649.txt.gz · Zuletzt geändert: 16/02/2024 17:02 (Externe Bearbeitung)