KERNAL on Commodoren kehittämä laiteohjelmisto, jota käytettiin yhtiön 8-bittisissä mikrotietokoneissa alkaen PET-tietokoneesta (1977).[1] Myöhemmin sen laajennettuja versioita käytettiin VIC-20-, Commodore 64-, Plus/4-, Commodore 16- ja Commodore 128 -tietokoneissa.

Kernalin hyppytaulua havainnollistava luettelo, jossa käytössä olevat rutiinit, niiden osoitteet, rutiinien käyttämät rekisterit ja lyhyet kuvaukset rutiinien käyttötarkoituksesta.

KERNALin nimen sanottiin olevan lyhenne sanoista Keyboard Entry Read, Network, And Link. Toisaalta VIC-20-kehittäjä Robert Russellin mukaan se on kirjoitusvirhe sanasta kernel (Unixin termi käyttöjärjestelmän ytimelle).[1]

VIC-20 ja C-64-koneissa koko käyttöjärjestelmä on 8 kiB ROM-piirillä. Commodore 128 -koneessa ROM on laajennettu 20 kibitavuun, josta KERNAL vie 16 kiB ja konekielimonitori neljä.[2]

Commodore-laitteiden KERNAL sisältää kokoelman erilaisia rutiineja. Näiden kutsumista varten on hyppytaulu, joka on pääpiirteittäin samanlainen kaikissa Commodoren tuottamissa tietokoneissa. Näin ollen yksinkertaisten konekielisten ohjelmien pitäisi pystyä toimimaan jokaisessa Commodoren valmistamassa koneessa ilman muutoksia.

KERNALin tärkeimpiä osia on reset-rutiini, joka suoritetaan koneen käynnistyessä. Se kopioi RAM-muistiin vektorit ja aliohjelmat, alustaa I/O- ja grafiikkapiirit, tarkistaa onko koneeseen kytketty ohjelmamoduuli, alustaa BASIC-tulkin ja siirtyy odottamaan käyttäjän syötettä.[2]

KERNAL sisältää myös keskeytysrutiinit, esimerkiksi IRQ-rutiini suoritetaan 60 (VIC-20 ja C-64) tai 50 kertaa sekunnissa (C-128). Tämä ylläpitää kelloa ja lukee näppäimistöä. NMI-rutiini suoritetaan restore-näppäintä painettaessa ja kasetti- ja levyasemarutiinien yhteydessä ja sarjaväylää käytettäessä.[2]

Kolmannen osan muodostavat käyttäjän kutsuttavat aliohjelmarutiinit, joita voidaan käyttää ohjelmista. Näillä toteutetaan tiedon syöttö ja tulostus, tiedostojen tallennus ja lataus, näytön käsittely ja liukulukumatematiikka.[2]

Käytännössä yksinkertaiset, poke-komentoja sisältämättömät BASIC-ohjelmat ovat binääriyhteensopivia eri koneiden välillä. Konekielisiä ohjelmia kirjoitettaessa ohjelmien pitäisi olla vapaasti sijoitettavia, ja ne voivat olla kooltaan maksimissaan 3 kilotavua, mikäli niiden on tarkoitus olla yhteensopivia kaikkien Commodoren koneiden kanssa.

Lähteet muokkaa

  1. a b https://www.c64-wiki.com/wiki/Kernal
  2. a b c d C=lehti 1/88, Käyttöjärjestelmän salat, s. 26

Aiheesta muualla muokkaa