PMI-80M16, kus č.2


STRÁNKA VE VÝSTAVBĚ


Předchozí model PMI-80M16 sice dobře slouží, ale rozhodl jsem se pro stavbu dalšího PMI-80M16. Důvody byly dva: 1) Jsem střídavě doma a v Praze. PMI-80 mám rád a nechci ho pořád převážet. Tak chci mít jedno tam a jedno tam. 2) Chci provést další rozšíření paměti. Nějak se mi nevyplácí svoje přístroje pořád vylepšovat. Většinou to má ten efekt, že je zařízení neustále rozdělané a málokdy se dá používat, protože "zrovna něco vylepšuju". Spíš je lepší stroj prohlásit za hotový tak jak je a místo dalšího vylepšování postavit další kus.

Kufřík

Kufřík použitý pro model č.1 se osvědčil. Zašel jsem do stejného obchodu, jako tenkrát a pořád je měli. Napájení jsem ale řešil jednodušeji - zůstávám u zdroje EA1605 a otvor pro konektor DIN jsem vyvrtal zboku kufříku.

Chci ještě více paměti, než u kusu č. 1 !

Tak především chci více RAM, 1KB je fakt málo. Za druhé chci kvůli častým úpravám monitoru namísto EPROM použít EEPROM. Co se týká typu EEPROM, rozhodování bylo rychlé. "Slon" měl v nabídce 8KB čip 28C64 nebo 32KB čip 28C256. 32KB je zbytečně moc, muselo by se to rozdělit do bank a navíc to stojí majlant. Volba tedy padla na čip 28C64, byť ani ten není zrovna levný.

Co se týká RAM, zde mi jako optimální volba vyšla osmikilovka 6264 (6164). Šlo by použít i jen dvojkilovku, ale není důvod jít jen na 2KB, když se dá instalovat 8KB. Na 32KB by se zas nevystačilo jen s jedním dekodérem adres a vyžadovalo by to tedy rozsáhlejší úpravy. Jiné kapacity jako 4KB nebo 16KB jsou nestandard a nedají se běžně sehnat.

Při změně velikosti adresního bloku dekodéru pamětí na 2KB tak krásně vychází, že přesně zaplníme 16KB adresního prostoru, co dekodér oadresuje. Po úpravě bude PMI sám pro sebe zabírat 16KB pamětního prostoru na adresách 0000-3FFF, stejně jako před úpravou. Navíc ovšem zmizí zrcadla a celý tento prostor bude využit. Otázkou je rozdělení adresního prostoru 0000-3FFF mezi RAM a (EEP)ROM. Ono by bylo krásné spodních 8KB vyhradit pro EEPROM a horních 8KB pro RAM, jenže to by byl problém, v oblasti 1C00-1FFF musí být RAM, jinak bude PMI nekompatibilní s originálem. Alespoň jednu z pamětí tedy musíme adresně "roztrhnout". Po zvážení různých možností jsem se rozhodl pro následující schema: 0000-17FF bude obsazovat 6KB EEPROM, pak bude následovat na adresách 1800-37FF souvislá oblast 8KB RAM. Zbylý 2KB blok na adresách 3800-3FFF obsadí zbytek EEPROM. Oblast RAM je ovšem sice souvislá fyzicky, ale bude rozdělená logicky, neboť na stránce 1Fxx se standardně nachází buffer displeje, zásobník a proměnné monitoru. To může být určitá výhoda - pro tyto účely lze vyhradit celý 2KB blok 1800-1FFF a mezi 2000 a 37FF máme souvislou oblast 6KB pro programový kód. Při větším zaplnění zásobníku se pak nebude přepisovat program. Například špatně napsaný rekurzivní program může samozřejmě i tak udělat neplechu, teoreticky může ukazatel zásobníku podtéct pod adresu 0 a pak se dostat do RAM shora, nicméně špatně napsaný rekurzivní program je potenciální zdroj problémů vždy, když nad zásobníkem není kontrola. Původní programy využívající pouze RAM na adresách 1C00-1FFF lze samozřejmě dál používat.

Co bylo potřeba udělat:

Paměti 2114 je z desky PMI pochopitelně potřeba vyjmout. Udělal jsem to s radostí, neboť čipy Tesla MHB2114 nemám rád, zejména kvůli jejich nehorázně velké spotřebě. Vyjmutí pamětí 2114 má výhodu v případě dalšího rozšiřování i tu, že se sníží zátež systémové sběrnice.

Co se týká posuvu adresního dekodéru, uvědomil jsem se, že se adresní vodiče nemusí přepojovat všechny tři. Úplně stačí, když se od pinu č. 1 odpojí adresní vodič A10 a namísto něj se přivede A13. Adresní linky A11 a A12 klidně mohou zůstat zapojené tak, jak jsou. Sice "chipselecty" nepůjdou popořadě, to však absolutně ničemu nevadí.

Dostáváme takovouto adresní tabulku:
Adresy A13A12A11CSPaměť
0000-07FF 0 0 0 CS0ROM (systém)
0800-0FFF 0 0 1 CS2ROM
1000-17FF 0 1 0 CS4ROM
1800-1FFF 0 1 1 CS6RAM (systém)
2000-27FF 1 0 0 CS1RAM
2800-2FFF 1 0 1 CS3RAM
3000-37FF 1 1 0 CS5RAM
3800-3FFF 1 1 1 CS7ROM

Patice pro paměti se pak přepojí dle jejich významu:
Pin DIP24Pin DIP282708271627322764, 28C646264Poznámka
18 20 PGM /CE /CE /CE/CE1 V PMI-80M16 uzeměn, doporučuji přepojit (vizte dále)
19 21 +12VA10 A10 A10A10
21 23 -5V Vpp A11 A11A11Vpp při čtení 2716
24 26 Vcc Vcc Vcc NC CE2
Přepojení je možno realizovat přeškrábnitím spoje na plošňáku, nebo tak, že se vývod kousek nad deskou uštípne a připojí se sem kus drátu, jako jsem to udělal u PMI-80M16, kusu č.1. Používal jsem obě varianty podle toho, co se mi pro daný přívod zdálo jednodušší.

Nelze si nevšimnout, že paměti 28C64 a 6264 mají více vývodů než 2708 a 2716. Tak při zapajování patic stojíme před tím, že potřebujeme patici DIP28 zapájet tam, kde je jen 24 dírek. Je to jednoduché. Ty 4 přívody navíc jsem odštípl a připájel na ně kusy drátu a zapojil podle katalogu. Při štípání pozor, nesmíme štípat moc vysoko, musí zbýt něco, na co se dá pájet.
Pin DIP28276428C646264
1 Vpp NC NC
2 A12 A12 A12
27 /PGM/WE /WE
28 Vcc Vcc Vcc


Zpět