XS1541 - universal serial adapter for CBM Floppy

Es gibt 209 Antworten in diesem Thema, welches 50.325 mal aufgerufen wurde. Der letzte Beitrag (1. Juli 2009 um 23:14) ist von DerSchatten.

  • Diddl: Habe die die 115200 Version geflasht.. keine Meldung über Hyperterm.. dann die 38400 Version. Meldung kommt nach Reset.. mit ca. 1-2s Verzögerung? Habe noch keine 1541 dran.. irritiert das xs1541..? Die Tastendrücke werden anscheinend nicht mit Echo zurück gegeben..? kann man ja am Terminal einstellen.. aber fände ich eigendlich schöner.. da sieht man gleich, das sich beide verstehen.. Gibts irgendwo eine Befehlsübersicht..?

    Danke+Gruß, Peter

  • Diddl: Habe die die 115200 Version geflasht.. keine Meldung über Hyperterm.. dann die 38400 Version. Meldung kommt nach Reset.. mit ca. 1-2s Verzögerung?


    Gratuliere, du bist der Erste mit einem funktionierenden XS-1541 (außer meinen Prototypen)! :D

    Die 115200 geht bei mir auch nur in der 14.745.600Hz Version.

    1-2s Verzögerung habe ich nicht. Dazu habe ich auch keine Erklärung. Blinkt die LED? Im IEEE-488 Modus sollte sie mit 300ms/300ms und im IEC Modus mit 930/70 ms blinken.

    Habe noch keine 1541 dran.. irritiert das xs1541..?


    Nein.

    Die Tastendrücke werden anscheinend nicht mit Echo zurück gegeben..? kann man ja am Terminal einstellen.. aber fände ich eigendlich schöner.. da sieht man gleich, das sich beide verstehen..


    Kann ich noch einbauen.

    Gibts irgendwo eine Befehlsübersicht..?


    Ja, mit <help> oder <h> bekommt man eine Befehlsübersicht.

    Für manche Befehle gibt es eine 2 Buchstaben Abkürzung. Aber auch die langen Befehle haben einen Muss- und einen Kannteil. Ab dem großen Buchstaben beginnt der Kannteil des Befehl.

    Achtung bei Floppy Befehle mit <@> müssen Großbuchstaben verwendet werden!! Das hat mich auch anfänglich irritiert. Ich habe mal eine Version gemacht die automatiasch alles nach dem @ in Großbuchstaben wandelt, aber dann gehen ja keine Dateinamen mit Kleinbuchstaben mehr ...

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • So, nachdem ist Hardware Flowcontrol auf Xon/Xoff gestellt hatte, kam eine Antwort auch flüssig...
    Ja, fände ich besser, wenn du die Zeichen als Echo zurückgibts..

    Nun zum IEC Anschluß:
    pd7 clock
    pd6 reset (nicht verbunden)
    pd5 srq
    pd4 data
    pd2 atn
    +gnd

    Ist das so korrekt? pd3 - ATN ist für parallelen IEC?

    Geht bei mir nicht.. Problem, ist weiß nicht ob die Floppy ok ist :crying:

    EDIT: Bei 35Grad unterm Dachboden arbeitet das Gehirn nicht so gut :wink: Um 1 Reihe am J4 des Pollin Board verzählt.. umgelötet und...
    ich habe bein erster DIR - Hurra!! Super!

    Peter

    Einmal editiert, zuletzt von PeterSieg (28. Juli 2008 um 12:49)

  • Gratuliere Peter!

    Bitte Flowcontrol nicht auf Xon/Xoff sondern auf None stellen (8N1). Sonst gibts Probleme wenn beim Xmodem Datei Transfer irgendwo im Stream ein XOFF Zeichen kommt.

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • ok. gerade per backup ein Diskettenimage von 1541 auf PC übertragen.. einwandfrei!

    Super Sache!

    Gruß, Peter

  • Bist du womöglich im Besitz einer 1581 oder einer 1570? Die Tests für diese BeidenGeräte sind nämlich ausständig mangels funktionierender Hardware.

    Hast du parallel Floppys, also mit SpeedDos Kabel? Die kommen als nächstes sobald der Burstmode läuft.

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Hi. leider jeweils nein.. habe nur eine 1541..
    Schaue aber mal bei ebay..

    Gruß, Peter

  • Der Burst Modus der 1571 ist abartig schnell!!


    Die Interrupt getriebene Version funktioniert, aber ca. alle 10000 Zeichen verliere ich Inkremente oder bin zu spät für die Datenleitung. Nur wenn ich alle Timer und UART Interrupts ausschalte läuft es einwandfrei.

    Aber wenn ich den UART ausschalten muss dann kann ich gleich ohne Interrupt arbeiten und alle interrupts mit cli() deaktivieren.

    Die einzige saubere Lösung wäre SPI, damit funkioniert es perfekt. Diese Methode hat aber den Nachteil, dass ich auf das parallele Port verzichten muss. Vielleicht sollte man Jumper machen wo man einstellen kann dass man Burstmode mit SPI will und auf den parallel Mode verzichtet?


    Auf der anderen Seite kann die 1571 nicht dauernd schnell senden. Die 1571 braucht auch immer wieder Zeit die Sektoren zu lesen. Wenn man das Timing entsprechend optimiert, wird es wohl auch so wie es ist ganz gut laufen.

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Hallo,

    Die einzige saubere Lösung wäre SPI, damit funkioniert es perfekt. Diese Methode hat aber den Nachteil, dass ich auf das parallele Port verzichten muss.


    SPI halte ich, wenn's damit klappt, auch für den besseren Weg. Aber warum ist das nötig, den parallelen Port aufzugeben? Klar SPI liegt mit drei Pins auf dem Port B, welchen Du zur Zeit für den parallelen Port verwendest, jedoch denke ich, daß man dies mit ein bißchen umarrangieren der Pins auch hinbekommen kann.

    • Paralleler Port von Port B => Port C
    • Control Pins vom IEEE-488 von Port C => Port B bzw. Port D
    • Einige Pins des seriellen IEC von Port D => Port B


    Gruß Martin

  • Stimmt, das könnten wir machen.


    Aber jetzt schauen wir mal wieviel wir wirklich verlieren. Das Burst Fastload Kommando sendet immer Blockweise, also 254 + 1 Byte. Die Burst Block Kommandos senden immer 257 Bytes.

    Die 1571 braucht dank des Hardware Schieberegister im CIA keine Interrupts auszuschalten, nützt also die verfügbare Zeit auch während des Burst Transfer. Das muss halt der AVR auch machen. Im günstigsten Fall braucht der Burst Transfer und der Xmodem Transfer zum PC keine Zeit, weil das während des Sektor lesen passiert. Sprich der einzige Engpass ist die 4 aus 5 Dekodierung und die Umdrehungszahl.


    Wenn der AVR genug RAM hätte, dann würde ich die GCR Dekodierung am AVR machen und ganze Spuren auf einmal lesen.

    Die Alternative wäre Intelligenz am PC, also ein richtiges PC Programm statt des HyperTerminal. Das würde den AVR zur reinen Datenschaufel degradieren.

    Die Zweite Alternative wäre mehr RAM in der Floppy (Dolphin Dos oder Professional DOS).

    Anstatt RAM würde natürlich auch eine SD Karte am AVR funktionieren. Diese Methode (Super XS-1541) hätte natürlich noch ganz andere Vorteile ... :D

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • So, endlich habe ich eine funktionierende 1581. Das war eine schwere Geburt! :]

    Also demnächst kommt backup und listbam auch für das letzte fehlende Imagefile Format: .D81 =)

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Die 1581 wird jetzt auch 100% unterstützt. :)


    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:

    Bitte melde dich an, um diesen Link zu sehen. 1581 (schaltet auf Gerät 8 und setzt den Gerätetyp auf 1581)
    backup

    listbam d81
    backup d81

    .

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Hallo Diddl,

    Bitte melde dich an, um diesen Link zu sehen. 1581 (schaltet auf Gerät 8 und setzt den Gerätetyp auf 1581)


    Wäre es nicht besser, beim Umschalten zu iec oder ieee bzw. dem Setzen der Geräteadresse automatisch herauszufinden, welche Floppy dranhängt? Dann sollte auch der Default "1541" auf <unbekannt> gesetzt werden und evtl. gerätespezifische Komandos (Image-Befehle) solange nicht erlaubt sein, bis nicht ein Gerätetyp gesetzt wird.

    Ferner könnte es noch interessant zu sein, mehr Informationen über die angeschlossenen Floppy herauszubekommen. Dabei könnte man auch die ROM-Versionen und evtl. bekannt Floppy-Speeder mit erkennen. Auch evtl. Erweiterungen bezüglich RAM könnten hilfreich sein.

    Gruß Martin

  • Der Burstload scheint jetzt sehr sauber und ausreichend schnell zu laufen.

    70 Block normal - 50s (358 byte/s)
    70 Block burst - 8s (2240 byte/s)

    70 Block burst - 7s (2560 byte/s - reines lesen ohne Transfer zum PC)


    Ich denke damit kann man leben. Sobald gründliche Tests abgeschlossen sind kommt eine Version.


    Was fehlt dem XS-1541 noch? Braucht es den parallelen SpeedDos Modus für die 1541 überhaupt? Soll ein Filecopy floppy<-->floppy realisiert werden?

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Werden beim Image-Befehl alle Sektoren übertragen? Oder nur die, die laut BAM belegt sind? Würde es zeitlich einen erklecklichen Gewinn bringen, nur belegte Sektoren zu übertragen?

    Ein direktes Filecopy wäre zeit- und nervenschonend, wenn man Software von einem Diskettenformat ins andere übertragen möchte. Geht sicher auch zu Fuß, aber wäre halt schön.

  • Werden beim Image-Befehl alle Sektoren übertragen? Oder nur die, die laut BAM belegt sind? Würde es zeitlich einen erklecklichen Gewinn bringen, nur belegte Sektoren zu übertragen?


    Kann man durch anhängen der Optionen BAM und ALL einstellen. Standardmässig ist BAM vorbelegt.

    Ein direktes Filecopy wäre zeit- und nervenschonend, wenn man Software von einem Diskettenformat ins andere übertragen möchte. Geht sicher auch zu Fuß, aber wäre halt schön.


    Filecopy von einem einzelnen File wäre ganz schnell gemacht. Wenn man allerdings Joker verwenden darf, ist es viel mehr Aufwand. Weil damit muss man selbst die Joker auswerten und den Dateinamen erweitern (für das Zieldrive).

    Aber das werde ich so wie so machen müssen, weil ich auf Y-Modem umsteigen will, und da wird auch der Dateiname mitgegeben.

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Wäre es nicht besser, beim Umschalten zu iec oder ieee bzw. dem Setzen der Geräteadresse automatisch herauszufinden, welche Floppy dranhängt?


    Wenn das XS-1541 mal nicht interaktiv sondern per PC Software gesteuert wird, dann wäre es hinderlich wenn bei jedem Wechsel Floppy Zugriffe stattfinden würden.

    Ich könnte mir eher einen Detect Befehl vorstellen. Es ist aber nicht ganz einfach weil es gerade bei der 1541 so extrem viele Floppy ROM Variationen gibt. Und immer "ausprobieren" wieviele Tracks da sind ist auch sehr unschön. 100%-ig funktioniert das nie.

    Dann sollte auch der Default "1541" auf <unbekannt> gesetzt werden und evtl. gerätespezifische Komandos (Image-Befehle) solange nicht erlaubt sein, bis nicht ein Gerätetyp gesetzt wird.


    Wollen wir es mal nicht übertreiben. Der interaktive Modus versteht sich als Tool nicht als Betriebssystem ... ;)

    Ferner könnte es noch interessant zu sein, mehr Informationen über die angeschlossenen Floppy herauszubekommen. Dabei könnte man auch die ROM-Versionen und evtl. bekannt Floppy-Speeder mit erkennen. Auch evtl. Erweiterungen bezüglich RAM könnten hilfreich sein.


    Ist ohne weiteres möglich, es gibt ja bereits den Memory dump Befehl. Aber auch dies gehört eher in den Bereich einer PC Applikation wo man nicht mit ein paar KB Speicher auskommen muss.

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Hallo Diddl,

    Wenn das XS-1541 mal nicht interaktiv sondern per PC Software gesteuert wird, dann wäre es hinderlich wenn bei jedem Wechsel Floppy Zugriffe stattfinden würden.


    Okay, das ist ein Argument. Von der Seite hatte ich das jetzt noch nicht gesehen. Ich sah bis jetzt eher nur die Möglichkeiten in dem Terminal-Modus.

    Ich könnte mir eher einen Detect Befehl vorstellen. Es ist aber nicht ganz einfach weil es gerade bei der 1541 so extrem viele Floppy ROM Variationen gibt. Und immer "ausprobieren" wieviele Tracks da sind ist auch sehr unschön. 100%-ig funktioniert das nie.


    Das halte ich aber für ein nettes Feature. Ich denke, die große Unterschiedung über die Typen (1541, 157x, 1581, 2041, x040, 8x50, 8080, 90x0 und 1001) sollte ziemlich einfach sein. Die jeweiligen ROM-Versionen sollten über eine Checksumme oder CRC herausfindbar sein.

    Klar alles (insbesondere die ganzen 1541-Fastloader) kann man nicht erkennen. Aber man könnte es versuchen.

    Ob man nun gleich die Anzahl der benutzen Tracks einer Diskette versucht zu erkennen, ist eine etwas andere Spielwiese. Dieses "DETECT" sollte in meinen Augen eher die Hardware erkennen.


    Ist ohne weiteres möglich, es gibt ja bereits den Memory dump Befehl. Aber auch dies gehört eher in den Bereich einer PC Applikation wo man nicht mit ein paar KB Speicher auskommen muss.


    Das kann man verschieden sehen. Dein XS1541 begeistert mich vor allem, weil es eben mit einem einfachen Terminalprogramm auskommt. Daher kann man es sofort ohne eine Software zu installieren verwenden und damit auch aus einer unbekannten Floppy die wichtigsten Parameter auslesen und einsehen. Insofern fände ich neben dem DETECT auch ein H[ardware]INFO ganz hilfreich. Ich stelle mit das so vor:
    HINFO
    Typ: 1541
    ROM1 (C000-DFFF): CHKSUM 575A => 325302-01
    ROM2 (E000-FFFF): CHKSUM 00D1 => 901229-03
    DOS: Version 2.6 Original CBM
    RAM: 0000-07ff

    Gruß Martin

  • 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.

    .

  • Werden beim Image-Befehl alle Sektoren übertragen? Oder nur die, die laut BAM belegt sind? Würde es zeitlich einen erklecklichen Gewinn bringen, nur belegte Sektoren zu übertragen?

    Wie gesagt es gibt BAM orientiertes Backup und alle Blöcke. Das Bam Backup wird sich aber wohl nur in den seltensten Fällen rentieren ...


    Bei einer 1571 dauert das Backup aller Blöcke 39 Sekunden.

    Eine Disk die zu 90% gefüllt ist dauert mit BAM Backup 2:20 also 140 Sekunden.


    Der krasse Unterschied kommt davon, dass bei BAM Kopie Sektorweise kopiert wird und bei ALL werden immer ganze Spuren gelesen.

    39 Sekunden finde ich nicht schlecht, dafür dass eine originale 1571 ohne jegliche Umbauten verwendet wird. Und auch keine Tricks wie eigenen Code in der Floppy. Alles mit Bordmittel ... :D

    --------

    Allerdings gibt es noch einen kleinen Wermutstropfen: Diese U0 Burst Befehle arbeiten leider nicht mehr nach einem Disk Wechsel. Das ist auch so dokumentiert, man muss da ein Inquire() senden. Nur leider dauert das Inquire einige Sekunden bei 1541 Disketten. :(

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.