ZX Spectrum sukištas į CPLD

Šiuo metu kiek tvarkau senų kompų kolekciją ir nutariau suremontuoti savo Santaką (baltik versija). Pirmiausia nurinkau visus laidus, pasilikau pliką PCB, atstačiau ROM čipus ir pajungiau. Aišku niekas neveikia. Todėl pradėjau nagrinėtis- pirmas stepas, nėra RESET signalo. Pašalinom rusišką mikroschemą К155ЛН1 nauja SN74LS04. Pradėjo veikti procesorius ir netgi bandė formuotis vaizdas. Bet jis dingo. Pastebėjau, kad dar kaista К555ИЕ10- kol šalta, signalai praeina. Poto pakaista ir signalai dingsta. Čia jau rankos kiek nusuleido- supratau, kad tarybinė kokybė man nepadės. PCB padaryta ant snarglių ir beveik negalima perlituoti. Net blogiau už kiniškas popierines PCB iš 1980-tųjų metų.

ZX Spectrum CPLD Altera
Užtenka tik ką nors pakaitinti ir takeliai atsiklijuoja.

Pasinagrinėjau prie tos pačios progos schemą ir staiga kilo mintis: Schema tai gana paprasta ir tikrai ją galima aprašyti Verilog ir sukišti į nedidelę CPLD (ne FPGA), nes nesinorėjo organizuoti Z80, RAM ir ROM. O šios mikroschemos griežtai 5V.
O kitas pasirinkimas- Altera MAX EPM3256AQC208 šrotinės plokštelės iš utilizuotu rusiškų žaidimo automatų (Игрософт, Igrosoft IGP1). Čia naudojama ne visa didelė plokštė, o tik CPLD mikroschema su SRAM čipu. Deja tik 32K. Užtat 12ns.

ZX Spectrum CPLD Altera
Gavosi toks monstras. Dvi CPLD plokštelės tik todėl, kad norėjosi 64K, bet paaiškėjo, kad demonstracijai užtenka ir vienos plokštės- 16K ZX spectrum irgi veikia.

Gaminti originalų ZX visiškai neįdomu (jaučiu tikrai yra kur nors jau tai padaryta). Todėl nubrėžiau šiam žaidimui tokius kriterijus: mano speccy turi veikti su LCD monitorium ir VGA režime; negalima žiūrėti į svetimus projektus; negalima žiūrėti į klonų schemas; naudotis galima tik originalia schema ir programuotojų instrukcijas.
T.y. konstruoti kompiuterį iš programuotojo pusės.

Gavosi va tokia neinformatyvi schema:
ZX Spectrum CPLD Altera
(schema pdf formate)

Tai buvo įdomiai praleistas laikas ir šio žaidimo rezultatas:
ZX Spectrum CPLD Altera
Kažkas tokio kur bent jau veikia Basic'as…

ZX Spectrum CPLD Altera
Ir net yra įrašymo į juostelę garsas ir efektai. Deja, nuskaitymas nepadarytas (ten tik komparatoriaus ir garso signalo reikia).

Tačiau abejoju, ar nusikaitytu originalios santakos programų kasetės. Todėl, kad mano konstrukcija turi keleta esminių skirtumų nuo originalo. Mano kompiuterio taktinis dažnis 3.57134MHz vietoje 3.5MHz nes pagrindinis taktinis dažnis 50MHz ir visi dažniai gaminami iš čia. Panaši bėda su INT kur turi būti 50Hz. O pagrindinė bėda- pasirodo, kad Z80 CPU originaliam kompiuteryje stipriai stabdomas per WAIT koją. Mano “kompiuteris" to nežinojo ir jis visada veikia ant pilno greičio. Iš esmės, mano sistema asinchroninė- vaizdo generavimas visiškai nesusijęs su procesoriaus taktais. SRAM atmintis ant tiek greita, kad per kelis VGA clock (25MHz) taktus spėja parodyti vaizdą, nuskaityti duomenis iš RAM į procesorių ir dar ir įrašyti… Tačiau tai jau “verilog programos" momentai. Viską galima pasižiūrėti source code.

Liko vienas nepataisytas bugas. Kaip matosi vienoje nuotraukoje, pirmo ir antro stulpelio pixeliai pasislinko žemyn per vieną pixelį. Gal pataisysiu, bet procesas kiek atsibodo.. :)

Source code for Altera Quartus ZX Spectrum Naujas ZX Spectrum source code
Naujausias kodas komentaruose.

Jei jums nepasileido, tai atminkite, kad kai kurie Z80 CPU reikalauja, kad jų clock būtų 5Vpp, o ne TTL lygio. CPLD duoda 3V lygius.

10 Responses to “ZX Spectrum sukištas į CPLD”

  1. Algis Says:

    Sveikas Levai, kiek pamenu, tai nuskaitymo procedura prisiderina prie plaukiojancio bitrate +-kazkiek% (gan placiose ribose), nes buitinis kasetinis magas gi nenuspejamas daiktas.

  2. Administrator Says:

    biški pakeičiau VGA režimą, į klasikinį (640×480@60Hz, 25MHz pixel clock). Teko padvigubinti eilutes, bet dabar atrodo gražiau. Pirmo stulpelio bugas pataisytas- kaip visada, jis buvo visiškai kitoje vietoje nei ieškojau.
    ZX Spectrum VGA mode

  3. Ned Says:

    Laba diena. Gal galėtumėte pasidalinti baltiko schema?

  4. Administrator Says:

    Yra jų visokių…

    Vienas schemos variantas.

  5. Ned Says:

    Geras variantas. Ačiū

  6. Administrator Says:

    Krovimas iš “magnetofono" veikia. Naudoju programą androidui “playzx"… ech, kad taip gerai būtų krovės vaikystėje. Gal nervų daugiau turėčiau.

    zx game screen

    Tačiau mano kompe mažai RAM, reikia “prisukti" dar 32K. O kita bėda- kol kas dar pilnai nepatikrinau, bet rodos, kai kurie žaidimai turbo greičiais veikia. Atsiliepia tas, kad mano Z80 visiškai nestabdomas.

  7. Algis Says:

    Pagrindiniam cikle bus kazkur programinis uzlaikymo ciklas, tai pakeisk i HALT kombinacijas.

  8. Algis Says:

    Arba papildyk CPLD firmvara WAIT'ais

  9. asmeniskai Says:

    Levai, gal turi atliekamu CPLD ploksciu? Galiu pasiulyti 6522 8155

  10. Administrator Says:

    dar…

    A čipas: High RAM MMU quartus source code. Čia jei norisi viso RAM ir nesinori klijuoti RAM čipą, o paimi dar vieną CPLD plokštelę.
    B čipas: ZX Spectrum source code, 16K for CPLD. Čia sukištas visas spektrumas. tik dėl to, kad SRAM čipas tik 32K, gaunasi tik 16K versija. Prisukus ir A čipą, gaunasi pilnavertė santaka.

    zx tape interface
    magelio interfeisas.

Leave a Reply

Bot-Check (Jei ne skaičiai spauskit refresh. Tik oranžinius naudoti.)

Unhappy Tikbalang