Spillarkeologi: Peeking and Pokeing the Sharp MZ-80A

Jeg har skrevet inn programkoden til tre spill som ikke tidligere var tilgjengelige for nedlasting.

Det er i mine øyne viktig å ta vare på så mye som mulig av historiske spill, og gjøre dem tilgjengelige i spillbar form. Dette inkluderer både klassikerne og spill vi ikke typisk tenker på som spesielt gode eller interessante – det er ikke opp til oss å avgjøre hva fremtidens spillhistorikere vil finne nyttig å utforske, og vår jobb er sånn sett bare å redde så mye som mulig av spillhistorien før det er for sent.

Boken bærer preg av å være godt brukt.
Boken bærer preg av å være godt brukt.

Derfor har jeg nå digitalisert tre forskjellige spill som opprinnelig ble brukt som programmeringseksempler. De stammer alle fra boka Peeking and Pokeing the Sharp MZ-80A, som ble publisert i 1982 og skrevet av en person ved navn G.P. Ridley. Boka er et hjelpemiddel for folk som ønsker å lære seg å programmere på datamaskinen Sharp MZ-80A.

Jeg har allerede skrevet litt om dette 8-bits sjarmtrollet i en annen artikkel, men kort sagt er det en japansk mikrodatamaskin som ble introdusert tidlig på åttitallet, og som fikk en viss suksess i Europa (skjønt oppfølgeren, Sharp MZ-700, ble mye mer populær).

Gjør det selv-mentalitet

I starten av åttitallet var det nærmest utenkelig å kjøpe seg en datamaskin uten samtidig lære seg å programmere – kommersiell programvare kunne ofte være veldig vanskelig å få tak i, så tanken var i stor grad at hvis man hadde behov for at datamaskinen skulle utføre en oppgave, så måtte man programmere den til å gjøre dette selv. I tillegg var muligheten til å lære seg programmering ofte en viktig grunn til å kjøpe datamaskin i seg selv, enten man ønsket å gjøre det for moro skyld (og ja, det er veldig moro) eller fordi man så for seg at programmering kom til å være smart å kunne i et stadig mer digitalisert samfunn.

Mikrodatamaskiner fra denne tiden ble vanligvis lansert med en eller annen variant av programmeringsspråket BASIC i pakka, og noen – slik som Commodore 64 – hadde det til og med innebygd i maskinens minne. BASIC er lett å lære, og for så vidt også rimelig kraftig, men sliter litt med hastigheten ettersom BASIC-programmet dynamisk må «oversette» koden fra et leselig format til noe datamaskinen kan forstå og kjøre.

Sharp MZ-80A.
Sharp MZ-80A.

Bøker som Peeking and Pokeing the Sharp MZ-80A var altså ganske populære, og vi finner massevis av eksempler på slike til det meste av hjemmedatamaskiner på åttitallet. Akkurat denne boka tar for seg hvordan man bør strukturere programmer, hvordan man kan bruke PEEK og POKE-kommandoene til å manipulere datamaskinens minne direkte (med en egen seksjon om videominnet), og hvordan man kan lagre data på kassetter gjennom BASIC. Jeg har selv lært noen triks fra boka, som kom godt med da jeg lagde spillet Minesnake.

Peeking and Pokeing the Sharp MZ-80A har altså flere eksempelprogrammer, inkludert tre spill. Her er hele kildekoden til spillene gjengitt i boka, og det er meningen man skal skrive det inn selv (og forhåpentligvis lære noe av prosessen). Den er sånn sett et eksempel på hvordan analogt papir faktisk var en vanlig distribusjonsform for spill på sytti- og åttitallet. For andre eksempler på dette, kan du lese om Jotto på Commodore 64, og Cosmic Cavern for Sharp. Jeg har også scannet noen programlistinger for Sharp MZ-700 fra det norske bladet Mikrodata.

Så vidt meg bekjent, har ikke spillene fra Peeking and Pokeing the Sharp MZ-80A blitt digitalisert og gjort tilgjengelige på nettet. Min venn Ben Coffer har lagt selve boka ut som PDF, men det hjelper jo ikke om man ønsker å faktisk teste spillene. Dermed var det bare å brette opp ermene (eller ta på seg t-skjorte, som er det jeg foretrekker), og sette i gang med å overføre dem selv.

Deler av koden for Connect 4.
Deler av koden for Connect 4.

Gamlemåten eller klipp & lim?

Det er tre spill i boken. Det første er et enkelt romskytespill uten navn, det andre er en Hangman-klone, og det tredje er en variant av det klassiske 4-på-rad-spillet. Ingen av dem er spesielt store – det største av dem er Connect 4, som tar opp tre sider i boken. Koden er heller ikke særlig komprimert, slik som tilfellet var med Cosmic Cavern, så den er lett å lese.

For å overføre romskytespillet (som jeg bare ga navnet Aliens) og Connect 4 brukte jeg PDF-en av boka og hentet teksten ut i en tekstfil, som jeg så gikk gjennom for å fikse. Dette var en litt frustrerende affære, ettersom oversettelsen stadig forvekslet bokstaver og tall – B og 8, 0 og O, A og 4, for eksempel, og flere andre tegn var også vanskelige (semikolon skapte stadig krøll). Maskinens mange spesialtegn lot seg heller ikke overføre til standard ASCII. Noen linjer av koden hadde faktisk så mange feil at det hadde gått raskere å skrive dem inn for hånd.

Men jeg fikk overført begge, og deretter brukte jeg «klipp og lim»-funksjonen til emulatoren min for å legge dem inn. Etter en god del testing (og feilmeldinger på grunn av feil jeg ikke hadde oppdaget), fikk jeg dem til å kjøre greit.

Connect 4.
Connect 4.

Hangman gjorde jeg på gamlemåten – ved å åpne opp den fysiske boka og legge den ved siden av tastaturet, for så å skrive inn hele koden for hånd. Resultatet var så godt som feilfritt, og jobben tok heller ikke så voldsomt lang tid. Det var faktisk en litt tilfredsstillende prosess, riktignok godt hjulpet av at programkoden kun tok opp en og en halv side med (stort sett) korte linjer.

Aliens, Connect 4 og Hangman

Spillene i seg selv er ikke direkte avanserte, men både Connect 4 og Hangman fungerer ganske godt. Connect 4 er en svært kompetent versjon av det klassiske spillet – det eneste som er synd er at det kun er for to spillere, men det å lage en datamotstander kan jo være en interessant nøtt for de ekstra avanserte.

Hva kan ordet være?
Hva kan ordet være?

Hangman gjør veldig mye ut av det som strengt tatt er veldig lite kode, og selv om det mangler en innebygd ordliste (som ville vært rimelig triviell å legge til), fungerer det faktisk helt utmerket. Jeg har sett langt dårligere versjoner av spillet – for eksempel i den norske spillsamlingen 75 Spill for Commodore 64. G. P. Ridleys versjon holder nemlig rede på bokstavene du har prøvd, via en ærlig talt ganske smart bit med kode, og det fører også opp bokstavene du gjetter alle steder i ordet slik at du slipper å gjette samme bokstav flere ganger.

Faktisk kan jeg godt se for meg at jeg ville ha brukt litt tid på disse spillene om jeg hadde fått fatt i dem på åttitallet – Sharp-en min var alltid populær når jeg fikk besøk, og jeg hadde faktisk ikke særlig mange spill for flere spillere (jeg var egentlig ganske sulteforet på spill i utgangspunktet).

Her kan du se en video av de tre spillene slik de arter seg på emulator:

Du kan laste ned trioen med spill fra lenken under. De er i MZF-format, og fungerer med emulator (jeg anbefaler EmuZ-80A, skjønt du må ha ROM-filene om du ønsker å bruke denne – disse finner du på MZ80A.com). Om du vil kjøre dem på original maskinvare, kan du bruke MZF Studio til å konvertere dem til lydfiler, og spille dem inn på kassett. Merk at spillene trenger BASIC SA-5510 for å kjøre.

Last spillene ned her!

Legg igjen en kommentar

Dette nettstedet bruker Akismet for å redusere spam. Lær om hvordan dine kommentar-data prosesseres.