könnte man nicht eine kleine Routine schreiben, die einfach alle Blöcke 1x beschreibt und wieder ausliest und vergleicht?
Du hast da was noch nicht richtig verstanden. Die 1581 schreibt immer 20 Blöcke auf einen Schlag (einweder die Sektoren 0-19 oder 20-39 eines Tracks). Ich nennen das für mich Halbtrack. Man kann es sich auch so vorstellen, dass es logische und physische Sektoren gibt. Logische sind die 3200, von denen 3160 frei sind. Physische sind es "nur" 160: 80 Tracks multipliziert mit den beiden Seiten.
Und ja, diese Routine ließe sich schreiben, und z.B. in die 1581-Tools einbinden. Das hilft aber nicht wirklich. Das Problem ist, dass die Diskette quasi "schwach" ist und "irgendwann" einmal beim Schreiben ein Problem hat. Nicht beim ersten Schreiben, aber vielliecht beim 3., 5., 10. oder 20. mal. Und dann ist halt nicht ein einzelner (logischer) Sektor kaputt, sondern die 20 (logischen) Sektoren eines Halbtracks.
Was man eher bräuchte, wäre ein Patch im 1581-ROM, der nach dem Schreiben den Halbtrack noch einmal liest, und falls dort ein Fehler auftritt, versucht er den Halbtrack noch einmal zu schreiben. Denn nach dem Formatieren ging die Diskette erst mal wieder.
Meine Lösung damals war, sobald eine Diskette mir "verdächtig" vorkam, diese mit den 1581-Tools zu testen, und falls kaputte Halbtracks aufgetaucht sind, den Rest auf eine neue Diskette zu sichern. Die alte Diskette wurde entsorgt, oder noch einmal beschrieben, getestet und bei Erfolg dann nur noch mit Schreibschutz betrieben. Oder man konnte den "schwachen" Bereich weiträumig mit einer CBM Partition belegen.
Heute habe Ich das Problem für mich ganz anders gelöst: ich habe eine 1581replica mit Gotek. Damit das Problem der "schwachen" Diskettten erledigt, außerdem wird der Transfer der Daten einfacher.