Potresti dire alla funzione di breakpoint quanti sono i blocchi che deve caricare prima di far partire l'NMI. La funzione conta i passaggi da $05E2 e decrementa un counter. L'NMI si attiva solo se il counter e' a zero. Ovviamente devi sapere prima di quanti blocchi e' composto il programma. In ogni caso il punto piu' furbo in assoluto e' all'interno del programma stesso. Infatti con i caricamenti turbo temo che il tuo trucco non funzionera' (anche se e' gia' un'ottima trovata!) Forse sarebbe piu' efficace un sensore audio che rilevi l'assenza di suono sulla porta EAR e faccia scattare l'NMI appena caricato l'ultimo bit da nastro;-) Ciao! Eugenio 2009/1/5, Alessandro <alessandro.poppi@xxxxxxxxx>: > On Sunday, January 04, 2009 4:10 PM [GMT+1], > Eugenio Ciceri <eugenio.ciceri@xxxxxxxxx> wrote: > >>> cammelo è carmelo in siciliano > >> Rende ancora meglio ;-) > > Oggi ho aggiunto i breakpoint. La colpa e' del fatto che ieri sera ho deciso > di passare una serata tranquilla caricando in fila i giochi elencati nel > libro "zx-spectrum book" per poi snapshottarli :-) sulla sd-card. C'erano > pero' un sacco di belle schermate che andavano perse, dato che e' > impossibile premere l'NMI proprio alla fine del caricamento ma prima che > vengano cancellate. > > Ho allora pensato di aggiungere una funzione di breakpoint e puntarla al RET > della routine di caricamento da nastro. Quando l'indirizzo combacia, viene > generato un NMI e si entra nella bootrom (con la quale si possono fare > snapshot) mentre sullo schermo e' ancora presente la schermata di > presentazione, ovvero un attimo prima che il programma venga lanciato. > > Dato che da cosa nasce cosa, alla fine ho reso l'indirizzo ridefinibile ed > oltre a breakpoint 'nmi' e' possibile settarne uno che attiva il > single-step, ovvero un vero e proprio breakpoint hardware ad uso debug > (anche se non potendo vedere i registri dello Z80, non serve a molto). > > Al momento l'indirizzo di breakpoint ($05E2) viene mostrato sul display ma > non e' possibile modificarlo; probabilmente domani aggiungero' un editor al > firmware del picoblaze (ma mi e' rimasto solo 1/3 del kilobyte di programma > indirizzabile). > > A proposito... $05E2 e' la fine del caricamento di un blocco, ma e' comune > anche alla lettura dell'header per cui devo premere il bottone proprio solo > quando sta caricando l'ultimo blocco dati. Non e` che c'e' un punto piu' > furbo? > > Ciao! > Alessandro > > >