PicoZX
25 Luglio 2024Reset per Commodore 64
3 Settembre 2024Come il titolo lascia capire, in questo articolo parleremo di come adattare un processore “alternativo” sul Commodore 16.
Come sapete questo computer fa parte della serie 264, sono tre computer molto simili che utilizzano il medesimo processore e coprocessore video. Questa serie inizialmente pensata per offrire 3 modelli di computer, per tutte le tasche, doveva competere con la Sinclair ed il suo ZX Spectrum, poi una volta andato via Tramiel dalla Commodore, le cose non andarono proprio così.
Questi tre modelli sono il Commodore 116, identico al C16 ma con tastiera in gomma e più sottile.
Il Commodore 16, esteticamente simile al C64 ma nero e senza user port e con 16Kb di RAM.
Il Plus/4 (+4) esteticamente simile al C116, con porta utente, 64Kb di RAM e dei programmi già caricati in ROM.
Tutti questi computer utilizzano una CPU MOS 7501 o 8501 ed un processore audio/video chiamato TED (7360) che si occupa della tastiera, del video e audio. Questi nuovi processori sono stati realizzati con l’ottica del risparmio, senza troppe finezze, non per dire ma anche in Commodore si sono meravigliati che ancora oggi funzionino.
Spesso su questi computer troviamo il classico problema dello schermo nero, ma in questo caso non dobbiamo cercare molto!
Al contrario del C64 che potrebbe essere quasi un qualsiasi componente, in questo caso abbiamo un’altissima probabilità che sia proprio la CPU o il TED. Se dobbiamo sostituire la CPU, il costo non è indifferente (anche il TED non scherza) ma abbiamo delle alternative.
Ora vi parlerò di tutti gli adattatori che ho testato fisicamente sul mio C16 (ma vanno bene anche per gli altri, eccezione fatta per lo spazio a disposizione).
Adattatore 6510
Come prima soluzione partiamo dalla più semplice, la più economica e purtroppo anche la meno compatibile. Questo però non vuol dire che sia inutile o che non possa servire a chi non ha bisogno di alcune funzionalità del computer.
Questo adattatore utilizza il processore del Commodore 64, ovvero il MOS 6500 o 8500.
L’adattatore è veramente semplice, non ha nessun componente aggiuntivo e come si vede dallo schema qui sotto i pin sono quasi identici e spostati di una posizione.
Il PCB lo potete trovare su PCBWAY!
Questa è la versione che ho fatto partendo dallo schema che si trova in rete ma ho lasciato la possibilità di gestire la linea motore cassetta per poter avere una funzionalità aggiuntiva che vedremo dopo.
Normalmente se facciamo l’adattatore usando lo schema a fianco o quello che ho fatto io (sopra) saldando il jumper J1 (Motor ON), abbiamo che il computer si accenderà senza problemi, se non usiamo un’espansione di memoria particolare posta sotto il TED.
A prima vista possiamo dire Urrà! funziona, in realtà basta poco per incontrare i primi problemi.
Se colleghiamo un datassette, questo funzionerà (ricordate il ponticello J1, serviva per questo) e potremmo provare a caricare un programma ma facendo attenzione quando verrà trovato il nome del programma a premere velocemente il tasto C= perché il registratore non si fermerà.
Se volessimo caricare un gioco da disco (load”*”,8) questo non farà nulla e rimarremo nella schermata in attesa del caricamento.
Quindi possiamo dire che con questo adattatore abbiamo queste anomalie:
- La cassetta non si ferma sul found e a fine caricamento.
- Il motore della cassetta gira di continuo anche con tasti non premuti.
- Non possiamo caricare nulla da disco tramite porta seriale (es. 1541)
- Il computer non si avvia con espansione 64K sotto il TED.
Non temete non tutto è perduto! se non vi interessa il caricamento da disco, potete già aver trovato la scheda che fa per voi, altrimenti continuate a leggere.
Esiste una modifica da fare al Kernal per rimappare le funzioni diverse del nuovo processore (8501) rispetto al vecchio 6510.
Per fare questo ci occorre una Eprom 27C128 da poter scrivere con le modifiche che occorrono, ma siccome trovare una Eprom da 128 comincia ad essere difficile e più costoso di una 256, vi consiglio di prendere una 27C256 e scrivere il contenuto 2 volte per riempire tutta la ROM e non avere problemi in caso il pin dell’ultimo indirizzo sia a livello alto o basso.
Ecco il link dove potete trovare un articolo su questo adattatore e la ROM da scaricare:
https://hackjunk.com/2017/06/23/commodore-16-plus-4-8501-to-6510-cpu-conversion/
Se vi occorre un programma per combinare più ROM insieme, potete trovarlo qui.
Cosa succede ora con il Kernal?
Con il Kernal modificato ora possiamo caricare da disco senza problemi e avremo una pausa molto più ridotta quando caricheremo da cassetta ed il computer ci mostrerà il nome del programma che ha trovato (il found). Attenzione che questa piccola pausa potrebbe non essere sufficiente e qualche particolare cassetta può far perdere dati, per ovviare a questo dobbiamo stare attenti e premere subito il tasto C=
Vi ricordate che avevo messo la possibilità di interrompere la linea motore sul mio PCB?
Ora vediamo perché.
Come abbiamo visto, il motore cassetta rimane sempre alimentato e oltre ad essere rumoroso, a lungo andare può anche rovinarsi se lasciamo sempre il registratore connesso e usiamo molto il computer.
Per evitare che il motore giri di continuo possiamo sfruttare la linea “sense” del registratore mandando a GND la logica che controlla la linea motore tramite un diodo.
A che serve il diodo?
Come dicevo, il diodo serve per fare in modo che quando premiamo un tasto sul registratore, questo dovrebbe informare la CPU di attivare la linea motore ma visto che la nostra CPU sostitutiva non supporta questa funzione, lo facciamo noi manualmente mettendo a GND la linea invertente che darà il comando per far girare il motore.
Controllare all’articolo linkato sopra, quello di hackjunk, li trovate le immagini delle schede madri e la posizione dove inserire il diodo, va bene uno qualsiasi di quelli comuni tipo 1N4007 o 1N4001, probabilmente anche un 1N4148 ma non l’ho testato.
Se facciamo questa modifica sulla scheda, dobbiamo avere la linea motore non gestita dal nostro adattatore, quindi togliamo il ponticello J1, se abbiamo un’altra scheda dobbiamo tagliare o alzare il pin (27 del 6510) che dovrebbe andare a GND.
Ora finalmente con il Kernal e con il diodo abbiamo un funzionamento quasi come il processore originale, rimangono solo:
- La cassetta non si ferma sul found e a fine caricamento.
- Il computer non si avvia con espansione 64K sotto il TED.
Vi invito a guardare il video dove metto a confronto gli adattatori e ad iscrivervi al canale per darci una mano a continuare questo lavoro.
MOS CPU Replacer (6510/8501)
Ecco qui un altro bel adattatore molto versatile che può essere d’aiuto per diverse situazioni.
La caratteristica principale di questo adattatore è la sua versatilità, infatti con questa scheda possiamo trasformare il MOS6502 in un 6510 per utilizzarlo come CPU del Commodore 64, oppure un 6510T per sostituire la CPU detta NOS del drive 1551, o anche il MOS 8502 per sostituire la CPU del Commodore 128 ed infine il nostro 8601 del C16/Plus4.
Come visto è una bella scheda da tenere nel cassetto e trasformarla all’occorrenza in un adattatore per le nostre esigenze, la parte più complicata è il doverlo ritrasformare una volta assemblato. Già, una volta saldato sarà difficile dissaldare lo zoccolo 40pin e una volta tolto questo andranno rimosse le due file dello strip e i ponticelli fatti per la configurazione.
Il suo form factor lo fa adattare un po’ a tutto perché non sporge molto da nessuna parte, non ho provato ad inserirlo nel Plus4 per controllare se l’altezza con lo zoccolo può dare problemi con la tastiera, ma in caso basta saldare il 6502 senza lo zoccolo.
Un’altra cosa molto utile è la possibilità di usare il nuovo processore 65W02 che è attualmente in produzione e che possiamo reperire senza fatica.
La costruzione della è abbastanza complicata per via dei numerosi piccoli e vicini componenti SMD e delle piazzole senza molto margine. Vi consiglio di acquistarla già assemblata, la potete trovare qui.
La pagina del progetto invece è questa:
https://github.com/monotech/MOS_CPU_Replacer
Nella pagina GitHub trovate anche le incompatibilità riscontrate.
Purtroppo per il C16 ce ne sono alcune, con questa scheda e l’espansione sotto il TED non riusciamo a caricare una directory, mentre con l’espansione 64K su scheda madre non abbiamo problemi se non con qualche gioco di nuova generazione (Slipstream).
Per il resto la cassetta funziona come il vero 8501 e la diagnostica passa tutti i test.
Più sotto troverete il video della parte 2 dove testo questa scheda.
8501 Equivalent
Altro bel sostituto per il nostro processore C16 è questo adattatore che partendo sempre da un 6502 lo trasforma in un 8501, si chiama 8501 equivalent o anche 6502 to 8501.
Il link alla pagina dell’autore lo trovate in questo link e sempre in questa pagina trovate il form per poterlo prendere già assemblato ed anche con il processore 6502 se vi dovesse servire. Volendo potete prendere anche solo il kit o costruirvelo voi scaricando il gerber.
Dalla foto qui a destra possiamo vedere che non è proprio piccolo, sporge parecchio in basso, utilizza diversi buffer SMD ed una GAL che possiamo programmare con i file che troviamo sempre nella pagina di Daniel.
Questo adattatore è pensato per il C16 e anche se molto lungo, la scheda passa sopra il TED, al massimo possiamo usare uno zoccolo per avere una distanza maggiore se proprio non dovesse bastare. Il problema nasce quando vogliamo mettere delle alette di raffreddamento sopra il TED, in questo caso non c’è verso di installarlo se non con una serie di zoccoli (altamente sconsigliato) o uno strip con connettori lunghi.
Può essere adattato anche al Plus4 ma occorre non saldare lo zoccolo del 6502 per risparmiare spazio in altezza e non dar fastidio alla tastiera.
Rispetto all’adattatore visto prima, beh questo fa solo 8501 ma lo fa bene, funziona sia con l’espansione 64Kb sotto il TED ed ovviamente con quella su scheda madre, è però più ingombrante. Dai test effettuati, il funzionamento è veramente ottimo, funziona con il nuovo gioco (Slipstream), motore cassetta funzionante come l’originale e diagnostica passata al 100%.
Arrivati a questo punto non mi resta altro che farvi vedere tutte le prove fatte in questo video! A voi la parte 2.
CPU4C16
Ora passiamo ad un altro adattatore molto compatto e funzionale. Utilizza un 6502A e una CPLD per diventare a tutti gli effetti un 8501.
Questo adattatore lo trovate già assemblato e completo di processore 6502A, tutto ad un ottimo prezzo, vi lascio il link doper poterlo acquistare. Se il link non funziona o è stato venduto, cercate autonomamente su Subito “Commodore CPU per C16”.
Da tutti i test effettuati, devo dire che è pressochè perfetto, ha superato tutti i test, è compatibile con l’espansione 64Kb sul TED, opcode e registratore funzionanti.. L’unica cosa strana è nel test della diagnostice che non passa il test cassetta. Questo però sembrerebbe essere un falso positivo, infatti da quello che mi hanno riferito è per via di una routine migliorata per la compatibilità del caricamento cassetta, purtroppo questa miglioria non è accettata dalla funzione di controllo della diagnostica. Posso assicurare che le cassette sono state caricate perfettamente.
Se vogliamo trovargli un difetto, possiamo dire che è solo per via della sua forma che lo rende compatibile solo per il Commodore 16, peril Plus4 c’è un PCB diverso che ha la CPLD in basso a destra invece che a destra. Nulla di più.
8501 FPGA
Eccoci all’ultima chicca, un FPGA per emulare il processore 8501!
Non saprei dire se l’emulazione è al 100% o meno, io penso sia un pò sotto, ma è una mia supposizione. C’è da dire che dalle prove che ho fatto, ha funzionato perfettamente con tutto, come l’originale. Caricamenti disco, cassetta perfetti. Opcode illegali presenti, test con diagnostica superati, compatibilità con la 64Kb sul TED come il processore originale.. che dire, per me è perfetto.
La sua grandezza lo rende compatibile come il processore originale, non sporge, non è alto e non ha uno zoccolo con un altro processore sopra. Questo lo rende compatibile con il Commodore 16 e Plus4 senza nessun problema.
Ma ora dopo tutte queste belle cose, vediamo anche gli aspetti negativi. Beh, l’unica cosa che posso dire è che il prezzo non è proprio economico, costa quanto una CPU originale, se non qualcosa di più se consideriamo la spedizione ecc.
Vale tutti i soldi spesi, l’FPGA è famoso per essere un componente molto versatile ma non proprio economico, se ci aggiungiamo gli altri componenti per la gestione dei segnali ecc, si vede che non è una scheda semplice e che possa essere anche economica.
C’è da dire che l’FPGA al confronto con la CPU originale, non scalda, consuma meno e dovrebbe avere una durata molto, molto, molto più lunga del vecchio 8501.
Io lo consiglio per chi volesse avere un sostituto molto compatto e che funzioni come l’originale. Per poterlo acquistare (ovviamento già assemblato) ecco il link di SellMyRetro.
Potete anche trovare un articolo scritto da Francesco Sblendorio su dei test effettuati su questo processore, io ho ripreso il suo test per gli opcode, lo trovate sul sito di appunti-retrocomputing.blogspot.com
Spero che tutti questi test e varie prove vi siano utili per poter capire e scegliere l’adattatore che più fa per voi!
Eccovi il video degli ultimi due adattatori..
E ricordate di iscrivervi al canale per darci una mano a continuare questo lavoro.
Se volete fate un salto sulla nostra pagina Patreon.