Undertegnede startet sin karriere som teknologijournalist på slutten av 80-tallet da jeg skrev en artikkelserie om 6502/6510-assemblerprogrammering på Commodore 64, for et hjemmedatablad som het Norsk Datormagazin. Programmeringsinteressen har imidlertid alltid vært der – og her om dagen snublet jeg over en 6510-assembler skrevet i Java, som lar seg kjøre på alle plattformer med Java 8.0 eller nyere. Kanskje jeg skulle se om jeg fortsatt hadde noen av de gamle «kunstene» i fingrene?
Siden den gamle «brødboksen» (kallenavnet på de første utgavene av Commodore 64) for lengst var solgt, ble jeg nysgjerrig på hvor lett (eventuelt vanskelig) det var å komme i gang med 6510-assemblerprogrammering på en Mac eller Windows-PC – med emulator. Gjerne i min favoritt-kodeeditor: Microsoft Visual Studio Code (VS Code). Dette skulle vise seg å være noenlunde overkommelig – men helt uten utfordringer var det ikke.
Her er en guide for både Mac OS og Windows, i tilfelle du har lyst til å prøve deg på noe lignende. I slutten av artikkelen er det også noen lenker til nyttige nettsider som får deg i gang, hvis du ikke kjenner til 6510-assembly fra før.
I tillegg til å få satt opp utviklingsmiljøet i VS Code, skal vi også gå gjennom hvordan du får Commodore 64-emulatoren Vice til å fungere på nyeste versjon av Mac OS (Catalina). Under vår testing viste det seg nemlig at Vice hadde sluttet å fungere etter Catalina-oppgraderingen – og dermed måtte vi laste ned kildekoden til både en 6502/6510 krysskompilator og Vice, for deretter å kompilere begge deler med en C-kompilator.
Det finnes flere tillegg som integrerer VS Code med Kick Assembler. Ett av dem heter Kick Assembler for Visual Studio Code fra utvikleren Paul Hocker. Et annet tillegg heter KickAss (C64) fra Captain JiNX. Du finner dem ved å trykke på Extensions-knappen i venstre sidemeny i VS Code og søke.
Etter at du har installert tillegget, må du også installere følgende:
- Kick Assembler
- Java runtime
- Vice
- C64 debugger
Vi har laget to bruksanvisninger – en for Mac OS og en for Windows. Siden Mac OS Catalina i skrivende stund trenger litt mer fikling – et par ekstra kompileringssteg – starter vi med Windows. Klikk her for å gå til Mac OS-bruksanvisningen.
Windows – slik kommer du i gang
Siden det finnes en ferdigkompilert versjon av emulatoren Vice til Windows, er det litt enklere å komme i gang enn på Mac. Slik gjør du det:
- Last ned og installer en Java runtime (Kick Assembler er skrevet i Java). Du finner den siste versjonen her: https://www.java.com/en/download/
- Start PC-en på nytt og åpne en kommandolinje (Windows-R, tast inn cmd). Tast inn
java -version
for å sjekke at Java er korrekt installert. - Last ned Kick Assembler fra http://theweb.dk/KickAssembler
- Pakk ut Kick Assembler til en egnet mappe, for eksempel C:\KickAssembler
- Test at ting fungerer: Gå inn i mappen til KickAssembler og tast
java –jar kickass.jar
etterfulgt av navn på en fil med assemblerkode. Du kan prøve noen av eksempelfilene som følger med, for eksempel:java -jar KickAss.jar Examples\01.MusicIrq\MusicIrq.asm
Artikkelen fortsetter under.
Hvis alt fungerer som det skal, vil du nå ha fått en ny fil med endelsen .prg. Dette er binærfilen du kan kjøre i Commodore 64-emulatoren vi skal installere nå.
I motsetning til på Mac, finnes det nye «builds» av Vice til Windows, som kan lastes ned fra http://vice-emu.sourceforge.net/ eller https://vice.pokefinder.org/. Selv gikk jeg til sistnevnte URL og lastet ned filen, pakket ut og installerte filen som heter GTK3VICE-3.3-win64-r37192 (det legges stadig vekk ut nye versjoner). Kjør filen x64sc.exe for å teste at emulatoren fungerer. x64sc er en versjon av x64 som skal være mer fokusert på nøyaktig emulering enn x64, og det var bare førstnevnte som fulgte med i den versjonen av Winvice som vi lastet ned.
- Installer C64 debugger. Etter at du har lastet ned og installert Vice, trenger du også et program som heter C64 65XE Debugger. Den lar deg kjøre C64-programmer samtidig som du kan navigere deg gjennom minneområdene til Commodoren, se verdiene til ulike registre, samt sette breakpoints i koden og steppe gjennom koden trinn for trinn.
Du finner C64 65X Debugger på denne siden: https://sourceforge.net/projects/c64-debugger/
Pakk ut debuggeren til et passende sted.
- Installer VS Code-tillegget Kick Assembler for Visual Studio Code fra Paul Hocker eller KickAss (C64) fra Captain JiNX.
Etter at du har installert tillegget, må du fortelle det hvor du har plassert filene for Kickassembler og C64 Debugger. Gå til listen over alle VS Code-utvidelsene dine (eller søk opp Kick Assember-tillegget) og trykk det lille tannhjulet, deretter Configure Extension Settings.
Når alt er satt opp, kan du teste ut assembleren med for eksempel noen av eksemplene som følger med Kick Assembler. Last inn en .asm-fil, og trykk Fn + F5 for å kompilere og kjøre i Vice, eller Fn + F6 for å kjøre i C64 Debugger.
Kick Assembler har ganske mange avanserte muligheter, for eksempel mulighet til å automatisk generere et lite Basic-oppstartsprogram som kjører maskinkodeprogrammet ditt, samt et skriptspråk som kan brukes til å generere data du kan bruke i programmene dine - for eksempel sinusbølger til spriteanimasjoner eller andre ting. Jeg anbefaler å ta en kikk i den medfølgende bruksanvisningen!
Gå til listen over nyttige C64-ressurser på nettet »
Mac OS – slik kommer du i gang
Den beste Commodore 64-emulatoren jeg har funnet til både Mac og Windows, er Vice. Versjon 3.3 er i skrivende stund den nyeste versjonen, men utviklerne bak emulatoren har sluttet å levere offisielle «binaries» (kjørbare filer). Mens det finnes uoffisielle binaries for Windows (som beskrevet under «Windows – slik kommer du i gang») må du foreløpig på Mac OS enten kompilere kildekoden selv – eller finne noen som har gjort det for deg. Det lastes av og til opp eksperimentelle binaries fra utviklerne til denne siden – men det advares mot at dette kan være uferdige og ustabile binaries, ofte med debug-kode. Vi skal fortelle deg hvordan du kompilerer selv.
Her er hele fremgangsmåten:
- Du trenger en C-kompilator: Her har du flere muligheter:
- Den ene muligheten er å gå til App Store på Mac-en din og laste ned Apple Xcode. Dette er et komplett utviklingsmiljø som inneholder mye mer enn du trenger til akkurat dette formålet – som i utgangspunktet bare er Xcode Command Line Tools, med blant annet GCC – Gnu Compiler Collection.
- Hvis du vil slippe å laste ned den massive Xcode-pakken, kan du nøye deg med å kun installere Xcode Command Line Tools. På Mac kan du enkelt installere kun dette ved å åpne et terminal-vindu og så skrive inn kommandoen gcc. Hvis dette ikke er installert fra før, vil du få opp et vindu hvor du får valget mellom å installere hele Xcode, eller kun kommandolinjeverktøyene.
- Last ned Vice. Du finner informasjon om emulatoren og nedlastingslenker på http://vice-emu.sourceforge.net/. Som sagt er det ikke lenger offisielle binaries her, men du blir henvist videre til nedlasting av siste versjon av kildekoden fra https://sourceforge.net/projects/vice-emu/ . Du finner alle de ulike versjonene på https://sourceforge.net/projects/vice-emu/files/
- Last ned en 6510-krysskompilator. Vice er avhengig av xa (xa65) – som er en krysskompilator – altså en kompilator som kan lage kjørbar kode for en annen plattform enn den kompilatoren kjører på. I vårt tilfelle en kompilator som kan lage 6510-maskinkode. Du laster den ned herfra: https://www.floodgap.com/retrotech/xa (versjonen vi lastet ned var xa-2.3.10.tar.gz)
- Kompiler xa. Pakk ut filen, gå til mappen du har pakket den ut i (i et terminalvindu) og tast først make og deretter make install. Plasser filene et sted du finner dem igjen – gjerne i /usr/local/bin
- Kompiler Vice. Kildekoden ligger i en komprimert fil (vice-3.3.tar.gz i vårt tilfelle). Dobbeltklikk på denne i Finder for å pakke den ut. Så åpner du et terminal-vindu og cd-er deg inn i mappen med kildekoden (som du nettopp pakket ut). Du finner utførlige instruksjoner for hvordan du installerer Vice i filen INSTALL – men her er kortversjonen:
- Tast ./configure for å konfigurere alt sammen for ditt system. Dette kan ta en stund.
- Tast make for å kompilere pakken.
- Tast make install for å installere det hele. Nå kan du eventuelt skrive make clean for å fjerne filer du ikke trenger lenger.
- Installer VS Code-tillegget Kick Assembler for Visual Studio Code fra Paul Hocker eller KickAss (C64) fra Captain JiNX (vi likte best sistnevnte).
Etter at du har installert tillegget, må du fortelle det hvor du har plassert filene for Kickassembler og C64 Debugger. Gå til listen over alle VS Code-utvidelsene dine (eller søk opp Kick Assember-tillegget) og trykk det lille tannhjulet, deretter Configure Extension Settings.
Når alt er satt opp, kan du teste ut assembleren med for eksempel noen av eksemplene som følger med Kick Assembler. Last inn en .asm-fil, og trykk Fn + F5 for å kompilere og kjøre i Vice, eller Fn + F6 for å kjøre i C64 Debugger.
Kick Assembler har ganske mange avanserte muligheter, for eksempel mulighet til å automatisk generere et lite Basic-oppstartsprogram som kjører maskinkodeprogrammet ditt, samt et skriptspråk som kan brukes til å generere data du kan bruke i programmene dine – for eksempel sinusbølger til spriteanimasjoner eller andre ting. Jeg anbefaler å ta en kikk i den medfølgende bruksanvisningen!
Lykke til!
Noen nyttige ressurser
Her er noen nettsider som kan være kjekke å ha når du skal igang med programmering til Commodore 64:
- Glimrende wiki med det meste du måtte lure på om Commodore 64-programmering, tekniske detaljer om maskinvaren, ulike programmeringsteknikker, osv. : https://codebase64.org/doku.php
- Underside av samme som forrige – her finner du informasjon om programmeringsteknikker som ble brukt i såkalte «demoer», for eksempel hvordan åpne opp «borderen», lage scroll-tekst, rasterbars, og så videre: https://codebase64.org/doku.php?id=base:demo_programming
- Oversikt over 6502 opcodes: http://www.6502.org/tutorials/6502opcodes.html
- Generell informasjon om 6502: http://www.6502.org/
- 6502/6510 dissassembler (dxa), for å gjøre om binærfiler til lesbar assemblerkode: https://www.floodgap.com/retrotech/xa/#dxa
- C64.com – masse informasjon om Commodore 64, spill, demoer, intervjuer og annet: http://www.c64.com/ (sjekk også Facebook-gruppen her: https://www.facebook.com/groups/c64com
- Verktøy for å gjøre om filer i Turbo Assembler til Kick Assembler-format: https://goatpower.org/projects-releases/tasm-to-kick-assembler-converter/
- CS64db – The C-64 Scene Database. Masse info om gamle demogrupper, demoer, etc. https://csdb.dk/ (jeg fant meg selv her – gudene vet hvem som har lagt det inn: https://csdb.dk/scener/?id=7476 )
Har du tips til andre som har lyst til å komme igang med programmering på Commodore 64 – eller mener det er ting vi har glemt i denne artikkelen? Bruk kommentarfeltet – eller send en epost til kurt@digi.no.