GIER (Geodætisk Instituts Elektroniske Regnemaskine) er en datamaskin som ble produsert av det danske firmaet Regnecentralen.

De tre første instruksjonene måtte tastes inn på konsollen til høyre. Hullbåndleseren RC2000 til venstre kunne lese 2000 tegn/sekund. FACIT båndkarusell (i midten) kunne leveres som tilbehør.
GIERs arbeidsminne var satt sammen av 42 magnetkjernekort av lignende utføring, det inneholder 1024 bit.

I 1958 hadde Geodætisk Institut fått i oppdrag å tilpasse sitt trianguleringsnett til UTM-koordinater. For å løse denne oppgaven ble det startet et samarbeidsprosjekt med Regnecentralen, der instituttet leverte komponentene og regnesentralen utviklingsarbeidet, derav også maskinens betegnelse. Den første GIER ble utlevert i oktober 1961, tilsammen ble det produsert 56 eksemplarer.[1]

Oppbygning rediger

 
I stedet for skjerm og tastatur hadde GIER en slik skrivemaskinterminal (maskinen bak er ikke GIER).

GIER var en såkalt andregenerasjons regnemaskin fordi den var basert på transistorer i stedet for rør. Arbeidsminnet var et magnetkjerneminne med 1024 maskinord på 42 bit. Den arbeidet med virtuell hukommelse, et trommelminne med 320 kanaler á 40 maskinord ble brukt som bakgrunnslager, hullbånd av papir var et vanlig eksternt lagringsmedium. Den ble ikke styrt fra skjerm og tastatur, men fra en elektrisk skrivemaskin. I motsetning til senere datamaskiner var den heller ikke interruptstyrt, så den kunne ikke utføre andre oppgaver mens den ventet på data fra hullbånd eller fra skrivemaskinen. På grunn av det lille arbeidsminnet og bakgrunnslageret, som tilsvarer 5376 byte henholdsvis 67200 byte, var maskinkoden optimert til å omfatte så mye funksjonalitet som mulig ved minst mulig forbruk av minneplass. Et maskinord kunne for eksempel inneholde to grunnleggende instruksjoner eller én utvidet instruksjon.

Programvare rediger

Maskinen ble programmert i GIER Algol eller assemblerspråket SLIP (Source Language Input Program). Den hadde ikke noe permanent minne (ROM), når den skulle startes måtte derfor de første instruksjonene (3 maskinord á 42 bit) tastes inn bit for bit manuelt. De inntastede instruksjonene leste inn binærkode direkte fra hullbånd, som la seg oppå instruksjonene slik at de ble modifisert til en såkalt boot-lader. Denne leste så inn resten av det primitive input-programmet, dette var grunnmodulen i operativsystemet Help 3, og muliggjorde videre kontroll over GIER via en skrivemaskinterminal.[2]

GIER Algol var en variant av Algol 60 som var tilpasset maskinens begrensninger og særegenheter. Tegnsettet var for eksempel utvidet med æ og ø, og den hadde reserverte rutiner for å betjene tilbehør som skrivemaskin eller hullbåndstanser. I den første versjonen hadde disse rutinene identifikatorer med dansk språk som grunnlag, slik som læstegn, skrvtekst eller tryk, i senere versjoner ble disse utskiftet med engelske identifikatorer av formen write.... Arbeidsminnet hadde svært liten kapasitet slik at antall variabler under gunstige betingelser maksimalt kunne være ca. 700, derfor fantes det egne rutiner for å mellomlagre data på trommelminnet.

Også assemblerkoden SLIP var avledet av dansk, med kommandoer som TL - tæl lang, LY - læs ydre enhed, HH - hop højre eller GR - gem register.[3]

I Norge rediger

Den første GIER i Norge ble levert 1962 til Institutt for atomenergi i Halden,[4] den første elektroniske regnemaskinen på NTH i Trondheim var også en GIER, den ble levert samme år. Senere ble det også levert en til NTHs Institutt for Reguleringsteknikk (idag Institutt for teknisk kybernetikk).[1] Norges Vassdrags- og Elektrisitetsvesen hadde også en av de første eksemplarene i drift.

Maskinen som ble levert til IFA i Halden er fremdeles i behold på (nå)IFE i eller på Industrimuseet i Halden[4]

Eksempler på programmering rediger

GIER Algol rediger

Dette programmet regner ut gjennomsnittet av absoluttverdiene til alle elementene i et array. Til sammenlikning se eksempelet i Algol 60.

 comment the main program (this is a comment);
  
 begin
   integer N;
   N:=read integer;
   
   begin
     real array Data[1:N];
     real sum, avg;
     integer i;
     sum:=0;
     
     for i:=1 step 1 until N do
     begin real val;
       val:=read real;
       Data[i]:=if val<0 then -val else val
     end;
     
     for i:=1 step 1 until N do
       sum:=sum + Data[i];
     avg:=sum/N×100;
     write(|<d ddd ddd.dd|>, avg)
   end
 end

På GIERs skrivemaskinterminal transporterte tegnet | (pipe) ikke vogna videre, slik at < og > ble skrevet oppå | i oppropet av write-prosedyren.

Assemblerkoden SLIP rediger

Eksempelet viser de tre instruksjonene som tastes inn manuelt for å lese inn bootstrap-programmet. Tre rigistre blir brukt: R - regneregisteret, M - multiplikatorregisteret og S - sekvensregisteret.[2][3]

Adresse instruksjon      betydning
[0]     tl -6,   ca 0    tæl lang -6, coicidens adressetal 0
[1]     ly r4,   hs r-1  læs ydre relativt 4, hop sekvensielt relativt -1
[2]     gm s3 t -1 M     gem M-register sekvensielt 3 tælt -1 nulstil mærkebits
[3]
[4]

Programmet går i sløyfe i instuksjonene [0] og [1] og leser tegn etter tegn inn i R-registeret fra et 7-kanals hullbånd. Et tegn består av bits/hull 0-6, det siste tegnet i en instruksjon er kjennetegnet ved at bit 7 er satt. Etter shift-operasjonen (6 posisjoner mot høyre inn i M-registeret) står dette fremdeles i R-registeret og testen ca 0 feiler og [1] blir ikke utført. Den innleste instruksjonen, som nå står i M-registeret, lagres i [3]. Denne adressen beregnes slik:

hs r-1 har allerede ført til at hoppinstruksjonens adresse (=1) blir lagret i S-registeret,
adressetallet 3 blir modifisert med telletallet -1 og er nå 2,
innholdet av S-registeret (=1) adderes og resulterende adresse er 3.

Instruksjonen som ble lagret i [3] var et hopp til [1], neste instruksjon ble lagret i [2] som dermed ble modifisert til å lagre de følgende instruksjonene et annet sted i arbeidsminnet.

Referanser rediger

  1. ^ a b Knut Skog (20. november 2002). «Da NTH fikk sin kollektive PC: GIER» (PDF). Besøkt 9. mai 2013. 
  2. ^ a b Søren Lauesen (1967). «A Manual of Help 3» (PDF). A/S Regnecentralen. Besøkt 9. mai 2013. 
  3. ^ a b Chr. Andersen og Chr. Gram (september 1962). «Lærebog i kodning for GIER» (PDF). A/S Regnecentralen. Besøkt 17. mai 2013. 
  4. ^ a b Erik Ween (20. februar 2008). «A/S SCANIPS, Norge, 1964 – 1978» (PDF). Besøkt 13. mai 2013. 

Eksterne lenker rediger