|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC850 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC850 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 170624 (0x29a80) Types: TextFile Names: »GIERSIM«
└─⟦06e5a69d9⟧ Bits:30005862 Diverse system programmer └─⟦this⟧ »GIERSIM«
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»