A régi gépek használatánál előbb, vagy utóbb fájó ponttá szokott válni a háttértárolók kérdése. A 8 biteseknél nem véletlenül jelentek meg a különböző ROM és SD kártya adapterek. Az IBM PC-nél a kompatibilitás elég jó visszafelé egészen a 286-os gépekig. A 8 bites ISA busszal rendelkező PC-k és XT-k viszont már problémásabbak. Az MFM merevlemezek érzékenyek és nehézkesen használhatóak. A sebességet azért nem rovom fel nekik, mert a legnagyobb programok betöltése is pár másodperc maximum amit simán ki lehet várni. Az MFM-nél modernebb IDE merevlemezek használatát az nehezíti meg, hogy a parallel ATA csatlakozó 16 bites, de a 8088 alapú PC-k busza csak 8 bites. Ezt a gondot egy egyszerű áramkörrel és BIOS kiterjesztéssel lehet megkerülni. Valószínűleg azért nem használták eredetileg, mert mire az IDE merevlemezek elterjedtek az XT-k ideje már leáldozott. A továbbiakban egy ilyen, teljesen open source kártyát fogok bemutatni.
Több hardveres megoldás is ismert, én a The Glitch Works XT-IDE rev4-es kártyáját építettem meg. Az ehhez szükséges teljes dokumentáció szabadon letölthető a GitHub-ról. A linket a bejegyzés végén találhatjátok meg, de a biztonság kedvéért zip formátumban is belinkeltem. A kártya két lényegi részből áll. Egyrészt van egy EEPROM amibe a BIOS kiegészítés beégethető. Másrészt néhány TTL IC-vel megoldották a 8 bit-16 bit illesztést. A megépítés nagyon egyszerű, a gerber fájlok felhasználásával rendeltem NYÁK-ot és kb. 1 óra alatt kényelmesen beforrasztottam az alkatrészeket. Sajnos a hátlap kérdése még nem megoldott, eddig csak 2 helyen találtam, de mind a kettőnél az egyszerű fémdarab többe került volna, mint maguk az alkatrészek.
Az EEPROM-ba égetett XTIDE Universal BIOS is szabadon elérhető, a linket szintén megtaláljátok a bejegyzés végén. Ugyan 2013 óta nem jutott túl a v2.0.0 a Beta 3 verzión, de ettől függetlenül sikerrel próbáltam ki eredeti IBM PC-ben, XT klónban és 386-os gépben is. A BIOS kiterjesztés használata nem csak 8088-as gépek esetén lehet indokolt, ugyanis segítségével az LBA merevlemezek kezelése is megoldott. 286/386 gépeknél is jól jöhet és nem csak a 8 bites kártyával használható együtt. Ez utóbbi ugyanis visszafogja a sebességet ezekben a gépekben, de erre még visszatérek egy rövid teszt erejéig.
A kártyát a használat előtt még be kell állítani. Jumperrel lehet kiválasztani, hogy a sebesség (rev 2) vagy a kompatibilitás (rev 1) számít jobban. Alapból a az utóbbit favorizálom a sebesség miatt, a képen is ez látható. Ezen feltüntettem a két dip kapcsoló (SW1 és SW2) beállításait is:
Az SW2 az EEPROM címét, méretét, írhatóságát és azt állítja be, hogy egyáltalán engedélyezve van-e. A képen kiemeltem az általam használt D0000 címet. A ROM méretet a felhasznált AT28C64 meghatározta, ez 8kB. Az írhatósághoz csak akkor kell nyúlni, ha új BIOS-t vagy beállítást kell beégetni az EEPROM-ba. A biztonság kedvéért ezt alapból ki szoktam kapcsolni.
A hardver után elérkeztem a szoftveres részhez. Az előre lefordított XTIDE Universal BIOS-ból több bináris is létezik. A beépített ROM mérete miatt a 8kB-os jöhet csak számításba. A pontos verziót a CPU határozza meg, de egy régebbi procira fordított bináris az újabbon is működik, csak esetlegesen lassabb lesz. A legfontosabb állományok:
- xtidecfg.com – A kártya beállítására és az EEPROM beégetésére szolgáló DOS-os program
- ide_xt.bin – 8086/8088-os processzorra fordított verzió (XT és PC)
- ide_xtp.bin – 80186/80188 processzorra fordított verzió (pl. NEC V20)
- ide_at.bin – 286-os processzorra fordított verzió (AT és annál jobb gépek)
Az xtidecfg.com használatáról és egy új verzió vagy beállítás beégetéséről készítettem egy videót. A dokumentáció elég részletes, hogy milyen lehetőségeink vannak, ezért csak a legfontosabb beállításokat vettem végig.
Amit fontosnak tartok kiemelni itt is:
- Érdemes egy boot floppy-t készíteni vész esetére
- A WR kapcsolóval engedélyezni kell az írást
- A jumpereknek megfelelő kártya típust kell választani (rev 1 vagy rev 2)
- A megfelelő bináris méretet és ROM-ot lehet csak beégetni (28C64 = 8kB)
- Az általam használt AT28C64-hez az SDP-t (Software Data Protection) ki kell kapcsolni
Zárásként néhány sebesség mérés eredménye. A beállítás (rev 1 vagy 2) és a CPU optimalizáció is befolyásolja az eredményt, ahogy természetesen az sem mellékes, hogy mi van a gépben. A teszteket egy 40MHz-es 386SX-en futtattam, de a turbo-t kikapcsolva is csak minimális változtak az értékek:
- rev1, ide_xt.bin 159.4kB/sec
- rev2, ide_xt.bin 268 kB/sec
- rev2, ide_xtp.bin 528 kB/sec
- rev2, ide_at.bin 544 kB/sec
Remélem hasznosnak találtátok ezt a kis bemutatót. A kártya és a BIOS nagyon jó kiegészítő főként XT mellé, ha a használhatóság fontosabb az eredetiségnél. Természetesen megvan a varázsa egy MFM merevlemeznek, nekem is van olyan gépem amiben az van. Ugyanakkor egy CF kártyát az XT-IDE-re kötve a gép használhatósága sokat javul, ezek közül példának a szoftverek átmásolását tudom kiemelni.
Linkek:
- https://www.glitchwrks.com/2017/11/23/xt-ide-rev4
- https://code.google.com/archive/p/xtideuniversalbios
Fájlok:
Views: 1795