im Rahmen einiger Arbeiten ist mir (mal wieder) aufgefallen, daß bei der PERCOM-Abfrage 40 Tracks gemeldet werden, auch wenn die Floppy mit 720K formatiert wurde.
Das führt bei Programmen, die den PERCOM-Block abfragen zu einem falschen Verhalten.
Da ich kein 8040 Assembler kann habe ich bei Stefan angefragt und eine erfreuliche Antwort erhalten.
Mit einem Quellcode-Schnippsel hat er mir aufgezeigt, wo im ROM die Routine für das $4E Kommando beginnt.
Für die Trackzahl wird einfach fest der Wert 40 ($28) übermittelt. Ich habe das ROM mit 80 ($50) gepatcht und vorhin ausführlich getestet.
Hierbei habe ich mit PERCOM.COM eine Disk in DSDD80T formatiert, dann alle Sektoren mit deren Sektornummer beschreiben lassen, die XF aus- und wieder eingeschaltet und dann die Sektordaten (2880 Sektoren) überprüfen lassen. Der Test verlief erfolgreich.
Hier die Daten zum ROM erweitert um die Trackzahl beim Kommando $4E. Die Doku stammt von Bob.
Code: Alles auswählen
XF ROM USA = C101696-002
XF ROM GER = C101696-003A
Für den 720K Patch wurde C101696-003A verwendet
ROM: 40 80
---------------
00000095: 31 31 (starting drive number)
0000040D: 50 28 number of tracks returned on command $4E ****
00000528: 90 00 wait until drive ready
0000053D: 00 03 3ms seek time
0000057B: 18 13 3ms seek time
0000061D: F6 F4 write pre-compensation
00000621: F6 F4 write pre-compensation
00000680: 28 50 40 / 80 tracks
0000080F: 30 60 40 / 80 tracks
00000811: FD FA 40 / 80 tracks
000009D1: 08 03 3ms seek time
00000B15: 18 13 3ms seek time
00000C1D: 88 80 wait until drive ready
00000D0D: A2 A0 write pre-compensation
00000E25: 88 80 wait until drive ready