hardware:doku:techrefguide:abschnitt3
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
hardware:doku:techrefguide:abschnitt3 [01/05/2008 01:05] – internen Link korrigiert. uxt | hardware:doku:techrefguide:abschnitt3 [19/09/2010 18:09] – typos uxt | ||
---|---|---|---|
Zeile 857: | Zeile 857: | ||
==== 3.9.1 Speicherungsformat des Zeitplaners ==== | ==== 3.9.1 Speicherungsformat des Zeitplaners ==== | ||
+ | Der eingebaute Terminplaner speichert seine Daten im standard ASCII Datei-Format. Um verschiedene Datumsformate zu umgehen, speichert der Terminplaner sie im englischen Format.\\ | ||
+ | \\ | ||
+ | Bestimmte Informationen, | ||
+ | \\ | ||
+ | Es folgt ein Beispiel einer Terminplaner-Datei: | ||
+ | |||
+ | | ||
+ | 14:14 Technische Referenz | ||
+ | 20:20 Nach Hause | ||
+ | |||
+ | Wenn ein Eintrag ein sich wiederholendes Ereignis ist, so wird der Uhrzeit ein Code-Zeichen vorangesetzt, | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Wenn dem Eintrag eine Weckfunktion zugeordnet ist, so wird das Symbol" | ||
+ | \\ | ||
+ | Wenn ein Eintrag eine Weckfunktion hat und ein sich wiederholendes Ereignis ist, so geht der Wiederholungscode dem Weckzeichen voraus.\\ | ||
+ | \\ | ||
+ | Zum Beispiel: | ||
+ | 6/07/89 | ||
+ | | ||
+ | 7/07/89 | ||
+ | | ||
+ | w@ zum Tennis | ||
+ | |||
+ | Der erste Eintrag ist ein sich nicht wiederholendes Ereignis mit Weckfunktion. Der zweite Eintrag wiederholt sich täglich und der dritte wöchentlich und löst Portfolios Weckfunktion aus.\\ | ||
+ | \\ | ||
+ | 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:\\ | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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, | ||
+ | \\ | ||
+ | Wenn die Datei kein 00H Terminierungsbyte enthält, dann wird die Datei nicht ins Klemmbrett geladen. Ähnlich, wenn die Datei größer als die maximal erlaubte Anzahl an Bytes ist, wird sie nicht geladen. In beiden Fällen, wenn die Datei nicht geladen wird, sie wird beim Verlassen der Anwendung mit einer neuen Datei überschrieben.\\ | ||
+ | \\ | ||
+ | Wenn das Klemmbrett das normale Text-Format (0DH, 0AH) hat, so wird es nur vom Text-Editor oder dem Termiplaner geladen.\\ | ||
+ | \\ | ||
=== 3.9.2.2 UNDELETE.DAT === | === 3.9.2.2 UNDELETE.DAT === | ||
+ | Die Wiederherstellungs-Datei wird verwendet, um alle Zeichen oder Blöcke, die in den Anwendungen gelöscht werden zu speichern. Sie besteht aus einer Anzahl von Datenblöcken. Jeder Block stellt eine Gruppe von Zeichen dar, die mit einem Befehl gelöscht wurden. Das Format eines Blocks ist wie folgt: | ||
+ | < | ||
+ | < | ||
+ | \\ | ||
+ | Das Byte 00H wird verwendet um die Länge des gelöschten Blocks zu ermitteln.\\ | ||
+ | \\ | ||
+ | <DIR> ist ein Ein-Byte Code das angibt in welche Richtung gelöscht wurde. Wenn die Daten nach links gelöscht wurden (z.B. mit der Korrektur-Taste), | ||
+ | \\ | ||
+ | Die höchste Anzahl an Bytes, die die Datei UNDELETE.DAT enthalten kann ist 2000. Wenn die Datei mehr Bytes als diese Anzahl entält so wird sie ignoriert und beim Verlassen der Anwendung durch eine neue ersetzt.\\ | ||
+ | \\ | ||
+ | Wenn die Datei UNDELETE.DAT nicht das richtige Format hat sind die Folgen unvorhersehbar. Warscheinlich werden die Daten in der Datei unlesbar.\\ | ||
+ | \\ | ||
=== 3.9.2.3 PERMDATA.DAT === | === 3.9.2.3 PERMDATA.DAT === | ||
+ | Das Format der System-Daten Datei ist wie folgt:\\ | ||
+ | Bytes (in HEX) Funktion: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Die Datei PERMDATA.DAT enthält derzeit 730 Byte.\\ | ||
+ | \\ | ||
===== 3.10 Funktionen der Anwendungsumgebung ===== | ===== 3.10 Funktionen der Anwendungsumgebung ===== | ||
==== 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.txt · Zuletzt geändert: 13/06/2020 18:06 von karlmueller