Ricordavo bene i risultati ("due minuti e mezzo" contro "meno di due minuti") e lo schema della routine del C64; il resto della faccenda l'ho ricostruito a mano, ho visto che quadrava e che andava bene anche nei rispettivi emulatori (155 secondi e 111 secondi);Tutti i lavori di vera velocità, a meno che il video non ti serva davvero, sul C64 andavano fatti a schermo spento, soprattutto nei load di cassetta (se mi ricordo bene si usava la memoria video come buffer aggiuntivo! O.O). Sono solo un dilettante, perciò non posso darti dati cronometrici sull'effettivo guadagno.
>Ora, per pura curiosita', sei in grado di correggere il listatino in
questione (quello del C64) aggiungendo le istruzioni per spegnere il VIC-II all'inizio e riaccenderlo alla fine? Si potrebbe poi provare su un emulatore o una macchina vera (faccio lo spavaldo perche' sono gia' convinto che la performance del C64 non migliorera' di tantissimo).Hum, sono anni che ho inscatolato (in maniera sicura) le macchine e i libri tecnici, e non dò un'occhiata all'assembly, perciò non ti posso aiutare. Sulla rete però ci potrebbe essere la documentazione.
mentre il 6502 e' ridotto al minimo indispensabile ed ha come filosofia di fondo quella che piace ai programmatori di piccoli firmware.Il 6502 venne usato sul Vic 20. Sul c64 hanno impiegato un modello un poco più recente. Sembra però che essendo più semplici questi processori possono eseguire le singole istruzioni in modo più veloce ed avere meno bisogno di clock più alti. Purtroppo non credo che la cosa sia stata vantaggiosa nella struttura del commodore perchè, difatti, doveva dividere Clock e memoria col processore video: se non erro, se finiva una istruzione nel momento in cui il VIC usava il clock, la CPU era costretta ad "aspettare" che si liberasse. E mi viene il dubbio che forse con lo Z-80 la lentezza sarebbe stata peggiore!
Per i lavori in "filosofia 6502" si usava invece l'8051 (che, a distanza di tempo, riconosco che scelsero perche' aveva quel qualcosina in piu' che ordinariamente c'era solo sullo Z80). Fra parentesi, l'8051 aveva 12 cicli di clock per istruzione, e quindi uno di quelli spinto a 12MHz performava quanto uno Z80 a 4 MHz...So che questo venne invece usato sul C128, almeno una versione spinta al massimo di 2Mhz (anche se mi pare che avesse una media sul 1.4 Mhz.)
Spotted