n° 219
Novembre 2017
Dicembre 14, 2017, 12:51:32 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: 1 2 [3] 4   Vai giù
  Stampa  
Autore Discussione: Z80: Problema puntatori ?  (Letto 20618 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #30 inserita:: Settembre 26, 2015, 04:26:28 »

Ti conviene dare un'occhiata a questa discussione, in cui si parla anche dell'operatore address-of &. Le espressioni &Array[ofs] e Array + ofs sono esattamente la stessa cosa per il compilatore, finché non si tenta di usare quelle sbagliate come lvalue. Felice

Anche questa discussione potrebbe essere molto formativa. Giocare con puntatori e array in C è molto diverso rispetto a qualsiasi altro linguaggio. Anche per questo un buon manuale è indispensabile...
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #31 inserita:: Settembre 26, 2015, 05:14:28 »

seguo il consiglio, ho modificato le righe di codice come suggerisci, le ottimizzazioni del codice che ho fatto fino ad adesso hanno dimagrito il binario di 2k  Ghigno e sembra anche piu' veloce  Fico
Registrato
ciclonite
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 21


Mostra profilo E-mail
« Risposta #32 inserita:: Ottobre 09, 2015, 03:33:37 »

Ciao! Ho seguito tutta la discussione e GizMo ti devo fare i miei complimenti!! E non ti nascondo che quando sento parlare di Z80 una lacrimuccia mi scende in ricordo dei bei tempi con il mitico TOSHIBA HX20. Era impressionante cosa si poteva fare con 64KB di ROM.
Scusate l'ot.
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #33 inserita:: Ottobre 09, 2015, 03:47:33 »

Ciao! Ho seguito tutta la discussione e GizMo ti devo fare i miei complimenti!! E non ti nascondo che quando sento parlare di Z80 una lacrimuccia mi scende in ricordo dei bei tempi con il mitico TOSHIBA HX20. Era impressionante cosa si poteva fare con 64KB di ROM.
Scusate l'ot.

[OT]
Cioè questo:

http://www.old-computers.com/museum/computer.asp?c=580&st=1
[/OT]   Sorriso
Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #34 inserita:: Ottobre 09, 2015, 04:52:23 »

Come già ricordato qui, il mio secondo "computer" era in realtà un controller industriale Z80A su scheda doppio Eurocard. In seguito ho avuto per anni un TRS-80 model II d'importazione parallela, macchina decisamente futuribile (card cage e bus passivo, Z80A 4MHz...) per l'epoca.

Molti anni dopo sono riuscito fortuitamente a mettere le mani sia su un model-I con unità di espansione, sia su un rarissimo Model III, purtroppo ambedue alluvionati e quindi in condizioni talmente malridotte da risultare non recuperabili con un normale intervento di restauro. Assai poco propenso all'idea di usarli come fermaporte, dopo averli sommariamente rimessi in sesto, li ho poi ceduti a mia volta (purtroppo non ho a disposizione lo spazio che ha Dave Dunfield a casa sua... Indeciso).
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
ciclonite
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 21


Mostra profilo E-mail
« Risposta #35 inserita:: Ottobre 10, 2015, 11:32:02 »

Ciao! Ho seguito tutta la discussione e GizMo ti devo fare i miei complimenti!! E non ti nascondo che quando sento parlare di Z80 una lacrimuccia mi scende in ricordo dei bei tempi con il mitico TOSHIBA HX20. Era impressionante cosa si poteva fare con 64KB di ROM.
Scusate l'ot.

[OT]
Cioè questo:

http://www.old-computers.com/museum/computer.asp?c=580&st=1
[/OT]   Sorriso

Esatto!! C'è l' ho ancora in soffitta  Felice
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #36 inserita:: Ottobre 10, 2015, 02:46:11 »

[OT]
Io invece ho questo:  Sorriso

http://www.retrogamingcollector.com/Retro-Computers/MemotechMTX512.html
[/OT]
Registrato
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #37 inserita:: Ottobre 10, 2015, 02:48:27 »

Io intanto sto aspettando da una ditta il preventivo per avere il nuovo PCB, spero che non mi pelino perche' rifarlo come quello vecchio con la serigrafia fotografica con tutte le piste e i via grossi non me la sento piu' perche' fanno falsi contatti da tutte le parti e hanno sempre dei guasti, di fatti il PCB che stavo usando e' defunto quache giorno fa, la scheda si riavvia da solo in loop, se torco il PCB ogni tanto parte, ho passato 2 sere di fila col tester a cercare il difetto ma non riesco a trovarlo.

Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #38 inserita:: Ottobre 10, 2015, 09:22:57 »

Ci sono numerosi service per prototipi, anche nel Far East, con preventivi e ordini online.

Comunque su quel PCB molti percorsi possono essere ottimizzati manualmente e le zone di massa possono essere ampliate fino a coprire la massima superficie, inoltre alcune piste sono troppo vicine tra loro e ai pad anche per i processi produttivi offerti dai service attuali. Mai fidarsi ciecamente dell'autorouter e del checker, peraltro piuttosto primitivi in Eagle.

Molte piste oltre a quelle di alimentazione possono tranquillamente avere una larghezza anche maggiore, il che si traduce in una minore impedenza ma anche in minore fragilità meccanica sotto torsione e contro le microinterruzioni. In una scheda con così bassa densità dei componenti TH e frequenza di lavoro così ridotta si può abbondare rispetto agli standard di default.

L'allineamento con la piedinatura metrica SMD del connettore CF va rivisto. Per forzare Eagle ad allineare la pista alla gliglia del componente, anche se quella corrente è imperiale, occorre "routare" manualmente ogni pista cliccando sul ratsnest wire nei dintorni del pad del connettore. In seguito, alla prima curva, la pista in tracciatura andrà automaticamente in snap sui riferimenti della griglia attuale.
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #39 inserita:: Ottobre 10, 2015, 09:55:38 »

Per l'autorouter ho usato le impostazioni usate da http://www.allthingsmicro.com/index.php/projects/build-a-z80-based-computer per la versione della scheda da cui deriva il mio, lo so che farle a mano vengono meglio ma ci vuole troppo tempo, non vorrei passare un mese a fare questo PCB a me basta che non si guasti come quello fatto in casa senza metallizzazioni dei fori, tanto per andare son abbastanza sicuro che vada. Posso provare ad aumentare la spaziatura tra i via e le piste, invece non ho capito quella del conettore CF.
Registrato
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #40 inserita:: Ottobre 11, 2015, 01:47:39 »

Tornando al software, come si fa se volessi compilale le routines di accesso a basso livello alla CF dentro il codice del bios e poi richiamarle dl kernel e/o dalle applicazioni senza dover ricompilare le stese routines dentro ogni programma che deve accedere alla CF ?
Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #41 inserita:: Ottobre 11, 2015, 03:58:35 »

Devi conoscere gli indirizzi assoluti delle routine per richiamarli dal firmware utente.
Il metodo più razionale per ottenere ciò consiste nell'usare una jump table o vector table, collocata in una posizione strategica in ROM (tipicamente allocata agli indirizzi più alti).
In tale modo, il software utente piazzerà una call alla entry n-esima della jump table, che risulterà così strutturata:
Codice:
   JMP ROUTINE1
    JMP ROUTINE2
    JMP ROUTINE3
    ...
    JMP ROUTINEn

In C tutto ciò è facilmente implementabile con l'uso di puntatori a funzione, o meglio ancora con l'uso di Assembly inline.
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #42 inserita:: Ottobre 11, 2015, 06:43:24 »

Non sono sicuro di aver capito, allora io compilo il bios con dentro le routines che voglio integrare, poi dai programmi utente chiamo jump indirizzo dove sta la routines, ma come faccio a sapere dove il compilatore ma mappato la routines ?
Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #43 inserita:: Ottobre 11, 2015, 06:46:16 »

Devi guardare l'output in Assembly del compilatore, e quindi ricreare una tabella dei riferimenti assoluti dove sono mappati gli entry points delle varie routine. Questa è una delle strane cose che sono enormemente più facili da fare in Assembly che in C per un beginner. Ghigno

Dubito fortemente che il compilatore che stai usando sia in grado di farlo in automatico, al contrario di altri ambienti, comunque non è particolarmente difficile.
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #44 inserita:: Ottobre 11, 2015, 06:59:38 »

Il compilatore mi genera un file .map di cui riporto un pezzettino

Codice:
_ADDRESS32 = B3DB, G: Z80
_BASECHAR = BAFB, G: LTOA_ANY
_CAPACITY_INFO = 82BB, G: Z80
_CD = 92D6, G: Z80
_CERCA_FILE = 8AFE, G: Z80
_CERCA_FREE_SLOT = 8CB1, G: Z80
_CF_ERASE_CMD = 817E, G: Z80
_CF_FORMAT = 8513, G: Z80
_CF_ID = 8221, G: Z80
_CF_INIT = 8010, G: Z80
_CF_IO_8B_CONTATORE = A17E, G: Z80
_CF_IO_CONTATORE = 800E, G: Z80
_CF_READ_CMD = 8132, G: Z80
_CF_SIZE = B3D3, G: Z80
_CF_SIZE2 = B343, G: Z80
_CF_WRITE_CMD = 8158, G: Z80
_CLEAR_BUFF = 830D, G: Z80
_CLEAR_CMDBUFFERA = 847A, G: Z80

sono per caso questi ? nomi delle routines e indirizzi, ad esempio CF_INIT all'indirizzo 8010 ?
Registrato
Pagine: 1 2 [3] 4   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines