ZVT SMEP PP-01 color

Celý název počítače vidíte v titulku. Je načase dozvědět se o něm něco víc.

.O PP-01 je k dispozici jen málo informací. Aspoň na internetu. Přitom to byl pozoruhodný kousek.

Pokud se nepletu, byl vyvinut ve Výzkumném ústavu výpočetní techniky na Slovensku.
Možná je to jen pomluva, ale slyšel jsem historku z údajné návštěvy Ing. Eduarda Smutného v tomto ústavu, která se nejspíš týkala právě PP-01.
Přijel do ústavu, moderní budova, plná stovek pobíhajících inženýrů a docentů v bílých pláštích, na nástěnkách informace o bohaté publikační činnosti a úspěších. I když malé počítače nebyly ve středu tehdejších strategických zájmů, Smutný se o ně zajímal velmi, a tak mu ukázalo PP-01. To se mu líbilo, obdivoval některá technická řešení, a tak se na nějaký detail zeptal: “Kdo vymyslel tohle?” “I to prý Fero”. “A kdo vymyslel tohleto?” “Nu to taky Fero”. “A támhleto?” “Fero”. “A kdo napsal software?” “Fero, kdo jiný?” Z čehož mělo vyplývat ponaučení, že jakýsi osamocený tajemný Fero postavil počítač a ti všichni ostatní o tom nejspíš psali disertační práce.

ZVT SMEP PP-01 color

PP-01 nebyl první počítač řady SMEP, jak se občas na internetu uvádí.
SMEP (systém malých elektronických počítačů) vznikl jako doplněk nebo protipól systému JSEP (jednotný systém elektronických počítačů), kterými se RVHP snažila zajistit kompatibilitu svých počítčů. Řada JSEP (rusky EC, jedinnaja sistěma) byly v podstatě počítače IBM 360/370.
SMEP byly klony menších počítačů Hewlett-Packard a DEC PDP-11, později i VAX, při přechodu na PC s procesoory x86 byly i tyto zařazeny do řady SMEP.
Kromě toho patřil do řady SEP 2 i počítačový systém SM 50/40,postavený jako stavebnice na deskách, založený na procesoru 8080. K němu se potom při vývoji PP-01 přihlíželo a na PP-01 je to znát.

Pro styk s vnějším světem je PP osazeno osmi konektory:
K1 – pro magnetofon (nemá zapojené dálkové ovládání)
K2 – sběrnice I41
K3 – uživatelský konektor (paralelní brána)
K4 – IMS-2 (HP-IB), využitelný i jako paralelní brána (podobně jako u PMD-85)
K5 – anténní výstup na televizor, černobílý
K6 – V24 (pokud jde o sedmidutinku, je osazena i proudová smyčka IRPS, na pětidutince chybí)
K7 – výstup na RGB monitor, v barvách
K8 – konektor pro ROM modul 8 nebo 16 kB

Počítač je sice osazen 64 kB RAM a 16 kB ROM, je ale schopen adresovat celkem 1 MB.
Paměťový prostor má počítač rozdělen na 4 kB bloky, kterých je celkem 16. Každému 4 kB bloku z 64 kB přímo adresovatelného prostoru (0xxxh-Fxxxh) může přiřadit 4 kB blok z celkového adresového prostoru 1 MB (00xxxh-FFxxxh).
Provádí se tak OUTem na adresy E0-EF (nebo zrcadlené F0-FF), stav přiřazení paměti lze i číst, ale bohužel inverzně. Pořadí portů i segmentů je sekvenční vzestupné. OUTnutá osmibitová hodnota představuje bity aderesy A12-A19.
Po zapnutí toto přiřazení není aktivní, přes pullup odpory je připojen 4 kB segment od FFxxxh, takže adresa FF000h se čte jako první (a ROMka si sama zajistí organizaci paměti pro použití Basicu G). Změny přistránkování paměti se projeví hned po OUTu.
Při běhu Basicu jsou přiřazeny tyto segmenty (od E0 do EF):
E0xxxh, E1xxxh, E2xxxh, E3xxxh, E4xxxh, E5xxxh (vnitřní RAM), ECxxxh, EDxxxh (další část vnitřní RAM), E8xxxh, E9xxxh (další část vnitřní RAM), EAxxxh, EBxxxh (VRAM “G”), FCxxxh, FDxxxh, FExxxh, FFxxxh (BASIC ROM).
Fyzická podoba 1 MB adresovatelného rozsahu je takováto:
FFxxxh
FExxxh
FDxxxh
FCxxxh

ROM (BASIC)
____________________
FBxxxh
FAxxxh
F9xxxh
F8xxxh

externí ROM modul (v konektoru 8)
_____________________________________
F7xxxh

..
F0xxxh

vyvedeno na sběrnici I41
____________________________
EFxxxh
EExxxh

videoRAM “B”
____________________________
EDxxxh
ECxxxh
část vnitřní RAM
_____________________
EBxxxh
EAxxxh

videoRAM “G”
_____________________
E9xxxh
E8xxxh
část vnitřní RAM
_____________________
E7xxxh
E6xxxh

videoRAM “R”
_____________________
E5xxxh
E4xxxh
E3xxxh
E2xxxh
E1xxxh
E0xxxh
část vnitřní RAM
_____________________
DFxxxh

..
00xxxh vyvedeno na sběrnici I41

Všimněte si, že ačkoliv PP-01 disponuje třemi VideoRAM (odděleně pro složky “R”, “G” a “B”), v paměťovém prostoru počítače se nachází jen jedna.
Na PP-01 totiž existují dva způsoby zápisu do VideoRAM:
1) přistránkování VRAM pro příslušnou barevnou složku do hlavního paměťového prostoru počítače a přímá práce s ní (buď se mapují postupně všechny VRAM do stejného pamětového segmentu, nebo se namapují všechny naráz do různých paměťových segmentů),
2) použití barvového registru. Ten najdete na portu CC (a zrcadlený na CD, CE, CF). na tento port se zapisují 4 bity. bit 3 určuje, zda má zápis do videopaměti pracovat normálně (bit 3 v nule), nebo současně do všech videopamětí (jako přes kopírák). Zápis do”G” VRAM se prokopírovává do “R” a “B” VRAM. To, zda se zapisovaná informace opravdu do příslušné VRAM zapíše, určují bity 0-2 barvového registru. Bit 2 ovlivňuje zápis do “B” (modré) VRAM, bit 1 do “G” (zelené) VRAM a bit 0 do “R” (červené”) VRAM.
Pokud tedy nechcete současný zápis aktivovat, zapíšete do barvového registru xxxx0xxx, pokud chcete zapisovat do modré a červené VRAM zároveň (což tvoří fialovou barvu), nastavíte do barvového registru xxxx1101, takže po zápisu byjtu do “G” paměti se informace do “G” paměti nezapíše (bit pro “G” paměť je v nule), ale propíše se do “R” a “B” tak, jak jste chtěli.
Obsah barvového registru nelze číst.

Grafika PP01 má navíc hardwarový scroll, který umožňuje určovat, od kterého mikrořádku se má začít zobrazovat. Změnou tohoto údaje lze pohybovat obrazem nahoru a dolů s přesností na pixel.
Hardwarový scroll je řipojen na služební 8255, o které si teď řekneme víc, protože se účastní i na tvorbě zvuku a dalších věcech.
je umístena na adresách C0, C1, C2 a C3.
Na portu A (adresa C0) je hardwarový scroller. Port A lze i číst a zjistit tak aktuální nastavení.
Port B (adersa C1) se spolu s částí portu C používá k obsluze klávesnice.
Na části portu C (adresa C2) je připojen zvukový výstup. Bity PC0-PC3 určují čtyřbitovou (0-15) hodnotu vybuzení reproduktoru. To, zda je zvuk zapnutý, určuje bit PC4. Doporučuje se zvuk vždy po použití reproduktoru vypínat, což vypadá zvláštně, protože pokud se nemění úrovně vybuzení, je reproduktor zticha, ale dlouhodobě protékající proud by mohl údajně poškodit výstupní budič nebo cívku reproduktoru, a docházelo by ke kolizi s výběrem řad klávesnice.
Další bity portu C se využívají k obsluze přerušení od tlačítek INT0 a INT3 (PC5) a přerušení od časovače (PC6)

Další mocnou zbraní PP-01 je přerušovací a časovacísystém.
Časovač 8253 je na portech D0-D3. Ovládá se jako jakýkoliv jiný obvod 8253.
Do časovače 1 z uživatelského konektoru K3 vedou vstupní hodiny CLK1. Výstup OUT1 je vyveden na vstup procesoruu INT1/, aktivace je ale podmíněná stavem PC6 na služební 8255.
Časovač 2 má na vstupní hodiny přivedené 2 MHz, výstup vede na uživatelsý konektor K3 (jako TTL!) a zároveň k hodinovému vstupu sériového čipu 8251.

Co se přerušení týče, má 8 úrovní. šechny vstupy jsou vyvedeny na konektro sběrnice I41 (K2), ale současně je možné jim přiřadit i zdroje ze zařízení zabudovaných v počítači. Pokud není přerušení z těchto vnitřních zařízení blokováno, pak je přiřazení takovéto:
INT0 – tlačítko INT0 na klávesnici
INT1 – časovač 1
INT3 – tlačítko INT3 na klávesnici
INT6 – signál RxRDY (8251)
INT7 – signál TxRDY (8251)

Stav všech přerušení je indikován LEDkami INT0-INT7 na předním panelu počítače, které jsou připojené přímo na linky přerušení.
Řídící obvod (3214) je na portu D4 (a zrcadlí se na D5, D6 D7).
Význam bitů je tento:
bit 0, 1, 2 – počet povolených úrovní (000 – žádná, 001=1 úroveň 0 povolena, 111=7 0-6 povoleno)
bit 3 – v nule povoluje přerušenípodle bitů 0-2, v jednice povolí všech 8 úrovní (0-7)
bit 4 – maskování INT2
bit 5 – maskování INT4
bit 6 – maskování RxRDY v INT6
bit 7 – maskování TxRDY v INT7
(v masce 0 zakazuje, 1 ulolňuje přerušení)

Na adresách D8-DB může být osazena hardwarová násobička MH 102.
Zápisem na adresách D8 a D9 se násobí čísla 0..255 (čtením těchto adres dostaneme dolní a horní bajt výsledku).
Zápisem na adresy DA a DB se násobí čísla se znaménkem (-127..+128), výsledek se získá čtením těchto adres (dolní a horní byte, výsledek je se znaménkem).

Na portech C4-C7 je pak osazena 8255 uživatelská, která se stará o obsluhu paralelního portu na uživatelském konektoru a HP-IB (brána A je vyvedena jak na K3, tak K4)a k ovládání řídících signálů HP-IB (brány B pro výstup a C pro vstup).

Nezmínil jsem jetšě obvod 8251 na portech C8 a C9 (zrcadlený na CA a CB), ktrý ovládá čtení a zápis na magnetofon, sériovou linku V24, proudovou smyčku IRPS, a sériovou linku v TTL úrovních.
To, s jakým zařízením bude komunikovat, určuje nastavení RTS a DTR v řídícím slově: 11 pro magnetofon, 01 pro TTL linku, 10 pro proudovou smyčku IRPS a 00 pro V24.
Co se týče polarity dat na magnetofonu, existovala na to propojka,ale od jisté verze firmwaru ji lze řídit softwarově pomocí poke na adresu 555h (testuje se nulová nebo nenulová hodnota).
Polaritu signálu lze zjistit i krátkým programem zveřejněným v příručce (je založen na analýze struktury meziblokové mezery):
10 P=0C9H
20 OUT P,27H,P,40H,P,8CH,P,3FH,P,0A6H
30 a=INP(P):OUT P,0A6H
40 WAIT 2
50 IF INP (P,40H)=0 THEN PRINT “PRIAME”
60 OUT P,27H,P,40H,P,8cH,P,0C0H,P,0A6H
70 A=INP(P):OUT P,0A6H
80 WAIT 2
90 IF IN(P,40H)=0 THEN PRIN “INVERZNE”
100 GOTO 20

Jina se na magnetofon zapisuje záznam v sektorech, 128 bajtů dlouhých, doplněných hlavičkou, kde jsou: číslo bloku v souboru (16 bit, poslední blok má nulu), číslo souboru (8 bit, první dva bloky mají nastaven nejvyšší bit), typ souboru (8 bit – 02 Basic, 04 – proměnné Basicu, 08 – strojový kód pro monitor), na konci kontrolní součet (add, včetně hlavičky), celkem 133 byte. Každý blok se zapisuje pro jistotu 2x za sebou.
Rychlost záznamu je 1200 bd, synchronizační byte je AAh, za ním kontrolní byte 55h, mezibloková mezera je tvořena kódy 3Fh.
Soubory na kazetě nemají jména.

Zopakujme si ještě, jak jsou obsazeny porty PP-01:

0rganizátor paměti:
E0-EF (F0-FF)

Barvový registr:
CC (CD, CE, CF)

Služební 8255:
C0,C1, C2,C3 (C0 HW scroll, C1 klávesnice, C2 zvuk a přerušení, C3 řídící)

Uživateslká 8255:
C4, C5, C6, C7

Časovač:
D0, D1, D2, D3

Řízení přerušení:
D4 (D5, D6, D7)

Násobička (nemusí být osazena):
D8, D9 (kladná čísla), DA, DB (se znaménkem)

8251:
C8, C9 (CA, CB)

Určitě vás bude zajímat zapojení konektorů pro RGB monitor a magnetofon:
K1 pro magnetofon je pětidutinka DIN:
1 – výstup z PP-01
2 – GND
3 – vstup do PP-01
4 – nezapojeno

5 – nezapojeno

K7 pro RGB monitorje pětidutinka:
1 – “G”
2 – GND
3 – “B”
4 – H+V
5 – “R”

Co se týče disketové jednotky, připojovala se na sběrnici I41, kromě samotného diskového řadiče a disketovek obsahovala i rozšiřující rošt, v němž šly použít modulové desky kompatibilní se systémem SM 50/40.
K nabootování slouží příkaz Y monitoru, který zavede do paměti (na adresu 3000h) z nulté stopy zavaděč (celkem 18 sektorů) a spustí ho.
Z tohoto úseku kódu by se mělo dát určit, na jakých adresách byl řadič připojen a jakého byl typu.

Další příkazy monitoru (vstupuje se do něj povelem MONIT):
P – zpět do Basicu
Z – zobrazení a případně modifikace obsahu paměti
S – skok na zadanou adresu, návrat přes RET
N – uložení čáti paměti na magnetofon (číslo souboru může být 00-7F)
M – čtení z magnetofonu
Y – už zmíněný bootloader

Pokud si připojíte k PP-01 vlastní výstupní zařízení, uložte adresu jeho driveru (v rozsahu 1 MB paměťového prostoru) na adresy 3, 4 a 5. vladač nesmí měnitregistry, kód znaku se mu předává v C. Z Basicu se pak volá pomocí PRINT # (pouze na výstupní zařízení) nebo PRINT % (současně na výstup i na obrazovku).

Protože kromě jednoduchého monitoru a Basicu G už PP-01 žádný jiný software neobsahuje, a z programů pro něj se (aspoň na internetu) kromě několika málo věcí v Basicu žádný program nedochoval, dá se říct, že jeho na tehdejší dobu a poměry velmi bohaté hardwarové vybavení počítače (jako jeho chunky grafika 256×256 bodů v 8 barvách, hardwarový scroll, 4bitový zvuk) zůstalo trestuhodně nevyužito.
Je mi sice známo,že pro něj existoval Pascal (kompatiblní s Mikrobáze Pascalem), ale bohužel – k tomuto počítači se buď nic nedochovalo, nebo si to málo, co se dochovalo, nějaký “hodný” sběratel nechává pro sebe.