La sola descrizione mi ha eccitato come un cammelo! (Non ho detto dromedario, bada bene ;-)) Manca solo la possibilita' di interagire col film porno, ovvero peek&poke on the fly per far assumere alla pornostar di turno la posizione che preferiamo, dopodiche' credo che molti frequentatori della ML potrebbero anche decidere di fare a meno del sesso (da qui il termine 'smanettoni'? ;-)) Il 04/01/09, Alessandro<alessandro.poppi@xxxxxxxxx> ha scritto: > Buon Anno :-) > > Nei giorni scorsi ho aggiunto qualche funzionalita' un po' bizzarra alla > versione principale del clone, ovvero quella che gira sulla scheda 3E. > > C'e' un picoblaze www.xilinx.com/picoblaze affiancato al T80, che esegue > compiti di servizio. > > Uno e' quello di visualizzare un puntino in movimento su 7 led (stile > supercar :-) proporzionale alla reale cadenza di M1, quindi e' un buon > indice della velocita' di esecuzione del processore. Ogni avanzamento > avviene dopo il conteggio di 62500 cicli M1, che moltiplicati per 8 (anche > se ci sono 7 led disponibili, l'ottavo era gia' usato) portano ad un 'giro > di led' ogni 500K istruzioni eseguite. > > Il picoblaze gestisce anche il display LCD, morto in tutte le precedenti > versioni, visualizzando il contenuto dei registri del clone ($7FFD, $1FFD, > piu' tutti quelli custom) in modo da sapere sempre qual e' il ram_bank o > rom_bank o ddr bank attivo, se i registri sono lockati, etc etc (insomma > tutto quello che si puo' dedurre dal contenuto dei registri). > > Nella riga sotto c'e' l'indirizzo ed il dato a cui lo Z80 sta accedendo, > seguito da due lettere (non c'era spazio) che sono 'm' se e' un accesso in > memoria, 'i' se I/O + 'r' se e' lettura, 'w' se e' scrittura. Ovviamente non > si legge una mazza, ma qui entra in ballo la manopolina dell'encoder: > ruotandolo verso destra si aumenta la frequenza di clock 'on-the-fly' da 3.5 > fino a 42MHz, ma ruotandolo verso sinistra, quando si 'sfora' sotto i 3.5MHz > entra in funzione un prescaler. > > Questo prescaler, che e' a 24 bit e puo' essere scritto dal picoblaze a > piacimento, viene riempito di '1' man mano che si ruota verso sinistra ed > eventualmente svuotato ruotando a destra (quando e' di nuovo vuoto, la > frequenza torna a salire fino a 42MHz. > > Il contenuto del registro e' utilizzato nella fpga per scartare un pari > numero di clock Z80 dopo ogni accesso in memoria o I/O. Quindi, ruotando di > tre colpi, il registro conterra' 000007 (tre bit set) e verranno persi 7 > clock dopo ogni accesso. > > Ogni volta che il contatore si esaurisce, il clock Z80 ricompare e dura un > 'treno' fino a quando non si completa un nuovo ciclo; in questo modo, sul > display appare ad ogni 'step' l'indirizzo, il dato ed il tipo di operazione > appena svolta. Per esempio, un loop LDIR mostra i due opcode fetch (ED, B0) > poi il ciclo di lettura in memoria del dato da copiare, poi il ciclo di > scrittura nella locazione destinazione. Per me e' come vedere un porno. Se > si tratta di un opcode fetch, il led avanza subito (senza prescaler 62500 > altrimenti non si muove piu' :-) > > La velocita' piu' bassa e` 7FFFFF e corrisponde ad una istruzione ogni 2 > secondi. (O meglio, ad un ciclo memoria o I/O). Scendendo ulteriormente a > FFFFFF si entra in modo 'single step'. Lo Z80 resta fermo ed avanza di un > ciclo solo quando si preme il bottone WEST. > > Ho fatto un paio di partite a raiders smanettando sull'encoder in modo da > vedere i proiettili a velocita' di lumaca. E' facile vincere :-) > > Ciao! > > >