Jetzt geht die Suche los. Gottseidank ist das BIOS des IBM 5150 sauber im Handbuch dokumentiert. Nach etwas Suche findet man "DISK_BASE" - den Datenblock für die FDC-Parameter. SRT ist hier "0xC" - also 2*4=8ms. Ich setze SRT auf "0x0", also 2x16=32ms. Eines meiner Sonder-EPROMs gebrannt, anstelle des originalen BIOS' eingesetz - und - nix geht. Ach ja, das BIOSprüft sich ja zu Beginn selbst auf additive Prüfsumme modulo 256 - da sollte Null rauskommen. Das letzte Byte im BIOS ist 0x77 - Wenn der SRT-Parameter statt 0xCF jetzt 0x0F, also 0xC0 kleiner ist, dann mache ich einfach mal das letzte Byte 0x77 um 0xC0 größer. Das ergibt 0x137 - Modulo 256 also 0x37. Jetzt das EPROM neu gebrannt...
Die Idee mit der Anpassung der Steprate direkt im BIOS hat mich auf die Idee gebracht, mal hier nachzuschauen ...
;==============================================================
; Super PC/Turbo XT BIOS for Intel 8088 or NEC "V20" Motherboards
; Additions by Ya`akov Miles (1987) and Jon Petrosky <Plasma> (2008-2017)
; http://www.phatcode.net/
;==============================================================
Warum? Da ich das original IBM BIOS ein wenig unkomfortabel finde, benutze ich schon seit längerer Zeit für meine IBM PC und XT nur das "Super PC/Turbo XT BIOS". Bisher habe ich kein Probleme damit gehabt; es funktioniert einwandfrei.
... und siehe da, in Zeile 2998 findet sich folgende Prozedur:
;==============================================================
; Interrupt 1Eh - Diskette Parameter Table
;==============================================================
entry 0EFC7h ; IBM entry for disk param
proc int_1E far
db 11001111b ; Disk parameter table
db 2
db 25h
db 2
db 8
db 2Ah
db 0FFh
db 50h
db 0F6h
db 19h
db 4
endp int_1E
;==============================================================
Die Parameter sind bis auf 19h identisch mit denen im original BIOS.
Das "Super PC/Turbo XT BIOS" hat den weiteren Vorteil, das man es ganz einfach neu übersetzten kann:
"Once assembled and linked, the actual BIOS image is the last 8K of the EXE
produced, with the exception of the final checksum byte which needs to be
calculated and added to the end. (The checksum byte makes the sum of all the
bytes in the image = 0 mod 256.)"
Getestet habe ich die Änderung der Steprate bislang nicht, da ich für meine Floppies nicht mehr als 8ms benötige. Ich wüsste aber nicht, warum es nicht funktionieren sollte.
Grundsätzlich funktioniert die Erzeugung eines neuen BIOS jedoch einwandfrei; habe ich schon mehrfach gemacht und anschließend mit meinem Galep 5 neu "gebrannt".