Plan 80 A

Jak byl do této stavebnice 8 bitového počítače portován diskový operační systém CP/M v 2.2
Přesněji Mikros původně určený pro PMD 85-3. Dvě diskové mechaniky emuluje program v PC, které je přes interface připojeno pomocí RS232.


První počítač Plan 80A jsem koupil jako student druhého ročníku střední školy. Koupil jsem jej jako stavebnici koncem 80 let v Brně na dnešní Masarykově třídě v obchodě s elektrosoučástkami. Mám k němu kompletní dokumentaci, krabici a dokonce i účtenku. Počítač jsem sestavil dle návodu a je dodnes funkční. Později někdy kolem roku 96 jsem kdesi sehnal ještě jednu stavebnici a opět jí sestavil do funkční podoby.

Oba počítače jsou dodnes funkční.

První je vložen do PC skříně s nahoru vyvedenou klávesnicí. Ten měl původní 4KB ram rozšířené na 12 KB z klasických čipů 2114 poskládaných na 3 patra na sebe. Protože se čipy hodně hřály, byl v krabici nad nimi umístěný ventilátor. Nakonec byly všechny paměti vyházeny a v roce 2013 počítač upravený na 64KB Ram ze dvou stat. pamětí 62256.

Video 3 ... Plan 1 s 64 kB RAM - výpis ram + rolování

Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A 

Druhý počítač není ve skříni, ale je pouze připevněný na dřevěné desce spolu s klávesnicí. Tento byl dlouhá léta ponechaný v původní konfiguraci se 4 kB RAM, ale koncem roku 2012, tedy po 16 letech jsem paměť doplnil o statickou RAM 32 kB, takže nyní má celkem 36 KB paměti.

Video 1 ... Plan 2 s 36 kb RAM - úvodní představení počítače
Video 2 ... Plan 2 s 36 kb RAM - konec výpisu paměti

Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A 

Oba počítače mají zapojené pouze dodávané paměti Prom. Jedná se o 3 kusy pamětí. První obsahuje znakovou sadu a je umístěna v levé dolní části desky, kde jsou obvody pro generování obrazu. Další dvě jsou vlevo nahoře a jedna obsahuje základní monitor (dnes bychom možná řekli bios) a druhá pak programy pro ovládání magnetofonu.

Magnetofon ale k počítačům nemám a už nejsou k nalezení ani původní moduly s ovládací elektronikou. Proto byla nakonec promka s ovladačem magnetofonu z počítače se 64 KB RAM vyhozena a tak je v něm použitelných 62 KB. Z toho 2KB zabírá videoram, takže pro programování je použitelných 60KB (plus kousky nezobrazované videoram).

Bohužel ke stavebnicím nebyly dodávané paměti s basicem (zde Tiny Basic). Takže programovat je možné pouze ve strojovém kódu procesoru 8080 a to je ještě nutné znát číselné vyjádření instrukcí, protože monitor neobsahuje překladač assembleru.

Obejít se to dá psaním programu na PC, což je i mnohem pohodlnější. Nejen díky možnosti psaní instrukcí textově, možnosti ladění atd., ale také klávesnice PC je mnohem pohodlnější. Originál klávesnice počítače Plan 80 A není příliš ergonomická.

Počítač mám k PC propojený speciální třídrátovou datovou linkou na obvod 8255A a nahrávací program skládající se z 56 bytů zapisuji po zapnutí ručně. Ručně z příručky jsem si také opsal kód tinybasicu, posunul ho na adresy začínající adresou 7000 a takto ho nahrávám do Planu s 36 KB ram, kde na posledních 4KB je videopaměť a něco volného místa. TinyBasic mám upravený tak, že místo rutin LOAD a SAVE na obsluhu magnetofonu jsou tyto rutiny přepsány právě pro komunikaci po 3 drátové lince s PC. Takže po natažení tinybasicu už je možné jeho programy vytvořené v basicu nahrávat z PC a ukládat je do něj.

Program pro Plan 80A, pomocí kterého se stahuje tinybasic z PC: Na straně PC musí být speciální ovládací SW Zvejk8.exe a do ISA sběrnice zapojena deska s čipem 8255:


4007  3E 91       LD    A,91
4009  D3 0B       OUT   (0B),A            Ridici slovo na 8255
400B  21 00 70    LD    HL,7000           Adresa pocatku nahravani
400E  16 01       LD    D,01
4010  AF          XOR   A
4011  D3 0A       OUT   (0A),A            Synchronizace
4013  DB 0A       IN    A,(0A)            Prijem bitu a handshake
4015  47          LD    B,A
4016  E6 02       AND   02
4018  CA 13 40    JP    Z,4013            Platny bit?
401B  3E 10       LD    A,10
401D  D3 0A       OUT   (0A),A            Vyslani handshake
401F  DB 0A       IN    A,(0A)            Synchronizace
4021  E6 02       AND   02
4023  C2 1F 40    JP    NZ,401F           Cekani na konec vysilani bitu
4026  78          LD    A,B
4027  1F          RRA
4028  7A          LD    A,D
4029  17          RLA   
402A  57          LD    D,A         Bit vlozen do bytu
402B  D2 10 40    JP    NC,4010           Prijem dalsiho bitu
402E  72          LD    (HL),D            Ulozeni bytu do pameti
402F  23          INC   HL          
4030  7C          LD    A,H
4031  FE 7F       CP    7F
4033  C2 0E 40    JP    NZ,400E           Prijem dalsiho bytu
4036  7D          LD    A,L
4037  FE 99       CP    099
4039  C2 0E 40    JP    NZ,400E           Prijem dalsiho bytu
403C  C3 E4 F8    JP    0F8E4       Ukonceni prijmu, navrat do OS.
 
PLAN 80A Load - nahrání Tyny Basicu od adresy 7000h do 7F99h
=============                            Full handshake
Delka:      56 bytu           (30 instrukci)
Hardware: pouziva 1/2 brany PC jako vstup dat        - pin PC0
                  1/2 brany PC jako vstup handshake  - pin PC1
                  1/2 brany PC jako vystup handshake - pin PC4
Software:   uklada se od adresy 7000H do adresy 7F99H.
Rychlost:   1 kB za sekundu, doba prenosu je 4 sekundy.
 
Pred spustenim doporuceno O B Enter 91 Enter O A Enter FF Enter, 
pak v PC start programu "Zvejk8.exe tynybas7.bin" 
a v Planu G 4007 Enter

Dále je výpis programu tinybasicu, který provádí číselné řazení 35 náhodně zvolených čísel v rozsahu 1 až 999. Je použita metoda bublesort a program kromě samotného algoritmu obsahuje i grafické zobrazení v buňkách včetně prohlížení posunů čísel, takže průběh funkce je názorně proveden:

 

1 REM *** BUBLE SORT - TRIDENI CISEL VZESTUPNE ***
2 POKE -30664,45
3 POKE -30665,30
4 CLS
5 A=RND(0)
10 N=35
12 GOSUB 2000
14 Z=0
16 W=0
20 FOR J=1 TO N 
30 A=RND(1000)+1
40 @(J)=A
55 GOSUB 3000
60 NEXT J
62 CURS 0,29
64 PRINT "PRUCHOD: ",
66 CURS 20,29
68 PRINT "PRESKOK: ",
70 FOR K=1 TO N-1
90 FOR J=1 TO N-K
110 IF @(J)>@(J+1) GOSUB 1000
120 W=W+1
140 NEXT J
150 NEXT K
230 BEEP 3
240 CURS 0,29
250 PRINT "HOTOVO ",#3,Z," PRUCHODU ",
252 T=W-Z
256 PRINT "A ",#3,T," PRESKOKU,
260 CURS 0,30
270 PRINT "CELKEM ",#3,W," NOVY BEH ZA:",
280 FOR I=1 TO 500
290 A=500-I
300 CURS 23,30
310 PRINT #4,A,"   ",
315 NEXT I
320 CLS
330 GOTO 10
900 END
1000 T=@(J)
1010 @(J)=@(J+1)
1020 @(J+1)=T
1090 FOR L=J TO J+1
1100 R=(L-1)/5
1110 S=((L-1)*9)-(R*45)+4
1120 Y=(R*4)+1
1130 CURS S,Y
1140 PRINT #3,@(L),
1150 NEXT L
1200 Z=Z+1
1210 CURS 9,29
1220 PRINT #3,Z,
1230 CURS 29,29
1240 T=W-Z
1250 PRINT #3,T,
1300 RETURN
2000 CLS
2010 FOR J=1 TO N
2020 R=(J-1)/5
2030 S=((J-1)*9)-(R*45)
2040 Y=R*4
2050 CURS S,Y
2060 PRINT"--------",
2070 CURS S,Y+1
2080 PRINT"|",*1,#2,J,*0,":   |",
2090 CURS S,Y+2
2100 PRINT"--------",
2110 NEXT J
2120 RETURN
3000 R=(J-1)/5
3010 S=((J-1)*9)-(R*45)+4
3020 Y=(R*4)+1
3030 CURS S,Y
3040 PRINT #3,@(J),
3050 RETURN

Video z průběhu programu je ZDE

Pro Plan 80A byl údajně dle informací v dodané příručce k dispozici i diskový operační systém CP/M a možná i MP/M. Zřejmě nějaký port z v té době rozšířených počítačů PMD 85 nebo IQ 151. Bohužel najít k tomuto nějaké podrobné informace se mě nepodařilo. Ani informace o tom, s jakou disketovou mechanikou mělo CP/M fungovat.

Rád bych jej vyzkoušel alespoň na PMD 85, kde by na verzi 2 měl snad fungovat Mikros 32K. Místo disketové mechaniky se používá modul s SD kartou označený PMD 32 SD. Viz nějaké podrobnosti zde: http://pmd85.borik.net/wiki/PMD_32-SD

Oba počítače by si určitě zasloužily estetičtější provedení kabeláže, umístění do case atd. Jen kdyby na to byl čas.
V plánu je také vytvořit interface, přes který by se k počítači Plan 80A připojila PCčková klávesnice. Tento interface by skýtal i možnost automatického sebe-programování PLANu. Jednoduše simulací mačkání kláves by interface "vyťukal" program, který by například načetl z PC sériovou linkou.


Aktualizace 3.1.2014

Tak a došlo alespoň na částečnou realizaci interface klávesnice. Funguje ale trochu jinak. Po sériovém portu načte písmeno a simuluje jeho zmáčknutí originální klávesnicí Planu. Interface se skládá z procesoru Atmel 89S51 (samozřejmě 8 bitového) a sériového převodníku MAX232. Atmel je napojen paralelně na vedení konektoru klávesnice a to tak, že brána PB planu, ze které se používá 5 vodičů pro výběr řádků, je napojena na bránu P3 v x51. Na bránu P1 atmelu je napojena druhá část klávesnice, která se používá ke čtení sloupců, v Planu je přivedena na obvod MHB 3212 a je použito všech 8 bitů (8 vodičů). Z konektoru klávesnice je interface také napájen.
Ač se na první pohled zdála funkce klávesnice jasná - prostě se postupně posílají nuly na jednotlivé vodiče brány PB (řádky klávesnice) a sleduje se, na kterém sloupci se nula ukáže (zmáčknuta klávesa mezi tímto řádkem a sloupcem), nebylo vůbec jednoduché klávesnici obvodem x51 emulovat. Myšlenka, že budu sledovat výběr řádků a vzápětí podstrčím vhodný sloupec nebyla až tak jednoduše realizovatelná. Plan totiž udělá Out na PB a hned další In instrukcí bez prodlevy čte sloupce. Atmel to nestíhal tak rychle ani s 22MHz krystalem. Nakonec je postup takový, že se čeká na aktivaci řádku, který je ještě před požadovanym, a poté se hned nuluje sloupec pro následující řádek na kterém je požadovaná klávesa. Prostě Atmel musí být o krok napřed, aby se vše stihlo. Pěkně zamotaná je kombinace zmáčknutí více kláves, kdy se musí předcházet dvě klávesy. Např. při psaní čísel musí být zmáčnuto tlačítko 0-9 a k němu ještě klávesa se samotnou číslicí. Navíc někdy je klávesa 0-9 testovaná jako první, protože je na nižším řádku a někdy až jako druhá, když je na řádku vyšším než klávesa čísla. No a třeba čísla 4 a 8 jsou na stejném řádku, takže tam se sledují dva sloupce současně. Stejně je to i u znaků jako +-*=/!@#$%^&*():,. atd. Nakonec má program v x51 zhruba 2kb.
No a interface se napojí k PC na sériový port, takže psát lze např. tak, že se v PC spustí emulátor terminálu, nastaví se na sériový port s 4800bps,8,N,1 a už je možné vzdáleně psát. Atmel odchytává sériové přijaté byty, konverzní tabulkou je převede na volání procedury simulace zmáčknutí požadované klávesy.

Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A 

A přišlo i na to "samo-programování". V turbopascalu jsem udělal jednoduchý program, který simuluje zmáčknutí klávesy S, vyťukání adresy a poté načte binární soubor z disku PC a pošle jej znak po znaku (1 byte jsou 2 znaky (v hexa)) do sériového portu s náležitými prodlevami kolem 200ms po každém znaku. Atmel v interface byty načítá a simuluje mačkání požadovaných kláves. Podařilo se mě touto metodou přenést do planu 4kB binární soubor s TinyBasicem. Trvalo to sice 22 minut, než se těchto 4096 bytů přeneslo, což obnášelo vlastně zmáčknutí 8 200 kláves a šílený piskot sluchátkového reproduktoru planu, ale vše proběhlo bez chyby a basic bez problému naběhl a funguje. Viz několik fotek výše.
Interface s 89S51 a Max232 je na fotkách ten žlutý tišťák vlevo nad klávesnicí. Červená ledka problikne při vysílání klávesy. Bílý kabel vedoucí z interface doleva vede do sériového portu PC.
Podklady se zapojením, programem do atmelu, binárkou TinyBasicu (od adr. 7000h) a programem pro PC, který binárku z PC přenese jsou zde. Plan musí mít 36kb RAM nebo více.


Malý progrmámek v TP na PC nasimuluje naprogramování jednoduché terminálové konzoly ve strojáku Planu, spustí ji a pak posílá načtený textový soubor a zobrazuje jej na monitoru Planu (následující 3 fotky) a toto Video

Plan 80 A Plan 80 A Plan 80 A 
Posílání zdrojáčku konzoly je na prostřední fotce a jednoduše se čeká na vstup znaku z klávesnice, ten se pak přehodí z A do C a zobrazí. Vstup a zobrazení pomocí rutinek monitoru v prom. Přepis do asm:

0100 CALL FE7A         ; cte znak z klavesnice - rutina CI
0103 LD C,A            ; znak do C
0104 CALL FA21         ; vystup znaku na obrazovku - rutina CO
0107 JP 0100           ; a tak porad dokola


Aktualizace 8.1.2014 - emulace CP/M (Mikrosu)

Myšlenka přenést na Plan 80 A operační systém CP/M se možná začíná pomalu stávat skutečností.
Původní záměr použít Mikros upravený pro 32Kb PMD se dlouho nedařil. Navíc Plan zatím nemá žádnou emulaci disketovky. Dva pokusy dostat do něj Mikros 32K upravený pro PMD 85-2 a PMD 32 SD nebyly úspěšné. Podařilo se ale najít pro PMD systémovou disketu s původním Mikrosem 48K z VUVT Žilina a přeložit tento čistý Mikros ( pomocí submit gener.sub , movos 32 * , sysgen) pro PMD s 32KB RAM. Po nabootování v emulátoru PMD se udělal obraz paměti a vykousaly se 3 sekce pro CCP (6600h - 6DFFh), BDOS (6E00h - 7BFFh) a BIOS (7C00h - 7FFFh).
V Biosu bylo třeba upravit volání conzolových rutin ConST, ConIN a ConOUT na rutiny v monitoru Planu. Dále všechny rutiny BIOSu pro práci s diskem zatím jen nahradit instrukcí RET. Až bude dořešeno napojení na PC s emulací disketovky, upraví se adresy na platné rutinky.
Dále Bios při bootu zapisuje na nešťastnou adresu 0005h skok na tabulku s vektory rutin BDOSu. Tato adresa koliduje s monitorem planu, který na 0004h a 0005h ukládá vrch uživatelem použitelné paměti RAM. Nad ním je videoram. Když se obsah adresy 0005h přepíše kódem C3 (skok na BDOS), Plan se sekne. Je tedy nutné upravit celý Mikros tak, aby svůj skok na vektor měl až na adrese 0006h. Toto je celkem zásadní problém pro používání jakýchkoli programu pro CP/M z jiných počítačů pro Plan. Vždy bude nutné v programech upravit všechna volání BDOSu z 0005h na 0006h. Adresu pro vektor BDOSu zapisuje BIOS při inicializaci, takže se musí upravit i tato část BIOSu, což ale není problém.
BDOS sám žádné změny nepotřebuje. CCP ale ano a to právě úpravy volání BDOSu. To se ale také bez problému povedlo. Jenže po přenesení celého takto upraveného Mikrosu (CCP, BDOS, BIOS, což trvá klávesovým emulátorem asi 40 minut) se CCP nedá spustit. Respektive skokem na adresu 6600h Plan vytuhne, respektive přepíše celou Ram. Důvodem je to, že CCP pracuje s disketovkou a ta zatím není emulovaná. Problém ale může být možná i to, že CCP bylo získáno kopii paměti běžícího Mikrosu na PMD, takže možná nejsou správně nastavené nějaké proměnné a podobně.

Nicméně CCP nepotřebujeme, pokud chceme do Planu natáhnout nějaký uživatelský program. Ten se načte (opět emulátorem klávesnice) od adresy 0100h a ke své činnosti potřebuje pouze BDOS a BIOS. Pokud uživatelský program nepracuje s diskem, měl by fungovat i na Planu s takto ořezaným Mikrosem.
Pro tento test byl použit program pbasic.com, což je Proces Basic z VUVT z roku 81. Celý název je "VUVT - MVS Proces Basic V1.4" a byl na disketě s původním Mikrosem 48K. Jak je vidět z fotografií níže a videa ještě o trochu dál, vše se úspěšně podařilo hned napoprvé a Basic naběhl a dal se používat. Tím je tedy ověřeno, že jádro Mikrosu z PMD je po menších úpravách schopné fungování na Planu 80 A i když zatím není připojená žádná disketová jednotka.

Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A Plan 80 A 
Programy pro PC, které pomocí výše uvedeného klávesového emulátoru s x51 natáhnou do Planu Mikros a ProcesBasic jsou zazipované Z D E.
Plan musí mít 36kb RAM nebo více.
Nejprve se spustí program 1_cpm_do_planu.exe, který natáhne mikros ze souboru CPM.bin. V tomto souboru je sice i CCP, které není potřebné, ale pro úplnost tam zůstalo. Celá akce trvá přes 30 minut.
Poté se spustí soubor 2_pbas_do_planu.exe, který natáhne upravený Proces Basic ze souboru plan_bas.com. Proces Basic má asi 14 Kb, což je 2x více než Mikros a tak jeho natažení trvá přes hodinu.
Po natažení se předepíše příkaz monitoru G0100, takže stačí zmáčknout Enter a pokud vše proběhlo správně, Basic se slavnostně spustí.
Po spuštění chce zadat šířku obrazu - počet znaků (sloupců). Při testování bylo použito číslo 30 a vše fungovalo, ale mělo být zadáno 46 (48). Řídí se tím příkaz Print, List atd. Pozor, při psaní čísel a znaků jako +,-/* atd. se znak zobrazí až po druhé klávese - nesrovnalost mezi BDOSem a rutinkou CSTS v monitoru Planu.
Dále chce Basic zadat velikost paměri RAM. Z opatrnosti zadání 30000 tedy necelých 30kB a opět vše fungovalo.
Poté již Basic naběhne a je možné v něm programovat. Samozřejmě nesmí se použít příkazy pro práci s diskem či tiskárnou. Ale běžné příkazy fungují a tak je ověřeno, že BDOS z Mikrosu 32K pro PMD je použitelný i na Planu 80 A.

Zde je k dispozici video z úplně prvního a hned úspěšného pokusu o spuštění Proces Basicu na Planu 80 A s Mikrosem z PMDčka - Video


Aktualizace 9.1.2014 - Mikros, prvni pokusy

Podařil se další drobný pokrok s přenosem Mikrosu 32K do Planu. Už funguje jak BDOS, tak i CPP. Zatím není dodělaná simulace disketovky, takže po nahrátí mikrosu a skoku do BIOSu se zobrazí jen logo mikrosu, předá se řízení do CPP a to vypíše chybu o šatném sektoru. No samozřejmě, žádná disketovka zatím neexistuje.

Při těchto úpravách se přišlo ještě na to, že původní Mikros zapisuje na adresu 0004h číslo aktivní mechaniky. Adresa opět koliduje s monitorem Planu a jeho informací o velikosti uživatelské RAM pod VideoRam. Tedy podobný problém jako adresa 0005h. Proto bylo nutné BIOS i CCP upravit tak, aby používali adresu 0009h. BDOS opět žádnou úpravu nepotřeboval a je stále stejný s BDOSem z PMD.

Plan 80 A Plan 80 A 

Upravený mikros do této podoby je ke stažení zde i s programem pro PC, který jej do RAM planu natáhne KBD emulátorem s X51. Pak už stačí v monitoru dát G 7C00 . Samozřejmě funguje pouze na PLANu s 36KB Ram či více.


Povedlo se taká nahrát z webu náhodně vybranou hru Othelo pro CP/M. Funguje bez problému na Planu s Mikrosem 32k. Samozřejmě po úpravě volání BDOSu na adresu 0006, na což byl vytvořen speciální prográmek v Pascalu, který projde zdrojový .com soubor a všechna volání Call 0005h přepíše na Call 0006h (tedy hledá výskyt trojice bytů CDh 05h 00h a upraví je).
Pokud se v průběhu hry zmáčkne CTRL-C, hra se ukončí a předá řízení kupodivu do monitoru Planu. Odtud je jí možné opět spustit přes G 0100 , takže BDOS, BIOS i kód samotné hry zůstanou neporušeny.

Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo 

KBD emulátorem se hra přenášela do Planu 2 zhruba hodiny a předtím se ještě musel přenést i Mikros. Hra má 22 kB a z jejího prvního spuštění je zde i Video.
Po několika dalších minutách bylo i jasné, jak se hra hraje. Jak je ale vidět z posledních dvou fotek, má hra trochu problém s určením vítěze a zobrazila i trochu paznaků :-)


Aktualizace 10.1.2014 - Mikros 58k

Pokud má mít další vývoj práce na Mikrosu pro Plan 80 A nějaký smysl, je třeba použít v počítači více paměti. Proto byl i tento Plan upraven na 64kB RAM. Použitelných je 60kB, nad nimi je 2kB Monitor z Promky. Paměť od 60 do 62 kB je použita jako videoram. Proto byl znovu portován celý Mikros tak, že ze zdrojů VUVT Žilina byl přeložen pro paměť 58kB. Poté byly opět provedeny všechny úpravy adres, rutin a tabulek. Nad Mikrosem je od 58kB do 60kB volné místo 2kB, které může být využito pro ovladače emulace disketové jednotky. Mikros byl upraven tak, aby na adresu E803h ukládal 1 bytové číslo vybrané disketové jednotky (0=A, 1=B), na E805h ukládá 2byty s číslem požadované stopy (LoHi), na E807h je 2b s číslem sektoru a na E809h je opět 2b DMA adresa paměti pro operace čtení a zápisu. Rutina pro čtení má vektor skoku na E637h a zápis na E63Ah. Zatím ale obě jen nulují registr A a vrací řízené zpět (Ret).

Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo 

Mikros po nahrání do Planu s 64kB RAM naběhl bez problémů a díky úpravám rutin pro práci s diskem nepsal žádnou chybu při startu.
Dá se přepínat mezi disky A: a B:
Rutiny jsou nachystané pro emulaci disketovky přes x51. Ten byl napojen svou bránou P2 na bránu PC Planu a nyní je třeba napsat obslužný SW jak pro Plan, tak pro x51, aby data přeposílal sériově do PC a tam bude program, který je převede na práci se souborem .p32.
Z prvního spuštění Mikrosu 58k je zde Video.


Aktualizace 13.1.2014 - Mikros 58k kompletní včetně podpory 2 disket.

Podařilo se kompletně dokončit port CP/M v2.2 pro Plan 80 A a to včetně emulace dvou disketových mechanik simulovaných pomocí PC připojeného přes interface na sériový port PC (RS232).

CP/M je výše uvedený Mikros v2.2 portovaný z PMD 85-3 s náležitě upraveným Biosem atd. Interface pro komunikaci s PC a emulaci disketových mechanik je zajištěn obvodem Atmel 89s51 opět viz výše. Napojení na klávesnici a bránu PC obvodu 8255 v PLANu.

Emulace disketových mechanik zatím není nejrychlejší. Vlastně je hodně pomalá. Rychlost přenosu je jen 60 bytů za vteřinu. Je to sice asi 30x rychlejší než emulací klávesnice, ale na zrychlení je prostor jak v sériové komunikaci mezi PC a interfacem (nyní 4800 baudů), tak zejména v přenosu z interface do Planu, kde je možné zrychlit ne velkou úpravou komunikačního protokolu na dvojnásobek. Zákaz podrobného výpisu přenášených dat na monitoru PC rovněž umožní zrychlení a dál je možné jít i cestou použití buferů.

Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo 

Veškeré potřebné programy a to včetně zdrojových kódů, návody a další podpůrné soubory jsou k dispozici ZDE.
V balíku je jak dokumentace pro zapojení komunikačního interface napojení na sériový port PC, program do 89s51, popis doplnění RAM na 64kB, binárka i zdrojový kód mikrosu, biosu, programu do PC zajišťujícícho natažení mikrosu do Planu a následně emulaci disketových mechanik, program pro úpravu .com souborů z jiného CP/M tak aby fungovaly na Planu 80A, dva soubory obrazů disket (disk A a disk B) přičemž v A: jsou programy spustitelné pod tímto Mikrosem (v B je obraz systémového disku mikrosu a programů pro PMD) atd. atd. Zde je nahrané jedno Video


Aktualizace 14.1.2014 - Mikros 58k a 4x urychlení diskových operací.

Pomocí zvýšení přenosové rychlosti sériové linky na 57600bps bylo dosaženo trojnásobného zrychlení diskových operací.
První část zavedení Mikrosu, která je sestavena ze zavedení emulací klávesnice loaderu Mikrosu a části BIOSu je stále stejně pomalá a trvá 2 minuty. Další část zavedení samotnémo mikrosu (6210 bytů) je již ale výrazně rychlejší a místo původní 1:40 minut trvá 29 vteřin. Tedy přenosová rychlost diskových operací stoupla z původních 60 bytů za sekundu na 240 bytů za sekundu. Stejně urychleny byly všechny další diskové operace prováděné již samotným Mikrosem.
Bylo také aplikováno výše uvedné urychlení přenosu mezi interfacem a obvodem 8255 v Planu, ale toto nemá až tak významný vliv. Přesto již zůstalo zahrnuto v aktuální verzi programu. Na straně PC byly zkráceny některé čekací smyčky.
Dále byla opravena chyba týkající se zápisových operací Mikrosu na disky.

Balík souborů Mikrosu obsahující tyto změny je ZDE

Urychlení je zaznamenané na tomto Videu


Aktualizace 15.1.2014 - Mikros 58k a plná kompatibilita s CP/M.

Podařilo se obejít nevýhodu systémového monitoru Planu 80A, který používá adresy 0004 a 0005 k uložení velikosti uživatelské paměti. Tato paměť koliduje s Mikrosem, který jí používá pro vektor volání BDOSu a číslo posledně použíté diskové jednotky.
Toto se podařilo vyřešit úpravou BIOSu tak, že před voláním konzolových rutin (pro výstup na obrazovku a vstup z klávesnice) vrátí BIOS na tyto adresy monitorem požadované údaje. Jakmile je konzolová operace monitorem provedena, tak BIOS před předáním řízení zpět do Mikrosu změní obsah této paměti zpět na údaje požadované Mikrosem nebo pod ním spuštěným programem.

Toto maskování umožňuje jednak použití úplně standardních modulů BDOS i CCP bez nutnosti jakékoli změny jejich programového kódu. Ale hlavně umožní běh zcela libovolného programu určeného pro CP/M. Není tedy již nutné používat výše uvedený překladový program a fungují i programy, které se předtím běhu na Planu 80A bránily. Jako např. Microsoft Basic nebo hra Zork.

Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo 

Samozřejmě je zde omezení v tom, že plnohodnotné CP/M předpokládá 80 znaků na řádek, ale Plan má pouze 48 znaků. Je to ale stejné omezení, které platí i pro Mikros na PMD 85.
Celý Mikros se nyní načte z PC do Planu během minuty a 10 vteřin. Byla také odstraněna chyba čtení disku, takže je již možné plnohodnotně používat celou kapacitu dvou 360kB disků.

Aktuální data rychlosti diskových operací v bytech za vteřinu:
Čtení z disku: 240 Zápis na disk: 900 Boot Mikrosu: 280

Kompletně nový balík aktuálních souborů Mikrosu obsahující tyto změny je ZDE

Celý proces zavedení Mikrosu z PC, práce s disky a několika programy je na tomto Videu


Aktualizace 17.1.2014 - Bylo úspěšně ověřeno několik čistě CP/M programů na funkčnost.

Například hry Zork 1,2,3 i hra Enchante fungují. Některé z nich nejeli ani na PMD 85-3 ale na Planu fungují. Je to zřejmě diky tomu, že jim Plan s Mikrosem 58k může nabídnout o 10 kB více paměti.
Trochu problém je s tím, že originální konzolová rutina ConOut v monitoru Planu používaná Biosem pro výstup na obrazovku neumí zpracovávat Esc sekvence. Takže všechny přijaté znaky pouze zobrazí, místo aby ty v Esc sekvencích použila pro speciální pohyb kurzoru atd. Proto je například na fotografiích níže z her Zork 2,3 a Enchante inverzní stavový řádek prostě součástí vypisovaného textu místo toho, aby byl speciálně umístěn.
Byly také testované další programy, jako je například dBase 2, DataStar, StarWrite, WordStar, WordMaster atd. Jak je vidět s fotek, mají rovněž neuspořádané zobrazení jednak díky Esc sekvencím, ale také díky tomu, že počítají s 80 znaky na řádek a Plan nabízí jen 48 znaků. Tím dochází k přelévání textu a rozhodí se jeho správné zarovnání.

Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo Plan 80 A plus Mikros 32k plus Othelo 

Určitě by nebyl zásadní problém udělat vlastní rutinu zobrazování, která by Esc sekvence správně zpracovala. Ale k tomu zřejmě nedojde, protože programy počítají i s 80 znaky na řádek a to už je větší problém. Bez toho stejně nemá zpracování Esc sekvencí většího smyslu, protože i tak by byl vzhled programů rozhozený.


Co by bylo dobré ještě udělat dál:
1. Zásadně zvednout rychlost komunikace s PC při čtení z disku. Alespoň 10x
2. Bylo by dobré dát loader Mikrosu do epromky a upravit boot přímo z diskety.
3. Výše uvedené také umožní zrušit emulaci klávesnice.
4. Napojit PC klávesnici - program do 89s51 pro komunikaci s ní je již hotový.
5. Upravit BIOS pro více disket, třeba i všech 16.
6. Upravit tabulky např. pro disketu C: nebo i další na plnou kapacitu 8MB.
7. Napojení tiskárny z PC pro tisk z Mikrosu na PLANu
8. Na PC předělat rutiny zápisu. Nyní se zapis provede až při dalším požadavku na čtení
9. Program pro PC chce vůbec zásadně předělat - třeba volby souborů s obrazy disků atd.
10. Dát tomuto webu nějaký rozumný vzhled.
11. Samotný PLAN by si také zasloužil výrazně estetičtější provedení. Ale bylo by to ku prospěchu?
12. Udělat interface s 89s51 i pro druhý Plan 80A
13. Místo PC používat jako počítač emulující disketovky Raspberry Pi.
14. Taky by vlastně bylo možné simulovat síťové disky a dostat tak dva PLANy 80 A do společné sítě.
15. Přes RasPi udělat z Planu 80 A webový server (jen text) a připojit jej do internetu. TCP/IP bude obsluhovat RasPi. Požadavky na stránku uloží Planu do souboru v jeho obrazu disku. Plan požadavek načte z tohoto souboru, zpracuje jej a odpoví druhým souborem, který RasPi pošle jako webovou stránku. Tak se z počítače Plan 80 A s procesorem 8080 a 64kB RAM stane patrně nejpomalejší a nejnestabilnější webový server na světě :-)

99. A nakonec to nejzásadnější - odpovědět manželce na otázku "K čemu to vlastně všechno je?"

A ještě by se toho našlo spousta.

Taky je třeba poděkovat RM-Teamu ( pmd85.borik.net ) za perfektní stránky plné SW pro PMD, z nichž bylo hodně čerpáno. Dále autoru webu NostalComp.cz za inspiraci k 8bitům vůbec. Také autoru webu hnilica.cz/radek za mnoho informací o struktuře CP/M a dalším, kteří stále udržují na webu informace a SW nejen CP/M včetně Mikrosu, ale k osmibitovým počítačům vůbec.


PMD 85-2:
Video


E-mail: petr.polacek@quick.cz