[traduzione di dforsi@montaperto.it 20-23 novembre 2001] >>Cosa e' V6510? V6510 e' la proposta di un emulatore della CPU 6510 basato su di un PC e di un adattatore hardware che permettono di accelerare un Commodore C64. Questo programma e' un Processore Virtuale. C'e' un collegamento tra la porta parallela del PC, che deve essere bidirezionale, e il Commodore tramite un adattatore hardware. Virtual6510 e' pianificato inizialmente solo per il C64, ma puo' essere disponibile in futuro per altri computer CBM. >>Cosa e' l'emulazione della CPU? Un programma sul PC simula il processore 6510 del Commodore, la memoria e un numero limitato di altre funzioni. Non comprende l'emulazione del chip grafico o di quello sonoro e percio' gira piu' velocemente degli emulatori completi che vengono rallentati emulando le complesse caratteristiche di questi chip particolari. >>Quanto e' veloce il processore virtuale? La velocita' dipende da numerosi fattori, compreso l'hardware del PC usato, le opzioni di mirroring della memoria e il programma effettivo in qualche caso. E' importante ricordarsi che la velocita' del Processore Virtuale e' influenzata dagli accessi ai veri chip del Commodore. Questo significa rallentare il PC per colloquiare con in Commodore alla sua velocita'. Su un sistema 486DX2/66 puo' essere raggiunta una velocita' di emulazione di 4,5Mhz. Su una macchina con un K6-2/500 e' possibile simulare un 6510 a 50Mhz. Per ottenere la massima performance, il processore opera in modo asincrono rispetto all'hardware del Commdore. >>Oltre al 6510, c'e' altro che V6510 emula? E' previsto che V6510 includa forse anche l'emulazione della REU e di una scheda equivalente alla Turbo232. Entrambi questi oggetti sono rari e potrebbero avvantaggiarsi della RAM e della RS232 del PC, rispettivamente. Col tempo, potrebbero essere emulate delle estensioni al 6510 - immagina un'achitettura 65xxx a 32 bit! >>Perche' non emulare una CPU 65816 invece della 6510? La velocita' e' la ragione principale. Attualmente gli unici nuclei di emulazione disponibili per il 65816 sono scritti in C, mentre ci sono diversi buoni nuclei per il 6502/6510 scritti in assembler 386 e cio' significa che girano piu' velocemente. Inoltre il set di sitruzioni del 65816 non e' compatibile al 100% con il 6510. >>A cosa serve l'adattatore hardware? L'adattatore hardware, proposto inizialmente sotto forma di cartuccia, serve per trasferire dati dal Processore Virtuale al vero hardware. Il vero C64 e' necessario per tutte le operazioni di I/O (come il suono, la grafica, ecc.) e per eseguire routine a 1Mhz. L'adattatore si collega alla expansion port del C64 e alla porta stampante del PC. >>Dove mi procuro l'adattatore hardware? L'adattatore deve essere costruito dall'appassionato. Dal momento che costruire un'intero circuito stampato sarebbe difficoltoso per molti, l'adattatore hardware si basa sun cartuccia CBM esistente, MagicDesk-I. Le modifiche richiedono la rimozione delle 4 ROM e la loro sostituzione con semplici moduli e un paio di altre modifiche. Un appassionato competente potrebbe costruire il circuito su una scheda custom. I componenti del kit possono essere acquistati dal progettista (o in alternativa solo le EPROM gia' programmate). >>Perche' l'adattatore hardware non e' una scheda per il PC? Ci sono molte ragioni, ma la principale e' che a meno di non fabbricarla professionalmente, gli appassionati del Commodore sarebbero riluttanti ad installarla nel loro costoso PC. La porta stampante e' un collegamento facile e piuttosto robusto. >>Perche usare una cartuccia, V6510 non puo' essere costruito come un sostituto del processore? Veramente no, perche' V6510 non e' progettato per sostituire il processore nativo. Per minimizzare il numero di componenti nel circuito, il 6510 del C64 e' usato attivamente. Questo significa che non puo' essere rimosso. Sarebbe possibile avere una versione interna di V6510, ma vorrebbe dire sostituire o aggiungere molti dei chip e delle ROM di sistema per cui non sarebbe un progetto "singolo chip". Sono stati presi in considerazione progetti hardware piu' semplici, ma tendono a ridurre le possibilita' di accelerazione. L'altro problema rispetto alla sostituzione fisica del processore e' che il 6510/8500 e' saldato nella maggior parte delle schede rendendo la rimozione difficile e alti i rischi di danno. >>Usando la porta stampante, V6510 e' piu' lento che usando una scheda per il PC? Forse. Il progetto specifico della scheda influenzerebbe largamente il risultato. Se fosse una ISA (normale 8 o 16 bit) allora le operazioni di lettura e di scrittura non sarebbero piu' veloci di una porta stampante standard. Se fossero usate speciali linee di accesso alla memoria a 8MHz la scheda sarebbe piu' veloce, ma meno compatibile con le altre schede in un sistema tipico, entrando potenzialmente in conflitto con esse o con la RAM/ROM. Le schede PCI sarebbero molto veloci, ma richiedono speciali chip di interfaccia. >>Il circuito sembra complesso, e' possibile una soluzione "singolo chip"? La logica e' semplice e potrebbe essere programmata in un CPLD/FPGA, ma non ho ne' l'equipaggaimento ne' l'esperienza. Un aiuto sarebbe benvenuto, pero'. E' stato preso in considerazione l'uso di un PIC o altro microcontrollore, ma la velocita' operativa della maggior parte dei tipi piu' economici non e' abbastanza elevata. >>V6510 e' veloce quanto SuperCPU? Si e no. SuperCPU scrive o legge le locazioni di memoria del C64 in un minimo di 1-3us (fino a 43us in piu' su una linea disturbata). V6510 impiega un tempo variabile. D'altra parte, con V6510 le strategie di caching sono piu' avanzate di quelle di SCPU che ha una cache di un solo byte. Comunque il tempo minimo di scrittura di V6510 e' piu' lungo e cio' riduce il throughput. La causa dei tempi di accesso piu' alti e' la struttura cooperativa di V6510. Su di un 6510, un ciclo di lettura e scrittura impiega 6us (pagina zero) o 8us (assoluto). La maggior parte del codice operativo comunque e' letta ed eseguita interamente all'interno del PC. Se il tuo PC e' abbastanza veloce probabilmente girera' piu' velocemente che con SuperCPU. >>V6510 e' compatibile con SuperCPU? Si e no. V6510 per scelta di progetto puo' eseguire istruzioni "illegali", questo forse la rende piu' compatibile di un 65816. Inoltre, V6510 eseguira' alcune routine del Kernal a 1MHz usando il processore 6510 originale. D'altra parte alcune routine fortemente dipendenti dalle temporizzazioni (come IFLI) non funzioneranno a causa dei cicli di scrittura piu' lunghi. Una possibile soluzione prevista e' un "trainer" con il quale V6510 impara quando e quali applicazioni o subroutines hanno bisogno di essere rallentate ad 1MHz. PLe possibili incompatibilita' con caricatori veloci son problemi anche per SCPU. >>Come verrebbe aggiornato V6510? Il software sul PC puo' essere aggiornato installando e configurando le nuove versioni scaricate dal Web. Aggiornamenti piu' importanti possono richiedere la sostituzione delle EPROM (questo non accadra' molto spesso). Anche i file con le immagini delle EPROM saranno disponibili per il donwload. >>Se aggiorno il Pc, V6510 funzionera' ancora e quanto sara' piu' veloce? V6510 funzionera' ancora, anche se la configurazione puo' aver bisogno di un azzeramento. Per quanto riguarda la velocita', questa dipende dalla specifica applicazione che stai provando. Un processore piu' veloce rendera' comunque piu' veloce l'emulazione. >>C'e' un limite a quanto veloce girera' V6510? La velocita' massima dipende dalla velocita' del PC che usi per far girare V6510 e dalla velocita' con cui scrive e legge dalla porta stampante. Non c'e' un limite superiore predefinito. >>La velocita' di V6510 puo' essere regolata? A differenza di SuperCPU e degli acceleratori precedenti, la velocita' massima dell'emulazione puo' essere regolata con una "poke", dandoti la possibilita' di aggiustare la velocita' massima alle esigenze dell'applicazione. Comunque non c'e' un modo per passare a 1MHz, solo un modo per disabilitare l'emulazione. Se V6510 viene lanciato con l'impostazione di disabilitarsi allora il codice girera' al 100% all'interno del Commodore originale per una compatibilita' del 100% (ma nessuna accelerazione). >>Le altre cartucce funzioneranno quando V6510 e' abilitato? Sfortunamtamente, la maggior parte no. V6510 usa le linee di controllo ROML, EXROM, DMA e IO1. La maggior parte delle cartucce usa alcune di queste linee, eccetto la REU della Commodore che e' mappata solo su IO1. Il progetto e' fatto in modo da permettere che diverse fonti inizino il DMA, per cui le REU dovrebbero essere compatibili. >>Qualcuno potrebbe costruire e vendere V6510? La costruzione del progetto e' incoraggiata, e ciascuno puo' giudicare se e' conveniente acquistare tali kit gia' assemblati. Tutti i diritti riguardanti il concetto, il progetto e il copyright del software e del codice delle EPROM rimangono di proprieta' di Nocholas Coplin 2001, ma e' concesso il diritto di programmare le EPROM per l'uso con V6510. >>Quando sara' disponibile V6510? Non puo' essere fatta alcuna promessa sui tempi perche` questo e' solo uno dei progetti sui quali sto lavorando. Quello che e' importante in questo momento sono i commenti sul progetto. In particolare vorrei sapere se gli appassionati sono interessati al progetto e cosa pensa la gente del costruire l'adattatore hardware.