XS1541 - AVR zwischen PC und CBM Floppy

Nach Ing. Thomas Winkler

XS1541 befindet sich noch in der Entwicklung! Änderungen/Erweiterungen sind daher jederzeit möglich!
Status zur Zeit: Alpha! Man kann das Projekt im forum64 verfolgen.

Mit diesem neuen Wandler zwischen den Welten auf AVR Atmega32 Basis, lassen sich sowohl serielle IEC Floppies, als auch parallele IEEE Floppies untereinander und mit einem PC verbinden. Dabei ist auf PC Seite keine spezielle Software erforderlich. Hyperterm ist ausreichend (38400 8N1). Dateien werden zwischen PC und AVR über Xmodem übertragen.

Hyperterm Bildschirm:

Ich habe den XS1541 Adapter auf einem Pollin AVR Evaluation Board aufgebaut. Dort ist schon alles drauf, was benötigt wird:
•	Atmega32 mit Programmiermöglichkeit.
•	MAX232 als RS232 Pegelwandler an RX+TX
•	16MHz Quartzschaltung.
Zum seriellen IEC Anschluß (siehe mmc2iec Kapitel) müssen anschließend folgende Verbindungen hergestellt werden:
AVR	PIN	Signal				J4 Anschlußpunkt auf Pollin Board
pd7 	21	clock				33
pd6	20	reset (nicht verbunden)	32
pd5 	19	srq				31
pd4 	18	data				30
pd2 	16	atn				28
+gnd		Masse				35,37,39
Pollin Platine:

Schaltplan:

Zip-Archive mit HEX Firmware für Pollin Board:
xs1541.zip

Befehls Syntax

Die Befehle können direkt im Terminal Programm eingegeben werden und werden direkt vom Controller ausgeführt. Dadurch ist man komplett unabhängig von der Hardware. Das funktioniert auf jedem PC, unter Windows, Linux oder Apple OS, es muß nicht mal ein PC sein.
Einstellungen: 38400 Baud 8N1 – Kein Hardware Flowcontrol – Kein Xon/Xoff
Einige Befehle kontrollieren direkt das Protokoll oder sogar die Portleitungen. Diese "low level" Befehle sind zum Test des Adapter bzw. für PC Programme gedacht.
Jeder Befehl hat einen Mussteil und einen Kannteil. Der Kannteil kann ganz oder teilweise weggelassen werden. Der Kannteil steht in rechteckigen Klammern. Manche Befehle haben mehrere Kürzel.
h[elp]

Listet alle Befehle die in der Firmware des Controller implementiert sind. Es kann 'h', 'he', 'hel' oder 'help' eingegeben werden.


iee[e]

Der aktive Bus wird zum parallelen IEEE-488 Bus geschalten. Alle Nachfolgenden Befehle (außer IEC) beziehen sich nun auf den IEEE-488 Bus. Dieser Modus ist die Standard Einstellung nach einem Controller Reset.


iec

Der aktive Bus wird zum seriellen IEC Bus geschalten. Alle nachfolgenden Befehle (außer IEEE) beziehen sich nun auf den IEC Bus.


dev[ice] oder #

Damit wird die aktive Gerätenummer des aktiven Bus festgelegt oder abgefragt. Wenn dem Befehl  ein numerischer Parameter folgt wird die Gerätenummer gesetzt. Der Befehl alleine ohne Parameter listet die aktuelle Einstellung. Für beide Bus Systeme ist die voreingestellte Adresse nach einem Reset 8.


@

Dieser Befehl sendet einen Befehl an die aktive Floppy (Befehlskanal 15) oder fragt den Fehlerkanal / Status ab wenn der Befehl alleine (ohne Parameter) gesendet wird.



 
dir[ectory] oder ca[talog] oder $

Listet das Verzeichnis der eingelegten Diskette. Als Parameter kann optional ein String mitgegeben werden. Das Format entspricht dem des Floppy DOS (load "$....",8). Bei Doppelfloppy sollte man als Parameter zumindest das Laufwerk (0 oder 1) mitgeben, sonst wird das Verzeichnis beider Laufwerke ausgegeben, was zu einem Fehler führt wenn nicht beide Laufwerke formatierte Disketten eingelegt haben.


filec[opy] oder fc 

Kopiert Dateien von Floppy zu Floppy. IEC zu IEEE oder umgekehrt ist möglich.


filed[ump] oder fd 
Erstellt einen Hexdump von einer Datei.


bac[kup] 

Erstellt eine Image Datei einer ganzen Diskette (d64, d72, d80, d81, d82). Die Image Datei wird per X-Modem Protokoll direkt auf die Festplatte des PC gespeichert.


res[tore] 

Schreibt eine Image Datei auf eine Diskette zurück (d64, d72, d80, d81, d82). Die Image Datei wird per X-Modem Protokoll vom PC zum Adapter übertragen.


lo[ad] 

Ladet eine Datei zum PC (P00, T64). Die Datei wird per X-Modem Protokoll direkt auf die Festplatte des PC gespeichert.


sa[ve] 
Schreibt eine Datei auf eine Diskette zurück (P00, T64). Die Datei wird per X-Modem Protokoll vom PC zum Adapter übertragen.