ROM Modul

Z PMD 85 Infoserver

(Rozdiel medzi revíziami)

Rombor (Diskusia | príspevky)
(Nový článok)
Ďalší rozdiel →

Verzia zo dňa a času 20:22, 24. marec 2022

ROM Modul

ROM Modul predstavuje vonkajšiu pamäť, ktorá nie je priamo v adresnom priestore CPU, ale je prístupná prostredníctvom paralelného interfejsu postaveného na obvode PIO 8255.

ROM Modul sa vyrábal v dvoch veľkostiach - 16 kB (16 x 1 KB (E)PROM typu 2708) alebo 32 kB (16 x 2 kB (E)PROM typu 2716). Konštrukčne, resp. zapojením sa vyskytovalo viac verzií, ale všetky sú navzájom hardvérovo a softvérovo kompatibilné a líšia sa iba maximálnou veľkosťou.

Štandardne bolo PMD 85 dodávané s ROM Modulom, ktorý obsahoval programovací jazyk BASIC G, ktorého verzia zodpovedala modelu samotného počítača. BASIC zaberá iba 9 (10) kB a v ROM Module tak zostali voľné pozície pre ďalšie 1 kB alebo 2 kB (E)PROM. Predávali sa ale aj ROM Moduly, ktoré obsahovali programovací jazyk Pascal alebo vývojové nástroje na programovanie v assembleri, programy DAM alebo MRS. Zároveň sa napr. k tlačiarňam, plotrom, kazetopáskovým pamätiam, či iným prídavným zariadeniam dodávali ovládače, ako samostatné EPROM, ktoré sa potom doplnili k BASICu do neobsadených pozícii v ROM Module. Tieto ovládače potom rozširovali možnosti a príkazy BASICu.

Zatiaľ neúplný popis (zoznam) ROM, ktoré sa používajú na PMD 85, je v tomto článku.

Zapojenie ROM Modulu

Bloková schéma ROM Modulu

Základom ROM Modulu, okrem samotných pamätí ROM, je paralelný interfejsový obvod MHB 8255A. Na jeho port PA sú pripojené dátové signály pamätí (E)PROM, porty PB a PC tvoria adresové signály pamätí. Podľa typu pamätí 1 alebo 2 kB sa časť portu PC priamo podieľa na tvorbe adresy a druhá časť vstupuje do dekodéra 1 zo 16 pre výber jednotlivých obvodov (E)PROM.

Bit PC7 slúži na "zapínanie" ROM Modulu - 0=áno, 1=nie. Vo verzii s 1 kB (E)PROM bit PC7 zapína/vypína napájanie +12V pre pamäte. Vo verzii s 2 kB (E)PROM je bit PC7 buď nepoužitý, alebo zapína/vypína napájanie +5V pre pamäte. V každom prípade, pre vzájomnú kompatibilitu musí byť pri čítaní PC7=0 a po ukončení čítania sa musí nastaviť PC7=1.

Obvod MHB 8255A je vyberaný iba adresovým bitom A2, čím pokrýva pomerne veľkú časť adresného priestoru pre vstup/výstup. Používajú sa ale adresy 0F8h (port PA), 0F9h (port PB)), 0FAh (port PC)) a 0FBh (riadiaci register). Adresové bity A1 a A0 teda vyberajú jednotlivé registre obvodu 8255.

Celkové schémy všetkých typov ROM Modulov môžete nájsť na stránkach sapi.cz.

Čítanie z ROM Modulu

Ako bolo spomenuté vyššie, pre prístup k 8255 sa používajú adresy 0F8h0FBh. 8255 sa inicializuje zápisom 90h na port 0FBh, kedy sa port PA nastaví na vstup a porty PB a PC na výstup. Po ukončení čítania sa pre "vypnutie" ROM Modulu na port PC obvykle zapíše hodnota 0FFh, čím sa bit PC7 nastaví na 1.

V Monitore PMD 85 je štandardná rutina TRANSFER na adrese 8C00h (0EC00h na PMD 85-3) pre presun dát z ROM Modulu do pamäte. Parametre presunu sa uvádzajú za volanie rutiny. Žiaľ, v oboch "základných" typoch Monitorov je chybne počítaná dĺžka prenášaných dát a v každom inak chybne. Na PMD 85-1 je ku prenášanej dĺžke potrebné pripočítať 255, na ostatných modeloch je potrebné dĺžku prenášaných dát uviesť zníženú o 1.

       ; PMD 85-1                              ; ostatné
       call   TRANSFER                         call   TRANSFER
       dw     rom_adr                          dw     rom_adr
       dw     počet+0FFh                       dw     počet-1
       dw     ram_adr                          dw     ram_adr