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

Z PMD 85 Infoserver

(Rozdiel medzi revíziami)
Djb (Diskusia | príspevky)
(fix nazvoslovia)
Djb (Diskusia | príspevky)
(bity region)
Riadok 22: Riadok 22:
{| class="wikitable"
{| class="wikitable"
|-
|-
-
! width="40" height="24" align="center" | 7
+
! width="56" height="24" align="center" | 7
-
! width="40" height="24" align="center" | 6
+
! width="56" height="24" align="center" | 6
-
! width="40" height="24" align="center" | 5
+
! width="56" height="24" align="center" | 5
-
! width="40" height="24" align="center" | 4
+
! width="56" height="24" align="center" | 4
-
! width="40" height="24" align="center" | 3
+
! width="56" height="24" align="center" | 3
-
! width="40" height="24" align="center" | 2
+
! width="56" height="24" align="center" | 2
-
! width="40" height="24" align="center" | 1
+
! width="56" height="24" align="center" | 1
-
! width="40" height="24" align="center" | 0
+
! width="56" height="24" align="center" | 0
|-
|-
| height="24" align="center" style="background-color:#f2f2f2" | —
| height="24" align="center" style="background-color:#f2f2f2" | —
| height="24" align="center" style="background-color:#ccf" | VRAM
| height="24" align="center" style="background-color:#ccf" | VRAM
-
| height="24" align="center" style="background-color:#fcf" | REG1
+
| height="24" align="center" style="background-color:#fcf" | REGION1
-
| height="24" align="center" style="background-color:#fcf" | REG0
+
| height="24" align="center" style="background-color:#fcf" | REGION0
| height="24" align="center" style="background-color:#ffc" | PAGE3
| height="24" align="center" style="background-color:#ffc" | PAGE3
| height="24" align="center" style="background-color:#ffc" | PAGE2
| height="24" align="center" style="background-color:#ffc" | PAGE2
Riadok 42: Riadok 42:
|}
|}
-
* bity {{Kbd|PAGE<x>}} určuje číslo stránky, ktorá bude namapovaná do oblasti určenej bitmi {{Kbd|REG<x>}}.
+
* bity {{Kbd|PAGE<x>}} určuje číslo stránky, ktorá bude namapovaná do oblasti určenej bitmi {{Kbd|REGION<x>}}.
* ktorákoľvek stránka tak môže byť namapovaná do ktorejkoľvek oblasti.
* 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ť'''!
* mapovanie je platné vždy '''iba pre jednu konkrétnu stránku a oblasť'''!

Verzia zo dňa a času 08:14, 19. máj 2014

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 REGION1 REGION0 PAGE3 PAGE2 PAGE1 PAGE0
  • bity PAGE<x> určuje číslo stránky, ktorá bude namapovaná do oblasti určenej bitmi REGION<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