Viser innlegg med etiketten CP/M. Vis alle innlegg
Viser innlegg med etiketten CP/M. Vis alle innlegg

torsdag 28. desember 2017

Machines with Software eXchangeability (SVI-738)

En gang i tiden var hjemmemarkedet for datamaskiner splittet, spennende og fylt med en hel haug med interessante løsninger man siden ikke har sett makan til. Vi hadde vår Commodore 64. britene hadde deres ZX Spectrum og amerikanerne snakker vi ikke stort om siden de foretrakk å spille på konsoller istedenfor. Alle av løsningene vidt forskjellig, ingenting av tilleggsutstyret ditt ville passe til noe annet og i alle fall ville ikke programvaren fungere - for det var de alle altfor forskjellig. På starten av 80-tallet kunne det hende at du fant en plugg som passet til noe annet, men altfor mange forsøk endte i gnister, røyk og tårer.

I dag har vi mange standarder, mer eller mindre definert av de som er igjen mens på den tiden hadde alle sin egen standard som man helst ikke skulle fortelle noen om. Lederen for Microsoft Japan, Kazuhiko Nishi, var tilfeldigvis også med i et forsøk på standardisering av tegnsett, ASCII. Han var dermed tilbøyelig for å standardisere ting på en offentlig og tilgjengelig måte, med andre ord egenskaper Microsoft skulle bruke nesten 30 år på å gjenoppdage som noe nytt og hipt! I 1983 lanserte Microsoft MSX-standarden, et av tidenes første forsøk på å standardisere en arkitektur for hjemmedatamaskiner - målet var mange produsenter av datamaskiner og tilleggsutstyr der alt dette kunne brukes sammen, men utover lignende porter og hardware så skulle programvaren også kunne brukes på alle av dem.

Var så heldig å komme over en Spectravideo 738 X'Press som så etter et nytt hjem, vel teknisk sett så ble den en del av totalprisen da jeg kjøpte min Commodore 128. Har en følelse av at jeg fikk den for en god pris så ikke selgeren skulle få for dårlig samvittighet for å blakke meg totalt, eventuelt så var han bare glad for å se den gå til noen som ville sette pris på den! Av alle MSX-maskiner av den første generasjonen så må dette sies å være en av de mest eksklusive, den har selvsagt MSX-Basic, MSX-DOS og MSX CP/M 2.2 inkludert i pakken, men det kule er at den kom med en egen eksklusiv bæreveske med plass til alt.


Et av de bedre forsøkene jeg har sett på å lage en tidlig bærbar maskin, selve maskinen har til og med et bærehåndtak i bakkant som i vesken beskytter portene i bakkant - under bruk foldes den under maskinen for å løfte den opp fra bakkanten. Strengt tatt har den ikke noe batteri eller skjerm så helt bærbar etter dagens standard var den ikke, men alle hadde vel en TV så det ordnet seg.

Maskinen jeg kjøpte kom komplett i original eske inkludert alt av manualer samt en ekstra bok på norsk, to spill på cartridge som sikkert var verdt mer enn totalprisen samt en hel haug med disketter. Har aldri følt meg så bortskjemt heldig som da jeg åpnet denne pakken. Knightmare er til og med noe så sjeldent som et vertikalt scrollende skytespill jeg har likt, til tiden å være har det god grafikk og for MSX å være ganske rå musikk!


Den bruker de samme typene disketter som en Amiga, det vil si DD-disketter (720KB, maskinen formaterte dem med 360KB kapasitet) fremfor dagens HD (1.44MB) varianter selv om de i standardiseringens ånd har valgt å bruke vanlige diskettstasjoner av den typen man også fant i de senere PC XT/AT datamaskinene så jeg aner et håp om å få sneket inn en Gotek en plass der. På den andre siden så liker jeg den fysiske diskettstasjonen som står i den nå, jeg hadde i forkant lest om at de lagde mye lyd under bruk og jeg vil si at det var en kraftig underdrivelse! Første gangen jeg hørte den i bruk trodde jeg den var i ferd med å slite seg selv i fillebiter, litt som en femåring som har oppdaget en blikkboks fylt med spiker eller noe i den dur. Definitivt en del av sjarmen!

Ved lansering i Norge i 1985 så hadde den en utsalgspris på 5900 kroner, så dette var definitivt en maskin for folk med litt mer penger for hånden. Sammenlignet med ZX Spectrum så kunne du kjøpe en slik til alle kompisene dine og fortsatt ha et par i reserve, eventuelt en Commodore 64 til deg selv og et par til dine to beste venner. Med andre ord ikke det billigste av løsninger, men til gjengjeld så var dette så profesjonelt som du fikk det på hjemmemarkedet uten å måtte velge mellom datamaskin og hus.

Med tanke på hvor forseggjort maskinen var så er det synd at disse aldri ble en stor suksess, men dette var årene da alt skjedde. I løpet av sitt første leveår så opplevde den å se lanseringen av Atari ST samt ryktene og etterhvert lanseringen av Commodore Amiga så det er mulig denne kom litt for sent, den ble det beste av 8-bit teknologi i en tid da alle ville ha 16-bit. Det hjalp heller ikke at Microsoft selv droppet all støtte for plattformen etterhvert som at de innså at IBM PC-klonene etterhvert kom til å bli tilgjengelig for hjemmemarkedet, men som så mye annet så ble det en god tanke, halvveis gjennomført!



lørdag 9. desember 2017

Alle gode ting er 3x!

Vel, strengt tatt så er vel tre-gangen for mye av det meste. Altfor store t-skjorter som likevel ikke passer spesielt godt, den tredje overraskelsen i Kinder-egg er fortsatt ulovlig i USA og i 1985 satset Commodore på at det å satse på tre systemer i en datamaskin var en god ide. Brukerne ville ha noe nytt og fancy, Commodore 64 var allerede mange år gammel og til tross for et programvarebibliotek andre kunne drømme om, så virket det som at verden så på operativsystemet CP/M som den tingen alle bare måtte ha. Tilgjengelig for alle de små hjemmemaskinene som ville litt mer, så lenge den hadde en z80-prosessor under panseret.

Så hva gjorde de med den problemstillingen? De tenkte hardt en håndfull måneder, deretter ignorerte de teknikernes anbefalinger om å sende en knapt fungerende prototype ut i full produksjon av frykt for at brukerne skulle oppgradere til noe annet i mellomtiden. Den fungerte, bare ikke optimalt; Z80-prosessoren stiftet fast i maskinvaren, men kjørte knapt med halve hastigheten av konkurrerende systemer. Knappe året etter falt avtalen mellom IBM og Digital Research (utvikler av CP/M) i vasken, tilnærmet over natten flyttet hele markedet bort fra CP/M og over til en tilnærmet skamløs CP/M klone som over tid fikk navnet DOS fra Microsoft.

Datamaskinen jeg endelig har fått er selvsagt en Commodore 128, strengt tatt i bytte mot altfor store kalde kronasjer - måtte gjennom en budrunde der den utvilsomt mest økonomiske uansvarlige av oss vant! Som bildene viser, og det faktumet at jeg skryter av min uansvarlighet til stadighet så var det jeg som kom seirende ut denne gangen. Det er tross alt snakk om tre systemer i ett, bare se på den attraktive listen over ting den kan gjøre:


Det er en CP/M Plus versjon 3.0 kompatibel maskin, men ikke nok med det - på kjøpet får du også en komplett og helt ny opplevelse av å kjøre en Commodore 128 med dobbelt opp av minne rett ut av esken. Som om ikke det var nok, så har de inkludert - ja, du så rett der ja - en helt komplett fungerende Commodore 64 så du kan fortsette med å kjøre mesteparten av biblioteket ditt av programvare tilnærmet uten problemer. Den eneste måten å gjøre dette enklere for deg måtte være å drite i hele greia og bare kjøpe den langt billigere Commodore 64-maskinen!


Sett bort fra det faktumet at CP/M var dødsdømt i 1986 da denne annonsen var på trykk så var det en real maskin, i alle fall i forhold til hva som man hadde på markedet den gang da. Til en grei pris også, må nevnes selv om de sikkert ble dumpet ut på markedet for å bli kvitt dem på dette tidspunktet. Grunnen til at de ikke fløy ned av hyllene var at folk hadde ikke gått og ventet på den, de visste ikke en gang at den kom. De mest fargerike av annonsene i bladene fra lanseringsperioden til floppen var et faktum, var dominert av den kommende Atari ST-maskinen som på sin side virket til å være Science Fiction sammenlignet med denne så folk ventet litt lenger. Når de var ferdig å vente på Atari ST så visste de at Commodore Amiga 500 var rett rundt hjørnet så hvorfor satse pengene nå?

Vel, jeg ville alltid ha en. Ikke fordi jeg visste hva det var for noe, men fordi 128 hørtes ut som langt mer enn 64. Litt simplistisk logikk der ja, men til gjengjeld så var det så avansert som det ble når man tar inn i betraktningen at førskolen jeg gikk på da hovedsaklig fokuserte på å telle fra 1-10 samt å kunne skrive sitt eget navn. Så nå har jeg en, hovedsaklig fordi jeg en gang ville ha en. Så da har jeg den. Helt til noen en vakker dag drar den ut av mine kalde livløse hender, forhåpentligvis ikke før om 50 år eller noe slikt. Med mindre Zombier skjer først, i så fall setter jeg en hundrelapp på at det på en eller måte var Donald Drumpf sin feil!

På 80-tallet så var 80 kolonner samtidig på skjermen mer eller mindre den hellige gralen alle prøvde seg på, Commodore 128 kom med dette innebygd. Man skulle tro de brukte noe som skulle være velkjent i dag som tilkobling, men utover å ha hørt om CGA så har jeg aldri eid en av dem og har heller ikke tro på at posten skal kunne overlevere noe slikt i funksjonibel stand - dessuten, ikke akkurat som om man kan lagre en CRT-skjerm under sengen! Ebay viser et tonn med listinger for løsninger, alle av dem dyr og ingen som fungerer alene (Gonbes støtter analog RGB, ikke RGBi som disse bruker). De pengene brukte jeg uansett nettopp på å kjøpe maskinen, så da blir heller ikke 2017 året da jeg skulle få noe slik til å fungere. 40 kolonner får være nok, ser uansett helt rått ut på min aldrende 1080p TV (4k er for folk med penger på bok).


Commodore Basic 7.0 snurrer bra på maskinen og vi har hele 122KB minne vi kan leke med, ikke så mye programvare eller spill som støtter den dessverre så da må man over i Commodore 64-modus først. Du kommer dit enten ved å skrive GO 64 på tastaturet, eventuelt ved å holde inne Commodore-tasten når man skrur på maskinen. Mesteparten av minnet forsvant på veien, men i det minste så vet du nå hvordan man kan bruke maskinen til noe!

Tror dette er den nye favoritt-maskinen min - den gjør kanskje ikke så mye mer enn min Commodore 64, men den gjør det med stil! Nå må jeg bare få gjort noe med det faktum at jeg er blitt vant med JiffyDOS på min Commodore 64G, så opplevelsen av en 128 i sin opprinnelige konfigurasjon blir kanskje i tregeste laget.

tirsdag 8. august 2017

RC2014 CP/M Bruk av annen programvare

Dette er et innlegg relatert til RC2014, og vil mer eller mindre være mine egne notater relatert til konfigurasjon og installasjon av operativsystemet CP/M ved bruk av Compact Flash som lagringsenhet. For mer informasjon om hva CP/M er for noe samt systemkrav se innlegget RC2014 CP/M.

Generelt

CP/M er et operativsystem med mye ferdig utviklet programvare, noe brukbart og mye som i dag vil virke obskurt og forholdsvist arkaisk - det meste er selvsagt ikke inkludert, så da må man finne ut hvordan man får overført den programvare som ikke fulgte med maskinen.

I og med at jeg fortsatt benytter meg av den MC68B50-baserte seriell-modulen som følger med RC2014-maskinen, så har jeg fortsatt komplikasjoner med buffer overflow slik som forklart i innlegget RC2014 CP/M Installasjon tidligere - kort sagt så sender datamaskinen data til RC2014-maskinen langt raskere enn hva den er i stand til å håndtere. Dette ble da løst ved å legge inn forsinkelser i overføring av data, dette er en funksjon som fins i noen få seriell-klienter og den jeg benyttet da var en trial-utgave av SecureCRT.

SecureCRT utgaven min er nå selvsagt gått ut på dato - med krav om penger for å la meg fortsette å bruke den, men kjip som jeg er så nekter jeg å bruke tusenlappen på programvare myntet på profesjonell bruk. Løsningen var da å bytte over til bruk av Tera Term. Nettsiden ser ut som et oppgulp fra 90-tallet og det samme gjør nok grensesnittet, men den er åpen og fritt tilgjengelig for bruk. Tilsvarende endringer for å legge inn forsinkelsene er å finne under seriell-instillinger, se skjermbilde nedenfor til venstre.



Fra tidligere så skal maskinen allerede være konfigurert for CP/M, det vil si at man har montert modulene Pageable ROM (med CP/M boot ROM), 64K RAM samt CF adapter med CP/M basis-system allerede installert på allerede være installert på stasjon A. Verifiser at du samtidig også har filen DOWNLOAD.COM på plass på systemet, se skjermbilde ovenfor til høyre.

Hvor finner man programvare?

Som alt annet i disse dager så finner man programvaren ved å bla litt rundt på det store vide Internettet, likevel så er det ikke alt som fungerer på alle maskiner ettersom de ulike systemene gjerne vil ha vidt forskjellige krav til maskinen - i og med at RC2014-maskinen med det nevnte oppsettet vil ha tilgjengelig alt av adresserbar minne, hele 64K, så er man godt stilt - bare pass på at mange programvare-pakker vil være laget spesifikt for enkelte maskiner, så vi vil her være begrenset til programvare utviklet for Zilog Z80-prosessoren og som oftest vil disse være beskrevet som kompatibel med CP/M-80.

Har funnet ut at The *HUMONGOUS* CP/M Software Archive ser ut til å lenke videre til alt som mest sannsynligvis fortsatt eksisterer av programvare. Her finner man alt fra Freeware, Shareware til kommersiell programvare - sistnevnte vil nok sikkert kunne regnes som pirat-kopiering i sin tid, men nå vil nok det meste av Copyright på slikt være utløpt for lenge siden så skal være greit nok så lenge man ikke selger dem videre. For spill-interesserte fant jeg en god samling på Z80.eu

Overføring av programvare

Overføring av programvare kan enklest gjøres ved bruk av programmet Binary to CPM Package (by G. Searle), dette er en del av filene lagt ut av Grant Searle - se i katalogen windowsApp. Programmet må startes som administrator (kunne ikke starte som min ordinære bruker, Windows 10 Home Edition).



Et program kan legges til ved å klikke på Import file og så angi filen - du vil få beskjed om at filen er lagt til i pkgFile.txt. Filen er opprettet i en midlertidig katalog, men helt enkelt kan du få innholdet ved å klikke på Open Package File. På samme måte som under installasjonen av de grunnleggende programmene så installerer du også andre programmer på denne måten. Legg merke til at programvaren automatisk vil filtrere på COM-filer, men du vil som oftest trenge en eller flere DAT-filer i tillegg.

Klikk på Open package file for å åpne den genererte filen, innholdet kan nå kopieres og limes inn i Tera Term (pass på å deaktivere Word-break i Notisblokk for å unngå at disse sniker seg inn). Pass på å bytte til stasjonsbokstaven der du ønsker å lagre filene først.

Bestemte meg for å laste inn spillet Leather goddesses of Phobos. Dette er nok et tekst-basert spill fra InfoCom, men skal visstnok ha vært en av datidens mest usømmelige av dem - så usømmelig som tekst kan bli vel å merke, her er det ingen grafikk i sikte. Kunne ikke finne noen bilder av esken til spillet for CP/M - mest trolig har tittelen bare vært distribuert uten de pene eskene man senere kom til å forvente. Bildet til høyre tilhører Amstrad-utgaven.

I utgangspunktet vil det virke som programvaren ikke gjør stort, det er på grunn av forsinkelsene lagt inn og størrelsen på programmet. Man vil jevnlig få lagt til prikker for å vise at ting fortsatt snurrer, men man må smøre seg med en god dose tålmodighet - et spill av denne størrelsesordenen inkludert innlagte forsinkelser vil ta rundt 30 minutter å overføre til maskinen. Du husker den biten om tålmodighet, ikke sant? Etter alt dette så starter i det minste spillet og etter en mengde særdeles morsomme advarsler om spillets innhold får man til og med spille!


mandag 5. juni 2017

RC2014 CP/M Installasjon

Dette er et innlegg relatert til RC2014, og vil mer eller mindre være mine egne notater relatert til konfigurasjon og installasjon av operativsystemet CP/M ved bruk av Compact Flash som lagringsenhet. For mer informasjon om hva CP/M er for noe samt systemkrav se innlegget RC2014 CP/M.

CP/M Installasjon

Som allerede nevnt i det forrige innlegget så skal vi her installere systemet på Compact Flash istedenfor disketter, mer eller mindre fordi disse fortsatt eksisterer i noen tilgjengelig form. Selvsagt får vi ikke brukt hele kapasiteten fullt ut i og med at 128 MB tross alt er eventyrlige størrelser for et system designet i en tid da disketter var på 8 tommer og hadde en kapasitet fra 80 KB til rundt 500 KB, gitt begrensningene i filsystemet så kan hver enhet maksimalt være på opptil 8 MB.

På selve CF-kortet vil vi få opprettet et sett med 8 MB disker, hver med sin egen stasjonsbokstav. I utgangspunktet så er kortet jeg mottok på 128 MB, men i praksis så var det litt mindre enn som så og jeg fikk dermed ikke brukt hele kapasiteten - uansett, begrenset til 64 MB så får man fortsatt enorme disker hele veien fra A til H!

Dette gjorde samtidig at jeg selvsagt ikke fikk brukt den ferdiglagde img-filen tilgjengelig på github fra skaperen av RC2014. Dette betyr at jeg må gjøre alt grunnarbeidet selv, mer moro å gjøre det på denne måten uansett - de stegene jeg brukte er for det meste basert på arbeidet Grant Searle gjorde da han i utgangspunktet designet utgangspunktet for det som etter hvert inngikk i programvaresiden av RC2014.

Første steg

Det første man må gjøre før man kan komme i gang med installasjonen... er å irritere seg over at seriell-modulens basis i 68B50 kretsen involverer et totalt fravær av flyt-kontroll! Det dette vil si er at den ikke er i stand til å gi beskjed dersom maskinen vi sender data fra, men heller bare kræsjer i stillhet uten å si stort - når man tar til etterretning av at laptopen min har en regnekraft som rundt gjettet ligger i skalaen 500 000 ganger kraftigere så sier det seg selv at dette skjer FORT.

For å komme rundt dette trenger vi en seriell-programvare som er i stand til å legge inn pauser mellom hver bit av data som sendes, dette er dessverre støttet i et fåtall av dem og kunne dermed ikke bruke PuTTY til dette. Endte opp med å benytte meg av en prøve utgave av SecureCRT, men dette er profesjonell programvare ment for alt annet enn småprosjekter og prisen er deretter så tror ikke jeg kommer til å betale inngangsprisen for denne etter evaluerings-perioden som heldigvis er lang nok til å få fullført installasjonen (fant senere ut at Tera Term også fungerer, helt åpen og uten en prislapp) - innstillingene jeg brukte er vist nedenfor til venstre.


Med det unna veien er man klar til å starte selve installasjonen, dersom alt er satt opp rett vil man ikke få opp BASIC lenger ettersom ROM-brikken med denne installert på nå ligger på roterommet et sted - du vil nå få opp CP/M bootloader slik vist ovenfor til høyre. Dersom denne ikke dukker opp, rykk tilbake til start - det vil si RC2014 CP/M.

Installasjonsfiler

Dette burde kanskje vært det første steget, men nå til dags har alle raske Internett-linjer så rekkefølge betyr ikke noe lenger. Med mindre man har Telenor, da må man vente litt lenger (true story).

Grant Searle laget som allerede nevnt den opprinnelige maskinen og har også satt sammen det meste av det som trengs av programvare - disse finner du på hans hjemmeside! Ikke les så nøye på alt annet som står der, det er altfor interessant til å klare å unngå å bli værende  - dessuten så vil det gjøre det absolutt åpenbart at jeg på dette tidspunktet bare oversetter det som står der (i det minste er jeg ærlig). Dersom jeg senere ikke eksplisitt sier hvorvidt filene kommer fra RC2014 eller Grant Searle, så er det sistnevnte jeg refererer til!
RC2014 har som allerede nevnt en annen brikke for håndtering av seriell trafikk, med andre ord vil vi måtte substituere filer med innhold tilpasset maskinvaren. Disse filene finner du på githup-repositoriet for RC2014:

Formatering av Compact Flash

CP/M kan selvsagt ikke lese filsystemer oppfunnet nesten 20 år sender, langt mindre dagens versjoner som tross alt annet snart er 40 år nyere. Med andre må kortet formateres med noe helt annet enn hva Windows tilbyr via sine tidvis amputerte menyer, heldigvis har Grant Searle skrevet rutiner for å gjøre dette direkte på maskinen.

Gitt at vi skal bruke et kort på 64 MB, eller på annen måte blir tvunget til det, så starter man med å overføre programvaren for dette mens man står inne i CP/M bootloader. Fra nedtrekksmenyen Transfer innenfor SecureCRT velger du alternativet "Send ASCI..." og angir filen form64.hex (form128.hex ved større kort). Konsollet vil printe ut prikker etterhvert som at programvaren lastes over, dersom denne låser seg eller at programvaren etterpå ikke kan kjøres - juster opp mengden forsinkelse ved overføring i klienten. Kort oppsummert, overfør følgende filer:

  • form64.hex (form128.hex ved større CF-kort)


Når man får opp "Load complete" så er programvaren lastet opp, angitt innad i filen er informasjon om at informasjonen vil være skrevet til minne på adressen $5000 og oppover. For å kjøre programmet på denne adressen angir du kommandoen G5000, dersom alt gikk bra så vil du få en utskrift slik som vist i bildet ovenfor - her vil du også se stasjonsbokstavene som vil være tilgjengelig senere.

Installasjon av CP/M

Jeg plagdes en del med dette steget, jeg tror grunnen til dette var at programmet for å formatere lagringsenheten fortsatt var i minnet - derfor anbefaler jeg å nullstille maskinen nå (det vil si koble fra strømmen) for å være sikker på at minnet nå er tomt!

CP/M installeres ved å laste over et nytt sett filer på samme måte som tidligere, men legg merke til at her skal to av filene substitueres med de som tilhører RC2014. Følgene filer lastes over, sjekk at det står "Load complete." etter hver overføring. Følgende filer skal lastes over:
  • cpm22.hex (RC2014)
  • cbios64.hex (RC2014, cbios128.hex ved større CF-kort)
  • putsys.hex
Med disse tre filene på plass i minnet, så er vi klar til å kjøre installasjonsprogramvaren - denne er igjen plassert på adressen $5000 så vi skal dermed igjen gi kommandoen G5000. Gitt at alt går som det skal så skal du få beskjeden "System transfer complete" - se skjermbilde nedenfor til venstre.


Nå skal systemfilene være på plass, trykk på reset-knappen for å bli kvitt eventuelle rester av installasjonsprogramvaren. Trykk på X fulgt av Y, gitt at nå får noe slikt som det vist ovenfor til høyre - så kan man ikke gjøre annet enn å ønske deg velkommen til CP/M!

Støtteprogrammer

Moro ikke sant? Ikke det? Det har nok en del å gjøre med at vi ikke har noe programvare å leke med, heller ikke noen måte å få de overført heller. Dette har også Grant Searle ordnet med, men for å gjøre det så må vi tilbake til CP/M bootloader så trykk på reset-knappen igjen!

Overfør følgende fil på samme måte som tidligere:
  • download2.hex
Dette vil ha lagret et program til minneadresse $FFE8, gi kommandoen GFFE8 for å kjøre dette. Maskinen vil nå i full fart gjøre en del omkalfatring før man forhåpentligvis igjen er tilbake i CP/M. Du kan nå lagre det nedlastede programmet til disk ved å gi kommandoen SAVE 2 DOWNLOAD.COM.


Dette vil nå ha lagret et program på A som vi kan benytte for å senere motta programmer uten å være nødt til å hoppe mellom systemene slik vi nettopp gjorde. Med DOWNLOAD.COM på plass så kan vi nå sende over programmer ved å lime dem inn i terminalen, i og med at vi fortsatt mangler grunnleggende kommandoer for å arbeide filer og lignende så er det en god ting.

Grant Searle har inkludert disse andre støtteprogrammene i en separat fil, filen CPM211FilesPkg.txt plassert i transientAppsPackage-katalogen. Du kan potensielt sett denne over på samme måte som tidligere, men slet med at denne ikke fungerte - endte opp med at innholdet ble listet ut i terminalen fremfor å bli lagret. Løste dette ved å laste dem over, en etter en ved å kopiere de tre tilhørende linjene til hver av dem - dette ser ut som noe slikt som følger:
A:DOWNLOAD LOAD.COM
U0
:C3400220434F505952494748542028432920313937382C204449474954414C2052455345...

Med litt tålmodighet så er alt straks på plass, og alt det som en grunninstallasjon av CP/M hadde å by på står nå til rådighet for deg. Du kan opprette filer, redigere dem og alt slikt - alt man kunne komme til å trenge fra en datamaskin. Selvsagt ingen Facebook, men ingen trenger egentlig Facebook...

søndag 4. juni 2017

RC2014 CP/M

Dette er et innlegg relatert til RC2014, og vil mer eller mindre være mine egne notater relatert til konfigurasjon og installasjon av operativsystemet CP/M ved bruk av Compact Flash som lagringsenhet.

Control Program/Monitor (CP/M)

Operativsystemet CP/M, i følge Wikipedia offisielt registrert med varemerket Control Program for Microcomputers, ble utviklet rundt 1976 av Gary Kildahl for å lette bruken av datamaskiner. Der Basic i seg selv i hovedsak var en måte å programmere på en datamaskin, så var dette et operatisvsystem der man fikk komplette programmer for å utføre de mest grunnleggende tingene på en datamaskin.

Av funksjoner som var inkludert så må det nevnes at en av de mer sentrale må være muligheten til å forholde oss til filer på lagringsenheter fremfor å håndtere blokker av data direkte - med andre ord et filsystem. Hans opprinnelige måte å håndtere de ulike enhetene ved bruk av bokstaver lever helt frem til den dag i dag, så dersom du vil klage på noen for at man må sjonglere på A: og C: så er altså dette mannen man må skylde på, hans definisjon av hvordan man angir et filnavn - navn og så en tre-bokstavs endelse etter formål - er også en av hans bidrag.

Høres veldig ut som MS DOS, ikke sant? Slik historien går så nektet Gray Kildahl å undertegne en konfidensialitetsavtale som ville forhindret han å holde programvaren tilgjengelig for folk flest - det skulle være et lavkostnadsalternativ! Omsider kom det på plass en kontrakt der IBM skulle ha enerett på salg av CP/M, sleipt nok hadde IBM til da klart å lage en kopi av systemet som ble kalt DOS (Disk Operating System, rett og slett fordi det krevde en diskettstasjon). Takket være rom for tolkning i avtalen kunne IBM selv bestemme utsalgsprisen, noe de utnyttet for å sette prisen på CP/M til det femdobbelte av DOS til tross for at innsalgsprisen i utgangspunktet var billigere enn det de tok for DOS.

For de av oss som gikk på barneskolen på 80-tallet så husker man sikkert en maskin kalt Tiki, disse kjørte et operativsystem kalt KP/M. Dette var essensielt sett en ulisensiert kopi av CP/M med enkelte tilpasninger - selskapet bak ble selvsagt saksøkt ettersom dette tross alt var organisert piratkopiering, men i og med at lovene fortsatt ikke var i stand til å håndtere annet enn en tyveri av fysiske gjenstander så slapp de unna med det. Stiller ting i et litt annet lys.

Nok avsporinger, videre selve systemet...

Systemkrav

  • Intel 8080-prosessor
    • Zilog Z80 er bakoverkompatibel med Intel 8080
  • 16 KB RAM plassert på $0000-$3FFF
  • CP/M bootloader
  • Diskett-stasjon
RC2014-prosessoren er allerede støttet av CP/M, så der trenger man heldigvis ikke gjøre noe - greit å allerede ha noe av det man trenger fra starten av. Derimot når det kommer til minnet så begynner man å få problemer, dersom man tar en titt på RC2014 Memory Map så ser man at vi allerede bruker $0000-$1FFF til ROM - minnet er også plassert fra $8000-$FFFF, ingen av disse to er med andre ord plassert der vi trenger dem!

De opprinnelige modulene støtter heller ikke rekonfigurasjon av adressene for RAM og ROM (vi trenger denne til CP/M bootloader), vi må med andre ord bytte ut disse to. Modulene som trengs i tillegg er følgende:
  • RC2014 64K RAM
  • RC2014  Pageable ROM
Med dette oppsettet vil vi få på plass en ekstra blokk med minne, det vil si totalt 64K tilgjengelig hukommelse - helt absurd mye, i alle fall sett opp mot at man på den tiden betalte i dyre dommer for minnebrikker med en størrelse med 1, 2, eller 4 KB kapasitet per brikke! I utgangspunktet løser dette ingenting i forhold til overlappingen i adresserommet, men som den sistnevnte modulen indikerer så støtter disse modulene en teknikk kalt "paging". Dette betyr i dette tilfellet at man kan aktivere (page inn) eventuelt deaktivere (page ut) disse modulene fra programvaren.



Paging kan også hentyde på å veksle hvilken vindu man ser innenfor en enkelt brikke, på den måten kan man benytte seg av langt større RAM-brikker til tross for at maskinen i seg selv kun kan adressere 64K direkte. Uansett, det er den førstnevnte betydningen av teknikken som vi skal benytte oss av her, så dersom dette ikke var forståelig så er ikke det så nøye.

Bildene ovenfor viser hvordan dette er koblet sammen, den grønne kabelen mellom modulene sørger for at RAM pages inn når ROM pages ut. Pass også på å sette opp jumperne slik som det er angitt her, dette tar utgangspunkt i EPROM med CP/M bootloader levert fra skaperen av RC2014 (dersom du har lagt denne opp selv, korriger page-selection deretter).

CP/M bootloader er et enkelt program som tar for seg å starte opp systemet, denne vil på mange utgjøre funksjonene til det vi i dag refererer til som en BIOS (grovt forenklet; grunnleggende rutiner for å lese ut data tilstrekkelig for å starte et annet operativsystem). Det er denne programvaren som i vårt tilfelle kommer til å bruke paging-teknikken for å løse problemene våre med overlappende adresser...

Ved oppstart vil bootloader være plassert i ROM på adressene $0000-$1FFF, det første den vil gjøre er kopiere seg selv til RAM plassert fra $8000-$FFFF og dermed page ut ROM og så page inn det andre minnebrikken på adressene $0000-$7FFF. For å få rutinene sine på korrekt sted igjen, så vil den igjen kopiere seg selv over i ram på adressene $0000-$1FFF.

Det siste vi trenger er altså en diskett-stasjon, men utover å ha gått så langt som å spore opp en diskettstasjon med tilhørende kontroll-brikke så har jeg enda ikke fått startet på denne delen av prosjektet. En enklere metode som oftest benyttes i disse dager når det kommer til lignende retro-prosjekter er derimot å benytte seg av Compact Flash for denne delen av systemet. Med andre ord så har funnet en bruk for RC2014 IDE Compact Flash modulen jeg har brukt så mye tid på å snekre sammen.