OndraSD – rychlé načítání programů do Ondry z microSD karty

Tak už i roztomilý československý mikropočítač Ondra se dočkal a má svoje velkokapacitní úložiště. Tedy, ukládat zatím neumí, ale programy načítá opravdu svižně. Martin K. na OndraSD pracuje už nějakou dobu a v podstatě se jedná o další iteraci na vývojové větvi OndraLinkROM CardOndraSD.

OndraSD_boxed_in_Ondra_detail   Forever2015_OndraSD_screen

OndraSD Martin navrhnul jako poměrně jednoduché a levné zařízení. Používá v podstatě dobový procesor 8051 v trochu modernějším, ale stále DIP provedení 89C2051. Kromě slotu na microSD kartu a 74LVX125 pro napěťové přizpůsobení jsou všechny součástky klasické THT, takže zapájet si je může bez problémů každý. Martin bral ohled na cenu zařízení a tak se komplet součástky vejdou do 300 Kč.

OndraSD_angle_back   OndraSD_angle_front

OndraSD nepotřebuje žádné modifikace Ondry a připojuje se na standardní externí interface určený pro joystick, tiskárnu a síť. Tedy vlastně, musíte mít Ondru s ViLi ROM. Právě v ní je obsažena obsluha jednoduché sériové „sítě“. Po zanutí Ondry stačí zadat příkaz # a Enter. ViLi ROM po zapnutí počítače totiž očekává název souboru, který chcete načíst. Pokud název uvodíte znakem #, nenačítá se z kazeťáku, ale právě ze sítě rychlostí 9600 Bd.

OndraSD_front2   OndraSD_back2

Touto rychlostí se načte malý půlkilový loader, který už obsahuje Martinovi rutiny pro rychlé načítání a vlastní obslužný program o velikosti cca 4 kB už se načítá rychlostí 57600 Bd. OndraSD se po zapnutí nebo resetu snaží poslat loader každé 2 s, po načtení loaderu a obslužného programu se čeká na výběr programu ke spuštění.

OndraSD_in_open_box   OndraSD_with_box_open

Výběr probíhá hezky graficky, šipkami, je možné využívat adresáře, prostě pohodlíčko. Martin do 2 kB firmwaru a 128 B RAM dostal obsluhu sériové linky Ondry i FAT32 na SD kartě. Rozum mi to nebere. Osobně by mně nikdy nenapadlo psát FAT32 v assembleru a ještě 8051. Škoda jen, že všechny programy co na Ondru existují se vejdou na kartu velikosti 2 MB a tak malou tedy fakt nekoupíte Mrkající veselý obličej. Ale třeba se to teď pořádně rozjede Mrkající veselý obličej.

OndraSD_in_box_angle   OndraSD_boxed_working   OndraSD_boxed_working2

Samozřejmě, že jsou tady ještě nějaké moušky. OndraSD neumí nahrávat, resp. ukládání na microSD kartu ze sériové linky by možná časem zvládl (do desky jde osadit, a určitě to doporučuji, i větší MPU 89C4051, který má „úžasné“ 4 kB flash), ale žádný program na Ondru, kromě CopyFile, to neumí. Tudíž jakékoli ukládání by si vyžádalo úpravu ROM Ondry.

OndraSD_boxed_in_Ondra   OndraSD_boxed_in_Ondra_back

Druhá mouška, která mně trápí o něco více, je nemožnost spustit z OndraSD standardní MIKOS BASIC. Jak jsem již psal, OndraSD potřebuje ViLi ROM a BASIC potřebuje standardní TESLA ROM s MIKOS. Vlastní MIKOS se dá z OndraSD nahrát, ale do něj BASIC už se musí nahrát z kazeťáku. Tj. bylo by super, kdyby se našel šikula, který by upravil BASIC tak, aby se dal nahrát jako TAP přímo z OndraSD pod ViLi ROM. No a kdyby bylo možné ještě ukládat BASIC na sériovou linku, tj. OndraSD, bylo by to už dokonalé.

Zatím je OndraSD je ve fázi testování. Udělali jsme 10 destiček, které jsou mezi lidmi pro Ondru zapálenými a po důkladném otestování a opravě případných nalezených chybiček, udělám určitě finální várku desek. Těm, co mají strach z pájení SMD připájím microSD slot a LVX125 už rovnou na desku, aby měli konstrukci jednoduchou. Proto, kdo byste měli o OndraSD zájem, ozvěte se mi, dám si Vás na seznam zájemců, ať vím, kolik desek mám pak nechat udělat. Kdo by chtěl OndraSD už hotové, napište mi to do e-mailu, určitě se najde pár ochotných lidí, osadit OndraSD i pro někoho dalšího.

Detailnější info, schémata, firmware, loader apod. najdete přímo na stránkách Martina K.

Příspěvek byl publikován v rubrice Československé počítače, Ondra se štítky , , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

18 komentářů: OndraSD – rychlé načítání programů do Ondry z microSD karty

  1. Tomáš M. napsal:

    Roztomilá malá krabička. ZX Spectrum 48k by takovou zasloužilo, ale tam jsou jen ty hovadské protáhlé interfejsy co mnohdy překračují rozměry samotného počítače. Stejně si myslím, že v dnešní době dokonalých emulátorů (ať už softwarových či jiných) je přidávání těchto moderních zařízení ke klasickým systémům tak trochu mimo mísu. Jde přece o nostalgii, a tam nic nenahradí původní konfigurace, tzn. např. Spectrum, Kempston, pákový joystick Quickshot, kazetový magnetofon, kazeta, LOAD „“, 5 minut nahrávání s úvodním obrázkem, modro žlutými pruhy a typickým zvukem… Kde je to kouzlo když člověk nudně proklikává desítkami snapshotů z SD karty a ve výsledku si ani žádnou hru vlastně nezahraje…

    • Noby napsal:

      Pro ZXS jsou už i interface v krabičce, stačí hledat.

      Ale mě přijde mimo mísu psát někomu, že když dělá něco co jej baví, že je to zbytečné, že to řeší emulátor atd. To už tady můžu rovnou napsat, že pro mě byl kazeťák desný opruz, když jsem Didaktika začal pořádně používat, tak už byly disketovky a i před tím to čekání při tom příšerném pípání… To už se tady rovnou můžeme bavit, že WIFI a ADSL stojí za prd, je lepší slyšet cvrlikání vytáčeného modemu a ještě si ten zvuk pouštět do reprobeden…

      • Martin napsal:

        Ja myslim, ze oboje ma neco do sebe, ale dobre je mit tu moznost. Kdyz mam nostalgickou naladu, cekam 8 minut na BASIC na Sharpovi a posloucham cvrlikani, ale kdyz chci, tak to proste loadnu rychle a muzu psat nebo zkouset neco jineho. Presne, jak Noby pise, na 8-bitu jsme take na kloudnejsi praci meli potavene disketove radice a RAM diskyna podobne ptakovinky, ktere praci urychlovaly. Navic, dnes je trochu problem i s kazetaky a kazetami. Udrzet to vse v chodu je tezsi a tezsi. Takze kazetak super, ale casto misto nej pouzivam iPhone a nebo nejake to moderni udelatko.

    • EC1045.01 napsal:

      ona ta krabicka v socasne dobe umi odemulovat pouze sit. tj. abi bila ta seriova linka pouzitelna bilo zapotrebi druhy ONDRA. ale jak se najede na MIKOS tj. puvodni TESLA ROM tak se porad jede na kazetak. aneb to tam martin pise

    • MartinNo1 napsal:

      Problem pri ZX je uplne inde. Programy zaberaju celu RAM, a preto sa musi pridavat dalsia RAM a ROM pre obsluzny program. (Interface1 sice ma seriovy port, ale kolki ho maju?)
      Ked to spocitam, minimum je RAM, ROM, prevodnik urovni a min. jedno GAL na prepinanie pamati, a to sa uz do takejto krabicky nevojde.
      Keby som nebral do uvahy potrebu pamati, tak si vystacim s dvoma IO (IN, OUT port).
      Inak Interface 1BIS sa mi javi ako celkom maly…

  2. EC1045.01 napsal:

    jen takova debilni. pokut bude fizicky osazena ViLi ROM a bude se nakravat TESLA ROM neslo bi nekam umistit ovladac pro seriovou liku pak nahrat TESLA ROM a po spusteni ovladace bi se uravili poze udskoky tj. doslo bi presmerovani vystupu z kazetaku na ser.linku a vse bi chodilo teda za predpokladu pouzivani standartnich sluzeb MIKOS. a drak neslo bi odemulovat i kazetak. na tan se nahrava stajne jak na SAPI-1 tj. jde o stejny format jak na RS232 ale upraveny po kazetak (urovne) a richlost je teda pouze 2400baud. a pokut se nepletu tak sit je taky ale RS232 v TTL provedeni takze bi to nemel bit tak veky problem a obeslo bi se to i bez zasahu do ROM.

    • Martin napsal:

      To zalezi, jak moc je ten BASIC napsany, ze vola systemove rutiny. Ale stejne by je nekdo sikovny musel upravit, ja si na tohle netroufnu. Zkusil jsem napsat Dalimu, ale je otazka, jestli se mu do neceho takoveho bude chtit a hlavne na to bude mit cas.

    • MartinNo1 napsal:

      Samozrejme, islo by to aj takto, upravit TESLA ROM, ktory sa nahrava z karty. Komunikacne rutiny su v tape buffer-i, ten zostava nedotknuty vo ViLi ROM, ale v TESLA ROM to tak nebude, konieckoncov, dalo by sa najst ine umiestnenie.
      Problemom je, ze to nevie ukladat na kartu. A ani si neviem predstavit, kto a naco by to potreboval.

      • Martin napsal:

        No, tak to ja umim, prave na ukladani BASIC programku. On Ondra ma docela fajn BASIC a po ruznych casacich se najde par programku pro Ondru.

        • MartinNo1 napsal:

          Tu nastava zasadny problem s rychlostou, ked Ondra bude posielat data po seriovej linke, modul to nebude stihat zapisovat na kartu. Musel by sa tam vlozit nejaky potvrdzovaci algoritmus. Iny pripad by bol, keby Ondra zapisoval priamo na kartu, ale to by uz bola zlozitejsia krabicka 🙂

          • EC1045.01 napsal:

            pokut se pouzije nizsi prenosova richlost tak to bude stihat i zapisovat. a vubec bi mi nevadilo kdy ta krabicka bila obojetna tj. umela jak sit tak i kazetak cimz bi se nemuselo zasahovat do ROM a u kazetaku je tak pomala richlost ze bi to zvadalo vpohode zapisovat.

            ikdibi to funkovalo tak ze ze site bi se dalo pouze nahravat ale pres kazetak jak nahravat tak ukladat. uznavam krabiska bi bila slozitejsi a mozna bi se musel pouzit vetsi (vice vivodovy) jednosvab ale nemoselo bi se zas nic upravovat v puvodnim programovem vybaveni a krabika bi se dala pouzit jak s ViLi ROM tak s TESLA ROM tj. pri pouziti TESLA ROM bi se ovladac natahl pres kazetak a pak bi se uz to hrnulo po siti. popripade abi se nemusel nahravat ovladac tak bi mela krabicka i displej s tlacitky a pak bi se dalo jet jen ciste pres kazetak. jedinou necnosti bi bila richlost coz bi se dalo ozelet a taktez bi to bilo i pro malitel ondru kteri bi nechteli zasahovat do ondry.

  3. VELESOFT napsal:

    Na 2kB pekne 🙂 Jako absolutni minimul pro Z80CPU je 1kB kodu, ktery obslouzi FAT32, ale jen soubory v korenovem adresari. Zato nahraje libovolny soubor do ramky. Autor systemu ESXDOS ma tuto rutinu uz napsanou jako bootovaci kod pro natazeni celeho systemu z FAT32. S nekolika kB kodu se uz da funkcnost hodne rozsirit, treba prave jako zde…

    • MartinNo1 napsal:

      Rutiny SD a FAT32 v OndraSD maju spolu momentalne 1078B, podpora adresarov je takmer „zadarmo“. Ale Z80 nie je v asembleri taky ohybny ako x51, tak tam to bude potrebovat svojich 5-10% navyse.

  4. dex napsal:

    Chci se ohradit proti větě “ žádný program na Ondru, kromě CopyFile, to neumí. Tudíž jakékoli ukládání by si vyžádalo úpravu ROM Ondry.“

    Naopak, umějí to vlastně všechny. Stačí jako první písmeno názvu při ukládání uvést # (samozřejmě to nebude fungovat tam, kde se program snaží ukládat s pevně nastaveným jménem, ale to je speciální situace, která se Pascalu, Edit/Asm a podobných netýká).

  5. Hynek napsal:

    Nejsem si jisty, zda je toto proveditelne s pouzitym MCU. Cteni z karty se da provadet bez bufferovani (co se nepouzije, to se zahodi), ale zapis do FAT potrebuje prepisovat casti sektoru, tedy je potreba nacist 512B, zmenit polozku ve FAT/adresari a znova sektor zapsat. Nektere karty umi zapis i po mensich blocich, ale spolehnout se na to neda. Dale operace alokovani noveho souboru je (muze byt) casove narocna a urcite se nemusi stihat v prubehu zapisu.

    • MartinNo1 napsal:

      Ano, je to presne tak. Zapis je zlozitejsi, lebo po kazdom zapise clustra je potrebne zapis prerusit a upravit FAT tabulku, co si vyziada nejaky cas.
      Na druhu stranu ma modul implementovane a publikovane dve low-level rutiny, sector-read a sector-write, takze pomocou nich by vedel nepriamo zapisovat Ondra na SD kartu vratane modifikacie FAT tabuliek – ale to uz je o implementacii FAT32 v Ondrovi.

  6. Pingback: Hra SOLITAIRE pro TESLA Ondra SPO186 | Martinův 8-bitový blog

  7. Pingback: Dexovo Hexadecimální Doupě • Chybějící programové vybavení Tesla Ondra SPO-186 (II. díl – programy, co chybí)

Napsat komentář: MartinNo1 Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *