UTVIKLING

VS Code + Commodore 64 = sant

Slik kommer du igang med Commodore 64-retro­programmering på Mac OS eller Windows.

Her har vi satt opp et utviklingsmiljø for 6510-programmering for Commodore 64 på en Mac. Vi bruker KickAss-tillegget til VS Code, en Vice Commodore 64-emulator (nederst til venstre), samt 64 debugger (øverst til venstre).
Her har vi satt opp et utviklingsmiljø for 6510-programmering for Commodore 64 på en Mac. Vi bruker KickAss-tillegget til VS Code, en Vice Commodore 64-emulator (nederst til venstre), samt 64 debugger (øverst til venstre).
22. nov. 2019 - 16:54

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? 

Den gamle brødboksen! <i>Bilde:  Marius Jørgenrud</i>
Den gamle brødboksen! Bilde:  Marius Jørgenrud

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 
    1. Pakk ut Kick Assembler til en egnet mappe, for eksempel C:\KickAssembler
    2. 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.

Her tester vi at Kick Assembler fungerer på Windows.
Her tester vi at Kick Assembler fungerer på Windows.

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å.

Pokefinder har ferdig kompilerte versjoner (binaries) av Vice for Windows.
Pokefinder har ferdig kompilerte versjoner (binaries) av Vice for Windows.

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.

Artikkelen fortsetter etter annonsen
annonse
Innovasjon Norge
Da euroen kom til Trondheim
Da euroen kom til Trondheim

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.

Du må definere hvor du har plassert C64-debuggeren, emulatoren og Java.
Du må definere hvor du har plassert C64-debuggeren, emulatoren og Java.

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:
    1. 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. 
    2. 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:
    1. Tast ./configure for å konfigurere alt sammen for ditt system. Dette kan ta en stund.
    2. Tast make for å kompilere pakken.
    3. Tast make install for å installere det hele. Nå kan du eventuelt skrive make clean for å fjerne filer du ikke trenger lenger. 

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.

Ett av eksempelprogrammene som følger med Kick Assembler kjører i C64-debuggeren, som startes opp ved å trykke Fn+F5 på Mac. Dette eksempelet setter opp en enkel raster-interrupt som skifter farge på deler av borderen, og samtidig også spiller musikk i bakgrunnen.
Ett av eksempelprogrammene som følger med Kick Assembler kjører i C64-debuggeren, som startes opp ved å trykke Fn+F5 på Mac. Dette eksempelet setter opp en enkel raster-interrupt som skifter farge på deler av borderen, og samtidig også spiller musikk i bakgrunnen.

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: 

Det var både morsomt – og litt flaut – å finne igjen noen av mine gamle «demoer» fra 80-tallet på csdb.dk.
Det var både morsomt – og litt flaut – å finne igjen noen av mine gamle «demoer» fra 80-tallet på csdb.dk.

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. 

Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.