Geht das irgendwie? Gut, man könnte versuchen etwas abzuspeichern, und wenn das nen Fehler gibt, ist die Diskette schreibgeschützt (oder kaputt). Aber gibt es vielleicht noch eine andere Möglichkeit?
Diskette: Schreibschutz feststellen
- WebFritzi
- Thread is Unresolved
-
-
WebFritzi
Changed the title of the thread from “Schreibschutz feststellen” to “Diskette: Schreibschutz feststellen”. -
Ich habe die Tage häufiger mit Perplexity.ai gearbeitet. Ich wollte in VB.net die Bits ähnlich wie in Assembler hin und her bewegen bzw. diverse Konvertierungen vornehmen. Da hatte nur ein Vorschlag von der KI nicht funktioniert. Den Rest konnte ich gebrauchen. Interessant sind auch die zusätzlichen Hinweise zur gestellten Frage.
Das hat hat die KI auf Deine Frage (wenn ich sie richtig formulierte habe) geantwortet. Es würde mich interessieren ob sie auch bei Deiner Frage richtig gelegen hat.
-
Aber gibt es vielleicht noch eine andere Möglichkeit?
Hängt natürlich davon ab, wofür.
Die 154x und 157x sind sich sehr ähnlich, da könntest du die Schreibschutz-Lichtschranke direkt abfragen ($1801 Bit 4) (aus der Floppy heraus, wohlgemerkt)
Die 1581 und CMD FDx000 nutzen einen MFM-Kontroller, da müsste man den programmieren. Kein Hexenwerk, aber aufwendiger.
Andere Laufwerke (IEEE wie 8050, 8250, 4040, x03x usw.) sind dann wieder etwas anders zu handhaben.
Ansonsten wäre eine Möglichkeit, per Jobschleife einen Block zu lesen und danach direkt wieder zu schreiben. Das bringt bei einem Schreibschutz einen eigenen Fehlercode ($08).
Wenn es natürlich "moderne" Datenträger sind, dann wird es noch komplizierter.
Also: Wirklich universell ist nur der Schreibversuch, man kann allerdings auch vieles mit Fallunterscheidung anders machen.
-
Das hat hat die KI auf Deine Frage (wenn ich sie richtig formulierte habe) geantwortet. Es würde mich interessieren ob sie auch bei Deiner Frage richtig gelegen hat.
"U1:0" liefert ein Statusbyte? Wäre mir neu.
-
Ansonsten wäre eine Möglichkeit, per Jobschleife einen Block zu lesen und danach direkt wieder zu schreiben. Das bringt bei einem Schreibschutz einen eigenen Fehlercode ($08).
Hi strik . Wäre toll, wenn du das etwas ausführen könntest. Wie lese ich denn einen (beliebigen?) Block ein und schreibe ihn an die gleiche Stelle? Das klingt für mich besser als mein billiger Ansatz: versuchen ein Byte in eine neue SEQ-Datei zu schreiben, bei nem Fehler ist Disk schreibgeschützt, ansonsten File wieder löschen.
-
Speicheradresse $1e der Floppy mit M-R Befehl abfragen ist auch eine Möglichkeit.
$1e wird laufend aktualisiert. Man muss also nicht erst einen Floppybefehl ausführen,
nachdem man ein Diskette eingelegt hat.
$10 = Diskette nicht schreibgeschützt
$00 = Diskette schreibgeschützt
Anbei mal ein Beispielprogramm in ASM von mir.
-
-
Interessanterweise wird bei mir im Vice ein roter Punkt (also schreibgeschützt) angezeigt.
Bei mir in Winvice 3.1 nicht. Es sei denn ich attache ein D64 als Read Only. Hast du mal auf Original 1541 getestet?
-
-
-
An dem fehlerhaften Verhalten bei VirtualDevice = ON lässt sich dann wohl nichts ändern, oder?
Weiß ich nicht - da kenne ich mich nicht mit aus.