I september 2014 släppte jag GENERATION 64, en maffig bok om de unga som växte upp med hemdatorn Commodore 64! Du skaffar den här.

Finns även på Akademibokhandeln, Bokus, Adlibris, CDON och SF-bokhandeln.




 

Gamla maskiner får nytt liv, del 5

17 augusti, 2012 av: Jimmy Wilhelmsson  

Det är många som vill koppla upp sina gamla Commodore-datorer till moderna plattskärmar och kunna komma åt filer smidigare än via diskett- och kassettstationer. Jag har i fyra tidigare delar (här, här, här och här) tidigare berättat om hur jag själv gått till väga med min C64 och A500.

Denna femte gång vill jag visa hur jag laddar C64-disketter från ett vanligt sd-kort genom driveemulatorn SD2IEC.

Jag berättade i Gamla maskiner del 3 att jag använder ett MMC64-kort för att ladda in .prg-filer i en C64 från ett SD-kort. Dessa filer är egentligen mjukvara, exempelvis spel, som består av en enda fil, vilket är vanligt i de komprimerade piratprogram som många hade på kassettband under hela C64-eran. MMC64 kan inte emulera en diskdrive och kan därför inte läsa in spel eller mjukvara som består av mer än en fil, och därför exkluderas en hel del mer avancerade spel.

Nu har jag dock under drygt två veckors tid fått testa en annan hårdvara, nämligen ett SD2IEC-kort som just emulerar en 1541-diskdrive på samma sätt som en HxC floppy emulator emulerar den inbyggda driven i en Amiga 500. Hur detta fungerar tänkte jag beskriva här.

Det första som slår en när paketet dyker upp är hur litet själva kortet är. Det finns flera olika varianter av denna typ av diskemulatorer och som alla bygger på samma chip, SD2IEC; vilket kort du väljer är en smaksak – en del är utrustade med led-skärmar och fler knappar men i grunden är det samma chip och firmware som styr det hela. Jag har här en tämligen enkel variant som kostar mellan 30-40 brittiska pund.

Som du kanske vet bygger jag en arkadmaskin som är tänkt att ha äkta C64-hårdvara i sig, så jag är mån om att så mycket som möjligt kan skötas med enkla knapptryck. Det här kortet, precis som andra kort, behöver ström för att fungera – men ingen ström kommer ur den serialport dit du normalt kopplar din 1541-diskdrive, och det är ju hit även din SD2IEC måste kopplas. Tillverkaren har löst detta problem med att bygga en extra liten kontakt som kopplas till kassettporten, och det enda syftet med detta är att hämta 5v för att driva kortet. Smart.

Som du ser ovan har jag kopplat en arkadknapp till kortet på egen hand. Exakt varför jag gjort detta kommer jag att återkomma till.

Eftersom din SD2IEC emulerar en diskdrive tror din C64 till 100 procent att det är en sådan den pratar med. Alltså kan du inte boota upp direkt med en filbrowser och börja välja bland spelen. Istället använder du exakt samma kommandon för att ladda spel från SD2IEC som du har gjort med en vanlig diskdrive.

Detta kan dock tyckas vara omständligt, och därför känns det mer naturligt att börja med att ladda in en filbrowser för att lättare sköta laddningarna därifrån. Det finns många sådana att välja mellan och i mitt fall har jag döpt den till FB för att korta ned laddningskommandot.

Eftersom det är en arkadmaskin jag bygger hade jag gärna undvikit att manuellt behöva ladda filbrowsern, men till skillnad från Amiga 500 kan inte en C64-diskett boota upp automatiskt, den måste först hittas och innehållet måsta laddas in. Därför är manuell inladdning av filbrowsern ett nödvändigt steg jag åtminstone i nuläget inte kommer undan.

Väl inne i browsern får jag upp mina mappar som jag redan lagt in på SD-kortet från en PC. Det är smart av flera anledningar att lägga varje spel i en egen mapp. Anledningen till detta är att spel som kräver mer än en disk behöver en särskild fil som berättar vilka disketter du vill bläddra mellan för det aktuella spelet. I en textfil kallad autoswap.lst listar du rad för rad upp filnamnen på diskarna, exempelvis:

dotc_s1.d64
dotc_s2.d64

Detta är det enda sättet för SD2IEC att veta vilka diskar du vill bläddra mellan. En sådan textfil behöver du ha i varje mapp där mer än en disk behövs för att ladda in spelet. Annars kommer inte diskbytena att fungera. Att ha alla diskfiler i en röra i rootkatalogen är alltså inte smart.

Det är nu jag vill återkomma till den arkadknapp jag fäst på min SD2IEC. En del varianter har redan en diskbytarknapp som helt enkelt bläddrar till nästa rad i textfilen du lagt med. I min version fanns ingen sådan knapp, men genom att connecta pinne 1 och 2 (i raden av tio pinnar på kanten av kortet) signalerar jag ett sådant diskbyte.

Det går alltså utmärkt att själv applicera en diskbytarknapp om du vet minsta lilla om elektronik. I mitt fall var det bra att ingen knapp redan fanns, eftersom jag ändå ville lägga till en egen arkadknapp för att sköta det hela.

När spelet väl laddar sker det i samma hastighet som en 1541-II, det vill säga i ganska vanlig hastighet utan fastloaders. Skulle du vilja använda en sådan får du kika igenom versionsuppdateringarna av firmware till SD2IEC; jag är personligen inte särskilt intresserad av snabbare laddningstider, då jag tycker det går snabbt nog. Det viktiga för mig är att det faktiskt fungerar till hundra procent varje gång – och att det är snabbare än kassettinladdning.

Så när en skärm som denna dyker upp trycker du på diskbytarknappen och ledarna på SD2IEC blinkar till lite. Du får aldrig reda på vilken disk som just nu ligger inne, såvida du inte har en lyxvariant med led-skärm som skriver ut det – likt min HxC till Amiga 500. Men i de flesta fall består ett C64 inte av mer än två disketter ändå. Sen är det bara att klicka på joystickknappen och om rätt disk är inne fortsätter spelet att ladda.

Sådärja. Spelet laddat och det är klart att köra. Det går givetvis lika bra att ladda in .prg-filer, precis som med MMC64-kortet jag nämnde ovan, men det går inte lika fort. MMC64 kör in en sparad minnesdump rakt in i din C64 och i stort sett ingen laddning alls behövs, det enda du möjligtvis behöver vänta på är lite uppackning av komprimerade data. Här laddas det alltså och tar något längre tid.

Då borde allt vara frid och fröjd? Nja, inte riktigt för min del. Betänk att jag i min arkadmaskin behöver kunna starta om min C64 med ett enkelt knapptryck. Det är snitsigt utfört genom att jag kopplar en arkadknapp till första och tredje pinnen i användarporten, vilket resetar datorn, tömmer minnet och tar mig tillbaka till BASIC-prompten.

Men…en sådan reset startar bara om datorn – inte min SD2IEC. Alltså står jag fortfarande med senaste disken inladdad och kommer inte åt min filbrowser om jag inte skriver in det komplicerade kommandot som tar mig tillbaka till rootkatalogen. Detta kommando vill jag undvika; istället vill jag kunna reseta även min SD2IEC på samma sätt som jag kan starta om min HxC floppy emulator (till vilken jag bara behöver ladda in själva bootfilen för att börja om).

Exakt hur detta låter sig göras vet jag inte, men jag forskar kring det. Om jag hittar ett sätt att reseta kortet via några pinnar vill jag först veta att det inte försvinner någon firmware, utan att den verkligen bara startar om och tar mig till rootkatalogen. Men det är en annan femma, och påverkar förmodligen inte de flesta andra användare som startar om sin C64 på ”vanligt”, det vill säga med strömbrytaren.

Ha en fortsatt trevlig fredagskväll!

 

 






Spelpappan drivs av Jimmy Wilhelmsson med erfarenhet av Commodore, datorspel och rollspel sedan mitten av 80-talet.
Jag har även gett ut ett flertal böcker om spel, nördigheter och populärkultur, ofta med en nostalgisk vinkel. Läs mer om mina böcker här.


I september 2014 släppte jag GENERATION 64, en maffig bok om de unga som växte upp med hemdatorn Commodore 64! Du skaffar den här.

Finns även på Akademibokhandeln, Bokus, Adlibris, CDON och SF-bokhandeln.





Kommentera