Pop Up Tools - Write-Hand-Man

Diese Programmsammlung — ähnlich dem Borland-Tool Sidekick — ist als RSX angelegt. Nach der Installation wird Write-Hand-Man aktiviert mit der Kontrolltaste [CTRL] ]. Mit der Aktivierung stehen folgende voreingestellte Kommandos und damit Werkzeuge zur Verfügung:

ANotepadMit diesem Editor lassen sich Notizen verarbeiten
BPhonebookDies ist ein Editor für Telefonnummern
CCalendarEin Kalender von Januar 1978 bis Dezember 2000
DDirAusgabe eines Inhaltsverzeichnisses
EViewAnzeige einer Textdatei
FCalculateEin Taschenrechner für die vier Grundrechenarten
GKeysEin Macro-Editor für die Tastenbelegung
RRestoreStellt Tastenbelegung wieder her
OOtherAuswahl einer Erweiterung. Folgende Erweiterungen sind verfügbar:
DiaryVerwaltung eines Terminkalenders für 14 Tage
HexEin Taschenrechner für ganze Zahlen
ASCIIAusgabe aller 256 möglichen Zeichen
BigphoneDies ist ein Editor für Telefonnummern für mehr Nummern als Phonebook
FkeysEditor zur Belegung der Funktionstasten [f1] bis [f8]

Module für Write-Hand-Man können leicht selber programmiert werden. Die durch Write-Hand-Man zu unterstützende Datei muss als .REL Datei vorliegen und darf nicht länger als hex 0900 Bytes lang sein.

Hier die Dateien:

[Download] 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]

Hinweise für die eigene Erweiterung

Die Tastatur-Macros und der Speicher von Write-Hand-Man (WHM) stehen allen Anwendungen zur Verfügung. Die Adressen für diese Bereiche sind abgelegt in der ersten Speicherseite der Anwendung (Adressen 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: Eine typische Anwendung (hier Notepad) zeigt der folgende Ausschnitt:

	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