ESPANDERE LA RAM A 60K

 

di Piergiorgio Betti

 

(articolo tratto da www.z80cpu.eu)

 

 

 

 

 

 

Lo Z80 NE nasce con due tipi di schede di memoria RAM: una scheda statica da 8 KB ed una dinamica da 32 KB.

Era possibile inserire più schede di memoria, in varie combinazioni, ottenendo diversi tagli di memoria come si vede in questa tabella:

 

 

Purtroppo, in qualunque combinazione, non è possibile superare il limite dei 56K, lasciando scoperti gli ultimi 8 KBytes di memoria e precisamente E000h fino a FFFFh.

 

Questa scelta è dovuta al fatto che in questo ultimo range di memoria sono presenti due regioni:

 

 

Però, successivamente alla presentazione della scheda videografica LX.529 che utilizza una memoria privata (non condivisa), la regione EC00h-EDFFh si è liberata, o almeno è libera, per tutti quelli che non utilizzano la "vecchia" scheda video LX.388. Ma nonostante questo ancora non è possibile superare il limite dei 56 KB perchè i banchi delle schede di memoria di Nuova Elettronica si basano su multipli di 8 KBytes, mentre per sfruttare gli ultimi KBytes liberi da E000h servirebbe un banco di 4 KBytes così da arrivare a 56 + 4 = 60K di ram disponibile.

 

 

 

Modifiche hardware

 

Una possibile soluzione è quella di utilizzare due schede di memoria dinamica da 32 KBytes LX.392 forzando la seconda scheda (totalmente popolata) a presentare sul bus solo 28K di memoria, cioè lasciando liberi gli ultimi 4 KBytes per la EPROM di sistema.

 

Il "trucco" sta nel disattivarla quando sul bus vengono presentati indirizzi a partire da F000h in su, utilizzando un semplice 74LS20.

 

Per fare questo si può aggiungere alla scheda una piccola "daughter board" su cui montare il 74LS20 e fare una piccola modifica intorno al 74LS139, IC10 della scheda dinamica che ha la funzionalità di selettore dei due banchi di 16K dinamici.

 

Questo è il circuito da aggiungere:

 

Queste invece sono le patch da eseguire sulla LX.392 e riguardano IC10:

 

 

Come anticipato, in questo modo la scheda è attiva a coprire tutto lo spazio di indirizzamento fino a 64 KB, ma il 74LS20 aggiuntivo provvederà a disabilitarla ogni volta che sul bus è presente un indirizzo nel range Fxxxh, lasciando libero lo spazio occupato dalla EPROM, sia che sia da uno, da due o da quattro KBytes, per un totale effettivo di 60 KBytes.

 

Qualche foto indicativa (cliccare sull'immagine per ingrandire):

 

La daughter board Cablaggio ai connettori Modifiche a IC10

 

 

Il software

 

Il NE-DOS è un sistema operativo allocato nella parte bassa della memoria a partire dalla locazione 0h, e questo gli consente di poter eseguire automaticamente il sizing della RAM disponibile.

Quindi utilizzando il NE-DOS non è necessario nulla per usare gli ultimi 4K appena aggiunti.

 

Un discorso diverso però vale per il CP/M o SONE come lo chiama Nuova Elettronica.

Il CP/M usa uno schema di allocazione diverso. Per il CP/M 2.2, quale è il SONE, il tipico schema di utilizzo della RAM è questo:

 

arch mem

Le posizioni dei componenti del CP/M (CCP+BDOS+BIOS) sono prefissate al caricamento del sistema operativo, pertanto per passare da un sistema a 56K ad uno a 60K sono necessarie delle operazioni di adattamento del CP/M stesso.

 

 

NOTA: una modifica molto simile è presente nello schema elettrico della scheda LX.392 modificato da Constantinos Haritakis (sviluppatore di Nuova Elettronica) e scaricabile qui.