GIERs tegnsæt
GIER's hukommelse er opbygget af 42-bit ord. Men der skal kommunikeres med mennesker, og det kræver et tegnsæt. De 42 bit er valgt således at der kan være 6 7-bit tegn i et maskinord. GIERs I/O enheder bestod af hulstrimler, magnetbånd, hulkortlæsere og printere. GIER læser 8-kanals hulstrimler der er fremstillet på en Flexowriter direkte. I andre tilfælde laves der tegnkonvertering.
Flexowriteren bruger et tegnsæt som beskrives nedenfor.
Strimlerne ser således ud:
|ooooo.ooo|
Punktummet er et lille hul som bruges til fremføring på Flexowriteren, det bruges ikke af RC2000 læseren på GIER.
o'erne er huller der koder tegnværdien binært på følgende måde:
|ooooo.ooo| ||||| ||| ||||| ||+- 1 ||||| |+-- 2 ||||| +--- 4 ||||+----- 8 |||+------ Paritet ||+------- 16 |+-------- 32 +--------- 64
Paritetsbitten vælges så der altid er et ulige antal huller (minus fremføringshullet) på tværs af strimlen.
Flexowriter koden er karakteristisk ved, at store og små bogstaver har samme tegnværdi: Små bogstaver indledes med tegnet LOWER CASE (værdi: 58), og store bogstaver med UPPER CASE tegnet (værdi: 60).
For at være sikker på at Flexowriteren skrev store og små bogstaver rigtigt havde man hos Haldor Topsøe den konvention at alle datastrimler skulle begynde med:
Ff
Disse tegn overspringes af GIER ALGOLs tallæseprocedurer, og man var sikker på at starte i lower case.
GIER holder ikke styr på upper/lower case i hardwaren, det skal styres i software.
Tabel over Flexowriter kode
Strimmel Talværdi LC UC |---o-.---| 0 SPACE |-----.--o| 1 1 ∨ |-----.-o-| 2 2 ⨯ |---o-.-oo| 3 3 / |-----.o--| 4 4 = |---o-.o-o| 5 5 ; |---o-.oo-| 6 6 [ |-----.ooo| 7 7 ] |----o.---| 8 8 ( |---oo.--o| 9 9 ) |---oo.-o-| 10 Bruges ikke |----o.-oo| 11 STOP CODE |---oo.o--| 12 END CODE |----o.o-o| 13 å Å |----o.oo-| 14 _ | |---oo.ooo| 15 Bruges ikke |--o--.---| 16 0 ∧ |--oo-.--o| 17 < > |--oo-.-o-| 18 s S |--o--.-oo| 19 t T |--oo-.o--| 20 u U |--o--.o-o| 21 v V |--o--.oo-| 22 w W |--oo-.ooo| 23 x X |--ooo.---| 24 y Y |--o-o.--o| 25 z Z |--o-o.-o-| 26 Bruges ikke |--ooo.-oo| 27 , ⏨ |--o-o.o--| 28 CLEAR CODE |--ooo.o-o| 29 Rødt skift |--ooo.oo-| 30 TAB |--o-o.ooo| 31 PUNCH OFF |-o---.---| 32 - + |-o-o-.--o| 33 j J |-o-o-.-o-| 34 k K |-o---.-oo| 35 l L |-o-o-.o--| 36 m M |-o---.o-o| 37 n N |-o---.oo-| 38 o O |-o-o-.ooo| 39 p P |-o-oo.---| 40 q Q |-o--o.--o| 41 r R |-o--o.-o-| 42 Bruges ikke |-o-oo.-oo| 43 ø Ø |-o--o.o--| 44 PUNCH ON |-o-oo.o-o| 45 Bruges ikke |-o-oo.oo-| 46 Bruges ikke |-o--o.ooo| 47 Bruges ikke |-ooo-.---| 48 æ Æ |-oo--.--o| 49 a A |-oo--.-o-| 50 b B |-ooo-.-oo| 51 c C |-oo--.o--| 52 d D |-ooo-.o-o| 53 e E |-ooo-.oo-| 54 f F |-oo--.ooo| 55 g G |-oo-o.---| 56 h H |-oooo.--o| 57 i I |-oooo.-o-| 58 LOWER CASE |-oo-o.-oo| 59 . : |-oooo.o--| 60 UPPER CASE |-oo-o.o-o| 61 SUM CODE |-oo-o.oo-| 62 Sort skift |-oooo.ooo| 63 TAPE FEED |o----.---| 64 CAR RET
Bemærkninger:
SPACE (0) er ens i upper/lower case.
STOP CODE (11) får Flexowriteren til at stoppe.
Bolle-å (13) findes ikke på Flexowriteren, kun på skrivemaskinen på GIER.
_ og | (14) flytter ikke valsen.
CLEAR CODE (28) og SUM CODE (61) bruges til sumcheck af hulstrimler. Benyttes under indlæsning til GIER ALGOL, SLIP (assembler) og Help-3's editorprogram edit. Når CLEAR CODE indlæses nulstilles en tæller. De efterfølgende tegn (øget med 1) lægges til denne tæller. Når SUM CODE mødes beregnes en sumværdi ud fra tælleren, og den skal være lig med det næste tegn som indlæses. Skal man fremstille en strimmel med checksum gøres det ved at hulle CLEAR CODE i starten og SUM CODE efterfulgt af et ligegyldigt tegn ved slutningen af strimlen. Når strimlen behandles af edit programmet får man sum fejl, men programmet vil indsætte det rigtige sum tegn i den strimmel der hulles ud. En interessant ting er sumchecket i ALGOL oversætteren: Den foretages i passage 1, hvor der ikke er langt tid til analysen af hvert tegn som indlæses, hvis ALGOL oversætteren skal følge med RC2000 læseren. Beregningen af sum værdien sker med følgende instruktion:
b2: ac[sum 1] Dt 1 LTB ; if sum then sum 1:= sum 1 + Raddr + 1;
Når instruktionen udføres findes tegnet i bit 0-9 i R registret. Det adderes til instruktionens adressetal plus et et-tal. Instruktionen udføres kun hvis TB i indikatoren er 1, den bliver 1-stillet når CLEAR CODE mødes. Hvis der ikke findes CLEAR CODE spares instruktionen og indlæsningshastigheden kan lige netop følge med RC2000'eren.
Rødt skift (29) og Sort skift (62) skifter farvebåndet på skrivemaskinen på GIER, har ingen effekt på Flexowriter.
TAPE FEED er et blindtegn de fleste steder. Det bruger man bl. a. til at indlede og afslutte strimler der skal indlæses (Flexowriteren kan ikke lave strimmel kun med fremføringshul) og til at rette på strimler: Har man skrevet et forkert tegn på Flexowriteren drejer man strimlen én tilbage og huller et TAPE FEED tegn, der jo består af 7 huller. Retter man et CAR RET tegn får man et tegn med 8 huller. Det har lige paritet, men GIER er i hardware sat til ikke at stoppe med paritetsfejl på dette tegn.