CP/M

Wikipedia
Loikkaa: valikkoon, hakuun

CP/M (Control Program/Monitor tai myöhemmin Control Program for Microcomputers) on Digital Researchin Gary Kildallin kehittämä käyttöjärjestelmä, joka oli "teollisuusstandardi" 1970-luvun loppupuolelta lähelle 1980-luvun loppua.

CP/M
Hakemistolistausten tuloksia ja komentokehote
Hakemistolistausten tuloksia ja komentokehote
Kehittäjä Digital Research
Ohjelmointikielet PL/M
Toiminnallinen tila Ei tuettu
Julkaistu 1976
Viimeisin vakaa versio 3.1 (1983)
Tuetut kielet englanti
Ytimen tyyppi Monoliittinen
Suoritintuki Intel 8080, Zilog Z80
Käyttöliittymä Komentorivi
Lähdekoodimalli Aluksi suljettu, nykyisin avoin
Lisenssi Aluksi kaupallinen, nykyisin BSD-tyyppinen
Kotisivu http://www.digitalresearch.biz/CPM.HTM

Rakenne[muokkaa | muokkaa wikitekstiä]

8-bittinen CP/M-käyttöjärjestelmä koostuu kolmesta osasta:

  • komentotulkki CCP, Console Command Processor
  • levykäyttäjärjestelmä BDOS, Basic Disc Operating System
  • syöttö- ja tulostusjärjestelmä BIOS, Basic I/O System.[1]

BIOS on laitteistoriippuvainen ja se piti kirjoittaa kulloisellekin laitteistolle sopivaksi, loppuosa käyttöjärjestelmästä on laitteistoriippumaton. BIOS sisältää 17 funktiota[1] (CP/M-versiossa 2.2), joita käytetään mm. näppäimistön lukuun, merkin tulostukseen näytölle ja sektorin kirjoittamiseen ja lukuun levykkeeltä. Tietokoneen käynnistyessä BIOS lataa käyttöjärjestelmän muut osat levykkeeltä. BDOS sisältää toiminnot tiedostojen käsittelyyn, näytölle kirjoittamiseen ja tulostamiseen. CP/M käsittelee laitteistoa vain BIOS-kutsujen kautta, eli kun BIOS oli kirjoitettu uudelle laitteelle, käyttöjärjestelmä toimi siinä. CP/M:n versiossa 2.2 käyttöjärjestelmän koko on 3 584 tavua. Sen lisäksi komentotulkki vie vielä noin kaksi kilotavua. Ohjelmien käynnistämisen lisäksi käyttöjärjestelmässä on 38 funktiokutsua[1] lähinnä tiedostojen käsittelyyn.

Muistin alkupään 256 tavua on varattu suorittimen keskeytysvektoreille, muutamille muuttujille ja käynnistettävän ohjelman komentorivipuskuriksi. Aluetta seuraa ohjelmille ja datalle tarkoitettu alue TPA (Transient Program Area), joka rajoittuu muistin yläpäähän ladattuihin BIOSiin ja BDOSiin (joista käytetään yhteisnimikettä FDOS).[1]

Laitteistot[muokkaa | muokkaa wikitekstiä]

CP/M:stä oli versiot useille eri suoritinarkkitehtuureille. Intel 8080 -yhteensopivaa suoritinta, erityisesti Zilog Z80:aa käyttävissä mikrotietokoneissa se oli suosittu. CP/M tuki kaikkiaan 64 kB keskusmuistia. Suosittu alkuaikojen järjestelmä perustui 8080-suorittimeen, 4 kB muistiin ja yhteen 8 tuuman levykeasemaan. Myöhemmissä tietokoneissa oli tyypillisesti Zilog Z80, 64 kB muistia ja kaksi 360 kB, 5¼ tuuman levykeasemaa. Kalleimmissa malleissa toinen levykeasemista oli korvattu yleensä 10 MB kovalevyasemalla. Myös 3½-tuumaisia, kapasiteetiltaan isompia levykkeitä ("korppuja") oli käytössä.

CP/M oli käytössä jopa satojen eri valmistajien tietokoneissa. Suosituimpia olivat Altair, IMSAI 8080, Osbornen ja Kaypron kannettavat sekä MSX-kotitietokoneet. Luultavasti myydyin CP/M:ää ajava kone oli Commodore 128, jota harva käyttäjä kuitenkaan käytti CP/M-tilassa. Jopa Apple II:een sai Z80-kortin, jolla pystyi ajamaan CP/M-ohjelmia.

Tiedostojärjestelmä[muokkaa | muokkaa wikitekstiä]

CP/M:n tiedostojärjestelmässä levykkeellä on vain yksi hakemisto.[1] Hakemiston koko on kiinteä.

Hakemisto on taulukko 32 tavun tietueita. Tiedoston nimi koostuu 8+3 merkistä, kuten myöhemmässä MS-DOS-käyttöjärjestelmässäkin. Tiedoston nimen lisäksi hakemistotietue sisältää käyttäjäkoodin, 128-tavuisten levylohkojen määrän ja 16 tavua levylohkojen numeroita. Tilanvarausta varten puolestaan levy on jaettu 1 kB lohkoihin, ja tiedoston hakemistotietue sisältää tiedon siitä, mitkä lohkot kuuluvat tiedostoon.

Tiedoston kokoa tavuina ei tallenneta, joten tiedostoa käsittelevän ohjelman täytyy pitää huolta siitä, ettei se lue tiedoston lopun ohi. Käytännön nyrkkisäännöksi muodostui päättää tekstitiedostot ohjauskoodilla control-Z (ASCII: SUB tai 0x1A).

Tiedostojärjestelmä ei pidä yllä tietoa levykkeen vapaista lohkoista. Levynvaihdon yhteydessä käyttöjärjestelmä lukee koko hakemiston läpi ja muodostaa bittikartan, johon on merkitty tiedostoille varatut ja käytettävissä olevat alueet.

Koska yksi hakemistotietue voi osoittaa vain 16 lohkoa, 16  kB suuremmat tiedostot vaativat usean hakemistotietueen. Tähän käytetään hakemistotietueen extends-kenttää, joka kertoo, monesko tiedostolle varattu tietue on kyseessä.

Lisäksi CP/M:n hakemisto sisältää käyttäjäkentän, jonka avulla tiedostoja voi ryhmitellä. Käyttöjärjestelmä listaa ainoastaan ne tiedostot, joiden käyttäjä-kenttä on saman kuin nykyinen käyttäjänumero. Käyttäjää vaihdetaan komentotulkin komennolla USER x, jossa x on luku 0–15. Eräät valmistajat lisäsivät tähän salasanakyselyn, mutta peruskäyttöjärjestelmässä käyttäjänvaihtoon ei sisältynyt mitään tietoturvaa, vaan käyttäjää voi vaihtaa ilman salasanoja.

Komentotulkki (CCP) ja apuohjelmat[muokkaa | muokkaa wikitekstiä]

Tietokoneen käynnistyttyä se jää komentotulkin "A>"-kehotteeseen, josta voi käynnistää ohjelmia tai käsitellä tiedostoja sisäänrakennettujen komentojen ja erillisten apuohjelmien avulla. Komentotulkki sisältää komennot:

  • ERA - tiedoston tuhoaminen
  • DIR - hakemistolistaus
  • REN - tiedoston uudelleennimeäminen
  • SAVE - muistin tallentaminen levykkeelle
  • TYPE - tiedoston tulostaminen näytölle
  • USER - käyttäjäalueen vaihtaminen.

Muut toimet tehdään ulkoisilla apuohjelmilla, joista ehkä tärkein on PIP (nimi tulee DEC PDP-6:n Peripheral Interchange Program -ohjelmasta), jolla voi kopioida tiedostoja eri laitteiden välillä - yhtälailla levykkeeltä levykkeelle, näppäimistöltä levykkeelle kuin levykkeeltä tulostimellekin: PIP LST:=tiedosto.txt[1]

Ohjelmistot[muokkaa | muokkaa wikitekstiä]

Ohjelmat toimitettiin ensialkuun 8 tuuman levykkeellä, jolle vakiintui kaikissa tietokoneissa toimiva formaatti. Myöhemmin siirryttiin käyttämään 5¼-tuumaisia levykkeitä, mutta yhteisen standardin puuttuessa yhden valmistajan koneessa formatoituja levykkeitä ei yleensä voinut lukea toisten valmistajien koneilla. Poikkeuksiakin oli, esimerkiksi Osborne 1 pystyi käsittelemään muita formaatteja levyasematunnuksen perusteella.

Suosittuja CP/M:n ohjelmia olivat tekstinkäsittelyohjelmat Magic Wand ja WordStar, dBASE-tietokanta, KAMAS, Turbo Pascal sekä taulukkolaskentaohjelmat Multiplan ja SuperCalc. Ilmainen XMODEM mahdollisti modeemin käytön ja tiedostosiirrot.

Lisäksi CP/M sisältää perustyökalut konekieliseen ohjelmointiin (ASM, LOAD, DDT ja ED).[1]

16-bittiset versiot[muokkaa | muokkaa wikitekstiä]

Digital Research kehitti 16-bittisille suorittimille omat versiot CP/M:stä: CP/M-86 Intel 8086:lle, CP/M-68k Motorola 68000:lle ja CP/M-8000 Zilog Z8000:lle.

Viitteet[muokkaa | muokkaa wikitekstiä]

  1. a b c d e f g CP/M Operating System Manual, 3rd edition (PDF) 1983. Yhdysvallat: Digital Research. Viitattu 2.8.2013. (englanniksi)

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

  • Digital Researchin kotisivu[1]
  • The Unofficial CP/M Website[2] sisältää tietoa CP/M:stä, käsikirjoja, lähdekoodeja yms. (englanniksi)