Artikel top billede

(Foto: Computerworld)

Guide: Sådan genskaber du Commodore 64 på din pc

Retrobølgen er over os, og vi ser nærmere på den
legendariske computer fra 80’erne, og
hvordan du emulerer den.

Af Kenneth Geisshirt, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Retrobølgen er over os, og vi ser nærmere på den legendariske computer fra 80’erne, og hvordan du emulerer den

At skrive om legendariske Commodore 64 (også kendt som brødkassen) er ikke let. Vi taler om en computer, som blev introduceret i 1982 og solgte 17 mio. eksemplarer frem til 1994. Jeg ved ikke hvor mange, der blev solgt i Danmark, men vi taler ikke om få eksemplarer. På mange måder er Commodore 64 computeren som fik middelklassen ind i informationsalderen, ligesom Ford Model T gav bilisme til middelklassen (Ford Model T blev produceret i omkring 15 mio. eksemplarer).

Nærværende magasin udviklede sig fra at være et tillæg til Ny Elektronik til at være et selvstændigt magasin. Derfor har Alt om DATA aldrig anmeldt den nye computer fra Commodore, men Ny Elektronik gjorde det i nr. 4/1983 (se testen her) Commodore 64 er min første computer – den store julegave i 1983. Efter et par måneder med datalære i ungdomsskolen (3 timer om ugen), havde jeg vist kun ét ønske det år.

Hardware og KERNAL

En Commodore 64 har et kabinet med motherboard og tastatur. I daglig tale bliver den omtalt som brødkassen grundet kabinettets form.

Cpu’en, som er en grundkomponent i enhver computer, er en 6510 fra MOS Technologies. 6510 er en videreudvikling af 6502 (ekstra I/O-port). Vi har tidligere i år bragt en introduktion til 6502. Som navnet antyder, har en Commodore 64 hele 64 kB ram. Men da 6510 kun kan adressere 64 kB, bruges en del af adresserummet til styresystemet og BASIC. For at få adgang til mere ram, kan en programmør koble BASIC fra.

Eftersom en Commodore 64 er koblet til et tv-apparat, er der forskel på europæiske og amerikanske modeller. I USA benytter man tv-standarden PAL, mens vi i Europa benytter NTSC. Opdateringsfrekvensen er forskellig, hvilket betyder, at den interne clockfrekvens skal være forskellig. I Europa har en Commo-dore 64 en clockfrevens på 1,023 MHz – lidt højere end i USA.

Computerens styresystem går under navnet KERNAL (sandsynligvis en slåfejl da kernel er typiske udtryk i datalogien). KERNAL er dels en bootloader og har dels ansvaret for at åbne, læse og skrive filer på disketter og bånd. Det vil sige, KERNAL er en samling af små funktioner/systemkald/drivere, som gør hardware anvendelig for programmørerne. Endvidere finder du en BASIC-fortolker i rom.

Det, som gør Commodore 64 til noget særligt, er lyd og grafik. Grafikchippen VIC-II kan vise både tekst og højopløselig grafik (320 x 200 var høj opløsning i begyndelsen af 1980erne). Endvidere er der mulighed for op til 8 sprites. En sprite er en lille figur, som programmøreren frit kan flytte rundt på skærmen. Da flytning sker meget hurtigt, giver det en god effekt i spil.Figur 1

Figur 1: I en Sprite-editor kan du lave små figurer til dine spil.

Lyden genereres af chippen SID. Med tre samtidige toner var Commodore 64 langt foran andre computere i 1980’erne. Lydbilledet har altid været en stor del af oplevelsen i spil på en Commodore 64.
Langt de fleste ejere begyndte med en datasette – en specialiseret kasettebåndoptager. Det specielle er, at datasette-porten ikke er en lydindgang, men er beregnet til data. Mange ejere vil huske, at dataoverførslen var følsom overfor tonehovedets placering. Det var ikke ualmindeligt, at tonehovedet skulle justeres med mellemrum. Disketter med en kapacitet på 170 kB er også en mulighed ved at tilslutte diskettestationen 1571.

Joysticks er en meget almindelig ydre enhed, og computeren har to joystick-porte. De billige joystick fra Commodore gik hurtigt i stykker, men heldigvis var der mange producenter. Udvidelser i rom er også en mulighed gennem cartridge-porten. Personligt har jeg aldrig ejet en rom-udvidelse, og jeg kender heller ikke mange som gjorde.

VICE – emulatoren

Godt er 17 mio. solgte eksemplarer mange, men det betyder jo ikke, at vi alle har adgang til en Commodore 64. Heldigvis er der råd for det. Der findes flere emulatorer af Commodores computer, men VICE (Versatile Commodore Emulator) er let at bruge og giver en præcis emulering. Som navnet antyder, er VICE alsidig (versatile). Det betyder, at den kan emulere en lang række af Commodores 8-bit computere.

For år siden var det besværligt at bruge VICE til at emulere Commodore 64, idet BASIC og KERNAL ROMs ikke fulgte med. Du kunne kun bruge VICE, hvis du havde en ROM liggende. I dag følger alle ROMs med, så du kan nøjes en enkelt installation.

Bruger du MacOS, har du to muligheder. For home brew-brugere, kan du let installere VICE med kommandoen brew install vice. Den anden mulighed er at downloade en DMG-fil og bruge den til at installere VICE med. DMG-filen finder du på VICEs website. Windows-brugere kan også finde en installer samme sted.

Jeg er home brew-bruger, så jeg bruger kommandoen x64 -sound -keymap 2 -symkeymap sdl_pos_da.vkm til at starte min emulator op. Ved at bruge option -symkeymap sdl_pos_da.vkm vælger jeg et tastaturlayout, som passer med en Mac med et dansk tastatur. Option -sound gør, at det er muligt at få lyden med.

Alternativt kan du trykke på F12, mens emulatoren kører. Du får derved adgang til alle settings. Du kan f.eks. definere, hvilke taster, som du ønsker at bruge som alternativ til et joystick.

Hvis du downloader spil eller applikationer fra internettet, kommer de i form af et disk image (.d64) eller tape image (.t64). VICE understøtter begge formater. Når du starter emulatoren op, kan du tilføje option -8 (disk) eller -1 (tape) efterfulgt af filnavnet. På den måde har din emulator adgang til hhv. disketten eller båndet.

Figur 2
VICE har et hav af opsætningsmuligheder. Især omkring opsætning af joystick er der rige muligheder. Hvis du skal have størst muligt udbytte af VICE, er det en god idé at investere i et joystick.

Figur 2: Når du starter din emulator op, ligner det præcist en Commodore 64.

Primitiv BASIC

Som så mange andre af 1980’ernes computere, booter en Commodore 64 op i et styresystem, hvor programmeringssproget BASIC er en integreret del. Styresystemet giver dig en række enkle kommandoer til at indlæse (LOAD), gemme (SAVE) og udføre (RUN) programmer.

Der er tale om en primitiv BASIC. Sproget indeholder stort set ikke andet end de mest basale nøgleord og faciliteter. Sammenlignet med Sinclair BASIC (se artikel om ZX Spectrum), mangler Commodore BASIC faciliteter til grafik og lyd. Der er heller ingen faciliteter til understøttelse af struktureret programmering (ingen rutiner/procedurer eller funktioner). Programmer til Commodore 64 ender ofte med at være en gang spaghetti-kode med al for meget brug af GOTO og GOSUB. Selv trivielle programmer kan være svære at læse.

I film fra 1980’erne skrev computere ofte ét tegn ad gangen, og det syntes jeg så smart ud. Programmet i infoboksen “Teletype” har jeg genskabt et af de tricks, jeg brugte i mine programmer dengang. Løkken i linjerne 40 og 50 tager tilpas lang tid til, at der er en lille pause mellem hvert tegn.

Figur 3 Langt det meste kode en almindelig ejer af en Commodore 64 skriver, er i BASIC. Men det er muligt at skrive i maskinkode. Endvidere indeholder KERNAL en række rutiner, som kan kaldes direkte. Til det formål har du kommandoen SYS. Du angiver blot adressen, hvor maskinkoden er placeret. For eksempel vil SYS 64738 udføre en reset af din computer.

Figur 3: Et lille program der holder pause mellem hvert tegn.

Som allerede antydet, har en Commodore 64 ganske god lyd og grafik. Uden særlige BASIC-kommandoer til lyd og grafik, er der ikke meget andet end at gå helt tæt på hardwaren. Kommandoen POKE kan skrive en given værdi til en adresse. For eksempel kan du skifte rammen til hvid med kommandoen POKE 53280,1 dvs. skrive værdien 1 (for hvid) til adressen 53280. Eller du kan ændre på, hvor hurtig cursoren blinker med kommandoen POKE 56341,X (X er et tal mellem 0 og 255). Lyd og grafik har også adresser, og et memory map er et must for enhver C64-programmør. Selv skærmen i text mode har et område i hukommelsen (begyndende på adresse 1024). I infoboks “Skriv på skærmen” ovenfor finder du et lille program, som skriver lighedstegn tilfældige steder på skærmen.

I 1983 udviklede den unge englænder David Simons en udvidelse af den oprindelige BASIC. Produktet blev udgivet som en cartridge af Commodore under navnet Simons’ BASIC. Udover at give bedre mulighed for struktureret programmering (procedurer, ELSE i forgreninger) er det især omkring lyd og grafik, Simons’ BASIC har sin styrke. I min Commodore-periode, husker jeg ikke, at mange brugte Simons’ BASIC.

Det er værd at nævne, at mange andre programmeringssprog fandt vej til Commodore 64. COMAL-80 var i Danmark det store sprog i folkeskolen og gymnasiet. Naturligvis var COMAL-80 også på Commodore, men da Commodore 64 aldrig blev udbredt i danske skoler, tvivler jeg på, hvor stor en succes produktet var. Pascal, Forth og sågar COBOL kunne bruges. Selv lærte jeg C på min Commodore 64 en sommerferie i 1980’erne. Få år senere skrev jeg i C på en Cray supercomputer.

Spil

Lad det ikke være nogen hemmelighed: Commodore 64 blev brugt som spillekonsol i de små hjem. Et estimat siger, at 23.000 spil er udkommet til computeren! Jeg husker Pole Position som et af mine første spil. Som ejer af en Commodore 64 over en årrække, blev favoritterne naturligvis skiftet ud løbende. Jeg husker mine egne favoritter som værende Winter Games, Zaxxon, Commando, Little Computer People og Solo Flight. Figur 4

Figur 4: Pole Position fra 1982 var en af mine første computerspil.

I 1983 var verden vidne til hungersnød i Etiopien, og især engelske musikere gik sammen om at samle penge ind. Udgivet i 1984 under navnet Band Aid og sangen ”Do they know it’s Christmas”, satte den engelske (og senere den amerikanske) musikindustri fokus på uligheden og nøden i verden. Som noget helt unikt gik engelske spilfirmaer sammen og udgav Soft Aid til ZX Spectrum og Commodore 64. Det var et bånd med 10 spil. Ikke at jeg husker spillene, men jeg kan huske, at jeg købte samlingen hos min lokale fotobutik.

Nu tænker du nok, at spil til Commodore 64 er et afsluttet kapitel. Men du tager fejl – der skrives stadig spil til computeren. Et eksempel er Exploding Fish fra juli 2018 (ja, årstallet er korrekt). Det er et enkelt spil skrevet i maskinkode. Udviklerne fortæller, at det er en omskrivning af et af deres Android-spil. Det er udkommet i magasinet RESET, som er et onlinemagasin om Commodore 64. Det udkommer et par gange om året. Seneste nummer er iøvrigt fra sommeren 2018. Figur 5

Figur 5: Exploding Fish er et spil til Commodore 64 fra 2018.

Stor betydning

En artikel om Commodore 64 kan aldrig komme rundt i alle detaljerne, historier og de personlige anekdoter. Det er en computer, som har haft stor betydning for, hvordan helt almindelige mennesker lærte computere at kende. Samtidig er det også en computer, som tændte en ild i mange af os. Demo-scenen var en legeplads for kreative unge.

1980’erne (og lidt ind i 1990’erne) var der en del it-litteratur på dansk. Danske skribenter som E. Dam Ravn og Erwin Neutzsky-Wulff skrev en del bøger om tidens computere, herunder Commodore 64. Commodore-folket havde også deres eget magasin (RUN) og Alt om DATA skrev også flittigt om den. Du kan søge på “Commodore 64” hos bibliotekernes fælles database for at få et indtryk af omfanget.

I 1983 crashede markedet for spillekonsoller (primært i USA og Japan), og firmaer som Atari forsvandt nærmest. Konkurrencen fra hjemmecomputere som Commodore 64 var ganske enkelt for hård. Oprindelig var hjemmecomputere meget dyrere end konsollerne, men en priskrig mellem Commodore og Texas Instruments fik prisen på hjemmecomputere ned på niveau med konsollerne. Og da hjemmecomputerne både havde spil og seriøse applikationer – og kunne programmeres let (sammenlignet med konsollerne), var der ingen grund til at købe konsollerne.

Muligvis har den omfattende piratkopiering også gjort sit. Piratkopiering var ganske udbredt blandt ejere af hjemmecomputere. Når du først havde købt hardware, var det ikke svært at få fat i spil og software. Allerede i 1985 kunne magasinet RUN (blad nr. 6) skrive om “de blå pirater”. Som navnet antyder, var der i Den Blå Avis mange annoncer, hvor spil og software var til salg. Jeg husker også særlige stik til Commodore 64, så to datasetter kunne tilsluttes datasette-porten. Når du indlæser et spil fra en datasette, gemmes det automatisk på den anden datasette.

Hjemmecomputerne var ikke noget for voksne i 1980’erne. Børn og især teenagers fandt sammen i fællesskaber som få voksne forstod. Udover at mødes og spille sammen, opstod der grupper, som skrev demoer sammen. En demo er et ikke-interaktivt program. Om du vil, en slags film eller måske kunstværk. Der er registreret hele danske 294 grupper i “The C-64 Scene Database” (csdb.dk). Mens nogle var gode til programmering var andre gode til at tegne (grafik) eller komponere musik (lyd).

Demo-scenen var en kreativ legeplads og en del deltagere fortsatte ind i spilbranchen. Måske ikke et ungdomsoprør, men computere som Commodore 64 gav unge mennesker fællesskaber på deres egne præmisser og uden bedrevidende voksne. Figur 6

Figur 6: Demoen Visuality 3 (1993) fra den danske gruppe Visual Reality.

Commodore 64 er ikke en død computer. Der skrives stadig en demo i ny og næ. En søgning i Den Blå Avis viser, at du stadig kan købe computer, tilbehør, bøger og spil. Og i foråret lancerede Retro Games den lille konsol THEC64 Mini med en del spil og muligheden for at programmere i Commodore BASIC. For mange af min generations programmører begyndte fremtiden med en Commodore 64.