Spiacente, questo articolo non è disponibile in inglese. United-Kingdom-flag-icon-26
Please ask, if you wish an english translation added

 

 

 
 
Floppy interface

 

Interfaccia Floppy Disk

 Portiamo i floppy a 880Kbytes di capacità

 

 

 

 

Hardware

 

under construction 

 

 

20171030 084642 20171030 084634 20171030 084723
 La daughter board Cablaggio ai connettori Modifiche a IC10

 

Il software

 

 

 

Spiacente, questo articolo non è disponibile in inglese. United-Kingdom-flag-icon-26
Please ask, if you wish an english translation added

 

 

Z80NE

 

 

 

 

 

 

 


Tips & Tricks
o
Come faccio ?

Tips and Tricks

 

 Mini howtos e soluzioni a problemi comuni

 

 

 

 

 

Requisiti Software

Perchè tutto funzioni a dovere è necessario che sul vostro PC (Linux) sia installato un insieme minimale di software: Sistema di sviluppo C/C++, git, cmake, zxcc, mzt.

 

Sistema di sviluppo C/C++
openSUSE $ sudo zypper install -t pattern devel_C_C++
RedHat/Fedora based $ sudo yum group install 'Development Tools'
Debian/Ubuntu based $ sudo apt-get update && apt-get install build-essential
 
git
openSUSE $ sudo zypper install git
RedHat/Fedora based $ sudo yum -y install git
Debian/Ubuntu based $ sudo apt-get update && apt-get install git
 
cmake
openSUSE $ sudo zypper install cmake
RedHat/Fedora based $ sudo yum -y install cmake
Debian/Ubuntu based $ sudo apt-get update && apt-get install cmake

 mzt

mzt, o my z80 tools, è un completo cross-development kit per lo Z80 che comprende assembler, linker e smart disassembler. Si può scaricare da qui: https://www.z80cpu.eu/projects/78-data-articles/projects/76-mdz80 al fondo pagina, che include anche altre infomazioni utili. Il mio consiglio è di leggere.

Quindi:

$ tar zxvf mzt-1.0.0.tar.gz
$ cd mzt-1.0.0
$ make
$ sudo make install

 Se non ci sono errori il tutto verrà installato sotto /usr/local. Fate riferimento alla pagina di download per altre informazioni.

zxcc

ZXCC è un emulatore CP/M 2/3 bidirezionale che consente:

  • di utilizzare Hi-Tech C per CP/M come cross-compilatore sotto Unix.
  • usare gli strumenti di sviluppo  CP/M (MAC, RMAC, GENCOM, LINK) sotto DOS o Unix.

ZXCC è incluso nel repository ZDS per comodità, volendo può essere scaricato da qui, ma per semplicità si fa riferimento alla versione inclusa nel nostro repo git.

Per prima cosa scaricate il repository software, seguendo le istruzioni.

A questo punto eseguite (dalla directory ZDS):

$ cd support/zxcc
$ tar zxvf zxcc-0.5.7.tar.gz && cd zxcc-0.5.7
$ ./configure
$ make && sudo make install

A questo punto zxcc è installato, ma alcune utility (zxc, zxas, zxlibr) necessitano di una installazione particolare di HiTech C che è inclusa nella stessa directory support/zxcc. Fate così (da ZDS/support/zxcc):

$ tar zxvf cpm.tar.gz
$ sudo mv cpm /usr/local/lib    # se non avete spcificato una diversa directory di base tramite configure

That's all.

 

Download e Update

Il software sviluppato per lo Z80NE fa capo ad un unico repository globale su github. Anche se nelle pagine dei singoli progetti si fa riferimento a numeri di versione specifici per il singolo progetto il download è comunque unico e sempre riferito a github.

Perche questo?

Per due buone ragioni; la prima è che parte del software è dislocata su più subdirectory e spesso comune a più moduli, la seconda è che l'update del repository è il metodo migliore per seguire gli aggiornamenti senza il rischio di perdere nulla.

Come faccio a scaricare il repository?

Il repository si trova a questo indirizzo https://github.com/pbetti/ZDS ed è consultabile tramite browser. La copia locale cioè il download del repository, la prima volta, si ottiene così:

 $ git clone https://github.com/pbetti/ZDS

Otterrete una directory "ZDS" contenente tutto il possibile e anche l'impossibile ????. Seguite le istruzioni nei vari progetti per accedere al software specifico.

Come aggiorno il repository all'ultima versione?

Niente di più semplice, per le volte successive. Entrate nella directory ZDS e quindi eseguite

 $ git pull origin master

Ogni volta che eseguite questa operazione la vostra copia in locale del repository è completamente aggiornata.

Importante: Se eseguite delle modifiche in locale, si potrebbe verificare il caso in cui git non esegue l'aggiornamento perchè, appunto, la vostra copia del repository presenta dei cambiamenti per i quali non è stata eseguita una commit e relativo push sul branch origin master (per fare una push occorre avere i privilegi in scrittura a github). Per questo e per semplicità consiglio di duplicare sempre la directory ZDS e quindi lavorare sulla copia. Naturalmente ci sono metodi più sofisticati per risolvere i conflitti di merge tra versioni diverse del software. Se vi sentite abbastanza confidenti o se non è tutto chiaro, potete consultare il manuale di git.

 

 

Spiacente, questo articolo non è disponibile in inglese. United-Kingdom-flag-icon-26
Please ask, if you wish an english translation added

 

 

mf 1
 
mf 2

 

La Multifunction Board

 Scateniamo la Z80!

 

 

 

 

Hardware

 

under construction 

 

 

20171030 084642 20171030 084634 20171030 084723
 La daughter board Cablaggio ai connettori Modifiche a IC10

 

Il software

 

Spiacente, questo articolo non è disponibile in inglese. United-Kingdom-flag-icon-26
Please ask, if you wish an english translation added

 

 

20171030 085820 

 

Lo Z80 NE nasce con due tipi si schede di memoria RAM una scheda statica da 8Kb 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:

Configurazione memoria

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

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

  • La ROM di sistema, o Monitor che è allocata da F000h a FFFFh (solo da F000h a F7FFh se da due Kbytes), e, ovviamente, non può essere eliminata.
  • La scheda video LX388 a bassa risoluzione utilizzava una RAM condivisa allocata da EC00h a EDFFh, bloccando di fatto tutto il range E000h-EFFFh.

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

 

Modifiche hardware

Una possibile soluzione è quella di utilizzare due schede di memoria dinamica da 32Kbytes LX392 forzando la seconda scheda (totalmente popolata) a presentare sul bus solo 28K di memoria, cioè lasciando liberi gli ultimi 4Kbytes 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:

60kmem 

 

Queste invece sono le patch da eseguire sulla LX392 e riguardano IC10:

  • Separare i pin 2 e 3, il pin 2 deve rimanere scollegato
  • Collegare il pin 2 al pin 8 del 74LS20 (come da schema sopra)
  • Chiudere il ponticello P2 (P3 e P4 aperti)
  • Collegare il pin 9 di IC10  al ponticello P3 in basso cioè non dal lato attualmente collegato al pin 11 sempre di IC10 (vedi foto)

Come anticipato, in questo modo la scheda è attiva a coprire tutto lo spazio di indirizzamento fino a 64Kb, 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 due o da quattro kbytes, per un totale effettivo di 60Kbytes.

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

20171030 084642 20171030 084634 20171030 084723
 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, 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.