|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 140800 (0x22600) Types: TextFile Names: »D113«
└─⟦2520239fd⟧ Bits:30005867/disk13.imd Dokumenter (RCSL m.m.) └─⟦this⟧ »D113«
\f B_a_c_k_i_n_g_ _S_t_o_r_e_ _A_r_e_a_ G_e_n_e_r_a_l_ _R_u_l_e_s_ The process kind is 4. Sense, position, and input operations can be initiated by an internal process that is a user of the area process. An area process accepts input, sense, and position mess- ages simultaneously from more than one process provided no pro- cess has reserved it. Output operations require that the area process has been reserved. The error recovery procedure is simil- ar to the one used when accessing the disc directly, see ref. 1 (all references to ref. 1 are only valid for areas on RC82xx). M_o_d_e_ The mode field of messages is used for specifying special actions and consists of a sum of one or more of the following values: 2 specifies suppression of automatic error recovery. Will override mode 4. See ref. 1. 4 specifies limited error recovery on parity error occur- ring at an input operation. See ref. 1. The normal mode (zero) implies: - full error recovery. S_e_n_s_e_ _O_p_e_r_a_t_i_o_n_ The device on which the area is stored is sensed. \f I_n_p_u_t_ _O_p_e_r_a_t_i_o_n_ A number of consecutive segments of 256 words each is input to a storage area within the sending process. The first segment number relative to the beginning of the area on the backing store is also given in the message. The segments need only be consecutive in a logical sense, thus securing that the user does not have to be aware of the size and position of the slices of an area. The operation transfers the maximum number of segments for which there is room within the storage area, i.e. number of segments = (last storage address + 2 - first storage address)//512 If the input block thus specified exceeds the upper limit of the area on the backing store, input is performed only of that part of the block that is within the area. In any case the actual num- ber of halfwords transferred is given in the answer. The number of halfwords transferred is a multiple of 512. The number of characters is defined as three times the number of words transferred. If the first segment is outside the limits of the area, input is not initiated, but the answer contains a status bit, end of area, and the block length zero. O_u_t_p_u_t_ _O_p_e_r_a_t_i_o_n_ Equivalent to the input operation. \f P_o_s_i_t_i_o_n_ _O_p_e_r_a_t_i_o_n_ The read/write heads on the device on which the area is stored are moved to the segment number given in message (specified relative to the beginning of the area on the backing store). If the segment is outside the limits of the area, no operation is initiated, but the answer contains a statusbit, end of area. S_t_a_t_u_s_ _B_i_t_s_ 0 intervention (only RC82xx) 1 parity error or hard error 2 timer (only RC3652) 2 synchronization error (position error) (only RC82xx) 3 data overrun 5 end of area 10 read error (address error) (only RC3652) 11 disc error (mode 4, input operation) (only RC82xx) M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ o_pe_ra_ti_on_: m_es_sa_ge_: a_ns_we_r:_ sense 0<12 + mode statusword 0 0 i/o result current status event status detailed status \f o_pe_ra_ti_on_: m_es_sa_ge_: a_ns_we_r:_ input 3<12 + mode statusword first storage address number of halfwords last storage address number of characters first segment number i/o result current status event status detailed status output 5<12 + mode statusword first storage address number of halfwords last storage address number of characters first segment number i/o result current status event status detailed status position 8<12 + mode statusword (only RC82xx) irrelevant 0 irrelevant 0 segment number i/o result current status event status detailed status The information supplied in the answer from fourth word and on is normally only interesting to test programs. See ref. 1. \f R_e_f_e_r_e_n_c_e_s_ 1 RCSL 31-D528 RC8000 Disc Process \f G_e_n_e_r_a_l_ _R_u_l_e_s_ Operations can be initiated by an internal process that has i_n_- i_t_i_a_l_i_z_e_d_ or r_e_s_e_r_v_e_d_ the device. The device is sensed before each operation. If the status word indicates an intervention by the operator in the local mode, the name of the process is removed (together with the present reser- vation) and all messages are answered with the result: r_e_c_e_i_v_e_r_ d_o_e_s_ _n_o_t_ _e_x_i_s_t_. The device is now in the state: d_o_c_u_m_e_n_t_ r_e_m_o_v_e_d_. When the operator switches back to r_e_m_o_t_e_ mode, the device state will be set to: u_n_i_d_e_n_t_i_f_i_e_d_ _d_o_c_u_m_e_n_t_ _m_o_u_n_t_e_d_. When the device is named by the monitor procedure c_r_e_a_t_e_ _p_e_r_i_p_h_- e_r_a_l_ _p_r_o_c_e_s_s_, the device state becomes: i_d_e_n_t_i_f_i_e_d_ _d_o_c_u_m_e_n_t_ m_o_u_n_t_e_d_. F_i_l_e_ _a_n_d_ _B_l_o_c_k_ _C_o_u_n_t_ All answers from magnetic tape contain a file and block number defining the position of the tape after the operation. These numbers are undefined after mounting. File and block number are reset to zero only when load point is sensed after an operation. The file number is increased by one after the output of a tape mark or the sensing of a tape mark during a forward operation. It is decreased by one when a tape mark is sensed after a backward operation. The block number is increased by one when a block is input, output, or upspaced. If a tape mark is sensed during a forward operation, the block number is set to zero. The block number is decreased by one when a block is backspaced. \f These simple file and block numbers are based solely on a count of initiated operations and sensed status bits. There is no check against file and block numbers recorded in labels and data blocks. D_e_n_s_i_t_y_ The density of the station is NRZ (800 bpi). B_l_o_c_k_ _S_i_z_e_ The storage area defined by input or output operations must not exceed 2080 halfwords. A violation will be treated as an u_n_i_n_t_e_l_- l_i_g_i_b_l_e_ _m_e_s_s_a_g_e_. S_e_n_s_e_ _O_p_e_r_a_t_i_o_n_ The device is sensed and the status word delivered as an answer. I_n_p_u_t_ _O_p_e_r_a_t_i_o_n_ A block of characters is input to a storage area within the send- ing process. Each storage word contains three 8-bit characters. Unused character positions in the last input word are filled with NUL characters. Input is terminated, when 1) data have been transferred to the last storage address, or 2) the block on the tape is exhausted, or 3) data overrun is detected, or 4) timer error is detected, whichever occurs first. \f O_u_t_p_u_t_ _O_p_e_r_a_t_i_o_n_ A storage area within the sending process is output as one block. Each storage word is output as three 8-bit characters. Output is terminated, when 1) the whole block has been output, or 2) output of an all-zero even parity character by NRZ is attempted, or 3) data overrun is detected, whichever occurs first. E_r_a_s_e_ _O_p_e_r_a_t_i_o_n_ Erases a length of tape. M_o_v_e_ _O_p_e_r_a_t_i_o_n_ Moves the tape in accordance with the move operation defined in the message (if the move operation is negative or greater than six it is treated as a sense operation): move operation: 0 upspace file 1 upspace block 2 backspace file 3 backspace block 4 rewind tape 5 unload tape 6 position tape Move operation 6 positions the tape as specified in the message. If the specified file or block number is negative the operation is treated as a sense operation. If the block specified does not exist the tape will be positioned at the start of the file after the one specified. \f Move operation 5 rewinds the tape and when BOT is sensed sets the unit off-line. If the specified file and block number is zero, a rewind operat- ion is always executed. O_u_t_p_u_t_ _T_a_p_e_ _M_a_r_k_ Outputs two tape marks and positions after the first. S_e_t_ _M_o_d_e_ _O_p_e_r_a_t_i_o_n_ This operation is dummy except at load point when a check of the actual density is performed. M_o_d_e_ Characters can be input or output in several ways defined by the sum of numbers specifying parity, density, and trail. mode = slew < 8 + ecma < 7 + trail < 4 + density < 2 + parity parity: 0 odd parity density: 1 800 bpi/nrz trail: the number of characters not to be transfer- red from the last doubleword of the storage area specified in an output operation. Allow- ed numbers 0, 1, 2, 3, 4, 5. Only relevant for output operations. If number > 5 the trail will be set to 5. \f ecma: 0 reads and writes the tape according to EC- MA-34 Standard 2nd Edition (July 1973) 1 read only. Tape is written according to EC- MA-34 Standard 1st Edition (September 1971) slew: 0 normal 1 slew mode S_t_a_t_u_s_ _B_i_t_s_ 0 intervention 1 parity error (after input, output, and erase) 2 timer (after input and output) 3 data overrun (after input and output) 4 block length error (after input) 5 EOT sensed (after input, output, erase, and upspace) 6 BOT sensed (after rewind and backspace) 7 tape mark sensed (after input, output tape mark, upspace, and backspace) 8 write-enable sensed (permanent) 9 mode error \f S_p_e_c_i_a_l_ _S_t_a_t_u_s_ _A_c_t_i_o_n_s_ T_i_m_e_r_ If a timer error is detected in the status word the unit will be rewound the file no and block no will be set to zero. W_r_i_t_e_ _E_n_a_b_l_e_ If the operation is output, erase, or output tape mark and the status word does not indicate write-enable, the operation will be treated as a sense operation. M_o_d_e_ _E_r_r_o_r_ Mode error will only occur when the commands input/output, or set mode are used. If a mode error is detected in the status word a possible input or output operation is not executed. File no and block no are unchanged. The command which causes the mode error will be treated as a sense operation. M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ operation: message: answer: sense 0 status word 0 0 file number block number \f operation: message: answer: input 3 < 12 + mode status word first storage address number of halfwords last storage address number of characters file number block number output 5 < 12 + mode status word first storage address number of halfwords last storage address number of characters file number block number erase 6 < 12 + 0 status word 0 0 file number block number move 8 < 12 + 0 status word move operation 0 file number 0 block number file number block number output tape 10 < 12 + 0 status word mark 0 0 file number block number set mode 14 < 12 + mode status word 0 0 file number block number \f 1_ _B_a_g_g_r_u_n_d_ _f_o_r_ _p_r_o_j_e_k_t_e_t_ A/S Regnecentralen af 1979 har gennem lang tid deltaget i arbej- det for på internationalt plan at frembringe generelle standar- der og modeller for sammenkobling af udstyr. Dette arbejde er nu resulteret i enighed mellem organisationer som ISO, CCITT og ECMA vedrørende udformning af en referencemodel samt realisation i form af forskellige udkast til standarder. Den første egentlige totalservice, som følger rammerne af oven- nævnte arbejde, er TELETEX, som specificerer standarder for doku- menttransport mellem ikke flygtige lagre samt repræsentationen af sådanne dokumenter. TELETEX tænkes i første omgang anvendt ved enkeltstående TELETEX- terminaler, som tilbyder integreret tekstbehandling og dokument- kommunikation mellem enheder af principielt forskellig fabrikat og under anvendelse af et offentligt datanet. Imidlertid kan det allerede nu forudses, at TELETEX markedet vil udvikles yderligere. TELETEX ses omtalt vedrørende gateway funk- tioner mellem lokalnet og offentlige net, og det kan forudses, at TELETEX vil blive anvendt ved extern kommunikation fra et lokal- miljø, som desuden tilbyder andre, men lokale tjenester. Sådanne tjenester vil indgå i det koncept, som i dag kendes under navnet, det automatiserede kontor. Ud over den enkeltstående TELETEX terminal vil TELETEX blive be- nyttet som value-added facilitet til eksisterende markeder som IBM-kompatible terminaler og tekstbehandlingsudstyr. \f A/S Regnecentralen af 1979 angriber markedet ved RC855 og RC3900 Cluster Controller, der introduceres som en generaliseret termi- nal og som en tekstbehandlingsfacilitet med følgende nøgleord IBM 327X datakommunikation Tekstbehandling Teletex Samme maskinel finder anvendelse ved realisation af klyngekonfi- gurationer, som dels tilbyder gateways til IBM hosts, men som også tilbyder et lokalt miljø samt anvendelse af lokalnet. A/S Regnecentralen af 1979 introducerede allerede i 1979 ideen vedrørende realisation af ISO modellen i form af en generaliseret terminal, og blev af EF udvalgt som et af de 14 konsortier, som blev tildelt midler i første uddeling efter 4-års programmet. Dette projekt er nu i sin afsluttende fase, og vil bl.a. resulte- re i en tekstbehandlingsfacilitet med mulighed for udveksling af tekstfiler under anvendelse af TETELTEX kommunikation. Programmel strukturen for den ved EF lånefinancierede udvikling udgør en relalisation af ISO-OSI referencemodellen. Systempro- grammeringssproget er Pascal 80, der generelt definerer en vir- tuel maskine, hvorved projektet har meget få maskinelle bindin- ger. Udbyttet af EF-projektet har dels været to produkter, men desuden og som det væsentligste en erfaring som ved nærværende projekt kapitaliseres i form af TELETEX relaterede produkter. Udbyttet af Udviklingsfondets tidligere omtalte lånefinanciering bliver udviklingen af RC3900 grundsystemet samt bl.a. udvikling af gateways til IBM hosts. \f Nærværende projekt er en revision og en yderligere produktpræci- sion af det i vor ansøgning af 2. april 1982 beskrevne TELETEX gateway/ mailbox projekt. Der er ved omtalte revision taget hen- syn til de af EF accepterede ændringer af det af EF Lånefinancie- rede projekt, ligesom nærværende projekt udgør en fortsættelse samt en yderligere produktkonkretisering af såvel det af EF som det af udviklingsfondet lånefinancierede projekter. \f 2_ _P_r_o_j_e_k_t_r_e_s_u_l_t_a_t_ Formålet med projektet er at udvikle en enkeltstående Teletex terminal som vil kunne indgå som integrerende element i et Com- puter Based Message System (CBMS). Den enkeltstående Teletex ter- minal vil bestå af en Teletex kommunikations kontroller (Teletex Gateway), en printer, en disk samt en skærm. Teletex Gateway'en skal implementeres på RC's nye kommunikations kontroller RC3900 og Teletex tekstbehandling på RC855. Denne kon- figuration vil udgøre et væsentligt element i RC's produktreali- sation vedrørende det automatiserede kontor. Ved at følge nedenfor nævnte principper ved konstruktionen af Te- letex terminalen, vil man få et produkt, som både kan fungere som en enkeltstående Teletex terminal, og en Teletex terminal der kan indgå i et Computer Based Message System. Produktet kan dermed indgå i et kontormiljø og understøtte en avanceret lokal kommuni- kation, samtidig med at det giver mulighed for ekstern kommunika- tion med et offentligt Teletex netværk (se fig. 2.1). Derudover vil Teletex kunne benyttes som value-added facilitet for IBM-kompatible terminaler og tekstbehandlingsudstyr. Hermed kan brugeren frit fra sin terminal vælge: - Kommunikation med ekstern værtsmaskine via IBM 327X. - Teletex kommunikation. - Intern kommunikation Følgende principper vil blive lagt til grund ved konstruktionen af Teletex terminalen. - De forskellige enheder i systemet såsom Teletex skærmene, di- skene, printerne og Teletex Gateway'en vil logisk blive knyttet sammen ved at benytte principperne bag Inter Modular System- sammenkobling (DSA/IMC). - Kommunikation med omverdenen skal foregå med benyttelse af de af CCITT vedtagne internationale teletex protokoller. \f \f - Teletex terminalen skal kunne tilsluttes et Packet Switched Da- ta Netværk (X.25) med X.21 bis interface, og et Circuit Switched Data Netværk med X.21 interface. - Der skal være mulighed for kopiering, afsendelse, modtagelse, administration og udskrivning af dokumenter. - Online generering af Teletex dokumenter. - Offline generering af RC-tekst dokumenter, med senere afsendel- se både lokalt og eksternt, henholdsvis uden og med benyttelse af Teletex kommunikationsprotokollerne. - Modtagelse og afsendelse af dokumenter foregår til, henholdsvis fra en fælles disk, som kan være enten distribueret eller sidde lokalt på Teletex Gateway'en. - Dokumenter kan modtages og afsendes samtidigt og parallelt med lokal generering af nye dokumenter. - Dokumenter lagres på et ikke flygtigt medium, som kan være cen- tral eller distribueret. - Dokument editering vil kunne foregå lokalt på en disk til- knyttet Teletex skærmen eller distribueret under anvendelse af en fælles disk. - Enhver skærm skal kunne kommunikere med enhver server (disk, printer) i systemet via Teletex Gateway'en, under benyttelse af lokale protokoller. - Systemet adresseres eksternt via en X.21 eller X.25 adresse. - Brugeren eller brugergruppen specificeres ved yderligere a- dressering som angivet i S.70. \f - Hver bruger tilmeldes med en eller flere postadresser, som kan være fælles for flere brugere. - Omtalte postadresser er af brugeren kendt ved symboler hvorimod den eksterne kommunikation anvender S.70. - Der tilbydes faciliteter for lokal omadressering af modtagne dokumenter. - Til anvendelse i det lokale miljø tilbydes forskellige typer brugermeddelelser, herunder adressering som gruppekald, funk- tioner som attestation og udtalelse samt tidsbetinget afsendel- se. - Ved anvendelse af den lokale kommunikation tilbydes funktioner som elektronisk formidlet diskussion og meddelelser. - Sign- on meddelelser som f.eks. antallet af modtagne og antal- let af endnu ikke afsendte dokumenter skal gives. Ved at implementere forskellige delmængder af ovenstående, kan et antal produkter identificeres. Disse er omtalt i bilag 5. \f B_i_l_a_g_ _1_ P_r_o_j_e_k_t_b_e_s_k_r_i_v_e_l_s_e_ Projektet vil blive opdelt i følgende faser som tidsmæssigt vil følge hinanden, dog med en vis overlapning. 1. Specifikation 2. System design 3. Modul design 4. Implementation 5. System test 6. Field test 1_._ _S_p_e_c_i_f_i_c_a_t_i_o_n_ Med baggrund i de erfaringer som er gjort i det under EF's 4 års program udførte ISO-OSI projekt, hvorunder bl.a. Teletex kommuni- kationsprotokollerne er udviklet, og med hensyntagen til det mar- ked hvortil produktet er bestemt, skal der foretages en detail- specifikation af hvilke funktioner som skal implementeres. 2_._ _S_y_s_t_e_m_ _d_e_s_i_g_n_ Ud fra specifikationerne som er blevet fastlagt i projektets fase 1 skal der foretages et overordnet design af systemet. Under den- ne proces skal systemet opdeles i moduler og funktionerne i de enkelte moduler fastlægges. Desuden skal kommunikationen og græn- seflader mellem de enkelte moduler specificeres. 3_._ _M_o_d_u_l_ _d_e_s_i_g_n_ I løbet af denne fase skal der foretages et detail design af de moduler som er blevet identificeret i løbet af projektets fase 2. \f 4_._ _I_m_p_l_e_m_e_n_t_a_t_i_o_n_ Ud fra det design materiale som foreligger ved afslutningen af fase 3 vil implementationen blive foretaget. Endvidere vil fase 4 indeholde den isolerede test af de enkelte moduler. I løbet af denne fase vil det sandsynligvis blive nødvendigt at konstruere nogle testmoduler, som vil være blevet specificeret under projek- tets fase 2 og 3. 5_._ _S_y_s_t_e_m_ _t_e_s_t_ Efter at alle moduler er blevet testet isoleret i løbet af fase 4, vil de blive testet samlet i den endelige systemkonfiguration i løbet af fase 5. Ved afslutningen af denne fase vil der fore- ligge en prototype af produktet som i alt væsentlig vil opfylde specifikationerne som er blevet fastlagt i løbet af projektets fase 1. 6_._ _F_i_e_l_d_ _t_e_s_t_ I projektets afsluttende fase vil systemet blive opstillet in- ternt i RC (Ballerup og Århus). Formålet med denne fase er at få erfaringer med produktet opstillet i realistiske omgivelser. Bru- gerne vil få en fyldestgørende vejledning i brugen af systemet, hvorefter det er meningen de skal benytte det i deres daglige ar- bejde. Der vil samtidig være en tæt kontakt mellem brugerne og projektgruppen således at brugernes erfaringer med systemet vil kunne forårsage visse korrektioner i det endelige produkt. \f B_i_l_a_g_ _2_ R_e_s_o_u_r_c_e_e_s_t_i_m_a_t_e_r_ Projektet omhandler kun softwareresourcer. P_e_r_s_o_n_m_å_n_e_d_e_r_ 1. Specifikation 4 2. System design 10 3. Modul design 14 4. Implementation 22 5. System test 8 6. Field test 6 7. Projektadministration _1_2_ _ Total _7_6_ _ Persontidsforbrug delt op kvartalsvis. 1983 1984 2.kv 3.kv 4.kv 1.kv 2.kv 3.kv 4.kv 1. Specifikation4 2. System design 3 7 3. Modul design 3 11 4. Implementation 3 13 6 5. System test 2 4 2 6. Field test 3 3 7. Projektadministration 2 2 2 2 2 1 1 Total 9 12 16 17 12 6 4 \f B_i_l_a_g_ _3_ T_i_d_s_p_l_a_n_e_r_ _S_t_a_r_t_ _ _S_l_u_t_ 1. Specifikation 83.04.01 83.05.31 2. System design 83.06.01 83.09.30 3. Modul design 83.07.01 83.12.31 4. Implementation 83.10.01 84.06.30 5. System test 84.03.01 84.09.30 6. Field test 84.07.01 84.12.31 T_o_t_a_l_ 8_3_._0_4_._0_1_ 8_4_._1_2_._3_1_ De ovenfor nævnte færdiggørelsestidspunkter for projektets enkel- te delafsnit vil kunne påvirkes af eventuelle forsinkelser i de projekter som vedrører udviklingen af den nye kommunikations kon- troller RC3900. Færdiggørelsestidspunktet for det totale projekt vil dog kunne forventes at være uafhængig af eventuelle forsin- kelser i disse projekter. \f B_i_l_a_g_ _4_ B_u_d_g_e_t_o_v_e_r_s_i_g_t_ De samlede budgetterede udgifter kan ved hjælp af bilag 2 opgøres til: For 1983: 37 pmdr. For 1984: 39 pmdr. For månedsgagen er budgetteret med en fællessats for året 1983 og en sats for året 1984. Hver måned regnes at have 120 konterbare timer i gennemsnit. Dette svarer til flg. timesatser: 1983: 152 kr./time + 100% tillæg. 1984: 168 kr./time + 100% tillæg. Budgetterede udgifter: For 1983: 37 pmdr. a kr. 36.480: 1.349.760 F_o_r_ _1_9_8_4_:_ _3_9_ _p_m_d_r_._ _a_ _k_r_._ _4_0_._3_2_0_:_ _1_._5_7_2_._4_8_0_ T_o_t_a_l_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _k_r_._ _2_._9_2_2_._2_4_0_ \f B_i_l_a_g_ _5_ P_r_o_d_u_k_t_i_d_e_n_t_i_f_i_k_a_t_i_o_n_ Projektet er udformet som en sammenhængende følge af delprojekter, som hver resulterer i et produkt. Disse er - RC Tekst-klyngekonfiguration value-added med TELETEX-dokumenttransport til i princippet fremmed udstyr - TELETEX-klyngekonfiguration kun med ekstern kommunikation - Enkeltstående TELETEX-terminal - TELETEX-klyngekonfiguration med tilhørende lokalt miljø for det automatiserede kontor Omtalte produkter realiseres ved RC3900 cluster controller kombi- neret med RC855 skærme. Produktionen sigter derfor på såvel ny- salg som salg til eksisterende RC855 kunder. Det TELETEX specifikke programmel, herunder postkassefunktioner samt tekstfilkonvertering implementeres ved RC3900, hvorimod TE- LETEX tekstbehandlingen udføres ved RC855. R_C_ _T_e_k_s_t_ _m_e_d_ _T_E_L_E_T_E_X_-_d_o_k_u_m_e_n_t_t_r_a_n_s_p_o_r_t_ Produktet udgøres af en eller flere RC855 Tekstbehandlingsfacili- teter (RC Tekst), som alle er tilsluttet en RC3900 TELETEX Clu- ster Controller. Tekstfiler overføres mellem RC3900 og hver RC855 i en for tekstbehandling passende form, for i RC3900 at blive konverteret til et TELETEX-dokument, som dernæst bliver transmit- teret til en i princippet fremmed TELETEX-terminal.\f Indkomne dokumenter kan overføres til den ved S.70 adresserede RC855 Tekstbehandlingsfacilitet til udskrivning på såvel skærm som tilhørende printer. Indkomne dokumenter kan i princippet ikke gøres til genstand for tekstbehandling. Der udvikles single-stream access til X.21 baserede offentlige datanet samt multi-stream access til X.25 (med X.21 bis) baserede offentlige datanet. De udviklede TELETEX-postkassefunktioner samt den udviklede X.21 access genanvendes ved det EF-lånefinancierede TELETEX projekt, som sigter mod anvendelse af TELETEX-kommunikationsprotokoller til overførsel af tekstfiler mellem RC Tekstbehandlingsfacilite- ter. De i EF-projektet udviklede TELETEX-protokoller genanvendes. De forskellige enheder i systemet såsom TELETEX Tekstbehandlings- faciliteter og TELETEX Gateway vil logisk blive knyttet sammen ved at benytte principperne bag Inter Modular Systemsammenkobling (IMC). Dokumenter kan modtages og afsendes samtidigt og parallelt med lokal tekstbehandling. TELETEX-postkassen implementeres ved RC3900. Systemet, d.v.s. TELETEX Cluster Controlleren, adresseres eks- ternt via en X.21 eller X.25 adresse. RC Tekstbehandlingsfacili- teten specificeres ved yderligere adressering som angivet i S.70. Hver sådan tekstbehandlingsfacilitet har en og kun en adresse. Illegale adresser konverteres til en på forhånd bestemt adresse. \f T_E_L_E_T_E_X_-_k_l_y_n_g_e_k_o_n_f_i_g_u_r_a_t_i_o_n_ Det ovennævnte produkt videreudvikles idet tekstbehandlingsfaci- liteten integreres med de TELETEX-administrative funktioner. Pro- duktet udgør ikke længere kun en tekstbehandlingsfacilitet med value-added TELETEX-dokumenttransmission; men en egentlig TELE- TEX-klyngekonfiguration med tilsluttede TELETEX-arbejdspladser. Den lokale adressering foregår fremdeles ved S.70, men dokumenter med illegal adresse kan af en master TELETEX-arbejdsplads omad- resseres til en gyldig lokal adresse. Master TELETEX-arbejdsplad- sen initierer/modtager og logger meddelelser vedrørende samtlige afsendte og modtagne dokumenter, hvorimod de enkelte TELETEX-ar- bejdspladser kun initierer/modtager meddelelser som er relaterede til dokumenter, som er relevante for netop denne arbejdsplads. Enhver TELETEX-arbejdsplads kan dynamisk udnævnes til master TE- LETEX-arbejdsplads i en TELETEX-klyngekonfiguration. Der eksiste- rer en og kun en sådan master. S.62 søges anvendt på en sådan måde, at større, afsendte dokumen- ter ikke monopoliserer X.21 tilslutningen. TELETEX-kommunikationsprotokollerne anvendes til dokumenttrans- port til/fra i princippet fremmede TELETEX-terminaler. E_n_k_e_l_t_s_t_å_e_n_d_e_ _T_E_L_E_T_E_X_-_t_e_r_m_i_n_a_l_ Produktet består af den omtalte TELETEX-klyngekonfiguration kun forsynet med en master TELETEX-arbejdsplads. \f T_E_L_E_T_E_X_-_k_l_y_n_g_e_k_o_n_f_i_g_u_r_a_t_i_o_n_ _m_e_d_ _l_o_k_a_l_t_ _m_i_l_j_ø_ Dette produkt er en videreudvikling af den omtalte TELETEX-klyn- gekonfiguration. Systemet er fortsat forsynet med en central TE- LETEX-postkasse, som dog desuden kan benyttes som centralt lager for fælles tekstfiler. Det centrale lager indeholder desuden fa- ciliteter for et fælles base- og adresselager. Tekstbehandling vil kunne foregå lokalt på lagre tilknyttet den enkelte Teletex-arbejdsplads, eller distribueret under anvendelse af en fælles disk. De tilsluttede RC855-skærme behøver derfor ik- ke nødvendigvis at have egne sekundære lagre. Hver TELETEX-arbejdsplads kan udveksle egne lokale tekstfiler med det centrale lager. TELETEX-kommunikationsprotokollerne vil blive anvendt til såvel dokumenttransport til/fra i princippet fremmede TELETEX-termi- naler som til tekstfiltransport mellem RC TELETEX-klyngekonfigu- rationer med lokalt miljø. Den logiske adressering omfatter ikke længere TELETEX-arbejds- pladser, men individuelle brugere, som hver kan have en eller flere adresser. Sådanne adresser kan være fælles for flere bruge- re. Der tilbydes faciliteter for automatisk og systematisk omadresse- ring, ligesom master TELETEX-arbejdspladsen er bibeholdt. Til anvendelse i det lokale miljø tilbydes forskellige typer bru- germeddelelser, herunder adressering som gruppekald, funktioner som attestation og udtalelse samt tidsbetinget afsendelse. Desu- den tilbydes funktioner som elektronisk formidlet diskussion og meddelelser. Meddelelser kan være individuelle eller adresseret til grupper. \f P_r_o_d_u_k_t_t_e_r_m_i_n_e_r_ 1. RC Tekst-klyngekonfiguration value-added med TELETEX-dokumenttransport til i princippet fremmed udstyr X.21 single-stream: 1Q84 (FCA) X.25 multi-stream: 1Q84 (FCA) 2. TELETEX-klyngefonfiguration kun med ekstern kommunikation X.21 single-stream: 2Q84 (FCA) X.25 multi-stream: 2Q84 (FCA) 3. Enkeltstående TELETEX-terminal X.21 single-stream: 2Q84 (FCA) X.25 multi-stream: 2Q84 (FCA) 4. TELETEX-klyngekonfiguration med lokalt miljø X.21 single-stream: 1Q85 (FCA) X.25 multi-stream: 2Q85 (FCA) FCA refererer til det tidspunkt hvor produktet kan underkastes kontrolleret release til pilot-kunder m.v. (Customer Verification Tests og BETA-Sites). General release (GCA) forventes at følge et kvartal senere end FCA. I en periode på op til to kvartaler efter FCA må umiddelbar pro- duktmodning påregnes. \f D_i_s_c_ _S_t_o_r_a_g_e_ _M_o_d_u_l_e_ _(_R_C_8_2_x_x_)_ T_h_e_ _D_a_t_a_ _M_e_d_i_u_m_ The disc packs used on the disc storage modules consist of a num- ber of coaxially arranged discs rotating together. Data is stored in tracks that are concentric circles on the disc surface. A read/write head is allocated to each surface on the disc pack; these read/write heads are movable in radial direction by means of a common head activator. Hence the radial position of the heads defines a track on all surfaces, these tracks are in common called a cylinder. To select a certain track it is necess- ary to select a read/write-head corresponding to a certain disc surface. The disc pack is further divided into 21 sectors i.e. pie-shaped sections. Hence the tracks are divided into arcs, each being the intersection of a track with sector a (referred to as a 'seg- ment'). This three dimensional subdivision (cylinder, surface, sector) can be vizualized by the following figure (for the purpose of clarity, the surfaces have been rearranged): \f The actual surface allocation is shown in the following figure: The Cover Plates Recording Surface 0 0 Head Number Number 1 1 2 servo Shielded Head 3 2 4 3 5 4 Bottom Cover Plates With the outer cylinder called 0 and sectors numbered 0-20 the following expression lays down the relation between a segment number and cylinder, surface given by head, and sector: segment number = cylinder number x number of heads x 21 + head number x 21 + sector number \f Each segment is divided into two: an addressmark part, which is short in length (8 halfwords corresponding to 12 characters) and a longer datapart of 512 halfwords (768 characters). The address mark of a segment is automatically read and checked by hardware prior to any input or output operation to the segment. During normal use, only the dataparts of segments are transferred to and from the computer. An addressmark contains information about the position of the segment, and where to find next segment: Character 0 1 2 Cylindernumber Headnumber Identification part 3 4 5 Sector 0 0 6 7 8 Next cylindernumber Next head Next segment part 9 10 11 Next sector 0 0 To speed up operation, the sectors on odd cylinders (cylinder 1, 3, 5, ...) may be 'shifted' so as to avoid loosing a disc rota- tion when moving from one cylinder to the next. This can be il- lustrated as follows: \f Use of odd cylinder shift will thus be reflected in the address- marks: - the next-sector field in the last addressmark on an even cylin- der will be equal to the odd cylinder shift. - the next-head field in an addressmark placed on physical sector 'odd cylinder shift - 1' on an odd cylinder will differ from the head-field in the identification part. The next-sector field will equal the odd cylinder shift except on the last surface on which it will be zero. - the next-head field in an addressmark situated in the physical last sector on an odd cylinder will be equal to the head-field in the identification part and next-sector will be zero. The formatting of a disc pack depends on parameters given to a disc formatting program. For further information, consult the reference manual for the disc controller. \f G_e_n_e_r_a_l_ _R_u_l_e_s_ A disc storage module may be accessed directly (i.e. not via area process) by sending a message to an external process controlling either a physical or a logical disc. The process kind is 62. To each disc storage module corresponds always an external pro- cess (a physical disc driver) controlling the entire module (the physical disc). To each physical disc driver may exist none, one or more socalled logical disc drivers, a logical disc driver being an external process describing a part of the disc storage module called a logical disc (not to be mistaken for a logical backing storage). From the view of an internal process, each physical or logical disc driver represents an independent device identified by a unique device number. Segment numbers supplied in messages sent to a physical disc driver specify absolute segments on the disc storage module, while segment numbers supplied in messages sent to a logical disc driver specify segments relatively to start of the logical disc. Odd cylindershift, if used, is automatically taken into account. A message received by a logical disc driver will automatically be linked to the event queue of the physical disc driver controlling the disc storage module on which the logical disc in question is situated. The division of one disc storage module into more logical discs is an installation dependent system option: - if no division of a module is wanted, and if the module is not to be used as autoload device, then only a physical disc driver is required. If the module contains a logical backing store, then it also contains a catalog and a chaintable. \f - if a module is to be used as potential autoload device and is to contain one logical backing store, then a physical disc driver, a logical disc driver describing the autoload part, and a logical disc driver describing the backing store part are re- quired. Only the latter part mentioned contains a catalog and a chaintable. - if a module is to be divided into more independent logical backing stores, then each backing store contains a catalog and a chaintable, and each is represented by a logical disc driver. Sense, position and input operations as well as extraction of statistics can be initiated by an internal process that is a user of the (physical or logical) device addressed. The device accepts this kind of messages simultaneously from more than one process provided no process has reserved it. Initialize, clean track and output operations require that the device addressed has been reserved. Operations specifying output of addressmarks, initialize and clean track operations can only be initiated on physical disc and will not be recognized by a logical disc driver. A logical disc cannot be reserved if the corresponding physical disc is reserved by another internal process, and a physical disc cannot be reserved if one or more logical discs are reserved by other internal processes. To use a logical disc, the corresponding physical disc driver need not have a name. A disc driver representing a logical backing store is, during normal use, reserved by the anonymous process executing process functions. \f E_r_r_o_r_ _R_e_c_o_v_e_r_y_ If a statusword indicates an intervention by the operator or a persistent lack of disc power, the names of the physical disc driver and associated logical drivers are removed (together with the present reservations) and all messages are answered with the result: receiver does not exist. Connections between area pro- cesses and involved devices will be cancelled. Upon power restart and power failure restart, a loop, in which the disc is sensed regularly, is entered by those physical disc drivers which had had connection to their devices before power failed. If the disc does not become ready within a limited amount of time, the reactions will be as on operator intervention. Dur- ing the loop execution, all messages will be left in the event queue, and an eventual operation in progress at the time of power failure will be repeated when the disc becomes ready. If an output or cleantrack operation is attempted on a write pro- tected disc then the message will be answered with the result: message rejected. If mode 2 (suppression of error recovery) is used, any other er- ror will cause the message to be answered immediately. If mode 2 is not used, the error recovery depends on operation and errorkind: - Sense, output, position, and cleantrack operations are repeated up to three times before the error is considered irrecoverable. The same is performed for input operations provided the error is not a parity error. - A parity error, which may be corrected by a hardware generated error correction code, occurring in the datapart of a segment input at an input operation causes the transferred data (but not the segment on the disc) to be corrected as if the parity error had not occurred. \f - A parity error, which cannot be corrected by error correction code, will cause an input operation to be repeated a number of times utilizing the possibilities of 'strobing' in the segment a little earlier or later than nominally and of moving the read/write heads a little outside nominal position (offset). Three tries are made at each combination of strobe and offset (including nominal position), and the possibility of correcting the transferred data by error correction code is examined at each try. If mode 4 (limited error recovery) is used, only the 'best' com- binations are tried and if the error is still unrecovered, the message is answered with a statusbit, disc error. In the normal mode all combinations of strobe and offset will be tried. The tries are divided into a number of portions; if the error is unrecovered when the tries of a portion have been per- formed then the message is moved to the end of the event queue, where it awaits the recovery process to resume until waiting mes- sages have been processed. A message answered with result: receiver malfunction, means that an error of the following kind has occurred: software timeout (disc operation not completed within one second), bus parity er- ror, bus time out, bus communication error, interrupt error (something wrong during hardware status transfer), or no error indication (hardware status bit) at incomplete input/output oper- ation. The blocklength supplied in an answer to input and output mes- sages corresponds to what was transferred before the error oc- curred. \f M_o_d_e_ The mode field of messages is used for specifying specialactions, and consists of a sum of one or more of the following values: 1 specifies, in connection with input and output operations that the transfer concerns the ad- dressmark parts of the segments. 2 specifies suppression of automatic error re- covery. Will override mode 4. 4 specifies limited error recovery on parity error occurring at an input operation. The normal mode (zero) implies: - input and output operations concern the dataparts of segments. - full error recovery. \f S_e_n_s_e_ _O_p_e_r_a_t_i_o_n_ The device is sensed. I_n_p_u_t_ _O_p_e_r_a_t_i_o_n_ In the normal mode a number of consecutive segments of 256 words each are input to a storage area within the sending process. The first segment number wanted is given in the message. The operation transfers the maximum number of segments for which there is room within the storage area, i.e.: number of segments = (last storage address + 2 - first storage address)//512 If the input block thus specified exceeds the upper limit of the (physical or logical) disc, input is performed only of that part of the block that is within the disc. In any case the actual num- ber of halfwords transferred is given in the answer. The number of halfwords transferred is a multiple of 512. The number of characters is defined as three times the number of words transferred. If the first segment is outside the limits of the (physical or logical) disc, input is not initiated, but the answer contains a status bit, end medium, and the block length is zero. In the addressmark mode the addressmark parts of a number of con- secutive segments are input to a storage area while the dataparts of the segments are skipped. As each addressmark occupies 8 half- words, the number of addressmarks input is given by: number of addressmarks = (last storage address + 2 - first storage address)//8 \f Apart from transferring a multiple of 8 halfwords (12 characters) the addressmark mode is equivalent to normal input mode. O_u_t_p_u_t_ _O_p_e_r_a_t_i_o_n_ Equivalent to the input operation. In the addressmark mode the storage area must contain a number of addressmarks packed as previously described. The contents of the storage area is not checked. If the pack has not previously been formatted the clean track operation must be used prior to output of addressmarks (see also Initialize Operation). P_o_s_i_t_i_o_n_ _O_p_e_r_a_t_i_o_n_ The read/write heads are moved to the cylinder given by segment number in message. If the segment is outside the limits of the (physical or logical) disc, no operation is initiated, but the answer contains a status bit, end medium. C_l_e_a_n_ _T_r_a_c_k_ _O_p_e_r_a_t_i_o_n_ The whole track (cylinder, surface) on which the segment speci- fied in message is situated will be cleaned. If the segment is outside the limits of the (physical or logical) disc, no operation is initiated, but the answer contains a status bit, end medium. The clean track facility is implemented for use the first time a disc pack is formatted. \f I_n_i_t_i_a_l_i_z_e_ _O_p_e_r_a_t_i_o_n_ This operation is used prior to formatting a new disc pack with addressmarks to prevent the automatical detection of odd cylin- dershift, number of heads and the like. No disc operation is in- itiated. Disctype 0 graduated offset not possible on unit. 1 graduated offset possible on unit. Odd cylindershift 0 means no odd cylindershift. E_x_t_r_a_c_t_ _S_t_a_t_i_s_t_i_c_s_ _O_p_e_r_a_t_i_o_n_ Dependent on the existence of a system option each physical disc driver maintains a table of statistical information reflecting the condition of the equipment. The information may be input to a storage area within an internal process by its sending a message to a physical disc driver or one of its associated logical drivers. Having been moved, the table is reset. If the storage area is too small, the answer contains a status- bit, block length error and the block length zero. Otherwise num- ber of halfwords moved will be: (last storage address + 2 - first storage address)//2 x 2 No disc operation is initiated. The format of the table is described later in this section. \f S_t_a_t_u_s_ _B_i_t_s_ 1 parity error or hard error 2 synchronization error (position error) 3 data overrun 4 blocklength error (extract statistics operation) 5 end medium 11 disc error (mode 4, input operation) M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ o_p_e_r_a_t_i_o_n_: m_e_s_s_a_g_e_: a_n_s_w_e_r_: sense 0<12 + mode statusword 0 0 i/o result current status event status detailed status initialize 2<12 0 number of heads 0 odd cylindershift 0 disctype input 3<12 + mode statusword first storage address number of halfwords last storage address number of characters first segment number i/o result current status event status detailed status \f o_p_e_r_a_t_i_o_n_: m_e_s_s_a_g_e_: a_n_s_w_e_r_: output 5<12 + mode statusword first storage address number of halfwords last storage address number of characters first segment number i/o result current status event status detailed status clean track 6<12 + mode statusword irrelevant 0 irrelevant 0 segment number i/o result current status event status detailed status position 8<12 + mode statusword irrelevant 0 irrelevant 0 segment number i/o result current status event status detailed status extract statistics 9<12 statusword first storage address number of halfwords last storage address number of characters undefined latest sensed current status latest sensed even status latest sensed detailed status The information supplied in the answer from fourth word and on is normally only interesting to test programs. \f The i/o result applies to the execution of the socalled channel- program guiding the hardware: i/o result 0 normal termination, the hardware has delivered an interrupt. 1 bus reject, the device is not started. 2 bus timeout, the device is not started. 3 software time out. 4 abnormal termination, the hardware has delivered an interrupt before the end of the channelprogram. 5 wait program terminated. 6 power restart. Current status, event status, and detailed status are statuswords delivered by hardware. The statuswords are fully described in the reference manual for the disc storage controller. \f F_o_r_m_a_t_ _o_f_ _S_t_a_t_i_s_t_i_c_a_l_ _I_n_f_o_r_m_a_t_i_o_n_ h_a_l_f_w_o_r_d_: l_e_n_g_t_h_: c_o_n_t_e_n_t_s_: 0 1 word number of times the device has ac- cessed. 2 - number of times an error has occurred the first time an operation has been attempted (only repeatable errors counted). 4 - number of times an error has been by- passed solely through use of error correction code. 6 - number of times an error has been by- passed within three repetitions of the operation. n_u_m_b_e_r_ _o_f_ _e_r_r_o_r_s_ _b_y_p_a_s_s_e_d_ _t_h_r_o_u_g_h_ _u_s_e_ _o_f_: 8 1 halfw. negative offset 9 - positive offset 10 - (vacant) 11 - late strobe 12 late strobe combined with negative offset 13 - late strobe combined with positive offset 14 - (vacant) 15 - early strobe 16 - early strobe combined with negative offset 17 - early strobe combined with positive offset 18 - (vacant) \f h_a_l_f_w_o_r_d_: l_e_n_g_t_h_: c_o_n_t_e_n_t_s_:_ n_u_m_b_e_r_ _o_f_ _e_r_r_o_r_s_ _b_y_p_a_s_s_e_d_ _t_h_r_o_u_g_ _u_s_e_ _o_f_:_ 19 1 halfw. offset magnitude 1 20 - offset magnitude 2 . . . . . . . . . . . . 33 - offset magnitude 15 n_u_m_b_e_r_ _o_f_ _o_c_c_u_r_r_e_n_c_i_e_s_ _o_f_: 34 1 halfw. event status bit 0 (intervention) 35 - event status bit 1 (data error) 36 - (vacant) 37 - event status bit 3 (data overrun) 38 - event status bit 4 (hard error) 39 - event status bit 5 (position error) 40 - current status bit 0 (power low) 41 - current status bit 1 (local) 42 - current status bit 8 (write protect) 43 - current status bit 9 (high density) 44 - current status bit 10 (mode) 45 - current status bit 5 (seek error) 46 - (vacant) 47 - i/o result 6 (power restart) 48 - i/o result 5 (wait prg. term.) 49 - i/o result 4 (abnormal term.) 50 - i/o result 3 (software timeout) 51 - i/o result 2 (bustimeout) 52 - i/o result 1 (bus reject) 53 - i/o result 0 (normal term.) 54 - event status bit 20 (bus comm. error) 55 - event status bit 21 (interrupt error) 56 - event status bit 22 (bustimeout) 57 - event status bit 23 (bus parity error) \f h_a_l_f_w_o_r_d_: l_e_n_g_t_h_: c_o_n_t_e_n_t_s_: n_u_m_b_e_r_ _o_f_ _o_c_c_u_r_e_n_c_i_e_s_ _o_f_: 58 1 halfw. detailed status bit 0 59 - detailed status bit 1 . . . . . . . . . . . . 81 - detailed status bit 23 t_a_b_l_e_ _o_f_ _p_o_t_e_n_t_i_a_l_ _e_r_r_o_r_ _s_e_g_m_e_n_t_s_: Each entry contains information about a segment, which could not be input or output in first attempt. When the table runs full, the reg- istration of further detected error segments is ignored. To determine whether a segment has been included in the table due to media defect or a transient error a testprogram should be run. The table will typi- cally consist of 10 entries each of 6 halfwords. 82 1 word absolute segment no of 1st error seg- ment. 84 1 halfw. no successful input operations (poss- sibly using error recovery). 85 - no of input operations requiring re- petition. 86 - no of successful output operations (possibly using error recovery). 87 - no of output operations requiring repetition. . . . . . . . . . \f h_a_l_f_w_o_r_d_: l_e_n_g_t_h_: c_o_n_t_e_n_t_s_: 136 1 word absolute segment no of 10th error segment. 138 1 halfw. ... 139 - ... 140 - ... 141 - ... Please note that the table will not be updated when an error occurs in connection with a mode 2 (suppress- ion of error recovery) operation. \f Udviklingsfondet Tagensvej 135 2200 København N Vedr.: Ansøgning om udviklingsstøtte til TELETEX baserede _ _ _ _ _ _ _p_r_o_d_u_k_t_e_r_ _t_i_l_ _d_e_t_ _a_u_t_o_m_a_t_i_s_e_r_e_d_e_ _k_o_n_t_o_r_ _ _ _ _ _ _ _ _ _ _ _ Vi skal hermed på vegne af A/S REGNECENTRALEN af 1979 tillade os at ansøge Udviklingsfondet om bistand i form af lån til udvikling af TELETEX baserede produkter til det automatiserede kontor. Den samlede ressourceinvestering er opgjort til kr. 3.885.120 Projektforslaget udgør en revision og en produktpræcision af det i vor ansøgning af 2. april 1982 beskrevne TELETEX gateway/mail- box projekt, til hvilket Udviklingsfondet ved skrivelse af 27. maj 1982 udtalte velvillighedstilsagn. Projektforslaget udgør tillige en naturlig fortsættelse af det arbejde vedrørende en generaliseret terminal, som modtager EF-lånestøtte som led i 4-års programmet. Vi skal til støtte for ansøgningen fremføre, at nærværende pro- jekt er en væsentlig forudsætning for udbygning af vores position som leverandør af kontorautomationsudstyr. Vi har i produktudvik- lingen lagt vægt på en sammenkædning af datakommunikation og ter- minalsystemer, samt anvendelse af offentlige datanet og interna- tionale standarder indenfor området åbne systemers sammenkobling, da dette netop er områder, hvor A/S REGNECENTRALEN af 1979 har stor ekspertise. Resultatet af projektet er et distribueret TELETEX-system, samt specifikke TELETEX produkter, der udvik- lingsmæssigt vil bringe A/S REGNECENTRALEN af 1979 frem til en førende position inden for dette marked. \f 2 Til grund for nærværende ansøgning er vedlagt 1 Baggrund for projektet 2 Projektresultat Bilag 1 Projektbeskrivelse Bilag 2 Ressourceestimater Bilag 3 Tidsplaner Bilag 4 Budgetoversigt Bilag 5 Produktidentifikation Skule De ønske yderligere oplysninger, står vi naturligvis til Deres disposion. Med venlig hilsen A/S REGNECENTRALEN af 1979 Allan Blomqvist Knud Sørensen \f i T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 1. FPA PROCESS COMPLEX 1 1.1 Main Process 2 1.2 Reset 3 1.3 Master Clear 3 1.4 Set Mask 3 1.5 Receive Block 4 1.6 Transmit Block 5 1.7 Autoload 6 2. RESULTS OF OPERATIONS 7 3. FORMATS OF MESSAGES AND ANSWERS 9 A_P_P_E_N_D_I_X_:_ A. REFERENCES 11 \f ii \f 1_._ _ _ _ _ _ _ _ _F_P_A_ _P_R_O_C_E_S_S_ _C_O_M_P_L_E_X_ 1. The front end computers on RC8000 are normally connected to the main computer through a Front Process Adaptor (FPA). The communi- cation between a front end and the RC8000 in the RC8000 monitor is supervised by a number of external processes - the fpa process complex - as shown below. host FPA receiver process receiver process link main process process FPA Transmitter transm. process link process Fig. 1: The FPA process complex These processes may be divided into three groups related to the different levels of FPA protocols. The link processes communicate by using the device control protocol, the main process by using the FPA line protocol, and the receiver and the transmitter pro- cesses work at the level of direct input/output operations (and sometimes at the line control level). \f The internal processes in RC8000, which are communicating on the FPA line, are normally using the link processes (and therefore the device control protocol), but in some cases it is necessary to communicate at a lower level, i.e. when autoloading a front end or when initiating the communication on the FPA line. For this purpose it is possible to perform operations directly at the main process level. 1_._1_ _ _ _ _ _ _ _M_a_i_n_ _P_r_o_c_e_s_s_ 1.1 The operations that can be executed by the main process are re- set, master clear, autoload, set mask, receive block, transmit block, and autoload. The reset and master clear operations are used to control the FPA line in connection with the use of the FPA line control protocol, the set mask is used to change the internal test mask of the main process, and the receive block, transmit block, and autoload op- erations used to execute tasks at input/output level at the FPA receiver and transmitter. Reset, master clear, and autoload messages are accepted from in- ternal processes that have reserved the main process, set mask messages from all in internal processes. Receive block and trans- mit block operations can be executed from internals that are re- servers of the main process or - in case the main process is not reserved - of internals that have reserved the FPA receive pro- cess and the FPA transmit process relatively. The main process can only be reserved when neither the FPA re- ceiver nor the FPA transmitter processes are reserved, - and these processes can only be reserved if the main process is not reserved. Initialisation of the main, receiver or transmitter processes has no effect. \f 1_._2_ _ _ _ _ _ _ _R_e_s_e_t_ 1.2 This operation resets the FPA process complex by returning all messages queued up at the link processes of this main process with result'malfunction'(=4). At the same time temporary link processes are removed. 1_._3_ _ _ _ _ _ _ _M_a_s_t_e_r_ _C_l_e_a_r_ 1.3 The master clear operation is used to initiate the communication on the line according to the FPA line control protocol. The answer of message is returned just before the start up is ini- tiated. The initialisation of the line is carried out in this way: the FPA process complex is reset as described above, a master clear header is transmitted and a statusbyte received, an accept master clear header is waited for and a statusbyte delivered (a detailed description is found in ref. 3). If any errors occur during this cycle the initialisation is repeated after a delay. The attempt to start up the line is repeated infinitely, - the delay is for the first 50 tries 0.1 sec., else 10 sec. 1_._4_ _ _ _ _ _ _ _S_e_t_ _M_a_s_k_ 1.4 The FPA driver complex includes a testbuffer facility. At certain points in the drivers, testrecords will automatically be gener- ated in case the testpoint is active. The states of the different testpoints are defined in the testmask, which is 96 bits defining the states of testpoint 0 to 95. The operation set mask inserts a new mask in the FPA driver com- plex. \f 1_._5_ _ _ _ _ _ _ _R_e_c_e_i_v_e_ _B_l_o_c_k_ 1.5 The receive block message operates on the FPA receiver device at io level. The function depends on the value of <mode> and <size>, in this way - if <mode> and 2 = 2 then reset receiver if <mode> and 1 = 1 then transmit statusbyte (message) if <size> > 0 then receive startbyte (answer) receive data (first, size) The statusbyte in the message and the startbyte in the answer are the rightmost 8 bits in the words. The <size> - in bytes (8 bits) - defines a buffer inside the area limited by <first> and <last>. The <size> in the message and the <number of bytes transferred> in the answer do not include the startbyte. The value of <number of bytes transferred> in the answer spec- ifies the number of bytes that have been received in memory, eventually less than <size> in the message. Unused positions in the last word (the rightmost bytes) are filled in with zeroes. The <number of halfwords transferred> holds the number of halfwords that have been changed in the memory. If the value of the word in the answer containing startbyte differs from -1 a startbyte has been received. The operation of the message must be transferred within a certain time - the execution timeout (60 seconds) - else the operation is terminated and the device reset. \f 1_._6_ _ _ _ _ _ _ _T_r_a_n_s_m_i_t_ _B_l_o_c_k_ 1.6 The transmit block message operates on the FPA transmitter device at io level. The function depends on the value of <mode> and <size> in this way - if <mode> and 2 = 2 then reset transmitter and wait for 0.1 seconds if <size> > 0 then transmit startbyte (message) transmit data (first, size) if <mode> and 1 = 1 then receive statusbyte (answer) The startbyte in the message and the statusbyte in the answer are the rightmost 8 bits in the words. The <size> - in bytes (8 bits) specifies a buffer inside the area defined by <first> and <last>. The values of <size> in the message and <number of bytes trans- ferred> in the answer do not include the startbyte. In case no statusbyte has been received the word normally con- taining the statusbyte in the answer equals -1. The execution of the operation must be finished within a certain time - the execution time (1 second) - else the operation is ter- minated and the FPA transmitter device reset. \f 1_._7_ _ _ _ _ _ _ _A_u_t_o_l_o_a_d_ 1.7 The FPA transmitter device includes a possibility of transferring an autoload signal to the FPA controller at the other end of the line, which normally will force the front end into its autoload state. This function is executed with an autoload operation that functions in this way - if mode and 2 = 2 then reset transmitter and wait for 0.1 seconds activate autoload if mode and 1 = 1 then receive statusbyte (answer) The statusbyte received is placed as the rightmost byte in the answer. If no statusbyte has been transferred this word equals -1. The timeout of this operation is 1 second. \f 2_._ _ _ _ _ _ _ _ _R_E_S_U_L_T_S_ _O_F_ _O_P_E_R_A_T_I_O_N_S_ 2. The answer to the different operations hold a result and event- ually a status. The possible values and their interpretation is given below. In brackets are mentioned the reason for the error in question. result 1 ok, the status field contains further information, see below. result 2 rejected, sender has violated the rules of reser- vation. result 3 unintelligible, the value of operation or mode is il- legal, or if the operation is receive or transmit block the buffer is outside sender's process, <first> is bigger than <last> or <size> specifies a buffer bigger than the one given by <first> and <last>. result 4 malfunctioning, can only occur in connection with re- ceive block, transmit block, and autoload. The channel program is terminated before end caused by some hard errors as front end disconnected (current status, bit 0), controller does not start (start io, result 1, 2), buf parity error (event status, bit 20), status trans- fer error (event status, bit 21), bustime out (event status, bit 22) and bus communication error (event status, bit 23). result 5 unknown, no process of this name. In case of result 1 the status holds further information on the success of the operation. bit 0 reset received (event status, bit 0), only after re- ceive block. A reset operation has been executed from the other end of the FPA line. <bytes transferred> equals 0. \f bit 1 parity error (event status, bit 1), only from input operations. Receive block - one or more parity errors have been detected during reception of start byte or data. Transmit block, autoload - parity error under reception of status byte. bit 2 timeout (event status, bit 2), only from output oper- ations. Receive block - the status byte could not be transmitted, the execution continued with the recep- tion of startbyte and data. Transmit block, autoload - the transmission of startbyte and data was terminated because no receiver was ready, the execution con- tinues with reception of statusbyte. bit 4 blocklength error (event status, bit 4), only under input. Receive block - the data block received was bigger than the buffer defined in the message. Only <size> bytes are transferred to memory, the remaining part are skipped. bit 14 execution timeout (io result 3). The operation is terminated and the device reset. bit 15 stopped, occurs only when transferring data. At the time of transmitting or receiving data the state of sender was stopped. Only an eventually reset operation (defined in mode) has been executed. <bytes trans- ferred> equal to 0. \f 3_._ _ _ _ _ _ _ _ _F_O_R_M_A_T_S_ _O_F_ _M_E_S_S_A_G_E_S_ _A_N_D_ _A_N_S_W_E_R_S_ 3. Messages: Answers: R_e_s_e_t_ 4<12 + 0 0 M_a_s_t_e_r_ _C_l_e_a_r_ 8<12 + 0 0 S_e_t_ _M_a_s_k_ 12<12 + 0 0 mask (0 - 23) mask (24 - 47) mask (48 - 71) mask (72 - 95) R_e_c_e_i_v_e_ _B_l_o_c_k_ 3<12 + mode status first (core buffer) halfwords transferred last (core buffer) bytes transferred size startbyte statusbyte T_r_a_n_s_m_i_t_ _B_l_o_c_k_ 5<12 + mode status first (core buffer) halfwords transferred last (core buffer) bytes transferred size statusbyte startbyte A_u_t_o_l_o_a_d_ 6<12 + mode status 0 0 statusbyte M_o_d_e_ mode and 2 (bit 10) reset mode and 1 (bit 11) transmit statusbyte (receive) receive statusbyte (transmit, autoload) \f S_t_a_t_u_s_ bit no 0 reset received 1 parity error 2 time-out 4 block length error 14 execution time-out 15 stopped \f A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A. 1 RCSL No. 52-AA661 FPA801, Reference Manual Villy Hansen 2 RCSL No. 43-RI0174 RC-NET, Device Control Protocol Erik Lilholt 3 RCSL No. 31-D496 FPA Line Control Protocol Jens Ramsbøl \f G_e_n_e_r_a_l_ _D_e_s_c_r_i_p_t_i_o_n_ The flexible disc is a sequential device, which in one operation is able to transfer, at maximum, the contents of one sector. The device can support single and double paged discettes with differ- ent sectorlengths. A discette is divided into 77 cylinders, of which 75 are user ac- cessible and 2 are used as alternative cylinders. A cylinder holds one track per surface used. A track may consist of either 26, 15 or 8 sectors holding relatively 128, 256 or 512 characters (8 bit units), - except for tracks on cylinder 0, which are al- ways formated as 26 sectors of 128 characters. G_e_n_e_r_a_l_ _R_u_l_e_s_ Operations can be initiated by an internal process that has in- itialized or reserved the external process. The external process can execute the following operations - sense, reset, input, output, set position, set limits, reformate and set mode. In case of status errors (any status bit except write enable) the state of the device is changed to 'stopped' causing all messages, except reset, to be returned immediately with the erroneous staus. The reset operation will reset the device by changing the state to 'running'. S_e_n_s_e_ The device is sensed and the status word delivered in the answer. If the status indicates no errors - the write enable bit is tol- erated - the answer also holds the current logical position. \f R_e_s_e_t_ The device is turned into running state. I_n_p_u_t_,_ _O_u_t_p_u_t_ The current position is checked against the limit registers. The maximum amount of data that can be read or written is one sector. The data is transferred three characters a word, when reading un- used positions in the last word. After input, unused positions in the last word will be filled in with zeroes. When writing less than one sector the remaining part of the sector is filled in with zeroes. After an input - output operation the current posi- tion will point out the next sector number, even when less than a sector has been transferred. S_e_t_ _P_o_s_i_t_i_o_n_ If 'sector number' is inside the limit registers, it is inserted as 'current position'. The position is interpreted as a logical one, which means that the physical position is evaluated accord- ing to the current mode. S_e_t_ _L_i_m_i_t_s_ This operation inserts the two sector numbers, defined in the message in the lower and upper limit registers. The values are interpreted as logical sector numbers. The operation is returned with result unintelligible, if the lower limit is less than zero or more than the upper limit. \f R_e_f_o_r_m_a_t_e_ At maximum two cylinders on a discette can be replaced using the alternative cylinders. The change of the discette format cannot be excuted in connection with the flexible disc driver described here, - but can be carried out under a special testsystem. But using a reformated discette the numbers of the bad cylinders must be messaged to the controller. The reformate operation defines one or two cylinders that are to be replaced. The cylinder number zero indicates no replacement, and values outside the interval 0 to 255 will cause an answer with result unintelligible. The reformate operation leaves the current position as undefined. S_e_t_ _M_o_d_e_ This operation is used to define the format of the discette, as well as the mode of the operation. The mode field has the format: 06 7 8 9 11 T D C L V where T is trackformat. The values of T are 0 (26 sectors of 128 chars), 1 (15 sectors of 256 chars) and 2 (8 sectors of 512 chars). D indicates a double surface discette. C turns on the internal conversion. \f L indicates logical numbering in all operations concerning position. The sector numbers are interpreted as relative to cylinder 1, sector 0. In this mode the cylinder 0 cannot be accessed. V indicates verification, which means that all output oper- ations are followed by a 'read after write' check. The set mode operation leaves the current position as undefined. M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ Operation Message Answer sense 0<12 status 0 0 sector number reset 2<12 0 0 0 input 3<12 status first storage address number of bytes transferred last storage address number of chars transferred output 5<12 status first storage address number of bytes transferred last storage address number of chars transferred set position 6<12 status dummy 0 dummy 0 sector number \f Operation Message Answer set limits 8<12 status lower limit 0 upper limit 0 reformat 10<12 status bad cylinder 1 0 bad cylinder 2 0 set mode 14<12 + mode status 0 0 S_t_a_t_u_s_ _B_i_t_s_ 0 intervention 1 parity error 2 timer 3 data overrun 5 position outside limits 8 write enable 9 mode error, the trackformat specified does not correspond to the format of the actual discette 10 sector erased 11 sender stopped \f I_n_t_e_r_v_a_l_ _C_l_o_c_k_ G_e_n_e_r_a_l_ _R_u_l_e_s_ The process kind is 2. Operations can be initiated by any inter- nal process. Initialization and reservation have no effect. The clock accepts messages simultaneously from more than one internal process. D_e_l_a_y_ _O_p_e_r_a_t_i_o_n_ A message to the clock specifies a time interval either in sec- onds or in 0.1 milliseconds. After the elapse of the interval the clock returns an answer. A maximum delay is specified by a time interval equal to -1. Otherwise the time interval must be from 0 to 24 hours, or else the message is treated as unintelligible. The clock process is synchronized with the hardware interval timer; it is activated at each clock interrupt to update the de- lays in its queue and will return answers for delays which have expired. Thus the actual delay can have a maximum error equal to the in- terrupt frequency of the hardware interval timer depending on whether a message is sent at the beginning or at the end of an interval. The mode field of message is zero, equals one of the following values, or is a sum of the values: Mode 2 Time interval is specified in 0.1 milliseconds. If mode 2 is not used, then time interval is specified in sec- onds. \f Mode 4 Specifies that the answer is to be returned, when the programmed real-time clock of the system reaches the value: current value of real-time clock + time interval This means that the actual delay may differ from the specified time interval if the real-time clock is changed by another internal process at a time when the message is queued to the clock process. The mode is only meaningful at time intervals different from -1. If mode 4 is not used, then the actual delay will always equal the time interval specified. Statusword of answer will normally be zero. However, if mode 4 is used, and the real-time clock is changed to a value beyond the calculated time for the expiration of the delay, then the answer contains a statusbit, intervention. O_p_e_r_a_t_i_o_n_ _t_o_ _W_a_i_t_ _f_o_r_ _C_l_o_c_k_c_h_a_n_g_e_ Equivalent to Delay Operation, except that the answer is always returned if the programmed real-time clock is changed by another internal process, before expiration of the time interval. In this case the answer contains a statusbit, intervention, otherwise the statusword is zero. O_p_e_r_a_t_i_o_n_ _t_o_ _W_a_i_t_ _f_o_r_ _P_o_w_e_r_ _R_e_s_t_a_r_t_ Equivalent to Delay Operation, except that the answer is re- turned, if a power restart or power failure restart is executed before expiration of the time interval. In this case the answer contains a statusbit, intervention, otherwise the statusword is zero. \f S_t_a_t_u_s_ _B_i_t_s_ 0 intervention M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ o_p_e_r_a_t_i_o_n_: m_e_s_s_a_g_e_: a_n_s_w_e_r_: delay 0<12 + mode statusword seconds or interval(0:23) 0 interval(24:47) 0 wait for clockchange 2<12 + mode statusword seconds or interval(0:23) 0 interval(24:47) 0 wait for power restart 4<12 + mode statusword seconds or interval(0:23) 0 interval(24:47) \f G_e_n_e_r_a_l_ _R_u_l_e_s_ Sense and input operations can be initiated by an internal pro- cess that is u_s_e_r_ of the disc process. A disc process accepts in- put messages simultaneously from more than one internal process provided no process has r_e_s_e_r_v_e_d_ it. Output operations require that the disc process has been reserved. S_e_n_s_e_ _O_p_e_r_a_t_i_o_n_ The device on which the area is stored is sensed and the status word is delivered as an answer. I_n_p_u_t_ _O_p_e_r_a_t_i_o_n_ A number of consecutive segments of 256 words each are input to a storage area within the sending process. The first segment number wanted is given in the message. The operation transfers the maximum number of segments for which there is room within the storage area, i.e. number of segments = (last storage address + 2 - first storage address)//512 If the input block thus specified exceeds the upper limit of the disc, input is performed only of that part of the block that is within the disc. If the first segment is outside the limits of the disc, input is not initiated, but the answer contains a status bit, end medium, and halfwords transferred is set to zero. \f The input operation is terminated, 1) when the input operation is completed, or 2) when the sending process is stopped, or 3) when parity error, timer, data overrun, or read error have been detected three times whichever occurs first. Only in case 1 the actual number of halfwords transferred is given in the answer. The number of halfwords transferred is a multiple of 512. The number of characters is defined as three times the number of words transferred. O_u_t_p_u_t_ _O_p_e_r_a_t_i_o_n_ Equivalent to the input operation. S_t_a_t_u_s_ _B_i_t_s_ 1 parity error or hard error 2 timer 3 data overrun 5 end medium 10 read error (address error) \f M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ operation: message: answer: sense 0 status word 0 0 input 3 < 12 status word first storage address number of halfwords last storage address number of characters first segment number output 5 < 12 status word first storage address number of halfwords last storage address number of characters first segment number \f G_e_n_e_r_a_l_ _R_u_l_e_s_ Operations can be initiated by an internal process that has i_n_- i_t_i_a_l_i_z_e_d_ or r_e_s_e_r_v_e_d_ the device. Setting the device in the l_o_c_a_l_ state has no effect other than delaying output until the device is set remote again, unless the time in local state exceeds two minutes. In that case an end of paper status will be returned. S_e_n_s_e_ _O_p_e_r_a_t_i_o_n_ The device is sensed and the status word delivered as an answer. O_u_t_p_u_t_ _O_p_e_r_a_t_i_o_n_ A storage area within the sending process is output as one block. Characters must be represented in the ISO 7-bit code with three characters per word. Output is terminated, 1) when the block has been output, or 2) after a timer error, or 3) at end of paper whichever occurs first. Output is terminated by an answer defining the actual number of characters output. Notice if the status indicates 'end of paper' b_e_f_o_r_e_ _a_n_y_ _o_u_t_p_u_t_, the operation will be treated as a sense operation. \f S_t_a_t_u_s_ _B_i_t_s_ 2 timer 5 end of paper O_u_t_p_u_t_ _M_o_d_e_ The output mode is part of the message mode: 0 Then answer is returned when the transmitted block has been w_r_i_t_t_e_n_. 2 The answer is returned when the transmitted block has been r_e_c_e_i_v_e_d_. M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ operation: message: answer: sense 0 status word 0 0 output 5 < 12 + mode status word first storage address number of halfwords last storage address number of characters \f G_e_n_e_r_a_l_ _R_u_l_e_s_ Operations can be initiated by an internal process that has i_n_- i_t_i_a_l_i_z_e_d_ or r_e_s_e_r_v_e_d_ the device. The device is sensed before each operation. If the status word indicates an intervention by the operator in the local mode, the name of the process is removed (together with the present reser- vation) and all messages are answered with the result: r_e_c_e_i_v_e_r_ d_o_e_s_ _n_o_t_ _e_x_i_s_t_. The device is now in the state: d_o_c_u_m_e_n_t_ _r_e_m_o_v_e_d_. When the operator switches back to r_e_m_o_t_e_ mode, the device state will be set to: u_n_i_d_e_n_t_i_f_i_e_d_ _d_o_c_u_m_e_n_t_ _m_o_u_n_t_e_d_. When the device is named by the monitor procedure c_r_e_a_t_e_ _p_e_r_i_p_h_- e_r_a_l_ _p_r_o_c_e_s_s_, the device state becomes: i_d_e_n_t_i_f_i_e_d_ _d_o_c_u_m_e_n_t_ m_o_u_n_t_e_d_. F_i_l_e_ _a_n_d_ _B_l_o_c_k_ _C_o_u_n_t_ All answers from magnetic tape contain a file and block number defining the position of the tape after the operation. These num- bers are undefined after mounting. File and block number are re- set to zero only when load point is sensed after an operation. The file number is increased by one after the output of a tape mark or the sensing of a tape mark during a forward operation. It is decreased by one when a tape mark is sensed after a backward operation. The block number is increased by one when a block is input, output, or upspaced. If a tape mark is sensed during a forward operation, the block number is set to zero. The block number is decreased by one when a block is backspaced. \f These simple file and block numbers are based solely on a count of initiated operations and sensed status bits. There is no check against file and block numbers recorded in labels and data blocks. D_e_n_s_i_t_y_ The density of the station is 556 bpi (NRZI). B_l_o_c_k_ _S_i_z_e_ The storage area defined by input or output operations must not exceed 2080 halfwords. A violation will be treated as an u_n_i_n_t_e_l_- l_i_g_i_b_l_e_ _m_e_s_s_a_g_e_. S_e_n_s_e_ _O_p_e_r_a_t_i_o_n_ The device is sensed and the status word delivered as an answer. I_n_p_u_t_ _O_p_e_r_a_t_i_o_n_ A block of characters is input to a storage area within the send- ing process. Each storage word contains four 6-bit characters. Unused character positions in the last input word are filled with NUL characters. Input is terminated, when 1) data have been transferred to the last storage ad- dress, or 2) the block on the tape is exhausted, or 3) data overrun is detected, or 4) timer error is detected, whichever occurs first. \f O_u_t_p_u_t_ _O_p_e_r_a_t_i_o_n_ A storage area within the sending process is output as one block. Each storage word is output as four 6-bit characters. Output is terminated, when 1) the whole block has been output, or 2) output of an all-zero even parity character is at- tempted, or 3) data overrun is detected, whichever occurs first. E_r_a_s_e_ _O_p_e_r_a_t_i_o_n_ Erases a length of tape. M_o_v_e_ _O_p_e_r_a_t_i_o_n_ Moves the tape in accordance with the move operation defined in the message (if the move operation is negative or greater than six it is treated as a sense operation): move operation: 0 upspace file 1 upspace block 2 backspace file 3 backspace block 4 rewind tape 5 unload tape 6 position tape Move operation 6 positions the tape as specified in the message. If the specified file of block number is negative the operation is treated as a sense operation. If the block specified does not exist the tape will be positioned at the start of the file after the one specified. \f Move operation 5 rewinds the tape and when BOT is sensed sets the unit off-line. If the specified file and block number is zero, a rewind oper- ation is always executed. O_u_t_p_u_t_ _T_a_p_e_ _M_a_r_k_ Outputs two tape marks and positions after the first. S_e_t_ _M_o_d_e_ _O_p_e_r_a_t_i_o_n_ Selects parity for subsequent I/O operations. M_o_d_e_ Characters can be input or output in several ways defined by the sum of numbers specifying parity, density, and trail. mode = trail < 4 + density < 2 + parity < 1 parity: 0 odd parity 1 even parity density: 1 556 bpi/nrz trail: 0 (in NCP rev. 4.00: trail = 1, 2, 3, 4, 5 will omit the last 2, 3, 4, 6, 7 6-bit characters in output operation). If trail > 5 it will be set to 5. \f S_t_a_t_u_s_ _B_i_t_s_ 0 intervention 1 parity error (after input, output, and erase) 2 timer (after input and output) 3 data overrun (after input and output) 4 block length error (after input) 5 EOT sensed (after input, output, erase, and upspace) 6 BOT sensed (after rewind and backspace) 7 tape mark sensed (after input, output tape mark, upspace, and backspace) 8 write-enable sensed (permanent) 9 mode error S_p_e_c_i_a_l_ _S_t_a_t_u_s_ _A_c_t_i_o_n_s_ T_i_m_e_r_ If a timer error is detected in the status word the unit will be rewound the file no and block no will be set to zero. W_r_i_t_e_ _E_n_a_b_l_e_ If the operation is output, erase, or output tape mark and the status word does not indicate write-enable, the operation will be treated as a sense operation. M_o_d_e_ _E_r_r_o_r_ Mode error will only occur when the commands input/output, or set mode are used. If a mode error is detected in the status word a possible input or output operation is not executed. File no and block no are unchanged. The command which causes the mode error will be treated as a sense operation. \f M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ operation: message: answer: sense 0 status word 0 0 file number block number input 3 < 12 + mode status word first storage address number of halfwords last storage address number of 8-bit bytes file number block number output 5 < 12 + mode status word first storage address number of halfwords last storage address number of 8-bit bytes file number block number erase 6 < 12 + 0 status word 0 0 file number block number move 8 < 12 + 0 status word move operation 0 file number 0 block number file number block number \f operation: message: answer: output tape 10 < 12 + 0 status word mark 0 0 file number block number set mode 14 < 12 + mode status word 0 0 file number block number In the answer the number of 8-bit bytes is evaluated as follows: number of 8-bit bytes = c6 - (c6//4) c6 denotes no of 6-bit characters It means that 0, 2, 4, or 6 zero bit are included. \f F_ \f G_e_n_e_r_a_l_ _R_u_l_e_s_ Operations can be initiated by an internal process that has i_n_- i_t_i_a_l_i_z_e_d_ or r_e_s_e_r_v_e_d_ the device. The device is sensed before each operation. If the status word indicates an intervention by the operator in the local mode, the name of the process is removed (together with the present reser- vation) and all messages are answered with the result: r_e_c_e_i_v_e_r_ d_o_e_s_ _n_o_t_ _e_x_i_s_t_. The device is now in the state: d_o_c_u_m_e_n_t_ _r_e_m_o_v_- e_d_. When the operator switches back to r_e_m_o_t_e_ mode, the device state will be set to: u_n_i_d_e_n_t_i_f_i_e_d_ _d_o_c_u_m_e_n_t_ _m_o_u_n_t_e_d_. When the device is named by the monitor procedure c_r_e_a_t_e_ _p_e_r_i_p_h_- e_r_a_l_ _p_r_o_c_e_s_s_, the device state becomes: i_d_e_n_t_i_f_i_e_d_ _d_o_c_u_m_e_n_t_ m_o_u_n_t_e_d_. F_i_l_e_ _a_n_d_ _B_l_o_c_k_ _C_o_u_n_t_ All answers from magnetic tape contain a file and block number defining the position of the tape after the operation. These numbers are undefined after mounting. File and block number are reset to zero only when load point is sensed after an operation. The file number is increased by one after the output of a tape mark or the sensing of a tape mark during a forward operation. It is decreased by one when a tape mark is sensed after a backward operation. The block number is increased by one when a block is input, output, or upspaced. If a tape mark is sensed during a forward operation, the block number is set to zero. The block number is decreased by one when a block is backspaced. \f These simple file and block numbers are based solely on a count of initiated operations and sensed status bits. There is no check against file and block numbers recorded in labels and data blocks. D_e_n_s_i_t_y_ The density of the station is either NRZ (800 bpi) or PE (1600 bpi) and is selected by a switch on each tape unit. The density is checked (at load point only) by one of the operations set mode, input or output. B_l_o_c_k_ _S_i_z_e_ The storage area defined by input or output operations must not exceed 2080 halfwords. A violation will be treated as an u_n_i_n_t_e_l_- l_i_g_i_b_l_e_ _m_e_s_s_a_g_e_. S_e_n_s_e_ _O_p_e_r_a_t_i_o_n_ The device is sensed and the status word delivered as an answer. I_n_p_u_t_ _O_p_e_r_a_t_i_o_n_ A block of characters is input to a storage area within the send- ing process. Each storage word contains three 8-bit characters. Unused character positions in the last input word are filled with NUL characters. \f Input is terminated, when 1) data have been transferred to the last storage address, or 2) the block on the tape is exhausted, or 3) data overrun is detected, or 4) timer error is detected, whichever occurs first. O_u_t_p_u_t_ _O_p_e_r_a_t_i_o_n_ A storage area within the sending process is output as one block. Each storage word is output as three 8-bit characters. Output is terminated, when 1) the whole block has been output, or 2) output of an all-zero even parity character by NRZ is attempted, or 3) data overrun is detected, whichever occurs first. E_r_a_s_e_ _O_p_e_r_a_t_i_o_n_ Erases a length of tape. M_o_v_e_ _O_p_e_r_a_t_i_o_n_ Moves the tape in accordance with the move operation defined in the message (if the move operation is negative or greater than six it is treated as a sense operation): \f move operation: 0 upspace file 1 upspace block 2 backspace file 3 backspace block 4 rewind tape 5 unload tape 6 position tape Move operation 6 positions the tape as specified in the message. If the specified file or block number is negative the operation is treated as a sense operation. If the block specified does not exist the tape will be positioned at the start of the file after the one specified. Move operation 5 rewinds the tape and when BOT is sensed sets the unit off-line. If the specified file and block number is zero, a rewind oper- ation is always executed. O_u_t_p_u_t_ _T_a_p_e_ _M_a_r_k_ Outputs two tape marks and positions after the first. S_e_t_ _M_o_d_e_ _O_p_e_r_a_t_i_o_n_ This operation is dummy except at load point when a check of the actual density is performed. M_o_d_e_ Characters can be input or output in several ways defined by the sum of numbers specifying parity, density, and trail. mode = trail < 4 + density < 2 + parity \f parity: 0 odd parity density: 0 1600 bpi/pe 1 800 bpi/nrz trail: the number of characters not to be transferred from the last doubleword of the storage area spe- cified in an output operation. Allowed numbers 0, 1, 2, 3, 4, 5. Only relevant for output opera- tions. If number > 5 the trail will be set to 5. S_t_a_t_u_s_ _B_i_t_s_ 0 intervention 1 parity error (after input, output, and erase) 2 timer (after input and output) 3 data overrun (after input and output) 4 block length error (after input) 5 EOT sensed (after input, output, erase, and upspace) 6 BOT sensed (after rewind and backspace) 7 tape mark sensed (after input, output tape mark, upspace, and backspace) 8 write-enable sensed (permanent) 9 mode error S_p_e_c_i_a_l_ _S_t_a_t_u_s_ _A_c_t_i_o_n_s_ T_i_m_e_r_ If a timer error is detected in the status word the unit will be rewound the file no and block no will be set to zero. \f W_r_i_t_e_ _E_n_a_b_l_e_ If the operation is output, erase, or output tape mark and the status word does not indicate write-enable, the operation will be treated as a sense operation. M_o_d_e_ _E_r_r_o_r_ Mode error will only occur when the commands input/output, or set mode are used. If a mode error is detected in the status word a possible input or output operation is not executed. File no and block no are unchanged. The command which causes the mode error will be treated as a sense operation. M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ operation: message: answer: sense 0 status word 0 0 file number block number input 3 < 12 + mode status word first storage address number of halfwords last storage address number of characters file number block number output 5 < 12 + mode status word first storage address number of halfwords last storage address number of characters file number block number \f operation: message: answer: erase 6 < 12 + 0 status word 0 0 file number block number move 8 < 12 + 0 status word move operation 0 file number 0 block number file number block number output tape 10 < 12 + 0 status word mark 0 0 file number block number set mode 14 < 12 + mode status word 0 0 file number block number \f operation: message: answer: output tape mark 10 < 12 + 0 status word 0 0 file number block number set mode 14 < 12 + mode status word 0 0 file number block number \f «eof»