Danke für den Floppycode Nicolas.
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.
Ein theoretisch angenommener Kopierschutz, der einige Sektoren faked indem die ID verändert wird, hätte also folgende Auswirkung:
+ Sektoren mit fremder ID wären für das DOS quasi "unsichtbar"
+ Wenn man die ID des Sektor jedoch kennt, dann könnte man den Sektor mit einfachsten Mitteln lesen.
+ Ein Kopieren der Diskette ist aber sehr, sehr schwierig
+ Zum Schreiben des Fake Sektor ist auch schon relativ großer Aufwand nötig, meiner Meinung nach geht das nur mit Usercode für den Diskcontroller.
=========
Schritt 1 ist die Umsetzung von D82COPY mit normalen CBM Routinen
Schritt 2 ist experimentieren mit simplen Usercode für den Buscontroller
Man wird also nur nicht oder schlecht geschützte Disketten kopieren können, was bei der 8050 der Standardfall sein dürfte.
--
Beim Schreiben von Disketten lässt sich die ID mit Schritt 1 und 2 nicht ändern. Wenn man also ein D82 Image zurückschreibt, dann ändert sich in der regel die ID, weil man die ID des Image in die BAM kopieren muss, damit die Diskette lesbar bleibt.
Will man also eine "gute" Kopie, dann muss man vorerst darauf achten, dass man die Diskette zuerst mit der korrekten ID formatiert. Ich werde einen Schalter einbauen, der dies optional automatisch macht.
========
Aufgrund der Hardware zur GCR Codierung, sind bei der 8050/8250 bei weitem nicht soviele Kopierschutz Szenarien machbar. Denkbare Kopierschutz Methoden:
+ Sektorreihenfolge
+ fehlende Sektoren
+ illegale Sektornummern
+ Halbspur Schweinereien
+ Fake Header: Zusatzbytes (sichtbare Sondersektoren), illegale Header (unsichtbare Sektoren)
Wenn man wüsste, dass solche Dinge tatsächlich gemacht worden sind, dann würde sicht ein "Sektor header Analyzer" in Form eines kleinen Diskcontroller Code anbieten.
Ein Schalter im D82COPY (-a[nalyze) würde dann:
+ den analyzer code hochladen
+ der Diskcontroller würde jeweils eine ganze Spur lesen (nur Headerdaten: 8 bytes pro Sektor oder evtl auch mehr, für fake header)
+ OpenCBM würde dann eine Headeranalyse Datei ausgeben
Die Headeranalyse Datei könnte Aufschluss darüber geben, ob und wie eine Kopierschutz aktiv ist. OpenCBM könnte mit Hilfe der Informationen in der Headeranalyse Datei dann auch alle zugehöreigen Sektor Daten auslesen. Allerdings müsste man sich ein neues Imagefile Format anstatt D82 überlegen.