Tesla Ondra a periferie? Vnitřní.

Jaké zatím existují periferie pro počítač Tesla Ondra SPO-186?

Kromě tradičního připojení magnetofonu a již výrobcem předpřipraveného připojení LPT tiskárny a joysticku (a při Centrum 1000 („SSM“) ROM i sítě, pro niž ale hardware komplexnější, než propojení dvou počítačů, zatím neznáme) existuje už jen OndraSD.

OndraSD sice s počítačem komunikuje právě po „síti“, ale nejde o pravý síťový server.
Narozdíl od OndraLinku, který sice vyžaduje připojení celého PC s periferiemi, Windows a dotNetem*, ovšem umožňuje do Ondry nahrávat programy i data a opět je z Ondry ukládat na svůj disk, nahrazuje OndraSD vlastně jen takovou ROM kartu s možností vyměňovat image programu, který se má nahrát.

Po zapnutí pošle do Ondry loader s možností výběru programu, který následně do Ondry nahraje a tím jeho historická úloha končí.
Pokud v programu vytvoříte nějaký datový soubor, už ho pomocí OndraSD na SD kartu neuložíte.
Výjimkou je CP/M pro Ondru, které umí ukládat na CP/M oddíl (a vyžaduje novější firmware OndraSD).

Je to tím, že x51, která je v OndraSD použita, nemá tak velký buffer, aby pojala celý z Ondry posílaný soubor, a nestihne mezi sektory zpracovat údaje z posílané hlavičky a podle toho vytvářet a ukládat soubory na FAT formátované kartě.
(Zatímco CP/M jen ukládá do sektorů vyčleněného oddílu a o filesystém se OndraSD nestará, to je úkolem CP/M v Ondrovi.)

Takové zařízení je sice dostačující pro spouštění her a dem (ale i tam jen částečně, protože nejde ukládat pozice nebo dohrávat další části), ovšem nějakou práci nebo nedej bože vývoj přímo na platformě Ondry vyloženě znemožňuje.

Dal by se tedy postavit „opravdový“ dedikovaný síťový server, ale Ondra si neumí síťovému serveru bez použití loaderu říci, jaký soubor mu má vlastně poslat.
Stejně by tedy byl nutný nějaký displej a ovládací zařízení pro výběr programu k nahrání.
ŠLo by tedy pro sítí, kazetou nebo obojím použít upravené TAPuino, otázka je, jak moc bude úprava commodoráckého zařízení náročná a zda zejména síťová komunikace bude realizovatelná (aby to nedopadlo jako u OndraSD).

.

Ondra je specifický v tom, že čtení z portů (instrukce IN) je využito pro nastavování časovačů starajících se o zobrazení a pro komunikaci s jinými periferiemi tak nejde použít.

Periferie (i ty zabudované v Ondrovi, jako je klávesnice, relé magnetofoku nebo LED diody) se proto sice dají ovládat výstupem na port (instrukce OUT), ale čtení je řešeno mapováním do paměti (do „stránky portů“, která se dá přistránkovat místo videoRAM do horních 16 kB paměťového prostoru Ondry).
http://www.8bity.cz/files/Ondra/Ondra_3-TOOL_v0.9.pdf strana 137

A ještě někde je volné místo.

Ondra má 16 kB prostor pro ROM, ale Centrum 1000 ROM zatím využívá jen 4 kB.
MIKOS sice taky využívá 4 kB, ale volné místo už bylo šikovně využito pro uložení BASIC EXP, který se tak nemusí nahrávat z magnetofonu a je k dispozici ihned po zapnutí počítače (povelem „B“).

Takže zbývá 12 kB místa.
Buď na nějaký Basic (nabízelo by se upravit BASIC EXP V5.0/G, aby místo systémových služeb MIKOSu využíval služby Centrum 1000), nebo něco jiného.
DOS!

Případně oboje – použít nějaký Basic, kratší než BASIC EXP, a do uvolněného místa nacpat DOS.

V samotné Centrum 1000 ROM stačí dvě drobné úpravy – doplnit rutiny pro čtení a zápis souboru o nové předznamenání jména (jako znak # předznamenává práci se sítí), driver samotný by pak byl už v dosud volném prostoru mimo dosavadní Centrum 1000 ROM.
Druhým detailem je doplnění samotného skoku do příkazové řádky DOSu nebo utility pro manipulaci se soubory (výpis a mazání například), třeba specifickým „jménem souboru“, což by umožnilo využívat manipulaci se soubory i v existujících programech (prostě jen třeba volbou uložení souboru a zadáním „jméne“ vyvolávajícího DOS).

DOS nemá význam bez nějakého rychlého mass storage zařízení.
V podstatě s takovým zařízením by člověk ani nepotřeboval Basic v ROM a nahrál by si Basic z „disku“. Nebo Forth.

U Ondry by takové mass storage zařízení muselo být uvnitř počítače – připojené pod procesor nebo do EPROM slotu spolu s ROM pamětí.
Nemuselo by ani používat výměnná média, ale například EEPROM nebo zálohovanou SRAM.

EPROM se musí (kvůli DOSu) vyměnit stejně, takže umístění celého zařízení v oblasti ROM by mělo několik výhod – odpadlo by stránkování do „stránky portů“ a nemuselo by se sahat na slot procesoru.
Ale i nevýhod – čtení lze sice namapovat do paměti v oblasti ROM, ale jak se bude do ROM zapisovat?
Lze sice přivést signál zápisu, ale to znamená minimálně letovat nějaký drátek na desku.
Lze ale taky využít trik ze Sinclairu QL – ono „zapisovat“ do oblasti ROM svým způsobem jde.

Zařízení ROMdisQ, které se vkládá do ROM slotu Sinclairu QL, je zapisovatelné čtením.
Má vymezenu oblast 256 bajtů, ve které se čtením z příslušné adresy vlastně do zařízení daná hodnota zapíše (čtením na adrese x+0 se zapíše 0, na adrese x+1 se zapíše 1, a tak dál).

Výměnu s okolním světem sice nyní zajišťuje OndraSD či OndraLink (oba by byli s popsaným řešením kompatibilní), ale dovedu si představit, že při použití dostatečně komplexní mrchy by mohlo podobně, jako u zařízení DataCentre pro Acorn Proton, mít vyvedeno USB pro „připojení Ondry jako mass-storage“ k PC a ukládat soubory „do Ondry“ prostým kopírováním jako na USB flash disk.

Tak a tím jsme si zhruba představili další neexistující periferii k Ondrovi.

Stejně budeme ještě desítky let oceňovat to, kolik Martin K. strávil na OndraSD práce a že něco tak úžasného vůbec vzniklo.
OndraSD ve spolupráci s OndraLinkem nebo magnetofonem je totiž pro mnohé majitele Ondry stále zařízením snů.

.

*) nevím jak vám, ale mně se ve Windows nikdy nepodařilo dotNet nainstalovat a zprovoznit, takže jsem nikdy žádnou věc v dotNetu napsanou nerozběhal.
Takže ani OndraLink mi nikdy nefungoval.