Ready64 Forum
Commodore 64 => Programmazione, Grafica e Musica => Topic aperto da: Koji74 - 23 Marzo 2014, 00:31:20
-
Ciao ragazzi!!!!
Avrei una domanda da farvi, spero di non ripetere una domanda gia' espressa da qualcun altro in passato, ma giuro che non saprei come formulare la ricerca sul forum per trovare risposta a questo mio quesito..
Premetto come sempre che sono un lameraccio analfabeta in programmazione, ma ultimamente mi sto ostinando a voler espandere la mia conoscenza del nostro fedele compagno di vita..
La domanda e' questa:
Eseguo un programma sul VICE e faccio partire il monitor (e fin qui'...)...
Come si fa a sapere (semmai e' possibile farlo) in che punto della memoria e/o qual'e' l'ultima istruzione eseguita dal c64 prima che io lanciassi il monitor???
Thank you very grazie a tutti e buona domanica!!
:)
-
Quando il monitor parte, il prompt mostra qualcosa del tipo
(C:$f957)
. In questo caso, la prossima istruzione che verrà eseguita sarà a $f957.
Il prompt può cambiare se esegui comandi come disass o mem. In questo caso, scrivir
. Vengono mostrati i valori dei registri: ADDR è il registro col punto della memoria dove si trova la prossima istruzione che verrà eseguita.
-
Intanto grazie mille per la risposta..
Occhio che ora sto per sfoderare utta la mia ignoranza.. :stordita:
Il prg caricato va da $0801 a $1A52... Facendo partire il monitor del vice la prompt mi indica invece: (C:$F140):
Come mai? Il programma non dovrebbe estendersi fino a li, no?
-
Il prg
Quale?
Facendo partire il monitor del vice la prompt mi indica invece: (C:$F140)
Quando hai fatto partire il monitor del VICE?
-
Il prg caricato va da $0801 a $1A52... Facendo partire il monitor del vice la prompt mi indica invece: (C:$F140):
Come mai? Il programma non dovrebbe estendersi fino a li, no?
Niente di strano, hai interrotto l'esecuzione mentre la CPU eseguiva una routine della ROM anziché del programma che hai caricato.
-
Carmine e come faccio a sapere qual'e' l'ultima istruzione eseguita del proframma??? C'e' modo??
-
come faccio a sapere qual'e' l'ultima istruzione eseguita del proframma??? C'e' modo??
No. C'è modo di sapere quale sarà la prossima, e questo modo ti è già stato spiegato.
Nella maggior parte dei casi, la precedente è quella nelle locazioni di memoria precedenti, ma non è così se la precedente iistruzione era un'istruzione di salto o di ritorno, o se è appena scattato un interrupt.
EDIT Se hai una versione di VICE compilata con le opzioni di debug, puoi farlo partire dando l'opzione -trace_maincpu: in questo modo, vengono scritte su console (Linux) o nel file vice.log (Windows) tutte le istruzioni eseguite dalla CPU.
-
Ahime' l'opzione -trace_maincpu non e' presente :( peccato sembra una funzionalita' a dir poco geniale.. Che tu sappia da qualche parte si riesce a trovare un vice compilato con le opzioni i debug? ..oppure devo darmi da fare e vedere di compilarmene uno??? :P
-
Non saprei se esiste già compilato (di solito mi scarico la sorgente da SVN e me la compilo)
-
Un po' di tempo fa ho trovato questa versione che dovrebbe fare al caso tuo. Ho provato il comando cpuhistory nel monitor e funziona.
link (http://we.tl/iOML7NLkEh)
-
EUREKA !!!!!! :rtfm: :lol: :lol:
Sapevo che solo in questo covo di mostri sacri avrei potuto trovare risposta a tutti i miei interrogativi!!!
Siete stati meravigliosi!!!
-
il comando cpuhistory nel monitor
link (http://we.tl/iOML7NLkEh)
Non sapevo di questo comando. Quindi, se VICE è stato compilato col supporto per questo comando, può mostrare le istruzioni eseguite in precedenza (solo le ultime).
-
Ho notato che i VICE delle nightly builds hanno tutti il cpuhistory abilitato!!