# Víceúlohový operační systém NedoOS Tento OS pochází z Ruska a běží na počítačích kompatibilních s ZX Spectrum: ATM Turbo 2+, ATM Turbo 3 a ZX Evolution, které si našly cestu i k uživatelům v ČR a na Slovensku. Poznámka: Já sám systém používám ma na ZX EVO, takže následující informace se týkají jeho použití s tímto počítačem. Ještě je potřeba dodat, že během hrátek s NedoOS mi nefungoval korektně systém mountování TRD obrazů a spouštění TAP/SNA, měl jsem "ZXEvoTS&BASE 16.06.2020 beta", ovšem po updatu FPGA s nejnovější verzí Baseconf začal NedoOS fungovat bez problémů. NedoOS je vyvíjen od roku 2018 (i když první nápady na něj pocházejí už z roku 2007). Má otevřený zdrojový kód, nemá definovanou licenci, ale příspěvky nebo portování by se měli domluvit s hlavním správcem a programátorem, kterým je Dmitrij Michajlovič Bystrov přezdívaný Alone Coder. A.C. je známý i vývojem dalších programů, dem a her pro ZX Spectrum, které dokáží z platformy Zilog Z80 vyždímat maximum, namátkou např. 3d enginy: BORSCH Atomic Quake (2023), Wolfenstein 2004, atd. Dalšími spolutvůrci jsou DimkaM, který přidal podporu síťování a Savelij13 diskový subsystém, a mnoho dalších. Systém je stále aktivně vyvíjen, a v jeho SVN repozitáři přibývá nový kód téměř každý týden. ## Vlastnosti systému * Systém umožňuje současně obsloužit až 16 procesů, z nichž jeden je v běhu a ten má přístup k IO zařízením a výstupu na terminál. * Podporuje TR-DOS diskety, SD-kartu, IDE HDD (FAT12/16 nebo FAT32 s podporou dlouhých názvů). * Současně může být otevřeno až 8 souborů na TR-DOS, 8 na FAT a až 8 komunikačních rour (pipes) mezi procesy. * Síťování umožňuje karta ZXNETUSB. * Doporučená je i zvuková karta General Sound, NeoGS nebo TurboSound FM. * Systém podporuje Kempston mouse s kolečkem. * Hodiny reálného času (RTC). * Podporované grafické režimy mimo standardního 256x192, podporují i rozšířené režimy na ZX EVO implementované v Baseconf (kompatibilní s ATM): 640x200 hardware multicolor 8x1, 320x200 s 16 barvami a 80x25 textový režim. Jak funguje multitasking na jednojádrovém Z80? Systém umí jak preemptivní multitasking, ale pouze pro programy nativně vyvinuté pro NedoOS, ty při spuštění vytvářejí zdání paralelního běhu a správce procesů mezi nimi přepíná každých 20 ms. Programy pro ZX Spectrum a TR-DOS jsou spouštěny v kooperativním multitaskingu, kdy přepínání úloh řídí uživatel: vyloláním NMI (stiskem PrintScreen) se program pozastaví a pomocí Pravý Shift + Enter se můžete přepnout do jiného procesu jak si popíšeme dále. ## Instalace Stáhněte si z http://nedoos.ru/ soubor release.zip a rozbalte ho do kořene SD karty. Systém nemá tradiční verzování, balík obsahuje denní build (v době psaní tohoto článku z 13. října 2025). Poznámka: Web a dokumentace jsou převážně v ruštině (azbuka ve zdrojích/textech v kódování CP866), ale tím se doufám nenecháte odradit. V kořenu SD karty (M:) se nachází adresáře `M:/bin`, `M:/doc`, `M:/download`, `M:/ini`, `M:/nedodemo` a `M:/nedogame` a soubor `sd_card.$C` (zavaděč systému). Systém se pak spustí z EVO Reset menu pomocí volby "5.SDCard Boot" a nebo výběrem `sd_card.$C` v prohlížeči souborů. Ještě před spuštěním nastavte frekvenci CPU na 14 MHz (na nižší frekvenci se boot zakousl, což se mi u předchozích verzí nestávalo). Systém nabootuje a provede příkazy v `M:/bin/autoexec.bat`, které nakonfigurují síť přes DHCP a spustí manažer souborů `nv.com` (NedoVigator). ██ ██ ████ ████ ██████ ████████ ██████ ████████████████████████ ████ ████████ ████ ██████ ████ ██████ ████████████████████████ ████████████████ ████████ ████ ████ ████████ ████████ ████████ ████████████ ████████████████ ████████████████ ████████████ ████████████████████ ████████████████████████ ## Uživatelská práce se systémem Základní příkazy se vkládají v promptu programu `cmd` a jsou podobné jako v CP/M, DOSu a Linuxu. Např.: `dir` a `ls` volá stejnou operaci jádra pro vylistování souborů, ovšem díky těmto aliasům se pak pravověrní dosaři nebo linuxáci budou méně překlepávat. Další příkazy jsou: del/rm, exit/quit, cd, copy/cp, rem, md/mkdir, ren/mv, mem/free, pros/ps, tee, drop, kill, date, start, copydir, type/cat, echo, pause, cls, uname. Zkuste v řádce `nv` vyvolat příkaz `ps` a krátce uvidíte vylistované procesy, jenže výpis se objeví jen na okamžik a odskroluje pryč. Systém na to pamatuje, takže je možné stisknout Levý Shift, čímž se výpis po dobu stisku klávesy pozastaví. To je celkem nepohodlné, takže lepší je vyvolat příkaz `term`, který spustí nový terminál. Mezi těmito terminály/procesy se pak přepínáte kombinací Pravý Shift + Enter. Zkusil jsem term pustit ještě třikrát, ale poslední proces jen zobrazil kurzor a vytuhl. Přepnutím Pravý shift + Enter najděte jiný terminál. Vylistujte procesy ps/proc, první sloupec je číslo procesu, druhý aktivita +/- a "g" značí grafický proces, třetí sloupec je počet paměťových stránek alokovaných procesem a poslední příkazová řádka procesu. Terminál který se nerozběhl ovšem figuruje v seznamu procesů a příkazem kill <číslo procesu> ho můžete ukončit. Ve výpisu ps si všimněte procesu s PID 1 `idle`, což je proces jádra, který běží jen když žádný jiný proces není aktivní. Tento proces jen čeká na stisk kombinace kláves c+m+d a tím se spustí nový `cmd.com` a odtud můžete zase zadat `term` nebo `nv`. NedoOS podporuje dávkové soubory s příponou `.bat` a u programů v adresáři `M:/bin` se nemusí uvádět celá cesta. Příkazy v baťáku se pouští sekvenčně, před spuštěním se vypíší na obrazovku a pomocí prefixu `start` se spustí na pozadí. Z vlastní zkušenosti doporučuji mít puštěné alespoň dva terminály, poněvadž některé operace mohou způsobit zakousnutí aktivního procesu a přepnutím a kill se z toho dostanete bez nutnosti rebootu. ## NedoVigace a spouštění programů NedoVigator (`nv.com`) je modrý dvoupanelový správce souborů, který má vzhled a ovládání podobné ostatním Commanderům. Spouštěcí soubory `*.com` a `*.c$` spustí rovnou a pro ostatní přípony má přiřazené programy, které je otevřou. Ty jsou definované v `M:/bin/nv.ext`, najdete zde, mimo jiné: * prohlížeč obrázků pro BMP (`scratch.com`); GIF, PNG, JPG, SVG (`browser.com`); 16c, SCR, FNT, IMG,... (`player.com`) * přehrávač AY a modů (`gp.com`) * přehrávač hudby pro MP3, WAV, OGG (`player.com`) pro General Sound kompatibilní karty * prohlížeč a editor textových souborů (`texted.com`) * pakovače (`tar.com`, `untr.com`, `pkunzip.com`, `unrar.com`) * spouštění TAP, SNA, Z80 (`nmisvc.com`) * mountování TRD, SCL obrazů (`dmm.com`) * emulátory platformy X86, VIC-20 a Elektronika BK Program `nmisvc.com` bez parametru přepne do BASIC režimu ZX Spectrum 48k nebo 128k (s možností vyvolat TR-DOS) a umožní nastavit takt CPU. Stiskem resetu F12 se vrátíte zpět do systému. Spuštěním s parametrem souboru typu snapshot se spustí ten. Program lze kdykoliv přerušit vyvoláním NMI (PrintScreen) odkud se dá uložit snapshot, screen, zobrazit videopaměť, změnit takt CPU nebo zadat POKE. Také z NMI menu je možné se stiskem RShift+Enter přepnout do dalších terminálů. Zajímavé je, že v dalším terminálu můžete opět spustit `nmisvc.com` a tím si uživatelsky přepínat mezi více programy ZX Spektra. Pomocí `dmm.com` je možné manipulovat s připojením TRD souborů a změnit jejich mapování na diskety (A:, B: atd.). NV pak volbou F1 umožní vybrat disk a odtud pracovat s jeho soubory. Jelikož NedoOS nemá implementovanou ochranu paměti a celý prostor všech 16kB stránek z 4 MB RAM je přístupný všem procesům, tak se občas stane, že nějaký program sáhne kam nemá a způsobí pád systému. V takovém restartuje F12 a z EVO Reset menu znovu nabootujte. ## Síťování Podpora síťování a připojení k síti přes Ethernetje je možná s kartou ZXNetUSB. NedoOS síťování podporuje a obsahuje řadu utilit, a v neposlední řadě HTTP prohlížeč webu i Gopheru. K běžným utilitám patří: `ping`, `time` (pro Network Time Protocol), `dmirc` (IRC klient), `dmftp` (FTP klient), `telnet` (`term` podporuje VT-100), `wizcfg` (nastavení sítě nebo DHCP), `wget`, `zxdb` (pro stahování programů ze https://zxinfo.dk/) a `updater` (pro aktualizaci NedoOS ze sítě, program stáhne asi 2MB ZIP a ten rozbalí do `M:/bin`, přičemž starý zazálohuje do M:/bin.old). K méně běžným patří síťové servery: `netterm` je telnet na TCP portu 2323 a `3ws` je jednoduchý webový server, který nasdílí obsah adresáře. Server `3ws` se spouští s parametrem `-p` pro port (výchozí 80) a `-w` pro nasdílení adresáře, např.: `3ws -p 8080 -w M:/bin`. ### HTTP: NedoBrowser, wget Webový prohlížeč NedoBrowser se spustí příkazem `browser.com [URL]`. URL může být adresa webu s `http://` (HTTPS je podporován přes proxy) nebo pro lokální soubory např. `file://M:/soubor.html` (v obou případech se specifikace protokolu nemusí uvádět). Textový browser je takový dosti osekaný lynx (známý z DOSu nebo Linuxu), s podporou ASCII a 8bit. kódování azbuky Windows-1251. Oproti lynxu ovšem umí zobrazit i obrázky (GIF, PNG, JPG, SVG). Dolní řádek obsahuje stavový řádek s URL, stavovým indikátorem načítání stránky. K navigaci na stránce slouží kurzorové klávesy, stránkový posun PgUp/PgDn a Home/End pro skok na začátek a konec stránky. Pro návrat zpět se používá Backspace. Ukončení prohlížeče provede klávesa Esc. Hypertextové odkazy se zobrazují modře v {složených závorkách} a aktivují se klávesou Enter. Obrázky se ukáží jako zelený text hranatých závorek [] a pokud tvůrce webu správně použil atribut alt text, zobrazí se i popis obrázku. Obrázek se pak načte a zobrazí po stisku Enter v režimu 320x200x16 barev, zmenšený s barevným ditheringem. Zpět se vrátíte pomocí Backspace. Příklad uživatelského sezení může vypadat následovně: 1. Spustím: `browser restore.zxm.com` 2. Načte se stránka tohoto magazínu (se zmršenou diakritikou), a místo stažení ZIPu, jej browser zobrazí jako novou stránku. Zapamatuji si tedy URL balíčku a 3. stiskem RShift+Enter přepnu do jiného terminálu a spustím `wget http://restore.zxm.com/trdos/restore04.trd.zip`. 4. Po stažení použiji `pkunzip` k rozbalení ZIPu, to trvá něco kolem minuty, ale to nevadí, protože se mezitím mohu vrátit do browseru a pokračovat čtením webu. 5. V NV pak stiskem Enter na `*.trd` systém spustí `nmisvc` menu a odtud mohu volbou `A:/boot` spustit magazín. Zde v článku o Logoutově zeleném sešitu najdeme výpisy BASICových programů, které nebohý editor magazínu zaznamenal ručně inkoustovým perem a škodolibě nutí čtenáře k jejich přepsání do počítače. 6. Vyvoláme tedy NMI, pozastavíme čtení RESTORE č. 4 a pomocí `nmisvc` spustíme BASIC ZX Spectrum v módu 128k. 7. Nyní musíme už jen zapojit mozkové závity a vlastní paměť a ručním přepínáním procesů pomocí NMI a RShift+Enter můžeme po blocích přepisovat programy z magazínu do BASICu a jejich následné spuštění. Kupodivu to v tomto případě funguje výtečně. Přepsaný program pak můžete uložit, přepněte se do TR-DOSu příkazem RANDOMIZE USR 15616 a SAVE "A:program" uloží BASIC (*.B) do ramdisku, skokem přes NMI do NV pak zvolte klávesou F1 disk A: a odtud jej můžete zkopírovat na SD kartu. Z TR-DOSu se příkazem RESTORE pak můžete vrátit zpět do BASICu. ### Gopher: NedoGopher, Moon Rabbit Příkaz gopher.com nebo moon.com spustí klienta stejnojmenného protokolu. Naštěstí se ihned načte lokální *.gph soubor s odkazy, takže ihned můžete začít pátrat, kde všude z nostalgických či jiných důvodů stále běží Gopher servery. Ovládá se kurzorem, ale skrolování jde po stránkách, linky jsou uvozeny žlutým paragraphem a aktivují se Enterem. Zpět se vrátíte Backspacem. Moon Rabbit má oproti NedoGopheru navíc podporu obrázků SCR, a pomocí gopherové brány do zxart.ee můžete přes Internet pokochat i pixel artem. Přiznám se, že jsem Gopher během svých začátků na internetu používal velice málo, takže až díky ZX EVO jsem mohl tomuto protokolu věnovat více času a prozkoumat servery jako i-logout.cz, vtrd.in (Virtual TR-DOS) nebo gopherpedia.com (Proxy Wikipedie). ## Emulace jiných platforem ## Reference