Dopo il post sul modding dell’Amiga 500 ho pensato di riproporre il metodo più semplice (ed economico) per riaccendere un glorioso Commodore 64 (o anche un C128 o un Vic-20). Difficile oggi cercare di recuperare cassette a nastro o floppy disk: la mia collezione è praticamente tutta smagnetizzata! E allora, come fare?

Sintonizzate il televisore sulla frequenza UHF 36…

 

Cos’è SD2IEC?

L’SD2IEC è un dispositivo per lo storage che usa una comunissima scheda SD/MMC ed è in grado di interfacciare il bus IEC (CBM serial bus). In genere l’SD2IEC è basato su un microcontrollore ATmega644 della famiglia dei micro Atmel AVR.

Commodore 1541Lo scopo principale di un dispositivo SD2IEC è rimpiazzare il Commodore 1541, cioè il disk drive del C64 (o dei C64DTV, C128 no burst mode, C16, etc.).

La cosa interessante è che sia l’hardware che il firmware del SD2IEC sono sotto licenza GPL: non è quindi difficile trovare in rete uno shop in grado di vendervi un SD2IEC già pronto e collaudato su cui flashare il firmware corrispondente.

Io ne ho preso uno dall’Inghilterra da Nic di TFW8B (a circa 60 euro) che ha una particolarità divertente: ha un case che replica in piccolo il drive 1541! 

 

Prepariamo l’SD2IEC

Il mio SD2IEC è basato su un Atmega 1284p. E’ color “crema” (lo avevo preso per un C128, che è appunto crema). Ma ne esistono versioni in grigio e beige (i colori dei vari PC Commodore). Per i più esigenti è possibile ordinarne uno fatto con la plastica originale riciclata di un vero C64!

  1. Formattate la scheda SD come FAT16 o FAT32.
  2. Scaricate CBM Filebrowser: si tratta di un program launcher per C16/plus4, C64/C64DTV, C128 and Vic-20 compatibile SD2IEC.
  3. Scompattate CBM FileBrowser e copiate tutto il contenuto nella SD vuota (nel mio caso è stato necessario cancellare tutti i files .TXT e togliere tutte le estensione da tutti i files nella root…).
  4. Create una o più sottocartelle che possano contenere le vostre immagini dei programmi (ROM): ricordatevi che dovete avere la licenza del software originale…

Per completezza queste le caratteristiche del firmware dell’SD2IEC:

  • Supporto per nomi file FAT. Supporto per SD e SDHC formattate FAT12/FAT16/FAT32. Supporto per le Subdirectory (CMD command syntax). Supporto per l’accesso ai settore dell’SD card direttamente dal C64.
  • Supporto per immagini di tipo D64/D71/D81/M2I, PRG/Poo. Le T64 non sono supportate. Supporto limitato invece per REL.
  • Supporto per Turbo Disk AKA Fast Load AKA Speeddisk fastloader. Supporto per JiffyDOS fast serial bus protocol, the Final Cartridge 3 fastloader/fastsaver, DreamLoad, Exos, GEOS.
  • Supporto per il bottone esterno “disk change”.
  • Supporto per tutte le funzioni tipiche di un IEC (LOAD, SAVE, OPEN, GET, PUT, CLOSE, …).

A questi punto la scheda SD è pronta. Inseritela nel SD2IEC. Collegatelo al vostro Commodore (spento). Accendete tutto:

Per caricare il CBM FileBrowser è sufficiente il comando DOS che tutti conoscono:
LOAD"FB",8
RUN

Vi appare un menù con il contenuto della vostra scheda SD: dovete solo navigarlo alla ricerca delle ROM. Usate questi comandi da tastiera (oppure il joystick):

Key Function
CURSOR UP or JOY UP Previous entry
CURSOR DOWN or JOY DOWN Next entry
CURSOR RIGHT or JOY RIGHT Next page
CURSOR LEFT or JOY LEFT Previous page
RETURN or FIRE BUTTON LOAD and RUN
F5 Previous page
F6 To top
F7 Next page
F8 To bottom
S Sort (Enable/Disable)
Q Quit to basic
BACK SPACE Exit dir
ESC Reset

Non tutte le chede di momoria sono compatibili con l’hardware dell’SD2IEC: trovate un elenco (anche se nvecchiotto) qui. Vi linko qui sotto alcune SD che hanno funzionato per me:

 

Il primo LOAD

La cosa più semplice è caricare una ROM da un file .D64 a disco singolo: basta selezionare il file e premere <RETURN>.

Il tempo di caricamento di ogni immagine ROM è un pochino più basso rispetto a quello dei floppy drive originali (si misura comunque in minuti).

C64 + 1541 C64 + SD2IEC
No speeder 1.0x 400 Bytes/Sec 1.6x 650 Bytes/Sec

Per poter usare qualche fastloader è necessario un hardware differente (o aggiuntivo) rispetto all’SD2IEC: ad esempio una cartuccia equivalente alla Epyx Fastload (foto a dx da qui).

I programmi multi-disco

Se volete caricare giochi multi-disco avete alcune alternative: trovate una singola immagine disco .PRG che sia lanciabile da una cartella oppure una singola immagine disco .D81 equivalente ad un disco di larga capacità. Se invece doveste trovare più files .D64 (una per disco originale) dovete seguire una procedura più articolata:

  • E’ necessario che tutti i files del programma .D64 siano in una stessa cartella
  • E’ necessario che sia presente un file AUTOSWAP.LST che altro non è che un file di testo semplice contenente la sequenza dei vari dischi (ogni riga una immagine disco). Ad esempio:

IMAGE_A_FILE1.D64
IMAGE_A_FILE2.D64

  • Usate il filebrowser per aprire la cartella contenente tutti questi files.
  • Premete Q per uscire sulla shell DOS del Commodore.
  • Ora premete il pulsante del Disk Swap (quello vicino al cavo seriale) per dire all’SD2IEC di usare il primo D64 della sequenza
  • Caricate il primo disco con il solito comando:

LOAD"*",8,1
RUN

  • Quando vi viene chiesto un altro dischetto premete nuovamente il pulsante del Disk Swap. Ogni click del pulsante caricherà il file successivo nella sequenza descritta si AUTOSWAP.LST.

Ovviamente il firmware del vostro SD2IEC vi permette di usare una serie di comandi DOS molto comodi in caso di collezioni di ROM numerose. Trovate la guida completa qui, ma intanto vi elenco i comandi più utili :

Changing directories (CMD syntax)
OPEN1,8,15,"CD/SOMEDIR/":CLOSE1 - change to SOMEDIR (relative)
OPEN1,8,15,"CD//":CLOSE1 - change to root directory
OPEN1,8,15,"CD//SOMEDIR/":CLOSE1 - change to SOMEDIR (in root)
OPEN1,8,15,"CD:←":CLOSE1 - go to parent directory

Using M2Is or D64s
OPEN1,8,15,"CD//SOMEDIR/:SOMEGAME.M2I":CLOSE1 - change to/mount SOMEGAME.M2I
OPEN1,8,15,"CD//SOMEDIR/:SOMEGAME.D64":CLOSE1 - change to/mount SOMEGAME.D64
OPEN1,8,15,"CD:←":CLOSE1 - leave M2I/D64

Loading files
LOAD"//SOMEDIR/:SOMEFILE" - load SOMEFILE in SOMEDIR (filename gets separated from path using colon)

Change device address
OPEN1,current address,15,"U0>"+CHR$(new address):CLOSE1 - change sd2iec device number to new address
OPEN1,device address,15,"XW":close1 - this will save settings to eeprom (required if you want to set new device address as default)

Mio figlio Matteo (6 anni) è impazzito per i giochi di Karate… che tengono botta anche dopo 30 anni.

Nel post ho inserito i link a qualche inserzione di eBay.
Come al solito trovate anche qualche ulteriore consiglio per gli acquisti. Se questo post vi piace, acquistate tramite i links di questo blog e potrete donarmi una piccola percentuale dell’importo speso, senza sovrapprezzo sul listino di amazon.it. Se non vedete i link verso Amazon o eBay, disabilitate eventuali ADV blocker come ADBlock o uBlock. Cliccate qui se volete attivare la spedizione gratuita in 1 giorno