Hallo Besucher, der Thread wurde 43k mal aufgerufen und enthält 209 Antworten

letzter Beitrag von DerSchatten am

XS1541 - universal serial adapter for CBM Floppy

  • Einen guten Client auf PC Seite wird es von meiner Seite nicht geben. Der Adapter ist auch ohne PC Software voll funktionsfähig, es bedarf dazu nur eines Terminal Programmes wie zb. Hyperterm.


    Aber ich bin sehr aufgeschlossen zu PC seitiger Unterstützung jeglicher Art. Ich passe die Firmware des XS-1541 gerne auf solche Dinge an. Wenn sich jemand berufen fühlt einen Client zu programmieren oder ein Tool dann, nur zu! Am schönsten wäre natürlich eine Unterstützung von OpenCBM an den Adapter.



    Für die parallel Kabel Unterstützung ist es erforderlich, daß 6502 Code in die Floppy geladen wird. Dieser Code unterscheidet sich zwischen den Laufwerken, deshalb muß der XS-1541 Adapter (in diesem Fall) wissen, welcher Floppytyp angeschlossen ist (wird). Dazu wird der # Befehl erweitert:


    # gerätenummer [floppytyp]


    Als Floppytyp kann 1541, 1571, 1581, 4040, 8050 und 8250 stehen.



    Die Angabe des Floppytyp ist optional, hat aber den Vorteil dass dadurch auch der default Diskimagetyp automatisch voreingestellt wird.


    Notwendig ist die Angabe bei Laufwerksfremden Diskettentyp, also genau in folgenden Fällen:

    • eine 8050 Diskette in einem 8250 oder SFD-1001 Laufwerk
    • eine 1541 Diskette in einem 1571 Laufwerk
    • eine 1541 Diskette in einem 4040 Laufwerk
    • eine 4040 Diskette in einem 1541 Laufwerk
  • Wichtig ist, daß es einen Standart gibt und nicht wie beim x?1541 Kabel, damit steh ich Heute noch auf dem Kriegsfus. Als Software geht auch Interlink (Dos), oder PC-Direktverbindung (Win95/98) und natürlich DFÜ.
    Ich hätte auch gerne so eine Verbindung, am liebsten mit Zugriff, vom PC auf die am Cevi Angeschlossenen ICE Geräte und Umgekehrt, also vom Cevi aus auf die PC-Geräte.

  • Wenn mir einer einen zusammenbaut und zuschickt bau ich euch nen schickes Frontend für DOS, Win32 und Linux. :)


    Hey, das ist ein Wort!! :thumbsup:


    Hm, - Matrix Bildschirmschoner - , dir geht es wohl hauptsächlich um den IEEE-488 Teil?



    Ich bestelle noch so ein Protoboard wie ich es im Moment verwende, löte dir den zweiten Teil meines IEEE-488 Kabel drauf und sende dir das mit einem programmierten Atmega644. Das Ganze ist betriebsfertig für deine IEEE-488 Floppy zum PC.


    Für den seriellen IEC Teil musst du selbst schauen. Ich habe nämlich weder Transistoren da noch ein zweites XA-1541. Mein XA-1541 brauche ich noch eine Weile wegen der fehlenden parallel Routinen und dem burst Modus. Wenn du ein funktionierendes XA-1541 besitzt, ist es nur eine Frage von einem Stück Flachbandkabel.


    Was sagst du dazu? :)

  • Bugfix: v0.01.09a


    + Behebt das Problem, dass bei 1541 Imagefiles (D64) die BAM falsch gelesen wurde. Darum hat Backup nicht funktioniert bei Auswahl BAM (nur belegte Blöcke).



    Mit dem Stand müssten auch .D71 Images gehen (ungetestet). Außerdem kann bereits der Laufwerkstyp angegeben werden beim Befehl #, allerdings noch ohne Auswirkung auf Default Imagetypen.

  • Zitat

    Also dieses Pollin Board ist ja der Hammer! Zumindest für AVR Neueinsteiger. Um 15 Euro + 3,50 für den Mega32 bekommt man eine komplette Entwicklungsumgebung inklusive Programmer!


    Natürlich ist das Board XS1541 tauglich wenn man es mit eiem Mega32 bestückt.


    Hi. Da ich ab nächster Woche Urlaub habe ;-) dachte ich mir, evtl. kann ich das mal probieren..
    daher folgende Fragen:
    * ist die AVR Firmware insoweit fertig, das serielle IEC Floppies funktionieren (1541)?
    * An welchen PIN's sind ATN, CLK und DATA der IEC-Schnittstelle anzubinden?
    * Wo kann ich die Firmware als HEX-Datei für Pollin Board mit 16MHz Quartz herunterladen?
    * Wie ist die RS232 Schnittstelle des PC's einzustellen?


    Peter

  • Hi. Da ich ab nächster Woche Urlaub habe ;-) dachte ich mir, evtl. kann ich das mal probieren..
    daher folgende Fragen:


    Das finde ich genial dass es mal jemand nachbaut! Nur so kann man auf eventuelle Probleme und Unzulänglichkeiten aufmerksam gemacht werden. :D


    * ist die AVR Firmware insoweit fertig, das serielle IEC Floppies funktionieren (1541)?


    Ja


    Image lesen geht zur Zeit nur für 1541. 1571 ist aber fertig und im Test. 1581 kommt sobald mein Amiga Laufwerk da ist (ich habe ein Disketten Auswurf Problem).


    * An welchen PIN's sind ATN, CLK und DATA der IEC-Schnittstelle anzubinden?


    Das aktuelle Schaltbild findet sich im Hardware Thread. Da man hier leider die eigenen Beiträge nicht editieren darf muß man nach unten durchsuchen um das Aktuelle zu finden.


    Für IEC braucht man einen XA-1541 Adapter. Ein XA-1541 besteht aus 4 Transistoren und 4 Widerständen. Es geht auch mit Drei, aber für den schnellen 1571 Modus (burst mode) braucht es die vierte Leitung am SRQ.


    Eingänge am Atmel sind PD2 (ATN), PD4 (Data), PD5 (SRQ) und PD7 (Clock). Die Ausgänge am Atmel gehen zur Basis der Transistoren (über Widerstände). Ausgänge sind PC0 bis PC3 (Clock-o, Data-o, SRQ-o, ATN-o).


    * Wo kann ich die Firmware als HEX-Datei für Pollin Board mit 16MHz Quartz herunterladen?


    Das aktuelle HEX findet sich im Software Thread (also hier). Da man hier leider die eigenen Beiträge nicht editieren darf muß man nach unten durchsuchen um das Aktuelle zu finden.


    * Wie ist die RS232 Schnittstelle des PC's einzustellen?


    Zur Zeit verwende ich 115200,8,N,1. Man sieht das auch an den Screenshots vom Hyperterminal.

  • Zitat

    Für IEC braucht man einen XA-1541 Adapter. Ein XA-1541 besteht aus 4 Transistoren und 4 Widerständen. Es geht auch mit Drei, aber für den schnellen 1571 Modus (burst mode) braucht es die vierte Leitung am SRQ.


    Das ist aber doof.. beim mmc2iec sind doch die 3 Leitungen (ATN,CLK,DATA) auch direkt angeschlossen..? Warum also hier getrennte Inputs und Outputs..?


    Peter

  • Das serielle Protokoll ist etwas "heikel". In den Dokus zum Mnib und OpenCBM kann man nachlesen, dass die einzige vernünftige Anbindung des IEC eine "aktive" Anbindung ist, so wie sie beim XA-1541 gemacht wird.


    Bin kein Techniker und richtig, SD2IEC macht sogar Jiffy ohne Transistoren. Aber im Sourcecode vom SD2IEC sieht man da und dort auch _delay(xxx) mit der sinngemäßen Bemerkung: "nötig damit das Protokoll funktioniert"



    Ohne aktiven Anschluss ist es technisch etwas schwammig. Aber wenn es gewünscht ist mache ich eine Version ohne Transistoren. Von der Software ganz easy, muß nur die Ausgänge invertieren.



    EDIT - Zusatz: Wenn das ohne XA funktioniert, dann könnte ich unserem Lion doch eine Version senden. Denn IEC Kabel habe ich da. Ich würde dann eines opfern. Dann bekommen wir eine bedienerfreundliche PC Oberfläche! =)



    PeterSieg
    Ich mache heute Abend mal eine Version die direkt funktionieren müsste.

  • Hi. Eine Version für das Pollin Board, wo ich die 3 IEC Leitungen mal direkt zw. AVR+Floppy verbinden kann, wäre super!


    Wenn das funktioniert, wären es 15€ für das Board, 1€ Netzteil, 1€ RS232 Kabel, 2,50€ ATmega32 und 4 Kabel zur Floppy (ATN,CLK,DATA+GND)..


    Peter

  • Hi. Eine Version für das Pollin Board, wo ich die 3 IEC Leitungen mal direkt zw. AVR+Floppy verbinden kann, wäre super!


    Wenn das funktioniert, wären es 15€ für das Board, 1€ Netzteil, 1€ RS232 Kabel, 2,50€ ATmega32 und 4 Kabel zur Floppy (ATN,CLK,DATA+GND)..


    Das funktioniert bestimmt, zumindest mit einer Floppy. Aber die getrennten Ein- und Ausgänge benötige ich trotzdem. Also einfach wie oben (bzw. im Schaltbild) beschrieben aber halt ohne Transistoren.


    Eingänge PD2 (ATN), PD4 (Data), PD5 (SRQ) und PD7 (Clock).
    Ausgänge PC0 bis PC3 (Clock-o, Data-o, SRQ-o, ATN-o).

  • Bin kein Techniker und richtig, SD2IEC macht sogar Jiffy ohne Transistoren. Aber im Sourcecode vom SD2IEC sieht man da und dort auch _delay(xxx) mit der sinngemäßen Bemerkung: "nötig damit das Protokoll funktioniert"


    Die sind aber nötig egal ob die Transistoren vorhanden sind oder nicht - ohne würde der AVR unter bestimmten Umständen den C64 überholen.

  • Die sind aber nötig egal ob die Transistoren vorhanden sind oder nicht - ohne würde der AVR unter bestimmten Umständen den C64 überholen.


    Ist mir schon klar dass einige der _delay() ein Muß sind.


    Heisst das, die Transistoren sind umsonst im XA Adapter? Oder ist das nur am PC LPT Port sinnvoll und am AVR unnötig? Sollen wir die Dinger generell aus dem Design verbannen?

  • Heisst das, die Transistoren sind umsonst im XA Adapter? Oder ist das nur am PC LPT Port sinnvoll und am AVR unnötig? Sollen wir die Dinger generell aus dem Design verbannen?


    Umsonst sind die natürlich nicht - wenn mehrere Laufwerke am Bus hängen reicht irgendwann die Treiberleistung des AVRs nicht mehr aus um den Bus weit genug herunterzuziehen damit die Laufwerke zuverlässig den Low-Pegel erkennen. Bei den X-Adaptern wird das ganze durch die Dioden im XE/XM-Kabel noch etwas verschärft, da würde ich gar nichts anderes als XA mehr basteln.


    Wenn es nur um einen an 5V betriebenen AVR geht, der nur ein einzelnes Laufwerk ansprechen muss sollte es aber auch direkt gehen. Wenn es ohne Transistoren, aber trotzdem etwas sauberer sein soll könne man auch einen 7406 zwischenschalten der auch in den Commodore-Laufwerken verwendet wurde - 6fach-Inverter mit Open-Collector-Ausgang.


    Zitat von PeterSieg'

    Da sd2iec die auch nicht hat..


    Natürlich hat sd2iec die nicht, das ist ja nur die Software. =)

  • Wenn es nur um einen an 5V betriebenen AVR geht, der nur ein einzelnes Laufwerk ansprechen muss sollte es aber auch direkt gehen.


    Ja dann raus mit den Teilen. Der IEEE-488 Teil unterstützt auch nur eine begrenzte Anzahl an Laufwerke.


    Ich werde das heute Abend gleich testen und mal ein IEC Kabel direkt einlöten. Und natürlich die Software anpassen (2 min.) ...

  • Kabel eingelötet, Routinen für Port schreiben invertiert, leider funktioniert das irgendwie nicht. Diese 1541 gibt kein Frame Handshake??!!


    Irgendwie bring ich das nicht zum laufen ohne diese Inverter. Ich probier das aber morgen noch weiter. Womöglich ist so das Timing etwas anderst?

  • Kabel eingelötet, Routinen für Port schreiben invertiert, leider funktioniert das irgendwie nicht.


    Du schreibst immer noch ins PORT-Register? Dann treibst du jetzt die Leitungen aktiv auf 1 statt sie loszulassen und ohne in ein paar Datenblättern zu wühlen wage ich nicht vorherzusagen welcher Pegel am Bus entsteht wenn der AVR die Leitung auf 1 und die Floppy sie auf 0 zieht.


    Die übliche Lösung zur Simulation eines Open-Collector-Ausgangs mit dem AVR ist es, das PORT-Bit auf 0 zu setzen und mit DDR zwischen aktiv-0 (1 ins DDR-Bit) und offen (0 ins DDR-Bit) umzuschalten. Pullups dann entweder extern oder sowohl im DDR- als auch im PORT-Register umschalten.