Elektronik Projekt
RSS Feed Selector Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Elektronik Projekt » Mikrocontroller » Eure Mikrocontroller Projekte » XS1541 - universal serial adapter for CBM Floppy » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen XS1541 - universal serial adapter for CBM Floppy
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

XS1541 - universal serial adapter for CBM Floppy Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Falls man zuhause noch ein altes Commodore Floppy Laufwerk stehen hat, kann man mit diesem Adapter vom PC aus direkt auf die Floppy zugreifen. Dabei werden sowohl die alten Geräte mit parallelen IEEE-488 Bus als auch die neueren mit seriellen IEC Bus unterstützt. Auch Floppy mit Speed-Dos Kabel werden von dem Adapter unterstützt.


Hardware

Die Verbindung des XS1541 Adapter zum PC erfolgt entweder über einen seriellen Port (RS232) oder USB. Damit ist der Adapter einfacher an moderne PC's anzuschliessen, wo oft der Druckerport fehlt oder durch das Betriebssystem schwer zugänglich ist.

Die Kosten für den Adapter sind sehr gering und er ist einfach aufzubauen. Das Kernstück ist ein Atmel Controller Mega32. Es kann wahlweise nur der serielle IEC Bus oder nur der parallele IEEE-488 verdrahtet werden. Der Adapter kann auch gleichzeitig auf beide Bus System zugreifen, dh. der PC kann zB. gleichzeitig eine 1541 und eine 8050 ansteuern.


Software

Die 'Software' für den Adapter ist im Mega32 Controller gespeichert. Am PC benötigt man nichts als ein Terminal Programm wie zB. das Hyper Terminal, das bei jedem Windows PC dabei ist.


Aufbau

Zum Aufbau benötigt man folgende Dinge:
  • Einen Mega32 Controller und Kleinteile im Wert von ein paar Euros (Quarz, Kondensatoren, Lochraster). Für die weniger ambitionierten Bastler tut es auch ein fertiges Mega32 Board um 15.
  • Optional ein paralleles IEEE-488 Kabel. Das Kabel wird in der Mitte durchschnitten und die Drähte an den Mega32 angelötet.
  • Optional ein serielles IEC Kabel um 3. Das Kabel wird in der Mitte durchschnitten und die Drähte an den Mega32 angelötet.
  • Optional ein paralleles Flachbandkabel (Speed-Dos) das an den Mega32 angelötet wird.


Falls man bereits einen XA1541 Adapter hat, kann man den selbstverständlich verwenden indem man eine 25 poligen SUB-D Buchse verwendet. Der XA1541 (oder XAP1541) kann so alternativ wie bisher direkt mit einem PC verbunden werden oder am XS1541 Adapter betrieben werden.


Mit einem XAP1541 Adapter hat man gleichzeitig den seriellen IEC Bus und das Speed-Dos parallel Kabel angeschlossen. Die Bilder zeigen genau diese Lösung (XS1541 über SUB-D and XAP1541).

Der XAP-1541 Adapter ist eine Erweiterung eines Standard XA-1541 mit einem parallel Kabel Anschluss (SUB-D 15 Buchse) nach der Bauanleitung von Joe Forster: XAP-1541 cable combo

Durch die parallele Erweiterung taugt die Lösung auch als Nibble Copy. Es kann jede parallele Standardlösung verwendet werden wie SpeedDos oder DolphinDos Laufwerke.


Alternativ zu einer seriellen Verbindung zum PC kann man noch eine USB Bridge zwischen PC und XS1541 schalten. Der Vorteil von USB liegt auf der Hand, moderne PC oder Laptops haben oft nur noch USB und zudem übernimmt der USB Adapter nauch noch die Stromversorgung des Mega32 Controller.



Der Schaltplan ist auch im Quellformat beigelegt, sodass ihn jeder nach Bedarf anpassen kann. Das Dateiformat ist für den Abacom sPlan v6, für den es auch einen kostenlosen Viewer gibt.

Die Software ist in Entwicklung und steht zur Zeit nur für parallel IEEE-488 Geräte zur Verfügung.

Diddl hat diese Bilder (verkleinerte Versionen) angehängt:
CIMG0733_Bildgröße ändern.jpg CIMG0737_Bildgröße ändern.jpg ieee2rs232_32.gif
xap1541.gif Screenshot_2.gif



__________________
Final Expansion,1541 Emulation,Meine Homepage
23.06.2008 20:09 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hier die Beschreibung der Befehls Syntax. Im Anhang befindet sich immer die aktuelle Firmware.

have fun!




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.

Optional kann natürlich auch ein Programm am PC erstellt werden, mit dem man komfortabel auf den XS1541 Adapter zugreifen kann. Dazu kann man jede beliebige Programmiersprache benutzen, die auf den seriellen Port zugreifen kann.


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.

Einige Befehle sind noch nicht fertig implementiert, aber die Syntax wird wie beschrieben funktionieren. Für sinnvolle Verbesserungsvorschläge habe ich ein offenes Ohr.


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 folgt 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 *** noch nicht implementiert

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


filed[ump] oder fd *** noch nicht implementiert

Erstellt einen Hexdump von einer Datei.


bac[kup] *** noch nicht implementiert

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] *** noch nicht implementiert

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] *** noch nicht implementiert

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


sa[ve] *** noch nicht implementiert

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



PROTOKOLL BEFEHLE

Ein Assembler Programmiererwird sich mit folgenden Befehlen gleich zuhause fühlen. Die Befehle spiegeln das IEEE-488 / IEC Protokoll von Commodore wieder. Die Namen sind angelehnt an das Commodore Kernel API.


li[sten]

Gerät zum 'Listener' erklären.


ta[lk]

Gerät zum 'Talker' erklären.


unl[isten]

Listen Modus beenden.


unt[alk]

Talk Modus beenden.


op[en]

Datei öffnen.


cl[ose]

Datei schliessen.


ba[sin]

Ein oder mehrere Bytes vom Bus lesen (vom Talker).


bs[out]

Ein oder mehrere Bytes zum Bus schreiben (zum Listener).


st

Die alt bekannte Status Variable ST. Nach Bus Operationen werden u.U. Bits in der Variable gesetzt. Durch das Lesen des Status mit diesem Befehl wird die Variable ST auf 0 zurückgesetzt.

Bit0=Timeout beim Lesen, Bit1=Timeout beim Schreiben, Bit6=EOI: letztes Byte wurde gesendet, Bit7="device not present error".




LOW LEVEL BEFEHLE

set[pin] oder sp

Der Befehl setzt einen Ausgang auf den Pegel high. Als Parameter muß ein gültiger Pin angegeben werden. Für den IEEE-488 Bus sind folgende Namen erlaubt: a[tn], d[av], e[oi], nr[fd], nd[ac].


res[etpin] oder rp

Der Befehl setzt einen Ausgang auf den Pegel low. Als Parameter muß ein gültiger Pin angegeben werden. Für den IEEE-488 Bus sind folgende Namen erlaubt: a[tn], d[av], e[oi], nr[fd], nd[ac].


listp[in] oder lp

Der Befehl listet den Zustand des aktiven Bus. Der momentane Zustand aller Signalleitungen wird angezeigt. Signalleitungen die den Pegel "high" haben werden mit Großbuchstaben und die mit dem Pegel low durch Kleinbuchstaben dargestellt.

Dateianhänge:
zip schaltbilder_splan.zip (36 KB, 116 mal heruntergeladen)
zip firmware_v0.1.zip (7 KB, 102 mal heruntergeladen)


__________________
Final Expansion,1541 Emulation,Meine Homepage

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Diddl: 23.06.2008 20:11.

23.06.2008 20:10 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Midnight Midnight ist männlich
Routinier


Dabei seit: 28.10.2005
Beiträge: 376
Herkunft: Bremen

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Als alter Retro-Freak wie mich klingt das ja mal sehr interessant!!!
Bin jedenfalls über den Fortschritt schon mal gespannt!

Danke und Gruß

Simon
23.06.2008 20:14 Midnight ist offline E-Mail an Midnight senden Homepage von Midnight Beiträge von Midnight suchen Nehmen Sie Midnight in Ihre Freundesliste auf
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

v0.01.01

dumpfile implementiert.


Das String Argument (filename) kann ohne Begrenzung eingegeben werden, wenn der Dateiname kein Blank beinhaltet. Sonst kann man den String mit verschiedenen Zeichen begrenzen: ", ', {}

Natürlich funktionieren auch Joker (*). Mit 0: oder 1: kann die Suche auf ein Laufwerk begrenzt werden.


Beispiele:

dumpfile testdatei
df "cbm datei"
df {basic datei}
df 'oder so'

Dateianhang:
zip IEEE-RS232-0.01.01.zip (7,45 KB, 77 mal heruntergeladen)

Diddl hat dieses Bild (verkleinerte Version) angehängt:
Screenshot_2.gif



__________________
Final Expansion,1541 Emulation,Meine Homepage
26.06.2008 09:38 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Malibann Malibann ist männlich
Foren Gott


images/avatars/avatar-25.gif

Dabei seit: 18.09.2004
Beiträge: 4.628

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Klingt gut , meinst du damit kann man auch andere IEEE-488 ( GPIB ) Geräte ansteuern ?

__________________
Mit freundlichen Grüßen Malibann
(falls ich es mal wieder vergessen habe)
26.06.2008 10:31 Malibann ist offline E-Mail an Malibann senden Homepage von Malibann Beiträge von Malibann suchen Nehmen Sie Malibann in Ihre Freundesliste auf
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Prinzipiell müßte es problemlos möglich sein. Die Grundbefehle sind alle da. Kannst auch gerne die Sourcen haben um da was zu erweitern.


Allerdings habe ich das IEEE-488 Protokoll nach Muster der CBM-8032 Rom Listings gemacht, also eventuell ist das nicht komplett oder CBM spezifisch.

Aber vor 25 Jahren haben wir in der HTL auch IEEE-488 Messgeräte und Netzgeräte an einen PET angeschlossen um automatisierte Messungen durchzuführen. Das hat sehr gut geklappt.


Von der Hardware ist meine Lösung einfach nur billig gemacht. Normal müssen hier diese speziellen IEEE driver rein (75 ... irgendwas) oder zumindest wie im PET so 74LS06 und diese tristate driverbausteine für die Daten. Auch Pull Up Widerstände habe ich eingespart (die Atmega internen gehen hier ncht).

Der Atmega kostet aber weniger als diese Driver, darum braucht man die Driver als "Schutz" wohl nicht. Das einzige ist der Strom. Mit den 20mA kann man bis zu maximal 3 Geräte betreiben. Lt. Spezifikation kann ein IEEE-488 Verbund ja viel größer sein ...

__________________
Final Expansion,1541 Emulation,Meine Homepage
26.06.2008 12:38 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Code ist nun komplett bereinigt, der RAM Bedarf ist jetzt wieder ganz unten. smile


Jetzt kommt der Z-Modem Datei Download. Und zuletzt noch ganze Disketten Images ...

__________________
Final Expansion,1541 Emulation,Meine Homepage
27.06.2008 14:16 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Jan_Weber Jan_Weber ist männlich
Foren Gott


images/avatars/avatar-216.jpg

Dabei seit: 01.03.2003
Beiträge: 3.097
Herkunft: Köln

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Die GPIB-Bustreiber sind so ausgelegt, dass sie eine hohe Impedanz haben, wenn sie nicht mit Strom versorgt werden. Das ist wichtig, wenn mehr als zwei Geräte an einem Bus hängen und nicht immer alle eingeschaltet sind.

Hier ist ein Interface speziell für Messautomation inkl. LabView-Treibern:

http://lpvo.fe.uni-lj.si/gpib/

Jan

PS: Echt ein tolles Projekt, Diddl.

__________________
Ein paar Kayaktouren-Fotos von mir
28.06.2008 11:51 Jan_Weber ist offline E-Mail an Jan_Weber senden Beiträge von Jan_Weber suchen Nehmen Sie Jan_Weber in Ihre Freundesliste auf YIM-Name von Jan_Weber: kajak_attack
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke Jan (für das Lob).


Neue Version, jetzt läuft auch DumpBlock (db) und DumpNextBlock (dn). Natürlich wurde das U1 Kommando verwendet.

Das Kommando dn dumped den Folgeblock nach einem db Befehl. Die ersten beiden Bytes in einem Block sind normal der Verweis auf den Nächsten.


db hat 3 Byte Argumente: Laufwerk (0/1), Spur (Formatabhängig), Sektor


Beispiel:

db 0 39 1

Liest den Sektor auf Spur 39 Sektor 1 am Laufwerk 0 (erster Directory Block).

.

Dateianhang:
zip IEEE-RS232-0.01.02.zip (9 KB, 43 mal heruntergeladen)

Diddl hat dieses Bild (verkleinerte Version) angehängt:
Screenshot_3.gif



__________________
Final Expansion,1541 Emulation,Meine Homepage
28.06.2008 21:14 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Endlich funktioniert das Xmodem Protokoll mit dem Hyperterminal in Richtung PC zum Download von Dateien und später mal Disk Images! Das hat mich Nerven gekostet bis das lief. großes Grinsen

Schön wäre halt noch Ymodem, dann würde man sich am PC die Eingabe des Dateinamen sparen.


Laut der Doku die ich gefunden habe, ist der einzige Unterschied zum Xmodem-1024-CRC dieser Block 0, der Informationen über die Datei enthält (Dateiname\0Dateilänge\0mod. Datum\0Attribut\0).

Aber irgendwas ist noch faul wei das HyperTerminal bleibt beim Block1 hängen? Ist da die Prüsummenberechnung für dne ersten Block anderst oder sonst noch eine Besonderheit beim Ymodem?

__________________
Final Expansion,1541 Emulation,Meine Homepage
30.06.2008 09:20 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Neue Version mit dump memory, damit kann direkt der Speicher der Floppy ausgelesen werden.

Alle numerischen Argumente können jetzt hexadezimal, dezimal, oktal und binär eingegeben werden.


Hexadezimalen Zahlen muss ein $ Zeichen oder '0x' voran gestellt werden.

Oktalen Zahlen muss eine null (0) voran gestellt werden.

Binären Zahlen muss ein % Zeichen voran gestellt werden.


In Kürze gibt es Datei Download über X-Modem Protokoll.

Dateianhang:
zip IEEE-RS232-0.01.05.zip (13,33 KB, 36 mal heruntergeladen)

Diddl hat dieses Bild (verkleinerte Version) angehängt:
Screenshot_4.gif



__________________
Final Expansion,1541 Emulation,Meine Homepage
03.07.2008 20:33 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Neue Version ist fertig mit Datei Download per X-Modem Protokoll. Zur Zeit werden die Dateitypen P00, PRG und T64 unterstützt.


Die Baudrate wurde auf 38400 erhöht damit die Schnittstelle zum PC die Daten ohne Geschwindigkeitsverlust wegbringt, die eine IEEE-488 Floppy anliefert. Der Datentransfer zur Floppy und zum PC erfolgt quasi gleichzeitig, damit keine Wartezeiten entstehen.

.

Dateianhang:
zip IEEE-RS232-0.01.07.zip (15 KB, 31 mal heruntergeladen)

Diddl hat dieses Bild (verkleinerte Version) angehängt:
Screenshot_7.gif



__________________
Final Expansion,1541 Emulation,Meine Homepage
09.07.2008 22:16 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Es ist soweit, die letzte Funktion ist implementiert: Backup

Backup kopiert eine Disk in ein Emulator verträgliches Diskimage Format. Zur Zeit gehen aber nur D80, D82, D81 und D64. D81 und D64 konnte ich in Ermangelung eines passenden Laufwerks noch nicht testen.

Die Geschwindigkeit der seriellen Schnittstelle zum PC wurde auf 115K erhöht. Die Floppy ist zwar bei weitem nicht so schnell, aber wenn man nur die belegten Blöcke überträgt und die Diskette nicht voll ist, dann müssen leider auch die leeren Blöcke übertragen werden. Das liegt daran weil das Terminalprogramm am PC dumm ist und die Image Datei natürlich die volle Größe haben muss.


Syntax:

bu (oder backup) imagefiletyp drive option

Als Imagefiletyp gehen im Moment D80, D82, D81 und D64

Als drive geht 0 oder 1. Kann auch weggelassen werden dann wird 0 genommen.

Als Option geht all oder bam. Voreingestellt ist BAM wenn die Option weggelassen wird.



Ach ja, mit listbam oder lb kann man die BAM der Diskette ansehen ...






Viel Spass, falls es jemand testen kann. Für Feedback wäre ich dankbar!


.

Dateianhang:
zip IEEE-RS232-0.01.08.zip (18,48 KB, 31 mal heruntergeladen)

Diddl hat diese Bilder (verkleinerte Versionen) angehängt:
Screenshot_8.gif Screenshot_9.gif



__________________
Final Expansion,1541 Emulation,Meine Homepage
13.07.2008 21:59 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Es ist Zeit für einen Zwischenstand: Nun gehen ALLE Commodore Floppy (außer der 1551). großes Grinsen


Die seriellen Floppys gehen aber erst im langsamen IEC Modus.

Ich habe vor noch das parallele (SpeedDos) Kabel zu unterstützen und evt. den burst Modus der 1571/1581. Beim Backup fehlt auch noch die Unterstützung für die D71 und D81 Images.


Unterstützte Floppys:
  • 1541
  • 1570 / 1571
  • 1581
  • 2030
  • 4040
  • 8050
  • 8250
  • SFD-1001


.

Dateianhang:
zip IEEE-RS232-0.01.09.zip (21 KB, 23 mal heruntergeladen)


__________________
Final Expansion,1541 Emulation,Meine Homepage
18.07.2008 09:09 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Neue Firmware (0.01.09a) mit einer Version wo IEC direkt angeschlossen ist. Damit reduziert sich der Hardware Aufwand auf ein Mega32 Prototype Board, einem IEC und /oder einem IEEE-488 Kabel.

Ich habe das separat aufgebaut auf einem Olimex AVR40 Board (siehe Bild), da Markus ja leider schon länger keine Prototype Boards mehr anbietet. Das Olimex Board gibt es jetzt auch mit USB. Das IEC Kabel wurde einfach durchgeschnitten und direkt am Atmega angelötet (siehe Schaltbild). Bei den Signalen ATN, Clock, Data und SRQ sind jeweils in und out einfach zusammen geschaltet.

Die Hex Dateien mit dem 'A' sind für die XA1541 Version und die 'D' sind für direkten Anschluss. Die '-32' Versionen sind für Atmega 32 kompiliert und die '-324' für den Atmega 324p.


-

Dateianhang:
zip XS1541-0.01.09a.zip (89 KB, 42 mal heruntergeladen)

Diddl hat diese Bilder (verkleinerte Versionen) angehängt:
XS1541-d.gif Olimex.jpg



__________________
Final Expansion,1541 Emulation,Meine Homepage
24.07.2008 19:06 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Es ist ein Hardware Redesign notwendig geworden.


Der Burst Modus der Floppy 1571 und 1581 ist extrem schnell. Alle 2µs ein Taktwechsel, da kommt mein AVR mit 14.745.600 Hz arg ins schwitzen.


Die Pinchange Interrupts des 644 sind genial, nur leider müssen alle anderen Interrupts (Uart, Timer) deaktiviert werden, sonst gibt alle paar tausend Zeichen Probleme.

Mit deaktivierten Interrupts kann man die Daten schlecht weiterreichen, dann kann man gleich auf die PinChange ISR verzichten und alles mit deaktivierten Interrupts (cli()) machen.


Das dumme ist nur, das man die Daten irgendwann weitersenden muss und die Floppy dann leerläuft. Wenn man gezielt die Zeiten nützt wo die Floppy auf die Hardware zugreift und von Diskette liest, dann kann man diese Verluste ziemlich minimieren. Aber es ist halt dann Floppy spezifisch und ziemlich unelegant.


Die Lösung ist die Verwendung des SPI. Damit hat man eine elegante und funktionable Problembehebung. Doch leider erfordert dies ein geändertes Anschluss Schema:

.


EDIT: Habe die SPI Idee fallengelassen. In der nächsten Generation von XS1541 gibt es eine µSD Karte und die braucht den SPI notwendiger.

.

Dateianhang:
zip xs1541-v3-splan.zip (63,07 KB, 56 mal heruntergeladen)

Diddl hat dieses Bild (verkleinerte Version) angehängt:
XS1541-v3.gif



__________________
Final Expansion,1541 Emulation,Meine Homepage

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Diddl: 05.08.2008 08:59.

30.07.2008 09:35 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nun wird auch die fehlende 1581 Floppy zu 100% unterstützt. smile


Man kann den Laufwerkstyp beim Device Befehl (#) mitgeben. Dann beziehen sich alle Image Befehle automatisch auf D81 Image Dateien. Oder man gibt den Imagetype eben beim Befehl selbst mit:

#8 1581 (schaltet auf Gerät 8 und setzt den Gerätetyp auf 1581)
backup
[i]

listbam d81
backup d81


Die vorliegende HEX Datei ist für einen Mega644p compiliert. Bei Bedarf poste ich Versionen für andere ATmega (32, 324, 324p ...)

.

Dateianhang:
zip XS1541-0.01.13-644p.zip (24 KB, 29 mal heruntergeladen)


__________________
Final Expansion,1541 Emulation,Meine Homepage
05.08.2008 09:05 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Malibann Malibann ist männlich
Foren Gott


images/avatars/avatar-25.gif

Dabei seit: 18.09.2004
Beiträge: 4.628

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hättest du nicht Lust die Ergebnisse mal auf einer der C64 Seiten zu posten ?

http://www.forum64.de/
http://www.zock.com/8-Bit/forum.cgi?v=fl...15701789&o=down

Nicht dass es micht nicht interessieren würde aber dort ist das Echo einfach gößer.

__________________
Mit freundlichen Grüßen Malibann
(falls ich es mal wieder vergessen habe)
05.08.2008 09:37 Malibann ist offline E-Mail an Malibann senden Homepage von Malibann Beiträge von Malibann suchen Nehmen Sie Malibann in Ihre Freundesliste auf
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Im Forum 64 habe ich es schon gepostet. Sorry für Doppelpost aber ich denke dass hier in der Regel nicht dieselben Forum Benutzer sind.


Das zweite Forum (zock.com) kenne ich nicht.

__________________
Final Expansion,1541 Emulation,Meine Homepage
05.08.2008 15:22 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Diddl Diddl ist männlich
Routinier


images/avatars/avatar-253.gif

Dabei seit: 17.07.2006
Beiträge: 497
Herkunft: Tirol

Themenstarter Thema begonnen von Diddl
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Neue Firmware mit Burst Fastload.

Von der Geschwindigkeit steht jetzt eine 1571 der alten IEEE-488 Floppy nichts mehr nach (zumindest beim Laden).


Der Burst wirkt sich zunächst nur beim Datei Download (dl) und beim dumpfile (df) aus. Die Blocklade Routinen muss ich noch im XS-1541 Code implementieren.


Wenn andere CPU Typen gefragt sind einfach melden.

.

Dateianhang:
zip XS1541-0.01.15-644p.zip (24 KB, 62 mal heruntergeladen)

Diddl hat dieses Bild (verkleinerte Version) angehängt:
Screenshot_16.gif



__________________
Final Expansion,1541 Emulation,Meine Homepage
09.08.2008 14:49 Diddl ist offline E-Mail an Diddl senden Homepage von Diddl Beiträge von Diddl suchen Nehmen Sie Diddl in Ihre Freundesliste auf Fügen Sie Diddl in Ihre Kontaktliste ein
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Elektronik Projekt » Mikrocontroller » Eure Mikrocontroller Projekte » XS1541 - universal serial adapter for CBM Floppy

Impressum