XUM 1541 adapter készítése

XUM 1541 adapter készítése Commodore 1541 meghajtóhoz Pro Micro-val Windows 10-re.

Bevezető

- Első számítógéped?
- Commodore 64!

Ha a fenti párbeszéd megdobogtatja a szíved, akkor ez a cikk neked fog szólni.
Egyre többen próbálnak életet lehelni a régi masináikba, vagy most akarják megismerni a retro érzést.
Döbbenve tapasztalják meg azokat az alapvető hardveres korlátokat, amik manapság már természetesnek számítanak. Mire is gondolok?
Arra, hogy a C64-en nincs USB csatlakozó! De hát akkor hogy teszek rá játékokat, demókat?!

Ahhoz, hogy ennek okát megértsük, az alapoknál kell kezdeni.
A C64-hez lehetett kazettás egységet csatlakoztatni, ami a szegény ember adattárolója volt akkoriban az ára miatt. Valamint lemez meghajtót, amik 5,25" lemezekkel működtek. Ezek irgalmatlanul drágák voltak akkoriban, gyakorlatilag egy C64 ára, de azért csak elterjedtek, szerencsénkre.

Lehetőségek és korlátok

Akkor mégis hogy tudunk adatokat csempészni a C64-re?

Kis szerencsével találunk olyan lemezt, amin vannak játékok, vagy másol valaki nekünk egyet egy másik C64-gyel. Akkoriban a másolás a világ legtermészetesebb dolga volt, mivel semmilyen legális módon nem lehetett játékokat szerezni. (Azért ez nem igaz - a szerk.)

Hirdetés

Na de mi van akkor, ha mi akarunk lemezre másolni játékokat PC-ről, vagy régi programjainkat átrakni
PC-re?
Szerencsére nagyon sok zseniális rajongó van, akik több olyan eszközt is fejlesztettek, amik megkönnyítik az adatok csempészését számunkra PC-ről C64-re! :D

Star Commander

Az első lehetőséget egy magyar fejlesztő hozta el számunkra. Ő Joe Forster/Sta és a Star Commander.
Ehhez csak egy épített kábel kellett, amivel összekötöttük az 1541 meghajtót a PC LPT nyomtató portjával, és DOS alatt máris tudtunk másolni a PC és a meghajtó között oda-vissza.
Ennek a rendszernek a legnagyobb hátránya az, hogy a nyomtatóport már kihalófélben van, és a modern gépeken már nem működik a Star Commander megfelelően.

Mérföldkőnek számít a munkája, és még nagyon jó fej is! :D Mivel kézügyességem és műszaki érzékem erősen korlátozott - ez még fontos lesz a későbbiekben -, így simán küldött nekem egy xe1541 kábelt arra az időre, amíg átmentettem a lemezeimet PC-re.

SD2IEC

A nevéből már ki lehet találni, hogy ez már valami modernebb lesz! :D Az SD2IEC-vel egy 1541-kompatibilis meghajtót kapunk (de nem teljes emuláció! Ez fontos lesz még), ami SD kártyával működik!
Működése egyszerű: az SD kártyára másolt C64-es fájlokat lehet futtatni vele, fájlműveleteket indítani, másolást, törlést, stb.
Rengeteg verzió érhető el belőle 6.000 Ft-tól 18.000 Ft-ig bezárólag.

A legnagyobb hátránya az, hogy egy lemezoldal írása egy SD kártyán lévő C64 fájlból egy igazi 1541 meghajtóra 15 percig tartó móka lesz! :(
Annyira nem értek hozzá, de a lényeg az, hogy az SD2IEC nem teljes 1541 emulációt csinál, tehát nem lehet programozni teljes értékűen. Márpedig az összes másoló program használja a hardvert sokszor "illegális" kódokkal, lecserélik a meghajtó gyári kódját egy sajátra, vagy a meghajtó processzorát használják számításokra.
Magyarán, ha egy játék/demó/másolóprogram olyan gyorstöltőt használ, ami a meghajtóhoz kódjához nyúl, akkor az nem fog működni vele.

Mit lehet tenni? Hiába érhetőek el a neten el a kedvenc játékaink és demóink, mire kiírjuk őket lemezre, megőszülünk. Ha pedig hibás a lemez "fizikálisan", akkor lehet kezdeni elölről.
Valljuk be, ez letör minden lelkesedést. Én se ilyen sebességre emlékeztem, amikor még C64-eztem! :D

Valahogy fel kellene gyorsítani az írást! A megoldás a teljes 1541 emuláció!

Jelenleg a piacon van pár termék, ami teljes 1541 meghajtó-emulációt nyújt, de nagyon komolyan a zsebünkbe kell nyúlni cserébe a luxusért. A legelterjedtebb a 1541 Ultimate II és a Turbo Chameleon 64, valamint van még UK1541 - ez még fejlesztés alatt van.
Folyamatban van egy magyar fejlesztés is, ami képes az 1541 teljes emulációjára, és előzetes becslés szerint elérhető áron lesz majd kapható.

Hozzávalók

A teljes emuláció drága jelenleg és nehezen elérhető, az olcsó meg nem tökéletes megoldás.
Mi lenne, ha PC-vel írnánk ki Windows alatt a lemezeket egy igazi 1541 meghajtóval? Úgyis PC-n töltünk le minden C64-es fájlt, ott tároljuk, akkor miért ne írnánk ki egyből onnan?

A varázsszó ZoomFloppy

Ebből is nagyon sokféle változat kering a neten különböző megoldásokkal és árakkal, de mindegyiknek közös a "lelke", ezért lehet többféle megvalósítást is készíteni.
A legolcsóbb megoldás, ha összerakunk magunknak egyet minimális forrasztással és telepítéssel.
Forrasztással még problémáim vannak, de el kell kezdeni valahol! :D

Szóval süssünk valamit! De inkább ne! :D

A hozzávalók 1 db XUM 1541 adapterhez:

- Pro Micro ATmega32U4 5 V 16 MHz Replace ATmega328 Arduino Pro Mini -
ebay
- 6 DIN csatlakozó - ebay
- 6 eres riasztó kábel ~10 cm
- forrasztó páka + forrasztó ón
- USB micro OTG kábel
- SD kártya tartó tok (ház helyett)
- némi kézügyesség
- türelem

Ha minden megvan, akkor az alábbi ábra szerint forraszunk össze mindent!
Mivel szellemi kapacitásom eléggé korlátozott, ezért összekötöttem, hogy mit kell forrasztani és hova! :D Lehet parallel kábelt is készíteni, de ahhoz a meghajtót is módosítani kellene.


forrás

Vannak olyan modulok, amik úgy érkeznek, hogy a J1 nincs rövidre zárva. A J1 vezérli azt, hogy 3.3 V (nyitva) vagy 5 V (zárva) működjön a kütyü. Zárjuk rövidre, mivel kell a magasabb órajel. Ha ez nincs meg akkor nem mindíg fogja felismerni és fogadni a parancsokat.

Windows 10 vagyok, hát te meg kivagy? Leonardo

A Pro Micro ATmega32U4 nagyon ügyes kis masina, csak hát egy kicsit körülményes a flashelése, resetelése, meg van, ami még nem jut eszembe most! :D

Aki megakadna a telepítésekkel, azoknak javaslom az olasz anfarol honlapját (, tőle vettem az első xum1541-emet), komplett telepítője van, szuperül dokumentálva.

Dugjuk rá a PC-re a ProMicro-t, nagyon fontos, hogy nem kell még az 1541-re rádugni.
Zadiggal fogunk telepíteni egy drivert.
A Zadigban, options -> list all device-nál válasszuk az Arduino Leonardo-t.
Válasszuk a libusb-win32 (v1.2.6.0) drivert, install.

Ha minden oké, az eszközkezelőben meg fog jelenni a libusb-win32 devices-nál.

Nézzük meg, melyik Com porton csücsül.

Windows gomb+R, írjuk “powershell” majd Enter

[System.IO.Ports.Serialport]::GetPortNames()

Megadja szépen, hogy melyik porton van, jelen esetben ez Com 9.
Most jön a trükkös rész. Úgy kapjuk meg ezt a modult, hogy van benne egy bootloader, ami reset után 8 mp-ig engedi a flashelési hozzáférést és utána átvált felhasználói módba (Com 9). Hogy ne legyen keveredés még véletlenül se, ezért megváltoztatja a Com port számát, amin keresztül lehet flesselni.

Aranyos mi?! :D
Na de hol van a reset? Nincs rajta gomb? Semmi pánik! A RST és GND pontokat kell rövidre zárni kétszer egymásután (bekapcsolt állapotban természetesen). Majd gyorsan futtatjuk powershellben a
[System.IO.Ports.Serialport]::GetPortNames() parancsot. Ez Com8 lett, de van, amikor utána rakja, random.

forrás

Lehet látni, hogy ha lejár a 8 mp, akkor ugyanis kéken villan a led.

Flesseljünk!

Nagyon fontos hogy ezt a ProMicrot csak egyszer lehet flashelni! Nem lehet frissíteni később!
Csak speciális eszközökkel lehet újra bootloadert rátölteni.

Kell egy avrdude, amivel flasheljuk a ProMicrot. Kibontjuk egy könyvtárba, két fájl van benne.
Letöltjük innen a hex fájlt, amit majd flesselni akarunk. Raw gomb felett jobb klikk -> hivatkozás mentés másként.
Így kell kinéznie: xum1541-PROMICRO-v07.hex
Bemásoljuk az avdrdude mappába. Az alábbiakat kell látnunk a mappában:

xum1541-PROMICRO-v07.hex
avrdude.exe
avrdude.conf

Menjünk parancssorba, vagy írjunk egy batch fájlt (raktam utána egy pause-t, így látom, hogy mi történt) és másoljuk bele az alábbiakat (a Com8 helyett az lesz, amit neked kidob a win reset után)
ne üssünk entert még:
avrdude -p m32u4 -c avr109 -P com8 -U flash:w:xum1541-PROMICRO-v07.hex

Csináljunk egy resetet, majd gyorsan mehet az enter az írásra.

Ha minden jól megy, akkor a led zölden fog világítani folyamatosan, és az eszközkezelőben
xum 1541 floppy adapter (PROMICRO)-ra változik a megnevezés.

Együk meg amit nemsütöttünk!

Mindenki éhes, a kaja is félkész, na de hol a villa?! :D
Telepítsünk egy CBM Transfert értelemszerűen. OpenCbm is kell, ami szintén a linken van.

A bekapcsolási sorrend nagyon fontos, mivel én már teljesen elszoktam ettől, hogy egy régi eszközt kéne felismertetni egy újjal. Sok forrasztást megspóroltam volna vele! :D

1. ProMicrot összekötjük az 1541-el, majd USB-be bedugjuk
2. Bekapcsoljuk az 1541-et

Ha be van kapcsolva az 1541, és úgy dugjuk USB-re a ProMicrot, akkor nem fog menni, csak egy resetet fog engedni az 1541-re. Utólag tudtam meg DarkByte fórumtárstól, hogy örüljek, hogy nem sütöttem meg az 1541-et!

Ha minden jól megy, akkor a következőt kell lássuk a cbmxfer indítása után.

Egy teljes C64 lemezoldal írása 1 perc 20 másodperc! Nem egy rossz idő! :D

Ízlésesen tálaljuk és jó étvágyat! :D

Szándékosan ennyire sötét a kép, hogy lehessen látni a képernyőt és a ledeket is.

Ezúton szeretném megköszönni a Retro számítógép és játék klub Facebook csoport tagjainak az ötleteket és DarkByte fórumtársnak a segítséget.