Thursday, January 1, 2026

Cross-development Commodore 64: KickAssembler e VS Code

Negli anni 80 non mi sono mai spinto oltre il BASIC per programmare il mio Commodore 64, ho sempre pensato che l’Assembly fosse veramente oltre le mie capacità, vedevo quelli che lo facevano come dei veri programmatori, con la capacità di parlare al processore direttamente nel suo linguaggio.
Quando nel 2021 ho frequentato il corso di Architettura degli Elaboratori (mi ero iscritto durante il covid in UNIMI ad Informatica e ho sostenuto qualche esame per tenermi impegnato durante la pandemia) il mio interesse per l’Assembly si è riacceso, anche se nel corso si studiano solo pochi rudimenti applicati ad un generico processore RISC.
Credo che imparare l’Assembly dei processori ad 8bit non sia solo un’esercizio di retroprogrammazione fine a se stesso ma che sia didatticamente molto utile anche nel 2026, entrare in contatto diretto con l’architettura del processore e nei meandri della memoria, è un’esperienza formativa che permette veramente di capire come funziona la macchina nella sua più intima profondità.
Al giorno d’oggi non è più necessario lavorare direttamente sulle macchine originali, ma è possibile installare un ambiente di cross-development su un Computer con Windows, Linux o macOS e assemblare per un processore target che nel nostro caso sarà il 6510 del Commodore 64. Vediamo come installare i componenti di questo ambiente di cross-development.

L’ambiente di sviluppo si compone di un IDE che è Visual Studio Code e di un Assembler che è KickAssembler. Il grosso vantaggio di questo ambiente di sviluppo è che è Open Source e multipiattaforma, per Windows, Linux e macOS. L’IDE permette di scrivere il codice Assembly nell’editor, salvare e gestire i file sorgenti e di avviare il processo di assemblaggio (non è corretto dire di compilazione) inviando poi il binario eseguibile al simulatore o al debugger. Il simulatore che utilizzeremo è il mitico VICE.

Installazione del runtime Java

KickAssembler è un’applicazione jar che richiede il macchina virtuale java per essere eseguito, quindi sul proprio pc deve essere installato il runtime environment. Io ho installato la versione LTS 25 che è l’ultima rilasciata.

https://www.oracle.c … hnologies/downloads/

Completata l’installazione eseguire nel prompt il comando

java -version 

per controllare che sia tutto ok.

Installazione di KickAssembler

Basta scaricare il pacchetto zip

https://theweb.dk/Ki … /Main.html#frontpage

Io ho creato una directory “c64dev” alla radice di C: in modo da potervi accedere facilmente anche da riga di comando. Li ho messo la directory di KickAssembler.
Per vedere che tutto funziona posizionati nella directory basta dare il comando

C:c64devKickAssembler>java -jar KickAss.jar
//——————————————————
//——————————————————
//         Kick Assembler v5.25 by Mads Nielsen
//——————————————————
//——————————————————
Error: No inputfile supplied.

Installazione di VICE

Nella directory “C:\c64dev\vice3_10” ho scompattato lo zip di VICE scaricabile da qui

https://vice-emu.sou … /index.html#download

Installazione di C64Debugger

anche questo basta scaricarlo:

https://sourceforge. … ojects/c64-debugger/

e scompattarlo in “C:\c64dev\C64Debugger”

Ok, questi sono tutti i componenti che vi servono, io ho messo dentro tutto a “c64dev” che ha quindi questa struttura

Directory of C:c64dev

01/01/2026  17:06    <DIR>          .
31/12/2025  21:56    <DIR>          books
31/12/2025  17:08    <DIR>          C64Debugger
01/01/2026  16:34    <DIR>          downloaded
31/12/2025  17:04    <DIR>          KickAssembler
31/12/2025  22:42    <DIR>          source
31/12/2025  17:03    <DIR>          vice3_10

Come vedete ho messo anche un directory per la documentazione “books” in cui ci sono i pdf dei libri che vi consiglio più sotto, e la directory “source” con i sorgenti .asm.

Kick Assembler 8-Bit Retro Studio

A questo punto però manca l’estensione di Visual Studio Code “VSC” (ve lo devo dire che va installato?) che è la colla che tiene insieme il tutto e permette di far funzionare tutto in modo perfettamente integrato.
l’estensione è (usare questo identifier per cercarla nel marketplace di VSC)

paulhocker.kick-assembler-vscode-ext

https://gitlab.com/r … ssembler-vscode-ext

la guida per configurare l’estensione è disponibile a questo indirizzo

https://gitlab.com/r … s/Guides/Quick-Start

Sostanzialmente bisogna fornire all’estensione i percorsi completi di dove sono installati i componenti che abbiamo installato (per riferimento metto i percorsi della mia macchina)

Kickassembler › Assembler: Jar
Full path and filename to your Kick Assembler JAR file.
C:\c64dev\KickAssembler\KickAss.jar
Kickassembler › Debugger: Runtime
Full Path and Filename to your Debugger Runtime.
C:\c64dev\C64Debugger\C64Debugger.exe
Kickassembler › Emulator: Runtime
Full Path and Filename to your Emulator Runtime.
C:\c64dev\vice3_10\bin\×64sc.exe
Kickassembler › Java: Runtime
Full path and filename to your Java Binary file.
C:\Program Files\Javajdk-25\bin\java.exe

Test finale

Una volta impostato il tutto, aorite con Visual Studio Code la directory dove avete deciso di mettere i sorgenti e create un file hello.asm e copiate dentro questo codice Assembly:

//
// Hellorld
//
*=$0801
.byte $0c,$08,$b5,$07,$9e,$20,$32,$30,$36,$32,$00,$00,$00
jmp main
hellotext:
    .text ”hello, commodore 64!!”
    .byte $0
    .const ofs = 10
main:
    ldy #0
    lda #$00
    sta $d020
    sta $d021
    tax
    lda #$20
loop:   
    sta $0400,x
    sta $0500,x
    sta $0600,x
    sta $0700,x
    dex
    bne loop
hello:
    lda hellotext,y
    beq !loop+
    sta $400+ofs,y
    lda #1
    sta $d800+ofs,y
    iny
    jmp hello
!loop:
    rts

SALVATE e premento F5 il binario .prg viene assemblato e aperto direttamente in VICE, premendo Shift+F6 viene invece aperto nel Debugger.

Screenshot2026-01-01231412.png

Libri di riferimento Suggeriti

Manuale di KickAssembler
https://theweb.dk/Ki … er/KickAssembler.pdf

Commodore 64 Programmer’s Reference Guide
https://pickledlight … odore-64-guides.html

e in Italiano questo capolavoro, di cui esistono due edizioni: Introduzione alla Programmazione Assembly 8 bit
https://www.valoroso … -65XX-ValorosoIT.pdf
https://www.vic-20.i … ploads/ASM_8_bit.pdf

Un paio di anni fa, ho preso su Amazon i due volumi relativi allo sviluppo per c64 di Derek Morris, la qualità della stampa è pessima, gli screenshot sono quasi illeggibili, però sembrano fatti bene a livello di contenuto. Il primo volume è un tutorial per la realizzazione di un gioco usando “CBM PRG studio” mentre il Volume 2 utilizza proprio Visual Studio Code e KickAssembler come ambiente di sviluppo.

https://www.retrogamedev.com/

Gruppo Facebook RetroProgramming Italia - RP Italia (A division of RetroCampus)

https://www.facebook … ps/retroprogramming/

Conclusione.

Se tra i miei buoni propositi per il 2026 c’è quello di approfondire l’Assembly del Commodore 64, aver dedicato qualche ora libera del primo gennaio al setup dell’ambiente di sviluppo mi mette già sulla buona strada, chissà che finalmente non riesca anche io a scrivere qualche semplice programma in Assembly per sentirmi veramente come un vero retro-programmatore.