AllRAM

Z PMD 85 Infoserver


AllRAM mód (stránkovanie)

AllRAM mód (odpojenie ROM) je možné zapnúť pri modeloch PMD 85-2A a PMD 85-3, tie majú 64kB RAM.

V oboch prípadoch sa stránkovanie robí 4. bitom portu PC systémového 8255. Ak je na PC4 úroveň H, číta sa z ROM, ak je na PC4 úroveň L, číta sa z RAM. Zápis je stále do RAM, aj keď je nastránkovaná ROM (teda RAM nie je "úplne odpojená"), čo osobne považujeme za veľmi užitočnú vlastnosť, ktorú programy pekne využívajú. Dôležitou vecou je, že na PC4 je pull-up odpor, ktorý udržiava úroveň H na PC4, ak je horná polovica portu PC naprogramovaná ako vstup. To vlastne udržiava pripojenú ROM, ak sa stránkovanie nepoužíva.

Takže:

1 MVI A,8AH  ; SK A: MOD 0, PA-OUT, PCH-INP, SK B: MOD 0, PB-INP, PCL-OUT
OUT 0F7H
nastaví PCH na vstup a tým je stránkovanie "vypnuté" (ale do RAM sa dá samozrejme stále zapisovať)
2 MVI A,82H  ; SK A: MOD 0, PA-OUT, PCH-OUT, SK B: MOD 0, PB-INP, PCL-OUT
OUT 0F7H
nastaví PCH na výstup (stránkovanie je zapnuté) a keďže pri inicializácii 8255 sa nulujú aj výstupné latche, tak je hneď odpojená ROM
3 MVI A,09H
OUT 0F7H
nastaví PC4 na úroveň H - pripojená je ROM
4 MVI A,08H
OUT 0F7H
nastaví PC4 na úroveň L - ROM je odpojená

PMD 85-2A

Programy pre PMD 85-2A, ktoré chcú využívať rozšírenú pamäť a potrebujú aj ROM, tak to robia napríklad aj tak, že je nastavený režim (1), prekopírujú Monitor (8000H8FFFH) z ROM do RAM (na to isté miesto) a nastavia režim (2).

Tým je už ROM odpojená, Monitor je v RAM od 8000H a RAM od 9000H0BFFFH je celá prístupná.

Nasledujúci program prekopíruje Monitor do RAM a prepne sa do AllRAM:

        LXI  H,8FFFh         ; adresa konca Monitora PMD 85-2A
MCOPY   MOV  A,M             ; vezmi byte z ROM
        MOV  M,A             ; zapíš do RAM
        DCX  H               ; zníž adresu
        MOV  A,H             ; je prekopírovaný celý Monitor ?
        ANA  A
        JM   MCOPY           ; nie, pokračuj
        MVI  A,3Ah           ; oprava chyby v ROM, ktorá spôsobuje poškodenie
        STA  8832h           ; znaku A v znakovom FONTe pri použití kľúčových kláves Kx
        MVI  A,82h           ; zapnutie stránkovania a odpojenie ROM
        OUT  0F7h
        RET

PMD 85-3

Keďže PMD 85-3 má Monitor od adresy 0E000H, teda sa prekrýva s VideoRAM, tak k prepínaniu do AllRAM módu (odpájaniu ROM) dochádza vždy pri práci s VideoRAM. Na to Monitor používa príklady (3) a (4).

PMD 85-3 používa aj PC5 ako riadiaci bit. Ak je na PC5 úroveň H, tak sa ROM zrkadlí v celom pamäťovom priestore od 0000H, 2000H, ... až po 0E000H. Tam sa využíva práve skutočnosť, že po resete sú všetky porty 8255 vstupné, takže na PC5 je pull-up úroveň H a to "nastránkuje" ROM od adresy 0000H, kde CPU po resete začína. Potom sa po vykonaní (2) nastaví PC4 a PC5 do L a ROM sa odpojí, to už je ale v RAM na adrese 0E0B3H pripravené (3), čo pristránkuje späť ROM (viď. kód na adrese 0E0A3H v Monitore PMD 85-3).

režim kompatibility

K trvalému prepnutiu do AllRAM módu v PMD 85-3 dôjde pri prechode do režimu kompatibility s PMD 85-2 príkazom JUMP FFF0. Vtedy sa premodifikujú a relokujú prvé 4kB Monitora PMD 85-3 tak, aby zodpovedal Monitoru PMD 85-2 a prekopíruje sa do RAM od adresy 8000H.

Consul 2717

Consul 2717 (Zbrojováček) má tiež 64KB RAM a možnosť prepnutia do AllRAM módu. Avšak, spôsob prepínania nie je (zrejme zámerne) kompatibilný s tým na PMD 85. Stránkovanie sa robí 6. bitom portu PC systémového 8255. Ak je na PC6 úroveň L, je pripojená ROM, ak je na PC6 úroveň H, je pripojená RAM. Naviac, ak je pripojená ROM, zápis do RAM nie je, na rozdiel od PMD 85, možný.

Zbrojováček inicializuje systémový 8255 spôsobom (2), takže je celý port PC výstupný, zároveň vynulovaný a pripojená je preto ROM. Prepínanie ROM/RAM sa teda robí následovne:

5 MVI A,0CH
OUT 0F7H
nastaví PC6 na úroveň L - pripojená je ROM
6 MVI A,0DH
OUT 0F7H
nastaví PC6 na úroveň H - pripojená je RAM - AllRAM mód

emulácia

V emulátore sa AllRAM mód plne emuluje a aktivovaný AllRAM mód indikuje modrá LED na informačnom panely.