Commodore 64, biscottone breadbin case restauro riparazione memoria, RAM, SID, CBM, C64, aggiustare

Riparazione memoria Commodore 64

Questo articolo, relativo alla riparazione della memoria di un Commodore 64 è parte di un restauro ben più ampio. Ho infatti trovato un vecchio retrocomputer Commodore 64 su Facebook Marketplace per pochi euro, ma presentava parecchi difetti. Innanzitutto mancavano tutti gli accessori (anche l’alimentatore). La tastiera aveva due tasti mancanti, il monitor mostrava caratteri strani e, infine, l’audio del computer non funzionava! Un bel casino!

Commodore 64, usato difettoso rotto, annuncio, Subito.it, Facebook Marketplace, Kijiji, mercatino

Inizialmente avevo pensato di utilizzare questo computer per prelevare i pezzi di ricambio per un altro Commodore 64 che volevo aggiustare, ma… la riparazione di un danno così esteso sarebbe stata una bella sfida!

Diagnosi del difetto della memoria del Commodore 64

Il difetto della memoria del Commodore 64 si presentava subito all’accensione:

  • era presente l’errore “OUT OF MEMORY ERROR IN 0”;
  • il monitor mostrava caratteri strani in posizioni casuali.
Commodore 64, ?out of memory error in 0, ready, caratteri strani su schermo, difetto memoria, RAM difettosa

Senza memoria a disposizione, perché difettosa, non era possibile nemmeno caricare un programma di diagnostica per la memoria stessa, per capire quale fosse il chip RAM difettoso. Ho consultato quindi il Commodore 64 service manual (allegato in fondo alla presente pagina) per recuperare lo schema elettrico della memoria.

Commodore 64, schema elettrico, schema RAM, chip memoria MT4264-15, MT4264-20, 4164-2, HM4864P-2, M3764-15RS, D0 U21, D1 U9, D2 U22, D3 U10, D4 U23, D5 U11, D6 U24, D7 U12, 64Kx1 150ns 16-pin DIP DRAM chip

Si può notare come la memoria RAM del Commodore 64 sia composta da 8 chip. Ogni chip contiene 64K x 1 bit di memoria: non contiene byte interi, ma ciascun chip si occupa di un singolo bit. Ed ecco quindi la corrispondenza tra i chip di memoria RAM e i bit corrispondenti:

  • D0 = U21
  • D1 = U9
  • D2 = U22
  • D3 = U10
  • D4 = U23
  • D5 = U11
  • D6 = U24
  • D7 = U12

A questo punto, dovevo solo capire quale bit fosse difettoso, che trasformava, sul monitor, il carattere “spazio” nel dollaro “$”. Per questa analisi, si rende utile la tabella dei caratteri del Commodore 64, altrimenti chiamata CBM ASCII:

Commodore 64, tabella caratteri, cbm ascii, U5 2332A, character ROM

Il carattere “spazio” corrisponde al numero &H20 (in esadecimale), che è il 32 (espresso in numeri decimali). Invece, il carattere dollaro “$” corrisponde al numero &H24 (in esadecimale), che è il 36 (in decimale). Il numero del carattere si è quindi spostato da 32 a 36, con un incremento di 4. Esprimendo il numero 4 in potenze di 2, si ottiene 2^2. Da questo ragionamento, si evince che il bit difettoso della memoria RAM era il D2, corrispondente al chip U22.

Riparazione memoria Commodore 64

A colpo sicuro, ho sostituito il chip U22 del C64 con uno identico, un MT4264-15 acquistato online. Ovviamente ho acquistato qualche chip RAM in più di scorta, cosa che, come vedremo tra poco, mi è stata utile.

Per effettuare la riparazione della memoria del Commodore 64, e quindi sostituire il chip RAM, ho dapprima rimosso il vecchio chip difettoso, per poi saldare uno zoccolo, dove ho alloggiato il nuovo chip MT4264-15. Ho installato il nuovo chip di memoria del Commodore 64 su zoccolo, per fare degli esperimenti di compatibilità delle varie memorie RAM, che descriverò a breve.

Commodore 64, rimozione, sostituzione chip memoria, RAM, MT4264-15, 4164-2, MT4264-20, HM4864P-2, M3764-15RS, sostituzione chip memoria, DRAM, difetto memoria, scritte strane su schermo, 64Kx1 150ns 16-pin DIP DRAM chip

La sostituzione del chip di memoria ha avuto degli effetti positivi, infatti il Commodore 64 partiva con la consueta schermata di avvio.

Altro chip di memoria rotto

Nonostante la sostituzione del chip, il Commodore 64 non aveva la quantità di RAM libera prevista: 38911 bytes. A volte erano disponibili solo 3K, a volte 12K. Insomma: c’era un altro chip di memoria difettoso. Ecco perché mi ha fatto comodo acquistare qualche chip RAM in più!

Sul monitor non vedevo caratteri strani, per cui i bit difettosi dovevano trovarsi in un’altra area di memoria, esterna alla memoria video. Ho quindi scritto un programma, in BASIC, molto compatto, per la scansione di tutti i byte della RAM ed individuare quelli difettosi. L’idea è semplice e si basa sul principio di funzionamento della memoria RAM:

  • si scansionano i byte di RAM ad uno ad uno (esterni all’area del programma stesso!)
  • si scrive il numero 0
  • si legge la stessa casella, che deve restituire il numero appena scritto: 0
  • si scrive il numero 255
  • si legge la stessa casella, che deve restituire il numero appena scritto: 255

Ed ecco il mio programma per testare la memoria RAM del Commodore 64 in funzione.

Commodore 64, programma di test chip memoria RAM, MT4264-15, MT4264-20, 4164-2, HM4864P-2, M3764-15RS

La scansione della RAM ha rilevato alcuni byte difettosi. Il numero 0 si trasformava in 1, mentre il numero 255 si trasformava in 254. Dal ragionamento già descritto nei paragrafi precedenti, si evince che la differenza tra il numero corretto e quello errato è 1, corrispondente a 2^0 espresso in potenze di 2. Quindi il secondo chip RAM MT4264-15 difettoso era U21, corrispondente alla linea del bit D0. Ho quindi sostituito anche questo secondo chip, montando quello nuovo su zoccolo.

Finalmente la memoria del Commodore 64 era a posto!

Esperimenti sulla memoria del Commodore 64

Durante la ricerca online dei chip di memoria RAM del Commodore 64, mi sono imbattuto in diverse alternative. Il mio computer montava il chip di memoria MT4264-15. Online trovavo anche altre sigle, che, da datasheet, sembravano avere le medesime caratteristiche, se non per la velocità differente (RAS access time).

Inizialmente ho sostituito i chip con altri identici, ma, avendo montato degli zoccoli per sostituire i chip molto velocemente e senza danneggiarli, ho provato anche a montare chip con altre sigle, per poi testare il funzionamento del C64.

Commodore 64, chip memoria, RAM, 4164-2, MT4264-15, MT4264-20, HM4864P-2, M3764-15RS, sostituzione chip memoria, DRAM, difetto memoria, scritte strane su schermo

Al termine di tutti i test, posso concludere che è possibile montare indifferentemente qualsiasi chip di memoria RAM sul Commodore 64, anche mischiando le varie sigle sulla stessa mainboard, come si vede dalla foto sopra allegata.

E’ possibile quindi sostituire i chip di memoria RAM con qualsiasi presente in questa lista: 4164-2, MT4264-15, MT4264-20, HM4864P-2, M3764-15RS.

Relativamente alla velocità del chip, è bene sceglierne uno con RAS access time uguale o inferiore a 200ns. Le sigle sopra riportate già tengono conto di questa considerazione.

Commodore 64, chip memoria, RAM, 4164-2, MT4264-15, MT4264-20, HM4864P-2, M3764-15RS, sostituzione chip memoria, DRAM, difetto memoria, scritte strane su schermo

Documentazione

A corredo del presente articolo, allego:

Ti piace questa pagina? Condividila:

Posted in RetroComputer, RetroTecnologia ed Elettronica Vintage, Tutti gli articoli.

One Comment

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

undici + 18 =