Newsgroup: it.hobby.elettronica.digitale
Titolo: Home Computer con un Zilog eZ80190

Salve a tutti,
so che molti di voi mi manderanno a quel paese... ma io ci provo
ugualmente.
Da qualche tempo mi è venuta l'idea di costruire un Home Computer a 8
Bit basato sul processore eZ80190 della Zilog (in grado di indirizzare
direttamente 16Mb di Ram). Ora un pò di materiale l'ho raccolto e la
base del sistema non è un problema, come del resto la sua
programmazione. I problemi iniziano quando devo interfacciare il
computer con i monitor o con altre periferiche (HD,USB,memorie SD).
C'è qualcuno che è interessato? Che potrebbe darmi una mano ? Se
volete unirvi a me, vi invio tutte le specifiche della macchina.
P.s. Il progetto sarà completamente Open Source, sia per l'hardware
che per il software.
Ciao e grazie a tutti.
Enzo.

Calogiuri Enzo ha scritto:

Viva lo Z80 !!!!!!!!!!
anch' io sto lavorando intorno ad un progetto con Z80 a 20 Mhz.
vorrei progettare un OS multitask, ma non so se ce la farò.......
comunque ho diverso materiale hw/sw in ebollizione.
ciao S.

Viva lo Z80 !!!!!!!!!!
Grande!!!
Queste frasi mi fanno sentire 20 anni di meno
The Z80 Lives yet!  once more!
ciao
  Stefano

 ha scritto nel messaggio
news:rb5in0lgr26p8k4av...@4ax.com...


Devo supporre che siete tutti interessati?
Che ne dite se metto su un piccolo sito internet con gli schemi iniziali?
Vi piacerebbe partecipare?
Fatemi sapere, perchč da solo non ci ruiscirņ mai !!!
Ciao e grazie a tutti!!!
Enzo.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ciao S.
Ciao,
ti va di darmi una mano?
Io non ci sono ancora arrivato al OS, ma penso dovrà essere qualcosa di
estremamente minimale, per lasciare spazio completo ai
programmatori,qualcosa che serva giusto a utilizzare le porte,le
periferiche e a caricare ed eseguire in ram i binari... poi uno si può
scrivere anche un Linux per Z80 :-)
Io lo intendo come un Home computer per il democoding, come console di
gioco e piattaforma sperimentale...
Che ne dici?
Grazie per aver risposto...
Ciao,
Enzo!


Fatemi sapere, perchč da solo non ci ruiscirň mai !!!
Primo contributo:
Guarda qui, si scarica anche un TCP-IP per z80
http://assembly-language.designerz.com/assembly-z80.php
Ciao
  Stefano

 Fatemi sapere, perchè da solo non ci ruiscirò mai !!!
Inizia col mettere tutto su un sito, vedrai che si farà viva molta gente...
Anzi, credo che esistano già dei progetti simili in rete.
Dai un'occhiata quì ad esempio:
http://jpb.forth.free.fr/
 [non so se l'indirizzo è esatto]
Non si tratta di Z80 però l'idea originale è simile...
Ciao,
A.D.

 Vi piacerebbe partecipare?
Si si, cosi imparo qualcosa :-)

 
http://assembly-language.designerz.com/assembly-z80.php
Grande, me lo metto da parte.

 Si,
 25 anni fa mi sono montato il micro Z80 di nuova elettronica, partendo 
dall'esadecimale, passando dal basic  su mangiacassetta e finendo con 
videografico, floppy, stampante e cp/M.
Ce l'ho ancora in giro, se volete lo smonto, e vi vendo i pezzi a prezzo 
modico, con schemi e tutto :-).

Grazie a tutti,
ora sistemo tutti i dati che ho e li metto su un sito, si comunicherò
a breve l'indirizzo a cui potrete dare uno sguardo...
Grazie ragazzi... vediamo di creare qualcosa di veramente bello...
Ciao,
Enzo!

 Non si tratta di Z80 però l'idea originale è simile...
Non è proprio la stessa cosa... il progetto originale dell'autore è un
semplice single board computer, con interfacciamento seriale, carino
ma tutto li... La mia idea è quella di fare un home computer completo,
tipo un MSX2 o un Commodore, insomma, colleghi il monitor e accendi...
Cmq grazie per la segnalazione !!!!!!!!!
P.s. La versione più avanzata del FORTH è stata sviluppata da un
gruppo di ricerca universitario svizzero...

 modico, con schemi e tutto :-).
Ma dai !!! E quanto verrebbe ? Potresti spedirmi prima qualche foto e
gli schemi se ti va ? Fammi sapere, sono moooooolto interessato :-)

 Fammi sapere, sono moooooolto interessato :-)
e' bello sapere che c'e' chi vuole ripercorrere il passato come se fosse 
l'oggi!

 e accendi...
Si, effettivamente sarebbe bellissimo... :-)
Hai già pensato a delle specifiche preliminari?
(Intendo su memoria, periferiche, video, audio...)
Ciao,
A.D.

Grande novità...
ho trovato un simpatico ragazzo (Giuliano) nonchè esperto di
elettronica e il suo sito ,
www.grix.it
, che ci supporteranno... tra
qualche decina di giorni sarà possibile accedere alle pagine e verrà
creata una comunità di sviluppatori HW/SW per il sistema...
Non ci posso credere, ci sono quasi riuscito... sono commosso...
Grazie a tutti, siete stupendi...
Ragazzi... non è venuto il momento di trovare un nome al progetto ?
Ciaoooo

 (Intendo su memoria, periferiche, video, audio...)
Memoria 16Mb, per la memorizzazione di massa intendevo interfacciare
chiavette USB e memorie SD (quelle delle macchinette fotografiche
digitali), non penso di utilizzare dischi fissi... a che servono?
forse un lettore cd, ma è molto in dubbio... tenendo conto che una SD
da 512 Mb costa 100 Euro...
Ricordate che non dobbiamo installarci Windows :-).
Per il video avevo pensato a uno o due PIC che (in parallelo se
utilizzati in coppia) elaborino il contenuto di una zona di memoria,
generando il segnale RF o RGB in uscita...
Audio non so... aspetto suggerimenti...
Ciao !

 Audio non so... aspetto suggerimenti...
Anche in questo caso comunque dovrebbero esserci dei chip della Yamaha
che fanno da "sintetizzatori" FM... Oppure fai come sullo Spectrum, dove
si pilotava "a mano" lo speaker!!!
Aggiungo un paio di suggerimenti: come tastiera si potrebbe usare una normale
PS/2, e come joystick un controller della Playstation! Entrambi si possono
gestire semplicemente tramite un PIC...
Ciao,
A.D.

Se puo' essere utile.....
http://aticatac.altervista.org/
e' un clone dello Zx Spectrum 128 ed e' italiano!
Marco

 dovrebbero esisterne ancora...
Il problema è trovarli, per un hobbista.
Lo stesso, peraltro, vale per l'eZ80190. Dove lo compro, se
ne voglio soltanto uno?
Inoltre, con cosa sviluppo il software? Assembler e compilatori C,
al momento, mi pare che siano solo commerciali. Sul sito Zilog
non c'è neanche una demo.
Secondo me, per partire con un progetto del genere a livello
amatoriale, occorre:
1) Cercare una CPU che si possa saldare senza problemi. Perlomeno non BGA.
2) Controllare che si riesca a comprare in unità singole. Altrimenti goto 1.
3) Controllare che esista un assembler a prezzo accettabile, possibilmente 
   free. Se non c'è, goto 1
4) Controllare che esista un compilatore C alle stesse condizioni
   del punto 3). Se non c'è, e non si vuol fare tutto in assembler, goto 1.
5) Una volta trovata la CPU, vedere che cosa ci possiamo interfacciare,
   sempre controllando di riuscire davvero a procurarsi i componenti, specie 
   se il progetto ha scopo didattico.
E' frustrante immaginarsi un intero progetto e scoprire alla fine che non
ci si riesce a procurare un elemento essenziale per terminarlo.

 
Ottimi suggerimenti, grazie.
Appena pronto il sito, se vuoi ti mando le password così possiamo
lavorare meglio...
Grazie di cuore !!!!!

non c'è neanche una demo.
http://sdcc.sourceforge.net/
C'ya
	Steve
-- 
Genius may have its limitations, but stupidity is not thus handicapped.
Elbert Hubbard (1856 - 1915)
   --- 
sbo...@despammed.com
 ---

 Fatemi sapere, perchč da solo non ci ruiscirņ mai !!!
Interessante. Se serve io potrei dare un appoggio esterno,
dato che conosco abbastanza lo Z80 ma ho poco tempo
per impegnarmi seriamente.
Suggerimento: provate a pensare ad un bus di espansione
compatibile con il vecchio bus ISA dei pc, magari nella
versione a 8 bit. Si potrebbero sfruttare vecchie schede obsolete
ma ancora funzionanti, per esempio schede video, rete, audio,
disk controller, I/O industiali, ecc. e sarebbe anche facile
svilupparne di nuove.

 lavorare meglio...
Ti ringrazio, ma visto il poco tempo libero che mi ritrovo non credo di poterti
offrire più di qualche parere o idea di tanto in tanto... :-)
Ciao,
A.D.

 o S-VHS e questo costa circa 5$ !!!
Per curiosità, potresti dirmi come si chiama questo componente?
Ho provato a cercarelo sul sito della Maxim ma non sono riuscito a trovarlo!
Conoscevo l'MC1377 della Motorola e un altro simile della Philips, che fanno
esattamente lo stesso lavoro, ma sarei curioso di dare un'occhiata anche al
datasheet di quello della Maxim...
A.D.
P.S. Ho trovato il datasheet di un RAMDAC abbastanza simpatico, che purtroppo
ora è fuori produzione, ma che a quanto pare si riesce ancora a trovare presso
alcuni distributorisi. Si chiama chiama BT481A, era prodotto dalla BrookTree
(Rockwell), ed ha un package PLCC44!

 ci si riesce a procurare un elemento essenziale per terminarlo.
Tutto questo è scaricabile gratuitamente dal sito della Zilog, io l'ho
gia fatto e il file si chiama ZDS368.Exe che è un'IDE (per windows)
sia per il C che per l'assembler e supporta tutti i processori Zilog,
in più crea i file di output in vari formati, anche .hex da mandare
alle rom...

Salve ragazzi, sono ancora vivo, nonostante stia spulciando tonnellate
di datasheet... mamma che fatica :-)
Per prima cosa voglio chiarire che tutti i componenti che uso nel
sistema sono facilmente reperibili e supportabili, anche a livello
Software...
Comunque per tornare al nostro "progettino", vorrei un pò di
informazioni, visto che siete tutti super informati/competenti :-)
Sto cercando sul sito della rscomponent un tipo di SRAM da utilizzare
e sinceramente non riesco a trovare chip che non siano paginati. Mi
spiego meglio, possibile che non esista un modulo, diciamo anche solo
di 1 Mb, che sia linearmente indirizzabile ? E come è possibile che 4
Mb di ram abbiamo solo 19 linee di indirizzamento? Con 19 linee posso
solo indirizzare 512 Kb di ram (che poi è la dimensione delle
pagine)...
Possibile che siano tutte così o sto sbagliando qualcosa io?
La cosa curiosa è che anche una ram di 64Kb è paginata a keyword di
8Kb !!!!!
Quando lavoravo con il mitico MicroProfessor usavamo ram di 8,16,32Kb
ma l'indirizzamento era lineare...
AIUTO !!!!!!!!!!

 A.D.
Scusa, ma ho confuso il produttore, il chip è dell'Analog Devices : AD722!
Scusate, ma sto navigando in centinaia di file PDF...


8Kb !!!!!
Non so cosa stai guardando,
Questa è sicuramente ram non paginata da 512k*8
http://www.st.com/stonline/books/pdf/docs/7992.pdf
Per lo Z80 guarda anche questa pagina:
http://www.dontronics.com/z80.html
ciao
  Stefano

   Stefano
Ciao,
scusa la mia ignoranza ma la ram che mi hai segnalato non è pagitata anche
lei? L'organizzazione a 512Kb x 8 non individua le varie pagine? E Il bus
indirizzi a 19 pin non mi permette di arrivare alla cella 7FFFF, cioè 512
Kb di ram? E come cambio poi pagina? 
Non dovrebbero essere 22 i pin per l'indirizzamento ? (2^22 = 4Mbyte) ?
Dal eZ80190 escono 24 pin di indirizzamento (2^24 = 16 Mb)... non
capisco...
Cmq, grazie !!!!


 Cmq, grazie !!!!
Lascia stare... sono scemo... 4MBit non 4MByte... la tua segnalazione è
esatta... Come sono scemo... :-)
Ciao !


capisco...
Ram paginata significa che hai un indirizzo di pagina all'interno
della quale tu vai a selezionare la cella.
Nella M68AF511A -4 Mbit (512K x8), 5V Asynchronous SRAM-
tu non devi selezionare alcun indirizzo di pagina ma puoi accedere a
qualunque indirizzo tra i 512K disponibili.
Il chip eZ80 ha la possibilità di selezionare una zona di memoria per
4 chip select, tu dovrai solo selezionare il top o bottom di ogni CS\
sugli appositi registri e se non ti bastano i 4 CS\ dell'eZ80 puoi
mettere un decoder tipo 74HC138 -HC139 per selezionare successivi chip
select all'interno di una zona.
Per esempio fai un cs. di 2Mbytes da 000000H a 200000H e con un HC139
gli connetti successivamente 4 M68AF511A da 512k.
Ma questa è una limitazione del chip eZ80 e non significa usare
memoria paginata.
 ciao
   Stefano

 (Rockwell), ed ha un package PLCC44!
TROVATO !!!
Analog Device produce attualmente un RamDac a 8 Bit molto economico (mi
sembra 6$) lavora anche a 50 Mhz di clock, in input riceve i valori RGB a
otto bit (quindi 24 bit totali in entrata) e genera i segnali in uscita
RGB analogici + segnali di sincronizzazione per il monitor.
Solo una cosa non ho capito bene, come si fa a settare la risoluzione...
devo ancora studiare...
E devo trovare un modo per inviarli i dati (... 24 bit...) :-O
Suggerimenti ?
se vi va date uno sguardo qui:
http://www.analog.com/UploadedFiles/Data_Sheets/173587347adv7120.pdf
La cosa bella è che si trova in configurazione DIP 40 Pin...


 svilupparne di nuove.
Grazie dell'aiuto, Valeria.
La tua idea mi piace, avevo infatti previsto un bus di espansione.
Ma si trovano poi le specifiche tecniche e i circuiti necessari a
sfruttare un bus ISA ?
Ciao e grazie !


 
Ho già diverso materiale H/S in fase di progettazione. Ripeto, io sto 
usando uno Z80 a 20 Mhz perchè è facilissimo da 
maneggiare/programmare/interfacciare. Attualmente sto lavorando intorno 
alla MB che é così strutturata: Z80 @ 20 Mhz, 256 M SRAM, 32/64 K eprom,
8255 PIO, CTC, RTC, interr. controller (rudimentale) hardware, e 
qualcosaltro.
Penso che inizialmente lo collegherò ad un lcd attraverso l' 8255.
Per la tastiera ho già pronto un piccolo controller (sempre con lo Z80 
!)...... ed altre cose/idee sparse.
Se a qualcuno interessano idee/schemi opensource sono quì.
ciao a tutti - S

 alle rom...
...e infatti questo in particolare NON ha un compilatore. Il compilatore
C va comprato separatamente, c'è scritto nell'help in linea (FAQ, punto 24).
Il file README dice:
** ZDS consists of the ZiLOG Macro Cross Assembler, Linker, and Editor. 
** It includes Debugger support for Z8/Z8Plus/Z89C00/Z180/Z380/eZ80. 
Assembler e debugger, compilatore C non incluso.
SDCC, che mi è stato suggerito in precedenza, genera codice per Z80, ma
se vuoi indirizzare 16MB di RAM probabilmente non ti basta.
Compilatori per Z80 ce ne sono sicuramente molti in giro, ma tu
vuoi sfruttare le caratteristiche "extra" dell'ez80. 
Quindi:
- o ti compri tutto il kit di sviluppo (ma l'uso didattico diventa improponibile)
- o scrivi tutto in assembler -- si può fare ma diventa molto noioso.
- o scrivi le parti più critiche in assembler, le altre in C,
le compili con SDCC (per z80) e cerchi di linkarle 
insieme. Non so se sia fattibile.
Secondo me se prima di partire non ti assicuri di riuscire a compilare
(e magari debuggare/simulare) un programma che fa almeno lampeggiare
un led, rischi di perdere un bel po' di tempo.

Valerio Gionco ha scritto:

Chiedo scusa se intervengo in questo modo, ma vorrei sottoporvi questa
"dissertazione filosofica":
il motivo per cui ci si può avventurare in una impresa come questa può 
essere soltanto di tipo ludico/didattico perchè altrimenti basta 
acquistare per quattro soldi ad una fiera dell' elettronica una m.board 
nuova con processore da 100/500 mhz e ci si può divertire a fare 
qualsiasi cosa, dalla riprogrammazione del bios fino ad inventare un 
sistema operativo.
Un ragionamento quasi simile si può fare circa l' utilizzo di 
controllori moderni (PIC e similari ). Sono l' ottimale se lo scopo è 
ottenere qualcosa di compatto e di facile/immediata realizzazione, 
altrimenti che frustrazione vedere uno scarafaggio che fa tutto lui........
Se quanto sopra è vero, io propongo di utilizzare il processore Z80 che 
non costa quasi nulla, è facile da programmare, e soprattutto lo si può 
maneggiare in quanto è in contenitore DIL, analogo ragionamento vale per 
gli altri chip di contorno. La versione a 20 Mhz è veramente una 
scheggia. Il software non manca, per cui pensare di arrivare ad un OS 
opensource di tutto rispetto non mi sembra un' impresa impossibile.
Chi vuole, per iniziare,  può dare un' occhiata quì
http://mio.discoremoto.virgilio.it/sandro_gio
si tratta di un KB controller.


 Se a qualcuno interessano idee/schemi opensource sono quì.
Grazie,
questo fine settimana, se mi lasciano stare, metto su le prime pagine del
sito... poi magari vediamo le tue soluzioni software... Ma indirizzi 256Mb
di Ram ??? E Come Fai?
Uff ragazzi, non vi nascondo che la cosa diventa difficile da farsi...
dovrò ridurre il mio progetto? Spero di no... :-)
Ciao, Enzo.


 un led, rischi di perdere un bel po' di tempo.
Infatti hai ragione, vedo di organizzarmi e di provare a fare almeno
accendere un led...


 
il registro I viene presentato sul bus indirizzi da A8 ad A15 nella fase 
finale di ogni ciclo di fetch. Basta fare un latch su un ff multiplo e 
si hanno a disposizione 8 bit per fare qualsiasi cosa, ad esempio 
mappare banchi di 32 K di RAM nella parte alta degli indirizzi e 
lasciare 32 K fissi nella parte bassa per l' OS.
Lo swap tra un banco e ' altro si fa semplicemente così:
LD   A,I
AND  1111 1101
OR   0000 0010
LD   I,A
NOP
l' ultimo NOP serve per fare un fetch che memorizza nel registro di uscita.
ciao S.

 1MHz! Che non è sufficiente ad ottenere neanche una risoluzione di
320x200.
E' vero. Con un pic non riesci a generare un segnale video
di risoluzione decente in tempo reale.
Non so se conoci questo progetto, è di Rickard Gunee,
ed è il gioco del pong e del tetris con immagine video
generata in tempo reale da un PIC 16F84:
http://www.rickard.gunee.com/projects/
L'immagine generata è in bianco e nero,
per il colore, a usato l'SX, che è più veloce.
Io ho realizzato in un PIC16F628,
il tetris e il pong insieme, condensando il codice
che Rickard ha tenuto separato in due PIC16F84.
Quando usato per scrivere testo,
occorreva un'intera riga orizzontale
nera per preparare in byte di memoria adiacenti
la riga successiva, che veniva sparata più in fretta
possibile, usando l'istruzione rlc,
(Rotate left through carry) su una porta
in cui l'ultimo bit a destra andava a schermo,
e gli altri 7 erano configurati come input:
barbatrucco per sparare un pixel per ogni istruzione.
Così vengono sparati 8 pixel, quindi
schermo nero per preapare l'altro byte,
quindi altri 8 pixel. Non si riescono a mettere
più di 8 caratteri 8x8 per riga, con questo sistema.
Quindi l'idea di generare l'immagine video
in tempo reale col PIC non è praticabile.
Però c'è questa memoria, venduta da RS,
che ha abbastanza capacità per memorizzare
un'intera schermata PAL, con campionamenti a 8 bit.
Ma soprattuto è una FIFO, consente letture e scritture
contemporanee, e a differenti velocità di clock,
e in modo seriale (senza specificare indirizzo,
ma solo reset e clock). C'è il tipo a 8 bit e quello a 4 bit.
http://www.okisemi.com/jp/datadocs/doc-eng/msm518221a.pdf
(Grazie al mio omonimo paolo
per avermi fatto conoscere questo chip).
Quindi puoi usare questa RAM come buffer video,
in uscita un semplice oscillatore e un DAC,
per generare l'immagine video, anche a refresh elevati.
In ingresso il PIC, che genera l'immagine video
solo quando va aggiornata, e con tutta la lentezza
di cui ha bisogno. Con questo approccio,
può darsi che mentre il PIC aggiorna l'immagine,
e il resto del circuito fa il refresh video,
ottieni per metà immagine la schermata vecchia,
per l'altra metà la schermata nuova, poiché
l'aggiornamento effettuato dal PIC non è
sincrono con il refresh su video. Se vuoi
complicarti la vita, metti due chip di ram,
e implementa un double-buffering:
il PIC aggiorna una ram, a schermo viene
mandata l'altra. Quando la prima è pronta,
le funzioni si scambiano di posto,
ma questa complicazione davvero non serve!
Con questo approccio il PIC ha potenza
di elaborazione libera per funzioni acceleratrici 2D,
per esempio riempire rettangoli di colore uniforme,
tracciare linee inclinate, accesso a palette di colori,
una rom-caratteri interna, riprogrammabile,
e quant'altro :-), sgravando il processore da questi compiti :-)
Non so se si riesce a generare l'immagine
video-composito a colori con algoritmi di calcolo
sofisticati, che io non conosco. Altrimenti dovrai
generare R G B separati, da miscelare
col chip a cui avevi pensato tu, oppure senza
miscelarli, e inviandoli direttamente ad un Tv
con i canali R G B della scart, o ad un monitor VGA.
Spero di averti dato qualche suggerimento utile!
Buona fortuna con questo progetto!
Paolo Sancono - Genio Incompreso  
http://www.ideegeniali.it/
--
Il cuore ha ragioni che la ragione non conosce
Blaise Pascal

giorgi ha scritto:

chiedo scusa, ho scritto 256 MB ma intendevo 256 K (4 chip x 64 K).
Colpa di quello che gira oggi sui pc....... e della vecchiaia
- S.