DiskFix – ßeta6

Im Grunde zeichnet diese Beta Version nur Arbeiten unter der Motorhaube aus, aber auch die ersten Codeoptimierungen sind schon jetzt erfolgt. Denn um ein Paar Ziele zu erreichen musste die Vorarbeit erledigt werden. Eine Herausforderung war, das das Laufwerk 1571 (im Betrieb am C64) sauber erkannt wird. Das bisherige Modul konnte gerade diesen Laufwerkstyp nicht erkennen, da sich die 1571, als eine 1541 – gegenüber dem C64 präsentiert (mit der bisherigen Erkennung-Routine).
Der nächste große Schritt war, das nun eine Methode genutzt wird um die Laufwerkserkennung beim Laufwerkswechsel entlang der Daisy Chain des IEC Bus, genutzt wird. DiskFix erkennt im Bereich 8-11 nun vorhandene Laufwerke, auch wenn z.B. nur Laufwerk 8 und 11 vorhanden sind. Bisher führte dies immer zum Absturz des Programm, sobald ein Kanal angesprochen wurde, bei der kein Laufwerk vorhanden war. Mit der Methodik (siehe Bild 1) prüft DiskFix jetzt vor dem Wechsel, ob dort überhaupt ein Laufwerk erreichbar ist. Wenn nicht, wird der Kanal übersprungen. Natürlich wird das Laufwerk, dann entsprechend auch richtig erkannt und es gibt kein Timeout bedingten Absturz des C64 😉 Wer das selbst ausprobieren möchte, hier ein kleines Listing meiner Entwicklungsroutine, die dann in abgeänderter Form in DiskFix eingebunden wurde:

Bild 1: Daisy Chain Scan. IEC Bus wird abgefragt und Laufwerke werden ausgelesen.

Auch dieses Modul liegt dem Hauptprogramm im D64 bei. Wer mag, kann sich die Module dann auch in Basic anschauen und nach Lust und Laune verändern oder weiter nutzen. Hab nur eine Bitte, wenn es verwendet wird. Nennt bitte die Quelle.

Was wurde in der ßeta 6 umgesetzt?

  • Das Modul Laufwerkserkennung wurde aufgebohrt, es erkennt nun das 1571 fehlerfrei.
    Ebenfalls wurde die Erkennungsmethode auf ein Modul reduziert, denn beim Laufwerkswechsel wurde bisher ein eigenes Scan Modul aus 2017 verwendet. Nun gibt es nur noch ein Modul um die erkannte Laufwerksbezeichnung zu ermitteln. Darüber hinaus gibt es nun die Option die Erkennung erneut aus zu führen. Dabei sammelt DiskFix in (A) und (B) die erkannten Werte. Bei der zweiten Erkennung wird das Laufwerk sauber resettet um auch die erste Meldung im Fehlerkanal aus zu lesen. Sollte danach bei Euch noch immer „Laufwerk nicht erkannt“ stehen – dann bitte schickt mir den Screenshot. Vielen Dank!
  • JiffyDOS Erkennung im C=64 und in den Laufwerken
    Die Laufwerkserkennungsmethode hat bisher wunderbar bei Laufwerken mit verbauten JiffyDOS funktioniert – jetzt auch mit dem Laufwerk 1571. Wie ich das JiffyDOS im C64 erkennen konnte, war mir bisher nicht so klar. Das wurde nun auch gelöst. Erschreckend einfach wird das mittels PEEK ausgelesen. Auch mal schön, wenn es einfach geht.
  • Das Modul „m“ Modus der 1571 wurde im Menü „f1“ Directory Commander eingefügt.
    Damit kann man vom Betriebsmodus DOS 2.6 in DOS 3.0 umschalten. Damit ist es nun möglich die in das 1571 eingelegte Diskette einseitig (664 Blocks) oder doppelseitig (1360 Blocks) zu formatieren. Die Diskette muss also nicht „umgedreht“ werden. Beim betreiben des Laufwerk an einem C64 „vergisst“ die 1571 diese Einstellung beim Laufwerks Reset oder neu einschalten.
  • Straffen des Code – Part 1
    Im Code waren noch viele Zeilen oder ganze Routinen aus kommentiert. Diese Zeilen brachten 6 Blocks weniger Coder auf die Waage, leider wurden diese 6 Blocks durch die Erweiterung der beiden oben genannten Module wieder „konsumiert“ 😉 Im zweiten und vermutlich dritten Teil wird der Programmablauf im ganzen nochmal betrachtet und bewertet, kann noch mehr zusammengefasst werden, oder sind Abfragen eleganter zu lösen? Immerhin sind teile des Programm aus dem Jahr 1986 oder 2017 – und ja – ein wenig besser bin ich in der Zeit in Basic geworden 😉
  • Das Titelbild wurde nochmal angepasst
    Auch um eine Version für die DIGITAL TALK #112 zu erstellen. Wer möchte kann sich also auf dem Diskmagazin eine Version genauer anschauen 🙂 Freue mich total, das ich die Gelegenheit hatte eine kleine Story und eine ßeta Version dort bei zu steuern … oder wird es die ßeta6 ?
  • Umbau des Formatierungs Modul (1571 Modus Wechsel / JiffyDOS Integration)
    Jetzt ist es dank der Vorarbeit möglich, JiffyDOS und auch eine 1571 sicher zu erkennen. Somit kann mit dem Modul nun – mit oder ohne JiffyDOS formatiert werden und bei der Erkennung einer 1571 die eingelegte Diskette einseitig- oder doppelseitig zu formatiert werden. Ihr ahnt sicher wieviele Kombinationen das bei allen möglichen Laufwerken sind 😉 Nach dem Formatieren erfolgt eine Prüfung (=Verify) ob die Formatierung korrekt durchgeführt wurde, oder ob es zu einem Fehler kam. Der Fehlerkanal wird ausgelesen und angezeigt. Wenn jetzt “nochmal“ ausgewählt wird, werden alle Einstellungen übernommen, bis auf die ID, die wird eines hochgezählt und die neu eingelegt Diskette wird formatiert. So kann man ein 10 Pack Disketten bequem durch formatieren.

Was konnte bisher aus ßeta5 nicht umgesetzt werden?

Schauen wir uns doch nochmal kurz an, was umgesetzt werden sollte:

  • Testzyklus alles Ultimate 1541 II+ virtuelle Laufwerkstypen und mit den implementierten Funktion abgeglichen.
  • Neu schreiben des Modul „File Copy“, aktivieren im Menü „f1 – Directory Commander“ und das lesen und schreiben von einer Diskette – auf eine Diskette zu kopieren (mit Diskettenwechsel von Laufwerk 8 auf Laufwerk 8). Dabei wird natürlich JiffyDOS mit eingebunden 🙂
  • Für den Laufwerkstyp CBM 1581, wird das Modul „UnScratch“ und „Header Rename“ nochmal überprüft. Ich werde es 100% kompatibel aufbauen.
  • Das Modul „Drucken“ muss erstellt werden. Es wird dazu verwendet das Directory, den BAM oder die Übersicht der BAD BLOCKS auf einen virtuellen und echten Drucker (Star NC-10c kompatibel) zu drucken.

Die Liste wird also immer kürzer, aber noch ist es nicht geschafft, alles ab zu arbeiten …

Was ist sonst noch passiert?

Ab dieser Version wird DiskFix in einem D64 Image bereitgestellt und nicht mehr als Einzelprogramm. Es befinden sich dort weitere Tools für 1541, 1571 und 1581 Laufwerke. Ich glaube, das macht den Umgang einfacher und neben dem Speed/Alignment welches ja aus dem Programm gestartet wird, war halt noch Platz frei 😉

Mit dem KungFu Flash und dem MiniFlash habe ich weitere Tests durchgeführt und konnte keinen Absturz provozieren. Mit diesen Modulen kann DiskFix problemlos direkt nach einem Reset / dem Anschalten ausgeführt werden. Jedoch möchte ich hier noch eine CRT Version basteln, in der das Speed/Alignment aus dem Compute! Magazin, direkt dabei ist.

Download Link

… Der Link zur D64 folgt, sobald das Multi-Format Modul fertig getestet wurde …

%d Bloggern gefällt das: