GIER/Tutorial

Fra DDHFwiki
Spring til navigation Spring til søgning

Denne korte tutorial hjælper dig i gang med at bruge GIER simulatoren.

Start af simulator

Vi går ud fra at du allerede har installeret simulatoren.

Start Linux versionen ved at cd'e til folderen med GIER-filen, og skriv ./GIER. Windows udgaven startes ved at dobbelt-klikke på GIER.exe.

Der dukker nogle vinduer op på skærmen:

GIER simulatoren hovedvindue

Menuerne benyttes således:

File menuen indeholder punkter til at gemme og reetablere tilstanden af simulatoren, og til at afslutte den.

View menuen indeholder punkter for hvert undervindue i simulatoren. Det giver mulighed for at åbne eller lukke vinduerne med hovedmanøvrebordet, hjælpemanøvrebordet, strimmellæser, perforator, linieskriver, plotter eller nimbi bord.

I Options menuen kan man forhindre skriveadgang til kanal 0 og til kanalerne 1-31 og man kan bestemme hvordan 0 skal håndteres når der regnes med flydende tal. Man kan også slå lyden til og fra.

Hvis simulatoren ikke kan finde et lydkort er menupunktet sound gråt.

Når lyden slås til sker der to ting: For det første kan man høre et klik i højttaleren når fortegnet i resultatregisteret skifter, og for det andet gør det at simulatoren kører med rigtig GIER-hastighed.

I Debug menuen kan man slå testudskrifter til og fra når simulatoren kører. Debug udskrifterne gemmes i en fil, gier.debug. Vælges Statistics tæller simulatoren hvor mange gange de forskellige instruktioner udføres. Når Statistics slås fra gemmes tællerne i filen gierstat.dat.

Hovedmanøvrebordet

Hovedmanøvrebordet er beskrevet i detaljer i bind 2 af Lærebog i Kodning for GIER.

Knapperne for oven, til højre vælger hvilket register der skal vises. På billedet er O registeret valgt. Lamperne for neden viser indholdet af det valgte register. Klik på knapperne med musen for at ændre registerets indhold. De sorte knapper nulstiller en bit, og de hvide knapper étstiller. De to knapper til venstre kan bruges til at hhv. nul- og ét-stille alle bits.

Overløbsregisteret og fortegnet for R registeret vises for oven til venstre. Indikatorindholdet vises til højre for dette.

YE lampen lyser når GIER venter på ydre enheder, fx. input fra skrivemaskine eller strimmellæser.

Lamperne M1 til M4 viser hvilket trin af mikrokoden der udføres.

Klik på NORMAL START for at genstarte GIER når den er stoppet. Højre-klik på knappen for at udføre én ordre ad gangen.

NORMAL STOP stopper GIER ved udgangen af instruktionen. Bemærk at hvis GIER venter på input stopper den først når input når frem.

Brug MIKROTEMPI STOP til at stoppe GIER med det samme, midt i en instruktion. Dette kan bruges til at afslutte en ordre som venter på input.

Klikker man på nøglen nederst til venstre afsluttes simulatoren.

Hovedmanøvrebordet benyttes sjældent når Help-3 er installeret på GIER. Det hele kan styres ved hjælp af hjælpemanøvrebordet og skrivemaskinen.

Hjælpemanøvrebordet

De fleste lamper og knapper svarer til de tilsvarende på hovedmanøvrebordet.

KLAR lampen lyser når GIER er stoppet. YE lampen lyser når GIER venter på input. Str.læs. par.fejl lyser når der er læst et tegn fra strimmellæseren med paritetsfejl. Tromle fejl lyser hvis man prøver at skrive på en skrivebeskyttet kanal eller læse fra en ikke-eksisterende kanal. Simulatoren hænger så i ordren indtil der trykkes på Reset. TO fejl lyser hvis GIER møder en ukendt grundoperation. HP spærret lyser hvis bit 0 er sat i by registeret. i-løkke lyser op under indirekte adressering. Lyser den konstant er maskinen låst i en uendelig kæde af indirekte adresseringer.

Knappen Reset virker som MIKROTEMPI STOP på hovedmanøvrebordet.

HP knappen bruges til at kalde HJÆLP eller Help-3 systemet: De første 40 celler i ferritlageret gemmes på kanal 38 på tromlen, kanal 0 indlæses og programtælleren gemmes i celle 0. GIER starter med at udføre ordren i celle 1. Koden på kanal 0 vil normalt lave en checksumstest af kanalerne 1-31, gemme ferritlageret på tromlen, hente en kommandofortolker ind og vente på ordrer fra skrivemaskinen.

Knapperne forneden forbinder bittene i by registret med de ydre enheder. Som knapperne er vist svarer det til standardkonfigurationen: by 8 er linieskriveren, 16 er skrivemaskinen, 32 er perforatoren og 64 plotteren.

Hulstrimmellæseren i GIER simulatoren

Tryk på Reset for at lægge en ny "hulstrimmel" i læseren. Strimler i GIER simulatoren er filer, gemt på harddisken på PC'en. Der kan både indlæses strimler i flexowriter kode (.flx) og i ASCII kode (.asc). I sidstnævnte tilfælde vil simulatoren selv konvertere til flexowriter kode under indlæsningen.

Hulrækken over ^-tegnet er det næste tegn GIER vil læse. Over "strimlen" vises tegnene i lowercase.

Knapperne Read, Skip og Up benyttes ikke.

Perforatoren i GIER simulatoren

Når første tegn sendes til perforatoren åbnes et vindue hvor du skal indtaste et filnavn. De hullede tegn gemmes i den valgt fil. Filen afsluttes ved at trykke på End Tape. Der kan kun hulles strimler i flexowriter kode. Programmerne a2flx og flx2a kan benyttes til at konvertere imellem flexowriter kode og ASCII.

GIER simulatorens skrivemaskine

Skrivemaskinen kan benyttes både til ind- og udlæsning. Hvis GIER venter på data fra skrivemaskinen vises teksten INPUT (i grønt) i øverste, højre hjørne, svarende til den grønne lampe på en rigtig GIER skrivemaskine. Vælg skrivemaskinevinduet med musen og skriv på PC'en tastatur.

Bemærk, simulatoren forventer et dansk tastaturlayout for at man kan skrive æ, ø og å.

GIER simulatorens linieskriver

Linuxversionen af simulatoren konverterer tegn sendt til linieskriveren til PostScript. PostScript koden gemmes i en fil som kan sendes til en printer med lpr kommandoen.

I Windows fungerer det anderledes; alle tegn gemmes i simulatoren indtil der klikkes på Start printing. Man kan så vælge Printer Setup og vælge en printer som alle tegnene bliver sendt til.

Man kan vælge linieafstand, antal linier pr. side og om _ | tegnene skal skrives uden at fremrykning på papiret.

Indlæsning af HELP-3

Når simulatoren startes, indlæses indholdet af registre, ferritlageret, tromlen, bufferen og evt. tilhørende diske ind fra filen default.gier. Hvis denne fil mangler, eller hvis du starter fra ny af ved at vælge New fra menuen File, er alle celler nulstillet.

En GIER maskine har ikke nogen BIOS til at starte et operativsystem, så det er nødvendigt at indsætte en bootstrap loader manuelt vha. hovedmanøvrebordet.

I det følgende vises hvordan man laver en GIER maskine med en disk som erstatter tromlen, og et bufferlager uden ydre enheder. Se flere detaljer om hvordan dette gøres i bogen A Manual of HELP 3.

Først slettes GIER maskinen ved at vælge New fra File menuen. Vælg Disc og enable buffer store.

Tillad skrivning på kanal 0 og kanalerne 1-31 i Options menuen.

Fortsæt derefter:

  1. Vælg MIKROTEMPI STOP
  2. Vælg register r1 og sæt det til nul.
  3. Vælg MIKROTEMPI START to gange.
  4. Vælg register L, slet alle bits og sæt følgende bit til et: 0-6, 8, 21, 24, 31-32, 35, 40.
  5. Vælg MIKROTEMPI START én gang. Celle 0 indeholder nu ordrene: "tl -6, ca 0"
  6. Vælg MIKROTEMPI STOP
  7. Vælg register r1 og sæt bit 9 til et.
  8. Vælg MIKROTEMPI START to gange.
  9. Vælg register L, slet alle bits og sæt følgende bit til et: 7, 20-22, 24-25, 28, 30-31, 34, 40
  10. Vælg MIKROTEMPI START én gang. Celle 0 indeholder nu ordrene: "ly r4, hs 0"
  11. Vælg MIKROTEMPI STOP
  12. Vælg register r1 og sæt bit 8 til et og 9 til nul.
  13. Vælg MIKROTEMPI START to gange.
  14. Vælg register L, slet alle bits og sæt følgende bit til et: 8-19, 21-22, 24, 29, 34
  15. Vælg MIKROTEMPI START én gang. Celle 0 indeholder nu ordrene: "gm s3 t-1 M"
  16. Vælg MIKROTEMPI STOP
  17. Vælg register r1 og sæt alle bits til nul.
  18. Læg strimlen "basic track 0 20.08.67.flx" i strimmellæseren. Den findes i folderen tapes/help3
  19. Vælg NORMAL START. GIER læser strimlen og gemmer den på kanal 0.
  20. Kanal 0 læses ind, og der beregnes en checksum af resten af Help 3 systemet. Da det ikke er indlæst endnu skriver GIER: SUM (med rødt) på skrivemaskinen.
  21. Læg strimlen "basichelp3.flx" fra help3bin folderen i læseren.
  22. Tryk på mellemrumstasten på skrivemaskinen. GIER indlæser nu resten af Help 3 og gemmer det på disken. Efter indlæsningen skriver GIER "0.0.0.0 e0".
  23. Denne strimmel indeholder en standard konfiguration af Help 3 passende til en GIER med én tromle. For at opbygge et Help 3 system til en maskine med disk og bufferlager er det nødvendigt at indlæse Help 3 fra kildetekst og rette nogle konfigurationsparametre. SLIP programmet i det nys indlæste Help 3 system benyttes til dette.
  24. Læg strimlen "Main help (5) 8.08.68.flx" i læseren og skriv "r<" på skrivemaskinen. Strimlen læses og GIER skriver "redefine".
  25. Vi skal nu rette parametrene for Help 3 systemet. Skriv følgende på skrivemaskinen:
    1. d22=30  ; Disksystem, svarende til 30 tromler
    2. d32=0  ; Vi bruger separat areal for work
    3. d16=934  ; Arealet image starter på kanal 934. Ferritlageret gemmes dér ved indhop i Help 3
    4. d33=500  ; Arealet work starter på kanal 500
    5. d34=434  ; Arealet work fylder 434 kanaler. Dette er arbejdsareal for GIER ALGOL 4 oversætteren
    6. d19=960  ; image ligger på kanalgruppe 0
    7. d5=960  ; free starter på kanal 960, altså kanalgruppe 1
    8. d21=450  ; Kataloget starter på kanal 450
    9. d23=50  ; Kataloget fylder 50 kanaler
  26. Vi gemmer slip og exit på kanal 13 til 36, kanal 38 er parameterkanalen, og resten af Help-3 og GIER ALGOL 4 oversætteren gemmes fra kanal 39. Kataloget er på kanal 450-499, work 500-933 og image på kanalerne 934-959. Der er afsat et stort katalog og work areal. free starter fra kanal 960 til slutningen af disken.
  27. Skriv l (tast _ efterfulgt af bogstavet l, som lima). SLIP fortsætter indlæsningen og skriver "mainhelp".
  28. Læg strimlen "inithelp (4) 13.01.69.flx" i læseren og skriv l. GIER skriver "inithelp".
  29. Læg strimlen "slip (4) 14.01.69.flx" i læseren og skriv l. GIER skriver "slip".
  30. Læg strimlen "exit (2) 7.06.68.flx" i læseren og skriv l. GIER skriver "exit".
  31. Den næste strimmel vil blive indlæst hen over kanal 38, som er reserveret. Vi beder SLIP om at springe kanal 37 og 38 over ved at skrive "d1=2d1" efterfulgt af vognretur.
  32. Læg strimlen "binin (1) 22.07.67.flx" i læseren og skriv l. GIER skriver "binin".
  33. Læg strimlen "binout, ... (2) 9.08.67.flx" i læseren og skriv l. GIER skriver "binout, outparam".
  34. Læg strimlen "start (3) 21.09.70.flx" i læseren og skriv l. GIER skriver "start".
  35. Læg strimlen "clear ... (10) 8.08.67.flx" i læseren og skriv l. GIER skriver "set, res clear".
  36. Læg strimlen "algol (2) 8.08.67.flx" i læseren og skriv l. GIER skriver "algol". Bemærk, dette er ikke GIER ALGOL 4 oversætteren, bare et lille program som bruges til at starte den rigtige oversætter, ga4.
  37. Læg strimlen "run (2) 10.08.67.flx" i læseren og skriv l. GIER skriver "run".
  38. Læg strimlen "edit (9) 8.07.70.flx" i læseren og skriv l. GIER skriver "edit".
  39. Læg strimlen "move (5) 15.12.68.flx" i læseren og skriv l. GIER skriver "move".
  40. Læg strimlen "check ... (12) 1.07.70.flx" i læseren og skriv l. GIER skriver "check, compress, list, setsum".
  41. Læg strimlen "print ... (12) 23.01.69.flx" i læseren og skriv l. GIER skriver "print, pair".
  42. Skriv e10 efterfulgt af vognretur.
  43. GIER vil nu flytte Help 3 systemet på plads og afslutte med en HP udskrift: "p0 2.6.67 e354" med rødt. Man kan nu skrivebeskytte kanalerne 0 og 1-31.
  44. Indsæt den rigtige dato: "start,13.2.12<" for at sætte datoen til 13. februar, 2012.
  45. Husk at gemme GIER konfigurationen!

En udskrift af kataloget fås med kommandoen: "list,a<" Det ses at det sidste program (print) starter på kanal 94 og fylder 20 kanaler. Den første frie kanal er således kanal 114. Dette tal skal bruges når vi indlæser GIER ALGOL 4 oversætteren.

Der er mange måder at opbygge et Help 3 system på, afhængig af om man har 1 tromle, 3 tromler, disk i stedet for tromle og om man har diske på bufferen.

Til den kørende GIER har vi opbygget en maskine med én tromle i simulatoren og en transient GIER ALGOL oversætter. Der indlæses passagerne til oversætteren fra en stor hulstrimmel da der ikke er plads på tromlen til både oversætter og et stort work areal. Systemet er så overført fra simulatoren til den rigtige GIER vha. en strimmelhuller forbundet via en RS-232 port.

Den første kommando man bruger når man har startet en GIER maskine (efter at spændingerne er kontrolleret) er "check<". Den kontrollerer at alle programmer på maskinen er intakte vha. checksum.

Den næste kommando er "start,dd.mm.åå<" for at sætte datoen.

Taster man forkert på skrivemaskinen kan man ikke bruge backspace til at rette. Laver man en fejl kan man slette hele linien ved at taste tegnet å.

Indlæsning af GIER ALGOL 4 oversætter

GIER ALGOL 4 blev distribueret som flere strimler med komprimeret kildetekst (kildetekst uden kommentarer og overflødige mellemrum). I simulatoren findes disse strimler i folderen tapes/ga4. Indlæsningen sker ved at indlæse én strimmel, sætte nogle parametre, og læse de sidste strimler ind. Den sidste strimmel flytter oversætteren på plads, enten på tromlen, disken, buffer disken eller som transient oversætter ved at udhulle to strimler.

Nedenfor angives en procedure for indlæsning af GIER ALGOL 4 på en maskine som blev sat op i sidste afsnit.

  1. Læg strimlen "T1, L1 (26) 20.07.70.flx" i læseren og skriv "r<" på skrivemaskinen. GIER skriver "redefine wanted loading parameters".
  2. Sæt følgende parametre:
    1. e14=114  ; ga4 placeres fra kanal 114
    2. e27=1  ; gem arrays i bufferlageret
  3. Fortsæt indlæsning med l. GIER skriver "T1,L1"
  4. Læg strimlen "T2 (22) 13.01.69.flx" i læseren og skriv l. GIER skriver "T2"
  5. Læg strimlen "T3 (18) 3.10.68.flx" i læseren og skriv l. GIER skriver "T3"
  6. Læg strimlen "T4 (24) 14.04.70.flx" i læseren og skriv l. GIER skriver "T4"
  7. Læg strimlen "T5 (25) 14.04.70.flx" i læseren og skriv l. GIER skriver "T5"
  8. Læg strimlen "T6, L2 (20) 26.07.68.flx" i læseren og skriv l. GIER skriver "T6,L2"
  9. Læg strimlen "T7, L3 (23) 20.01.69.flx" i læseren og skriv l. GIER skriver "T7,L3"
  10. Læg strimlen "T8, L4 (19) 17.07.68.flx" i læseren og skriv l. GIER skriver "T8,L4 - wait - then SLIP or other" og HP prompten.
  11. Læg strimlen "T9, L5, M1 () 12.08.67.flx" i læseren og skriv r<. GIER skriver "... define i and the parameter"
  12. Skriv l. GIER skriver "T9,L5,M1", "end merger" og HP prompt.
  13. Læg strimlen "P1 (1) 16.08.67.flx" i læseren og skriv r<. GIER skriver "actual first track of translator"
  14. Skriv 114, vognretur og l. GIER skriver "type: d35..."
  15. Skriv "d35=0", vognretur og l. GIER skriver "if reserved ...".
  16. Skriv l. GIER skriver "type: final first track".
  17. Skriv 114, vognretur og l. GIER skriver "type: tname of translator;".
  18. Skriv "tga4;", vognretur og l. GIER skriver HP prompt.

Oversætteren er nu på plads. Gem din GIER konfiguration!

Skriv "list,a<" for at få en udskrift af kataloget. Linien med ga4 bør stå sidst.

Oversætteren kan afprøves ved at lægge strimlen "demon3.flx" fra demo folderen i læseren og skrive kommandoen "algol<".

Efter et stykke tid skriver GIER "ok" og det oversatte program kan startes vha. kommandoen "run<". Du kan nu spille tændstikspillet NIM!

Dit første ALGOL program

Du kan skrive kildeteksten med enhver ASCII editor, fx notepad i Windows eller vi i Linux. Gem filen med extension .asc.

Programmet kan se således ud:

_b_e_g_i_n
   _i_n_t_e_g_e_r n;
   _r_e_a_l _p_r_o_c_e_d_u_r_e fac(n);
   _v_a_l_u_e n;
   _r_e_a_l n;
   fac := _i_f n=0 _t_h_e_n 1 _e_l_s_e fac(n-1)*n;
   select(17);
   _f_o_r n := 0 _s_t_e_p 1 _u_n_t_i_l 50 _d_o
   _b_e_g_i_n
      writecr;
      write(|<dddd|>, n);
      write(|<  d.ddddd'-ddd|>, fac(n))
   _e_n_d for n
_e_n_d program

Bemærk følgende:

  • Understregede bogstaver skrives som tegnet "_" efterfulgt af bogstavet.
  • Gangetegnet er *
  • Ti'erpotens skrives som '

Start simulatoren. Hvis du allerede har indlæst Help-3 og GIER ALGOL 4 oversætteren er alt parat.

Skriv kommandoen "algol<" på skrivemaskinen. GIER starter oversætteren, indlæser strimlen, oversætter og afleverer det oversatte program i arealet work. Hvis alt går godt skriver GIER "ok".

Skriv kommandoen "run<" for at starte programmet. Tabellen med fakultetsfunktionen udskrives på skrivemaskinen. Du kan sende output til andre enheder med knapperne i krydsfeltet på det lille manøvrebord eller ved at ændre værdien i kaldet af select proceduren.

Du kan finde en masse ALGOL programmer i "demo" folderen.

Konvertering mellem ASCII og flexowriter kode

Flexowriter kode Skriv i ASCII
eller £ (pund)
og &
x (multiplikation) *
10 under linien '