Text   ·   Grafik   ·   Miniaturbilder   ·   PDF   ·   Inhaltsverzeichnis

 

80-Bus Journal

Juli/Aug. 1983 · Ausgabe 7/8


CASMON

von CONSTANTIN OLBRICH

Implementierungshinweise für Casmon 1.3

Für den Betrieb des Casmon 1.3 wird ein Hifi-Recorder mit elektrischen Tipptasten benötigt. Heutzutage haben alle Hifi-Recorder eine automatische Endabschaltung, die über einen Hall-Generator, optoel. Sensor oder über eine mech. Vorrichtung gesteuert wird. In meinem Fall erzeugt der Hall-Generator Impulse, die der Umdrehungszahl des Wickeltellers entsprechen. Beim Ausbleiben dieser Impulse (Monoflop Fktn) liegt also ein Störungsfall (Bandende oder Salat) vor, und eine 'Stop' Funktion wird ausgeführt.

Der hier verwendete Recorder, ein M 250 von Techniks für ca. 650 DM, dient mir primär zur Musikwiedergabe und nur sekundär als Massenspeicher. Ein für dieses Programm passender Recorder kostet mindestens 350 DM und liegt somit in der Nähe der Floppys. Dieser Beitrag ist also hauptsächlich für die Anwender, die bereits einen Hifi-Recorder oben genannter Spezifikation haben, gedacht.

Parallel zu den Tasten der Fernbedienung liegen die Pins der Pio Port B (Bit 0-5). Bit 7 des Ports B ist mit dem Ausgang des Hall-Generators (zusätzlich integrierter Schmitt Trigger in MOS) verbunden.

Der Port B ist ständig als Input definiert, nur im Fall eines Rechnerbefehls für den Recorder werden die entsprechenden Bits kurz als Ausgang geschaltet. Ich wollte so über die normale Recorder Tastatur Interrupts erzeugen, damit das rechnerinterne Zählwerk die Information erhält, ob's vorwärts oder rückwärts weitergeht.

Die manuelle Steuerung des Recorders ist also nicht unterstützt, dazu müßte man die Zählwerksimpulse differenzieren, um die Interrupts nicht zu sperren (mit Monoflop).

Der Hall-Generator liefert in meinem Fall etwa die dreifache Anzahl von Impulsen für ein normales, mechanisches Zählwerksinkrement. Die Periodendauer der Impulse ist unkritisch.

Wer einen anderen Recorder verwendet, soll unbedingt zunächst nur die Laufwerksfunktionen (Prüfung der Verbindung und Verzögerung) testen (Tabelle 1). Der Recorder muß von der Betriebsart Pause durch 'Record' in 'Pause Record' schaltbar sein. Weiter gehts dann mit 'Play' für die Aufnahme. Die Interruptroutine zeigt den aktuellen Positionswert in der linken Ecke der Überschriftszeile an, auch während eines Ladevorgangs mit 2400 Baud bei 4 MHz.

Alle Wartezeiten für Motoren und Zugmagnete sind relativ großzügig bemessen und gelten für 4 MHz ohne wait. So gibt's für Fremdrecorder hoffentlich keine Probleme.

Da ich keine Lesefehler mit 2400 Baud habe, gibt es kein erneutes Lesen nach einem Lesefehler. Ich benutze das Standard Read Kommando des Nassys 3. Die Marken werden dadurch beim Lesen ignoriert. Die Cassette ist somit auch vom normalen Betriebssystem lesbar (aufwärts kompatibel).

Das Programm ist, wie ich meine, sehr einfach und modular aufgebaut, sodaß dem Anwender Erweiterungsmöglichkeiten offen stehen. Der Nassys Konvention folgend, ist Screen Editing möglich. Casmon ist mit dem

schnellen (ca 10 mal rascher als Zeap) Compression ASM von Level 9 Computing geschrieben, der Labels beliebiger Länge zuläßt. (z.B.: CALL READCATALOG). Somit liest sich das Programm bequemer.

Ich biete das Quellprogramm deshalb auf Photkopien zum Selbstkostenpreis an (5 DM Schein, Rest in Porto zurück).

Kurzbeschreibung des Programms : CAS - MON V1.3

Dieses Programm ermöglicht das Laden und Speichern von Programmen und Daten mit einem steuerbaren Recorder.

Es existiert dabei eine Fileverwaltung ähnlich einem Disk Operating System. Es stehen Befehle zum Laden und Retten von Files, zum Aktualisieren (Update) und Löschen, sowie Hilfsfunktionen wie das Formatieren der Cassette und das Lesen des Kataloges (Inhaltsverzeichnis) zur Verfügung. Eine Softwareschnittstelle ermöglicht das Arbeiten mit dem Cas-Mon 1.3 vom Assembler, Basic, Naspen, Pascal usw.

Alphabetische Beschreibung der Kommandos:

1. 'C'atalog;

Das Kommando 'C' spult das Band an den Anfang, liest den Katalog in den Speicher, spult das Band abermals zurück und listet die Filenamen mit der dazugehörigen Startposition und der Filelänge auf dem Bildschirm.

Wird ein hexadezimales Argument z.B. 'C 0' gegeben, so wird nur der sich im Speicher befindende Katalog gelistet, ohne die Bandposition zu verändern. Format des Kommandos:

        C   <#dummy>   [cr]

'D'elete:

Der Befehl löscht ein File im Katalog, der sich im RAM befindet, und schreibt diesen wieder auf Band. Existiert das spezifizierte File nicht, erfolgt die Meldung 'No such File'. Der Filename darf Leerzeichen enthalten und max. 20 Zeichen lang sein. Format des Befehls:

        D          [cr]
        Filename   [cr]

'E'xit:

Exit dient zum Verlassen des Cas-Mon 1.3, wenn dieser als Unterprogramm aufgerufen wurde. Dies ist das normale Ende einer Cassetten Operation von einem übergeordneten Programm her (Basic, ASM, Naspen). Der Stackpointer des übergeordneten Programms wird im Cas-Mon 1.3 nicht benutzt. Format:

        E     [cr]

'F'ormatiere Band:

Dieser Befehl löscht das Band vollständig und bereitet es zur Benutzung mit Cas-Mon 1.3 vor. Um ein unbeabsichtigtes Löschen zu verhindern, muß nach Eingabe des Befehls die Frage 'Are You sure ?' mit 'Y' beanwortet












Seite 23 von 52