Mi farebbero comodo anche le sintassi delle varie pseudoistruzioni (org,
ecc...)
Grazie in anticipo.
Ma l'assemblatore lo hai gia'? Se si nel manuale c'e' la sintassi che
chiedi, leggermente variabile da un assemblatore all'altro anche se in
modo minimo (una differenza puo' esserci con un macroassemblatore che
permette la direttiva macro).
Per unire piu' sorgenti in genere c'e' la direttiva .include "nomefile"
Non e' detto che si debba necessariamente ottenere un hex, dipende da
cosa si aspetta il programmatore di eprom/eeprom/flash, potrebbe andare
bene anche direttamente un'immagine binaria.
Se ti puo' servire (e ti fidi :-P) ho scritto questo assemblatore Z80 in
Python con le funzionalita' di base:
http://stor.altervista.org/python/pyfZ80/pyfZ80.html
Claudio_F
eppoi lo Z80 non e' vecchio (dato che sopravvive a processori ben piu'
potenti e moderni venuti dopo di lui e gia' scomparsi da tempo) :D
no, l'assemblatore non ce l'ho e non saprei come orientarmi per
adottarne uno.
proverò con il tuo :-)
altrimenti quale consiglieresti?
come formato di uscita va benissimo anche il .bin
grazie, ciao.
Paolo.
Ci ho assemblato i vecchi programmi che avevo scritto e il codice
oggetto prodotto e' risultato identico.
> altrimenti quale consiglieresti?
Non saprei, ma immagino che esistano altre alternative free. In passato
avevo usato solo un assemblatore per dos.
> come formato di uscita va benissimo anche il .bin
Il mio produce solo binario in files .rom
Altrimenti fai l'assemblaggio manuale :)
http://stor.altervista.org/z80/ese2.htm
Claudio_F
> Salve, qualcuno saprebbe darmi dei riferimenti per capire come usare un
> assemblatore per Z80?
...
Non l'ho mai usato, ma dev'essere estremamente valido.
Nel pacchetto è incluso anche l'assemblatore.
Ti sconsiglio di mettere le mani subito sul linker se non vuoi
impazzire.
Niente di più facile che incasinarsi con le "public" e le "extern"...
Piccio.
io dovrei assemblare un vecchio CP/M plus adattandolo a un mio computer
in fase di ultimazione (quando avrò capito come adattarlo e come
assemblarlo).
prima ancora dovrei scrivere delle routine di controllo per testare
l'interfaccia video, tastiera, seriali, parallela, floppy... ecc...
>
>> altrimenti quale consiglieresti?
>
> Non saprei, ma immagino che esistano altre alternative free. In passato
> avevo usato solo un assemblatore per dos.
>
>
>> come formato di uscita va benissimo anche il .bin
>
> Il mio produce solo binario in files .rom
per il mio programmatore va bene anche quello.
>
>
> Altrimenti fai l'assemblaggio manuale :)
> http://stor.altervista.org/z80/ese2.htm
>
>
già fatto. mai più :-)
ciao.
ne avevo sentito parlare, ma quello lavora in C.
Dici che potrei lo stesso scrivere solo codici mnemonici?
o forse sto confondendo compilatore e assemblatore...
> Ti sconsiglio di mettere le mani subito sul linker se non vuoi
> impazzire.
> Niente di piů facile che incasinarsi con le "public" e le "extern"...
credo che dovrň farlo se voglio assemblare un CP/M.
ciao.
...
> ne avevo sentito parlare, ma quello lavora in C.
> Dici che potrei lo stesso scrivere solo codici mnemonici?
...
Tipicamente i compilatori seri producono un listato in assembly che
viene poi assemblato per cui nel pacchetto sono presenti compilatore
C, assemblatore e linker.
Nulla vieta di scrivere parti in puro assembly ed unirle con parti in
C.
Il linker permette proprio di creare queste possibilità oltre ad un
sacco di altre opzioni.
Ad esempio, evita di dover ricompilare sempre le stesse parti che non
subiscono modifiche riallocando semplicemente gli indirizzi e gli
spiazzamenti.
Gestisce le librerie potendo estrarre routine precompilate da una
serie senza doverle includere tutte (evitando di dover rendere
disponibili i sorgenti).
Ho usato in passato il MASM per x86 affiancato dall'EDIT del DOS che è
molto fedele a questo tipo di ambiente.
Ambienti analoghi per FUJITSU (8 e 16 bit) e addirittura (con ampi
limiti, però) per ST6.
Credo che la documentazione sulle direttive, quindi, non manchi.
Ciò che sicuramente cambia sono i parametri sulla linea di comando per
selezionare le varie opzioni.
Ricordo bene di aver sempre creato dei file batch per poter compilare
senza impazzire.
Avevo realizzato anche un emulatore di EPROM e quando sviluppavo
potevo vedere gli effetti delle modifiche con tre tasti: 1)
assemblaggio 2) linker 3) trasferimento all'emulatore di EPROM.
Domandona sul CP/M: è possibile farlo girare su di un kernel con la
sola seriale e collegare un terminale?
Mi "stimolerebbe" mettere insieme un sistemino e vederlo girare.
Ma i sorgenti sono free?
Piccio.
>
> o forse sto confondendo compilatore e assemblatore...
>
> > Ti sconsiglio di mettere le mani subito sul linker se non vuoi
> > impazzire.
> > Niente di pi facile che incasinarsi con le "public" e le "extern"...
>
> credo che dovr farlo se voglio assemblare un CP/M.
>
> ciao.
>Salve, qualcuno saprebbe darmi dei riferimenti per capire come usare un
>assemblatore per Z80?
>In particolare, una volta scritto il codice in mnemonici (con notepad? o
>c'è di meglio e specifico?),
Non conosco un IDE particolare per Z80, io ho fatto un tipo particolare di file
su Ultraedit che mi evidenzia le istruzioni Z80, è utile per evitare errori
sugli mnemonici.
Qui:
trovi moltissima roba sullo Z80, con assemblatori compilatori ed emulatori.
> come ottengo il .hex da programmare nella rom?
Di solito con un linker, che però produce un file Ascii-Intel, poi con un
programma come HexBin o HexStuff ti ricavi il .bin
>E se il codice è scritto diviso in più documenti .txt?
Allora ti serve un linker, e dovrai dichiarare EXTERN e PUBLIC le variabili e
costanti usate dai segmenti di programma in modo che il linker le trovi.
In genere se le dimensioni del programma crescono, meglio fare un nuovo segmento
e scrivere solo in quello.
In caso di modifiche dopo del tempo, se hai organizzato i files in modo che le
parti siano facilmente individuabili e collegate a funzioni definite, sarà più
semplice trovare il punto in cui intervenire.
>Mi farebbero comodo anche le sintassi delle varie pseudoistruzioni (org,
>ecc...)
Dipende dall'assembler che vai a usare, nel link che ti ho scritto sopra ce ne
sono diversi, leggi l'help di quello che preferisci.
--
ciao
Stefano
Ma il CPM non era scritto in PLM80 (+asm80)?
Su http://www.cpm.z80.de/binary.html c'e' un riferimento al plm80 e asm80
relativi alla
compilazione del cpm3
ciao
delo
> Avevo realizzato anche un emulatore di EPROM e quando sviluppavo
> potevo vedere gli effetti delle modifiche con tre tasti: 1)
> assemblaggio 2) linker 3) trasferimento all'emulatore di EPROM.
questo sarebbe anche un mio progetto futuro.
hai qualche spunto dal tuo schema?
>
> Domandona sul CP/M: è possibile farlo girare su di un kernel con la
> sola seriale e collegare un terminale?
> Mi "stimolerebbe" mettere insieme un sistemino e vederlo girare.
> Ma i sorgenti sono free?
>
il CP/M nasce per funzionare con un terminale seriale, d'altra parte
negli anni '70 era quella la configurazione tipica.
per scrivere un carattere sullo schermo c'è una specifica chiamata al
bios che preleva dal registro accumulatore il valore ASCII del carattere
da visualizzare, e lo invia tramite seriale al terminale che lo
visualizza all'attuale posizione del cursore. ne consegue che la
scrittura avviene unicamente in modo sequenziale, almeno fino al cp/m
2.2, sul plus non ho ancora studiato.
nel mio caso dovrò scrivere una routine di gestione del video che
preleva l'ASCII dall'accumulatore, ma invece di inviarlo via seriale lo
gestisce internamente per scrivere sulla memoria video, tramite una
tabella di conversione e nella giusta posizione, la forma del carattere
corrispondente. questo perché la mia interfaccia video lavora solo in
bitmap e non con generatore di caratteri.
ci sono molti appassionati del genere, principalmente in america e in
germania.
io spererei di finire il bios in tempo per gli esami di maturità
all'itis il prossimo giugno, visto che sono tornato studente alle serali
e conto di terminare gli studi abbandonati anni fa. :-)
dite che come progetto per la tesi sia sufficientemente interessante? :-)
ciao.
si, ma i sorgenti che trovo in internet sono tutti con mnemonici dell'8080
ho un bel pacco di informazioni da acquisire prima di mettermi
all'opera.. ma intanto superare lo scoglio dell'assemblatore non sarebbe
male.
ciao.
ciao
delo
> Salve, qualcuno saprebbe darmi dei riferimenti per capire come usare un
> assemblatore per Z80?
> In particolare, una volta scritto il codice in mnemonici (con notepad? o
> c'� di meglio e specifico?), come ottengo il .hex da programmare nella rom?
> E se il codice � scritto diviso in pi� documenti .txt?
http://www.le.infn.it/~fulvio/z80main.htm
--
IBM: It's Been Malfunctioning
News 2002 [v 2.4] - [ StopDialers/PopDuster/SMTP Proxy - http://www.socket2000.com ]