Sådan kommer du i gang med Commodore 64-retro­programmering på din pc

Her har vi opsat et udviklingsmiljø for 6510-programmering for Commodore 64 på en Mac. Vi bruger KickAss-plug-in’et til VS Code, en Vice Commodore 64-emulator (nederst til venstre), samt 64 debugger (øverst til venstre). Illustration: Screendump, digi.no
Med VS Code og en Java-emulator kan du hurtigt komme i gang med at programmere Commodore 64 på Mac eller Windows.

Undertegnede startede sin karriere som teknologijournalist i slutningen af 1980’erne, da jeg skrev en artikelserie om 6502/6510-assembler-programmering på Commodore 64 for et magasin som hed Norsk Datormagazin.

Programmeringsinteressen har imidlertid altid været der – og her den anden dag snublede jeg over en 6510-assembler skrevet i Java, som kan køres på alle platforme med Java 8.0 eller nyere. Måske jeg skulle se, om jeg fortsat havde noget af den gamle ‘magi’ i fingrene?

Den gamle brødkasse! Illustration: Marius Jørgenrud

Siden den gamle ‘brødkasse’ (kælenavnet for de første udgaver af Commodore 64) for længst var solgt, blev jeg nysgerrig på, hvor let (eller vanskeligt) det var at komme i gang med 6510-assemblerprogrammering på en Mac eller Windows-pc – med emulator. Gerne i min favoritt-kode-editor: Microsoft Visual Studio Code (VS Code).

Dette skulle vise sig at være nogenlunde overkommeligt – men helt uden udfordringer var det ikke.

I gang med retro-programmering

Her er en guide til både Mac OS og Windows, i tilfælde af at du har lyst til at prøve noget lignende selv. I slutningen af artiklen er der også nogle links til nyttige websites, som får dig i gang, hvis du ikke kender til 6510-assembly fra tidligere.

Ud over at få opsat udviklingsmiljøet i VS Code, gennemgår vi også, hvordan du får Commodore 64-emulatoren Vice til at fungere på nyeste version af Mac OS (Catalina).

Under vores test viste det sig nemlig, at Vice ikke fungerede efter Catalina-opgraderingen – og dermed måtte vi downloade kildekoden til både en 6502/6510-krydscompiler og Vice, for derefter at kompilere begge dele med en C-compiler.

Det finnes flere plug-ins, som integrerer VS Code med Kick Assembler. Et af dem hedder Kick Assembler for Visual Studio Code fra udvikleren Paul Hocker. Et andet plug-in hedder KickAss (C64) fra Captain JiNX. Du finder dem ved at trykke på Extensions-knappen i venstre sidemenu i VS Code og søge.

Efter at du har installeret plug-in’et, skal du også installere følgende:

  • Kick Assembler
  • Java runtime
  • Vice
  • C64 debugger

Vi har lavet to brugsanvisninger – en for Mac OS og en for Windows. Siden Mac OS Catalina har et par ekstra kompileringstrin, starter vi med Windows.

Windows – sådan kommer du i gang

Siden der findes en færdigkompileret version af emulatoren Vice til Windows, er det lidt enklere at komme i gang end på Mac. Sådan gør du det:

  • Download og installer en Java runtime (Kick Assembler er skrevet i Java). Du finder den seneste version her: https://www.java.com/en/download/

  • Start pc’en igen og åbne en kommandolinje (Windows-R, skriv cmd). Skriv
    java -version
    for at tjekke, at Java er korrekt installeret.

  • Download Kick Assembler fra http://theweb.dk/KickAssembler

  • Udpak Kick Assembler til en egnet mappe, for eksempel C:\KickAssembler

  • Test, at ting fungerer: Gå ind i KickAssemblers-mappen og skriv
    java –jar kickass.jar
    efterfulgt af navnet på en fil med assemblerkode. Du kan prøve nogle af eksempelfilerne, som følger med, for eksempel:
    java -jar KickAss.jar Examples\01.MusicIrq\MusicIrq.asm

Artiklen fortsætter under illustrationen.

Her tester vi, at Kick Assembler fungerer på Windows. Illustration: Screendump, digi.no

Hvis alt fungerer, som det skal, vil du nu have fået en ny fil med endelsen .prg. Dette er binærfilen, du kan køre i Commodore 64-emulatoren vi skal installere nu.

Pokefinder har færdigkompilerede versioner (binaries) af Vice for Windows. Illustration: Screendump, digi.no

I modsætning til på Mac findes der nye ‘builds’ af Vice til Windows, som kan downloades fra http://vice-emu.sourceforge.net/ eller https://vice.pokefinder.org/. Selv gik jeg til sidstnævnte URL og downloadede filen, udpakkede og installerede filen, som hedder GTK3VICE-3.3-win64-r37192 (der lægges stadig nye versioner ud).

Kør filen x64sc.exe for at teste, at emulatoren fungerer. x64sc er en version af x64, som efter sigende er mere fokuseret på nøjagtig emulering end x64, og det var kun førstnævnte, som fulgte med i den version af Winvice som vi downloadede.

  • Installer C64 debugger. Efter at du har downloadet og installeret Vice, har du også brug for et program, som hedder C64 65XE Debugger. Den lader dig kjøre C64-programmer, samtidig med at du kan navigere gennem Commodorens hukommelsesområder, se værdierne for forskellige registre samt sætte breakpoints i koden og gå igennem koden trin for trin.

Du finder C64 65X Debugger på denne side:

https://sourceforge.net/projects/c64-debugger/

Udpak debuggeren til et passende sted.

Efter at du har installeret plug-in’et, skal du fortælle det, hvor du har placeret filerne for Kickassembler og C64 Debugger. Gå til listen over alle dine VS Code-udvidelser (eller søg på Kick Assember-plug-in’et) og tryk på det lille tandhjul og derefter Configure Extension Settings.

Du skal definere, hvor du har placeret C64-debuggeren, emulatoren og Java. Illustration: Screendump, digi.no

Når alt er opsat, kan du teste assembleren med for eksempel nogle af eksemplerne, som følger med Kick Assembler. Load en .asm-fil, og tryk Fn + F5 for at kompilere og køre i Vice, eller Fn + F6 for at køre i C64 Debugger.

Kick Assembler har ganske mange avancerede muligheder, for eksempel mulighed for automatisk at generere et lille Basic-opstartsprogram, som kører dit maskin-kodeprogram, samt et scriptsprog som kan bruges til at generere data, du kan bruge i dine programmer – for eksempel sinusbølger til sprite-animationer eller andre ting.

Jeg anbefaler at tage en kig i den medfølgende brugsanvisning!

Nederst i artiklen finder du en liste med nyttige links.

Mac OS – sådan kommer du i gang

Den bedste Commodore 64-emulator, jeg har fundet til både Mac og Windows, er Vice. Version 3.3 er i skrivende stund den nyeste version, men udviklerne bag emulatoren er holdt op med at levere officielle binaries (exekverbare filer).

Mens der findes uofficielle binaries for Windows (som beskrevet under ‘Windows – sådan kommer du i gang’), skal du foreløbig på Mac OS enten kompilere kildekoden selv – eller finde nogen, som har gjort det for dig.

Der uploades af og til eksperimentelle binaries fra udviklere på denne side – men der advares mod, at dette kan være ufærdige og ustabile binaries, ofte med debug-kode. Her fortæller vi dig, hvordan du kompilerer selv.

Her er hele fremgangsmåden:

  • Du har brug for en C-compiler: Her har du flere muligheder:

1. Den ene mulighed er at gå ind i App Store på din Mac og downloade Apple Xcode. Dette er et komplet udviklingsmiljø, som indeholder meget mere end du behøver til lige netop dette formål – som i udgangspunktet bare er Xcode Command Line Tools med blandt andet GCC – Gnu Compiler Collection.
2. Hvis du vil slippe for at downloade den massive Xcode-pakke, kan du nøjes med at installere Xcode Command Line Tools. På Mac kan du enkelt installere blot dette ved at åbne et terminal-vindue og så skrive kommandoen gcc ind. Hvis det ikke er installeret fra tidligere, vil der poppe et vindue op, hvor du får valget mellem at installere hele Xcode eller kun kommandolinjeværktøjerne.

  • Download Vice. Du finder information om emulatoren og downloadlinks på http://vice-emu.sourceforge.net/. Som sagt er der ikke længere officielle binaries her, men du bliver henvist til download af seneste version af kildekoden fra https://sourceforge.net/projects/vice-emu/ . Du finder alle de forskellige versioner på https://sourceforge.net/projects/vice-emu/files/
  • Download en 6510-cross compiler. Vice er afhængig af xa (xa65) – som er en cross compiler – altså en compiler, som kan lave kørbar kode til en anden platform, end den compileren kører på. I vores tilfælde en compiler, som kan lave 6510-maskinkode. Du downloader den herfra: https://www.floodgap.com/retrotech/xa (versionen, vi downloadede, var xa-2.3.10.tar.gz)
  • Kompiler xa. Udpak filen, gå til mappen, du har pakket den ud i (i et terminalvindu), og skriv make og derefter make install. Placér filerne et sted, du kan finde dem igen – gerne i /usr/local/bin
  • Kompiler Vice. Kildekoden ligger i en komprimeret fil (vice-3.3.tar.gz i vores tilfælde). Dobbeltklik på denne i Finder for at pakke den ud. Så åbner du et terminal-vindue og bruger cd-kommandoen i mappen med kildekoden (som du netop har pakket ud). Du finder udførlige instruktioner for, hvordan du installerer Vice, i filen INSTALL – men her er den korte version:

1. Tast ./configure for at konfigurere alt sammen til dit system. Dette kan tage lidt tid.
2. Tast make for at kompilere pakken.
3. Tast make install for at installere det hele. Nu kan du eventuelt skrive make clean for at fjerne filer, du ikke har brug for længere.

Installer VS Code-plug-in’et Kick Assembler for Visual Studio Code fra Paul Hocker eller KickAss (C64) fra Captain JiNX (vi kunne bedst lide sidstnævnte).

Efter at du har installeret plug-in’et, skal du fortælle det, hvor du har placeret filerne til Kickassembler og C64 Debugger. Gå til listen over alle dine VS Code-udvidelser (eller søk på Kick Assembler-plug-in’et) og tryk på det lille tandhjul og derefter Configure Extension Settings.

Når alt er opsat, kan du teste assembleren med for eksempel nogle af eksemplerne, som følger med Kick Assembler. Load en .asm-fil, og tryk Fn + F5 for at kompilere og køre i Vice, eller Fn + F6 for å køre i C64 Debugger.

Et af eksempelprogrammerne, som følger med Kick Assembler, kører i C64-debuggeren, som startes ved at trykke Fn+F5 på Mac. Dette eksempel opsætter en enkel raster-interrupt, som skifter farve på dele af borderen og samtidig spiller musik i baggrunden. Illustration: Screendump, digi.no

Kick Assembler har ganske mange avancerede muligheder, for eksempel mulighed for automatisk at generere et lille Basic-opstartsprogram, som kører dit maskinkodeprogram, samt et scriptsprog, som kan bruges til at generere data, du kan bruge i dine programmer – for eksempel sinusbølger til spriteanimationer eller andre ting. Jeg anbefaler at tage en kig i den medfølgende brugsanvisning!

Held og lykke!

Nyttige ressourcer

Her er nogle websites, som kan være gode at have i baghånden, når du skal i gang med programmering til Commodore 64:

Det var både sjovt – og lidt flovt – at genfinde nogle af mine gamle ‘demoer’ fra 1980’erne csdb.dk. Illustration: Screendump, digi.no
  • Glimrende wiki med det meste af det, du måtte undre dig over i forbindelse med Commodore 64-programmering, tekniske detaljer om hardwaren, forskellige programmeringsteknikker osv. : [https://codebase64.org/doku.php]
  • Underside af den forrige – her finder du information om programmeringsteknikker, som blev brugt i såkaldte ‘demoer’, for eksempel hvordan man åbner ‘borderen’, laver scroll-tekst, raster bars og så videre: https://codebase64.org/doku.php?id=base:demo_programming
  • Oversigt over 6502 opcodes: http://www.6502.org/tutorials/6502opcodes.html
  • Generel information om 6502: http://www.6502.org/
  • 6502/6510 dissassembler (dxa), der kan lave binærfiler om til læsbar assemblerkode: https://www.floodgap.com/retrotech/xa/#dxa
  • C64.com – en masse information om Commodore 64, spil, demoer, interviews og andet: http://www.c64.com/ (tjek også Facebook-gruppen her: https://www.facebook.com/groups/c64com)
  • Værktøj til at lave filer i Turbo Assembler om til Kick Assembler-format: https://goatpower.org/projects-releases/tasm-to-kick-assembler-converter/
  • CS64db – The C-64 Scene Database. Masser af info om gamle demogrupper, demoer, etc. https://csdb.dk/ (jeg fandt mig selv her – kun guderne ved, hvem der har lagt det ind: https://csdb.dk/scener/?id=7476 )

Har du tips til andre, der har lyst til at komme i gang med programmering på Commodore 64 – eller mener du, at der er noget, vi har glemt i denne artikel? Så skriv endelig i debatten herunder.

Artiklen er fra digi.no.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (3)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Nis Schmidt

Det er det jeg siger: Allways save a platform for a rainy day!

I 1996 fik jeg en rødhue CD (linux) med en chipmonk kredsløbssimulator ana/dig med AOD, så jeg kan sagtens følge nostalgi-elemented og med OpenVMS derude ... jeg drømmer om en 64-bit cluster-ready chipmonk - og håber, at se den en dag. Gud ved om den findes ? I'll be back.

  • 0
  • 0
Log ind eller Opret konto for at kommentere