Blog:Pamäťové rozšírenie 256kB RAM

Z PMD 85 Infoserver

Revízia z 07:37, 19. máj 2014; Djb (Diskusia | príspevky)
(rozdiel) ← Staršia verzia | Zobrazenie aktuálnej úpravy (rozdiel) | Novšia verzia → (rozdiel)

Pamäťové rozšírenie 256kB RAM pre PMD 85-2A a PMD 85-3

Pôvodné pamäťové čipy 4164 sú nahradené čipmi 41256. Mapovanie rozšírenej pamäti zabezpečuje hradlové pole.

  • 256kB pamäti sa delí na 16 stránok po 16kB: (PG00PG15).
  • Pamäťový priestor CPU sa delí na 4 oblasti:
    • REG0 - od adresy 0000h
    • REG1 - od adresy 4000h
    • REG2 - od adresy 8000h
    • REG3 - od adresy C000h


Základné stránky PG00PG03 sú mapované do zodpovedajúcich oblastí REG0REG3. Ak nie je pre danú oblasť zvolená iná stránka, je tam namapovaná stránka základná.

Stránky PG03 a PG07 zdieľa aj Video-procesor. Ten pristupuje ku týmto stránkam nezávisle od CPU a teda tieto stránky vôbec nemusia byť namapované v adresnom priestore CPU.

  • stránka PG03 je VRAM-0
  • stránka PG07 je VRAM-1

stránkovanie

Stránkovanie je prístupné na porte 6Dh. Z portu je možné zapísanú hodnotu aj prečítať. Po resete je port vynulovaný, čo znamená, že sú v pamäťovom priestore namapované všetky základné stránky a zobrazuje sa VRAM-0.

7 6 5 4 3 2 1 0
VRAM MAP1 MAP0 BANK3 BANK2 BANK1 BANK0
  • BANK<x> určuje číslo stránky, ktorá bude namapovaná do oblasti MAP<x>.
  • ktorákoľvek stránka tak môže byť namapovaná do ktorejkoľvek oblasti.
  • mapovanie je platné vždy iba pre jednu konkrétnu stránku a oblasť!
  • bit VRAM určuje, ktorá VideoRAM sa bude zobrazovať (PG03 alebo PG07).
  • ROM sa stránkuje obvyklým spôsobom na 4. bite portu PC sytémovej 8255 (viď. AllRAM).
  • Ak je ROM nastránkovaná, zápis do časti RAM pod ROM je možný ako obvykle.

príklad použitia

Z popisu stránkovacieho portu je vidieť, že voľba banky s rovnakým číslom, ako je číslo oblasti znamená, že v pamäťovom priestore sú vždy základné stránky a teda zápis hodnôt 00h, 11h, 22h alebo 33h na port 6Dh je ekvivalentné. To je možné využiť na test prítomnosti pamäťového rozšírenia.

MVI     A,33h           ; test na prítomnosť pamäťového rozšírenia
OUT     6Dh
IN      6Dh             ; prečítaj zapísanú hodnotu
CPI     33h
JZ      MEM256_OK       ; pamäťové rozšírenie je prítomné
JNZ     MEM256_NO       ; pamäťové rozšírenie sa nenašlo

MVI     A,82h           ; povolenie a zapnutie AllRAM
OUT     0F7h

MVI     A,09h           ; ROM pripojená
OUT     0F7h

MVI     A,08h           ; ROM odpojená - AllRAM
OUT     0F7h

MVI     A,16h           ; stránka 6 do oblasti 1, zobrazuje sa VRAM-0
OUT     6Dh             ; v pamäťovom priestore sú stránky 0,6,2,3

MVI     A,7Fh           ; stránka 15 do oblasti 3, zobrazuje sa VRAM-1
OUT     6Dh             ; v pamäťovom priestore sú stránky 0,1,2,15

MVI     A,07h           ; stránka 7 do oblasti 0, zobrazuje sa VRAM-0
OUT     6Dh             ; v pamäťovom priestore sú stránky 7,1,2,3

MVI     A,6Ch           ; stránka 12 do oblasti 2, zobrazuje sa VRAM-1
OUT     6Dh             ; v pamäťovom priestore sú stránky 0,1,12,3