AC1-Berlin, Autostartmaker

Wie funktioniert eigentlich der Autostartmaker?

Programm von B.Nickel - 1988, Rückübersetzung von Johann Spannenkrebs.

Autostart bedeutet Start des Programms nach Einlesen von Kassette ohne weitere Bedienhandlungen.

Wie kann das beim AC1 ohne Änderung an Hard- und Software erreicht werden?

Von B.Nickel wurde eine Möglichkeit gefunden um die Monitorschleife zu manipulieren.

Bei der Erklärung muß man etwas tiefer in die Kassettenroutine einsteigen.
Die Daten werden in Blöcken übertragen.

Blockaufbau wie folgt:
Kennbyte
Blockstartadresse
Blocklänge
Daten
Prüfsumme

Die Blockstartadresse zeigt auf die Zieladresse wohin der aktuelle Block geladen werden soll. Ein Programm wird normalerweise von Anfangsadresse bis Endadresse hintereinander in dem RAM-Bereich abgelegt in dem es laufen soll.

Durch entsprechende Blockstartadressen ist jede RAM-Zelle erreichbar. Der Datenblock kann 1 bis 256 Byte groß sein.

Beim Autostartmaker werden nach dem Programm 2 zusätzliche Blöcke übertragen. Ein Block (17 Byte) wird in einen unbenutzten RAM-Bereich (ab 18C0H) geladen (eigentliche Manipulationsroutine). Der zweite Block (2 Byte) überschreibt die Sprungadresse zur RST10H-Routine im RAM (neue Zieladresse ist die im 1.Block übermittelte Manipulationsroutine).
Ist das Programm komplett eingelesen dann kehrt die Kassetteneinleseroutine wieder in die Monitorsschleife zurück. Der Monitor versucht dann über die Zeichenausgabe mit RST10H den Kursor darzustellen.
Die Routine ist aber "umgelenkt" worden.
Das jetzt angesprungene Manipulationsprogramm stellt die Sprungadresse für RST10H wieder auf die "richtige" Monitorroutine. Als Schönheitsreparatur wird das "Blocklese-Sternchen" auf dem Bildschirm durch ein Leerzeichen ersetzt. Nun wird die Startadresse des eingelesenen Programms aufgerufen.
Das ist schon alles.
B.Nickel hat optional das Laden eines Bildes direkt in den Bildschirmspeicher vorgesehen. Dies geschieht durch gezielte Einstellung der entsprechenden Blockstartadressen.

Der Autostartmaker ist also eine spezielle Save-Routine, die optional ein "Startbild" überträgt und das abgespeicherte Programm "allein" starten läßt.
Es wird ein zum Monitor V3.1 kompatibles Aufzeichnungsverfahren verwendet.

Die genaue Umsetzung ist aus dem kommentierten Quellcode ersichtlich.



Autostartmaker - (Wav-Datei, gezippt),
EDAS-Quelle - (Wav-Datei, gezippt),
Listing als .PDF
zurück zu AC1-Berlin