Funkamateur 10/89

 

Zwei Programme in einem File

Relativ oft benötigt man zwei Programme gleichzeitig im Rechner, die zwar unterschiedliche Adressen belegen, aber getrennt zu laden sind. Um den Nachteil des getrennten Ladens zu umgehen, habe ich ein kleines Programm geschrieben, mit dessen Hilfe man zwei Programme (im Beispiel Textverarbeitungssystem und Druckertreiber) zu einem File verbinden kann.
Nach dem Laden wird das Hilfsprogramm gestartet und der Programmteil, welcher nicht die gewünschten Fileadressen belegt, auf die Originaladressen kopiert. Anschließend erfolgt ein Sprung in das als Hauptprogramm deklarierte Programm.
1. Laden des Texteditors als Hauptprogramm auf die Originaladressen (5000H bis 5B6FH; Startadresse 5000H).
2. Laden des Druckertreibers auf die Originaladressen (1900H bis 1B5FH; Länge 0260H).
3. Eingabe des Hilfsprogramms auf die erste freie Speicherstelle hinter dem Texteditor (5B70H). Diese Speicherstelle wird in dem neuen File die Startadresse! Die Eingabe des Hilfsprogramms erfolgt mit dem M-Befehl des Monitors (die in runden Klammern erläuterten Bytes sind von den zu behandelnden Programmen abhängig) :
5B70 E5 D5 C5 F5 21 [ENTER]
5B75 90 5B (Anfangsadresse für Druckertreiberpuffer)
5B77 11
5B78 00 19 (Anfangsadr. Druckertreiber)
5B7A 01
5B7B 60 02 (Länge Druckertreiber)
5B7D ED B0
5B7F 00 00 (Reserve für Initialisierung
5B81 00 des Druckertreibers)
5B82 21
5B83 00 50 (Startadresse Texteditor)
5B85 22 5B 18 22 75 18 F1 C1 D1 E3
C9
4. Nun kopiert man den Druckertreiber mit dem T-Befehl auf die erste freie Speicherstelle hinter dem Hilfsprogramm:
T 1900 5B90 0260
5. Es folgt das Ermitteln der neuen Endadresse. Diese ist die erste Adresse nach dem Hilfsprogramm (5B90H) plus der Länge des Druckertreibers (0260H) und ermittelt sich so in unserem Beispiel zu 5DF0H.
6. Retten des neu entstandenen Files:
S 5000 5DF0 5B70 Name
Nach dem Vergleichslesen ist das neue Programm nun mit J: zu starten.

H. Venzke