Beiträge von x1541 im Thema „ZoomFloppy - IEEE-488 Laufwerke“

    Wenn ich das ROM Listing richtig verstehe, dann sucht der Diskcontroller die Sektor Header immer aufgrund einer vorgegebenen Disk ID. "Sektor Header lesen" wird nur aufgerufen bei Spurwechsel und dem "I" Kommando.

    Bist Du da sicher? Vor allem dass die Soft-ID genommen wird? Das wäre völlig anders als bei z.b. der 1541 und passt auch logisch nicht. Wie kann denn die Floppy die Soft ID lesen ohne vorher auf die Hard-ID initialisiert zu haben? Sie würde ja den Sektor mit der BAM gar nicht finden.

    Mir ist noch eingefallen, dass ich zum Testen auch noch eine MSD SD-1 habe. Hast du nicht auch noch was zum Testen, Nicolas?

    Gut dass es Dich gibt. Hätte doch glatt meine MSD SD-2 vergessen :D

    Da kommt Disk full. Dann nochmal mit 2 Bytes weniger probiert. Auch Disk full. Dann Lust verloren.

    Das File ist aber trotzdem auf Disk...

    Zurückgelesen, verglichen. Identisch :)

    9min zum Lesen, 12 min zum schreiben. Unter 7-8min kam ich per GPIB Karte auch mit angepasstem Interleave nicht. Bin mal gespannt was da noch drin ist :)

    x1541

    Wann kann man mit deinem 8050 Code, also dem Tool zum Lesen rechnen? Wirst du es als eigenes Tool führen? Oder soll es auch irgendwann mit dem OpenCBM verschmelzen? Was hast du denn nun genau vor? Das Tool wird wohl D80 und D82 lesen können, wird das Tool auch schreiben können? Brauchst du Hilfe oder möchtest du alleine an der Sache arbeiten?

    Wenn ich das so genau wüsste. Ich hab vorhin mal den vorhandenen Code gesichtet. Es ist ein sehr einfaches ASM Programm das die Jobcodes "verwaltet" und entsprechend der eingestellten Anzahl der Leseversuche wiederholt. Dazu eben ein C Programm das Sektor für Sektor (bzw. mit Interleave) dieses Programm anwirft um die Daten einzulesen. Darüber hinaus wird der Fehlercode des Jobs noch in eine extra Datei geschrieben (die Daten entsprechen genau der Fehlerinfo eines D64). Man könnte es hinten ans Image anhängen aber dann kommt kein Programm mehr mit den Images zurecht ...

    Gescheiter wäre es in ein vorhandenes Programm (Dein d82copy?) die Geschichte als vorläufigen "Turbo" einzubauen, bis was besseres da ist. Ich kann es Dir ja mal schicken? Was man aber mit dem Interleave macht? Ohne das bringts wohl nicht so viel.

    Wie nun der Aufwand wäre für die eine oder andere Variante kann ich noch nicht abschätzen, ich muss mir mal den source zu d64copy ansehen wohl.


    PS: vorhin hab ich mal probiert eine Datei per cbmcopy mit random Daten 4133 Blocks = 254*4133= 1049782 Bytes zu schreiben. Da kommt Disk full. Dann nochmal mit 2 Bytes weniger probiert. Auch Disk full. Dann Lust verloren.

    Aber einmal gab es nen 25,write error mitten drin. cbmcopy hat aber munter weiter gemacht daten zu senden, anstatt abzubrechen. Die Floppy tat aber nix mehr. Das ist nicht gut ;)

    Eben mal angetestet. Schade, noch kein D82COPY?

    Wie gesagt, momentan bin ich noch auf die SFD beschränkt.

    cbmctrl detect funktioniert.

    mit cbmcopy hab ich einige Dateien auf den PC kopiert. Das kommt mir angenehm schnell vor :)

    Bei cbmctrl dir 8 ist mir schon länger mal was aufgefallen, was auf eine Eigenheit der CBM Doppelfloppies hinweist. Der Befehle versucht auf beiden Laufwerken das Directory zu lesen, was in der SFD natürlich zu einem Fehler führt, zu bemerken an der langen Pause nach Ausgabe von Directory für Drive 0 und dem wilden Blinken am ZF. So wenigstens meine Vermutung. Eine Möglichkeit das zu lesende Drive anzugeben ist leider nicht vorgesehen.

    Ansonsten nur weiter so :) Das macht Lust auf mehr :)

    Hast du eine Methode um Laufwerke per M-R zu erkennen?

    Das standard OpenCBM erkennt meine SFD-1001 dos2.7 als 1541. Das liegt daran, weil die im ROM wie die 1541 an der Stelle FF40 zwei AA hat. Ich habe das verbessert, sodass OpenCBM nun wenigstens eine 8250 dos2.7 erkennt. Aber vielleicht hast du schon evaluiert, welche Speicheradressen sich am markantesten unterscheiden?

    Nein dazu hab ich mir noch nie Gedanken gemacht. Eine SFD von einer 8250 wird man so leicht nicht unterscheiden können, da nur das Controller ROM sich unterscheidet. DOS ROM und Speicherbelegung im RAM sind komplett identisch. Da es viele unterschiedliche Controller ROMs gibt, für jede Mechanikvariante ein eigenes, wird man mehr als nur ein paar Adressen prüfen müssen befürchte ich.

    Bei DOS2.7 kann man irgendwo im RAM das Disk Layout einstellen. Da es DOS 2.7 aber nur in SFD und 8050/8250 gibt steht da immer das gleiche.

    Ich hab bei mir noch eine Erkennung von 8050 Disks eingebaut, die sonst beim ersten Zugriff einen Fehler erzeugen. Außerdem wird so automatisch ein D80 image erzeugt. Ich glaube das hab ich gelöst durch einen Leseversuch auf der zweiten Seite per Jobcode.

    Ich verwende ein kleines Programm in der Floppy, das per Jobcode die Sektoren einliest, und auf diese Weise auch bei Blöcken mit Prüfsummenfehlern Daten zurückliefern kann. Einstellbarer Interleave ist auch möglich, aber viel bringts nicht. Das IEEE488 Protokoll ist nicht gerade schnell implementiert. Da erhoffe ich mir in Zukunft viel vom ZF, weil man ja bei nur einer Floppy am Bus nicht an das Protokoll gebunden ist. So dass man im Idealfall jedes Byte von der Disk quasi direkt zum ZF durchreichen kann. Da die Doppelfloppies aber zwei CPUs haben muss man aber doch einen Zwischenspeicher bemühen.

    Ich muss mich da auch erstmal einlesen. Ich habe null Ahnung wie man mit den opencbm dlls die Floppy anspricht oder wie man ein Programm baut, das diese Dlls verwendet. Aber da gibts ja genug Beispielprogramme :)

    Mein existentes Programm muss aufgrund der genannten Problematik alles zu Fuss machen und sendet sämtliche TALK/UNTALK usw. Befehle selbst auf den Bus. Hier erhoffe ich mir eine Vereinfachung :)

    So ich hab es nun geschafft das opencbm-zoomfloppy zu installieren und mit FLIP die Beta2 zu flashen.

    Mit meiner SFD1001 funktioniert:
    - cbmctrl reset
    - cbmctrl status 8
    - cbmctrl command 8 I0
    - cbmctrl command 8 I1 gibt natürlich einen Fehler 21,read error,39,00,1 ;)
    - cbmctrl dir 8

    Mehr kann ich momentan leider nicht testen ...

    Bin aber gespannt auf mehr :)

    Evtl. kann ich ja meinen sehr einfachen D80/D82 imager an das opencbm-zoomfloppy anpassen? Hab das mal für eine National Instruments GPIB Karte geschrieben, aber hier musste man sehr viele Verrenkungen machen um überhaupt eine Kommunikation zu starten, da die Commodore Geräte doch etwas am Standard vorbei sind ...

    Für den Anschluss einer IEEE-488 Floppy benötigt man den passenden IEEE-488 Connector. Jim Brain bietet jetzt einen passenden IEEE-488 Connector, der einzeln oder zusammen mit dem ZoomFloppy bestellt werden kann. Natürlich kann man den IEEE-488 Connector auch sonst wo im Elektronik Handel erwerben.

    Mein "sonstwo" IEEE488 Anschluss von Reichelt.de passt wie angegossen (Bitte melde dich an, um diesen Link zu sehen.) allerdings sind da die Verriegelungsschrauben nicht dran. Dafür billiger :)

    Bitte melde dich an, um diesen Anhang zu sehen.