Technické informace

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 př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.

8255 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 PRINT "INVERZNE"

100 GOTO 20

Jinak 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 monitor je 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. Ovladač nesmí měnit registry, 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).