Commodore 64

Revision as of 19:09, 30 January 2025 by Dicander (talk | contribs)

Commodore 64 är en legendarisk hemdator från 1982 <a href="https://en.wikipedia.org/wiki/Commodore_64">mer om den på Wikipedia</a>. På Stacken finns ett exemplar av den första modellen som kallas breadbin. Vår C64 har flera olika rombankar med alternativa rommar att använda, och en diskemulator. I katalogen /dicander så finns några basic program och inom /duuqnd samt /hugova så finns program skrivna i assembler.

Emulering och kompilering

Vi har främst använt emulatorn VICE den finns som flatpak (finns även binärer för Windows och macOS) för emulering, och assemblern som kommer med cc65 kompilatorpaketet. Här är ett exempel på hur man skriver assembly till datorn.

Skapa en fil source.s med innehållet

lda #$00  
sta $d020 
loop: jmp loop 

Koden sparar värdet 00000000 00000000 på platsen i hexadecimal d020 i ram. Detta gör skärmens ram svart. Sedan fastnar programmet i en oändlig loop.

VICE emulator image.img.png

Sedan kan du assembla och länka programmet med cc65 kompilatorn och köra programmet i VICE med bash kommandot

 killall x64sc ; cl65 -o file.prg -u __EXEHDR__ -t c64 -C c64-asm.cfg source.s && nohup flatpak run net.sf.VICE -windowypos 0 -windowxpos 960 -windowwidth 945 -windowheight 720 file.prg  </dev/null &>/dev/null &

Du kan debugga program i VICE genom att klicka 'File --> Activate monitor'

Om du vill köra din kod på den faktiska burken, flytta över file.prg till en katalog med ditt stackenanvändarnamn på det SD-kort som sitter i Commodore 64:an.

Här är en mängd resurser för hur hårdvaran fungerar!

cc65 kompilatorns assembler [1]

Commodore 64 Wiki [2]

6502 CPU instruction set: good (expansive)[3] wikipedia (minimalistic) [4]


sprites [5]

sprite multiplex [6]

sprite multiplex x2 [7]

Documentation of the VIC-II videochippet: text [8] VIC-II [9]

Holding hand instructions : codeburst hard asembly code [10] flag intro [11] peek and poke [12]

Cool unexplored tools (text)[13]