retro gépek A-tól Z-ig

FlashFloppy és 2m – saját image formátum

A Gotekről és az arra tölthető FlashFloppy firmware-ről már írtam kétszer. Az első rész inkább a hardverre fókuszált, míg a kiegészítésében a config állományokról volt szó. A firmware fejlődésével lehetővé vált a saját image formátum definiálása. Firmware frissítés után jó ötletnek tűnt kísérletezni egy kicsit. Az indok nagyon egyszerű. Egy IBM PC (nem klón, hanem az ős IBM 5150) a Goteket 360-as floppynak ismeri csak fel és még ha csak egy 20MB-os MFM merevlemezt akarok megtölteni, akkor is pár tucat „lemezt” kell végigpörgetni.

Elkezdtem gondolkozni, hogy mit lehetne tenni. Logikus lépésnek tűnt 720kB-os formátumot használni, de az első PC (IBM 5150) gyári BIOS-a nem ismeri a formátumot. Ezen túl lehet lépni egy, a BIOS-t kiegészítő TSR-rel. Ilyenkor egy 360-as formátumú lemezről kell indítani a gépet, majd ezt követően máris használható, mint 720-as meghajtó. Ilyen BIOS kiegészítőt például a 2M csomagban lehet megtalálni, mivel volt vele kis tapasztalatom, ezért ezt kezdtem el használni. Ezzel az átpörgetendő lemezek számát a felére sikerült csökkenteni, de tovább vittem a gondolatkísérletet és megpróbáltam feltornázni a virtuális lemezt még nagyobb méretűre. Adta magát az 1.44MB-os formátum, de azt nem sikerült írni/olvasni. Az fdformat hibaüzenetén elindulva sikerült kikalkulálni a hiba okát.

CapacitySizeHeadTrack/SideSector/TrackSector sizeRPMTransfer speed
360k5.25"2409512300250 kbit/s
720k3.5"2809512300250 kbit/s
1.2M5.25"28015512360500 kbit/s
1.44M3.5"28018512300500 kbit/s
1.67M3.5"28021512300500 kbit/s
2.88M3.5"280365123001000 kbit/s

A táblázatban összefoglaltam az IBM PC által használt leggyakoribb formátumokat. Az 1.67MB-os sorra majd visszatérek, egyelőre az a fontos, hogy a DD (360 és 720k) és HD formátumok között eltér az átviteli sebesség. Logikus, mert kétszer annyi cluster (9 vs. 18) van ugyanannyi helyen és megegyezik a forgási sebesség. A régi floppy vezérlő azonban nem képes kezelni a nagyobb sebességet. Itt jött képbe a FlasFloppy saját image formátuma. Saját formátumot az IMG.CFG állományban lehet megtenni és azokra az állományokra vonatkozik, amiknek a neve *.tagname.img vagy *.tagname.ima. A sima *.img vagy *.ima formátumot is meg kell adni a default alatt, de ez már alapból megtalálható a git-ből letölthető mintában. Én a következő formátumokat definiáltam:

[360]
cyls = 40
heads = 2
secs = 9
rpm = 300
bps = 512
[144]
cyls = 80
heads = 2
secs = 18
rpm = 150
bps = 512
[168]
cyls = 80
heads = 2
secs = 21
rpm = 126
bps = 512

A táblázatból már ismert számok köszönnek vissza. Cylinder, Heads, Secs (Sectors), rpm és bps (byte per sector, azaz sector size) került megadásra, amiből az rpm szorulhat magyarázatra. A HD (1.44M) formátum  kétszeres átviteli sebesség problematikáját úgy hidaltam át, hogy megfeleztem a forgási sebességet, így az ismét kompatibilissé vált a 250kbit/secre képes vezérlővel. A csel bevált és tudtam írni/olvasni az 1.44-es meghajtót. Ezt követően tovább gondoltam a dolgot és a 21 szektoros (168 = 1.68M) formátumot is beállítottam. Reményeimnek megfelelően működött a dolog, hála a 2M BIOS kiegészítésének. Sajnos a 2.88-as formátum már nem jött össze, de nem vagyok telhetetlen már ez is szép, elvégre tömörített állományokat használva 10 lemez alá sikerült zsugorítani az átvitt anyagot. Az egészhez nem kellett más, csak egy sor a config.sys-be, ami a 360-as boot floppy-n a következő képen néz ki:

files=30
buffers=1,1
device=a:\2m-xbios.exe a:1 b:3

Logikusan a boot lemezen megtalálható a 2m-xbios.exe és az emlegetett fdformat is. A B: meghajtó kicsit magyarázatra szorulhat, érdekes módon ugyanis az öreg gép az egy szem Goteket A: és B: meghajtóként is látja. Fontos, hogy nem szabad az A: -re 3-mat beállítani, mert a gép bootolás közben meg fog állni. A 3-mas a 720-as formátum, de ezt nem szükséges fejből tudni, a 2m-xbios helpje ezt is szépen megadja. A képeken láthatjátok az fdformat-ot működés közben, az image-t a következő paraméterekkel formáztam:

fdformat.exe b: t80 h2 n21

A paraméterek magukért beszélnek. Tesztelésként az elkészült image-et teleírtam, majd a közel 1MB-os zip fájlt leteszteltem. Az tény, hogy lassú, de hiba nélkül teljesítette a gép a feladatokat. Hogy mennyire régi, azt jól mutatja a két benchmark eredménye és az, hogy felbővítve is csak 256 kB RAM-mal gazdálkodhat mindössze.

Miközben írom a cikket jutott eszembe két továbbfejlesztési ötlet. Az első, hogy szabadon elérhető a 2M forráskódja, abba belenyúlva a 21 szektoros és 80 trackes határon is túl lehetne lépni. Azért kell belenyúlni, mert pár gyors teszt végrehajtása után azt mondhatom, hogy a 2.88-as formátumot meg tudom formázni 1.67MB-ra, de többre nem. A gotek elvileg tudja, tehát  hatalmas floppy meghajtót lehetne definiálni. A második ötlet a BIOS léptetési idők felülírása, ugyanis semmi szükség várni a fejléptetésre vagy a motor felpörgésére. Simán mindent be lehetne állítani a minimum értékre amivel biztos sokat gyorsulna a rendszer. Rákerestem és nincs új a nap alatt, már régen is játszottak ezekkel a paraméterekkel: PC Mag 1982/Feb-Mar Mindent összevetve az eredménnyel elégedett vagyok és érdemesnek tartom arra, hogy megosszam a felhasznált programokat és az eredményt is:

Pendrive tartalma boot és test .img-vel: Gotek_USB

2M forráskóddal: 2m30src

fdformat forráskóddal: fdfrm18

TSR – Terminate and Stay Ready, azaz memóriában maradó program. Ma legközelebb a driverek vannak hozzá, ugyanis a legtöbb valamilyen meghajtó volt, pl. RAM kiterjesztéshez a himem.sys vagy az egérhez a mouse.com.

Views: 142



Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük