Funkamateur 12/86

 

CLIST - Kassettenlisten mit "AC1"

J.REUL - Y27XO/Y36ZO

Es wird ein Programm vorgestellt, mit dem auf Kassette vorliegende "AC1"-Programme in übersichtlicher Form aufgelistet werden können. Die Kassettenroutinen des "AC1" haben sich in der Erprobung als zuverlässig und dem Zweck entsprechend als ausreichend erwiesen. Jedoch fehlen in bestimmten Anwendungsfällen die Informationen über Programmanfang und -ende. Diese Daten werden mit Hilfe von CLIST aus den Kassettenfiles regeneriert und zusammen mit dem Programmnamen und der eingegebenen Startadresse als Tabelle auf dem Monitor dargestellt.
Dabei bestand bei der Erarbeitung des Programms die Forderung, eine eindeutige Anfangssynchronisation zu schaffen, um Programme ohne Unterbrechung nacheinander auflisten zu können. Eine Änderung der Monitorroutinen war dabei aus Kompatibilitätsgründen ausgeschlossen. Auch ein zusätzlicher Hardwareaufwand bzw. -änderung wurde nicht in Betracht gezogen.

Programmbeschreibung

Das Programm CLIST belegt den Speicherbereich 1900H bis 1ADFH. Gestartet wird mit dem Kennbuchstaben "↑" aus dem Monitor. Sollte sich dieses ASCII-Zeichen nicht auf der vorhandenen Tastatur befinden, so kann durch Ändern des Bytes auf der Adresse 1906H jeder andere Kennbuchstabe, der nicht vom Monitor belegt ist, genutzt werden. Nach dem Start wird der Bildschirm gelöscht und in der ersten Zeile erscheint der Tabellenkopf ( Bild 1 ).
Die Anfangserkennung wird mit Hilfe des Kenntons zu Beginn jeder Aufnahme realisiert. Nach [1] handelt es sich dabei um 512 Nullbytes. Das bedeutet, daß in dieser Zeit 4096 Rechteckimpulse mit einer Periodendauer von 0,666 ms entstehen. Damit ist eine eindeutige Synchronisation auf den Programmanfang möglich, da regelmäßige Impulse innerhalb eines Files maximal 256 Bytes lang sein können, die dann immer von der Checksumme und der Blockadresse unterbrochen werden.
Zur Anfangssynchronisation werden die PIO und die CTC eingesetzt, die mit entsprechend zeitverschobenen Interrupts die Periodendauer der Impulse auswerten. Ein Zähler, der zuvor geladen wurde, wird nach jedem Impuls verringert bzw. wieder auf seinen Anfangswert gesetzt. Wurden aufeinanderfolgend 2245 Impulse als richtig ausgewertet, so werden PIO und CTC deaktiviert und am Zeilenanfang eine vierstellige, mit 0001 beginnende fortlaufende Programmnummer geschrieben. Die nachfolgenden Abläufe entsprechen etwa denen der LOAD-Routine des Monitors. Geladen bzw. verglichen wird jedoch nicht.
Mit Beginn der Daten wird die Information über die Anfangsadresse zunächst in RAM-Zeilen zwischengespeichert, da eine Ausschrift auf dem Bildschirm aus Zeitgründen nicht möglich ist. Anstelle des im Monitor verwendeten "*" blinkt hinter dem Namen ein "↑". Beim Zeichengenerator U 402 D wird dieses Zeichen je nach Bitmuster durch ein anderes ersetzt.
Sollte bei der blockweisen Checksummenüberprüfung ein Fehler festgestellt werden, meldet sich das Programm mit der Ausschrift "CHECKSUM/". Daraufhin wird zur Anfangssynchronisation zurückgesprungen und auf den Beginn des nächsten Files gewartet Diese Überprüfung erfolgt unter den gleichen Kriterien wie im Monitor, so daß auch dort ein Abbruch erfolgt wäre.
Die Information über die Endadresse wird einem Adreßzähler entnommen, dessen Wert beim letzten Datenbyte ebenfalls in RAM-Zellen übernommen wird. Als letzte zu verwertende Information befindet sich auf dem Magnetband die eingegebene Startadresse, die ebenfalls zwischengespeichert wird. Danach werden nach der laufenden Nummer und dem Programmnamen Anfangs-, End- und Startadresse ausgegeben. Eine Zeile könnte also nach dem Tabellenkopf so aussehen : ( Bild 1 )
Anschließend wird zur Anfangssynchronisation zurückgesprungen und mit dem Listen der nächsten Zeile fortgefahren. Der Programmabbruch kann mit "CTRL-C" erfolgen, wobei nach Erscheinen der laufenden Nummer vom Kassetteninterface ein Flankenwechsel erzeugt werden muß.

Einsatzerfahrungen

Die gewählte Art der Anfangssynchronisation hat sich als zuverlässig erwiesen. Es dürfen jedoch während des Kenntons keine Bandunterbrechungen erfolgen, was aber bei einer "sauberen" Aufnahme auch nicht der Fall sein dürfte.
CLIST wird seit längerer Zeit von mehreren "AC1"-Nutzern mit Erfolg eingesetzt. Ein einfaches Katalogisieren des bereits entstandenen Kassettenberges ist mit diesem Programm möglich geworden. Auch beim Programmaustausch hat es schon gute Dienste geleistet. Beim Überspielen mehrerer Programme kann im Anschluß die Überprüfung des gesamten Paketes mit CLIST erfolgen. Sollte sich dabei ein Bandfehler eingeschlichen haben, so erfolgt unweigerlich die Ausschrift "CHECKSUM/". Anderenfalls kann mit der LOAD-Routine des Monitors die Aufnahme auch wieder gelesen werden.

Das Hexlisting für das Programm CLIST findet man auf Seite 612

Literatur

[1] Heyder, F.: Der Amateurcomputer "AC1", Teil 9,
FUNKAMATEUR 33 (1984), H.10, S.508...510

17 KByte 144 KByte
Bild 1 Listing