Burstnibbler

  • Thanks.

    I have one open question: Starting from $0800 in memory, writing speed for track i is stored at adress $0800+i in c64 memory within burst nibbler. That's clear.

    But the unused bits are used for storing flags.

    Bit 7 : killer track
    Bit 6 : a track without syncs

    Bit 5 unknown
    Bit 4 unknown
    Bit 3 unknown

    For writing back images not captured with burst nibbler, these flags have to be identified.

    Any hint is welcome.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Hi Markus,

    In NIB files (I thought you were using G64 directly) I think this goes back to mnib.

    I have:
    #define BM_MATCH 0x10 / * not used but exists in very old images * /
    #define BM_NO_CYCLE 0x20
    #define BM_NO_SYNC 0x40
    #define BM_FF_TRACK 0x80

    I know of no others. I have never used BN, though, so if you mean something it does when reading, would have to examine source.

    -Pete
  • I see. Good chances that burst nibbler uses the same bits.

    Right, examining the source is a good advice. But that's not easy, as the source is really a regenerator generated source (with fixes where regernator worked suboptimal).

    Just bit 3 missing - and I am not sure if bit 3 is used. I have listed all unclear bits.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Anbei eine etwas verbesserte Version von Burstnibbler 1.9r+. Das "r" steht wie gehabt dafür, dass es sich um die REU-Version handelt.

    Neu:
    * Bildschirmausgabe etwas aufgeräumt.
    * Bugfix: Beim Schreiben aus der REU wurde der Parameter "Reduce Sync" nicht aus der REU übernommen, sondern der Wet aus der UI genommen. Es muss aber der Wert sein, mit dem gelesen wurde, und der steht in der REU.

    Zusammen mit dem Update von g64conv habe ich heute damit erfolgreich mit einem PC, einer 1541 U2(+), einem C64 und einer 1541 mit Parallelkabel eine Geos-Diskette samt Kopierschutz vom PC auf dem C64 übertragen und auf eine echte Diskette zurückgeschrieben. Dazu am PC das g64 in ein REU-Image verwandelt und das mittels der 1541U2 in die REU eingelesen. Dann den REU-Inhalt mit Burstnibbler auf die Diskette geschrieben. Klappt einwandfrei.

    Edit: Quelltext hinzugefügt.

    Nachtrag: Ein Quelltext von g64conv ist bereits verfügbar. Vor einem Release ist aber noch angedacht, die Einstellung "reduce syncs" des resultierenden REU-Images konfigurierbar zu machen.
    Dateien
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von markusC64 ()

  • Die dazu passende Version von g64conv v2.0 ist in meinem Github verfügbar. Als Perl Quelltext und als Win32 EXE (letztere unter Relases in dem Github-Projekt).
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Danke für Deine Bemühung.

    Bin im Moment etwas verwirrt.

    Stand bis jetzt:
    - Burstnibbler speichert in der REU (REU der Ultimate), diese "Datei" kann als G64 auf der Ultimate gespeichert werden.
    - Will man eine reproduzierbare Kopie muss der REU-Inhalt auf der Ultimate gespeichert werden.
    - Das G64 selber kann nicht wieder in eine reelle 1541-Disk gewandelt werden.

    Hat sich da etwas geändert?
    Oder ist es jetzt möglich ein G64 wieder in eine reelle 1541-Disk zu wandeln bzw. nur mit der Hilfe eines PC?

    Gruss C=Mac.
  • C=Mac schrieb:

    Danke für Deine Bemühung.

    Bin im Moment etwas verwirrt.

    Stand bis jetzt:
    - Burstnibbler speichert in der REU (REU der Ultimate), diese "Datei" kann als G64 auf der Ultimate gespeichert werden.
    korrekt.

    C=Mac schrieb:

    - Will man eine reproduzierbare Kopie muss der REU-Inhalt auf der Ultimate gespeichert werden.
    - Das G64 selber kann nicht wieder in eine reelle 1541-Disk gewandelt werden.
    Im wesentlichen stimmt das. Nur kann g64conv aus einer g64 ein Best-Effort-REU Image erstellen, welches sich wieder zum Zurückschreiben eignet. Wie gut das ist, müssen Tests zeigen (ich darf mal die Hoffnung äußern, dass die Tests nicht bei mir hängen bleiben... Ich habe diverse Geos-Disketten getestet, damit geht es schon mal. Darunter auch Geos 1.2, welches ja auf Track 36 Daten ohne Sync hat.)

    Kleiner Tipp: Die besseren g64 erhält man, wenn man beim Einlesen "reduce syncs" ausgeschaltet hat. Dass die Burstnibbleranleitung die Einstelung "eingeschaltet" empfiehlt, liegt daran, dass man dann beim Zurückschreiben bessere Möglichkeiten hat. Bei der g64 Ersellung geht es aber IMHO darum, den Disketteninhalt möglichst unverändert abzubilen und nicht darum, den gleichzeitig zum Zurückschreiben zu optimieren.

    Nachtrag: g64conv kann derzeit noch keine Killertracks. Un die reinzubekommen, brauche ich erst einmal ein Test-/Untersuchungsobjekt. Sprich: Ein Programm, welches einfach ein Killertrack auf eine echte Diskette aufbringt. Natürlich mit einstellbarer Geschwindigkeit.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von markusC64 ()

  • Richtig verstanden.Schon allein deswegen, damit die REU-Image-Erstellung schnell angepasst werden kann. Das geht in einer Skriptsprache ja einfacher als in 6502 Assembler. Wie bereits geschrieben: Es ist ein Best-Effort-Ansatz. Einige Teile sind einfach Beobachtungen am echten Image entnommen. Da kann es noch Optimierungsbedarf geben.
    Nebenbei: Das ist auch eine Aufwand-Nutzen-Frage: Durch die Verwendung von REU-Images kann der Filwbrowser der 1541 Ultimate mitgenutzt werden. Das ginge bei G64 Images einlesen zum Zurückkopieren nicht...
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • So nachdem meine Ultimate eingetroffen ist, wollte ich natürlich gleich den Burstnibbler testen.

    Leider ohne Erfolg. ;(

    Parallelkabel/Port wird erkannt: dd01
    Density Scan funktioniert

    Probiere ich eine Diskette zu kopieren "I", erscheint ein grauer Bildschirm und das war's dann.
    Floppymotor läuft ohne Unterbruch, der Kopf mach aber keine Bewegung mehr.

    Hab dann meine original Burstnibbler-Disk rausgekrammt -> genau gleiches Ergebnis.
    Nach Eingabe von "C" wird die "Score-Disk" gescannt, danach die "Target-Disk" verlangt und dann wieder die "Score-Disk", danach ist fertig.

    Ich hab das mit verschiedenen Versionen von Burstnibbler probiert, bei allen das gleiche.

    Das LW scheint aber in Ordnung zu sein.
    Programme können ohne Probleme gestartet werde, es werden auch alle Disketten ohne Probleme gelesen.
    Auch das Formatieren bereitet keine Probleme.
    Selbe der 1541-Test mit dem Check64, sagt alles ist O.K.

    Da ich früher mit diesem LW Burstnibbler-Kopien erstellt habe und im Moment keine Idee habe, woran es liegen kann.

    Habt Ihr mir einen Tipp?

    Gruss C=Mac.
  • Das klingt von den Symptomen her so, als hättest Du mehr als 1 Gerät am IEC Bus. Das mag Burstnibbler absolut nicht.

    Also: Alle emulierten Laufwerke abschalten (Nachtrag: Auch das Virtual Device).

    Weiterhin: In der Konfiguration eine REU mit >= 512k einschalten und das "Command Interface" ebenfalls einschalten.

    Wegen eines fehlenden Features der aktuellen 1541 U2+ Firmware ist das Abspeichern des erzeugten G64 noch limitiert. Es wird immer ins Verzeichnis "/eingang" auf "Usb0" gespeichert.

    Ich muss mal Henning fragen, wie weit er mit dem fehlenden Feature ist. Mit der Kombination könnte ich dann eine neue Version machen, die ein beliebiges Ausgabeverzeichnis hat.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von markusC64 ()

  • Noch ein kleiner Tipp: Durch Benutzung von "read dIsk" und "Write disk" kann man sich 2 Diskettenwechsel ersparen.
    "read dIsk" gefolgt von "Ultimate save" erstellt ein g64.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • markusC64 schrieb:

    Das klingt von den Symptomen her so, als hättest Du mehr als 1 Gerät am IEC Bus. Das mag Burstnibbler absolut nicht.
    Besten Dank @markusC64 :thumbup: , das war das Hauptproblem.

    Es war die reelle 1541 mit Parallelkabel aktiv und die Ultimate.

    Auch war das Command Interface aus und der Stick im falschen Port (1 statt 0), plus den Ordner hätte man auch noch erstellen sollen ;)

    Komisch, jetzt geht es einfach :D
    Und ich wollt schon die Floppy zerlegen.

    Zusammenfassung:

    - Es darf nur ein Laufwerk (Real und Emuliert) am Bus sein
    - Virtual Device muss aus sein
    - Stick muss im Port 0 sein
    - Directory "eingang" muss existieren
    - Command Interface muss eingeschaltet sein
    - REU aktiv, mit mindestens 512 KB
    - Los geht's ;)

    Datei wird unter dem Namen "newdisk.g64" im Ordner "eingang" gespeichert.

    Gruss C=Mac.
  • Alles korrekt. Kleine Ergänzung: Wenn man "nur" kopieren will und keine g64 erstellen, braucht es das Command Interface nicht.
    Und die erstellte g64 kann man selbstverständllich sofort mit der Ultimate umbenennen.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Anbei die bereits angedeutete neue Version vom Burstnibber.

    Aus gegebenen Anlass ein paar Worte zur Verwendung:

    C=Mac schrieb:

    Zusammenfassung:

    - Es darf nur ein Laufwerk (Real und Emuliert) am Bus sein
    - Virtual Device muss aus sein
    - Stick muss im Port 0 sein
    - Directory "eingang" muss existieren [1]

    - Command Interface muss eingeschaltet sein [2]
    - REU aktiv, mit mindestens 512 KB
    - Los geht's
    [1] Wenn man Firmware 2.6k auf einer Ultimate II hat, so wird im zuletzt im Filebrowser der Ultimate geöffneten Verzeichnsi gespeichert.
    Hat man eine Ultimate II Plus mit Firmware < 3.0e_452+v2, so muss das Verzeichnis "eingang" auf "Usb0" existieren.
    Hat man Firmware >= 3.0e_452+v2, so wird das Home Directory der Ultimate genommen. Dieses kann im Filebrowser der Ultimat festgelegt werden.

    Hat man eine Ultimate II ohne Plus, so muss man auf Firmware 3.0e_452+v2 warten oder auf v2.6k downgraden.

    [2] Nur wenn man auf die Ultimate speichern will.

    Mit dem Directory "eingang" ist das nicht ganz so einfach:

    Datei wird unter dem Namen "newdisk.g64" im o. g. Ordner gespeichert.


    Die dazu passende Firmware 3.0e_452+v2 erscheint bald.
    Dateien
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • Eine neue Version von mir - wobei um genau zu sein: Der Hauptteil der Neuerungen (verglichen zu 3.0e_452+_v1) ist von Henning.

    Komm bald, da die eigentlich schon fertig ist. Möchte die vor dem Release nur noch selbst testen.
    ---
    Meine Github-Projekte: github.com/markusC64/
    1541 Ultimate II Firmware Releases: github.com/markusC64/1541ultimate2/releases
    1541 Ultimate II Update instructions: github.com/markusC64/1541ultimate2/wiki
  • markusC64 schrieb:

    Komm bald, da die eigentlich schon fertig ist. Möchte die vor dem Release nur noch selbst testen.
    Eilt nicht.
    Lieber ausgiebig testen, als eine fehlerhafte Version veröffentlichen.


    Was sind eigentlich die idealen Einstellungen für Burstnibbler?

    - Start Track: 1
    - End Track: 41
    Bzw. zuerst Disk scannen und je nachdem den Endfrack auf 35 festsetzen?
    - "Halftracks": 1.0
    - Adjust Target: NO
    - Reduce Synch: NO

    Oder sind andere Eistellungen besser um ein G64 auf der Ultimate zu erstellen?

    Gruss C=Mac.