ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Ismerkedjünk a különféle régiés új Sinclair klónokkal...
gatora
Hozzászólások: 24
Csatlakozott: 2016.01.05. 18:55

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: gatora »

Zimi !

Gondolkodni fogok azon, hogy milyen módon tudnál egy ilyen kütyü tulajdonosa lenni.
gatora
Hozzászólások: 24
Csatlakozott: 2016.01.05. 18:55

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: gatora »

Bali !

Az utánépítés lehetősége szerintem nem ütközik semmilyen akadályba sem.

Gerber file, alkatrész lista adott.

A probléma az, ha valaki csak egy helyen csinál egy hibás forrasztást (láthatatlan helyen átfolyik, és zárlatol), biztos, hogy hibásan indul el.
Nagyon nehéz rájönni a hibára.

A PS/2 billentyűzettel kapcsolatban annyit tudnék mondani, hogy elég nagy helyet foglalna el CPLD-n belül.
Valószínű, hogy a joystick, és a floppy vezérlő
CPLD-t ki kellene cserélni 7128-asra.
Emiatt viszont a panel magasságát növelni kellene, ami persze nem lenne gond.
Laki
Speccyalista
Hozzászólások: 61
Csatlakozott: 2012.01.08. 22:06
Tartózkodási hely: Budapest

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: Laki »

gatora írta: 2020.12.04. 18:36 Gondolkodni fogok azon, hogy milyen módon tudnál egy ilyen kütyü tulajdonosa lenni.
Én is, én is jelentkeztem egyre!!! :)
Laki
Speccyalista
Hozzászólások: 61
Csatlakozott: 2012.01.08. 22:06
Tartózkodási hely: Budapest

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: Laki »

gatora írta: 2020.12.04. 18:51 CPLD-t ki kellene cserélni 7128-asra.
Emiatt viszont a panel magasságát növelni kellene, ami persze nem lenne gond.
Láttam, hogy az 1541-es DIN csatlakozója túl magas a Speccy dobozában, ezért kicsit meg kellett faragnod a csatlakozó tetejét. Azon tűnődtem, hogy ha esetleg áttervezésre kerül a panel, és picit át lehet úgy szervezni az alkatrészeket lefelé, hogy a DIN csatlakozó alatti terület "kiharapásra" kerülhessen a NYÁK-ból, akkor nem lehetne mélyebben ültetni a csatlakozót a panelra és akkor úgy elférne a dobozban faragás nélkül?
gyurco
Hozzászólások: 58
Csatlakozott: 2017.06.13. 15:20

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: gyurco »

gatora írta: 2020.12.02. 08:19 [Kompatibilitás...
Úgy tűnik, hogy a Harlequin nem 100%-osan kompatibilis az eredetivel.
Pl. a BIFF nevű játékprogram lefagy, ha betöltés után megnyomjuk a "4 REDEFINE"-t.
Ennek hardveres oka van, amit ki lehet javítani, és akkor az eredeti ZX Spectrum-mal teljesen egyenértékű lesz.

A ZX MAX 48 és a Humble48 ULA Verilog kódján is kell módosítani, így talán 100%-os kompatibilitásúak lesznek.

És hogy a ZX1541-es milyen lett?
Szerintem nem lett rosszabb, mint az előzőekben említett három klón.
Szerintem nézd meg a MiST ULA kódját, az már 100%-os, minden teszten átment eddig.
Ezen is:
http://www.zxspectrum4.net/op_timing.php

Ráadásul csak 1 órajelet használ, 2 fázisú CE-vel (nincsenek generált órajelek az ULA-belül).
https://github.com/gyurco/ZX_Spectrum-1 ... ter/ula.sv
gyurco
Hozzászólások: 58
Csatlakozott: 2017.06.13. 15:20

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: gyurco »

gatora írta: 2020.12.02. 08:19
Kompatibilitás...
Úgy tűnik, hogy a Harlequin nem 100%-osan kompatibilis az eredetivel.
Pl. a BIFF nevű játékprogram lefagy, ha betöltés után megnyomjuk a "4 REDEFINE"-t.
Ennek hardveres oka van, amit ki lehet javítani, és akkor az eredeti ZX Spectrum-mal teljesen egyenértékű lesz.
Na ezt kipróbáltam a MiST-en, és meglepődve tapasztaltam, hogy ott is lefagy. De ez így nem maradhat, úgyhogy muszáj volt kidebuggolni, hogy miért is.
Szerencsére nem volt túl bonyolult, nem ugrik rossz címre, ahonnan aztán alig lehet visszakövetni, hogy hol tévedt el a program futása, mindössze végtelen ciklusba keveredik a program. A kérdéses kód 0xDFA1-en kezdődik:

CALL DD08
XOR A
IN A,(FE)
CP BF
JR NZ 0xDFA1

Ez a kis rutin először meghívja a DD08-as szubrutint, ami a border effektet csinálja, ami még érdekes lesz. A következő pár sor lekérdezi az ULA portját abból a célból, hogy nincs-e egy billentyű nyomva tartva (ha nyomva tartasz egy gombot, akkor látszólag ugyanezt a fagyást csinálja a program, ami a klónon is történik), ha igen, akkor gyakorlatilag végtelenségig pörög.
Nade a beolvasott portról nem maszkolja ki az EAR bitet, amit ő konstans 0-nak vár (0xBF-nek, ahol a bit6=0, ami az EAR). Ha itt a klón 1-et ad vissza, akkor máris kész a végtelen ciklus. És hogy miért érdekes a border effekt kód? Mivel a border színét 01...04-re állítja, ezzel nullázza az EAR és a MIC bitet, ami visszaolvasva szintén 0 lesz, hacsak maga az EAR port fel nem húzza (pl. kazetta lejátszásakor). Mondjuk 100%-ig nem vagyok biztos abban, hogy minden esetben miként hat az OUT érték az IN-re, ráadásul úgy tudom, itt a 48k-s Issue2 és Issue3 közt is voltak különbségek, a 128-as gépekről nem is beszélve, ezt még ki kell nyomozni egy pontos implementáció érdekében. Minden esetre default 0-ra téve ezt a bitet a játék nem fagy le.

És bocs, ha belerondítottam a topicodba, ez a ZX1541 nagyon szép munka, gratulálok hozzá.
gatora
Hozzászólások: 24
Csatlakozott: 2016.01.05. 18:55

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: gatora »

gyurco !

Valószínű, hogy nem volt egyértelmű a dolog.
A ZX1541-es nem esik bele a BIFF-féle csapdába.

De azért köszönöm, hogy fáradoztál ez ügyben !

Annyit tudni kell, hogy ezt a hibát m/zx
fedezte fel, ugyanúgy, mint a Bright problémát.
Sokat törtük a fejünket a megoldáson.

Kiderült, hogy az EAR a ludas a dologban.
Kíváncsi voltam rá, hogy lesz-e, aki rájön a hiba okára.

Amikor azt írtam, hogy a Harlequin-en egy kis átalakítást kell végezni, hogy 100%-os legyen, azon azt értettem, hogy az EAR bitet invertálni kell.
Meg lehet oldani, csak a panel veszíteni fog a szépségéből.
És ha jól emlékszem, a Harlequin leszármazottai is örökölték ezt a hibát.

Jó egy évvel ezelőtt írtam a Harlequin tervezőjének erről a hibáról.
Vissza sem írt.
Ezután kezdtem el azon gondolkodni, hogy mi okozhatja a problémát.
Én a hardver felől közelítve jöttem rá, Te a szoftver felől.

A ZX Max 48 és a Humble 48 esetén az ULA Verilog kódjában az EAR-ról jövő jelet negálni kell.

Ennek az az oka, hogy a kapcsolási rajzokon az ULA-ba menő EAR jel egy tranzisztor kollektoráról származik, ami invertált jelet eredményez.
Ha emitter követő lenne, akkor nem lett volna ez a probléma.
Az emitter követő viszont azért nem tökéletes, mert kb 0.6V-tal kisebb jelszintet eredményezne.

Mindkét klónnál a forráskódban az EAR jelét nem fázishelyesen kapja meg a CPU.
Ezért írtam, hogy az ULA kód kis módosításával (!ear) ezek is 100%-osak lehetnek.

Ha jól emlékszemm,a ZX-UNO TBBLUE magja is ugyanezt a hibát hordozza.
Ennek utána fogok nézni.

Még egyszer köszi a fáradozásodat.
gyurco
Hozzászólások: 58
Csatlakozott: 2017.06.13. 15:20

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: gyurco »

Tényleg félreértettem akkor. Örülök, hogy ez jó nálad, egy klón akkor jó, ha 100%-on kombatibilis mindennel. Azért érdekelne, hogy nálad is az out bitek befolyásolják-e az IN-t? Mivel az eredeti ULA-ban csak 1 láb van mind a ki és bemenetre, ezért gyanítom, hogy az EAR bit beállítása visszaolvasható.
Meg ez itt is meg van erősítve: https://worldofspectrum.org/faq/referen ... htm#PortFE
A MIC bit önmagában beállítva meg csak Issue 2-n befolyásolja a visszaolvasást. Ezeket muszáj lesz kipróbálnom eredeti gépen.
csaba
Alapító tag
Hozzászólások: 354
Csatlakozott: 2012.01.09. 18:18
Rádióamatőr hívójel: HG5BMU
Tartózkodási hely: Surány
Kapcsolat:

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: csaba »

"Egyébként az előző PS2-es bill csati pl. jó ötletnek tűnik egy esetleges továbbfejlesztés esetén"
Egy ekkora dicséretre méltó projectnél miért ps2?
Máshol is a ps2-t erőltetik, (elhiszem hogy egyszerűbb) de nem lehet olyan bonyolult egy arduino vagy pic kontrollerrel egy usb HID összerakása sem.

Az alsó 16K ram második lapját 128 kompatibilis módon lehetne lapozni sw-ből.
bár nem tudom van -e program ami ezt a funkciót kihasználja.
Avatar
mezei
Speccyalista
Hozzászólások: 606
Csatlakozott: 2012.01.06. 13:52

Re: ZX1541 - ZX Spectrum C64-es floppy kezeléssel

Hozzászólás Szerző: mezei »

gatora írta: 2020.12.05. 07:40 A ZX1541-es nem esik bele a BIFF-féle csapdába.
Nagyon jó kifejezés. Tényleg egy programozói csapda. Amúgy nehéz elkerülni a hasonló csapdákat sok száz órányi tesztelés nélkül.

Gondolom, sok klónt tervező ember nem is sejti, hogy ilyen csapdák vannak a játékokban, így nem elég a megszokott Manic Mineren és még pár népszerű játékon, és persze a mindenféle órajel és egyéb tesztekkel kipróbálni a gépet, hanem be kell tölteni, és próbálgatni az ilyen, amúgy tök ismeretlen játékokat is, figyelve a működésüket.

A ZX1541 teszteléséhez kellett még pár dolog, amit szintén Aladár tervezett, és épített meg.

Rengeteget használtam egy MZXDuinot. Igen, fura a neve, ez egy átalakított, áttervezett TZXduino.

mzxduino.jpg

Mehet 5V-os adapterről, vagy szipkázhatja az élcsatlakozóról is az áramot. A csatlakozó ronda forrasztása az én művem, bocs miatta.

Meg tudja gyorsítani a tesztelés folyamatát egy DIVIDE is, ami szintén Aladár saját gyártmánya.

mxzdivide.jpg

És a csúcs, az a 1541-es floppy meghajtó és a sajnos egyre ritkább DD-s, 5,25"-ös lemezek kímélésére létrejött SD2IEC.

mzxsd2iec.jpg

Az SD2IEC a memóriakártyának köszönhetően szinte úgy működik, mint egy végtelenített floppy lemez. Egy floppyra fér 170kB adat, az SD2IEC esetén ez annyi, amennyi a benne lévő SD kártya kapacitása. Annyiban még könnyebb is a használata egy floppyhoz képest, hogy míg a floppyra úgy kell átjátszani a programokat a gépen keresztül, a memóriakártyára elég PC-n felmásolni a fájlokat és már indulhat is a betöltés Spectrumon.

Csináltam egy nagyon fapados, mindenféle beszédtől és felirattól mentes videót is a Spectrum és a CBM 1541 együttműködéséről. Valós idejű felvétel, semmi gyorsítás és hasonlók, így ha nézitek, nyugodtan tekerjetek bele. Az azért jól látszik, hogy mennyire hangulatos és gyors tud lenni egy játék betöltése.
https://www.youtube.com/watch?v=q5niW_6 ... e=youtu.be
A videon azt láthatod, hogy leformázok ZX1541-gyel egy lemezt, majd a Boulder Dash megfelelően átalakított verzióját blokkonként betöltöm kazettáról (MZXDuinoról), majd lementem lemezre, végül pedig a kész játékot a lemez tartalmának kilistázása után betöltöm.

Üdv
m/zx
Válasz küldése

Vissza: “Klónok háborúja”