DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC850

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC850

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦086f3fd02⟧ TextFile

    Length: 170624 (0x29a80)
    Types: TextFile
    Names: »GIERSIM«

Derivation

└─⟦06e5a69d9⟧ Bits:30005862 Diverse system programmer
    └─⟦this⟧ »GIERSIM« 

TextFile

                                                   i 
 
I_N_D_H_O_L_D_S_F_O_R_T_E_G_N_E_L_S_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_I_D_E_ _
 
1.  INDLEDNING ...........................................    1 
 
2.  BETJENING ............................................    3 
    2.1  Opstart .........................................    3 
         2.1.1  Ressourcer ...............................    3 
         2.1.2  Kald af RC8602 emulatoren ................    4 
    2.2  Operatørkommandoer ..............................    8 
         2.2.1  Oversigt over operatørkommandoer .........   10 
         2.2.2  Start/stop af RC8602 .....................   18 
         2.2.3  Krydsfeltet, KA/KB, printer og perforator.   23 
                2.2.3.1  Printer output (lp,iso og cv.iso)   25 
                2.2.3.2  Perforator og plotteroutput (tp, 
                         lp.bin, cv.bin) .................   27 
         2.2.4  Strimmellæser ............................   28 
         2.2.5  Båndstations kommandoer ..................   31 
         2.2.6  Kommandoer for karrusel og bufferdisc ....   35 
         2.2.7  Kommandoer for jobfil administration .....   35 
         2.2.8  Utility kommandoer .......................   40 
         2.2.9  Kontrolbords og debugger kommandoer ......   42 
         2.2.10 Nedlukning ...............................   49 
    2.3  Teknikerpanelet .................................   50 
    2.4  Oversigt over I/O systemet ......................   53 
    2.5  Fejlsituationer .................................   56 
 
          3.  BESKRIVELSE AF EMULATORMODULERNE .....................   58 
              3.1  Lagerbillede ....................................   58 
              3.2  Mikroprogram emulatoren .........................   60 
              3.3  Skrivemaskinen ..................................   62 
              3.4  Strimmellæser ...................................   66 
              3.5  Printer .........................................   66 
              3.6  Perforator ......................................   68 
              3.7  Converter (plotter, "option") ...................   68 
              3.8  Tromle ..........................................   68 
                   3.8.1  Lagring ..................................   68 
                   3.8.2  Tromle operationer .......................   70 \f

                                                  ii 
 
I_N_D_H_O_L_D_F_O_R_T_E_G_N_E_L_S_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_I_D_E_ _
 
         3.8.3  Hastighed ................................   70 
         3.8.4  Tromlefejl ...............................   71 
    3.9  Båndstationer ...................................   71 
         3.9.1  Båndoperationer ..........................   71 
         3.9.2  Skrivering contry ........................   72 
         3.9.3  Strukturering af simulerede bånd .........   73 
         3.9.4  Afkortet ordlængde .......................   75 
         3.9.5  "File-edit" problemet ....................   76 
         3.9.6  Trimming, hastighed ......................   77 
    3.10 Karrusel ........................................   78 
    3.11 Bufferdisc ......................................   78 
           
          4.  KOBLING TIL ANDRE SYSTEMER ...........................   80 
              4.1  Den fysiske GIER ................................   80 
              4.2  Andre systemer i samme RC8000 ...................   80 
              4.3  Andre systemer ..................................   81 
           
          B_I_L_A_G_: 
           
          A.  Instruktionstider og I/O tider for RC8602 ............   82 
           
          B.  FP-programmer og procedurer for båndkonvertering .....   86 
           
          C.  FP-programmer for strimmelhåndtering .................   93 
           
          D.  FP-programmer for disc-fil håndtering ................   97 
           
          E.  Alfabetisk liste over fejludskrifter fra RC8602sim ...  101 
           \f

         1_._ _ _ _ _ _ _ _ _I_N_D_L_E_D_N_I_N_G_ 1.
                    
          Nærværende manual beskriver brugen af RC8602 systemet. Beskrivel-
          sen er baseret på, at læseren er kendt med brugen af GIER. Er
          dette ikke tilfældet, henvises til ref. 1, 2 og 3. Vedrørende den
          tekniske konstruktion af GIER henvises til ref. 4. Læseren forud-
          sættes desuden bekendt med kørsel under operativsystemet BOSS på
          RC8000, jvfr. ref. 5. 
           
          RC8602 systemet består af en hardware del og en software del.
          Hardware delen er en specialmikroprogrammeret RC8000 CPU (GIER-
          CPU emulator), som tilsluttes en standard RC8000 som en ydre en-
          hed direkte på I/0-bussen. Software delen er et ALGOL program i
          RC8000, der dels tager sig af kommunikationen med RC8602, dels
          emulerer GIER>s ydre enheder ved hjælp af discarealer og/eller de
          tilsvarende RC8000 devices, (I/0 emulator). 
           
          GIER>s lager repræsenteres som en del af RC8000>s lagerområde
          defineret ved en zone i ovennævnte ALGOL program. 
           
          Dette lagerområde er fælles for CPU-emulatoren og I/0 emulatoren,
          der uafhængigt af hinanden kan læse og skrive i dette. 
           
          l_a_g_e_r_ _ _l_a_y_o_u_t_ 
          I/0 emulator: 
            RC8000   andre RC8000          RC8602 proces 
            monitor  processer             (ALGOL program) 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

          incl RC8002            Program                    øvrige stack 
          driver                 segmenter 
          fælles I/0RC8602 
          tabeller     lager 
           
          RC8000 kan starte, stoppe og interrupte RC8602 via en speciel
          monitordriver. Denne administrerer en perifer proces ved navn
          SSCIRGIER1. 
           \f

                   Der vil intet være i vejen for at tilslutte flere RC8602 til sam-
          me RC8000, men da emulator-devicet ikke skal reserveres, vil det
          være nødvendigt at udarbejde en passende strategi til fordeling
          af belastningen mellem emulatorerne. 
           
          GIER>s skrivemaskine emuleres ved hjælp at en RC8000 terminal el-
          ler, ved "newjob" kørsel under BOSS, af BOSS>s primary input og
          primary output. De øvrige enheder: strimmel læser og perforator,
          printer, plotter, tromle, båndstationer, karrusel og bufferdisc
          simuleres primært ved hjælp af discarealer. Dog kan RC8000>s
          fysiske strimmellæser, perforator, printer og plotter anvendes i
          stedet for disc (i det omfang operativsystemet tillader det). 
          Derimod kan RC8000>s båndstationen ikke anvendes direkte, an-
          vendelsen af fysiske magnetbånd sker ved konvertering til og fra
          discarealer. (Se appendiks B: FP-programmer og procedurer for
          båndkonvertering). 
          GIER>s kontrolbord emuleres ved hjælp af specielle kommandoer,
          der tastes på terminalen eller tages fra en jobfil. 
           
          CPU-emulatorens hastighed er tre gange større end GIER>s. I/0 e-
          mulatorens hastighed er afhængig af bl.a. bloklængden, idet over-
          førsel af store blokke ('200 ord) sker mere en tre gange så hur-
          tigt. Båndpositioneringer er øjeblikkelige, dvs. varigheden svar-
          er til en bloktransport. For detaljeret information, se appendiks
          A: instruktions tider og I/0 tider. 
           
          Den nødvendige lagerplads pr RC8602 proces er typisk 120000 halv-
          ord. 
           
          RC8602 kan p.t. kun tilsluttes RC8000/45. 
           
           \f

         2_._ _ _ _ _ _ _ _ _B_E_T_J_E_N_I_N_G_ 2.
           
2_._1_ _ _ _ _ _ _ _O_p_s_t_a_r_t_ 2.1
           
2_._1_._1_ _ _ _ _ _R_e_s_s_o_u_r_c_e_r_ 2.1.1
           
          Den minimale processtørrelse er ca. 90000 halvord, men for at
          kunne opnå rimelige bloklængder i disctransporterne vil ca.
          120000 halfword være nødvendige. 
           
          Desuden skal der reserveres et antal messagebuffere og arealpro-
          cesser: 
           
          buf  10 
          area 15 
           
          Den nødvendige mængde af tempordre og permanente discressourcer
          afhænger af størrelsen af de emulerede bånd. Som tommelfinger-
          regel regnes med, at et fyldt 2400 fods 7 spors bånd (556 bpi)
          svarer til knap 15000 segmenter. 
           
           \f

         2_._1_._2_ _ _ _ _ _K_a_l_d_ _a_f_ _R_C_8_6_0_2_ _e_m_u_l_a_t_o_r_e_n_ 2.1.2
           
          Emulatorprogrammet kaldes som et normalt FP utility program: 
           
           
M_                          rc8602sim <tromleareal'  <options' 
P_                                                             0 
                                                    
                                           1 
                                       drums.  2 
                                                    3 
                                                
                                     D_D_D_1U_U_U_ 
                                               . 
                                  groups.  . 
                                               . 
                                         U_U_U_60D_D_D_ 
               
M_m_m_                                             open 
                                      track031.   
P_p_p_                                             protected 
              <options' ::= 
           
                                         D_D_D_1         1U_U_U_ 
M_m_m_                                       .iso     .min 
                                       lp   
P_p_p_                                       .bin     .max 
                                           U_U_U_0         0D_D_D_ 
           
                                           D_D_D_1         1U_U_U_ 
M_m_m_                                          .iso     .min 
                                       cv   
P_p_p_                                       .bin     .max 
                                           U_U_U_0         0D_D_D_ 
           
M_m_m_                                          .min 
                                       tp   
P_p_p_                                        .max 
           
                                                   0 
M_m_m_                                                  11 
                                          buffersize.   
P_p_p_                                               12 
                                                   13 
           
           \f

                                             D_D_D_0U_U_U_ 
                                                   . 
                                       tapes. . 
                                              . 
                                        U_U_U_6D_D_D_ 
           
M_m_m_                                            yes 
                                       disc   
P_p_p_                                            no 
           
                                                  yes 
                                       carousel. no 
                                                 norsk 
           
M_m_m_                                            0 
                                       sy80   
P_p_p_                                            2 
           
                                                 8 
                                                 . 
                                      testsize.  . 
                                                  . 
                                                   
           
M_m_m_                                            yes 
                                       trap   
P_p_p_                                          no 
           
           
          <tromle areal' er navnet på det discareal, hvorfra tromlens ind-
                    hold kopieres. Er normalt enten "hjælpsys" eller "ba-
                    sichelp", eller en af brugeren defineret tromle. 
                     
          <drums'   er antallet af tromler. Skal matche med størrelsen af
                    <tromleareal'. Se evt afsnit 3.8.1 
                     
          <groups'  er minimumsstørrelsen af den virtuelle tromle, dvs. det
                    antal tromlegrupper, der samtidigt kan være i lageret.
                    En tromlegruppe er 16 kanaler = 5 segmenter. Der må
                    max. specificeres 20 grupper pr. tromle. 
                     \f

                   <track031' anvendes til skrivebeskyttelse af kanal 0-31 på tromle-
                    kopien ("gierdrum") 
           
          <lp'      <iso' angiver, at printeroutput konverteres til ISO ka-
                    rakterer (se afsnit 3.5), <bin' angiver konvertering
                    til flexo-billede i ulige paritet (flextrn). <min' be-
                    virker, at zonen udlægges enkeltbufret med bloklængden
                    1 segment, <max' bevirker dobbeltbufring, samt at blok-
                    længden afhænger af processtørrelsen. 
                     
          <cv'      samme som for <lp'. Ved <bin' parameteren benyttes dog
                    en anden tabel end ved <lp'. Indholdet af denne tabel
                    er p.t. det samme som for <lp', dvs. flextrn, men kan
                    ændres til specielle formål, f.eks. plotter styring. 
                     
          <tp'      <min' bevirker enkeltbufret output med en bloklængde på
                    eet segment. <max' bevirker dobbeltbufret output med
                    maksimalt opnåelig bloklængde. Output konverteres altid
                    til ulige paritet (flextrn). 
                     
          <buffersize' parameteren opfattes som en potens af 2, dvs. buf-
                    feren kan være på 2048, 4096 eller 8192 celler. 
                    Buffersize 0 bevirker, at der ikke reserveres plads til
                    buffer, bånd, karrusel eller bufferdisc, og forsøg på
                    at udføre il/us instruktioner giver "tom operation" (se
                    afsnit 3.2). Til gengæld kan RC8602 køres i en proces-
                    størelse på ca. 70000 halvord. 
                     
          <tapes'   Antal båndstationer, der kan have tilkoblet emuleret
                    bånd samtidigt. 
                     
          <disc'    Hvis <yes' udlægges en zone til bufferdisc. Der kan ik-
                    ke i samme kald specificeres "disc" og "carousel". 
                     
          <carousel'Hvis <yes', så udlægger en zone til karrusel. <norsk'
                    betyder, at bloklængden er speciel, (se afsnit 3.10).
                    Der kan ikke i samme kald specificeres "carousel" og
                    "disc". 
                     \f

                   <sy80'    Styrer virkningen af ordren sy80. Sy80.0 bevirker, at
                    der trykkes uden papirfremføring (CR). Sy80.2 giver
                    dobbelt linieskift (2*NL). 
                     
          <testsize' Angiver antallet af records i den cykliske buffer
                    hvori testoutput fra båndstations operationerne opsam-
                    les (se afsnit 2.2.9). Pladsforbruget pr testrecord er
                    8 24-bits ord. 
                     
          <trap'    trap.yes bevirker, at I/0-fejl, index- og fieldalarmen
                    trappes, så man ved online indkøring kan undgå udhop
                    til FP. 
                     
                    Standard værdierne af <options' svarer til kaldet: 
                     
                    drums.1 groups.5 track031.open, 
                    lp.iso.max cv.iso.min tp.min buffersize.12, tapes.4
                    disc.no carusel.no sy80.0 testsize.8 trap.no 
                     
                    Efter opstart svarer emulatorprogrammet med udskriften:
                     
                    rc8602<cpuno' rel. <releaseno' <tr' <cv' <lp' <groups' <tapesize'
                     
                    hvilket signalerer, at emulatorprogrammet er initiali-
                    seret og klar til at indlæse operatør kommandoer. 
                     
                    Der er koblet til en CPU-emulator med <cpuno' = a, b, c
                    eller d. 
                     
                    <tr' <cv' <lp' og <tapesize' er størrelsen i segmenter
                    af disktransporterne der sker på de pågældende enheder.
                    <groups' er størrelsen af den virtuelle tromle (1 grup-
                    pe = 16 kanaler = 5 segmenter. 1 segment = 128
                    GIER-ord). 
                     \f

         2_._2_ _ _ _ _ _ _ _O_p_e_r_a_t_ø_r_k_o_m_m_a_n_d_o_e_r_ 2.2
           
          RC8000 terminalen, hvorfra emulatoren betjenes, har to formål,
          nemlig 
           
          1. emulering af GIER>s konsolskrivemaskine 
          2. emulering af GIER>s kontrolbord (display) 
           
          Dette betyder, at terminalen kan være i n ud af to m_o_d_e_s_, nemlig
          GIER-mode, eller control-mode. 
           
          I G_I_E_R_-_m_o_d_e_ behandles terminalen stort set som GIER>s skrivema-
          skine (nøjere beskrevet i afsnit 3.3). GIER-mode kan kendes på,
          at der foran hver outputlinie i margin udskrives: 
           
          typeout: 
           
          og foran hver inputline i margin udskrives: 
           
          typein: 
           
          I c_o_n_t_r_o_l_-_m_o_d_e_ simuleres kontrolbordet ved hjælp af et særligt
          kommandosprog (der iøvrigt også bruges til at emulere båndmon-
          teringer m.m). 
           
          Control-mode kan kendes på, at der foran input/output linierne i
          margin udskrives: 
           
          control: 
           
          Skift mellem de to modes foregår ved hjælp af særlige kommandoer.
          Desuden bevirker visse fejlsituationer automatisk skift til con-
          trol-mode. (se afsnit 2.2.2) 
           
          I control-mode er RC8602 altid stoppet, i GIER-mode er RC8602 al-
          tid kørende (venter evt. på skrivemaskine input). I GIER-mode
          tastes med andre ord præcis det samme som ved kørsel på den fysi-
          ske GIER. 
           \f

                   I control-mode kan GIER være stoppet på to måder, nemlig asyn-
          kront eller synkront. 
           
          A_s_y_n_k_r_o_n_t_ stop svarer til, at GIER er stoppet midt i en ordre
          (som regel LY, SY, IL, US), eller i "tom operation" 
           
          S_y_n_k_r_o_n_t_ stop svarer til normalt stop, f.eks. efter zq ordren
          eller attention. 
          En mere detaljeret beskrivelse findes i afsnit 2.2.2. 
           
          Man kan således afvikle en GIER-kørsel fra en online terminal på
          samme måde som på GIER. Dette benyttes dog mest ved indkøring.
          Ved rutinekørsel læses alle inputkommandoer (både i GIER-mode og
          controlmode) fra en jobfil, og kørslen afvikles fuldautomatisk. 
           
          Ved automatisk afvikling er der dog stadigvæk mulighed for
          operatørindgreb. Hvis der i control-mode antræffes en kommando,
          der ikke kan udføres, skiftes til konsollen for online aktion.
          Operatøren adviseres med et >beep> signal, og kan derpå korrigere
          fejlen og fortsætte kørslen. RC8602 kan endvidere stoppes ved
          "attention" til den pågældende proces. 
           
          Ovennævnte indgreb gælder under BOSS selvsagt kun for "run-jobs",
          ikke for "new-jobs". 
           
           \f

                   2_._2_._1_ _ _ _ _ _O_v_e_r_s_i_g_t_ _o_v_e_r_ _o_p_e_r_a_t_ø_r_k_o_m_m_a_n_d_o_e_r_ 
                     
          'att <processens navn' 
                    Attention til processen bevirker øjeblikkeligt skift
                    til control-mode. Hvis terminalen ikke er current input
                    stakkes dette, og der tages således altid online input
                    efter attention. Må ikke anvendes ved "newjob", da
                    jobbet går ned p.g.a. manglende terminal acces. 
                     
          @         Snabel-a. Når dette tegn forkommer i skrivemaskine in-
                    put i GIER-mode (der står "typein:" i margin) skiftes
                    til control-mode. 
                     
M_m_m_             11 
          autoload  <arealnavn'  <start addresse' 
P_p_p_           00 
           
                    HELP3 primitivt indlæseprogram sættes op i celle 0 - 2
                    i lageret og OT, AC og BY registeret nulstilles. (se
                    ref. 3, side 24). Anvendes kun ved dannelse af nye
                    tromlebilleder. 
                    Angives paramtre, indlæses arealet <arealnavn' til det
                    emulerede GIER lager fra celle <startaddress' eller, i
                    mangel af denne, fra celle 0. OT sættes til
                    startadressen. 
                     
M_m_m_          1 
          breakpnt  <start adresse'  <top adresse' 
P_p_p_                    0 
                     
                    Definerer breakpoint stop eller interval for udskrift
                    af testoutput. Se afsnit 2.2.9. 
                     
M_m_m_           1 
          callop     <tekststreng' 
P_p_p_                    0 
                     
                    <tekststreng' udskrives som operatør information. Denne
                    kommando anvendes i jobfilen, hvor den bevirker, at o-
                    peratøren adviseres med "beep", og der stakkes til on-
                    line terminal input, så operatøren kan gribe ind. 
                    "Callop" må ikke anvendes, hvis jobbet startes som
                    newjob. 
                     \f

          cf cv     <bit' 
                    Sætter krydsfeltets converterudgang. 1000 svarer til
                    bit 3. 
                     
          cf lp     <bit' 
                    Sætter krydsfeltets printerudgang. (lp = line printer).
                     
                   cf tp     <bit' 
                    Sætter krydsfeltets perforator udgang (tp = tape punch).
                     
          cf tw     <bit' 
                    Sætter krydsfeltets skrivemaskineudgang (tw = type
                    writer). 
                     
          claim     Der udskrives tabeller, som viser processens øjeblikke-
                    lige ressourcer (som fp-kommandoen claim). 
                     
          cmd       <filnavn' 
                    Current input stakkes, og den læses videre fra en ny
                    fil med navnet <filnavn' 
                     
M_m_m_           11 
          concv     <arealnavn'  <kitnavn'  <papirtype' 
P_p_p_                     00 
                       
                    Tilslutter arealet <arealnavn' til krydsfeltets conver-
                    terudgang (plotterudgang). Hvis arealet (arealnavn'
                    findes i forvejen anvendes dette, ellers oprettes et
                    temporært areal på <kitnavn', hvis dette er angivet -
                    ellers anvendes første ledige disc (normalt system
                    disc>en). 
                     
                    Såfremt parameteren <papirtype' anvendes, så sendes en
                    "convert" message til BOSS indeholdende <areal navn' og
                    <papirtype', når converterarealet frigives, hvilket
                    sker i forbindelse med kommandoerne relcv, concv og
                    terminate. 
                     \f

M_m_m_           1     1 
          conlp     <arealnavn'  <kitnavn'  <papirtype' 
P_p_p_                    00 
                     
                    Denne kommando anvendes i forbindelse med printerud-
                    gangen. Funktionen er iøvrigt identisk med concv. 
                     
                   connect   <unit no' <areal navn' 
                    Den emulerede båndstation, bufferdisc eller karrusel
                    kobles til discarealet <arealnavn'. Karrusellen har
                    <unit no' = 7, bufferdisc har <unit no' = 8. 
                     
M_m_m_                    1 
          contp     <filnavn'   <kitnavn' 
P_p_p_                    0 
                     
                    Denne kommando anvendes i forbindelse med perforator
                    udgangen. Funktionen er identisk med concv, idet der
                    dog i_k_k_e_ kan anvendes en papirtype parameter. Hvis der
                    som <filnavn' anvendes "tpn" udhulles en korrekt
                    GIER-strimmel i u_l_i_g_e_ paritet direkte på perforatoren. 
                     
          contr     <filnavn' 
                    Tilkobler læser indgangen til <filnavn', der normalt er
                    et discareal indeholdende tekst eller binær kode i
                    flextrn repræsentation (billede af 8-kanal strimmel i
                    ulige paritet termineret med NUL). Ved kørsel under "s"
                    kan <filnavn' være trn, hvorved RC2000 direkte kan
                    benyttes. (tr = tapereader.). 
                     
                                                                        1    1 
          create    <unit no' <arealnavn'  <kitnavn'  <antal segmenter' 
                                                                        0    0 
                     
                    Et nyt areal med navnet <arealnavn' dannes på <kitnavn'.
                    Arealet er på 504 segmenter hvis <antal segmenter' ikke
                    angives. Såfremt <kitnavn' ikke angives dannes arealet
                    på første ledige disc (normalt system disc>en). Arealet
                    får scope temp og initialiseres for brug som bånd,
                    karrusel eller bufferdisc. Status er som efter connect,
                    dvs. monteret på unit <unit no'. 
                     \f

M_m_m_               1 
          display    time 
P_p_p_                    0 
                     
                    Mangler parameteren, udskrives en liste over monterede
                    bånd, karrusel og bufferdisc, samt krydsfeltindstilling
                    og det til den enkelte enhed forbundne discareal.
                    Endvidere angives det til strimmellæseren knyttede disc-
                    areal samt værdien af KA og KB. 
                    Anvendes parameteren "time" udskrives i stedet antal
                    disctransporter samt forbrugt tid som ved "terminate". 
                     
          end       Returnerer til jobfilen efter online operatør aktion.
                    Såfremt operatøraktionen er indkaldt p.g.a. fejl i en
                    kommando repeteres denne, medmindre operatøren har an-
                    vendt "skip" kommandoen. 
                     
M_m_m_           1     1 
          hp         <antal instruktioner'  <interval' 
P_p_p_                      0     0 
                     
                    Udfører hp aktionen og starter emulatoren. Såfremt der
                    anvendes parametre, så stoppes der igen, når <antal
                    instruktioner' er udført. Se afsnit 2.2.9. 
                     
M_m_m_                    and1 
          ifbit     <bitnr'<bitnr' 
P_p_p_                              or            0 
                     
                     
                    Hvis kommandoen tages fra jobfilen, udføres den næste
                    linie, dersom den/de valgte modebit er sat. Tastes kom-
                    mandoen online, udskrives i stedet de modebit, der i
                    øjeblikket er sat. 
                     
          ifmess    <tekststreng' 
                    Den næste linie i jobfilen udføres kun, hvis den speci-
                    ficerede <tekststreng' er identisk med begyndelsen af
                    den sidst udskrevne skrivemaskinelinie (typeout). 
                             Tastes kommandoen online, udskrives i stedet den sidste
                    linie. 
                     \f

          ka off    KA nulstilles (slukkes). 
                     
          ka on     KA eetstilles (tændes). 
                     
          kb off    KB nulstilles (slukkes). 
                     
          kb on     KB eetstilles (tændes). 
                     
          kill      Emulatoren terminerer omgående og resten af jobfilen
                    overspringes. Evt. output tabes. 
                    
M_m_m_                on 
U_U_U_           list      Ændrer listmode. Ved opstart af emulatoren sættes list
P_p_p_                off i overensstemmelse med værdien af 
M_m_m_                                 yes 
                    mode list. 
P_p_p_                                 no 
                    i FP. list on bevirker, at online input gengives i
                    current output. Jobfile input gengives altid. 
                     
M_m_m_          4 
          lookup     <filnavn' 
P_p_p_                    1 
                     
                    Virker som lookup under BOSS. 
                 
M_m_m_              on 
U_U_U_           lp        Anvendes til at styre debugger udskrifter ud på printe-
P_p_p_              off   ren. 
                     
M_m_m_                     on 
          modebit   <bitnr' 
P_p_p_                     off 
                     
                    Sætter ellers nulstiller 1 af de 24 interne modebits
                    (ikke af forveksle med FP>s modebits). 
                     
          oldmess   <tekststreng' 
                    Som ifmess, med der sammenlignes med en næstsidste
                    skrivemaskinelinie i stedet for den sidste. 
                     
                   opmess    Anvendes til udskrift af operatørmeddelelser under kør-
                    selsafviklingen og er iøvrigt blind. 
                     \f

M_m_m_                                                     1     1 
          print <første celle'   <sidste celle' reg 
P_p_p_                    0     0 
                     
                    Lagerindholdet fra og med <første celle' til og med
                    <sidste celle' udskrives. Hvis "reg" angives, udskrives
                    desuden alle registre. Se afsnit 2.2.9. 
                     
M_m_m_                     1 
          put <adresse' <tal1' <tal2' tal3' <tal4'  <mærkebit' 
P_p_p_                     0 
                     
                    De fire talgrupper <tal1', <tal2', <tal3', <tal4' ind-
                    sættes i celle <adresse' med enhed i pos 9, 19, 29, og
                    39. Som <mærkebit' anvendes a, b eller c. 
                     
M_m_m_                     4 
          regprint   <register' 
P_p_p_                     0 
                     
                    Valg af, hvilke registre, der skal udskrives ved an-
                    vendelse af debuggeren (se afsnit 2.2.9). 
                     
          relcv     Frigiver den til converterudgangen koblede fil. 
                     
M_m_m_                     4 
          release    <unit no' 
P_p_p_                     0 
                     
                    Det emulerede bånd/karrusel/bufferdisc på den pågæld-
                    ende unit lukkes og frigives. 
                     
          rellp     Frigiver den til printerudgangen koblede fil. 
                     
          reltp     Frigiver den til perforatorudgangen koblede fil. 
                     
                   reltr     Frigiver den til strimmellæserindgangen koblede fil. 
                     
M_m_m_                     4 
          remove     <arealnavn' 
P_p_p_                     1 
                     \f

                    Discarealerne <arealnavn' fjernes. Såfremt der findes
                    flere arealer med samme navn, fjernes arealet med det
                    mindste scope. 
                     
          rename    <gl.navn' <nyt navn' 
                    Filen <gl.navn' skifter navn til <nyt navn'. 
                     
          reset     Emulerer "reset" knappen på GIER, dvs. h-bitten nul-
                    stilles, resten af en igangværende LY, SY, IL, US ordre
                    skippes, og printer og converter sættes i lower case. 
                     
M_m_m_                    11 
          resume     <antal instruktioner'  <interval' 
P_p_p_                    0     0 
                     
                    Simulatoren genstartes. Såfremt der anvendes parametre
                    stoppes igen, når <antal instruktioner' er udført. Se
                    afsnit 2.2.9. Bemærk iøvrigt, at "resume" kommandoen
                    anvendt fra en terminal vil bevirke, at kørslen kører
                    videre fra skærmen i stedet fra jobfilen, (modsat >end>
                    kommandoen). 
                     
M_m_m_                             off 
          ring      <unitno' 
P_p_p_                    on 
                    Skriveringsmarkeringen fjernes eller sættes på det på
                    <unit no' monterede bånd. 
                     
M_m_m_                    3 
          scope     <nytscope'  <arealnavn' 
P_p_p_                    1 
                     
                    Virker som FP-kommandoen "scope". 
M_m_m_                      11 
          skip      <antal linier'  <værdi' 
P_p_p_0    0 
                     
                    Den (de) følgende <antal linier' i jobfilen skippes.
                    Angives desuden <værdi', tæller de skippede linier kun,
                    dersom de indeholder <værdi'. Tomme linier tælles ikke.
                    <værdi' <= 96 opfattes som værdien af et ISO-tegn. 
                    <værdi' '  96 opfattes som et heltal, der skal søges
                    efter. Tal, der er en del af et navn, kan der ikke
                    søges på. Ligeledes er en søgning med <værdi' i inter-
                    vallet 48 ... 57 (dvs. tallene 0 ... 9) ikke tilladt. 
                     \f

M_m_m_                     1     1 
          table      <første celle'  <sidste celle' 
P_p_p_                     0     0 
                     
                    Udskriver RC8602 tabellen. Bruges kun ved fejlsøgning. 
                     
          terminate Normal vedlukning af emulatoren. Alle filer lukkes, og
                    en eventuel convert message til BOSS sendes. Desuden
                    udskrives en statistiklinie (se afsnit 2.2.10). 
                     
M_m_m_           off 
          testbit   <bitno' 
P_p_p_                     on 
                     
                    NUL- eller etstiller bit <bitno' i en testmaske. Bruges
                    til generering af testoutput. Se afsnit 2.2.9. 
                     
M_m_m_                    4 
          trace     <unit no' 
P_p_p_                    0 
                     
                    Udskrift af de sidste båndoperationer på de valgte
                    <unitno'. Udelades parameteren udskrives for samtlige.
                    Antallet af operationer, der huskes afhænger af "test-
                    size" parameteren og er standard otte. 
                   unstack   Afstakker current input i controlmode. Efter attention
                    udføres næste kommando i jobfilen straks. Normalt uden
                    interesse. 
                     
                    ændring af register indhold kan finde sted ved hjælp af
                    følgende control-mode kommandoer: 
                    registernavn 
               ot=  <heltal'  r1 
M_m_m_                    1 
               ac=  <tal1' <tal2' <tal3' <tal4'  octalR 
P_p_p_                    0 
                     
M_m_m_                    1 
               mq=  <tal1' <tal2' <tal3' <tal4'  octal M 
P_p_p_                    0 
                     
               p =  <heltal'p 
               s =  <heltal's1 
               by=  <heltal'by 
               in=  <heltal'indikator 
               tk=  <heltal'tk 
               h =  <heltal'h-bit 
                     
                     \f

2_._2_._2_ _ _ _ _ _S_t_a_r_t_/_s_t_o_p_ _a_f_ _R_C_8_6_0_2_ 2.2.2
           
          Beskrivelse af kommandoerne: 
           
          'att <processens navn' 
           
          @ 
          autolead 
          callop 
          end 
          hp 
          reset 
          resume 
          unstack 
           
                   Efter start af RC8602sim kan man starte en helt tom maskine med
          kommandoen 
           
          autoload 
           
          der sætter HELP3 primitivt indlæseprogram op i celle 0-2 af det
          emulerede GIER-lages, og intialiserer registrene til start i den-
          ne bootstrap, (se ref.3, side 24). Det er desuden nødvendigt at
          koble læserindgangen til en binær programstrimmel med den til-
          svarende boot information. Autoload går i gang på en efterfølgen-
          de "resume" kommando. 
           
          Ved indlæsning af specielle, binære testprogrammer fra disc
          anvendes autoload kommandoen således: 
           
          autoload <areal navn' <startadresse' 
           
          der bevirker, at discarealet <areal navn' indlæses i RC8602
          lageret fra celle <start adresse' og frem. OT registeret sættes
          ligeledes til <startadresse'. 
           \f

          Ved normal opstart, hvor tromlen (angivet ved <tromle areal'
          parameter) indeholder det ønskede HJÆLP-system, startes blot ved
          at bruge kommandoen 
           
          hp 
           
          der dels udfører hp-knap aktionen (henter kanal 0 fra tromlen),
          dels starter emulatoren i celle 1. RC8000 terminalen skifter nu
          fra control-mode til GIER-mode, dvs. kommunikationen er nu
          fuldstændig som på GIER indtil vi atter går i controlmode. 
           
          Det skal her indskydes, at selvom det er muligt at betjene RC8602
          rent online, dvs. ved løbende at indtaste alle control-kommandoer
          og GIER-kommandoer, er det langt mere praktisk at have dette
          stående i en jobfil. Det antages derfor i det følgende, at dette
          er tilfældet. 
           
                   Når emulatoren stopper, (terminalen skifter til control-mode), er
          det normale, at kommandoinlæsningen fortsættes fra jobfilen, det-
          te vil vi kalde indlæsning af o_f_f_l_i_n_e_ _k_o_m_m_a_n_d_o_e_r_. Der er nemlig
          mulighed for, under visse omstændigheder, at skifte automatisk
          til online terminalinput, benævnt indlæsning af o_n_l_i_n_e_ _k_o_m_m_a_n_d_o_e_r_
           
          Når RC8602 kører, (terminalen i GIER mode), vil stop, (skift til
          control-mode), ske i følgende tilfælde: 
           
          1. attention til processen. 
          2. udførelse af ZQ ordren. 
          3. debug stop. 
          4. forekomst af tegnet @ i GIER-mode input. 
          5. forsøg på at bruge en ydre enhed uden nogen fil tilkoblet. 
          6. i-løkke (uendelig paranteskæde). 
          7. tom operation, dvs. forsøg på at udføre en ikke eksisterende
          grundoperation. 
          8. tromlefejl, dvs. forsøg på at læse eller skrive på en ikke
               eksisterende kanal. 
          9. hård I/0 fejl i RC8602 devicet. 
           10. hård I/0 fejl under udførelsen af RC8602sim, f.eks. i for-
               bindelse med discakcesser. 
           \f

          I tilfælde 1-3 stoppes der s_y_n_k_r_o_n_t_, dvs. mellem to GIER-instruk-
          tioner. I tilfælde 4-10 stoppes der a_s_y_n_k_r_o_n_t_, dvs. midt under
          udførelsen af en grundoperation (i tilfælde 10 returneres endvide-
          ere til FP, medmindre RC8602sim er kaldt med "trap.yes"). 
           
          Efter disse stop kan kørslen genoptages ved hjælp af kommandoerne
          "hp" eller "resume". "resume" kommandoen kan dog ikke bruges i
          tilfældene 5-10 uden at fejlen er korrigeret, (f.eks. med
          "connect" kommandoen), eller "reset" kommandoen er anvendt. For
          en nærmere beskrivelse af fejlstop, se afsnit 2.5. 
           
          Attention-stop har desuden den specielle virkning, at der skiftes
          til online-mode, dvs. der udsendes et "beep" på terminalen, og
          operatøren kan gribe ind i kørselsforløbet. Samme situation opnås
          også dersom emulatoren i c_o_n_t_r_o_l_-_m_o_d_e_ har problemer ved udførel-
          sen af en kommando fra jobfilen, f.eks p.g.a. syntaksfejl eller
                   ressourcenød. Virkningen kan desuden fremkaldes med overlæg ved
          brug af control-mode kommandoen 
           
          callop <tekststreng' 
           
          Operatøren kan nu overvåge og korrigere kørslen med f.eks. dis-
          play, lookup, release, connect, create kommandoerne. Kørslen kan
          derpå genstartes e_n_t_e_n_ med kommandoen 
           
                              end 
           
          e_l_l_e_r_ med kommandoen 
           
          resume  (eller hp) 
           
          e_n_d_ kommandoen bevirker, at i situationen 
           
          1. Efter attention stop (tilfælde 1 ovenfor) genoptages kør-
          slen uændret 
           
          2. efter fejlbehæftet kommando stop repeteres kommandoen,
                  og - hvis ok - læses der nu videre i jobfilen. Er
                  kommandoen stadigvæk ubrugelig, f.eks. p.g.a.
                  syntaksfejl, kan den i stedet overspringes med "skip
                  kommandoen", se afsnit 2.2.7. 
           \f

          Anvendes i stedet r_e_s_u_m_e_ eller h_p_ kommandoen overspringes den
          fejlbehæftede kommando (ikke relevant efter attention), og kør-
          slen f_o_r_t_s_æ_t_t_e_s_ _i_ _o_n_l_i_n_e_-_m_o_d_e_, dvs. alt efterfølgende input, også
          i GIER-mode, tages fra terminalen. 
           
          Dette vedvarer, indtil operatøren indtaster en "end" kommando,
          hvorved der returneres til jobfilen. Operatøren kan forinden
          overspringe eventuelle overflødige kommandoer i jobfilen med
          "skip" kommandoen. 
           
          E_k_s_e_m_p_e_l_ _2_._2_._1_ 
           
          jobfil kommandoen 
                   *connect 5 va007ka001 
           
          bevirker udskriften: 
           
               ***connect entry not found 
           
          og der skiftes til online-mode. 
           
          Operatøren danner da båndet: 
           
          create 5 va007ka001 
          release 5 
          end 
           
          hvorpå udskriften: 
           
          *connect 5 va007ka001 
           
          signalerer, at kommandoen gentages. (Stjernen foran kommandoen
          angiver, at den er læst fra jobfilen). "release" kommandoen er
          nødvendig, idet "connect" kontrollerer, at stationen er ledig. 
           
          En anden mulighed var anvendelse af "skip" kommandoen: 
           \f

          control: create 5 va007ka001 
           
               skip 
           
          skipped: *connect 5 va007ka001 
          control: end. 
           
          Omgående afstakning kan foranlediges med kommandoen: 
           
          unstack 
           
          hvis der ønskes afstakning i control-mode, dvs. at emulatoren
          straks udfører den næste kommando i jobfilen i modsætning til
          "end", der fortsætter kørslen i GIER-mode. 
           
                   E_k_s_e_m_p_e_l_ _2_._2_._2_: 
           
          Et program udskriver 
           
          jeg venter, til KB bliver sat 
           
          og giver sig til at cykle i løkken 
           
          hvr NKB 
           
          Operatøren har da mulighed for at tvinge kørslen videre ved at-
          tention, efterfulgt af "unstack" kommandoen, forudsat den på det-
          te sted i jobfilen står: 
           
          ka on 
          resume 
           
           \f

2_._2_._3_ _ _ _ _ _K_r_y_d_s_f_e_l_t_e_t_,_ _K_A_/_K_B_,_ _p_r_i_n_t_e_r_ _o_g_ _p_e_r_f_o_r_a_t_o_r_ 2.2.3
           
          Beskrivelse af kommandoerne: 
           
          cf 
          concv, conlp, contp 
          ka, kb 
          relcv, rellp, reltp 
          display (delvis) 
           
          Ved krydsfeltet forstås knapfeltet på det lille kontrolbord på
          GIER, ved hjælp af hvilket man kan styre outputtet til converter
          (plotter), perforator, skrivemaskine og printer. 
           
          Den/de enheder der aktuelt er valgt, defineres ved en kombination
          af by-registerets indhold, hvor bit 3-6 vælger de fire søjler i
          knapfletet, og nedtrykkede knapper i de rækker, der repræsenterer
          de fire output enheder (se ref.1). 
           
                   I emulatoren er der en dimension mere, nemlig de outputprocesser
          i RC8000, som den pågældende række eller rettere udgang er til-
          koblet. 
           
          "cf" kommandoerne har til formål at muliggøre manipulation med
          knapfeltet, hvorimod koblingen til RC8000 styres ved hjælp af
          con- og relkommandoerne. 
           
          E_k_s_e_m_p_e_l_ _2_._2_._3_: 
           
          Ved hjælp af display kommandoen kan man få udskrevet den øjeblik-
          kelige situation, der lige efter opstart, plus "conlp a4tværs"
          ser således ud: 
           
          by-bit:   3  4  5  6  (denne linie udskrives ikke) 
           
          cf    1  0  0  0 
          tp    0  1  0  0 
          tw    0  0  1  0 
          lp    0  0  0  1   a4tværs 168 temp used 
           \f

          KA = OFF 
          KB = OFF 
           
          forkortelserne står for enhederne 
           
          cv:  converter (anvendes også til plotter, "option") 
          tp:  tapepunch (perforator) 
          tw:  typewriter (konsol skrivemaskinen) 
          lp:  linieprinter 
           
          1 symboliserer, at knappen er nedtrykket (aktiv) 
          0 symboliserer, at knappen er oppe (inaktiv). 
           
          Udfor hver enhed angives navnet på den tilkoblede proces, dennes
          areal størrelse og scope, samt status "connected" eller "used".
          "used" betyder, at der er udskrevet mindst t tegn på zonen. Hvor
          der ikke optræder noget procesnavn, er der ikke tilkoblet nogen
          proces. Dette gælder dog ikke tw, der permanent er tilkoblet pri-
          mært output. 
                   Ved hjælp af cf kommandoen, (cf = crossfield), kan knapfeltet
          ændres linie for linie. 
           
          følgende cf kommandoer findes: 
           
          cv 
M_m_m_          tp 
          cf        <nyt knapbillede' 
P_p_p_                    tw
          lp 
           
          cf reset 
           
          samt: 
           
          ka on 
          ka off 
          kb on 
          kb off 
           \f

          For eksempel kan by (6), der normalt bruges ved printeroutput,
          tilkobles skrivemaskinen med kommandoen: 
           
          cf tw 0011 
           
          Dersom printeren samtidig ønskes frakoblet, siges desuden: 
           
          cf lp 0000 
           
          cf reset (reset crossfield) kommandoen initialiserer krydsfeltet
          til standard indstillingen, (svarende til situationen efter op-
          start), og slukker KA og KB. 
           
           
2_._2_._3_._1_ _ _ _P_r_i_n_t_e_r_ _o_u_t_p_u_t_ _(_l_p_._i_s_o_ _o_g_ _c_v_._i_s_o_)_ 2.2.3.1
           
          Udgangene cv og lp vil kunne producere output i enten iso-mode
          eller binær-mode, afhængig af parametrene ved kald af RC8602sim.
          Binær-mode virker som tp-udgangen (se afsnit 2.2.3.2). Nærværende
          afsnit gælder for iso-mode. 
                   Når emulatoren startes, er der ikke tilkoblet outputarealer til
          andet end tw. Forsøg på at skrive på f.eks. printeren vil bevirke
          skift til control-mode med udskriften: 
           
          ***lp not connected 
           
          Kobling til et output areal sker med kommandoerne: 
           
M_m_m_          concv1    1 
          <arealnavn'  <kitnavn'  <papirtype' 
P_p_p_          conlp0    0 
           
          Hvis <arealnavn' findes i forvejen anvendes dette medmindre det
          har scope "system". Hvis ikke, oprettes det temporært på disc>en
          <kitnavn' eller, hvis denne parameter mangler, da på første le-
          dige disc. 
           \f

          Såfremt parameteren <papirtype' anvendes, vil der blive sendt en
          "convert" meddelelse til BOSS, indeholdende <arealnavn' og <papir-
          type' på det tidspunkt, hvor arealet frigives. 
          Angives der ingen papirtype, sendes der ingen convert meddelelse,
          men arealet kan naturligvis stadig udskrives med FP>s "convert"
          kommando. Bemærk, at BOSS ikke accepterer arealer med scope "lo-
          gin" i convert meddelelsen. 
           
          Er <arealnavn' en fildescriptor, f.eks. "lp", anvendes printeren
          direkte, (dersom operativsystemet tilader dette). 
           
          Output arealet kan frigives på tre måder: 
           
          1. Ved brug af kommandoerne 
          rellp, relcv 
           
          2. Ved tilkobling af et nyt areal på den pågældende udgang 
          (conlp, concv) 
           
          3. Ved "terminate" kommandoen. 
           
                   Ved frigivelsen afsluttes outputtet med en EM karakter, zonen
          lukkes, og arealet afreserveres. Desuden sendes en evt. "convert"
          meddelelse til BOSS. 
           
          Angående konverteringstabel og styrekarakterer, se afsnit 3.5 
           \f

          E_k_s_e_m_p_e_l_ _2_._2_._4_ 
           
          conlp a4høj  disc  1 
          resume 
          .         ;  her produceres output til den 
          .         ;  temporære fil "a4høj" 
          . 
          @ 
          conlp a4tværs dk280941; her converteres a4høj
          scope user a4tværs 
          resume 
          .         ;  her produceres output til 
          .         ;  user-filen a4tværs 
          . 
          @ 
          terminate ;  a4tværs lukkes og outputtet bliver 
          ;  liggende til videre behandling. 
           
           
2_._2_._3_._2_ _ _ _P_e_r_f_o_r_a_t_o_r_ _o_g_ _p_l_o_t_t_e_r_o_u_t_p_u_t_ _(_t_p_,_ _l_p_._b_i_n_,_ _c_v_._b_i_n_)_ 2.2.3.2
           
          Udgangen tp kan kun producere output i flextrn mode. Denne repræ-
          sentation anvendes også på lp og cv udgangene, dersom "bin" er
          specificeret i kaldet af RC8602sim. For cv udgangen anvendes dog
          en speciel tabel, den kan ændres ved evt. plotterstyring. 
           
          Når emulatoren startes, er der ikke tilkoblet output arealer til
          andet end tw. Forsøg på at udskrive på f.eks. perforatoren, vil
          bevirke skift til control mode med udskriften: 
           
          tp not connected 
           
          kobling til et output areal sker med kommandoerne 
M_m_m_             concv1 
          conlp     <arealnavn'  <kitnavn' 
P_p_p_          contp0 
           \f

          Hvis <areal navn' findes i forvejen anvendes dette, medmindre det
          har scope "system". Hvis ikke, oprettes det temporært på disc>en
          <kitnavn' eller, hvis denne parameter mangler, da på første le-
          dige disc. 
           
          Anvendes i stedet for <arealnavn' en fildescriptor, f.eks. tpn,
          udhulles der en GIER-kompatibel strimmel i u_l_i_g_e_ paritet på den
          pågældende enhed. 
           
          Output-arealet eller -enheden kan frigives ved den tilsvarende
          rel- kommando, (relcv, rellp, reltp), tilkobling af et andet are-
          al med den tilsvarende con-kommando (concv, conlp, eller contp),
          eller ved "terminate". 
           
          Ved frigivelsen afsluttes outputtet med en NUL karakter, zonen
          lukkes og arealet afreserveres. 
          Der sendes aldig nogen "convert" meddelelse til BOSS. 
           
          B_e_m_æ_r_k_ ! Anvendes der fysisk perforator (tpn) må strimmelen ikke
          afrives før outputenheden er frigivet. 
           
           
2_._2_._4_ _ _ _ _ _S_t_r_i_m_m_e_l_l_æ_s_e_r_ 2.2.4
           
          Beskrivelse af kommandoerne: 
           
          contr 
          reltr 
          reset (delvis) 
           
          Før indlæsning fra den emulerede strimmellæser anvendes komman-
          doen: 
M_m_m_          <areal navn' 
          contr 
P_p_p_           trn 
                   Dersom <arealnavn' angives checkes det, at der findes et discare-
          al med dette navn, og at det indeholder et strimmelbillede (con-
          try = 17.0, flextrn), hvorpå arealprocessen initialiseres. 
           \f

          Angives trn (=tapereader no parity) anvendes den fysiske strim-
          mellæser. Læseren tømmes for evt. gammelt input, og der udskrives
          en operatørmeddelelse: 
           
          load reader 
           
          hvorpå strimmelen lægges i læseren og der trykkes på RESET knap-
          pen. 
           
Input arealet, (eller læseren), frigives ved kommandoen: 
           
          reltr 
           
          eller ved en ny contr kommando. 
           
          Hvis GIER programmet udfører en LY ordre på læseren, uden at no-
          get input er tilkoblet, udskrives: 
           
          ***tr not connected 
           
          Hvis programmet derimod prøver at læse flere karakterer, end der
          er på den aktuelle strimmel, udskrives meddelelsen: 
           
          ***reader exhausted 
           
          hvorpå input arealet frigives, og evt. efterfølgende LY ordrer,
          (efter resume), vil give den ovenfornævnte reaktion (***tr not
          connected). 
           
          I begge de nævnte tilfælde foretages et asynkront stop, og termi-
          nalen skifter til dp-mode. Situationen svarer til, at GIER
          "hænger" i en LY ordre og venter på læseren. 
           \f

                   Operatøren har nu følgende muligheder: 
           
          1. Tilkoble et nyt input areal, (eller læseren igen), med
                  "contr" kommandoen, og derpå taste "resume", hvorved der
                  læses videre fra den nye fil. 
                   
               2. Simulere strimmelslut. 
                  Visse indlæseprogrammer, f.eks. i edit og gierløn, mulig-
                  gør signalering af strimmelslut ved hjælp af kommandoføl-
                  gen 
                   
                  reset 
                  resume 
                   
               3. Returnere til HJÆLP ved kommandoen: 
                   
                  hp 
                   
                  der svarer til tryk på hp-knappen. 
                   
          Det skal bemærkes, at ovenstående lige så godt kan styres af en
          jobfil i det omfang, man ved konstruktionen af jobfilen kan for-
          udsige hændelsesforløbet for indlæsningen. 
           
          Da strimler altid indlæses til disc>en i no-parity mode vil der
          blive lagret et fuldstændigt billede af strimmelen. Afhængigt af
          by-registerets indhold checkes pariteten ved indlæsning i RC8602
          (LY ordren), og hvis der detekteres paritetsfejl udskrives: 
           
          str. læs. par.fejl 
           
          Men - modsat GIER - fortsættes kørslen. 
           \f

                   E_k_s_e_m_p_e_l_ _2_._2_._5_ 
           
          Et flextrn areal genereret med perforatorudgangen, kan udhulles
          med følgende simple kopierings program: 
           
          contr flexfil 
          contp tpn 
          hp 
          Vy 32, lyr1 
          sy, hhr-1 
          e_ 
          terminate 
           
          Ønskes arealet i stedet udskrevet på printeren, ændres sy32 blot
          til sy8 (standard krydsfelt forudsættes), og contp kommandoen
          erstattes af: 
           
          conlp flexiso disc 0 
           
          Nu konverteres printerudgangen automatisk outputtet til iso tegn,
          og lader "Boss" udskrive dette på papirtype 0. 
           
          Den samme konvertering kan dog også laves under FP med programmet
          "convertdata", (se appendiks C).
 
           
2_._2_._5_ _ _ _ _ _B_å_n_d_s_t_a_t_i_o_n_s_ _k_o_m_m_a_n_d_o_e_r_ 2.2.5
           
          Beskrivelse af kommandoen: 
           
          connect 
          create 
          release 
          ring 
          display (delvis) 
           
          RC8602 kan behandle ialt seks båndstationer (emulerede), nummere-
          ret fra 1 til 6, (stations no.). 
           \f

                   Båndene repræsenteres ved specielt formatterede discarealer.
          Arealindgangene i kataloget beskriver dels, at det drejer sig om
          et RC8602 bånd, dels de særlige attributter: skrivning og
          densitet. (se afsnit 3.9.2). 
           
          "Båndmontering" foregår ved at tilkoble et sådant discareal til
          n ud af de seks båndstationer. "Afmontering" sker ved tilsvar-
          ende at frigive det pågældende discareal. 
           
          Tilkobling til et eksisterende areal sker med kommandoen 
           
          connect <stations no.' <areal navn' 
           
          Dersom <areal navn' ikke eksisterer, udskrives en fejlmeddelelse,
          og der skiftes til online-mode, så operatøren kan gribe ind. 
           
          Det samme sker, hvis der i forvejen var monteret et andet bånd på
          den pågældende station, eller det pågældende bånd allerede er
          monteret på en anden station. Det checkes desuden, at katalogind-
          gangen beskriver et RC8602 emuleret bånd. 
           
          Antallet af samtidigt monterede bånd må ikke overstige værdien af
          <tapes' parameteren ved kaldet af RC8602sim, normalt 4. 
           
          Dersom der er specificeret skrivning i katalogindgangen, reser-
          veres arealet for eksklusiv acces, i modsat fald initialiseres
          det blot for input (f.eks. kan er systembånd benyttes af flere
          RC8602 brugere på samme tid). 
           
          Hvis der ønskes monteret et tomt bånd (arbejdsbånd, eller ved
          dannelse af et nyt sagsbånd), anvendes kommandoen: 
           
M_m_m_          1     1
          create <stations no' <areal navn'  <kitnavn'  <segmenter' 
P_p_p_          00
           
          Denne kommando forudsætter, at der ikke i forvejen findes et
          areal med det pågældende navn, og at der ikke er monteret noget
          bånd på den pågældende station. \f

                   Virkningen af "create kommandoen" er iøvrigt, at 
           
          1. Der dannes et discareal med navnet <areal navn' 
           
          2. Det dannede areal er af størelsen 504 segmenter med
                  mindre, der i <segmenter' er angivet en anden størrelse. 
           
          3. Det dannede areals katalogindgang angiver skrivning og
                  høj densitet. Endvidere sættes dato og klokkeslet i ind-
          gangen. 
           
          4. Det pågældende areal initialiseres til at indeholde 10
          dummyblokke i ulige paritet. 
           
          5. Det pågældende areal betragtes som et bånd monteret på
                  station <stations nr' som om "connect" kommandoen havde
                  været anvendt. 
           
          Create kommandoen checker, at der ikke allerede findes en indgang
          af det pågældende navn. Dersom der gør dette, udskrives 
           
          create entry already exists 
           
          hvorpå der skiftes til online mode uden, at der er blevet monte-
          ret nogen bånd på den pågældende station. 
           
          Når et bånd er monteret (discarealet tilkoblet) en station, kan
          det kun afmonteres ved 
           
          1. "release" kommandoen 
          2. GIER instruktionen US p 96 
          (rewind and unload) 
           
          Release kommandoen specificerer båndstationen: 
           
M_m_m_                   4 
                  release   <stations nr' 
P_p_p_          1 \f

                   Dersom der forsøges skrivning på et bånd uden skriveringsmarke-
          ring, udskrives 
           
          no ring on unit <stations nr' 
           
          og emulatoren går i control mode. 
           
          Skriveringsmarkeringen kan ændres med kommandoen: 
           
M_m_m_          off 
          ring <stationsno.' 
P_p_p_          on 
           
          "ring" kommandoen kan altså kun anvendes på monterede bånd. 
           
          Det skal bemærkes, at ved "ring <stationsno.' on" reserveres a-
          realet for eksklusiv acces. Dette kan afstedkomme fejl, hvis a-
          realet i forvejen bruges af andre RC8602, eller arealet har "sy-
          stem" scope. 
           
          "display" kommandoen udskriver en oversigt over de monterede bånd
          samt læser, krydsfelt, og KA/KB status. 
           
          E_k_s_e_m_p_e_l_ _2_._2_._6_ 
           
          Efter kommandoerne: 
           
           connect 5 giersys 
          create 1 arb1 
          create 2 arb2 dk230101 2000 
           
          vil "display" kommandoen give følgende udskrift: 
           
                  unit 1 arb1      504  temp    we 
          unit 2 arb2      2000 temp    we 
          unit 5 giersys   638  project pr 
           
          hvor skriveringsmarkeringen er angivet ved "we" (write enable)
          eller "pr" (protected). \f

         2_._2_._6_ _ _ _ _ _K_o_m_m_a_n_d_o_e_r_ _f_o_r_ _k_a_r_r_u_s_e_l_ _o_g_ _b_u_f_f_e_r_d_i_s_c_ 2.2.6
           
          Karrusel og bufferdisc emuleres ved discarealer ligesom båndene,
          og kommandoerne er derfor som beskrevet i foregående afsnit, dog
          med følgende modifikationer: 
           
          1. Karrusellen 
             <stations no.' skal være 7. Dersom parameteren <segmenter' i
             create kommandoen udelades, reserveres 4096 segmenter svarende
             til et komplet sæt (64) spoler. 
              
          2. Bufferdisc>en 
             <stations no.' skal være 8. Dersom parameteren <segmenter' i
             create kommandoen udelades, reserveres 10150 segmenter svar-
             ende til en standard disc på 203 cylindre. Den maksimalt a-
             dresserbare discstørrelse svarer til 20480 segmenter. Create
             kommandoen initialiserer desuden alle de reserverede segmenter
             til bloklængde nul. 
           
          <ring' kommandoen vil ændre katalog indgangen, men er iøvrigt
          blind på karrusel og bufferdisc (skrivning altid tilladt). 
           
           
2_._2_._7_ _ _ _ _ _K_o_m_m_a_n_d_o_e_r_ _f_o_r_ _j_o_b_f_i_l_ _a_d_m_i_n_i_s_t_r_a_t_i_o_n_ 2.2.7
           
          Beskrivelse af kommandoerne: 
           
          cmd 
          ifbit 
          ifmess 
          modebit 
          oldmess 
          skip 
           
          Disse kommandoer er primært beregnet på at kunne lette kørselsaf-
          viklingen ved automatisk, jobfilstyret kørsel. 
           \f

                   Hvis man har kommandosekvenser, der bruges hyppigt, eller flere
          steder i samme jobfil, kan man lagre disse i en anden fil. Denne
          fil kan så kaldes som en slags subroutine med kommandoen 
           
                    cmd <areal navn' 
           
          der bevirker, at kommando inputtet stakkes, (som med FP kommando-
          en "i"), og der læses videre fra <areal navn' indtil "end" kom-
          mandoen mødes, eller filen termineres med EM. 
           
          En typisk anvendelse er et kompleks af iøvrigt faste jobfiler,
          hvor en enkelt linie, f.eks. datoen, ændres fra kørsel til kør-
          sel. Datoen lagres da i en fælles fil: 
           
          E_k_s_e_m_p_e_l_ _2_._2_._7_ 
           
          typeout: start dato: @ 
          control: cmd dato 
          * resume 
          typein:  * 27.12.79læst fra filen 
          typeout: er dato ok j,n @  "dato" 
          *end 
          resume 
           
          I lighed med FP>s modebits findes der i RC8602 en intern variabel,
          hvori brugeren kan sætte en eller flere bits, og senere spørge på
          disse.  Kommandoen: 
M_m_m_           off 
          modebit <bitnr' 
P_p_p_          on 
              
          nulstiller eller sætter n af de 24 modebits, (<bitnr' = 0... 23).
          Ved start af emulatoren initialiseres alle modebits til nul. Med
          kommandoen: 
M_m_m_          and1 
          ifbit  <bitnr'    <bitnr' 
P_p_p_          or0 
           \f

                   kan man spørge på modebits. Virkningen afhænger af situationen,
          hvori kommandoen udføres: 
              
          1. "ifbit" kommandoen tages fra jobfilen: 
          Den næste linie i jobfilen overspringes, dersom den, (eller
             de), valgte bit ikke er sat. 
           
          2. "ifbit" kommandoen indtastes online: 
          Der udskrives numrene på de modebits, der er sat, hvorimod der
             ikke skippes i jobfilen. 
           
          Ofte kommer man ud for, at GIER-programmet styrer kørselen ved
          hjælp af operatør konversation, idet der stilles et spørgsmål,
          som skal besvares. Er rækkefølgen af spørgsmålene ikke helt fast,
          kan det være en fordel at kunne spørge på indholdet af den sidst
          udskrevne GIER linie, (typeout). Dette kan gøres med kommandoen 
           
M_m_m_          1 
                    ifmess  <tekststreng' 
P_p_p_          0 
           
          Virkningen afhænger af situationen: 
           
          1. "ifmess" kommandoen tages fra jobfilen: 
          Den næste linie i jobfilen overspringes, dersom den specifice-
             rede streng er forskellig fra begyndelsen af den sidste GIER
             output linie. Eventuelle mellemslag i liniens start medregnes,
             ligesom der skelnes mellem store og små bogstaver. Tomme
             linier ignoreres. 
              
          2. "ifmess" kommandoen indtastes online: 
             Uanset indholdet af <tekststreng' udskrives indholdet af
             sidste GIER output linie. 
              
          Som supplement til "ifmess" findes kommandoen  
              
M_m_m_             1 
                    oldmess  <tekststreng' 
P_p_p_             0 \f

                   der virker på samme måde, men på n_æ_s_t_s_i_d_s_t_e_ GIER-output linie. 
                    
          Virkningen af "ifbit", "ifmess" og "oldmess" kommandoerne kan
          forstærkes ved at anvende dem foran kommandoen 
           
M_m_m_                     1     1 
                    skip  <antal linier'  <værdi' 
P_p_p_          00 
           
          der bevirker, at n eller flere af de følgende linier i jobfilen
          overspringes. Bemærk, at linierne overspringes uden hensyntagen
          til, om de er beregnet for input i control mode eller GIER-mode. 

           
          Anvendes der ikke parametre, overspringes den næste linie.
          Anvendes <antal linier' overspringes et tilsvarende antal linier,
          idet tomme linier ikke medregnes. 
           
          Parameteren <værdi' bevirker, at oversprungne linier kun
          medregnes, såfremt de indeholder en tegngruppe, specificeret ved
          <værdi' efter følgende regel: 
             <værdi' <_= 96: linien skal indeholde et tegn med isoværdien
             <værdi'. Værdien i intervallet 48 ... 57 (dvs. tallene 0 ... 9
             må dog ikke anvendes. 

             <værdi' ' 96: linien skal indeholde et heltal med værdien
             <værdi'. Tallet må i_k_k_e_ indgå i en tekst, f.eks. et arealnavn.
              
          E_k_s_e_m_p_e_l_ _2_._2_._8_ 
           
          modebit 3 on 
          ifbit 3        ; den næste linie udføres 
          ifbit 3 and 4  ; den næste linie overspringes 
           \f

          E_k_s_e_m_p_e_l_ _2_._2_._9_ 
           
          typeout: hp-knap 32 
          @ 
                   ifmess hp-knap       ; den næste linie udføres 
                             ifmess hp-knap 32   ; den næste linie udføres 
                    ifmess hp-knap 32 x ; den næste linie overspringes 
           
          E_k_s_e_m_p_e_l_ _2_._2_._1_0_ 
           
          skip 1 1010 
          skipped: dk121010 
          skip 2 63   ; 1010: 
          control: hp 
           
          Ovenstående sekvens skipper til og med linien indeholdende
          "1010:", idet dk121010 betragtes som et navn. 
           
          Bemærk, at der ikke må forekomme kommentarer i "ifmess" komman-
          doen, idet disse vil blive opfattet som en del af tekststrengen. 
          Strengen bør endvidere ikke indeholde brudstykker af navne, f.eks
          ville i eksempel 2.2.9 kommandoen 
           
          ifmess hp 
           
          måske, måske ikke, overspringe den følgende linie. 
           
          E_k_s_e_m_p_e_l_ _2_._2_._1_1_ 
           
          Overspringelse af 5 linier, dersom modebit 7 ikke er sat: 
           
          ifbit 7 
          skip 
          skip 5 
           
           \f

2_._2_._8_ _ _ _ _ _U_t_i_l_i_t_y_ _k_o_m_m_a_n_d_o_e_r_ 2.2.8
           
          Beskrivelse af kommandoerne: 
           
          claim 
          display (delvis) 
          list 
          lookup 
                   opmess 
          remove 
          rename 
          scope 
           
          Disse er hjælpekommandoer, der såvidt muligt virker på samme måde
          som under BOSS eller FP. kommandoen 
           
          claim 
           
          bevirker en listning af processens øjeblikkelige ressourcer, især
          segmenter og indgange, der er ledige på systemdisken og de i
          øjeblikket monterede sags- og arbejdskit. 
           
          kommandoen 
           
M_m_m_                           1 
          display  time 
P_p_p_          0
 
          udskriver en tabel over tilkoblede filer på emulatorens ind/ud-
          gange (se afsnit 2.2.3 og 2.2.5). Medtages "time" parameteren,
          udskrives dog i stedet den løbende værdi af tællerne for
          disctransporter, tidsforbrug m.m. som ved "terminate" kommandoen
          (se afsnit 2.2.10). 
           
          Ved opstart af emulatoren sættes list mode svarende til FP-bitten
M_m_m_                                 yes 
                    mode list. 
P_p_p_                          no 
          Listmode bevirker, at online indtastede kommandoer gengives i
          primout af hensyn til evt. senere gennemgang af kørselsforløbet.
          Listmode kan ændres med kommandoen  
M_m_m_           \f

                           off 
          list    
P_p_p_                              on 
           
          Listmode har ingen virkning for kommandoer taget fra jobfilen,
          disse listes ubetinget. 
                   kommandoen 
           
M_m_m_          4 
          lookup  <filnavn' 
P_p_p_          1 
           
          virker som den tilsvarende FP-kommando. Bemærk dog, at hvis der
          findes flere indgange med samme navn udskrives k_u_n_ den, der har
          det mindste baseinterval, dvs. hvis indgangen findes både med
          scope "temp" og scope "user", udskrives kun temp indgangen. 
          Ved lookup af discarealer indeholdende emulerede bånd eller
          strimmelbilleder, dvs. contry = 17.xyz, udskrives contry på for-
          men 
           
          17.flextrn     (strimmelbillede) 
          17.we.hi       (emuleret bånd m/skrivning) 
          17.pr.hi       (emuleret bånd u/skrivering) 
          17.carousel    (emuleret karrusel) 
          17.bufferdisc  (emuleret bufferdisc) 
           
          kommandoen 
           
          opmess <tekststreng' 
           
          er blind, mess kan anvendes til at udskrive en operatørmeddelelse
          på skærmen ved "runjob" kørsel under BOSS. 
           
          kommandoen 
M_m_m_          4 
                    remove   <filnavn' 
P_p_p_          1 
           
          bevirker at de specificerede filer fjernes. Dersom der angives et
          <filnavn' der eksisterer med flere scopes fjernes kun det nærme-
          ste (det der har det mindste baseinterval). Hvis <filnavn' er et
          båndareal, et karruselareal, eller et bufferareal, fjernes det
          ikke, hvis det er tilkoblet en station. 
           \f

                   kommandoen 
           
          rename <gl.navn' <nyt navn' 
           
          er helt analog med den tilsvarende BOSS kommando, dog med samme
          check som i "remove" kommandoen. 
           
          Kommandoen 
           
          scope <nyt scope' <arealnavn' 
           
          virker helt analogt med BOSS kommandoen af samme navn. 
           
           
2_._2_._9_ _ _ _ _ _K_o_n_t_r_o_l_b_o_r_d_s_ _o_g_ _d_e_b_u_g_g_e_r_ _k_o_m_m_a_n_d_o_e_r_ 2.2.9
           
          Beskrivelse af kommandoerne: 
           
          breakpnt 
          hp (delvis) 
          lp 
          print 
          put 
          regprint 
          resume (delvis) 
          table 
          testbit 
          trace 
          ot =, ac =, mq =, p =, s =, 
          by =, in =, tk =, h =, 
           
          De nævnte kommandoer har til formål at erstatte det s_t_o_r_e_ kon-
          trolbord på GIER. 
          De giver således mulighed for at udlæse samtlige registre, at
          ændre disse, læsning og skrivning i lageret, samt kontrolleret
          udførelse af et antal instruktioner. Da disse funktioner for-
          trinsvis bruges ved fejlsøgning, er der konstrueret nogle særlige
          kommandoer, som letter dette. For eksempel kan man få udført 100
          instruktioner, hvor man for hver instruktion får udskrevet udvalgte
                   registre, hvorpå RC8602 stopper igen. 
           \f

          Kommandoen 
           
M_m_m_          1 
               breakpnt <første adresse'  <top adresse' 
P_p_p_          0 
           
          bevirker, at RC8602 køres i "supervision mode" og "debugging
          mode". Der er tre forskellige muligheder: 
           
               1. breakpnt <første adresse' 
                  <første adresse' = 0. Annullerer breakpoint mekanismen. 
                   
               2. breakpnt <første adresse' 
                  <første adresse' ' 0. Bevirker synkront stop (som ved
                  ZQ), hvis der udføres instruktioner i <første adresse'.
                  Ved stoppet udskrives teksten 
                   
                  breakpoint <OT-værdi' 
                   
               3. breakpnt <første adresse' <top adresse' 
                  Der fås breakpoint stop som nævnt i punkt. 2, men for
                  alle instruktioner, der udføres med <første adresse' <_ OT
                  < <topadresse'. 
                  Hvis der samtidig anvendes <resumecount' eller "regprint"
                  fås en speciel virkning, se nedenfor. 
                   
          Kommandoen 
                   
M_m_m_                                                               1     1 
                  print <første celle'  <sidste celle'  <reg' 
P_p_p_                                                                  0     0 
                   
          bevirker, at lagerområdet fra <første celle' til <sidste celle'
          udskrives som instruktioner og som 10-bits heltalsgrupper. <reg'
          parameteren bevirker endvidere udskrift af samtlige registre. De
          to store registre (AC, MQ) trykkes som oktale tal, alle andre
          registre og adresser som decimale heltal. 
                   Kommandoen 
M_m_m_                                   4 
                  regprint  <reg' 
P_p_p_                                      0 
                   \f

          specificerer de registre, der vil blive udskrevet af debuggeren.
          <reg' kan være. 
                          
                  std, all, ot, ac, mq, 
                       p, s, by, in, tk, h, instr 
                   
          idet "all" betyder trykning af samtlige registre, "std" betyder
          trykning af registrene ot, ac, mq, p, s, samt instr, der er den
          instruktion, at peger på. 
                   
          De valgte registre kan annulleres ved at anvende "regprint"
          kommandoen uden parametre. 
           
          En anden facilitet i debuggeren er anvendelsen af "resume"
          kommandoen med en eller to parametre, (resumecount): 
           
          1    1 
               resume  <antal instruktioner'  <interval' 
          0    0 
           
          Denne kommando muliggør udførelse af et antal instruktioner,
          hvorpå maskinen stoppes. Antallet er lig med <antal
          instruktioner' eller, hvis også <interval' angives, da <antal
          instruktioner' *<interval'. Desuden udskrives det løbende antal
          udførte instruktioner hver gang dette passerer et multiplum af
          <interval' * 100000. 
           
          <interval' angiver desuden intervallet mellem register udskrif-
          terne i debuggeren (se nedenfor). 
           
                   hp-kommandoen kan anvendes med samme parametre som "resume".
          Overvågningen begynder da, når der, efter at selve hp-aktionen er
          udført, hoppes til celle 1. 
           \f

          Testoutput, der genereres ved hjælp af "print", "regprint", "re-
          sume" og "hp" kommandoerne udskrives normalt på current output.
          Hvis dette er uønsket, f.eks. på grund af mængden af udskrifter,
          kan testoutputtet styres ud på printeren med kommandoen 
           
                    lp on 
           
          der under s bevirker, at printeren reserveres. Under BOSS anvend-
          es et disc areal, og ved kommandoen 
           
          lp off 
           
          sendes en "convert" meddelelse til BOSS. "lp" kommandoen kan også
          benyttes ved testoutput fra bånddriveren ("trace" og "testbit",
          se neden for). 
           
          Virkningen af kommandoerne "breakpnt", "regprint" og "resume" af-
          hænger af, hvorledes disse kombineres. Kombinationerne fremgår af
          omstående tabel, her skal desuden anføres nogle eksempler: 
           
          E_k_s_e_m_p_e_l_ _2_._2_._1_2_ 
           
          Ønskes breakpoint stop i celle 456, svarende til, at der er tryk-
          ket "normalt stop" eller udført en ZQ ordre i denne celle, bruges
          kommandoen: 
           
          breakpnt 456 
           
          Før udførelse af celle 456 stoppes med udskriften 
           
          debug stop ot = 456 
           
          Man kan nu afstille breakpoint adressen med kommandoen 
           
                    breakpnt 0 
                   og genstarte med "hp" eller "resume". 
           \f

          E_k_s_e_m_p_e_l_ _2_._2_._1_3_ 
           
          Der ønskes udført 5 instruktioner, efterfulgt af stop: 
           
                    resume 5 
           
          Dersom der samtidigt ønskes udskrift af de løbende værdier af OT
          registeret (r1) og den instruktion, OT peger på, anvendes komman-
          doen 
           
                    regprint p instr 
           
          forinden ovennævnte "resume 5" kommando. 
           
          E_k_s_e_m_p_e_l_ _2_._2_._1_4_ 
           
          For alle instruktioner, der udføres i intervallet 100-107, ønskes
          OT (=r1), P, AC (=R) og MQ registrene udskrevet på printeren.
          Dette opnås ved følgende kommandoer: 
           
          regprint ot p ac mq 
          breakpnt 100 108 
          lp on 
          resume 
           
           \f

                   Beslutningstabel for debuggerkommandoer 
           
          B_e_t_i_n_g_e_l_s_e_r_:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _1_ _2_ _3_ _4_ _5_ _6_ _7_ _8_ _9_ _1_0_ _1_1_ _1_2_ _ 
          *_r_e_s_u_m_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _x_ _x_ _x_ _x_ _x_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          r_e_s_u_m_e_ _<_n_o_._o_f_ _i_n_s_t_r_u_c_t_i_o_n_s_'_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _x_ _x_ _x_ _ _x_ _ _x_ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          *_b_r_e_a_k_p_n_t_ _0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _x_ _ _ _ _ _ _ _ _ _x_ _x_ _ _ _ _ _ _ _ _ _ _ _ _ 
          b_r_e_a_k_p_n_t_ _<_a_d_r_e_s_s_'_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _x_ _ _ _ _ _ _ _ _ _x_ _x_ _ _ _ _ _ _ _ _ 
          b_r_e_a_k_p_n_t_ _<_a_d_r_1_'_<_a_d_r_2_'_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _x_ _ _ _ _ _ _ _ _ _ _x_ _ _x_ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          *_r_e_g_p_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _ _ _x_ _ _ _x_ _ _ _x_ _ _ _x_ _ _ _ _x_ _ _ _ _ _ 
          r_e_g_p_r_ _<_r_e_g_i_s_t_e_r_ _n_a_m_e_s_'_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _ _ _x_ _ _ _x_ _ _ _x_ _ _ _ _x_ _ _ _ _x_ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          A_k_t_i_o_n_e_r_:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          N_o_r_m_a_l_ _k_ø_r_s_e_l_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _x_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          S_u_p_e_r_v_i_s_i_o_n_ _m_o_d_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _x_ _x_ _x_ _x_ _x_ _x_ _x_ _ _x_ _ _x_ _ _ 
          C_o_u_n_t_ _m_o_d_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _x_ _x_ _x_ _ _x_ _ _x_ _ _ 
          t_r_y_k_n_i_n_g_ _a_f_ _s_e_l_e_k_t_e_r_e_d_e_ _r_e_g_i_s_t_r_e_:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _u_a_f_h_æ_n_g_i_g_ _a_f_ _O_T_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _ _ _x_ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _h_v_i_s_ _a_d_r_1_ _<_=_ _O_T_ _<_a_d_r_2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _ _ 
          b_r_e_a_k_p_o_i_n_t_ _s_t_o_p_:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _O_T_ _=_ _a_d_d_r_e_s_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _x_ _ _ _ _ _ _ _x_ _x_ _ _ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _a_d_r_1_ _<_=_ _O_T_ _<_a_d_r_2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x_ _ _ _ _ _ _ _ _ _x_ _ _ _ _ _ _ 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          *_s_v_a_r_e_r_ _t_i_l_ _s_i_t_u_a_t_i_o_n_e_n_ _e_f_t_e_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          o_p_s_t_a_r_t_ _(_n_o_r_m_a_l_ _k_ø_r_s_e_l_)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \f

                   Kommandoen 
           
M_m_m_                     1     1 
                    table  <første celle'  <sidste celle' 
P_p_p_           0     0 
           
          udskriver udvalgte dele af RC8602 tabellen. Vedrørende indholdet
          af denne henvises til mikroprogram beskrivelsen for RC8602.
          Bruges ved fejlsøgning. 
           
          Kommandoen 
M_m_m_          off 
          testbit <bitno' 
P_p_p_          on 
           
          nul- eller eetstiller bit <bitno' i en testmaske. Kommandoen bru-
          ges til generering af testoutput fra forskellige dele af RC8602
          systemet. Bittene har følgende funktioner: 
           
               0  Dynamisk check af konsistensen af RC8602 tabellen 
           
          12  Udskrift af samtlige operationer på bånd, karrusel og
                  bufferdisc. Hvis nogle af bittene 1-11 også er sat, ud-
                  skrives kun operationerne på de tilsvarende units. 
           
          23  Testoutput fra tromle administrationen. 
           
          Kommandoen 
           
m_m_m_                     4 
                    trace  <unitno' 
P_p_p_           0 
           
          bevirker, at de sidste otte operationer på båndstationer, karru-
          sel og bufferdisc bliver udskrevet. Hvis der anvendes parametre,
          udskrives kun operationerne på de specificerede <unitno'. Dersom
          der ønskes udskrevet mere end de sidste otte operationer, kan
          dette angives ved kaldet af RC8602sim med parameteren 
           
                   testsize. <antal operationer' 
           \f

          hvorved der afsættes en større buffer. Bemærk, at dette kan
          medføre behov for en større proces. 
           
          Output genereret ved hjælp af testbit 1-12 samt "trace" kommando-
          en, kan dirigeres ud på printeren med "lp" kommandoen som nævnt
          ovenfor. 
           
           
2_._2_._1_0_ _ _ _ _N_e_d_l_u_k_n_i_n_g_ 2.2.10
           
          Beskrivelse af kommandoerne: 
           
          kill 
          terminate 
           
          Ved afslutning af en RC8602 kørsel anvendes kommandoen 
           
          terminate 
           
          som bevirker, at samtlige tilkoblede filer lukkes og afreserve-
          res. Derpå udskrives en statistik over forbrugte disc accesser og
          sekunder, i denne rækkefølge: 
           
          drum:  <antal discaccesser fra virtual tromle' 
          tapes: <antal discaccesser til emulerede bånd' 
          cpu  : <antal forbrugte CPU sekunder (i RC8602)' 
          i/o  : <antal forbrugte CPU sekunder (i RC8000)' 
               real : <forbrugt kalendertid i sekunder' 
           \f

          Tilslut returneres til FP som et normalt utility program. 
          Dersom operatøren i en fejlsituation ønsker at afbryde kørslen
          omgående, anvendes kommandoen 
           
          kill 
           
          der omgående afslutter kørslen. Eventuelt tilkoblede filer lukkes
          ikke, resten af jobfilen ignoreres, og hvis der køres under BOSS
                   sendes en "finis" meddelelse. 
           
           
2_._3_ _ _ _ _ _ _ _T_e_k_n_i_k_e_r_p_a_n_e_l_e_t_ 2.3
           
          Dersom RC8602 er udstyret med et teknikerpanel, kan man ved hjælp
          af dette få display af samtlige registre og lagerceller samt
          RC8602 tabellen, uden at gribe ind i kørslen. 
           
          De eneste lamper og knapper, der er relevante, er de to inderste
          rækker (længst fra betragteren). D_e_ _ø_v_r_i_g_e_ _k_n_a_p_p_e_r_ _m_å_ _i_k_k_e_ _b_e_-
          r_ø_r_e_s_, da der så er stor risiko for, at RC8602 går i stå. Sker
          dette alligevel, eller er mikroprogrammet af anden årsag (evt.
          hardware fejl) gået i stå, kan det genstartes med "reset" knappen
          forrest til venstre, men en evt. igangværende kørsel kan ikke
          reddes. 
           
          De to omtalte rækker består af 24 data knapper og tilhørende
          datalamper, nummereret 0-23, samt 6 register-selektor knapper. 
           
          Dataknapperne 0-4 muliggør valg mellem fem hovedfunktioner, og de
          øvrige dataknapper samt register selektoren muliggør detaljeret
          valg af register eller lagercelle som beskrevet i omstående
          tabel: 
           \f

          Data knap (0:4)               Funktion 
           
          00000Display af lagercellen med den adresse, der
                           angives af data-knap (12:21), samt knap 22, der
                           vælger mellem celler venstre og højre halvdel. 
           
          1XXXX          Display af det register, der er valgt med regi-
          sterselektoren. De mest interessante registre er
           
          registeroktal adresse 
           
          OT (r1)                01 
          P                      02 
          s                      05 
                   in                     06 
          AC(40:41)              13 
          AC (R)                 14, 15 
          MQ (M)                 16, 17 
          by                     20 
          tk                     21 
           
                           eventstatus            30 
           
          Angående de eksakte register formater henvises
                           til mikroprogram listningen. 
           
          01XXX          Display af arbejdende enheder. En lampe for hvor
                           ydre enhed viser, om der foregår operationer på
                           denne, evt. om den venter på en "connect"
                           kommando eller lignende. 
                            \f

                           lampe no 
                           1     båndstation nr 1 
                           2     -           -  2 
                           3     -           -  3 
                              4     -           -  4 
                              5     -           -  5 
                              6     -           -  6 
                              7     karrusel 
                              8     bufferdisc 
                            
                             12     strimmellæser 
                             13     skrivemaskine input 
                             14     converter/plotter 
                             15     perforator 
                             16     skrivemaskine output 
                             17     printer 
                            
                           19     tromle (lyser kun, hvis disctransporter
                                    er involveret). 
                            
            001XX          Tromlens prioritets tæller. Tælleren arbejder
                           ved samtlige tromle transporter 
                     0001X          Med de øvrige dataknapper kan der vælges ord i
                           RC8602 tabellen. Se mikroprogramlistningen. 
                            
            00001          Ikke benyttet. 
                            
                            \f

2_._4_ _ _ _ _ _ _ _O_v_e_r_s_i_g_t_ _o_v_e_r_ _I_/_0_ _s_y_s_t_e_m_e_t_ 2.4
           
          Emulatorens i/o system kan opfattes som bestående af et antal
          kanaler, der benævnes: 
           
          tr  (tape reader) 
          tp  (tape punch) 
          tw  (type writer) 
          cv  (converter) 
          dt  (disc emulerede tapes) 
           
          Hver af de nævnte kanaler arbejder i et bestemt format, som vist
          på omstående skema. 
          Ved hver kanal er angivet den anvendte kode, samt contry for de
          tilsvarende discarealer. 
          contry = 0 er normale ISO tekst arealer, contry = 17.0 er den
          såkaldte flextrn kode, dvs. et nøjagtigt billede af en 8-kanal
          strimmel incl. paritetsbit, og termineret med en NUL karakter.
          17.15 er de specielle kædeformatterede filer, der benyttes til at
          emulere magnetbånd. 
           
          Lp- og cv udgangene arbejder normalt i ISO kode, men kan ved
          kaldet af RC8602sim omdefineres til flextrn med parametrene
          lp.bin hhv. cv.bin. 
           
          Emulatorens læserindgang arbejder kun i flextrn, og kan således
          læse filer genereret med tp udgangen eller cv eller lp udgangene,
          dersom disse arbejder i flextrn (binær) mode. 
           
          Hvis et tp genereret område skal indlæses i samme kørsel, skal
          området først lukkes: 
           \f

                   E_k_s_e_m_p_e_l_ _2_._4_._1_ 
           
          Perforator-output opsamlet i et discareal med sekvensen 
           
          contp tpout 
                    . 
          . 
          . 
          rel tpout 
           
          kan kobles til læseren med kommandoen: 
           
          contr tpout 
           
          Det skal bemærkes, at "contr" kommandoen checker, at filen er i
          flextrn mode. Kommandoerne "concv", "contp" og "concv" sætter den
          korrekte contry i filen ved lukning. 
           
          Desuden kontrollerer samtlige con- kommandoer, at den pågældende
          fil ikke i forvejen er tilkoblet en anden ind- eller udgang. Er
          dette tilfældet, udskrives en fejludskrift. 
           
          dt - kanalen arbejder med giverord lagret med t 42-bits ord pr
          RC8000 dobbeltord (jvfr. den interne repræsentation i RC8602).
          Blok- og filstrukturen simuleres ved hjælp af kædeelementer, (se
          afsnit 3.9). 
           
           \f

                   Tegning papir 90. 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           \f

         2_._5_ _ _ _ _ _ _ _F_e_j_l_s_i_t_u_a_t_i_o_n_e_r_ 2.5
           
          Ved mange kommandofejl, f.eks. syntaksfejl, reservationsfejl, for-
          kerte arealnavne m.m., skiftes til on-line input, så operatøren
          kan gribe ind. 
           
          Ved visse hårde fejl kan man ikke genoptage kørslen. Det drejer
          sig f.eks. om fejl, der skyldes ressourcenød, med udskriften 
           
          RC8602 disc status <areal navn' end document 
           
          Ligeledes ved kodefejl i RC8602sim programmet (f.eks index fejl),
          samt ved hardware fejl, termineres kørslen omgående. 
           
          Ved hardware fejl, der bevirker, at mikroprogrammet i RC8602 går
          i stå, (typisk ved paritetsfejl i ROM-lageret), fremkommer
          udskriften: 
           
              *** microprogram fault *** 
          push reset button on RC8602 
           
          I denne situation kan kørslerne ikke genoptages, før RESET-knap-
          pen på teknikerpanelet på RC8602 er blevet aktiveret. 
          Er RC8602 ikke udstyret med teknikerpanel, kan RC8602 kun gen-
          startes med power-reset, (evt. slukning og tændning), hvilket og-
          så påvirker resten af RC8000 systemet. 
           
          På de emulerede bånd kan der opstå fejl i kæderne p.g.a. hardware
          fejl eller forkert nedlukning. Ofte vil fejlen bestå i, at kæder-
          ne ikke lukkes, dvs. den sidste blok ikke er afsluttet med et kor-
          rekt kædeelement. 
           
          Når et kædeelement læses af RC8602sim checkes det, at dette peger
          tilbage til det foregående kædeelement. Dersom der er fejl, ud-
          skrives meddelelsen: 
           
          blokchain fault on unit <unit', 
          <details' 
           \f

                   Ved læsning ud over "kanten" på et emuleret bånd udskrives 
           
          read outside logical end on tape unit <stno' 
           
          Iøvrigt henvises til listen over fejludskrifter, appendiks E. 
           
           \f

         3_._ _ _ _ _ _ _ _ _B_E_S_K_R_I_V_E_L_S_E_ _A_F_ _E_M_U_L_A_T_O_R_M_O_D_U_L_E_R_N_E_ 3.
           
          Der lægges her mest vægt på at specificere emulatoren, især i/o
          modulerne, set fra brugerens synspunkt. Med hensyn til den in-
          terne struktur henvises til vedligeholdelsesdokumentationen. 
           
           
3_._1_ _ _ _ _ _ _ _L_a_g_e_r_b_i_l_l_e_d_e_ 3.1
           
          På næste side er skitseret, hvorledes lageret er opdelt mellem
          kodesegmenter og zoner. Zonerne udgør de områder, der bruges som
          GIER>s lager og buffer, samt virtuel tromle, båndbuffere og
          RC8602 tabel len. 
           
          Hvert GIER-ord er lagret i et RC8000 dobbeltord, formatteret som
          vist i afsnit 3.2. 
           \f

                    _ _p_r_o_c_e_s_s_t_a_r_t_ _ _ _R_C_8_6_0_2_ _b_a_s_e_ _ 
          0   GIER core 46000 
               fp            store 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1500 _ _ _ _1_0_2_4_ _o_r_d_ _ _ 50000 
           
          GIER buffer 
           
           
           
          4096 ord 
           
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ 66000 
           
              kodeVirtuel tromle 
              segmentertyp. 5x16 
          k_a_n_a_l_e_r_ _ _ _ _ _ _ _ 74000 
           _ _t_r_ _z_o_n_e_ _ _ _ _ _ 74500 
           _ _c_v_ _z_o_n_e_ _ _ _ _ _ 75000 
           _ _t_p_ _z_o_n_e_ _ _ _ _ _ 75500 
           
            lp zone      
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ 80000 
           
          andre 
          variable 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ 90000 
           
           _ _ _ _s_t_a_c_k_t_o_p_ _ _ 43000  tape 
           
              RC8602  zoner 
              tabellen 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ 46000 _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100000 
           
           
          L_a_g_e_r_b_i_l_l_e_d_e_ _a_f_ _R_C_8_6_0_2_ _p_r_o_c_e_s_ _m_e_d_ 
               t_y_p_i_s_k_e_ _b_u_f_f_e_r_s_t_ø_r_r_e_l_s_e_r_ 
           
           \f

         3_._2_ _ _ _ _ _ _ _M_i_k_r_o_p_r_o_g_r_a_m_ _e_m_u_l_a_t_o_r_e_n_ 3.2
           
          Denne del af RC8602 systemet emulerer selve GIER-CPU>en og udgør-
          es af RC8602 devicet. Dette er tilsluttet RC8000 bussen som en
          normal ydre enhed. Den styres via en speciel monitordriver, som
          administrerer den eksterne proces kaldet SSCIRGIER 1 (S_tart S_top
          C_ontrol - I_/0 R_equest). 
           
          Udførelsen af ordrerne foregår med en hastighed, der svarer til 3
          gange GIER>s (se instruktionstiderne i appendiks A). 
           
          Emulator devicet startes med "resume" eller "hp" kommandoerne.
          Det udfører alle GIER instruktioner på nær LY, SY, LK, SK, IL,
          US, og ZQ. Når en af disse mødes, stopper emulatoren, og RC8602
          programmet i RC8000 overtager kontrollen og udfører den ønskede
          funktion, som oftest ved hjælp af en transport til eller fra
          disc>en. 
           
          I tilfælde af en paranteskæde (i-løkke) foretages asynkront stop
          med udskriften 
           
                    i-løkke. 
           
          I tilfælde af tom operation sker der ligeledes et asynkront stop
          med fejludskriften 
           
                    TO-FEJL. 
           
          Følgende instruktioner betragtes som tomme: 
           
          gg  (kode 46) 
          gc  (kode 47) 
          pc  (kode 48) 
          zj  (kode 57) 
          zl  (kode 62) 
           
          Dersom RC8602 startes med parameteren buffer.0 er instruktionerne
           \f

                             il  (kode 44) 
                    us  (kode 45) 
           
          også tomme. 
           
          Instruktionen ZQ medfører synkront skrift til control mode med
          udskriften: 
           
                *** gier stopped in ZQ, ot= <ordre tæller' 
           
          Den interne repræsentation at et GIER-ord (lagret i et RC8000
          dobbeltord) ser således ud: 
           
          Gierbit      _0_ _ _0_ _ _0_ _ _1_ _ _2_ _ _3_ _ _4_ _ _5_  _ _ _ _1_7_ _ _1_8_ _ _1_9_ _ _2_0_ _ _2_1_ _ 
                       S  S 
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
          RC8000 bit   0  1  2  3  4  5  6  7     19  20  21  22  23  
           
                                        1. halvord 
           
          Gierbit      _2_2_ _ _2_3_ _ _2_4_ _ _2_5_ _ _ _ _ 37  _ _3_8_ _ _3_9_ _ _ _ _ _ _ _ _4_0_ _ _4_1_ _ _ _ _ _ _ _ _ _ _ _
                                                        0  0           0   0
           _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
          RC8000 bit   0   1   2   3      15   16  17  18  19  20  21  22  23
           
                                        2. halvord 
           
          Det bemærkes, at ordet er lagret med fortegnsforlængelse i de to
          første bit af dobbeltordet. 
           
          GIER>s bufferlager udgøres af et lagerområde, der ligger i umid-
          delbar forlængelse af GIER>s hovedlager. Bufferlagerets størrelse
          afhænger af FP-parameteren "buffersize", og kan være 0, 2048,
          4096 eller 8192 GIER-ord. Standard er 4096, og de øverige stør-
          relser kan kun udnyttes i forbindelse med specielt kodede GIER
          programmer. 
           \f

                   Er størrelsen 0, udelades både buffer, bånd, karrusel og buffer-
          disc med en væsentlig pladsbesparelse som følge. 
           
          Transporten mellem GIER og buffer (ILO, USO) foregår med høj has-
          tighed. Transporten for en blok er 5.0 uSec + 5.6 uSec pr. GIER-
          ord. En blok på 400 GIER-ord kan således overføres på 5.0 + 5.6 x
          400 = 2.25 ms. 
           
           
3_._3_ _ _ _ _ _ _ _S_k_r_i_v_e_m_a_s_k_i_n_e_n_ 3.3
           
          Som skrivemaskineemulator anvendes current input og current out-
          put, dvs. normalt RC8000 terminalen, eller for skrivemaskinein-
          puttets vedkommende, jobfilen. 
           
          Da GIER-skrivemaskinen anvender ISO-alfabetet, foretages der en
          konvertering af input/output, jvfr. omstående konverteringstabel-
          ler. 
           
          For inputtets vedkommende er der visse restriktioner: 
           
          1. RC8000 arbejder på linieniveau. Dette vil sige, at GIER-pro-
             grammet i emulatoren ikke kan få acces til inputtet, før hele
             linien er indtastet. Der er derfor indført den konvention, at
             når skrivemaskinen skriver ud, overspringes resten af en evt.
             resterende inputlinie. Desuden sættes skrivemaskinen i lower
             case. 
              
          2. Der findes ikke nogen tast til at signalere case-skift. Case
             skift genereres automatisk i konverteringskoden, og man kan
             således ikke inputte sekvensen LC - UC - LC o.lign., som
             f.eks. bruges i HELP3 editoren. 
              
          3. Tegnene , ,   og   findes ikke, men kan inputtes ved at an-
             vende # (35), ? (63), >(96) og  (94). 
              
          4. SUB-karakteren (parantetsfejl på tastaturet) skippes uden a-
             larm. 
              \f

                   5. Understregede tegn kan inputtes som understregning efterfulgt
             af tegnet, u_d_e_n_ backspace imellem. F.eks. vil understreget l
             fremtræde som: 
              
              _ l 
              
          6. Tegnet @ (=64) bevirker omgående skift til control-mode. 
              
          7. Visse terminaler er ikke udstyret med uppercase tegn hvilket
             bevirker, at SLIP-syntaksen ikke kan overholdes. 
              
          For skrivemaskineoutputtet gælder, at der er god kompatibilitet
          mellem flexo- og ISO koden (Se nedenstående konverteringtabel).
          Dog skal følgende nævnes: 
           
          1. Skrivemaskinens output kanal sættes i lower-case ved
             skrivemaskine input. 
              
          2. Farvebåndsskift eksisterer ikke, men flexo tegnene red ribbon/
             black ribbon konverteres til RS (30), hhv. US (31), der
             fremtræder som mellemslag. 
              
          3. Alle tegn konverteres til entydige ISO værdier, så der er
             mulighed for tilbagekonvertering. Specielt skal nævnes tegnene
             , ,   og   der konverteres til # (35), ? (63), >(96) og
              (94). Alle ISO tegn mindre end 32 (bortset fra NL) udskrives
             som mellemslag (32) af hensyn til "ifmess" og "oldmess"
             kommandoerne. 
              
          4. Flexotegn af en værdi større end 64 er blinde, dog regnes
             SY-adressen modulo 128.\f

                   Tegning 1 
 \f

                   Tegning 2 \f

         3_._4_ _ _ _ _ _ _ _S_t_r_i_m_m_e_l_l_æ_s_e_r_ 3.4
           
          Emulatorens Strimmellæser arbejder på et nøjagtigt billede af en
          input-strimmel (hvad enten denne er lagret i et disc-areal, eller
          rent faktisk læses fra RC2000). Dette betyder, at strimler a_l_t_i_d_
          skal indlæses med den fysiske læser i trn (no parity) mode. 
           
          Emulatoren læser karakteren fra strimlen med LY ordren. Dersom by
          (8:9) er 0 eller 2 indlæses kanal 8-6 og 4-1 (dvs. eksklusive pa-
          ritets kanalen) til bit 3-9 i R-registeret, og til den adresse-
          rede celle. 
           
          Samtidigt checkes pariteten, og ved fejl udskrives: 
           
          ***Str. læses par. fejl 
           
          men modsat GIER, standser emulatoren ikke. 
           
          Hvis by(8:9) = 3 checkes pariteten ikke, men paritetsfejl marke-
          res ved sætning af bit 0 i R-registeret og det adresserede ord.
          By(7) er irrelevant. 
           
          Hvis der under indlæsning fås "end-document" status, eller der
          mødes en NUL karakter, foretages asynkront skift til control mode
          med udskriften 
           
          ***reader exhausted 
           
          og input processen termineres og afreserveres. En strimmel lagret
          i et discareal skal altså være termineret med en NUL karakter
          (gøres automatisk ved BOSS-funktionen: load trn --). 
           
           
3_._5_ _ _ _ _ _ _ _P_r_i_n_t_e_r_ 3.5
           
          RC8000 printeren anvender ISO alfabetet. Derfor sker der i emula-
          torens printerudgang en konvertering svarende til skrivemaskine-
          output tabellen (se afsnit 3.3). Ønskes binært output på lp-kana-
          len, kan dette specificeres med "lp" parameteren, (se afsnit
          2.1.2),\f

                   hvorved printeroutput fremkommer i flextrn kode som på perfora-
          torudgangen. 
           
          Ved ISO konverteringen sker der en specialbehandling af visse
          styrekarakterer: 
           
          1. TAB karakteren (30) udløser simulering af GIER printerens ta-
             bulator funktion: skrivepositionen sættes til to gange værdien
             af den første karakter efter TAB. 
             TAB funktionen emuleres ved generering af det nødvendige antal
             spaces. Tabulering mod højre udløser generering af CR,
             efterfulgt af det nødvendige antal spaces. 
              
          2. Karakteren 42 konverteres til FF (form feed) 
              
          3. Karakteren 45 konverteres til VT (vertical tab). 
              
          4. Karaktererne 65-71 konverteres til VT. 
              
          5. karaktererne 72-79 konverteres til FF. 
              
          6. Karakteren 80 konverteres til 0 eller 2 linieskift, (afhængigt
             af parameteren sy80, se afsnit 2.1.2). 
              
          7. Karaktererne 81-127 er blinde. 
              
          8. Virkningen af for lange linier, (dvs. linier på mere end ca.
             132 tegn), er udefineret. 
              
          Det skal iøvrigt bemærkes, at der før FF og VT udsendes en "space"
          karakter af hensyn til visse RC8000 printere. 
           
          Bufferstørrelse og bufringen af printerzonen afhænger af FP para-
          meteren lp, se afsnit 2.1.2. 
           
          Ved lukning af printerzonen ("rel _lp", en fornyet "con _lp", eller
          "terminate"), afsluttes outputtet med en EM karakter. 
           \f

         3_._6_ _ _ _ _ _ _ _P_e_r_f_o_r_a_t_o_r_ 3.6
           
          Perforator-driveren konverterer bit 3-9 i SYordrens adresse til
          en 8-bit karakter, idet der indskydes en paritetsbit, som giver
          ulige paritet. 
          De herved genererede tegn kan enten udhulles direkte over den
          jobstyrede perforator, eller udskrives til et discareal. 
          I sidstnævnte tilfælde termineres informationerne med en NUL ka-
          rakter, (i lighed med "load trn" funktionen i BOSS). 
           
          Perforator zonens størrelse og bufring afhænger af FP parameteren
          "tp", se afsnit 2.1.2. 
           
           
3_._7_ _ _ _ _ _ _ _C_o_n_v_e_r_t_e_r_ _(_p_l_o_t_t_e_r_,_ _"_o_p_t_i_o_n_"_)_ 3.7
           
          Denne outputkanal svarer til krydsfeltrækken "option" på GIER. I
          emulatoren kan den anvendes som en ekstra printerkanal, (FP-para-
          meteren cv.iso), og virker da som printeren beskrevet i afsnit
          3.5. Vælges derimod FP-parameteren cv.bin, anvendes en speciel
          konverteringstabel, f.eks. en plottertabel. 
           
          Indholdet af denne tabel svarer i standardudgaven at RC8602sim
          til perforatortabellen, dvs. cv udgangen kan anvendes som en al-
          ternativ perforatorudgang. 
           
           
3_._8_ _ _ _ _ _ _ _T_r_o_m_l_e_ 3.8
           
3_._8_._1_ _ _ _ _ _L_a_g_r_i_n_g_ 3.8.1
           
          Tromlen emuleres ved at discareal, der er 100 segmenter stort,
          svarende til n tromle. To- og tre-tromler fylder tilsvarende me-
          re. Discarealet er et temporært areal ved navn "gierdrum". 
           
          I RC8000>s hovedlager findes en zone, der anvendes til virtuali-
          sering af tromlen, dvs. at der af hastighedsmæssige grunde er af-
          sat plads til de hyppigst anvendte dele af tromlen. 
           \f

                   Tromlen deles i 20 grupper a 16 kanaler. 16 kanaler * 40 GIER
          ord * 2 = 1280 ord = 5 discsegmenter. Størrelsen af den virtuelle
          tromle er typisk 5 grupper, men styres iøvrigt med FP- parame-
          teren "groups" (se afsnit 2.1.2). 
           
          Når GIER-programmet adresserer en kanal, der ikke findes i lag-
          eret, læses den ønskede gruppe op fra disc>en. Dette betyder, at
          en anden gruppe må ofres, og, dersom der har været skrevet på en
          eller flere af dennes kanaler, (SK-ordren), skal den først til-
          bageskrives. Udpegningen af "ofret" sker efter en "last used"
          strategi med hensyntagen til, om der skal tilbageskrives. 
           
          Dersom tromlens indhold ønskes bevaret efter kørslen, er det vig-
          tigt at få tilbageskrevet de i lageret værende grupper til "gier-
          drum". Dette sker automatisk, når "terminate" kommandoen udføres,
          hvorimod situationen er udefineret ved fejlterminering af RC8602-
          sim. Efter udhoppet til FP, kan "gierdrum" renames og permanentes
          og derpå bruges som tromleareal, ved et senere kald af RC8602sim.
           
          E_k_s_._ _3_._8_._1_ 
           
          rename gierdrum.hjælpdrum 
                    scope user hjælpdrum 
                    RC8602sim hjælpdrum 
           
          Ved dette kald kopieres "hjælpdrum" til en ny inkarnation af
          "gierdrum", og forbliver selv uændret. 
           
          I katalogindgangen angives i "contry" (det niende ord i katalog
          halen), at det drejer sig om en emuleret tromle ved n af disse
          koder: 
           
                    17.1 
                    17.2 
                    17.3 
           
          svarende til en- to- eller tretromle. Ved start af RC8602sim skal
          størrelsen af tromlen passe med "drums" parameteren. \f

         3_._8_._2_ _ _ _ _ _T_r_o_m_l_e_ _o_p_e_r_a_t_i_o_n_e_r_ 3.8.2
           
          Operationerne LK, SK overfører den ønskede kanal omgående, dvs.
          uden at afvente den efterfølgende venteordre. Dersom den ønskede
          kanal ikke findes i lageret standser RC8602, og den tilsvarende
          gruppe læses op fra disc>en hvorpå RC8602 genstartes, og resten
          af LK/SK instruktionen udføres. 
           
          HK instruktionen virker altid som HS ordren, dvs. tromlen er al-
          tid ledig. 
           
          Visse programsystemer forudsætter, at skrivning på kanal 0-31 er
          spærret. Dette kan gøres med FP parameteren "track031.protected"
          som bevirker, at SK ordrer, der udføres på disse kanaler, bliver
          blinde. 
           
           
3_._8_._3_ _ _ _ _ _H_a_s_t_i_g_h_e_d_ 3.8.3
           
          Dersom der arbejdes på en kanal, der allerede er i lageret, sker
          overførslen af information med stor hastighed, ca 250uSec pr
          kanal. 
           
          Er kanalen ikke i lageret, involveres n eller to disctranspor-
          ter, og transporten varer da 30mS eller mere. 
           
          Antallet af disctransporter, der er afledt af tromletransporter-
          ne, udskrives, når RC8602sim termineres, med udskriften: 
           
                    drum: <tromle transporter' 
           
          Hvis emulatoren en tunet korrekt, (afhænger af "groups" parame-
          teren og processtørrelsen), skal antallet af tromletransporter
          være væsentlig mindre, (10 gange), end det tilsvarende antal for
          tapes. 
           
           \f

         3_._8_._4_ _ _ _ _ _T_r_o_m_l_e_f_e_j_l_ 3.8.4
           
          Situationen "tromlefejl" betyder på GIER, at der er hård pari-
          tetsfejl på tromlen, og signaleres ved tænding af en lampe i kon-
          trolbordet. 
           
          I emulatoren vil en tilsvarende hård fejl på disc>en give status-
          fejludskrift på arealet "gierdrum", hvorpå RC8602sim terminerer. 
           
          Tromlefejl kan imidlertid også betyde, at der forsøges læsning
          eller skrivning på en ikke eksisterende kanal (på grund af en
          programfejl). Dette giver fejludskriften 
           
                 ***Tromle fejl 
           
          og emulatoren foretager et synkront stop. 
           
           
3_._9_ _ _ _ _ _ _ _B_å_n_d_s_t_a_t_i_o_n_e_r_ 3.9
           
          Båndstationerne emuleres ved op til seks i/o kanaler, svarende
          til båndstation 1-6. Kanalerne forbindes til discarealer, hvert
          repræsenterende t bånd, (se "connect", "create", "release" og
          "ring" kommandoerne i afsnit 2.2.5). Der kan i_k_k_e_ anvendes
          fysiske båndstationer. 
           
           
3_._9_._1_ _ _ _ _ _B_å_n_d_o_p_e_r_a_t_i_o_n_e_r_ 3.9.1
           
          Ved læsning og skrivning overføres data mellem RC8602 lageret og
          en zone i RC8602sim. Når zonen er fyldt (skrivning), eller tømt
          (læsning), overføres zonens indhold til/fra det tilsvarende disc-
          område. RC8602 kører videre simultant med disse aktiviteter.  Når
          transporten er afsluttet, anbringes status i RC8602 tabellen, og
          herved fjernes "unit busy". 
           
          Båndpositioneringer udføres omgående, idet de kun indebærer 0-2
          disctransporter. 
           \f

                   Test-busy instruktionen IL p 256 vil indikere busy på helt normal
          vis, men varigheden af transporten, og dermed busy tilstanden,
          vil være meget svingende. 
           
          Operationen USp96, (unload tape), vil frakoble discarealet, (i
          lighed med "release" kommandoen), og en hvilken som helst opera-
          tion på båndstationen derefter vil få emulatoren til at skifte
          til controlmode, (asynkront stop), med udskriften: 
           
                    unit <st.no' not connected 
           
          I denne situation kan et nyt bånd tilkobles, og kørslen fortsæt-
          tes. 
           
          Under skrivning udvides arealet efter behov. Dette kan, i tilfæl-
          de af ressourcenød, afstedkomme fejludskriften: 
           
                 ***RC8602 disc status end document 
           
          hvorpå RC8602 sim terminerer. 
           
          Ved lukning af båndet, samt ved rewind, lukkes kæderne, og area-
          lets størrelse nedsættes til det mindst mulige, (se afsnit 3.9.5:
          "File-edit" problemet). 
           
           
3_._9_._2_ _ _ _ _ _S_k_r_i_v_e_r_i_n_g_ _c_o_n_t_r_y_ 3.9.2
           
          I katalogindgangen angives tidspunktet, (shortclock), for, hvor-
          når arealet er dannet. Tidsangivelsen opdateres hver gang båndet
          rewindes eller lukkes efter skrivning. 
           
          Katalogindgangens contents key har følgende format: 
           
            _ _w_r_i_t_e_ _e_n_a_b_l_e_ 
           
           _ _h_i_g_h_ _d_e_n_s_i_t_y_ 
          ____________________________________________________________ 
           _ _ _ _ _ _ _ _ _ _1_7_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _1_5_ _ _ _ _ _ _ _ 
          11 1217 18 19 2023\f

                   Et bånd med skrivning og i high density vil således få contry =
          17.63. 
           
          Hvis discarealet er dannet med FP-programmet "convertgier" er
          contry 17.31, svarende til write protect. Er arealet dannet med
          "create" kommandoen, er write enable = 1. 
           
          "write enable" bit>en kan ændres med "ring" kommandoen. 
           
          Når båndarealet tilkobles, (med "connect" kommandoen), åbnes det-
          te for input/output (eksklusiv acces), dersom write-enable er
          sat, og arealet ikke er beskyttet af system scope. 
           
          Dersom write-enable ikke er sat, åbnes kun for input, og flere
          inkarnationer af RC8602sim kan da læse fra samme bånd, (f.eks. et
          programbånd). 
           
          Forsøg på skrivning på et bånd uden write enable medfører fejlud-
          skriften: 
           
                    no ring on unit <st. no' 
           
          hvorpå der skiftes til control mode. 
           
           
3_._9_._3_ _ _ _ _ _S_t_r_u_k_t_u_r_e_r_i_n_g_ _a_f_ _s_i_m_u_l_e_r_e_d_e_ _b_å_n_d_ 3.9.3
           
          De simulerede bånd er formatterede som en dobbeltkæde, der af-
          spejler blokstrukturen. Dobbeltkæden muliggør blokpositioneringer
          både frem og tilbage på båndet. 
           
          Der findes desuden en dobbeltkæde, der forbinder filmærkeblokke-
          ne, og på samme måde muliggør hurtige filpositioneringer. 
           
          Hver blok indledes med et kædeelement bestående af to 48-bits
          ord. Ordene peger tilbage til foregående, hhv. frem til efter-
          følgende kædeelement. Et kædeelement addresseres ved nummeret på
          det segment, det ligger på, samt dets placering på segmentet reg-
          net i dobbeltord. \f

                   Et kædeelement indeholder desuden oplysninger om bloklængde,
          blokkens paritet, samt evt. filmærke- eller terminatormarkering. 
           
          Udseende af et blok-kæde element: 
           
                  _______________________________________________ __ 
             bloklængde (15 bit)     M     ordnr. (7 bit)    foregåen-
          _________________________________________________  de 
                            segment nr.blok 
          _________________________________________________ 
             bloklængde (15 bit)     M     ordnr. (7 bit)   
          _________________________________________________  efterføl-
                                    segment nr.gende 
          _________________________________________________  blok 
           
           
          M = 0 datablok, ulige paritet      M = 2 filmærke 
          M = 1 datablok, lige paritet       M = 3 terminator 
           
          En filmærkeblok indledes med et blokkædeelement efterfulgt at et
          filkædeelenent: 
           
                   _ _ _ ________________________ 
             foregående blok 
          ___________________________ 
             efterfølgende blok 
          ___________________________ 
             foregående filmærke 
          ___________________________ 
             efterfølgende filmærke   
          ___________________________ 
           
           
          Et bånd indledes med et "dummy" fil-kædeelement, som dels peger
          på første blok og første filmærke, dels markerer BOT. 
           
          Båndet afsluttes med et blokkædeelement med M = 3. Ved læsning af
          kædeterminatoren signaleres paritetsfejl og bloklængdefejl. Blok-
          længden angives til 3 ord. \f

                   Desuden udskrives 
           
                    read outside logical tape end on unit <unit no' 
           
          Dersom dette sker fem gange i træk, skiftes til control-mode. 
           
          Et areal, der dannes med "create" kommandoen, initialiseres til
          at indeholde et kædestart element samt 10 dummyblokke af hensyn
          til evt. labelcheck. 
           
          Ved læsning af et kædeelement checkes, at dette peger på foregå-
          ende. Dersom der detekteres en fejl, skiftes til control-mode med
          fejludskriften 
           
                    blokchain fault on unit <unit no', <details' 
           
           
3_._9_._4_ _ _ _ _ _A_f_k_o_r_t_e_t_ _o_r_d_l_æ_n_g_d_e_ 3.9.4
           
          Ved skrivning af blokke med afkortet ordlængde, dvs. at kun de 24
          første bit af hvert ord udskrives, (USp16), sættes en markering i
          bit 47 i første dobbeltord af blokken. Dette bevirker, at "con-
          vert8602" konverterer blokken korrekt ved en senere konvertering
          til fysiske magnetbånd. Ligeledes vil "convertgier" sætte bit 47
          ved konvertering af fysiske bånd skrevet i afkortet ordlængde. 
           
          Bemærk, at det afkortede ord placeres i et dobbeltord ligesom
          normale (42 bits) ord, men de relevante bit svarer til gierordets
          bit 0-23. 
           
          Når emulatoren læser en blok (IL), er der fire tilfælde: 
           
          1. Blokken er skrevet i standard mode, og IL ordren specifice-
             rer standard ordlængde: 
             ingen specielle aktioner 
           \f

                   2. Blokken er skrevet i afkortet ordlængde (signaleret ved bit 47
             i ord 0), og IL ordren specificerer afkortet ordlængde: 
                    den oprindeligt udskrevne information genskabes fuld-
                    stændigt. På den fysiske GIER nulstilles dog de bageste
                    18 bit i GIER-ordet. Forskellen er normalt uden betyd-
                    ning. 
           
          3. Blokken er skrevet med standard ordlængde, men IL ordren
             specificerer afkortet mode: 
                    den oprindeligt udskrevne information genskabes i mod-
                    sætning til GIER, der ville foretage en ompakning. Des-
                    uden udskrives en advarsel: 
                     
                 ***mode error, short-mode blok 
                    unit <st.no', rel=<relative', segm = <segm no' 
                     
          4. Blokken er skrevet med afkortet ordlængde, men IL ordren
             specificerer normal ordlængde: 
                    den oprindeligt udskrevne information genskabes i mod-
                    sætning til GIER, der ville foretage en ompakning. Des-
                    uden udskrives en advarsel: 
                     
                 ***mode error, not short-mode blok unit <st.no', rel =
                    <relative', segm = <segm no' 
                     
                    <relative' er blokstartens placering som dobbeltords-
                    adresse relativt til starten af segment <segm no' på
                    det pågældende discareal. 
                     
                     
3_._9_._5_ _ _ _ _ _"_F_i_l_e_-_e_d_i_t_"_ _p_r_o_b_l_e_m_e_t_ 3.9.5
           
          Når en skriveoperation på et bånd efterfølges af rewind eller
          lukning af filen, skrives et terminatorelement i kæden, og disc-
          arealet nedskæres til den aktuelle størrelse. 
           \f

                   Dette udelukker anvendelsen af den såkaldte filediteringsteknik,
          hvor man f.eks. fylder information på et helt bånd på normal vis,
          rewinder og derefter anbringer en indholdsfortegnelse i starten
          af båndet. 
           
          Programmer, der udnytter denne teknik, kan som regel omlægges til
          RC8602 med simple ændringer, f.eks. kan indholdsfortegnelsen pla-
          ceres på et særskilt bånd. 
           
           
3_._9_._6_ _ _ _ _ _T_r_i_m_m_i_n_g_,_ _h_a_s_t_i_g_h_e_d_ 3.9.6
           
          Antallet af samtidigt monterede bånd afhænger af "tapes" parame-
          teren, (se afsnit 2.1.2), og er normalt 4, men kan være 0-6. Stør-
          relsen af tapezonerne er direkte afhængig af processtørrelsen,
          men vil dog ikke kunne være mindre end 2 segmenter. Den aktuelle
          størrelse udskrives som det sidste tal i svarlinien ved kaldet af
          RC8602sim. Den optimale størrelse af disczonerne er 5-10 segmen-
          ter. Disctransporterne er altid enkeltbufrede. 
           
          Transporttiden for en GIER-båndblok er sammensat af en konstant
          del på ca. 10mS, plus en variabel del på 9uSec pr. ord. Dertil
          kommer evt. ventetid på disctransporter. Uden discacces vil en
          blok på 400 gierord således kunne overføres på 
           
                    10 + 0.009x400 = 13.6mS 
           
          Ved "samtidig" læsning og skrivning skal man dog tage højde for,
          at systemet kun kan behandle n blok ad gangen, dvs. læsning af
          en 400 ords blok fra n station "simultant" med skrivning af en
          tilsvarende blok på en anden station vil tage ca. 27mS. RC8602
          kan dog udføre GIER-instuktioner "ægte" simultant i hele dette
          tidsrum. 
           
           \f

         3_._1_0_ _ _ _ _ _ _K_a_r_r_u_s_e_l_ 3.10
           
          Karrusellen behandles som en disc. Den emuleres ved et discareal
          med contry = 17.7, connected til station 7. 
           
          Den fyldte karrusel består af 64 spoler a 16 blokke a 512 GIER-
          -ord. Da et RC8000 segment kan rumme 128 GIER-ord, bliver plads-
          behovet 64x16x 512/128 = 4096 segmenter. 
           
          Anvendes parameteren carousel-norsk, (se afsnit 2.1.2), opdeles
          en spole i stedet i 128 blokke a 64 GIER-ord. 
           
          Statusbit 0 angiver parameterfejl svarende til, at der i samme
          operation forsøges transporteret et antal blokke, der overskrider
          grænsen for en spole. Samtlige spoler behandles dog som t areal,
          og man kan altså ikke udskifte enkelte spoler. 
           
           
3_._1_1_ _ _ _ _ _ _B_u_f_f_e_r_d_i_s_c_ 3.11
           
          Bufferdisc>en emuleres ved et discareal med contents key 17.8,
          den connectes til station 8. Adresseres stationsnumre større end
          8, termineres RC8602sim med en fejludskrift. 
           
          Hvert disctrack, (på max 620 ord), fylder 5 segmenter uanset
          hvilken bloklængde, der aktuelt benyttes. Den normale discstør-
          relse på 2030 tracks vil da fylde 5 * 2030 = 10150 segmenter på
          RC8000 disc>en. 
           
          Adresseres udover denne størrelse, gives der ikke statusfejl
          (address too big, bit 5), som på den fysiske disc, men hele det
          adresserbare område, 4096 traks = 20480 segmenter kan benyttes. 
           
          Dog skal det maksimale antal segmenter, der ønskes benyttet an-
          føres i "create" kommandoen, når arealet dannes. I modsat fald
          kan kørslen gå ned på "end document", når arealet overskrides. 
           \f

                   Ved create af arealet initialiseres alle tracks med trackno og
          bloklængde. Dersom der forsøges læsning fra et ikke initialiseret
          segment, termineres RC8602sim med en fejludskrift. 
           \f

         4_._ _ _ _ _ _ _ _ _K_O_B_L_I_N_G_ _T_I_L_ _A_N_D_R_E_ _S_Y_S_T_E_M_E_R_ 4.
           
4_._1_ _ _ _ _ _ _ _D_e_n_ _f_y_s_i_s_k_e_ _G_I_E_R_ 4.1
           
          På strimmelniveau er der fuld kompatibilitet, idet emulatoren kan
          læse og skrive binære strimler i ulige paritet. 
           
          Fysiske GIER-bånd konverteres til RC8602 formatet ved hjælp af
          RC8000 utility programmet "convertgier" (se appendiks B), der
          konverterer både normale blokke, og blokke med afkortet, (24
          bits) ordlængde. 
           
          Ved kørselsomlægning o.lign. er det en fordel at kunne konvertere
          tilbage til GIER. Til dette formål anvendes programmet "convert-
          8602" (se appendiks B), som kan generere fysiske bånd i afkortet
          ordlængde på RC8000>s standard 7-spors båndstation. Blokke i
          normal ordlængde kan genereres, hvis 7-spors stationen styres af
          en 9-spors driver. I begge tilfælde er den maksimale bloklængde
          afhængig af bufferstørrelsen i RC3600. 
           
           
4_._2_ _ _ _ _ _ _ _A_n_d_r_e_ _s_y_s_t_e_m_e_r_ _i_ _s_a_m_m_e_ _R_C_8_0_0_0_ 4.2
           
          Til mindre datamængder vil strimmel-ind- og -udgangene være de
          nemmeste at benytte, hvis der skal kommunikeres med programmer i
          samme maskine. 
           
          Emulatoren kan producere output i både flexowriter og ISO-kode,
          og den kan læse flexowriter kode (via læser indgangen). Konver-
          tering fra ISO til flextrn og omvendt foretages let med FP-pro-
          grammet "convertdata", (se appendiks C). 
           
          Hvis der skal udveksles data på båndniveau, kan man direkte be-
          nytte discarealerne, som repræsenterer de emulerede bånd. Til
          konvertering til og fra de specielle kæde formater bruges de ek-
          sterne ALGOL procedurer "outrec8602" og "inrec8602", (se appen-
          diks B). 
           \f

         4_._3_ _ _ _ _ _ _ _A_n_d_r_e_ _s_y_s_t_e_m_e_r_ 4.3
           
          Her gælder stort set det samme som nævnt under pkt. 4.2. 
           
          Det skal dog bemærkes, at det er meget let at transportere disc-
          -lagret information mellem to RC8000, hvad enten denne er
          formateret som strimmel- eller kædefils areal, simpelthen ved
          hjælp af save-load programmet. Dette program vil også være
          fordelagtigt at benytte fremfor de eksisterende safety-kopierings
          procedurer på GIER. 
           
          Den såkaldte "black box" tilslutning mellem GIER og RC3000 kan
          erstattes af, for outputtets vedkommende, at tilkoble GIER-emu-
          latoren printer- eller perforator udgang til en fysisk (RC8000)
          båndfil. Efter GIER-kørslen kan båndet så flyttes til RC3000. Det
          modsatte gælder blackbox input, hvor data fra RC3000, datapoint
          o.lign. må anbringes i en disc- eller båndfil i RC8000, som er
          tilgængelig for emulatorens strimmellæser. 
           \f

         A_._ _ _ _ _ _ _ _ _I_n_s_t_r_u_k_t_i_o_n_s_t_i_d_e_r_ _o_g_ _I_/_O_ _t_i_d_e_r_ _f_o_r_ _R_C_8_6_0_2_ A.
           
          Adresseberegning m.m. (mode1 + mode4): 
           
          RC8602         GIER 
          uSec           uSec 
          1. Indikator betingelse (L og N 
             operation) undersøges: 
             Bet. ikke opfyldt: Næste ordre 
             påbegyndes efter 4.4           15 
           
             Bet. opfyldt, tiden øges med+1.8           +0 
           
             Ingen L eller N operation: 
             ingen ekstra Tid.
 
           
          2. Beregning af resulterende adresse, 
             incl. r, s, eller p-mærkning, men 
             excl. tælletal og parantesmærkning    8.4           27 
           
             Tælletal    0: Tiden øges med        +2.8           +9 
           
             Parantesmærkning, ikke s-mærkning, 
             tiden øges pr. led med               +5.9           +12 
           
             Parantesmærkning og s-mærkning, 
             tiden øges pr. led med               +8.2           +26 
           
          3. Eventuel n-variant udføres:          +0.4           +0 
           
          4. Eventuel D-variant udføres           +0.8           +0 
           
          5. Eventuel Indikator operation, 
             I - operation: Tiden øges med:       +1.8           +0 
             M - operation: Tiden øges med:       +1.6           +0 
           
          6. Eventuel X - variant udføres, 
                      Tiden øges med:                      +2.2           +4.4 \f

                   7. Eventuel IK indikator operation 
             udføres: Tiden øges med              +1.8           +7 
           
          8. Eventuel V variant udføres: 
             Tiden øges med                       +0.8           +0 
           \f

                   Grundoperationstider               RC8602         GIER 
                                             uSec           uSec 
           
          IS-NS-IT-NT-PP-PS-QQ-VK             0.4            2 
          HH-HV                               1.0            9 
          BS-BT                               1.1            9 
          CA-NC                               1.5           11 
          MT                                  1.8           11 
          XR                                  2.0            9 
          PI                                  2.0           16 
          GI-GP-GS-GT-PA-PT                   2.3            9 
          HR                                  2.4           22 
          GA-GK                               2.6            9 
          PM                                  3.0            9 
          GM                                  3.6            9 
          MB                                  3.7           16 
          AB                                  3.8           27 
          HK-HS                               4.2           16 
          AR-SR                               4.3           22 
          GR                                  4.8            9 
          CM                                  5.2           27 
          AC-SC                               6.3           22 
          AN-SN                               6.7           22 
          VY                                 10.2           16 \f

                   Grundoperationstider               RC8602         GIER 
                                             uSec           uSec 
           
          TK                                 4.0 + 0.2xs    20 + 2.2xs 
          NK                                 6.4 + 0.2xs    20 + 2.2xs 
          TL                                 8.7 + 0.6xs    20 + 2.2xs 
          NL                                  14 + 0.8xs    20 + 2.2xs 
          CK                                 7.6 + 0.4xs    20 + 2.2xs 
          CL                                13.6 + 0.8xs    20 + 4.4xs 
          MK-ML                                  25            155 
          MKF                                    31            140 
          DK-DL                         1)     86/14           240 
          DKF                                    65            190 
          SY                            2)       20            20 
          LK-SK                         3)      250           1000 
          IL-US  (GIER-buffer)               5.0 + 5.6xn     9 + 15.5xn 
          IL-US  (læs/skriv 1 blok)     4)     1500            26 
          IL-US  (hent status)          5)       19            26 
           
          1) 14 uSec gælder for små, positive operander: dividenden <2xx24,
             og divisor <2xx18 
           
          2) Tiderne gælder under forudsætning af, at der ikke ventes på en
             ydre enhed. 
           
          3) Gælder kun forbrug af CPU-tid. Den totale tid er for emulator-
             en større end den anførte, dersom tromletransporten involverer
discoperationer. For GIER>s tromle er den totale tid 20mS, med
GCD402 er den 1.8mS 
 
4) Den anførte tid er CPU-tid. Den totale tid er større, nemlig
10mSec + 9mSec/ord, plus evt. ventetid på disc>en. For GIER
med 45 ips Ampex stationer er den totale tid 40mS + 280uSec
pr. ord 
 
5) CPU tid. Den totale tid afhænger af, om en igangværende bånd-
transport først skal afsluttes. 
 \f

         B_._ _ _ _ _ _ _ _ _F_P_-_p_r_o_g_r_a_m_m_e_r_ _o_g_ _p_r_o_c_e_d_u_r_e_r_ _f_o_r_ _b_å_n_d_k_o_n_v_e_r_t_e_r_i_n_g_ B.
 
Til konventering mellem emulerede bånd på den ene side, og fysi-
ske bånd eller almindelige discarealer på den anden side, findes
to FP-programmer: "convertgier" og "convert8602", samt to exter-
nal ALGOL procedurer: "inrec8602" og "outrec8602". 
 
 
           C_o_n_v_e_r_t_g_i_e_r_ 
 
Programmet convertgier konverterer et 7-kanal GIER-magnet bånd
til et RC8000 discareal, der formatteres som en kædefil, læsbar
for RC8602sim. 
 
Det bånd, der skal konverteres, skal være skrevet med bloklængder
der, regnet i karakterer, er et helt multiplum af 7, dvs. et an-
tal hele GIER-ord skrevet i normal ordlængde, eller et helt mul-
tiplum af 4, dvs. et antal hele GIER-ord skrevet i afkortet ord-
længde (24 bit/ord). 
 
Båndet kan læses på RC4000 syvspors station, på RC8000 standard
syvspors station, eller på RC8000 syvspors station med 9-spors
driver (1 karakter pr. byte). 
 
Konverteringen standser, når der mødes en blok med hård paritets-
fejl (5 omlæsninger). 
 
Man kan dog standse konverteringen, når det ønskede antal filmær-
ker er læst; (bemærk at der normalt er to filmærker pr. logisk
fil). 
 
Program kald: 
 
<destination file' = convertgier <sourcefile', 
 
M_m_m_yesyesyesyes
  even.       high.       byte.       short.
P_p_p_no    nono no
 \f

M_m_m_             yesyes
  mix.       nrz.       files.<no of files'
P_p_p_no  no
 
M_m_m_yesyes
  log.       test.
P_p_p_no no
 
<destination file' er navnet på et discareal 
 
<source file' et navnet på et 7 kanal bånd (må ikke være filede-
              scriptor, da filer ikke kan konverteres enkeltvis).
 
<even'        betyder, at båndet læses i lige paritet. 
 
<high'        betyder, at båndet er i high density (har kun be-
tydning for værdien af high density bitten i file-
descriptoren for discarealet). 
 
<byte'        betyder, at båndstationen opereres fra en 9-spors
driver, dvs. der læses 1 karakter (6 bit) pr. byte
(8 bit). Evt. er båndet 9-spors, genereret af >con-
vert8602>.
 
<short'       Båndet forudsættes skrevet med afkortet ordlængde
(24 bit pr. ord) 
 
<mix'         Både blokke i normal ordlængde og blokke i afkortet
ordlængde er tilladt på samme bånd. 
 
<nrz'         skal altid være nrz.yes ved syvspors bånd. nrz.no
tillader, sammen med byte.yes, læsning i pe-mode
fra 9-spors bånd, genereret af >convert8602>. 
 
<files'       forudsat der ikke forinden er opstået hård pari-
tetsfejl, termineres konveteringen, når det angivne
antal filmærker er overført. 
 \f

                   <log'         bevirker, at der for hver læst blok listes de 5
              første ord i svaret fra båndstationen, dvs. status,
              antal halvord, antal bytes, filnr og bloknr. 
 
<test'        bevirker udskift af blokkenes indhold karaktervis. 
  
Standardværdierne for parametrene svarer til kaldet: 
 
Even.no high.yes byte.no short.no mix.yes nrz.yes, files.100
log.no test.no. 
 
Behandlingen af de to forskellige ordlængder, styret af <short'
og <mix' parametrene er i detaljer således: 
 
1. tilfælde: short.no mix.yes 
   alle blokke, hvor antallet af karakterer er deleligt med 7 be-
   trages som normal ordlængde (42 bit/ord). 
Er karakterantallet ikke deleligt med 7 undersøges, om det er
deleligt med 4. Hvis ja, betragtes blokken som skrevet i af-
kortet ordlængde, og en kontrol udskift udsendes. Hvis nej,
betragtes blokken som normal ordlængde, men der udskrives en
>word defect> alarm. 
 
2. tilfælde: short.no mix.no 
alle blokke betrages som normal ordlængde. Hvis karakter an-
tallet ikke er deleligt med 7, udskrives en >word defect> a-
larm. 
 
3. tilfælde: short.yes mix.yes 
alle blokke, hvor antallet at karakterer er deleligt med 4 be-
tragtes som skrevet i afkortet ordlængde (24 bit/ord). 
Er karakterantallet ikke deleligt med 4, men med 7, betragtes
blokken som skrevet i normal ordlængde, og en kontroludskrift
udsendes. 
Er karaktertallet hverken deleligt med 4 eller 7, betragtes
blokken som afkortet ordlængde, men der udskrives en >word de-
fect> alarm. 
 \f

                   4. tilfælde: short.yes mix.no 
   alle blokke betragtes som afkortet ordlængde. Hvis karakter
antallet ikke er deleligt med 4, udskrives en >word defect>
alarm. 
 
Bemærk, at konverteringen af et blandet bånd i tilfælde 1 og til-
fælde 3 vil give samme resultat (bortset fra kontroludskrifterne),
medmindre der optræder blokke, hvor karakterantallet er deleligt
med b_å_d_e_ 7 og 4. 
 
Det dannede discareal får sat contry (det niende ord i catalog
tail), til følgende indhold: 
  _w_r_i_t_e_ _e_n_a_b_l_e_ 
 
  _h_i_g_h_ _d_e_n_s_i_t_y_ 
_______________________________________________________ 
 _ _ _ _ _ _ _1_7_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _1_5_ _ _ _ _ ___ 
011 1217 18 19 2023
 
Convertgier afleverer altid discarealet med write enable = 0. 
Et bånd med high density vil da give følgende contry: 17.31 
 
                    C_o_n_v_e_r_t_8_6_0_2_ 
 
FP-programmet convert8602 konverterer et RC8000 discareal, for-
matteret som en kædefil, til fysiske 7-spors magnetbånd. 
 
Discarealet, der skal konverteres, er genereret af RC8602sim som
et emuleret bånd, eller af convertgier. Blokkene kan være i ulige
eller lige paritet, i normal eller afkortet ordlængde. 
 
Program kald: 
 
<båndnavn' = convert8602 <discareal', 
 
M_m_m_ yes1yes1yes   1 
        byte.           nrz.          log. 
P_p_p_no 0no 0 no    0 
 \f

                   byte.yes bruges ved 9-spors driver 
 
nrz.no    bruges, hvis båndstationen faktisk er 9-spors, og
          pe-mode (1600 bpi) ønskes. 
 
log.yes   bevirker udskrift af en loglinie fra hver blok, der
          overføres, med følgende format: 
 
<gierord' <gierord*4' <gierord*7' <filno' <blokno' 
 
Standardværdierne af parametrene svarer til kaldet: 
 
     <båndnavn' = convert8602 <discareal', 
 
          byte.yes nrz.yes log.no 
 
Den maksimale bloklængde, der kan overføres, begrænses af buffer-
størrelsen for båndstationen, normalt 1040 RC8000 ord. Den til-
svarende maksimale bloklængde i GIER-ord bliver da 
 
          1040 x 4 // = 594 
 
med byte.no, og 
 
          1040 x 3 // 7 = 445 
 
med byte.yes. 
 
Med afkortet ordlængde bliver den maksimale bloklængde i de to
tilfælde 
 
          1040 x 4 // 4 = 1040 GIER-ord, hhv. 
          1040 x 3 // 4 =  780 GIER-ord. 
 
Anvendes en standard RC8000 båndstation, (byte.no), vil det ikke
være muligt at anvende normal ordlængde, idet det nøjagtige antal
karakterer ikke kan styres. 
 \f

                   Anvendes derimod 7-spors station med en ni-spors driver, kan så-
vel normal som afkortet ordlængde anvendes (byte.yes), men på be-
kostning af den maksimale bloklængde. 
 
Anvendes en standard 9-spors station med byte.yes, anbringes en 6
bits karakter i hver byte. De to mest betydende bit i byten nul-
stilles. Dette format kan læses tilbage til disc>en med "convert-
gier" med parameteren byte.yes. 
 
Konverteringen termineres, når logisk båndslut (kædeterminator)
mødes. Fejlterminering kan ske i tilfælde af hård båndfejl eller
discfejl, eller ved inkonsistens i kædeinformationen. 
 
Nødvendig processtørrelse er ca. 70000 halvord. 
 
          E_x_t_e_r_n_a_l_ _A_L_G_O_L_ _p_r_o_c_e_d_u_r_e_ _i_n_r_e_c_8_6_0_2_ 
 
Proceduren inrec8602 læser et emuleret bånd fra et discareal, som
er genereret af enten RC8602sim, convertgier eller outrec8602. 
 
Inrec8602 fjerner kædeelementerne og leverer datainformationen
blok for blok som zonerecords i zonen z. Retur parameteren "size"
angiver bloklængden i GIER ord, og returparameteren "type" angiv-
er bloktypen: 
 
          type = 0:  datablok i ulige paritet 
          type = 1:  datablok i lige paritet 
          type = 2:  filmærke 
          type = 3:  terminator (logisk båndslut). 
 
Procedure hoved: 
 
          inrec8602 (z, size, type) ; 
          zone       z              ; 
          integer       size, type  ; 
 
zonen z skal erklæres således: 
 
      zone  <navn' (n*128, 1, std-error) \f

                   hvor n'= 2, og n*128 ' maksimale blokstørrelse + 132. Hvis n = 34
kan den største tænkelige GIER-blok (4095 ord) håndteres. Zonen
skal åbnes før kald af inrec8602, men derudover må brugeren ikke
ændre zonens tilstand. 
 
Bemærk, at inrec8602 ikke ompakker data, dvs. der er pakket t
GIER-ord i hvert dobbeltord jvfr. den interne repræsentation i
RC8602. 
 
Ved læsning af teminatoren (type = 3) lukkes zonen automatisk. 
 
Inrec8602 er reentrant med hensyn til forskellige zoner. 
 
 
          E_x_t_e_r_n_a_l_ _A_L_G_O_L_ _p_r_o_c_e_d_u_r_e_ _o_u_t_r_e_c_8_6_0_2_ 
 
Proceduren virker analogt med inrec8602, blot skrives et disc-
areal istedet. Discarealet forsynes med RC8602 kompatible kæder.
Når outrec8602 kaldes med type = 3, skrives et terminator ele-
ment, zonen lukkes, og discarealets contry sættes til: 
 
          17 shift 12 + 31 
 
dvs. fileprotect, high density. Desuden sættes shortclock i ind-
gangen. \f

         C_._ _ _ _ _ _ _ _ _F_P_-_p_r_o_g_r_a_m_m_e_r_ _f_o_r_ _s_t_r_i_m_m_e_l_h_å_n_d_t_e_r_i_n_g_ C.
 
Til håndtering af information på karakterniveau, f.eks strimler
og tekster, og til konvertering mellem forskellige alfabeter,
findes programmerne: "copygier", "convertdata" og "linkdata". 
 
                    C_o_p_y_g_i_e_r_ 
 
Programmet er et FP-program, der bruges til indlæsning og check
af datastrimler til RC8602. Ved kørsel under BOSS indlæses strim-
len til et temporært areal ved hjælp af BOSS-funktionen "load
trn". Derpå anvendes copygier til at kontrollere informationen
for paritetsfejl samt at flytte den til et andet disckit med per-
manente ressourcer. 
 
Programkald (BOSS): 
M_m_m_1 
     <discnavn' = copygier   end.<endchar'     <arealnavn' 
P_p_p_00 
 
bevirker, at informationen læses fra det temporære areal <areal-
navn', checkes, og flyttes til et user areal af samme navn på
disc>en <discnavn'. 
 
Programkald (s): 
 
     <discnavn' = copygier   end.<endchar'  trn 
 
bevirker, at en strimmel indlæses fra RC2000, checkes, og an-
bringes i et user areal med navnet "trn" på disc>en <discnavn'.
Arealet bør renames straks efter. 
 
Hvis der angives flere <arealnavn' parametre kædes samtlige in-
putarealer sammen og anbringes i samme user areal. Dette areal
får navn efter den første <areal navn' parameter. 
 \f

                   Dersom hver enkelt strimmel skal være afsluttet med en bestem ka-
rakter, kan dette gøres med parameteren end.<endchar'. Det kon-
trolleres da, at hver strimmel slutter med <endchar' og, dersom
dette ikke er tilfældet, tilføjes den. 
 
Efter konverteringen udskrives det totale antal karakterer, samt
evt. antal af paritetsfejlbehæftede karakterer. 
 
Eksempel på indlæsning og kædning af to inputstrimler: 
 
job j 1 load trn input input1 
dk280941 = copygier input input1 
lookup input 
finis 
 
"lookup" kommandoen vil da give udskriften: 
 
input = set 19 dk280941 d.791227.1230 0 0 17.0 0; user 
 
                    c_o_n_v_e_r_t_d_a_t_a_ 
 
FP-programmet convertdata bruges til konvertering af tekstfiler
mellem ISO kode og en række andre koder. 
 
Input data skal være lagret på baggrundslager eller magnetbånd,
outputdata kan lagres på baggrundslager, magnetbånd eller papir-
strimmel. 
 
programkald: 
 
     convertdata out.<outfil'.<længde'.<alfabet', 
                 in.<infil'.<længde'.<alfabet' 
 
Hvis <outfil' eller <infil' er baggrundslager, skal <længde' være
768. 
 \f

                   Følgende <alfabet' kan anvendes til output: 
 
     iso 
     gflexmt 
     ebcdic 
     gflexperf 
     gflexprog 
     gflexmt7sp 
 
Følgende <alfabet' kan anvendes til input: 
 
     trntrn 
     iso 
     RC3100mt 
ebcdic 
     flextrn 
     olivettitrn 
     tretrn 
     trotrn 
     datapoint 
 
Eksempel 1: 
 
     En flextrn fil ønskes konverteret til iso for editering
eller udskrift. filens navn er "løndata": 
 
løniso = set 1 
convertdata out.løniso.768.iso in.løndata.768.flextrn 
 
Eksempel 2: 
 
Konvertering af en iso-fil til flextrn foretages med kaldet:
 
     prgtxt = set 1 
     convertdata out.prgtxt.768.gflexprog, 
                 in.isoprg.768.iso 
 
Parameteren "gflexprog" er velegnet ved konvertering af pro-
gramtekster, idet store og små bogstaver konverteres kor-
rekt. \f

                        Ved visse typer data kan i stedet anvendes "gflexperf", der
     behandler bogstaver som "case free", dvs. et bogstavs case
     bestemmes af den sidste separator. 
 
                   L_i_n_k_d_a_t_a_ 
 
FP-programmet "linkdata" bruges ved sammenkædning af flere
iso-filer på disc til n fil. Programmet kan indsætte op til seks
karakterer i begyndelsen af hver datastreng. 
 
Parametrene er: 
 
M_m_m_61 
<outareal' = linkdata  separator  .isoværdi          inputareal 
P_p_p_                                             1    0              1
 
Standardværdierne for separator tegnene er: 
 
     12, 2, 0, 48, 10 
 \f

         D_._ _ _ _ _ _ _ _ _F_P_-_p_r_o_g_r_a_m_m_e_r_ _f_o_r_ _d_i_s_c_-_f_i_l_ _h_å_n_d_t_e_r_i_n_g_ D.
 
Da GIER>s magnegbånd er repræsenteret som discaealer i RC8602
systemet, har det vist sig at være hensigtsmæssigt at kode nogle
hjælpeprogrammer, der letter håndteringen af disse filer. Pro-
grammet "areadisp" anvendes ved overvågning af en kørsel, og
programmerne "fromto" og "speedcopy" er egnede til hurtig fil-
flytning og sikkerhedskopiering. 
 
                    A_r_e_a_d_i_s_p_ 
 
Areadisp er et FP-program, der kan udskrive navn og størrelse på
de discarealer, der er åbnet af en given proces. 
 
Programkald: 
 
M_m_m_     1 
     areadisp <proces navn'  <antal'.<interval' 
P_p_p_0 
 
Arealerne udskrives <antal' gange med et interval på <interval'
sekunder. Operatøren er således i stand til løbende at overvåge
en kørsel, f.eks. ved at betragte væksten af outputarealerne. 
 
Areadisp er bedst egnet til kørsel under s eller sos, idet BOSS
ikke swopper jobbet mellem udskrifterne. 
 
                    F_r_o_m_t_o_ 
 
Fromto er et FP-program, der kopierer discarealer med høj
hastighed. 
 
programkald: 
 
M_m_m_     1 
     fromto  <frafil'.<tilfil'  .<kitnavn' 
P_p_p_0     1 
 \f

                   Eksempel 1: 
 
     fromto glkart. nykart.dk230111 
 
kopierer arealet "glkart" til et nyt aral "nykart", som dannes på
kittet dk230111. Det nye areal får samme kataloghale og såvidt
muligt samme scope. 
 
Hvis <frafil' har scope "system" eller udefineret scope, får
<tilfil' temporært scope. 
 
Hvis <tilfil' fandtes i forvejen, ændres dens scope, såfremt det
er mindre end <frafil', efter følgende regel: 
 
<frafil'            <tilfil'            <tilfil' 
 scope              gl.scope            nyt. scope 
 
temp                temp                temp 
                    login               login 
                    user                user 
                    project             project 
                    system              temp* 
 
login               temp                temp 
                    login               login 
                    user                user 
                    project             project 
                    system              login* 
 
user                temp                user 
                    login               user 
                    user                user 
                    project             project 
                    system              user* 
 \f

                   project             temp                project 
                    login               project 
                    user                project 
                    project             project 
                    system              project* 
 
system              temp                temp 
                    login               login 
                    user                user 
                    project             project 
                    system              temp* 
 
* betyder, at der er dannet et temporært areal, som derpå scopes
  til det angivne niveau. 
 
Eksempel 2: 
 
Et programareal på system niveau ønskes kopieret til et temporært
areal af samme navn: 
 
     fromto lønprog.lønprog 
 
                    S_p_e_e_d_c_o_p_y_ 
 
FP-programmet speedcopy kopierer discarealer med temp, login el-
ler userscope til et areal på et specificeret kit, med samme na-
vn, men med scope "project". 
 
Hvis arealet fandtes i forvejen med "project" scope, vil dette
normalt forblive uændret, medmindre der specificeres remove.yes. 
 
Speedcopy er specielt beregnet på sikkerhedskopieringer. 
 
programkald: 
 
M_m_m_     yes 
     <kitnavn' = speedcopy  remove.       <discareal' 
P_p_p_no                1 
 \f

                   <kitnavn':     navnet på det disckit, hvorpå sikkerhedskopierne
               ønskes dannet 
 
<remove':      remove.yes medfører, at for de efterfølgende <disc-
               areal' vil en evt gammel fil blive overskrevet.
               Standard er remove.no 
 
<discareal':   skal være navnet på et discareal, som har "temp",
               "login" eller "user" scope. 
 \f

         E_._ _ _ _ _ _ _ _ _A_l_f_a_b_e_t_i_s_k_ _l_i_s_t_e_ _o_v_e_r_ _f_e_j_l_u_d_s_k_r_i_f_t_e_r_ _f_r_a_ _R_C_8_6_0_2_s_i_m_ E.
 
<area name' already mounted 
     forekommer i "connect" og "create" kommandoerne, hvis der
allerede er tilkoblet et areal til den specificerede sta-
tion, eller det specificerede areal allerede er tilkoblet en
anden station. 
 
area claim <areas' 
Processen er startet med for få arealprocesser. Det aktuelle
antal arealprocesser udskrives. 
 
autoload button, ot = <ot' 
Autoload knappen har været aktiveret. (Normalt er dette en
fejl). 
 
blokchain fault on unit <unit no' 
<details' 
Ved læsning af et simuleret bånd er der konstateret inkonsi-
stens i kæderne. <details' indeholder supplerende informa-
tion on det læste kædeelement. 
 
breakpoint <ot' 
Breakpoint stop. <ot' peger på den næste instruktion. 
 
buf claim <buffers' 
Processen er startet med for få message buffere. Det
aktuelle bufferclaim udskrives. 
 
bus nack, ot = <ot' 
RC8602 devicet har konstateret busfejl under en lagertrans-
port. Alvorlig hardwarefejl. 
 
bus parity, ot = <ot' 
RC8602 devicet har konstateret bus paritetsfejl under en
lagertransport. Skyldes sandsynligvis lagerfejl. Check
corestore parity lamperne. 
 \f

                   bus timeout, ot = <ot' 
     RC8602 devicet har konstateret bus timeout under en lager-
transport. Alvorlig lagerfejl. 
 
***connect <filname' <error cause' 
Ved stakning af current input er den fejl ved tilkoblingen
af <filname'. Fejlen angives i <error cause'. Forekommer ved
"cmd" kommandoen, eller ved fejl på terminalen. 
 
control: 
Margin udskift. Betyder, at denne og efterfølgende linier
indtil en ny margin udskift er control-mode kommunikation. 
 
coresize <size' 
RC8602sim er startet i en for lille proces. <size' er den
disponible plads til tapebuffere. Denne skal være mindst
1024 halvord pr. zone. Processtørrelsen bør ikke være mindre
end 100000 halvord. 
 
***create area claims exceeded 
Processen har for få areal processer. Minimum er "area 15". 
 
***create entry claims exceeded 
"create" kommandoen kan ikke danne noget areal på det
specificerede kit. 504 segmenter og 1 entry er nødvendige. 
 
***create entry document not mounted 
"create" kommandoen angiver et disc-kit, der ikke er
monteret, eller ikke er ready. 
 
debugger: 
Margin udskrift. Betyder, at denne og efterfølgende linier
indtil en ny margin udskrift er output fra debuggeren. 
 
debug stop, ot = <ot' 
Debugger stop. kan normalt ikke forekomme. 
 \f

                ***device status sscirgier1 <statusord' 
     Alvorlig hardware eller systemfejl, RC8602 evt afmonteret
eller monitordriver ikke tilstede. 
 
***end document on tapereader area 
Ved læsning af et areal tilkoblet emulatorens strimmellæser
er der læst ud over kanten (strimmelinformationen har ikke
været afsluttet med en NUL karakter). 
 
***entry is not a RC8602 tape 
I "connect" kommandoen angives et areal, der ikke indeholder
et emuleret bånd. (Contry skal være 17.63, (write enable)
eller 17.31, (protected)). 
 
***file already connected to <device type' 
Der forsøges tilkoblet en fil, der allerede er i brug. 
 
g-dump error, ot = <ot' 
Alvorlig hardware fejl i RC8602 ved dump af de interne regi-
stre. 
 
g-load error, ot = <ot' 
Alvorlig hardware fejl i RC8602 ved loadning af de interne
registre ved start. 
 
***illegal a-svitch, ot = <ot' 
Fejl i mikroprogram adresseswitchen. CPU-fejl i RC8602. 
 
***illegal address 
Lager adressen i en control-kommando, f.eks. "print", er
større end 1023. 
 
***illegal command 
Sandsynligvis stavefejl i en control kommando. 
 
***illegal unitno 
Der angives et unit nummer, der ikke er tilladt for den
pågældende enhed. 
 \f

                ***i - løkke, ot = <ot' 
     Uendelig paranteskæde. <ot' peger på den følgende instruk-
tion, og denne vil blive udført ved "resume". 
 
***<filename' input exhausted 
Den løbende jobfil <filename' er læst til ende, og der
afstakkes. Forekommer, hvis filen var valgt med cnd <file-
name'. 
 
***limit violation, ot = <ot' 
Alvorlig hardware fejl i RC8602 CPU>en. 
 
***line too long 
Control-mode kommando linie på mere end 75 tegn er læst. 
 
***Microprogram fault*** 
push RESET button on RC8602 
 
Mikroprogrammet i RC8602 devicet er gået i stå (typisk
p.g.a. paritetsfejl i ROM lageret). Kørslen kan ikke genop-
tages, før RESET-knappen på teknikerpanelet på RC8602 har
været aktiveret. I mangel af dette, må maskinen slukkes og
tændes, (Power reset). 
 
***mode error, not shortmode block, unit <unit no' 
En båndblok, skrevet i standard ordlængde, læses i afkortet
ordlængde. Skyldes som regel fejl ved dannelsen af arealet
med "convertgier". 
 
***mode error, shortmode block, unit <unit no' 
En båndblok, skrevet i afkortet ordlængde læses i normal
ordlængde. Skyldes som regel fejl ved dannelsen af arealet
med "convertgier". 
 
no ring on unit <unit no' 
Der forsøges skrivning på en simuleret båndstation uden
write enable markering, (contry er 17.31 i stedet for
17.63).  \f

                   no tape on unit <unit no' 
     Forsøg på aktivere en emuleret båndstation, der ikke har
noget areal tilkoblet. 
 
***parameter errror <illegal parameter' 
Fejl i FP-parametrene til RC8602sim. 
 
***persistent read outside tapeend: unit <unit no' 
Der forsøges læst mere, end der er skrevet på et emuleret
bånd. Bånddriveren signalerer, at der er læst en blok på tre
ord med paritetsfejl. Efter 5 gentagne læsninger skiftes til
controlmode. 
 
***power restart, ot = <ot' 
Power fejl på RC8602 CPU>en. 
 
***printer not available 
Printer kan ikke reserveres. Forekommer kun i "lp" komman-
doen. 
 
***reader exhausted 
Strimmellæseren er læst tom (NUL karakter er mødt). Kørslen
kan fortsættes med "hp" kommandoen, eller med "reset",
"resume".  
      
RC8602 stopped by attention 
RC8602 er stoppet ved "att" til processen. 
 
***RC8602 disc status <area name' <status bit' 
Fejl på discarealet <area name'. Mest almindeligt er: "end
document", der betyder, at arealet ikke kan udvides p.g.a.
ressourcenød. 
"timer" betyder kitfejl eller hardwarefejl. 
 
***remove entry tape in use 
Der forsøges fjernet et areal, der er tilkoblet en emuleret
båndstation. 
 \f

                   resume-count exhausted 
     Det ønskede antal instruktioner angivet ved resume <instruc-
tions' 
er udført. 
 
skipped: 
Marginudskrift. Betyder, at denne og efterfølgende linier
indtil en ny margin udskrift overspringes. 
 
***Stopped in ZQ, ot = <ot' 
RC8602 er stoppet i en ZQ-ordre. <ot' peger på den følgende
instruktion. 
 
***str.læs.par.fejl 
Paritetsfejl på strimmellæseren. Kørslen fortsættes. 
 
***syntax error 
Der er syntaksfejl i en control kommando. 
 
***table error <table entry' <table contents' 
Der er inkonsistens i RC8602 tabellen, den fejlramte indgang
udskrives. Alvorlig systemfejl. 
 
***tom operation, ot = <ot' 
Illegal operation. Instruktionen kan udskrives med "print"
kommandoen med <ot' eller <ot'-1 som parameter. Som regel
programfejl i GIER programmet. 
 
***tromlefejl, illegal track number = <trakno' 
Der forsøges læsning eller skrivning uden for tromlen. Fejl
i GIER-programmet. 
 
type-in: 
Marginudskrift. Betyder, at der læses ind til GIER-program-
met, (LY-ordren). 
 \f

                   type-out: 
     Margin udskrift. Betyder, at denne og efterfølgende linier
indtil en ny margin udskrift er output fra GIER-programmet,
(SY-ordren). 
 
***unable to assign <unit no' caused by too few tape stations. 
Der forsøges anvendt flere båndstationer samtidigt end
specificeret med "tapes" parameteren (standard er tapes. 4).
 \f

 
 \f

«eof»