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.
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.
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.
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!
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.