Write-Hand-Man
aktiviert mit der Kontrolltaste [CTRL] ]
.
Mit der Aktivierung stehen folgende voreingestellte Kommandos und damit Werkzeuge zur Verfügung:
A | Notepad | Mit diesem Editor lassen sich Notizen verarbeiten | ||||||||||
B | Phonebook | Dies ist ein Editor für Telefonnummern | ||||||||||
C | Calendar | Ein Kalender von Januar 1978 bis Dezember 2000 | ||||||||||
D | Dir | Ausgabe eines Inhaltsverzeichnisses | ||||||||||
E | View | Anzeige einer Textdatei | ||||||||||
F | Calculate | Ein Taschenrechner für die vier Grundrechenarten | ||||||||||
G | Keys | Ein Macro-Editor für die Tastenbelegung | ||||||||||
R | Restore | Stellt Tastenbelegung wieder her | ||||||||||
O | Other | Auswahl einer Erweiterung.
Folgende Erweiterungen sind verfügbar:
|
0900
Bytes lang sein.
Hier die Dateien:
• | Binärdateien beinhalten die erforderlichen .COM , REL. und DAT. -Dateien |
||
• | Hauptdatei | Das Programm aktiviert oder deaktiviert die RSX | |
• | RSX | Die RSX, die an das Hauptprogramm gebunden werden muss | |
Die Anwendungen | |||
---|---|---|---|
• | Notepad | Der Editor für Notizen | |
• | Phonebook | Editor für Telefonnummern | |
• | Calendar | Ein Kalender von Januar 1978 bis Dezember 2000 | |
• | Dir | Ausgabe eines Inhaltsverzeichnisses | |
• | View | Anzeige einer Textdatei | |
• | Calculate | Der Taschenrechner für die vier Grundrechenarten | |
• | Keys | Der Macro-Editor für die Tastenbelegung | |
• | Restore | Stellt Tastenbelegung aus KEYS.DAT wieder her |
|
• | Diary | Verwaltung eines Terminkalenders für 14 Tage | |
• | Hex | Ein Taschenrechner für ganze Zahlen | |
• | ASCII | Ausgabe aller 256 möglichen Zeichen | |
• | Bigphone | Der Editor für Telefonnummern für mehr Nummern als Phonebook .
(Es ist die gleiche Quelle wie Phonebook , jedoch wird der Wert für big auf 1 gesetzt) |
|
• | Fkeys | Editor zur Belegung der Funktionstasten [f1] bis [f8] |
00
bis 100h
).
BASE+016h
beinhaltet die Adresse der Tastatur Macro-Triggerzeichen.
BASE+018h
beinhaltet die Adresse der Tastatur Macro-Tabelle.
Für jeden Tastatur-Macro sind 16 Zeichen reserviert.
BASE+01Ah
beinhaltet die Adresse eines Speicherbereichs mit 48 Bytes Größe.
WHM greift darauf nicht zu, jedoch können Anwendungen darüber Daten austauschen.
WHM erlaubt eigene Anwendungen mit Aufruf der System-Funktionen außer denen, die Reset-Funktionen beinhalten, also z.B. SYSTEM RESET oder DISK RESET.
Alle Adressen müssen relativ zu den von WHM benutzten Adressen sein.
Um einen Systemaufruf auszuführen ist das dann nicht CALL 5
sondern CALL BASE+5
.
Hierbei ist BASE
der Start des Programms.
BASE+05Ch
hält einen FCB, der eigestellt ist mit Name.DAT
, wobei Name
der Name der Anwendung ist.
Die DMA-Adresse zeigt auf BASE+080h
.
Das Programm wird aufgerufen ab Adresse BASE+0100h
.
BASE+0
beinhaltet eine JMP
Anweisung zum Rücksprung zu WHM.
CBASE+5
beinhaltet eine JMP
Anweisung zum BDOS.
Es gibt zwei weitere JMP
Anweisungen in den ersten Speicheradressen der Anwendung.
BASE+010h
beinhaltet eine JMP
Anweisung zu einer Routine, die den Cursor in die obere linke Ecke setzt (Cursor Home).
Ein CALL BASE+010h
bringt den Cursor in die Anfangsposition.
Dann ist da noch die Adresse BASE+013h
, die eine JMP
Anweisung zu einer Routine, die das Ausführen einer anderen Routine (Chaining), beinhaltet.
Will eine Anwendung die Kontrolle an eine weitere Anwendung übergeben, so muss der neue Name in BASE+05Dh
abgelegt werden.
Danach muss die Anweisung JMP BASE+013h
ausgeführt werden.
Die Anwendungsprogramme können mit jedem beliebigen Assembler erstellt werde, der den Microsoft REL80 Code erzeugt.
WHM wirkt beim Laden einer Anwendung (.REL
-Datei) wie ein Linker, allerdings mit eingeschränkten Funktionen.
Zu beachten ist:
Code Segment
.
Nicht benutzt werden können also ASEG
, DSEG
und COMMON
sondern lediglich CSEG
.0900
Bytes (2304 dezimal) nicht überschreiten.
org 0 ; base of program base equ $ ; relative BASE for assembler bdos equ base+5 ; BDOS call (R) home equ base+010h ; special HOME routine (R) chain equ base+013h ; chaining return (R) fcb equ base+05ch ; default FCB (R) fcbcr equ fcb+32 fcbr0 equ fcb+33 fcbr2 equ fcb+35 fcbs2 equ fcb+14 bdos equ base+5 buf equ base+080h ; default BUFFER (R) open equ 15 close equ 16 ranread equ 33 ranwrit equ 34 pstring equ 9 setdma equ 26 conio equ 6 ; org 0100h ; standard entry point jmp go ; JUMP to start of the ; code ; this program uses the 256 ; bytes starting at BUF ; (BASE+080h) as an I/O ; buffer org 0180h ; end of second half of ; buffer go: xra a ; first instruction of ; program sta fcbs2 ; the stack is a good one sta fcbr2 ; clear FCB fields lxi d,fcb mvi c,open ; open NOTEBOOK.DAT file call bdos inr a jz base ; return (just like ; traditional ;JMP to 0, ; warm boot) lxi h,0 ; continue with code |