Jak zapnout FK-1 a co dělá, jaké je jeho softwarové vybavení.
.V manuálu se o tom sice píše jenom v poznámce, ale je důležité vědět, že jednoduchý diskový řadič FK-1 může po zapnutí dosahovat nebezpečných stavů, kdy se akktivuje zápis na disketu a vložený disk se tak může poškodit. Platí proto, že počítač se nikdy nezapíná s vloženou disketou, disketa se vkládá vždy až po zapnutí.
Stejný stav se může objevit při vypínání, takže i před vypnutím je nutné diskety z šachet vyjmout.
Mimochodem, do původních disketových jednotek se diskety vkládají samolepkou doprava, jednotka A je vlevo (označena jako “2”) a jednotka B je vpravo (označena jako “3”).
Disketové jednotky se točí celou dobu, po kterou je počítač zapnut, a nikdy během provozu nezastavují (pouze při otevření šachty).
Počítač se zapíná postupně jako všechny počítaačové sestavy: nejdříve periférie – monitor, disketovku, tiskárnu. Nakonec se zapne samotný počítač (vypínačem na PMD zdroji; disketovka má napájení samostatně). Pokud máte zásuvky (“psa”) s vypínačem, lze ceou sestavu zapínat i naráz vypínačem na zásuvkách.
Po úspěšném zapnutí a vložení diskety je nutné stisknout ještě RESET (který je umístěn v původní sestavě nešikovně vzadu na zadn ístěně skříně disketovky). Na FK-1 je zrádné to, že po zapnutí nic nedělá. Takže nepoznáte, zda funguje nebo ne.
Na monitoru nezobrazuje po zapnutí nic. Aktivita disketových jednotek se, pokud není vložena disketa, neobjevuje žádná.
Pokud vložíte bootovací disketu až po resetu, taky se nic nestane.
Takže – je nutné po zapnutí vložit disketu do mechaniky A (ta vlevo) a stisknout RESET.
Pokud při jeho stisku hlásí mechanika vloženou disketu, pak teprve začne počítač něco dělat – bootovat a zobrazovat nápis FK-1 (program pro jeho kreslení je na zaváděcí disketě, nikoliv v bootovací ROM).
Co mne na FK-1 zaujalo, je to, že ačkoliv práce s grafikou i textem probíhá v poměrně velké VideoRAM (16 kB) a textový mód je pouze emulován v grafice, výpisy i scroll celé obrazovky jsou velmi rychlé (jako kdyby šlo o skutečný textový mód). FK-1 je prostě velmi dobře naprogramováno šikovnými lidmi.
$$OBR393777$$
Jak víte z mých minulých příspěvků, na FK-1 lze provozovat CP/M 2.2 nebo 3.0. A z toho vyplývá i to, jaká bude velká část jeho softwarového vybavení.
Vedle programů již upravených pro práci s FK-1, by se daly upravit další programy určené pro CP/M (například Kermit, CBasic nemající chyby Microsoftího Basicu, CP/M Commander, …), případně hardwarově nezávislé a nenáročné programy prostě přetáhnout rovnou, a převod programů je, jak uvidíme, možný i z jiných platforem.
Kromě standardních CP/M programů, jako je COMPARE (k porovnávání souborů), CREF80 (křížová reference), DISKCOPY, FORMAT, WRITESYS (pro zápis systému na bootovací disketu), L80 (microsoftí linker), LIB, PLIB (knihovny), M80 (makroassembler), REFMIBM, MSID (microsoftí debugger) editorů ED a VD (řádkový a obrazovkový, oba jsou popsány v manuálu k FK-1) to jsou další programy pro CP/M.
Pro tisk soborů na tiskárnu slouží program PRINTER.
Moje zkušenost je taková, že slavný program POWER (jakýsi předchůdce Nortona) funguje na CP/M 2.2, ale nefunguje na CP/M 3.0. Na FK-1 to neplatí.
Jeho programy PWS a UFO (oba jsou v podstatě upravený POWER, PWS nese copyright Klíčanského státního statku, UFO je podepsán přímo panem Cestrem, autorem většiny softwarového vybavení FK-1). běhají i pod CP/M 3.0.
K programování se dále nabízí BASICA (microsoftí Basic – název byl takhle zvolen nejspíš proto,aby se nepletl případný MBASIC a MBASIC, tedy Mallard Basic a Microsoft Basic), BASCOM (což je kompilátor microsoftího Basicu), F80 (Fortran), a TURBO (proslulý Borlandí Turbo Pascal, upravený pro běh na FK-1).
Z uživatelských programů je dostupná DBASE (jde o dBASE II, verze pro FK-1 je odvozena z verze pro TNS, ale má odstarněnu závažnou chybu, která na TNS odstraněna nebyla, takže FK-1 verze funguje líp), CALC (což je spreadsheet, tabulkový editor pro CP/M, běhající, jako většina programů, v textovém módu) a WS (WordStar, mám dojem, že jde o generickou CP/M verzi a žádná zvláštní úprava pro FK-1 na něm páchána nebyla).
Kromě doprovodných instalačních programů (jak pro Word Star, tak pro Turbo Pascal či dBase) by se na disketě s dase měl nacházet i program ZIP, který ale není pakovací program, ale editor formulářových sestav.
Program TESTY slouží k výstupní kontrole počítače při výrobě.
Testuje všechno možné, procesor, RAM, VRAM, myš, disketovky.
Existoval jak v podobě programu pro CP/M, tak v podobě testovací EPROM.
Zajímavé je, že jako jeden z mála programů pracuje s obrazem taky trochu jinak, než jen v holém textovém módu – ale nadpis větším písmem a test VideoRAM jsou jediné grafické věci, které v něm najdete.
Doprovodný text k němu je tak zajímavý, že by se možná dal umístit jako samostatný článek.
Co by to bylo za počítač, kdyby pro něj neexistovaly nějaké hry?
Pro CP/M jich vzniklo dost a autoři programového vybavení si dali tu práci, že je na FK-1 převedli a počeštili (opravdu počeštili, vedle přítomnosti háčků a čárek je to navíc moc pěkná a čtivá čeština, žádný lámaný překlad).
KODIC (Kondiciogram) není ani tak hra, ale k zábavě stejně slouží. Dnes už lidi počítačové kondiciogramy tolik nežerou, ale dřív to bývala oblíbená a tak trochu i společenská “zábava” (viz “Jáchyme, hoď ho do stroje”).
Většina her je v textovém módu:
BOWLBEST (bowling, tedy v podstatě kuželky), LADDER (popuární CP/M hra, textová obdoba Lode Runnera), LOGIK, OTHELLO, PING, CHNAP (“Chňap”, jde nejspíš o původní českou hru z pera pana Cestra), STARTREK (což je naprostá klasika, která se objevila psaná v Basicu už na prvních osobních počítačích, na FK-1 jde o strojový program), HADICE.
Pak je tu naprostá a bohužel ojedinělá bomba:
Hra v grafice: KNIGHT.
Jde o izometrickou (pseudo 3D) chodičku Knight Lore, převedenou ze ZX Spectra.
S převodem hry si dal v roce 1991 hroznou práci jakýsi LM (už asi nezjistím, kdo to vlastně byl).
Při hraní je trochu problém s autorepeatem kláves, ale dá se to vydržet, FK-1 prostě není pro hry primárně určena. Ale vzhledem k tomu, že hra používá původní rozlišení ZX Spectra (zdvojnásobením velikosti pixelu), zůstává tak plné grafické rozlišení FK-1 (256 x 512) vlastně stále nevyužito.
A ještě o jednom grafickém programu bych se měl zmínit.
Jde o jednoduchý grafický editor, používaící myš, CARANI (“Čárání”).
Asi spíš jen na demonstraci možností myši.
Na obrazovce se objeví šipka, ale jestli kromě samotného čárání nabízí i další možnosti, jsem zatím kvůli absenci myši (k FK-1 se připojuje myš Tesla 3WP 16630) nemohl vyzkoušet.
O jiném programu pro FK-1, který by myš využíval, nevím.
$$OBR393778$$
Braní téhle věci na akce by mi hodně usnadnilo, kdyby se mi někde podařilo sehnat nejlépe dvojici disketových mechanik Consul 7115.
Disketovka 7113 totiž váží asi 50 kilo.
Sice bych mohl upravit 5.25" nebo 3.5" mechaniky místo původních osmiček, ale nechce se mi na jednom efkáčku používat jiný formát disket, než na druhém.
Opravdu super. Tohle vezmi na nejaky con. I se softwarem.
Jak jsem psal – FK se nejlépe shání jako deska bez disketovek, někteří sběratelé mají takových "zbytečných" desek i několik. Místo 8" mechanik 7113, které zabírají hodně místa a mají i další nectnostii (lámou se jim zarážky dvířek, pálí se jim vinutí motorů), lze upravit některé 3.5" nebo 5.25" mechaniky tak, aby byly kompatibilní s rozhraním Shugart (odkaz na návody je v článku s popisem portů FK-1).
Zajímavé je, že FK-1 neměl ani jednotný kovový obal – už jsem se setkal s dvěma variantami, každá řešená úplně jinak s jinými a jinak tvarovanými plechy, jedna se sokly, druhá bez soklů. Povrchová úprava byla ale u obou stejná.
Deska počítače se během výroby zřejmě výrazně neměnila, ale krabice určitě ano.
Počítače TNS jsou v nálezovém stavu málokdy funkční a je potřeba je opravovat a oživovat. Navíc jak osmibitový TNS-DOS, tak TNS-CP/M využívají zvláštností implementace a jak systém, tak zhusta i aplikace přistupují přímo na velmi specifický hardware (třeba sofistikovaný přerušovací systém), takže jinde než na TNS strojích nechodí (ale jinak má TNS-DOS pěkně propracovanou obsluhu počítačové sítě se sdílením disků – bohužel opět pouze pro TNS).
Co se týče CP/M, jako nejspolehlivější z východního bloku se jeví Robotrony, které jsou dělané velmi precizně a odolně (navíc s 5.25" mechanikami a možností přenosu dat do formátu MS DOSu). Jinak lze doporučit CP/M stroje od Amstradu, které jsou celkem snadno a levně sehnatelné a poruchovost mají malou (Amstrad PCW, alias Joyce), navíc mají zabudovaný monitor (netradiční 3" disketovky lze s použitím jen minimálních úprav kabelu a konektoru nahradit standardní 3.5" mechanikou).
No kdo nevěří, ať tam běží.
Z dokumentace jasně vyplývá, že v době tvorby FK-1 se uvažovalo o tom, že další verze počítače, FK-2, bude mít místo diskového řadiče zdrátovaného z dvou 8255 a jedné 8253 skutečný disketový řadič, dokonce je znám i typ, Intel 8272 A.
Což by pochopitelně znamenalo odlišnou softwarovou obsluhu řadiče a tedy i jiný BIOS pro CP/M.
Tak jsem zkontroloval, že mám všechny CPM 3 nainstalovány s diakritikou na klávesnicia obrazovku a s angličtinou na tiskárnu. Všechno stejná verze.
A volba češtiny je ve WRITESYSu.
Disketa s CPM 2.2, kteru jsem dnes přinesldomů, mi přečíst nešla (špatný sektor během bootu), ale instalační soubory CPM2.SYS mám na všech disketách se systémem vedle CPM3.SYS.
Jinak autorem "technického popisu" FK-1 není protentokrát Libovický, ale jiný velikán – Eda Smutný.
Že by byl autorem hardware on?
Na schématech jsem žádné čitelné jméno nenašel (snad jen něco, co by šlo přečíst jako "Pánková" nebo tak).
Já měl dojem, že ve WRITESYSu si člověk vybírá, jestli chce nainstalovat češtinu pro obrazovku a pro tiskárnu. Ale třeba si to blbě pamatuju. Doma na to pak kouknu.
Můžeš se podívat na disketách jestli jsou všechny verze na různých disketách stejné?
Já tu mám verzi bez diakritiky, ale samotný CPM3.SYS obsahuje komplet font přilepený za CCP+BDOS, nejen české+slovenské znaky ale i komplet všechny rámečky, čtverečky, část řecké abecedy a některé další speciální znaky.
Akorát BIOS u 41 (ne u všech překvapivě) československých znaků odstraní diakritiku a ty ostatní znaky s kódy nad 7Fh do FFh natvrdo nahradí mezerou (jak pro obrazovu, tak pro tiskárnu). Vypnout nazhrazování pro tiskárnu je triviální záležitost, pro obrazovku si nejsem až tak jistý (může to souviset s klávesnicí), spíš existovala speciální verze která to umožňovala rovnou.
No to už je mimo dokumentaci, kterou mám. Na to už je potřeba rozpitvat BIOS.
Ale musím říct,že mne ten počítač čím dál víc udivuje. Tady je vidět, že ho navrhoval někdo,kdo sakra dobře věděl, co dělá a co bude potřebovat, i jak to vyřešit.
Prostě, není to Ondra, kde hlavním cílem bylo postavit počítač co nejjednodušší a nejlevnější, z nejdostupnějších součástek v počtu co nejbližším nule, kde se pak na scroll obrazu nedá ani koukat.
Tady někdo moc dobře věděl, že potřebuje vyřešit rychlý textový mód, který nebude scrollovat jeden řádek dva roky, přitom se nechtěl vzdát možností grafiky,a do toho mohutný systém přerušení, kde počítač nemusí řešit tiskárnu, sériák, myš, nějaké časovací rutiny, vše se samo přihlásí o svoje obsloužení…
Asi přišel moc pozdě, vypadá to, že výroba začala tak někdy na jaře nebo v létě 1989, většina copyrightů v softwaru je z roku 1990 a 1991… a tou dobou už začala písíčka vyskakovat jak čertíci z krabiček.
takže CP/M 3 resp. system3.sys umí mimo SCP-VS a SCP ještě další systém řídících kódů, zapíná se 1B, 4D, 32 nebo 1B, 4D, 33 (dělají to samé)…
Jo máme.
Jsou v "Příručce k počítači", na straně 18, 19 a 20. Do článku se mi tolik textu nechtělo opisovat :o)
Taky proto, že zobrazování na FK-1 se asi od Robotronu liší, například název kódu BLINK, který na Robotronu asi značí blikání, je na FK-1 implementován jako podtržení plnou čarou.
Na Foreveru bych měl dostat scanner, takže by pak brzy mohla být příručka (i "Technický popis", který si budu vyzvedávat v pátek) na netu ke stažení.
Opíšu sem aspoň řídící kódy, které jsou shodné pro oba módy (SCP i SCP-VS):
F7 – DEL – výmaz znaku vlevo od kurzoru
1B 5E 40 – NORMAL – normální znaky
1B 5E 41 – LOW – podtrhávat tečkovaně
1B 5E 42 – BLINK – podrtžení plnou čarou
1B 5E 43 – LOW-BLINK – podtržení čárkovaně
1B 5E 60 – LINK – podtržení plnou čarou
1B 4D 30 – SCP-VS – zapnutí módu terminálu SCP
1B 4D 31 – 31SCP – zapnutí módu termináluSCP-VS
1B y, x – SET_X_Y – nastavení kurzoru na zadanou souřadnici, při adresaci kurzoru je třeba k souřadnicím Y a X připočítávat offset 20H nebo 80H.
Řádek: 0..18 + offset = 20..38 nebo 80..98
sloupec: 0..4F + offset = 20..6F nebo 80..CF
nemáte někdo náhodou popis řídících kódů pro zobrazování "SCP-kompatiblní"? nebo přímo těch co jsou u FK-1/Robotron? Já jsem zatím našel nějakej obecnej popis od robotronu kde jsou základní kódy (00-1C,7F a 82-87 vše hexa), potřeboval bych popis 1B,xx,xx,xx řekl bych že toho FK umí trošku víc …
Mrchosoft Basic nezná CLS a má problém i s povelem WAIT 30 (ale manuál už jsem našel a stáhl).
Udělal jsem tohle:
10 LET a=inp(97)
20 for i=1 to 255
30 out 97,i
40 for b=1 to 255: next b
50 next i
60 end
Výsledkem je plynulý scroll obrazovky, co vyjede nahoře, objeví se dole.
Jediný, kdo to trochu narušuje, je softwarově pod přerušením generovaný blikající kurzor, který, když odscrolluje, se maže pouze na původním místě, takže za sebou při scrollu táhne bordel.
Ale jinak – pěkné je to :o)
safra sežralo to u out a inp dolar61 jako hex hodnotu
A co udělá takovýhle program?
10 cls
15 let a=inp $61
20 print & 23,40;"Ahoj"
30 for i = 1 to 255 : out $61,i:wait 30: next i
40 out $61,a
50 end
slyntaxi asi třeba přiohnout dané verzi Basic (nemám teď u sebe možnost vyzkoušet)
Ha!
Pomocí OUTu v Basicu jsem (asi proto, že si systém uschovává poslední stav ROL_REGISTER a při přechodu na další řádek ho zase obnoví a zvýší o správnou hodnotu) dosáhl jen pomrvení posledního vkládaného řádku (posun o nenásobek deseti), celý obraz se ale nijak výrazně neposunul a scrolloval po odeslání řádku s OUTem v podstatě správně (tedy s výjimkou toho jednoho ujetého řádku).
Nedalo mi to a u fotbalu jsem se kouknul na část rutin spojených se zobrazováním u CP/M 3.0 (c) RCE – do BIOSu (na disketě označováno jako system3.sys). Výsledkem je, (moje hypotéza) že FK-1 aktivně využívá možnosti HW rolowat obrazovku. Grafické rozlišení máme 512×256. Talže pro 80 znaků na řádek potřebných pro CP/M nám vychází že font bude mít jen 6 budů na šířku, výška řádku byla zvolena asi podle nějakého z terminálů s kterými je FK-1 kompatibilní na 10 mikrořádků. Zajímavé je i rozvržení VRAM, souřadnice 0,0 (x,y) je vlevo nahoře a této pozici odpovídá ve VRAM adresa 4000h. Nižší bajt adresy nám přímo udává mikrosloupec, čili = y*10, no a vyšší bajt spodních 5 bitů (rozsah 0-63) je adresa x'. Jak jistě tušíte, je tu malý zádrhel 64 není 80 znaků na řádek, ale 64×8 nám dá 512 bodů na řádek. Čili potřebuje X'=x*6/8 no a ze zbytku po dělení pak určíme o kolik odrotovat znak doprava.
HW scroll nám však značně zjednoduší a hlavně neskutečně zrychlí posun obrazovky nahoru (dolů by šel taky ale takovou rutinu jsem nikde nenašel). Prostě a jednoduše se načte obsah rolovacího registru, vymaže se 10 mikrořádků na této pozici a zvýší se obsah rolovacího registru o 10. Kde je úspora? místo abych posunoval 15744 bajtů a 640 jich nuloval (poslední řádek) tak jen první řádek smažu (640 bajtů) a zobrazuju až od druhého (čím se první stane posledním). Velmi elegantní a geniálně jednoduché řešení. Z kterého ovšem vylývá ještě jedna informace, a to že zobrazovací jednotka vždy zobrazuje 256 mikrořádků, ale začíná tím na který je nastavený ROLL registr (t.j. cyklicky když dojde na konec VRAM pokračuje od začátku).
Proto je zobrazování a posun obrazovky opravdu velmi svižný ! Jen pro představu, IQ 151 má při použití modulu Grafik to samé rozlišení, ale díky podivuhodnému připojení videoram ne jako stránku ale přes 8255+3212 na porty, tak zde trvá smazání obrazovky či její posun neuvěřitelné skoro 3 vteřiny !!!!
Nevím přesně jaké další ještě ale to co je v FK-1 se používala i k IQ-151. Dále mám pak ještě nějakou 8" jakoby samostatnou k vložení do "něčeho".
HW scroll jsem myslel ROLL Registr na portu 61. Out na tento port říká od kterého řádku VRAM zobrazovat, akorát nemám přesnou informaci (a nevyzkouším prakticky) jestli jede cyklicky nebo prostě zobrazí do 255-tého řádku a šlus.
Tak o HW scrollu jsem ještě nic nenašel. Ale uvidíme, až dostanu další dokumentaci.
Myslel jsem, že to, co vím, by stačilo na napsání emulátoru nebo konstrukcikompatibilního stroje, ale zdá se, že asi ne. Zatím.
Mimochodem, Klíčanští používali disketové jednotky Consul 7113. Nevím, jestli jsem to někam napsal…
Jaké disketovky ještě vůbec Zbrojovka vyráběla?
Výhoda u FK-1 je že má HW scroll, takže není potřeba žádných velkých přesunů v paměti pro posuny…
Nevím proč ale mám takový pocit že to 3.0 je vlastně jen číslo které zvolil p. Cestr při jeho vylepšení CP/M. Verze co mám (nepodporuje češtinu ani na obrazovku ani klávesnici ani na tiskárnu) se hlásí jako 2.2 u příkazu VER a mimo standardních 6 příkazů má ještě dalších 5 navíc. Proto je tu asi ta kompatibilita…
U FK1 je zajímavé to, že v systémových stopách na disketě je uložen pouze BIOS s vlastníma rutinama pro disketový řadič fontem a vším ostatním. Vlastní CP/M se natahuje až pak po spuštění BIOSu a vypsání loga FK-1 ze souboru (CPM2.SYS nebo CPM3.SYS podle toho jaký BIOS je na disketě v systémových stopách), který je normálně v adresáři diskety vidět a tudíž ho nedoporučuju mazat 😉
Hezký článek. Mohl bych jen požádat o ten “doprovodná text” k testovacímu programu/EPROM, docela by mě to zajímalo. Hledal jsem všude možně, testovací EPROM jsem našel i disketu s programem, ale o “návod” jsem nikde nezavadil.
Díky
Petr
Doprovodný text není k testovací EPROM, ale k programu TESTY.COM.Oprava – špatně si to pamatuju, jeden soubor je návod k programu TESTY.COM, druhý jsou vlastně komentáře vytažené ze zdrojáku testovací EPROM.