Ja sa s CP/M hrám na kite Z80-MBC2, nie je to emulátor je tam originálny Z80. Aj keď ako “interface” medzi CPU, RAM a I/O funguje PIC mikrokontrolér (rádovo výkonnejší ako CPU). Má 128 kB RAM a disk je emulovanŷ na microSd. Jeden Talian to dodáva ako stavebnicu, postaviť sa to dá za hodinku. Existuje aj kit s 68000, ale pre CP/M86 nie je toľko SW.
Drobná oprava: Nie je tam PIC, ale ATMEGA32. PIC je na tej 68000 doske, lebo potrebuje TTL úrovne a ATMEGA má CMOS (Z80 je aj CMOS, kým 68000 existuje len ako NMOS s TTL logikou). A samozrejme, tam je CP/M 68k. Mimochodom existuje aj doska, kde je Nec V20HL - uPD70108H schopný fungovať ako 8080 aj 8088 a tam ide CP/M-80, CP/M-86 a MS-DOS v2.11. Tú ešte namám, ale svrbia ma prsty nad košíkom v obchode. :-)
Jirku Lamače si pamatuji, myslím, že se angažoval i v adaptaci CP/M na Sharp MZ-800, na kterém jsem ji svého času provozoval já a který měl tu velkou výhodu, že měl grafický režim 640×200, takže 80 znaků na řádek bez kompromisů. Moc dlouho to ale nebylo, protože v té době už jsem měl Atari ST, na které p. Lamač také přešel.
Pro ZX Spectrum taky máme vektorová (resp. z úseček složená) písma pana Hersheyho https://cygnus.speccy.cz/popis_hpgl-driver.php ... pro plotr ideální. Výzva pro CP/Mkáře?
Problém Didaktiku byl znakový generátor 40 znaků na řádek, takže se pro CP/M nedal použít, tam se předpokládalo 80. Viděl jsem fonty jen 3px široké, kupodivu to bylo čitelné. Chtěl jsem tam CP/M kvůli disketové jednotce, bohužel jsem to už nerozchodil. Ale na jiném stroji v práci jsem CP/M měl a dokonce jsem to uměl na systémové úrovni, no ono těch funkcí bylo jen pár. Pamatuju si ještě, že číslo služby se dávalo do jednoho registru, parametry do dalších a vyvolávalo se to skokem na adresu 2. MS DOS to podstatně rozšířil a do toho jsem už nepronikl. Ale co se dalo udělat na 64 kB paměti, mě pořád fascinuje.
Didaktik, stejně jako Spectrum mělo ještě méně - 32 znaků na řádek - znak je v matici 8x8 bodů. Několik her jelo v režimu 42 znaků na řádek, což bylo ještě docela čitelné (6x8). Pro CP/M by to bylo ale málo. Co jsem zažil, tak všechny zdejší implementace používaly tzv mikroprint - což zmiňujete - znaky jsou v matici 4x8 bodů (3pix). Kromě CP/M to používaly i některé editory. Dalo se to používat, a co vím, tak se to používalo.
Na rozdíl od MS DOSu v CP/M 2 neexistoval žádný standard pro zobrazení - bylo jen API pro poslání znaku na terminál, CRT nebo tiskárnu. V podstatě tam není ani možnost jak získat informaci o velikosti terminálu (což je pak v pozdější verzi CP/M 3, která se tu, co vím, téměř nepoužívala). Dost osobních počítačů z 80 let podporovalo 64 znaků na řádek. Kvalitnější terminály, které měly 80 znaků na řádek (vt100, vt200, ...) byly profi zařízení s pekelnou cenou. Je docela možné, že v druhé polovině 80 let už jejich cena brutálně klesla, a daly se získat lacino z druhé ruky.
Teď, když jsem se trochu vrátil v čase, tak mi došlo, jak tehdy brutální význam, měla optimalizace na délku kódu nebo redukce mrtvého kódu. Ty aplikace jsou z dnešního pohledu jednodušší, ale rozhodně nejsou primitivní - dokumentace k ws nebo TurboPascalu mají 200-300 stran textu.
40 znaků na řádek je pitomost.
Předně ZX Spectrum nemělo generátor znaků. Mělo pouze grafický režim 256x192px kde se znaky kreslily do čtverců 8x8px. Na to existuje podprogram v Sinclair ROM.
Jakékoli jiné textové rozlišení se musí udělat vlastním programem a existují programy pro psaní znak třeba 5px, nebo 6px širokých, nebo taky psaní proporcionálním písmem. Nebo to, čemu se říká mikroprint do 8x4px.
Mikroprint do 8x4px je vlastně z nestandardních variant nejjednodušší, protože používá půlky bytů a nemusí provádět bitové posuny / rotace z předlohy a podle X ové souřadnice.
Zjednodušeně, pro CP/M v podstatě přicházelo v úvahu jen těch 64 znaků na řádek (256 / 4) a standardních 24 řádků (192 / 8).
... a k rozchození CP/M disketovka nestačí, je třeba i úprava paměti - pro CP/M musí být RAM v oblasti 0x0000 až 0x7fff - tj. možnost odstránkovat ROM i video paměť.
Přesněji si pamatuji režimu
42 znaků - 5+1 sloupců => 42,7
51 znaků - 4 +1 sloupců => 51,2
64 znaků - 3 + 1 sloupců => 64,0
Teoreticky šlo snadno udělat 36 znaků na řádek, protože písmena měla 2 pixely mezeru, a když se jí člověk vzdal, měl 6+1 => 36,6
Režimy 42 a 51 se ještě dobře četly. 64 zn už byla šílenost.
5 + 1 mezera nema "problem" ani se znaky jako "m". Tento font pouzivala na ZX treba slavna hra The Hobbit (1982).
bez zoomu: https://winterdrake.com/wp-content/uploads/2011/03/hobbit1.png
4 + 1 mezera na znak uz vypada jako pismo bez kompromisu.
zoom 2x: https://codeberg.org/DW0RKiN/M4_FORTH/raw/branch/master/Game/khammurapi.png
kapitalky 4+1:
zoom 2x: https://codeberg.org/DW0RKiN/3D-Dungeon/raw/branch/master/screen.png
3 + 1 mezera... na to si musi clovek uz zvyknout. A pak se to da. Vyhoda, ze atributy nedeli znak, je jasna...
Tech 40 znaku je jen kvuli tomu, ze ZX Spectrum byl asi ignorovan (i kolizni umisteni ROM) a zvolil se rezim pro 320 pixelu.
[popíchnutí] Já si myslím, že pevná šířka vyšla z módy a že nejlepší se samozřejmě jedině a pouze písmo proporcionální... tedy alespoň pro textové hry, když už jsme naťukli The Hobbit.
https://spectrumcomputing.co.uk/list?inc_xrt=0&quick=s&text=belegost
https://spectrumcomputing.co.uk/entry/2305/ZX-Spectrum/Heroes_92
Maximální hereze je používat 4px (3+1) široké znaky v Desktopu místo proporcionálního písma.
https://cygnus.speccy.cz/obrazky/deskjet/screenshot_desktop1.png
z článku https://cygnus.speccy.cz/popis_printer-deskjet1.php
3+1 mezera mnohem víc záleží na kvalitě monitoru, ale dneska, když máme i u některých dobových počítačů dobastlené VGA výstupy (Faudraj, GBS-8220, ZX-VGA-JOY...), nebo prostě RGB na SCART. Nebo když máme video výstup na HDMI (MB03+, eLeMeNt ZX, ZXS Next...), tak je to použitelnější. (ok, Next lépe funguje s VGA než HDMI, ale jde o to, že se nemusíme omezovat na modulovaný TV signál, nebo kompozitní video)
Já myslím, že na dobrém monitoru je čitelnost pořád přijatelná, tzn. má to smysl pokud na ZX Spectrum chceme zobrazit tak moc písmenek, viz D-Text
http://wiki.oldcomp.cz/index.php?title=Verze_textov%C3%A9ho_editoru_D-Text
Další možnost taky je posílat text přes RS232 na terminál s vyšším rozlišením :) I to by se dalo pro CP/M běžící na ZXS použít. A v takovém případě by i hardwarová úprava pro dosažení RAM v celém prostoru 0x0000 až 0xffff byla mnohem snazší.
Tak předně, CP/M na ZX Spectrum provozoval opravdu málokdo, takže ani česky, ani jinak se ve WordStaru na ZXS moc často nepsalo. Proto nejspíš byl minimální zájem nedostatky softwaru opravdu řešit.
Z mé zkušenosti se v 80. letech k psaní používalo ledasco, do příchodu Desktopu asi nejvíc odvozeniny textového editoru D-Text (původně Spectral Writer), R-Text a D-Writter (původně The Writer). Možná i Tasword (nemám zkušenost) I v nich byla čeština dobastlená ne zcela dokonale.
K provozu CP/M byla potřeba jednak úprava samotného počítače, rozšíření RAM na nejméně 64kB s možností odstránkovat VRAM a ROM a pak nějaký diskový systém (třeba upravený Betadisk). A ta úprava byla pro většinu populace málo lákavá a pro hraní her zcela zbytečná až konfliktní, narozdíl od přidání AY, nebo jen samotného diskového systému (ať už to byl kterýkoli).
To byl důvod, proč jsem se osobně se CP/M setkal na kdečem jiném, ale na samotném ZX Spectru vlastně vůbec i když mi roky ležel v šuplíku Dataputer Diskface i se CP/M disketou k němu, nebo několik Betadisků.
Ad kvalita plošných spojů v Didaktiku Gama - ano, jsou chatrné, ale z 99% záleží na způsobu a kvalitě provedených zásahů, na kvalitě pájky (dobrá slitina s nízkou teplotou tavení) i páječky (na dobré regulaci teploty) a tavidla, pár DG80k model 87 a 88 jsem taky opravoval. Je to náročnější udělat správně, než na kvalitnějších deskách, ale jde to.
Zmíněné nízké rozlišení a pouze 64 malých znaků na řádek byl asi největší blocker. Na barevné TV nepoužitelné, lepší byl CRT monochrom monitor, na nich i písmenka 8x4px vypadaly docela čitelně. Kvůli tomu se CP/M příliš neujala ani po příchodu Amstradů +2A, +2B a +3, kde podpora CP/M byla.
... doufal jsem, že se teda po přečtení článku dozvím, jak to opravdu bylo, resp. jestli byl WordStart pro ZX Spectrum s podporou češtiny nalezen a jak znaky kódoval, ale nakonec nic?
Mám tedy článek chápat jako rovzláčně napsanou otázku bez odpovědi? Sám odpověď neznám a zajímala by mě.
WS s podporou češtiny byl nalezen - je to i v článku. Dokonce dvě varianty - jedna je opatchovaný WS 3.3 a druhý je rebrandovaný WS 3.4 s nativní podporou 8 bitů. Nebavil jsem se s nikým, kdo by slušovckou verzi ws (wordset) používal - nicméně asi je k dispozici archiv software, který byl k dispozici pro TNS. Psal jsem si s panem Lamačem - bohužel přišel o svůj archiv kódů pro 8bity. Zmiňoval, že úpravu ws prováděl s panem Taimrem, a že to bylo docela náročné - pravděpodobně větší hack, ale patch už k dispozici není. Tento ws byl posléze distribuován Tomášem Macourkem. Kódování používali KOI8ČS - stejné kódování používá Lamačova CP/M pro ZX Spectrum i pro Sharp. Existuje i teoretická třetí varianta - pro WS 4 je dostupný relativně krátký patch, s kterým je možné zadávat 8bit znaky.
Co jsem tak načetl ze zdrojů dostupných na internetu, tak upravených ZX Specter nebo Didaktiků pro provoz CP/M mohly být nižší stovky v (ČSSR), a neupravených několik desítek tisíc (takže jde o relativně malé číslo). Úprava ZX Spectra nebo Didaktiku byla trochu nouzové řešení - a někdy v 85 nebo 86 to nevypadalo, že komunisti to v 89 zabalí - takže úprava paměti dávala smysl. Ještě v 89 nebo 90 roce byly ceny PC astronomické. Ale pak už šly ceny PC rychle dolů, a 8bity byly definitivně mrtvé.
Já jsem tomuhle tématu věnoval docela dost času, a moc jsem toho nezjistil. Informací na netu je relativně málo, těch kvalitních a detailních, a pamětníků už také moc není. A to se v tehdejší ČSSR vyráběly asi tři nebo čtyři různé compy, kde běžela CP/Mka. Já tak trochu doufám, že si článek přečte nějaký pamětník nebo pan Taimr nebo pan Macourek, a ozve se mi.
Stejná situace jako s ws byla mimochodem u DBase II.
Vida, nečetl jsem pozorně.
Fakt je, že já víc fandím softwaru psanému na míru ZX Spectrum, který z platformy dokáže vyždímat maximum, než univerzálnímu operačnímu systému schopnému běžet na mnoha strojích s 8080 a Z80, který nutně musí kvůli přenositelnosti udělat víc kompromisů. CP/M má z mého pohledu větší smysl na "průmyslových strojích", jako třeba Sapi, FK-1, Vzlet 256, Robotron 1715... ale je fajn, že eLeMeNt ZX to hodně usnadňuje i pro nás Sinclairisty. Taky to na svém eLeMeNtu budu muset zkusit :) Dosud jsem víc pracoval se CP/M jen na tom Robotronu a to už je dávno (a na PMD 85 pokud lze spouštění her Mikrosem říkat práce se CP/M :))
To co píšete mi dává smysl.
Ale já tohle vnímám z pohledu klučiny, kterým jsem tehdy byl. Doma jsem měl Didaktika, a něco jsem si přečetl o počítačích v Elektronice nebo VTMku a po 89 v Chipu a Bajtu. Chtěl jsem dělat s počítačem, ale vlastně vůbec ničemu jsem nerozuměl a nic jsem neznal. Doma jsem hrál hry, a kopíroval kazety. Na střední jsme měli první PC a s fyzikářem, který měl učit informatiku, jsme se učili jak se instalují aplikace v DOSu. Na ZX Spectru se hráli hry, a určitě tam byly i kvalitní aplikace, ale na CP/M byl Turbo Pascal nebo DBase nebo Supercalc. Ne, že bych to nějak používal - vyjma Turbo Pascalu, v kterém jsem napsal pár seminárek, ale mělo to auru opravdové technologie. Podobně jako když se někdo z DOSu poprvé setkal s Unixem, nebo když jsem poprvé mohl použít ftp, a brouzdat po archivech v Japonsku, přičemž stále cena minuty mezinárodního hovoru byla rámcově jako moje měsíční kapesné. Možná, kdybych byl o pár let starší, už by tam v tom, to kouzlo pro mne nebylo.
Jasně, z tohoto pohledu jsem to tehdy nevnímal, možná proto, že jsem koncem 80 let ještě chodil na ZŠ a ZXS pro mě bylo víc hračka než pracovní nástroj.
Na druhou stranu, když se na situaci se CP/M dívám dnes, tak je klidně možné, že právě obtížnost zprovoznění CP/M na ZX Spectru navzdory všem omezením silně přispěla k tomu, že to tehdy zúčastnění pánové pojali jako tu správnou výzvu, která je dosažitelná, ale zároveň velká frajeřina, když se podaří.
V mnoha případech právě tohle byla a pořád je ta nejlepší motivace (např. u mnoha her konvertovaných z mnohem schopnějších počítačů o demech ani nemluvě).
Doba byla tak zoufalá, že na složitě přeprodaném ZX Spectru (soukromý dovoz ze západního Německa, prodáno do Bazaru, n.p. Klenoty, a okamžitě fabrikou odkoupeno) jsme vytvořili řízení souřadnicové vrtačky, ta byla vlastní konstrukce. Bylo to v těch osmdesátkách jednodušší než získat "průmyslový" počítač.
Tehdy se říkalo: "Voják se stará, voják má". Třeba tehdy se v podniku kde jsem od školy pracoval vyráběly docela zajímavé věci:
http://www.ebastlirna.cz/modules/Forums/files/mvs_132.jpg
http://www.ebastlirna.cz/modules/Forums/files/mms_420.jpg
Nevím jak těžké bylo si to koupit, cena nebyla zrovna lidová, jak jsem se doslechl.
Před několika lety jsem vlezl sem
https://www.muzeumpolicie.cz/
byl tam vystavený nějaký obráběcí stroj řízený MVS810 (tedy vlastní počítač tam nebyl vidět, akorát disketová mechanika, tiskárna Consul, snad i displej CM7202).
CP/M, to byly doby. Mel jsem CP/M na Sharpu. Pouzival jsem 2 editory - WordMaster pro psani programu a WordStar pro psani dokumentu. Oba editory fungovaly s cestinou, konkretne kodovani bylo KOI8-CS. Sharp mel vyhodu, ze umel 80 znaku na radek, a mel 24 nebo 25 radku (to si ted uz honem nevzpominam). Videl jsem i CP/M na Spectru, ale to skutecne nestalo za to. 64 otresnych znaku na radek a klavesnice, ktera nemela CTRL.
Problém s CP/M na Spectru je, že CP/M potřebuje od adresy 0 RAM a Spectrum tam má ROM. ZX Spectrum +2A/+3 jde přepnout do all-RAM módu pro podporu CP/M (a +3 má navíc disketovou mechaniku). Ale i u Spectra 48K lze technicky nahradit ROM na adresách 0-0x3fff pomocí rozšiřujícího modlulu. Nikdy jsem ale neslyšel, že by to někdo dělal. Kromě toho na CP/M je dobré ještě mít disketovou mechaniku.
Dnes např. https://shop.elementhw.com/mb03plus/
Mám pocit, že modifikace ZX Spectra pro CP/M byla nejspíš lokální záležitost. Na západě měli k dispozici lepší hw - určitě sharp 800 - v Rusku zase klony.