On Friday, October 17, 2008 2:27 PM [GMT+1], Eugenio Ciceri <eugenio.ciceri@xxxxxxxxx> wrote: Sarebbe utile per collegare, ad esempio, direttamente la ZXMMC+
anziché realizzare la SD card a parte ;-)
Per invogliare i softwaristi :-) segnalo che utilizzando il registro 'fastpage' (introdotto per compatibilita' con il ResiDOS) e' possibile mappare tutta la ram presente a bordo sui 16K alti dello Z80, ovvero fra $C000 e $FFFF.
"Tutta la ram" ammonta a 64MBytes. Per indirizzarla c'e' il registro summenzionato, che seleziona il banco entro un range di 1MB (equivale esattamente a quello che succede sul badaloc e sulla zxmmc+, solo che qui sia la "ram" che la "rom" risiedono in ram ddr).
Dopodiche` c'e' un secondo registro, assente in tutti i casi precedenti, che con i suoi 6 bit permette di selezionare il megabyte attivo fra i 64 disponibili.
Al power-on, lo Z80 copia mezzo mega da una flash seriale --> nei corrispondenti 512K di ddr adibiti a rom, in modo che la macchina possa partire come se si trattasse di una rom vera. La flash in questione e` la stessa usata dall'fpga per la propria configurazione (le fpga, al contrario delle cpld, sono basate su ram e quindi devono essere riconfigurate con una memoria esterna ad ogni accensione).
La bootrom gira in una porzione di ram interna alla fpga per questioni di affidabilita' e velocita' (c'e' l'handler NMI). La quantita` di ram interna e' 40K, di cui 16 usati come sopra, altri 16 divisi in due banchi da 8K che contengono il video (due per il 128K), mi e` toccato spezzarli colmando la parte mancante con la DDR perche' altrimenti sarebbero serviti 32K, che non ci sono piu` altri 2K per il raddoppiatore di frequenza orizzontale (il quadro VGA viene generato a 31KHz, altrimenti il monitor non lo aggancia).
Lo zx-com ha un nuovo menu` che permette di programmare la flash seriale a bordo (in realta` il lavoro lo fa lo Z80, dopo aver ricevuto i dati da programmare via seriale).
Ciao! Alessandro