Der Trick mit dem Autostart
Oft ist es beim Laden von Maschinenprogrammen lästig, sich die verschiedenen SYS-Adressen zum Start zu merken oder sie in dem Berg von Notizen ausfindig zu machen. Da empfiehlt sich ein Starter, der mit »LOAD"name",8,1« geladen wird, sich selbst startet, das Maschinenprogramm auf die richtige Adresse lädt und ebenfalls startet.
Dazu muß man wissen, daß das Betriebssystem nach Ausführung der Loadroutine ($FFD5) indirekt in den Basic-Warmstart springt ($0302/$0303). Also wird dieser Vektor auf die Startadresse des Ladeprogramms gesetzt. Um auf der Diskette nur einen Block für den Lader zu belegen, wählt man für ihn den Bereich, der für Sprite 11 reserviert ist ($02C0-$02FE).
Dieses einfache Maschinenprogramm erfüllt die geforderten Bedingungen als Lader für das Programm »HESMON« mit Start $Cff8. Der Anwender muß für ein anderes Hauptprogramm nur die Länge des Namens ändern ($02Cl); den Zeiger auf den Filenamen ($02Cf/ $02D2), den Namen und die Adresse des Hauptprogramms ($02D7/$02DC & $02E7/$02E8). Dann wird der Bereich von $02C0 bis $0303 vom Monitor aus abgespeichert: »S”LOADER”08 02C0 0303«.
Zum Test des Programms vollziehe man nun einen Kaltstart, und nach »LOAD”LOADER”,8,1« erscheint SEARCHING FOR LOADER, LOADING, SEARCHING FOR HESMON, LOADING, dann erfolgt der Start des Programms »HESMON«.
Der Teil des oben genannten Laders, der als Vorbereitung der Loadroutine die Zeropage beschreibt, kann auch durch die Routinen $FFBA und $FFBD ersetzt werden.
Der Basic-Lader POKEd das Maschinenprogramm direkt in die zugehörigen Speicherzellen. Achtung: Nach Ablauf des Basic-Laders startet das Maschinencode-Programm direkt. Das Programm wandelt die Hex-DATAs in Dezimalzahlen um und POKEd diese. Das Programm, das geladen werden soll, bestimmt man durch Umändern der jeweiligen Speicherzellen, wie oben beschrieben.
(Martin Heinz und Andreas von Lepel)