Úplně alternativní Spectrum

Čímž tedy rozhodně nemyslím, že je alternativní jako třeba „alternativní medicína“, ale prostě že by bylo jiné. A počítám s tím, že mi budou skalní fandové lát a klnout, že znesvěcuju ducha, ale to jsme si už vyřídili, teď se, prosím, soustředíme na to podstatné.

Když Jirka Lamač (LEC) a pánové Troller s Císařem (Sinsoft) rozšiřovali paměť ZX Spectra proto, aby na něm mohli pouštět CP/M, bylo to znesvěcení retro ducha modernou, ale protože to probíhalo na konci 80. let, tak to vlastně ve skutečnosti byl pokrok. I když upřímně: CP/M v té době byl už docela letitý systém…

Ale zpět k alternativě: Chtěl jsem tím říct, že úpravy Specter nemusí být jen, řekněme, pietní. Takových je naprostá většina: vylepšená ROMka, přidaný nějaký nový hardware, který se, pokud možno, tváří jako starý hardware a je totálně transparentní… Hlavní je kompatibilita s originálními Spectry.

Na druhé straně CP/M úprava kompatibilitu na přepnutí přepínače zahazuje a implementuje systém, který je se Spectrem už z principu nekompatibilní. Spectrum má totiž, jak si pamatujete, na začátku paměti („dole“) ROM, nad ní videoRAM, a nad ní RAM až do konce prostoru. CP/M naopak vyžaduje, aby „dole“ byla RAM a ROM s BIOSem naopak kdesi „nahoře“. Plus navíc do toho všeho padá videoRAM… Ale jo, na konci 80. let to vypadalo jako dobrý nápad, lepší než platit statisíce nekonvertibilních Kčs za systém s CP/M.

Zase jsem od alternativy odbočil. Ale nebojte, už jsem zpátky: Nechal jsem svou fantazii tuhle plynout nad otázkou: šel by multitaskový OS udělat i na Z80?

Tak určitě… Samozřejmě existovaly. Ale bylo by fajn si ho napsat, že? Co k tomu bude potřeba? Zaprvé – MMU. Je třeba, aby programy fungovaly kdekoli v paměti na (logicky) jednotné adrese bez ohledu na fyzické umístění. Viz .COM programy, které vždy běžely od adresy $0100, a v MS DOSu to fungovalo díky segmentovým registrům x86 (které jsou jinak peklo) naprosto transparentně. Na druhou stranu, kdyby ten systém dokázal namapovat různé banky paměti na určitou adresu, tak by to spoustu věcí usnadnilo.

Zadruhé – supervizor režim. Jinak nebude možné ochránit paměť, izolovat procesy, přidělovat zdroje… No a nebo důsledně dodržovat princip „play nice“, tedy spoléhat na to, že programátor bude dodržovat pravidla, bude třeba přistupovat k displeji a klávesnici výhradně přes služby OS, bude poslouchat dispečera, nezakáže přerušení, …

No a zatřetí by šlo udělat virtuální procesor, takovou „Javu 80“ (neplést s Jawou 50).

O několik myšlenkových pochodů později mi to secvaklo: Vždyť já nemusím dělat experimentální hardware a bastlit vlastní počítač se Z80 (hello, Grant), já přeci můžu použít Spectrum, rozšířit mu paměť pro stránkování od $8000, využít všechno, co zařídí hardware a ULA (tj. klávesnici, displej a další) a tenhle systém napálit do ROMky, která bude od $0000, jak to Sir Clive mínil.

A o jednu úvahu dál jsem viděl ZX Spectrum 128, které má to přepínání paměti už jaksi samo od sebe, sice od $C000, ale nešť. K tomu by stačila malá krabička s ROMkou a s nějakým udělátorem, co by dokázal komunikovat s CF nebo SD.

Na chvíli ve mně hrklo: Ale to v té ROMce nebude originální BASIC a přijdu o kompatibilitu a to rozšíření nebude ovládané nějakými ohackovanými příkazy! No jo, to nebude. No a?

Nebudou pro to programy. Jasně, takže je můžu napsat sám! Budu jediný majitel. Bude to jen technická onanie, kdybys radši dělal něco užitečného a pomohl spektrácké komunitě… Nojo. Nepomůžu, jakáž pakáž…

Jen bych vás, znalejší, poprosil: Nevíte o nějaké takové úpravě, která by využívala HW Spectra a přitom zahodila ROM a BASIC a implementovala vlastní systém? Všechny ROMky, co jsem našel, jsou především „vylepšené a opravené originální ROM“, tu s tokenizérem, támhle s novými funkcemi, ale taková divočina, jakou jsem si vysnil, tu jsem nikde neviděl.

Aktualizace 7.4.: Díky Logoutovi za odkaz na Matrix OS!

PS: Omlouvám se, zapomněl jsem, že některé memy nejsou všeobecně známé. Ta citace „Kdybys radši dělal něco užitečného…“ mě pronásleduje od dob Bloguje vlastně u každého projektu: „Kdyby pan Malý svou energii raději věnoval do XXX a pomohl tím komunitě!“ Nojo, nepomohl jsem, ale bylo Bloguje a byly další věci. Takže pro jednoznačnost: to nebylo nic proti Spectristům… Ostatně viz zde a zde.

Příspěvek byl publikován v rubrice Hardware se štítky , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.
  • Pavel vitsoft Šrubař

    Jednu velice nepietní úpravu Spectra jsem před čtvrtstoletím taky spáchal, ale spíše než na vylepšování firmware byla zaměřena na poloautomatické množení kazet s programy, takže např. kopírovací program si pomocí relátek řídil rozběh pásky na interním i externím kazeťáku. Spíše než technická onanie bych to s odstupem času označil jako technické porno hraničící s béčkovým hororem 🙂

    Ale tu Lamačovu úpravu jsem tam měl taky. Podle Sinclairova návrhu se v prvních sériích používaly levnější bazarové sady RAM, ve kterých se využívala jejich polovina, ale kdo měl štěstí na kvalitní čipy a dobastlil si přepínač, fungovaly mu obě poloviny paměti, tedy 128K. Jen jsem tehdy nevěděl, co s tím.

  • V podstatě to co navrhuješ se funkčně rovná zasunutí cartridge do Interface2. Mám v MB-02 dostatečně velkou EEPROM, takže jsem si do ní několik těch image zapsal a stačí jeden out a z mojí plus dvojky je Jupiter Ace nebo ZX-81, obojí samozřejmě znamená zahození kompatibility ze ZX Spectrem. Jen pro zajímavost – image jsem bral tady: http://www.fruitcake.plus.com/Sinclair/Interface2/Cartridges/Interface2_RC_Cartridges.htm

  • Díky za odkazy. Jo, přeprogramování divIDE mě napadlo taky jako nejschůdnější cesta.

  • Na Sharp MZ-800 existuje MemExt. Dokonce dvě verze, původní od Davida Luftnera

    http://www.8bit.8u.cz/Files/MemExtOld/

    a invovaná od Michala Hučíka a Vaška Peroutky. Akorát koukám, že to skoro vypadá jako pečlivě utajený projekt (teda mimo Sharp konferu). Budu o tom muset asi něco písnout na blog.

    http://ordoz.com/memext/
    http://ordoz.com/sharp/memext_cpuboard/
    http://archivek.ordoz.com/sharpemu/4895

    Fuzzy na tom částečně rozchodil multitaskový MZIX, což je v podstatě UZIX upravený pro Sharp MZ.

  • Díky za tipy, mrknu se na to. MZ-800 tu dva mám… (A za článek předem dík!)

  • Jiří Billig

    Chceš vyvinout něco jako je můj AzoraDOS? 🙂

    http://www.oldcomp.cz/viewtopic.php?f=37&t=554

  • Jak na to tak koukám, tak asi jo 🙂