Funkamateur 10/89 |
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.