
















      operacionnaq sistema  R T 1 1 (OPISANIE SOSTAWLENO NA OSNOWE

          OPISANIQ os rafos S WNESENIEM IZMENENIJ I DOPOLNENIJ)

                             formaty fajlow

                   rukowodstwo sistemnogo programmista



                                  1984





                               LISTOW 86

























 pERW.PRIMEN.
                                                                 lITERA

                                 - 2 -






                                 - 3 -








                               sodervanie




 1.  wwedenie                                                         5


 2.  format ishodnogo fajla                                           7


 3.  format ob'ektnogo modulq                                         7

 3.1.    blok GSD                                                    11
 3.1.1.    informaciq ob ob'ektnom module (ki|b=0)                   12
 3.1.2.    informaciq o kontrolxnoj sekcii (ki|b=1)                  13
 3.1.3.    informaciq o tablice wnutrennih simwolow (ki|b=2)         14
 3.1.4.    informaciq o startowom adrese (ki|b=3)                    14
 3.1.5.    informaciq o globalxnyh simwolah (ki|b=4)                 15
 3.1.6.    informaciq o programmnoj sekcii (ki|b=5)                  16
 3.1.7.    identifikator wersii programmy (ki|b=6)                   18
 3.1.8.    ob'qwlenie massiwa otobraveniq (ki|b=7)                   19
 3.2.    blok ENDGSD                                                 19
 3.3.    blok TXT                                                    20
 3.4.    blok RLD                                                    20
 3.4.1.    wnutrennee pereme}enie                                    22
 3.4.2.    globalxnoe pereme}enie                                    23
 3.4.3.    wnutrennee pereme}aemoe sme}enie                          23
 3.4.4.    globalxnoe pereme}aemoe sme}enie                          24
 3.4.5.    globalxnoe additiwnoe sme}enie                            24
 3.4.6.    globalxnoe additiwnoe pereme}aemoe sme}enie               25
 3.4.7.    opredelenie sodervimogo s~et~ika adresa                   25
 3.4.8.    modifikaciq s~et~ika adresow                              26
 3.4.9.    ustanowka granic programmy                                26
 3.4.10.   sme}enie programmnoj sekcii                               26
 3.4.11.   pereme}aemoe sme}enie programmnoj sekcii                  27
 3.4.12.   additiwnoe sme}enie programmnoj sekcii                    28
 3.4.13.   additiwnoe  pereme}aemoe   sme}enie   programmnoj
           sekcii                                                    28
 3.4.14.   slovnoe sme}enie                                          29
 3.5.    blok ENDMOD                                                 31

 4.  format fajla STB                                                32


 5.  format bibliote~nyh fajlow                                      33

 5.1.    struktura makrobiblioteki                                   35
 5.2.    struktura ob'ektnoj biblioteki                              37
 5.3.    format bloka konca biblioteki                               38

 6.  format fajla LDA                                                39


 7.  format fajla SAV                                                41

                                 - 4 -




 8.  format fajla REL                                                43

 8.1.    neowerlejnaq operatiwnaq programma                          43
 8.2.    owerlejnaq operatiwnaq programma                            45

 9.  format fajla perekrestnyh ssylok                                48


 10. format fajla protokolirowaniq o{ibok                            49


 11. struktura ustrojstwa prqmogo dostupa                            54

 11.1.   blok informacii sistemy                                     55
 11.2.   katalog fajlow                                              57
 11.2.1.   format zagolowka segmenta kataloga                        57
 11.2.2.   format zapisi o fajle w kataloge                          58
 11.2.2.1. slowo sostoqniq fajla                                     58
 11.2.2.2. imq i tip fajla                                           60
 11.2.2.3. dlina fajla                                               60
 11.2.2.4. nomer zadaniq (linii) i nomer kanala                      60
 11.2.2.5. data                                                      61
 11.2.2.6. dopolnitelxnye slowa                                      61
 11.3.   razmer  i  koli~estwo  fajlow,   razme}ennyh   na
         nositele                                                    62
 11.4.   algoritm zapolneniq segmentow zapisqmi                      63
 11.4.1.   wosstanowlenie   dannyh   w   slu~ae    poqwleniq
           defektnyh blokow w kataloge                               66
 11.4.1.1. prowerka segmenta 1                                       66
 11.4.1.2. opredelenie struktury swqzi segmentow                     67
 11.4.1.3. polu~enie  dannyh  iz  segmentow,  ne  soderva}ih
           defektnye bloki                                           69
 11.4.1.4. polu~enie dannyh iz segmenta s defektnymi blokami         69
 11.5.   sozdanie i razme}enie fajlow w sisteme                      70
 11.6.   gibkie diski w formate obmena                               72
 11.7.   mnogotomnaq fajlowaq struktura                              75
 11.7.1.   rabota s wirtualxnymi nositelqmi w RT11                   76
 11.7.1.1. drajwer wirtualxnogo fajlowogo nositelq                   76
 11.7.1.2. struktura kataloga diska i wirtualxnogo nositelq          76
 11.7.2.   rabota s wirtualxnymi nositelqmi w os NTS                 76

 12. struktura ustrojstwa posledowatelxnogo dostupa                  77

 12.1.   struktura fajlow na magnitnoj lente                         77
 12.2.   struktura kassetnogo fajla                                  81

                                 - 5 -




                              1. wwedenie




       RT11 uprawlqet tremq tipami informacii:

         - simwolxnoj;
         - formatnoj dwoi~noj;
         - neformatnoj dwoi~noj.

       ishodnyj fajl, napisannyj na assemblere ili na odnom  iz  qzykow
  wysokogo urownq, sodervit simwolxnyj tip informacii.

       posle kompilqcii fajla budet polu~en ob'ektnyj fajl,  soderva}ij
  formatnu` dwoi~nu` informaci`.

       posle obrabotki ob'ektnogo fajla komponow}ikom (programma  LINK)
  polu~ennyj fajl sodervit neformatnyj dwoi~nyj tip informacii. |tot ve
  tip informacii sodervat fajly dannyh.

       w sisteme su}estwu`t tri formata fajlow (ris. 1):

         - ishodnye (tip MAC, FOR, DAT, BAS i dr.); |to  programmy  ili
           dannye w simwolxnom wide;

         - ob'ektnye (tip OBJ); oni obrazu`tsq w rezulxtate  translqcii
           ishodnyh fajlow; ob'ektnyj fajl movet sostoqtx iz odnogo ili
           neskolxkih ob'ektnyh modulej;  ob'edinenie  |tih  modulej  w
           ob'ektnyj fajl osu}estwlqetsq s pomo}x` komandy COPY i kl`~a
           /CONCATENATE; bibliote~nye fajly nelxzq ob'edinqtx s pomo}x`
           |toj komandy, oni obrabatywa`tsq specialxnoj programmoj bib-
           liotekarx (LIBR);

         - w formate zagruzki (tip SAV, REL, LDA); |to ob'ektnye fajly,
           skomponowannye  programmoj  LINK;  komponow}ik  sozdaet   iz
           ob'ektnogo fajla ili fajl-"kopi` pamqti" (SAV) dlq  fonowogo
           razdela, ili pereme}aemyj fajl (REL) dlq operatiwnogo razde-
           la, ili fajl w formate absol`tnoj zagruzki (LDA); tip  fajla
           zawisit ot kl`~a, kotoryj budet zadan w komande LINK.

                                 - 6 -




                  shema preobrazowaniq fajlow w sisteme


                             ishodnye  fajly

       !-------!           !-------!           !-------!
       ! *.MAC !           ! *.FOR !           ! *.XXX !
       !-------!           !-------!           !-------!
           !                   !                   !
           !                   !                   !
           Y                   Y                   Y
   !----------------!    !------------!    !---------------!
   !                !    ! kompilqtor !    !  kompilqtor,  !
   ! makroassembler !    !            !    !  napisannyj   !
   !                !    !  fortran   !    ! polxzowatelem !
   !----------------!    !------------!    !---------------!
           !                   !                   !
           !         ob'ektnye ! fajly (moduli)    !
           Y                   Y                   Y
       !-------!           !-------!           !-------!
       ! *.OBJ !           ! *.OBJ !           ! *.OBJ !
       !-------!           !-------!           !-------!
           !                   !                   !
           Y                   Y                   Y
           !-------------------!-------------------!
                          !                     !
                          !                     !
                          !                     Y
                          !                !---------------!
                          !   !-------!    !               !
                          !   ! *.OBJ !<---! bibliotekarx  !
                          !   !-------!    !               !
           !----------!   !       !        !---------------!
           !          !   !       !
           !          Y   Y       Y
           !        !---------------!
       !-------!    !               !
       ! *.STB !<---!  komponow}ik  !
       !-------!    !               !
                    !---------------!
                        !   !   !
                !-------!   !   !-------!
                !           !           !
                Y           Y           Y
            !-------!   !-------!   !-------!  fajly
            ! *.SAV !   ! *.REL !   ! *.LDA !  w formate
            !-------!   !-------!   !-------!  zagruzki



                                 ris. 1

                                 - 7 -




                       2. format ishodnogo fajla




       fajly ishodnyh tekstow programm, napisannyh  na  makroassemblere
  ili fortrane, i tekstowye fajly, sozdannye redaktorom, qwlq`tsq  pos-
  ledowatelxnostx` simwolow koda koi-7. |ti fajly  sodervat  posledowa-
  telxnosti bajtow, i kavdyj bajt predstawlqet odin simwol koda koi-7.

       oby~no tekstowyj fajl razbiwaetsq na "stranicy",  kotorye  otde-
  lq`tsq drug ot druga uprawlq`}im simwolom  <FF>  (perewod  stranicy).
  stranicy mogut razbiwatxsq na stroki, kotorye otdelq`tsq drug ot dru-
  ga posledowatelxnostx` uprawlq`}ih simwolow <CR><LF>. tekstowye fajly
  ne ime`t specialxnyh zagolowkow ili blokow okon~aniq  i  ne  sodervat
  formatnyh dwoi~nyh blokow.

       kod 32 (ili  <CTRL/Z>)  movet  zawer{atx  tekstowoj  fajl.  esli
  komandnaq stroka dlq PIP zadana s kl`~om /A  (ili  esli  ispolxzuetsq
  komanda monitora COPY/ASCII) dlq kopirowaniq tekstowyh fajlow, to pri
  wypolnenii operacii ona osu}estwlqet prowerku na nali~ie uprawlq`}ego
  simwola <CTRL/Z>. esli fajl sodervit <CTRL/Z>, PIP predpolagaet,  ~to
  |to konec fajla. esli PIP ispolxzuetsq w revime "po  umol~ani`"  (ili
  zadana komanda monitora COPY bez kl`~ej) dlq  kopirowaniq  tekstowogo
  fajla, ona ne otsleviwaet poqwlenie <CTRL/Z>. kopirowanie prodolvaet-
  sq do obnaruveniq fizi~eskogo konca fajla.




                      3. format ob'ektnogo modulq




       oby~no modulx programmy, napisannyj na assemblere, na~inaetsq  s
  direktiwy .TITLE (za kotoroj  sleduet  imq  modulq)  i  zakan~iwaetsq
  direktiwoj .END (priznak konca programmy). esli imq  modulq  otsutst-
  wuet, to, po umol~ani`, modulx polu~aet imq ".MAIN.".

       ob'ektnyj modulx oby~no sozdaetsq pri  assemblirowanii  ili  pri
  kompilqcii, esli ishodnyj modulx napisan  na  qzyke  wysokogo  urownq
  (iskl`~aq paskalx).

       modulx sostoit iz dwoi~nyh blokow. kavdyj blok - |to  posledowa-
  telxnostx bajtow, kotoraq movet hranitxsq na l`bom wne{nem  nositele,
  w tom ~isle i na perfolente.

       struktura dwoi~nogo bloka predstawlena na ris. 2.

                                 - 8 -




            !-------------------------!-----
            !            1            !   A
            !-----               -----!   !
            !            0            !   !
            !-------------------------!   !
            !     s~et~ik  bajtow     ! koli~estwo bajtow,
            !-----               -----! ukazannoe
            !        w bloke          ! w s~et~ike
            !-------------------------!   !
            .                         .   !
            .        d a n n y e      .   !
            .                         .   V
            !-------------------------!-----
            ! bajt kontrolxnoj summy  !
            !        bloka            !
            !-------------------------!

                     ris. 2

       perwye dwa bajta kavdogo  bloka  sodervat  identifikator  na~ala
  bloka:

                mlad{ij bajt - 1;
                star{ij bajt - 0.

       2-j i 3-j bajty qwlq`tsq s~et~ikom i ukazywa`t koli~estwo bajtow
  w bloke (bajt kontrolxnoj summy ne u~itywaetsq).

       zna~enie bajta kontrolxnoj summy bloka rawno summe zna~enij wseh
  bajtow bloka w dopolnitelxnom kode. takim obrazom, summa wseh  bajtow
  bloka (wkl`~aq kontrolxnu` summu) dolvna bytx rawna nul`.

       dannye, nahodq}iesq w dwoi~nom bloke, opredelq`tsq tipom  bloka.
  tip bloka zapisywaetsq w tretxe slowo dwoi~nogo bloka.

       kavdyj tip bloka imeet swoj kod identifikatora tipa  bloka  (kod
  itb). tipy blokow predstawleny w tabl. 1.

                                 - 9 -




                                         tablica 1
             -------------------------------------
              kod itb ! tip bloka !    funkciq
             -------------------------------------
                      !           ! informaciq o
                 1    !      GSD  ! globalxnyh
                      !           ! simwolah
             ---------!-----------!---------------
                      !           ! priznak konca
                 2    !   ENDGSD  ! blokow GSD w
                      !           ! module
             ---------!-----------!---------------
                      !           ! ma{innye
                 3    !      TXT  ! kody
                      !           ! programmy
             ---------!-----------!---------------
                      !           ! informaciq o
                 4    !      RLD  ! pereme}aemyh
                      !           ! lokalxnyh
                      !           ! simwolah
             ---------!-----------!---------------
                      !           ! informaciq o
                      !           ! wnutrennih
                 5    !      ISD  ! simwolah (ne
                      !           ! podderviwaetsq
                      !           ! sistemoj)
             ---------!-----------!---------------
                      !           ! priznak konca
                 6    !   ENDMOD  ! ob'ektnogo
                      !           ! modulq
             ---------!-----------!---------------
                      !           ! zagolowok
                 7    !   TITLIB  ! bibliote~nogo
                      !           ! fajla
             ---------!-----------!---------------
                      !           ! priznak konca
                10    !   ENDLIB  ! bibliote~nogo
                      !           ! fajla

       perwym blokom ob'ektnogo modulq dolven bytx  blok  GSD.  esli  w
  module sodervitsq neskolxko blokow GSD, to |ti  bloki  mogut  ~eredo-
  watxsq s drugimi blokami (ris. 3). wse bloki GSD dolvny bytx raspolo-
  veny pered blokom ENDGSD (priznak konca blokow GSD). blok  ISD  movet
  bytx raspoloven w l`bom meste mevdu blokami GSD i ENDMOD.

       neobhodimo ob'qwitx  wse  programmnye  sekcii  (PSECT,  VSECT  i
  CSECT), opredelqemye w module w blokah GSD. pri rezerwirowanii oblas-
  ti dlq sekcii razmer kavdoj opredelqemoj  programmnoj  sekcii  ukazy-
  waetsq w bajtah.

       esli programmnaq sekciq ob'qwlqetsq neskolxko raz w odnom i  tom
  ve ob'ektnom module, komponow}ik ustanawliwaet samyj  bolx{oj  ob'qw-
  lennyj razmer dlq |toj sekcii. wse globalxnye simwoly, kotorye  opre-
  deleny w dannoj programmnoj sekcii, dolvny bytx opisany w blokah GSD,
  neposredstwenno sledu`}ih za ob'qwleniem |toj programmnoj sekcii.

       specialxnaq programmnaq sekciq,  nazywaemaq  absol`tnoj  sekciej
  (.ABS.), razme}aetsq komponow}ikom,  na~inaq  s  q~ejki  0  w  pamqti
  (ozu). neposredstwenno posle tipa zapisi w bloke GSD, kotoryj oprede-

                                 - 10 -




  lqet absol`tnu` sekci`, ob'qwlq`tsq wse globalxnye  simwoly,  kotorye
  sodervat absol`tnye zna~eniq (nepereme}aemye).

       esli net neobhodimosti raspredelitx mesto dlq absol`tnoj sekcii,
  to w q~ejke, soderva}ej razmer |toj sekcii, neobhodimo ukazatx 0. |to
  movno sdelatx dave w tom slu~ae, esli posle nee ob'qwlqetsq  absol`t-
  nyj globalxnyj simwol.

       globalxnyj simwol, na kotoryj  ime`tsq  ssylki,  no  kotoryj  ne
  opredelen w teku}em ob'ektnom module, dolven takve bytx opisan w blo-
  ke GSD. |ti globalxnye ssylki mogut bytx opisany w  l`bom  bloke  GSD
  (krome samogo perwogo, kotoryj sodervit imq modulq) posle  absol`tnoj
  PSECT. oni wsegda opredelq`t posledn`` ob'qwlennu` PSECT.


       pRIME^ANIE.  esli  16-razrqdnoe  slowo  zapominaetsq  kak  ~astx
  informacii w bloke dannyh, ono wsegda zapominaetsq kak posledowatelx-
  nostx iz dwuh 8-razrqdnyh bajtow; perwym raspolagaetsq mlad{ij bajt.

       bloki dannyh ob'ektnogo modulq  ime`t  razli~nu`  dlinu.  perwyj
  bajt w bloke dannyh sodervit kod, kotoryj  identificiruet  tip  bloka
  dannyh. kody mogut imetx zna~eniq ot 0 do 10  (wosxmeri~noe).  format
  posledu`}ej informacii w bloke dannyh zawisit ot tipa bloka dannyh.

                                 - 11 -




                        format ob'ektnogo modulq


            !--------!
            !   GSD  !  inicializaciq blokow GSD
            !--------!
            !   RLD  !  inicializaciq blokow RLD
            !--------!
            !   GSD  !  dopolnitelxnyj blok GSD
            !--------!---
            !   TXT  ! !
            !--------! !  tekstowye bloki
            !   TXT  ! V
            !--------!---
            !   RLD  !  informaciq o pereme}aemyh
            !--------!  lokalxnyh simwolah
                ...
                ...
                ...
            !--------!
            !   GSD  !
            !--------!
            ! ENDGSD !  blok konca blokow GSD
            !--------!---
            !   ISD  ! !  informaciq o
            !--------! !  wnutrennih
            !   ISD  ! V  simwolah
            !--------!---
            !   TXT  !
            !--------!
            !   TXT  !
            !--------!
            !   TXT  !
            !--------!
            !   RLD  !
            !--------!
            ! ENDMOD !  blok konca modulq
            !--------!

                                 ris. 3

       blok ENDMOD (priznak konca ob'ektnogo modulq) dolven  bytx  pos-
  lednim w ob'ektnom module.



       3.1. blok GSD



       bloki GSD sodervat ws` informaci`, neobhodimu` komponow}iku  dlq
  nazna~eniq adresow globalxnym simwolam i  dlq  raspredeleniq  pamqti,
  zapra{iwaemoj zadaniem.

       blok GSD sostoit iz |lementow, kavdyj iz kotoryh  imeet  format,
  predstawlennyj na ris. 4.

                                 - 12 -




              format |lementa bloka


              !-------------------!  identifikator
              !    0    !    1    !  bloka GSD
              !-------------------!
              ! imq w kode RAD50  !
              !---             ---!
              !     (2 slowa)     !
              !---------!---------!
              !  ki|b   ! flavki  !
              !---------!---------!
              ! dlina ili sme}enie!
              !-------------------!

                     ris. 4

       star{ij bajt ~etwertogo slowa bloka GSD sodervit kod identifika-
  tora |lementa bloka (ki|b). zna~enie ki|b ukazywaet na  tip  soderva-
  }ejsq informacii:

  0      - informaciq ob ob'ektnom module;

  1      - imq kontrolxnoj sekcii (.CSECT);

  2      - imq tablicy wnutrennih simwolow (sistemoj ne ispolxzuetsq);

  3      - informaciq o startowom adrese;

  4      - informaciq o globalxnyh simwolah;

  5      - informaciq o programmnoj sekcii (.ASECT, .CSECT ili .PSECT);

  6      - identifikator wersii programmy (.IDENT);

  7      - informaciq o wirtualxnoj sekcii programmy (.VSECT).



       3.1.1. informaciq ob ob'ektnom module (ki|b=0)



       |lement ob'ektnogo modulq  ob'qwlqet  imq  ob'ektnogo  modulq  i
  imeet strukturu, predstawlennu` na ris. 5.

            !-----------------!
            !   imq modulq    !
            !---           ---!
            !   w kode RAD50  !
            !-----------------!
            !    0   !   0    !
            !-----------------!
            !        0        !
            !-----------------!

                  ris. 5

       imq ob'ektnogo modulq ne obqzano bytx unikalxnym  (edinstwennym)

                                 - 13 -




  po otno{eni` k drugim ob'ektnym modulqm, poskolxku moduli identifici-
  ru`tsq fajlom, a ne imenem modulq.  odnako  tolxko  odno  imq  modulq
  movet bytx ob'qwleno w odnom ob'ektnom module.

       |lement ob'ektnogo modulq sodervit sledu`}u` informaci`:

  slowa 1 i 2
         - imq modulq w kode  RAD50;  imq  modulq  daetsq  w  direktiwe
           .TITLE;

  slowo 3
         - mlad{ij bajt (flavki) = 0;
         - star{ij bajt (ki|b) = 0;

  slowo 4
         - sme}enie = 0.



       3.1.2. informaciq o kontrolxnoj sekcii (ki|b=1)



       zapisx sodervit imq kontrolxnoj sekcii. komponow}ik  preobrazuet
  kontrolxnye sekcii (kotorye wkl`~a`t .ASECT, neimenowannu`  i  imeno-
  wannye .CSECT) w sootwetstwu`}ie .PSECT.  |to  preobrazowanie  wypol-
  nqetsq dlq sowmestimosti s drugimi sistemami.

       format kontrolxnoj sekcii predstawlen na ris. 6.

            !-------------------!
            !  imq kontrolxnoj  !
            !---             ---!
            !sekcii w kode RAD50!
            !-------------------!
            !    1   !ne ispolx-!
            !        ! zuetsq   !
            !-------------------!
            ! maksimalxnaq dlina!
            !-------------------!

                  ris. 6

       movno ob'qwitx .ASECT i .CSECT s pomo}x` direktiwy .PSECT.  nap-
  rimer, dlq ob'qwleniq neimenowannoj  .CSECT  ispolxzuetsq  .PSECT  so
  sledu`}imi atributami:

          .PSECT ,RW,I,LCL,REL,CON

       dlq ob'qwleniq imenowannoj .CSECT ispolxzuetsq .PSECT so sledu`-
  }imi atributami:

          .PSECT NAME,RW,I,GBL,REL,OVR

       dlq ob'qwleniq .ASECT ispolxzuetsq .PSECT so sledu`}imi  atribu-
  tami:

          .PSECT .ABS.,RW,I,GBL,ABS,OVR


                                 - 14 -




       komponow}ik preobrazuet .ASECT i .CSECT w .PSECT s fiksirowanny-
  mi atributami, ukazannymi wy{e.



       3.1.3. informaciq o tablice wnutrennih simwolow (ki|b=2)



       zapisx sodervit imq wnutrennego  simwola  (simwol  sodervitsq  w
  dannom module). t.k. komponow}ik  ne  ispolxzuet  tablicu  wnutrennih
  simwolow, to |ta zapisx ne sodervit  dopolnitelxnoj  informacii.  pri
  obrabotke blokow GSD komponow}ik ignoriruet |tu informaci`.

       format zapisi predstawlen na ris. 7.

            !-------------------!
            !    imq simwola    !
            !---             ---!
            !    w kode RAD50   !
            !-------------------!
            !    2    !    0    !
            !-------------------!
            !  ne ispolxzuetsq  !
            !-------------------!


                  ris. 7

       |lement programmnoj sekcii sodervit sledu`}u` informaci`:

  slowa 1 i 2
         - imq simwola w kode RAD50;

  slowo 3
         - mlad{ij bajt (flavki) rawen 0;
         - star{ij bajt (ki|b) rawen 2;

  slowo 4
         - ne ispolxzuetsq.



       3.1.4. informaciq o startowom adrese (ki|b=3)



       |lement startowogo adresa ob'qwlqet startowyj adres modulq otno-
  sitelxno PSECT i sodervit sledu`}u` informaci`:

  slowa 1 i 2
         - imq programmnoj sekcii w kode RAD50;

  slowo 3
         - mlad{ij bajt (flavki) = 0;
         - star{ij bajt (ki|b) = 3;


                                 - 15 -




  slowo 4
         - adres metki, ukazannoj w direktiwe .END, otnositelxno na~ala
           programmnoj sekcii; esli adres w direktiwe  otsutstwuet,  to
           assembler zapisywaet w |to  slowo  1;  pri  komponowke  LINK
           prosmatriwaet wse startowye adresa, wybiraet  perwyj  ~etnyj
           startowyj adres; esli wse  adresa  okazalisx  ne~etnymi,  to
           komponow}ik zapisywaet 1 w q~ejku 40 nulewogo bloka.

       format zapisi o startowom adrese predstawlen na ris. 8.

            !-------------------!
            !     imq PSECT     !
            !---             ---!
            !    w kode RAD50   !
            !-------------------!
            !    3    !    0    !
            !-------------------!
            !     sme}enie      !
            !-------------------!

                  ris. 8


       pRIME^ANIE. w slu~ae, kogda PSECT qwlqetsq absol`tnoj, to sme}e-
  nie sootwetstwuet fakti~eskomu adresu pereda~i, esli on ne |kwiwalen-
  ten 000001.



       3.1.5. informaciq o globalxnyh simwolah (ki|b=4)



       |lement globalxnogo simwola imeet sledu`}u` informaci`:

  slowa 1 i 2
         - imq globalxnogo simwola w kode RAD50;

  slowo 3
         - mlad{ij bajt (flavki);
         - star{ij bajt (ki|b = 4);

  slowo 4
         - konstanta; globalxnyj simwol movet bytx raspoloven  w  abso-
           l`tnoj ili pereme}aemoj sekcii; w swqzi  s  |tim  4-e  slowo
           |lementa budet sodervatx absol`tnyj adres ili sme}enie otno-
           sitelxno na~ala pereme}aemoj sekcii.

       dlq harakteristiki globalxnogo simwola ispolxzu`tsq dwa  flavka:
  bity 3 i 5.

       flavki sodervat sledu`}u` informaci` o globalxnom simwole:

   bit 3
           0 - ne opredelen w dannoj programmnoj sekcii;
           1 - opredelen;
   bit 5
           0 - absol`tnoe zna~enie;
           1 - pereme}aemoe zna~enie.

                                 - 16 -




       3.1.6. informaciq o programmnoj sekcii (ki|b=5)



       sistema pozwolqet pri sozdanii i korrektirowke  programm  prime-
  nqtx metod sekcionirowaniq.

       programma movet sostoqtx iz nabora programmnyh sekcij. programm-
  naq sekciq, krome imeni,  imeet  argumenty,  kotorye  opredelq`t  tip
  informacii, soderva}ejsq w |toj sekcii. naprimer, programmnaq  sekciq
  movet sostoqtx tolxko iz odnih dannyh ili tolxko iz odnih instrukcij.

       format zapisi o programmnoj sekcii predstawlen na ris. 9.

            !-------------------!
            !  imq programmnoj  !
            !---             ---!
            !sekcii w kode RAD50!
            !-------------------!
            !    5    ! flavki  !
            !-------------------!
            ! maksimalxnaq dlina!
            !-------------------!

                  ris. 9

       |lement programmnoj sekcii sodervit sledu`}u` informaci`:

  slowa 1 i 2
         - imq programmnoj sekcii w kode RADIX 50;

   slowo 3
         - mlad{ij bajt (flavki);
         - star{ij bajt (ki|b = 5);

  slowo 4
         - konstanta, rawnaq dline programmnoj sekcii pl`s 2 (t.e. uka-
           zywaet na sledu`}ij adres,  s  kotorogo  programmnaq  sekciq
           movet bytx prodolvena).

       prime~aniq:
       1. dlina wseh absol`tnyh sekcij rawna dline naibolx{ej iz nih.
       2. w sisteme ispolxzuetsq direktiwa makroassemblera  .PSECT  ili
  operator COMMON w fortrane dlq opredeleniq programmnoj sekcii.  prog-
  rammnaq sekciq imeet imq. esli imq otsutstwuet, to wmesto nego dolvna
  stoqtx zapqtaq. naprimer, esli imq programmnoj sekcii SYM, to  direk-
  tiwa imeet wid:

            .PSECT SYM,argumenty

       esli imq otsutstwuet, to direktiwa imeet wid:

            .PSECT ,argumenty

       makroassembler dopuskaet 256 programmnyh sekcij:

         - odnu absol`tnu` programmnu` sekci`;
         - odnu neimenowannu` pereme}aemu` programmnu` sekci`;
         - 254 imenowannye pereme}aemye programmnye sekcii.

                                 - 17 -




       programmnaq sekciq imeet sledu`}ij nabor argumentow (flavkow):

  ~tenie i zapisx (RW)
         - argument, ukazywa`}ij,  ~to  informaciq  dannoj  programmnoj
           sekcii movet s~itywatxsq i korrektirowatxsq;

  tolxko ~tenie (RO)
         - argument, ukazywa`}ij,  ~to  informaci`  dannoj  programmnoj
           sekcii movno tolxko s~itywatx, no ne korrektirowatx (ne pod-
           derviwaetsq sistemoj);

  absol`tnaq sekciq (ABS)
         - programmnaq sekciq, kotoraq sodervit tolxko absol`tnye adre-
           sa; esli |tot argument otsutstwuet, to po  umol~ani`  sekciq
           wosprinimaetsq kak pereme}aemaq;

  pereme}aemaq sekciq (REL)
         - programmnaq sekciq, soderva}aq pereme}aemye adresa; pri kom-
           ponowke operatiwnoj programmy LINK pome}aet wse q~ejki prog-
           rammnoj sekcii w bloki pereme}enij; argument ustanawliwaetsq
           po umol~ani`;

  globalxnaq sekciq (GBL)
         - argument, ispolxzuemyj pri sozdanii owerlejnoj programmy;  w
           |tom slu~ae wse globalxnye  sekcii,  opisannye  w  razli~nyh
           owerlejnyh modulqh, pri komponowke peresyla`tsq  w  kornewoj
           segment; pri otsutstwii argumenta sekciq wosprinimaetsq  kak
           lokalxnaq dlq owerlejnogo segmenta, gde  razme}aetsq  dannyj
           modulx;

  lokalxnaq sekciq (LCL)
         - programmnaq sekciq, raspolovennaq wnutri ob'ektnogo  modulq,
           w kotorom ona ob'qwlena; argument ustanawliwaetsq po umol~a-
           ni`;

  dannye (D)
         - argument, ukazywa`}ij, ~to programmnaq sekciq sodervit tolx-
           ko dannye; po  umol~ani`  ustanawliwaetsq,  ~to  programmnaq
           sekciq sodervit tolxko instrukcii;

  instrukcii (I)
         - argument, ukazywa`}ij, ~to programmnaq sekciq sodervit tolx-
           ko instrukcii; ustanawliwaetsq po umol~ani`;

  owerlejnaq sekciq (OVR)
         - argument, ukazywa`}ij, ~to wse programmnye sekcii s odinako-
           wymi imenami, ob'qwlennye w  raznyh  modulqh,  nakladywa`tsq
           drug na druga pri komponowke modulej w programmu;  pri  |tom
           razmer programmnoj sekcii budet rawen dline samoj bolx{oj iz
           ob'qwlennyh sekcij; po  umol~ani`  ustanawliwaetsq  argument
           "prisoedinqemaq sekciq";

  prisoedinqemaq sekciq (CON)
         - argument, ukazywa`}ij, ~to wse odnoimennye programmnye  sek-
           cii, ob'qwlennye w neskolxkih modulqh, dobawlq`tsq k  perwoj
           ob'qwlennoj sekcii; |tot argument ustanawliwaetsq po umol~a-
           ni`.

       |lement  programmnoj  sekcii  ispolxzuet  sledu`}ie  flavki  dlq

                                 - 18 -




  harakteristik sekcii:

        bit 2
                0 - neowerlejnaq programmnaq sekciq (CON);
                1 - owerlejnaq (OVR);
        bit 5
                0 - absol`tnaq (ABS);
                1 - pereme}aemaq (REL);
        bit 6
                0 - lokalxnaq (LCL);
                1 - globalxnaq (GBL);
        bit 7
                0 - sodervit tolxko instrukcii (I);
                1 - sodervit tolxko dannye (D).

       dopuskaetsq ispolxzowanie sledu`}ih programmnyh sekcij: .ASECT i
  .CSECT. odnako |ti programmnye sekcii ime`t strogo opredelennye argu-
  menty. pri popytke polxzowatelq  izmenitx  argumenty  pri  translqcii
  wydaetsq soob}enie ob o{ibke.

       nive priwedeny argumenty, kotorye mogut imetx programmnye sekcii
  RT11:

          .ASECT        RW, I, GBL, ABS, OVR
          .CSECT        RW, I, LCL, REL, CON
          .CSECT  /imq/ RW, I, GBL, REL, OVR
           COMMON /imq/ RW, D, GBL, REL, OVR



       3.1.7. identifikator wersii programmy (ki|b=6)



       identifikator wersii programmy  sodervit  nomer  wersii  modulq.
  komponow}ik izwlekaet nomer wersii iz direktiwy .IDENT perwogo  modu-
  lq, w kotorom on zadan, i wkl`~aet ego w kartu zagruzki pamqti.

       format zapisi predstawlen na ris. 10.

            !-------------------!
            !    simwolxnoe     !
            !---             ---!
            ! imq w kode RAD50  !
            !-------------------!
            !    0    !    0    !
            !-------------------!
            !         0         !
            !-------------------!

                  ris. 10

       |lement sodervit sledu`}u` informaci`:

  slowa 1 i 2
         - identifikator wersii w kode RAD50;


                                 - 19 -




  slowa 3 i 4
         - ne ispolxzu`tsq.



       3.1.8. ob'qwlenie massiwa otobraveniq (ki|b=7)



       |ta zapisx  sodervit  informaci`  o  raspredelenii  prostranstwa
  wnutri oblasti massiwa otobraveniq pamqti zadaniq. komponow}ik  wkl`-
  ~aet imq massiwa w spisok imenowannoj PSECT, i posledu`}ie bloki  RLD
  mogut ssylatxsq na nee.

       komponow}ik dobawlqet dlinu (w blokah po 32 slowa) dlq  razme}e-
  niq massiwa otobraveniq zadaniq. on opredelqet ob}ij  razmer  pamqti,
  neobhodimoj dlq razme}eniq kavdogo massiwa otobraveniq. bajt flaga ne
  ispolxzuetsq i predpolagaetsq rawnym nul`. tolxko kompilqtor s  qzyka
  fortran sm ispolxzuet programmnye sekcii .VSECT.

       komponow}ik preobrazuet VSECT w PSECT so sledu`}imi atributami:

          .PSECT .VIR.,RW,D,GBL,REL,CON

       dlina sootwetstwuet koli~estwu zapra{iwaemyh 32-slownyh  blokow.
  esli dlina rawna nul`, to |to kornewoj segment.

       ne dolvno bytx nikakih globalxnyh  simwolow  w  sekcii,  kotoraq
  na~inaetsq s nulewogo bazowogo adresa.


       pRIME^ANIE.  dopolnitelxnoe  adresnoe  okno  razme}aetsq,  kogda
  ob'qwlen massiw otobraveniq.

       format |lementa "ob'qwlenie massiwa otobraveniq" predstawlen  na
  ris. 11.

                    !-------------------!
                    !   imq massiwa     !
                    !   otobraveniq     !
                    !---             ---!
                    !   w kode RAD50    !
                    !-------------------!
                    !    7    ! ne isp. !
                    !-------------------!
                    !      dlina        !
                    !-------------------!

                          ris. 11



       3.2. blok ENDGSD



       blok ENDGSD ukazywaet, ~to predstawleny wse bloki GSD,  soderva-
  }iesq w dannom module.


                                 - 20 -




       w kavdom ob'ektnom module dolven bytx wsego  odin  blok  ENDGSD.
  dlina bloka dannyh rawna odnomu slowu (ris. 12).

                   !-------------------!
                   !    0    !    2    !
                   !-------------------!

                         ris. 12



       3.3. blok TXT



       blok tekstowoj informacii sodervit bajtowye  stroki  informacii,
  kotorye komponow}ik zapisywaet neposredstwenno w wyhodnoj fajl.  blok
  sodervit adres zagruzki, raspolovennyj w 2 bajtah.

       tekstowye zapisi mogut sodervatx  slowa  ili  bajty  informacii,
  kotoraq movet bytx prodolvena w sledu`}em bloke TXT.  w  |tom  slu~ae
  bloki TXT razdelq`tsq blokom RLD, soderva}im informaci`  o  pereme}e-
  nii. esli tekstowoj blok ne budet modificirowatxsq, to emu  ne  budet
  pred{estwowatx blok RLD.

       blok dannyh TXT tak ve, kak i blok RLD, ne  dolven  imetx  dlinu
  bolx{e 42 bajtow.

       format bloka TXT predstawlen na ris. 13.

                   !----------------!
                   !    kod  itb    !
                   !----------------!
                   ! adres zagruzki !
                   !----------------!
                   .    dwoi~nye    .
                   .      kody      .
                   .    programmy   .
                   !----------------!

                        ris. 13

       blok dannyh TXT imeet kod identifikatora tipa bloka  (kod  itb),
  rawnyj 3.

       adres zagruzki bloka  TXT  sootwetstwuet  sme}eni`  ot  teku}ego
  bazowogo adresa PSECT. perwomu bloku TXT  dolven  pred{estwowatx,  po
  krajnej mere, odin blok RLD |tot blok  RLD  dolven  ob'qwitx  teku}u`
  PSECT.



       3.4. blok RLD



       w blokah RLD sodervitsq informaciq o wseh sekciqh,  ime`}ihsq  w
  programme, i ih bazowyh adresah, o pereme}aemyh globalxnyh i  lokalx-
  nyh simwolah.

                                 - 21 -




       blok RLD movet sodervatx 14  tipow  komand.  komanda  (ris.  14)
  movet zanimatx maksimalxno ~etyre slowa. w zawisimosti ot tipa koman-
  dy izmenqetsq ee dlina. perwoe slowo  komandy  prisutstwuet  wo  wseh
  tipah komand.

                   format komandy bloka RLD

               !15            8!    7!6         0!
               !---------------!-----!-----------!
               ! otnositelxnoe !  B  !    kod    !
               !    sme}enie   !     ! komandy   !
               !---------------!-----!-----------!
               !    imq ( dwa slowa w kode       !
               !-----                       -----!
               !            RADIX 50 )           !
               !---------------------------------!
               !            konstanta            !
               !---------------------------------!

                            ris. 14

       bloki pereme}eniq RLD (sm. ris. 14) sodervat informaci`, neobho-
  dimu` LINK dlq pereme}eniq i komponowki, i pred{estwu`}u` bloku teks-
  towoj informacii.

       kavdyj modulx dolven imetx, po  krajnej  mere,  odin  blok  RLD,
  kotoryj pred{estwuet perwomu bloku TXT. perwyj blok  ne  modificiruet
  pred{estwu`}ij blok TXT, a opredelqet teku}u` PSECT i razme}enie.

       na ris. 14 predstawlen ob}ij wid  komandy,  kotoraq  sostoit  iz
  sledu`}ih komponentow:

         - otnositelxnoe sme}enie; ukazywaet sme}enie ot  na~ala  bloka
           TXT do sootwetstwu`}ego bajta (ili slowa) dannyh; bajt  sme-
           }eniq summiruetsq  so  zna~eniem,  wy~islqemym  otnositelxno
           adresa zagruzki pred{estwu`}ego bloka TXT; polu~ennoe zna~e-
           nie qwlqetsq wirtualxnym adresom, kotoryj dolven bytx  modi-
           ficirowan;

         - tip komandy (bity 0-6); movno ukazatx do 128 tipow komand; w
           RT11 ispolxzuetsq tolxko 14 tipow komand;

         - bit modifikacii (bit "B"); ne  ispolxzuetsq  sistemoj;  esli
           bit ustanowlen, to on ignoriruetsq; komponow}ik  obsluviwaet
           pereme}enie slowa, no ne bajta:
                - pri B=0 komanda modificiruet wse slowo;
                - pri B=1 komanda modificiruet bajt;

         - imq globalxnogo ili lokalxnogo simwola ili  imq  programmnoj
           sekcii;

         - konstanta; movet bytx otnositelxnym adresom ili  rezulxtatom
           summirowaniq, esli |togo trebuet dannaq komanda.

       su}estwu`t sledu`}ie tipy komand:

  tip 1  - wnutrennee pereme}enie;

  tip 2  - globalxnoe pereme}enie;

                                 - 22 -




  tip 3  - wnutrennee pereme}aemoe sme}enie;

  tip 4  - globalxnoe pereme}aemoe sme}enie;

  tip 5  - globalxnoe additiwnoe sme}enie;

  tip 6  - globalxnoe additiwnoe pereme}aemoe sme}enie;

  tip 7  - opredelenie sodervimogo s~et~ika adresow;

  tip 10 - modifikaciq s~et~ika adresow;

  tip 11 - ustanowka granic programmy (.LIMIT);

  tip 12 - sme}enie programmnoj sekcii;

  tip 13 - ne ispolxzuetsq;

  tip 14 - pereme}aemoe sme}enie programmnoj sekcii;

  tip 15 - additiwnoe sme}enie programmnoj sekcii;

  tip 16 - additiwnoe pereme}aemoe sme}enie programmnoj sekcii;

  tip 17 - slovnoe sme}enie.



       3.4.1. wnutrennee pereme}enie



       dannyj tip zapisi opredelqet prqmoj ukazatelx  na  adres  wnutri
  modulq. bazowyj adres teku}ej programmnoj sekcii pribawlqetsq k  uka-
  zannoj konstante, i rezulxtat zapisywaetsq w wyhodnoj fajl po  wy~is-
  lennomu adresu, t.e. summiruetsq bajt sme}eniq so  zna~eniem,  wy~is-
  lqemym otnositelxno adresa zagruzki pred{estwu`}ego bloka TXT.


            primer 1.                    primer 2.

   A:      MOV     #A,R0               .WORD   A


       komanda wnutrennego pereme}eniq imeet format, predstawlennyj  na
  ris. 15.

                       !-------------------!
                       !sme}enie ! B  ! 1  !
                       !-------------------!
                       !    konstanta      !
                       !-------------------!

                             ris. 15

                                 - 23 -




       3.4.2. globalxnoe pereme}enie



       |tot tip zapisi opredelqet prqmoj ukazatelx na  globalxnyj  sim-
  wol. komponow}ik opredelqet globalxnyj simwol i pome}aet rezulxtat  w
  wyhodnoj fajl po wy~islennomu adresu.


            primer 1.                    primer 2.

          MOV     #GLOBAL,R0           .WORD   GLOBAL


       format tipa komandy predstawlen na ris. 16.

                      !-------------------!
                      !sme}enie ! B  ! 2  !
                      !-------------------!
                      !  simwolxnoe imq   !
                      !---            ----!
                      !  w kode RAD50     !
                      !-------------------!

                             ris. 16



       3.4.3. wnutrennee pereme}aemoe sme}enie



       |tot tip zapisi opredelqet otnositelxnu`  ssylku  na  absol`tnyj
  adres wnutri pereme}aemoj kontrolxnoj sekcii.


            primer 1.                    primer 2.

          CLR     177550               MOV     177550,R0


       format tipa komandy predstawlen na ris. 17.

                     !-------------------!
                     !sme}enie ! B  ! 3  !
                     !-------------------!
                     !    konstanta      !
                     !-------------------!

                           ris. 17

                                 - 24 -




       3.4.4. globalxnoe pereme}aemoe sme}enie



       |tot tip zapisi sodervit otnositelxnu` ssylku na globalxnyj sim-
  wol. komponow}ik opredelqet imq  globalxnogo  simwola  i  ego  adres,
  zatem wy~islqet sme}enie mevdu adresom (adres dannoj instrukcii+2), w
  kotoryj budet pome}eno sme}enie, i adresom globalxnogo simwola. polu-
  ~ennoe zna~enie sme}eniq zapisywaetsq w wyhodnoj fajl  po  sootwetst-
  wu`}emu adresu (adres dannoj instrukcii+2).


            primer 1.                    primer 2.

           CLR     GLOBAL              MOV        GLOBAL,R0


       format tipa komandy predstawlen na ris. 18.

                     !-------------------!
                     !sme}enie ! B  ! 4  !
                     !-------------------!
                     !  simwolxnoe imq   !
                     !---             ---!
                     !   w kode RAD50    !
                     !-------------------!

                            ris. 18



       3.4.5. globalxnoe additiwnoe sme}enie



       |tot tip zapisi sodervit prqmoj ukazatelx na globalxnyj simwol s
  dopolnitelxnoj konstantoj. komponow}ik opredelqet  adres  globalxnogo
  simwola, dobawlqet k nemu ukazannu` konstantu i  polu~ennoe  zna~enie
  zapisywaet w wyhodnoj fajl.


            primer 1.                    primer 2.

          MOV       #GLOBAL+2,R0       .WORD      GLOBAL-4


       format tipa komandy predstawlen na ris. 19.

                     !-------------------!
                     !sme}enie ! B  ! 5  !
                     !-------------------!
                     !  simwolxnoe imq   !
                     !---            ----!
                     !  w kode RAD50     !
                     !-------------------!
                     !    konstanta      !
                     !-------------------!

                           ris. 19

                                 - 25 -




       3.4.6. globalxnoe additiwnoe pereme}aemoe sme}enie



       |tot tip zapisi sodervit ssylku na globalxnyj simwol s  dopolni-
  telxnoj konstantoj. komponow}ik opredelqet adres ukazannogo  globalx-
  nogo simwola i pribawlqet k nemu ukazannu` konstantu. iz  polu~ennogo
  zna~eniq komponow}ik wy~itaet adres  instrukcii+2,  w  kotoryj  budet
  pome}eno polu~ennoe  sme}enie.  zatem  |to  sme}enie  zapisywaetsq  w
  wyhodnoj fajl.


            primer 1.                    primer 2.

          CLR     GLOBAL+2             MOV     GLOBAL-5,R0


       format tipa komandy predstawlen na ris. 20.

                     !-------------------!
                     !sme}enie ! B  ! 6  !
                     !-------------------!
                     !  simwolxnoe imq   !
                     !---            ----!
                     !  w kode RAD50     !
                     !-------------------!
                     !    konstanta      !
                     !-------------------!

                           ris. 20



       3.4.7. opredelenie sodervimogo s~et~ika adresa



       |tot tip zapisi ob'qwlqet teku}u` PSECT i teku}ee zna~enie s~et-
  ~ika. komponow}ik zapominaet poslednij adres+2 pred{estwu`}ego ob'qw-
  leniq dannoj sekcii. on dobawlqet k |tomu adresu ukazannu`  konstantu
  i zapominaet rezulxtat kak teku}ee zna~enie s~et~ika.

       format tipa komandy predstawlen na ris. 21.

                     !-------------------!
                     !    0    ! B  ! 7  !
                     !-------------------!
                     !   imq sekcii      !
                     !---            ----!
                     !  w kode RAD50     !
                     !-------------------!
                     !     konstanta     !
                     !-------------------!

                           ris. 21

                                 - 26 -




       3.4.8. modifikaciq s~et~ika adresow



       |tot tip zapisi modificiruet teku}ee zna~enie  s~et~ika.  kompo-
  now}ik dobawlqet k teku}emu zna~eni` bazowogo s~et~ika PSECT  ukazan-
  nu` konstantu i zapominaet rezulxtat kak teku}ee zna~enie s~et~ika.


            primer 1.                    primer 2.

          .  =   .+N                   .BLKB     N


       format tipa komandy predstawlen na ris. 22.

                     !-------------------!
                     !   0     ! B  ! 10 !
                     !-------------------!
                     !    konstanta      !
                     !-------------------!

                            ris. 22



       3.4.9. ustanowka granic programmy



       |tot tip zapisi sozdaetsq pri ispolxzowanii direktiwy assemblera
  .LIMIT. komponow}ik izwlekaet perwyj adres wy{e zagolowka (s kotorogo
  oby~no na~inaetsq stek) i werhnij adres razme}eniq  programmy.  zatem
  on zapisywaet |ti adresa w wyhodnoj fajl w dwa slowa.


  primer.

          .LIMIT


       format tipa komandy predstawlen na ris. 23.

                     !-------------------!
                     !sme}enie ! B  ! 11 !
                     !-------------------!

                            ris. 23



       3.4.10. sme}enie programmnoj sekcii



       |tot tip zapisi  sodervit  prqmoj  ukazatelx  na  na~alo  drugoj
  PSECT, soderva}ej opredelenie imeni, na kotoru` proizwoditsq ssylka w
  dannoj PSECT. komponow}ik izwlekaet teku}ee zna~enie bazowogo  adresa
  ukazannoj PSECT i zapisywaet ego w wyhodnoj fajl.

                                 - 27 -




           primer 1.                    primer 2.

          .PSECT  A                   .PSECT  A
   B:                        B:
          . . .                       . . .
          . . .                       . . .
          . . .                       . . .

          .PSECT  C                   .PSECT  C
          MOV     #B,R0               .WORD B


       format tipa komandy predstawlen na ris. 24.

                     !-------------------!
                     !sme}enie ! B  ! 12 !
                     !-------------------!
                     !    imq sekcii     !
                     !---            ----!
                     !   w kode RAD50    !
                     !-------------------!

                           ris. 24



       3.4.11. pereme}aemoe sme}enie programmnoj sekcii



       |tot tip zapisi sodervit otnositelxnoe sme}enie do adresa na~ala
  drugoj PSECT, raspolovennoj w tom ve module.  komponow}ik  opredelqet
  teku}ij bazowyj adres ukazannoj PSECT. zatem  on  wy~itaet  iz  |togo
  zna~eniq adres+2, w kotoryj budet zapisano polu~ennoe zna~enie sme}e-
  niq, i zapisywaet rezulxtat w wyhodnoj fajl.


  primer.

          .PSECT  A
   B:
          . . .
          . . .
          . . .

          .PSECT  C
          MOV     B,R0


       format tipa komandy predstawlen na ris. 25.

                     !-------------------!
                     !sme}enie ! B  ! 14 !
                     !-------------------!
                     !    imq sekcii     !
                     !---            ----!
                     !   w kode RAD50    !
                     !-------------------!


                                 - 28 -




                           ris. 25



       3.4.12. additiwnoe sme}enie programmnoj sekcii



       |tot tip zapisi opredelqet prqmoj ukazatelx na  adres  w  drugoj
  PSECT, raspolovennoj w tom ve module. komponow}ik opredelqet  teku}ij
  bazowyj adres ukazannoj PSECT.  on  dobawlqet  konstantu  k  teku}emu
  bazowomu adresu i polu~ennoe zna~enie zapisywaet w wyhodnoj fajl.


           primer 1.                    primer 2.

          .PSECT  A                   .PSECT  A
   B:                       B:
          . . .                       . . .
          . . .                       . . .
          . . .                       . . .
   C:                       C:
          . . .                       . . .
          . . .                       . . .
          . . .                       . . .

          .PSECT  D
          MOV     #B+10,R0            .WORD   B+10
          MOV     #C,R0               .WORD   C


       format tipa komandy predstawlen na ris. 26.

                     !-------------------!
                     !sme}enie ! B  ! 15 !
                     !-------------------!
                     !    imq sekcii     !
                     !---            ----!
                     !  w kode RAD50     !
                     !-------------------!
                     !     konstanta     !
                     !-------------------!

                           ris. 26



       3.4.13. additiwnoe  pereme}aemoe   sme}enie   programmnoj
               sekcii



       |tot tip zapisi opredelqet otnositelxnoe sme}enie do adresa dru-
  goj PSECT, raspolovennoj w  tom  ve  module.  komponow}ik  opredelqet
  teku}ij bazowyj adres ukazannoj PSECT i dobawlqet k  nemu  konstantu.
  zatem wy~itaet iz polu~ennogo zna~eniq adres instrukcii+2, w  kotoryj
  budet zapisan rezulxtat. polu~ennoe  zna~enie  wywoditsq  w  wyhodnoj
  fajl.

                                 - 29 -




  primer.

          .PSECT  A
   B:
          . . .
          . . .
          . . .

   C:

          .PSECT  D
          MOV     B+10,R0
          MOV     C,R0


       format tipa komandy predstawlen na ris. 27.

                     !-------------------!
                     !sme}enie ! B  ! 16 !
                     !-------------------!
                     !    imq sekcii     !
                     !---            ----!
                     !  w kode RAD50     !
                     !-------------------!
                     !     konstanta     !
                     !-------------------!

                           ris. 27



       3.4.14. slovnoe sme}enie



       |tot tip zapisi  sodervit  kompleksnoe  pereme}aemoe  wyravenie.
  kompleksnoe pereme}aemoe wyravenie - |to wyravenie, w  kotorom  l`baq
  dwoi~naq ili unarnaq operaciq makroassemblera razre{ena s l`bym tipom
  argumenta, nezawisimo ot argumenta, kotoryj movet bytx neopredelennym
  globalxnym simwolom, pereme}aemym i  raspolovennym  w  drugoj  PSECT,
  absol`tnym ili kompleksnym pereme}aemym podwyraveniem.

       slowo komandy RLD sodervit stroku znakow, opredelq`}u` kody ope-
  racii i argumenty. kavdyj kod operacii zanimaet odin bajt,  i  polnaq
  komanda RLD dolvna raspolagatxsq w odnom bloke dannyh. komanda  "soh-
  ranitx rezulxtat" (kody 12 i 13) ukazywaet, ~to zna~enie dolvno  bytx
  zapisano w wyhodnoj fajl po sootwetstwu`}emu adresu.


       pRIME^ANIE. sleduet pomnitx, ~to kompleksnye pereme}eniq  zapre-
  }eny dlq programm, komponu`}ihsq dlq raboty w operatiwnom razdele.

       komponow}ik wosprinimaet wse  operandy  kak  16-bitnye  znakowye
  zna~eniq, ispolxzuq dwoi~nu` arifmetiku s dopolneniem do 2. rezulxta-
  ty  |kwiwalentny  wyraveniqm,  kotorye  wy~islq`tsq  assemblerom  pri
  translqcii.

                                 - 30 -




       prime~aniq:
       1. popytka deleniq na nulx sootwetstwuet rezulxtatu 0. komponow-
  }ik wydaet preduprevda`}ee soob}enie.
       2. wse rezulxtaty useka`tsq slewa do  16  razrqdow.  esli  ~islo
  sli{kom weliko, to diagnostika ne wydaetsq. esli rezulxtat  modifici-
  ruet bajt, komponow}ik rassmatriwaet dannu` situaci` kak o{ibku  use-
  ~eniq (bajtowye operacii zapre}eny).
       3. wse operacii proizwodqtsq nad pereme}aemymi (additiwnoe)  ili
  absol`tnymi 16-razrqdnymi zna~eniqmi PC.

       w RT11 ispolxzu`tsq sledu`}ie kody operacij:

   0     - net operacij;

   1     - slovenie (+);

   2     - wy~itanie (-);

   3     - umnovenie (*);

   4     - delenie (/);

   5     - logi~eskoe "i" (&);

   6     - logi~eskoe "ili" (!);

   7     - iskl`~a`}ee "ili" ;

  10     - otricanie (-);

  11     - dopolnenie (^C);

  12     - sohranitx rezulxtat (zawer{enie komandy);

  13     - sohranitx rezulxtat  s  pereme}aemym  sme}eniem  (zawer{enie
           komandy);

  16     - wyzwatx globalxnyj simwol; za komandoj sledu`t ~etyre bajta,
           soderva}ie simwolxnoe imq w kode RAD50;

  17     - wyzwatx pereme}aemoe  zna~enie;  za  komandoj  sleduet  odin
           bajt, soderva}ij nomer sekcii, i dwa bajta, soderva}ie  sme-
           }enie w sekcii;

  20     - wyzwatx konstantu; za komandoj sledu`t dwa bajta, soderva}ie
           konstantu.

                                 - 31 -




  primer.

          .PSECT  ALPHA
   A:
          . . .
          . . .
          . . .

          .PSECT  BETA
   B:
          . . .
          . . .
          . . .

          MOV     #A+B-<G1/G2&^C<177120!G3>>,R1


       format tipa komandy predstawlen na ris. 28.

                     !-------------------!
                     !sme}enie ! B  ! 17 !
                     !-------------------!
                     !  slovnaq stroka   !
                     !-------------------!
                     !   12    !         !
                     !-------------------!

                           ris. 28



       3.5. blok ENDMOD



       kavdyj ob'ektnyj modulx dolven zakan~iwatxsq blokom ENDMOD (blok
  konca modulq). blok ENDMOD imeet odno slowo dannyh, kotoroe  sodervit
  kod identifikatora tipa bloka (kod itb=6).

                                 - 32 -




                          4. format fajla STB




       komponow}ik w RT11 movet sozdawatx  tretxim  wyhodnym  fajlom  -
  tablicu opredeleniq simwolow (STB). fajl STB sodervit tablicu oprede-
  leniq globalxnyh simwolow, naprimer:

         - esli ishodnyj fajl sodervit operator "X == 10",  to  w  fajl
           STB zapisywaetsq "X = 10", t.e. opredelenie globalxnogo sim-
           wola h;

         - esli ishodnyj fajl sodervit A = FOO, to w fajl  STB  zapisy-
           waetsq absol`tnoe zna~enie adresa FOO.

       fajl STB movet ispolxzowatxsq kak sredstwo swqzi  mevdu  fonowym
  zadaniem i zadaniem operatiwnogo razdela. dlq |togo neobhodimo  skom-
  ponowatx fonowoe zadanie i polu~itx fajl STB. zatem,  pri  komponowke
  zadaniq operatiwnogo razdela, wkl`~itx fajl STB kak odin  iz  whodnyh
  fajlow. w |tom slu~ae zadanie operatiwnogo razdela budet imetx dostup
  k simwolxnym ssylkam,  ispolxzuemym  fonowym  zadaniem.  takve  movno
  ispolxzowatx fajl STB dlq sozdaniq sredstw swqzi mevdu  programmoj  i
  simwolxnym otlad~ikom.

       fajl STB (ris. 29) sodervit tolxko bloki dannyh GSD, za kotorymi
  sledu`t bloki ENDGSD i ENDMOD.

                     format fajla STB
                  !-----------------------!
                  ! imq ob'ektnogo modulq !
                  !   (blok GSD ki|b=0)   !
                  !-----------------------!
                  ! identifikator wersii  !
                  !      programmy        !
                  !   (blok GSB ki|b=6)   !
                  !-----------------------!
                  ! imq kontrolxnoj sekcii!
                  !   (blok GSB ki|b=1)   !
                  !-----------------------!
                  ! informaciq o globalx- !
                  ! nom simwole           !
                  !   (blok GSB ki|b=4)   !
                  !-----------------------!
                  .                       .
                  .                       .
                  .                       .
                  !-----------------------!
                  ! informaciq o globalx- !
                  ! nom simwole           !
                  !   (blok GSB ki|b=4)   !
                  !-----------------------!
                  !     blok ENDGSD       !
                  !-----------------------!
                  !     blok ENDMOD       !
                  !-----------------------!

                          ris. 29

                                 - 33 -




                     5. format bibliote~nyh fajlow




       w biblioteku wkl`~a`tsq moduli,  kotorye  ~asto  ispolxzu`tsq  w
  programmah polxzowatelej. polxzowatelx  movet  wkl`~itx  w  sistemnu`
  ob'ektnu` biblioteku swoj modulx, libo sozdatx biblioteku  s  pomo}x`
  komandy LIBRARY i kl`~a CREATE.

       ob'ektnyj modulx, wkl`~ennyj w biblioteku, perestaet bytx  neza-
  wisimym. moduli ob'edinq`tsq i stanowqtsq ~astx` bibliote~noj  struk-
  tury.

       pri ob'edinenii modulej w biblioteku ispolxzuetsq bajtowyj s~et-
  ~ik. |to swqzano s tem, ~to dlina mnogih modulej, soderva}ih  ob'ekt-
  nyj kod ili simwolxnu` informaci`, movet okazatxsq  rawnoj  ne~etnomu
  ~islu bajtow. ob'edinenie takih  modulej  s  ispolxzowaniem  s~et~ika
  slow movet priwesti k iskaveni` informacii (ris. 30).

       po|tomu moduli w bibliotekah prisoedinq`tsq bajtami.  |to  ozna-
  ~aet, ~to modulx movet na~inatxsq s ne~etnogo adresa. esli |to  imeet
  mesto, to komponow}ik zamenqet adres modulq na ~etnyj wo wremq kompo-
  nowki.

                                 - 34 -




                     dwa sposoba ob'edineniq modulej


                  bajty                        slowa
      modulx 1   !-----!                   !-----!-----!
                 !  1  !                   !  2  !  1  !
                 !-----!                   !-----!-----!
                 !  2  !                   !  4  !  3  !
                 !-----!                   !-----!-----!
                 !  3  !                         !  5  !
                 !-----!                         !-----!
                 !  4  !
                 !-----!
                 !  5  !
                 !-----!

                  bajty                        slowa
     modulx 2    !-----!                   !-----!-----!
                 !  1  !                   !  2  !  1  !
                 !-----!                   !-----!-----!
                 !  2  !                   !  4  !  3  !
                 !-----!                   !-----!-----!
                 !  3  !                         !  5  !
                 !-----!                         !-----!
                 !  4  !
                 !-----!
                 !  5  !
                 !-----!

                   ob'edinqemye moduli (1 i 2).

                  bajty                       slowa
     modulx 1    !-----!      modulx 1    !-----!-----!
                 !  1  !                  !  2  !  1  !
                 !-----!                  !-----!-----!
                 !  2  !                  !  4  !  3  !
                 !-----!                  !-----!-----!
                 !  3  !      modulx 2    !  1  !  5  !
                 !-----!                  !-----!-----!
                 !  4  !                  !  3  !  2  !
                 !-----!                  !-----!-----!
                 !  5  !                  !  5  !  4  !
     modulx 2    !-----!                  !-----!-----!
                 !  1  !
                 !-----!
                 !  2  !
                 !-----!
                 !  3  !
                 !-----!
                 !  4  !
                 !-----!
                 !  5  !
                 !-----!

                                 ris. 30

       sistema  podderviwaet  dwa  tipa  bibliotek:  makrobiblioteku  i
  ob'ektnu` biblioteku. po umol~ani`  ob'ektnye  biblioteki  ime`t  tip
  fajla OBJ, makrobiblioteki - MAC.

                                 - 35 -




       bibliote~nyj fajl sostoit iz zagolowka fajla, zatem idut katalog
  biblioteki, moduli, wkl`~ennye w biblioteku, i blok konca  bibliote~-
  nogo fajla (ris. 31).


                       format bibliote~nogo fajla

                    !---------------!
                    !   zagolowok   !
                    ! bibliote~nogo !
                    !     fajla     !
                    !---------------!
                    !    katalog    !
                    !   ob'ektnyh   !
                    !    modulej    !
                    !---------------!
                    !               !
                    .   ob'ektnye   .
                    .    moduli     .
                    .               .
                    !---------------!
                    !  blok konca   !
                    ! bibliote~nogo !
                    !     fajla     !
                    !---------------!

                         ris. 31

       w kataloge bibliote~nogo fajla imeetsq informaciq o  wseh  modu-
  lqh, nahodq}ihsq w fajle.



       5.1. struktura makrobiblioteki



       zagolowok biblioteki sodervit informaci` o  samoj  biblioteke  i
  razli~en dlq dwuh tipow bibliotek. dlq  makrobiblioteki  on  zanimaet
  odin blok, neispolxzuemye q~ejki bloka zapolnq`tsq nulqmi.  struktura
  zagolowka makrobiblioteki predstawlena w tabl. 2.

       wse zna~eniq ~isel predstawleny w wosxmeri~nom wide. data i wre-
  mq, kotorye ime`t standartnyj format w sisteme, qwlq`tsq datoj i wre-
  menem sozdaniq biblioteki.

                                 - 36 -




                                          tablica 2
    -----------------------------------------------
     q~ejka ! zna~enie !   wypolnqemaq funkciq
    -----------------------------------------------
        0   !   1001   ! kod identifikatora i tipa
    --------!----------!---------------------------
        2   !    310   ! nomer wersii biblioteki
    --------!----------!---------------------------
        4   !      0   !      ne ispolxzuetsq
    --------!----------!---------------------------
        6   !          !  data ( 0 - esli net )
    --------!----------!---------------------------
       10   !          !      wremq sozdaniq
    --------!----------!----                   ----
       12   !          !       w dwuh slowah
    --------!----------!---------------------------
       14   !      0   !      ne ispolxzuetsq
    --------!----------!---------------------------
       .    !      .   !
       .    !      .   !      ne ispolxzuetsq
       .    !      .   !
    --------!----------!---------------------------
       32   !     10   ! razmer zapisej kataloga
    --------!----------!---------------------------
       34   !          ! otnositelxnyj nomer bloka
            !          !      na~ala kataloga
    --------!----------!---------------------------
            !          !maksimalxnoe ~islo zapisej,
       36   !          !    kotoroe movet bytx w
            !          ! kataloge (po umol~ani`
            !          ! otwoditsq 200)
    --------!----------!---------------------------
       40   !          ! s~et~ik swobodnyh zapisej
            !          ! w kataloge

       q~ejka 36 ukazywaet  maksimalxnoe  koli~estwo  zapisej,  kotorye
  mogut pomestitxsq w kataloge. |to zna~enie opredelqetsq pri  sozdanii
  biblioteki s pomo}x` programmy LIBR i kl`~a /M:N.  "N"  po  umol~ani`
  beretsq rawnym 200 (fakti~eski dlina  kataloga  polu~aetsq  rawnoj  2
  blokam).

       dlq makrobiblioteki katalogom qwlqetsq tablica makroimen  (MNT).
  struktura zapisi w kataloge odinakowa dlq 2 tipow bibliotek i  preds-
  tawlena na ris. 32. bit 15 w 3-m slowe zapisi ispolxzuetsq  tolxko  w
  ob'ektnoj biblioteke.

       !-------------------------------------------!
       !            i m q  (dwa slowa              !
       !--------                           --------!
       !              w kode RAD50)                !
       !-------------------------------------------!
       !  ! nomer bloka otnositelxno na~ala fajla  !
       !-------------------------------------------!
       ! ne ispolxzu- ! otnositelxnyj bajt w bloke !
       ! etsq (7 bit) !         (9 bit)            !
       !-------------------------------------------!

                                 ris. 32


                                 - 37 -




       katalog makrobiblioteki na~inaetsq s perwogo otnositelxnogo blo-
  ka bibliote~nogo fajla. w nulewom otnositelxnom bloke makrobiblioteki
  raspoloven ee zagolowok.  dlina  kataloga  opredelqetsq  zaranee,  po
  umol~ani` dlina rawna 2 blokam. ona movet  bytx  izmenena  kl`~om  /M
  (programma LIBR). neispolxzuemye whody w  katalog  zapolnq`tsq  kodom
  177777 (-1). fajly makrobiblioteki  zapolnq`tsq,  na~inaq  s  perwogo
  bloka posle kataloga. |to otnositelxnyj blok 3  bibliote~nogo  fajla,
  esli dlina kataloga opredelena po umol~ani`.



       5.2. struktura ob'ektnoj biblioteki


       struktura zagolowka ob'ektnoj biblioteki otli~aetsq ot struktury
  makrobiblioteki i predstawlena w tabl. 3.

                                          tablica 3
    -----------------------------------------------
     q~ejka ! zna~enie !   wypolnqemaq funkciq
    -----------------------------------------------
        0   !      1   !    kod zagolowka bloka
    --------!----------!----                   ----
        2   !     42   !        biblioteki
    --------!----------!---------------------------
        4   !      7   !      kod biblioteki
    --------!----------!---------------------------
        6   !    310   !  nomer wersii biblioteki
    --------!----------!---------------------------
       10   !      0   !     ne ispolxzuetsq
    --------!----------!---------------------------
       12   !          ! data (0-esli otsutstwuet)
    --------!----------!---------------------------
       14   !          !     wremq sozdaniq
    --------!----------!----                   ----
       16   !          !      w dwuh slowah
    --------!----------!---------------------------
       20   !      0   ! 1, esli biblioteka sozdana
            !          ! s kl`~om /X
    --------!----------!---------------------------
        .   !      .   !
        .   !      .   !     ne ispolxzuetsq
        .   !      .   !
    --------!----------!---------------------------
       26   !     10   !   otnositelxnyj adres
            !          !     na~ala kataloga
    --------!----------!---------------------------
       30   !          !     koli~estwo bajtow,
            !          !   otwedennyh pod katalog
    --------!----------!---------------------------
       32   !      0   !     ne ispolxzuetsq
    --------!----------!---------------------------
       34   !          !otnositelxnyj nomer perwogo
            !          !   nezapolnennogo bloka
    --------!----------!---------------------------
       36   !          !perwyj swobodnyj bajt bloka
    --------!----------!---------------------------
       40   !          !      na~alo kataloga


                                 - 38 -




       data sozdaniq biblioteki dana w formate sistemy.

       format zapisi w kataloge ob'ektnoj biblioteki takoj  ve,  kak  i
  dlq makrobiblioteki (sm. ris. 32). otli~ie zakl`~aetsq w tom, ~to dlq
  ob'ektnyh bibliotek katalogom qwlqetsq tablica to~ek whoda (ert).

       sleduet pomnitx, ~to pri wkl`~enii imen modulej w ob'ektnu` bib-
  lioteku s pomo}x` kl`~a /N (programma LIBR), bit 15 slowa "nomer blo-
  ka otnositelxno na~ala fajla" ustanawliwaetsq w 1. esli ve biblioteka
  sozdana komandoj monitora LIBRARY, to imena modulej ne wkl`~a`tsq.

       katalog ob'ektnoj biblioteki na~inaetsq neposredstwenno za zago-
  lowkom (slowo 40). katalog imeet  dlinu,  dostato~nu`  dlq  wkl`~eniq
  tolxko  opredelennogo  ~isla  modulej  w  biblioteku.  neispolxzuemye
  oblasti w kataloge zapolnq`tsq nulqmi.



       5.3. format bloka konca biblioteki


       wse biblioteki, opisannye wy{e, ime`t w konce specialxnyj  blok.
  |tot blok ukazywaet na konec bibliote~nogo fajla. struktura posledne-
  go bloka predstawlena na ris. 33.

                    !-----!-----!
                    !  0  !   1 !
                    !-----!-----!
                    !  0  !  10 !
                    !-----!-----!
                    !  0  !  10 !
                    !-----!-----!
                    !  0  !   0 !
                    !-----!-----!
                    !     ! 357 !
                    !-----!-----!

                      ris. 33

       wse star{ie bajty rawny 0. slowa sodervat sledu`}u` informaci`:

  slowo 1
         - priznak na~ala bloka;

  slowo 2
         - s~et~ik bajtow w bloke;

  slowo 3
         - kod bloka konca biblioteki;

  slowo 4
         - ne ispolxzuetsq (rawno 0);

  slowo 5
         - ispolxzuetsq tolxko mlad{ij bajt, kotoryj sodervit kontrolx-
           nu` summu.

                                 - 39 -




                          6. format fajla LDA




       programma w formate LDA movet bytx zagruvena w pamqtx  tolxko  s
  pomo}x` absol`tnogo perfolento~nogo zagruz~ika ili  komandy  monitora
  ABSLOAD (programma LDA.SAV).

       format absol`tnoj zagruzki sozdan dlq sowmestimosti  s  formatom
  perfolenty sistem plos-sm, los-sm i dos-sm. programmy w  formate  LDA
  mogut bytx raspoloveny na l`bom nositele.

       fajl tipa LDA sozdaetsq programmoj MACRO s kl`~om /ENABL:ABS ili
  programmoj LINK s kl`~om /L, ili  komandoj  monitora  LINK  s  kl`~om
  /LDA.

       fajl tipa LDA sodervit dwoi~nye bloki, kavdyj iz  kotoryh  imeet
  absol`tnyj adres zagruzki. dwoi~nye bloki sodervat tolxko  absol`tnye
  dannye i adresa. poslednij dwoi~nyj blok imeet dlinu, rawnu` 6 (priz-
  nak konca dwoi~nogo fajla), i startowyj adres programmy.  esli  adres
  ~etnyj, to absol`tnyj zagruz~ik wypolnqet zagruzku i zapusk  program-
  my. esli adres ne~etnyj, to wypolnqetsq tolxko zagruzka programmy.

       struktura programmy w formate LDA predstawlena na ris. 34.

       fajly tipa LDA ispolxzu`tsq dlq  sozdaniq  prikladnyh,  a  takve
  specialxnyh programm, prednazna~ennyh  dlq  raboty  bez  operacionnoj
  sistemy.

                                 - 40 -




                  !--------------------------!
                  !            1             !
                  !-----                -----!
                  !            0             !
                  !--------------------------!
                  !     s~et~ik  bajtow      !
                  !-----                -----!
                  !        w bloke           !
                  !--------------------------!
                  !     absol`tnyj adres     !
                  !------               -----!
                  !       zagruzki           !
                  !--------------------------!
                  .                          .
                  .      d a n n y e         .
                  .                          .
                  !--------------------------!
                  !  bajt kontrolxnoj summy  !
                  !        bloka 1           !
                  !--------------------------!
                  .                          .
                  .                          .
                  !--------------------------!
                  !            1             !
                  !-----                -----!
                  !            0             !
                  !--------------------------!
                  !     s~et~ik  bajtow      !
                  !-----                -----!
                  !        w bloke           !
                  !--------------------------!
                  !      absol`tnyj adres    !
                  !-----                -----!
                  !        zagruzki          !
                  !--------------------------!
                  .                          .
                  .       d a n n y e        .
                  .                          .
                  !--------------------------!
                  !  bajt kontrolxnoj summy  !
                  !         bloka N          !
                  !--------------------------!
                  !             1            !
                  !-----                -----!
                  !             0            !
                  !--------------------------!
                  !             6            !
                  !-----                -----!
                  !             0            !
                  !--------------------------!
                  !     startowyj adres      !
                  !-----                -----!
                  !       programmy          !
                  !--------------------------!
                  !  bajt kontrolxnoj summy  !
                  !--------------------------!

                           ris. 34

                                 - 41 -




                          7. format fajla SAV




       format SAV ispolxzuetsq dlq programm, kotorye budut  rabotatx  w
  fonowom razdele. |tot format sodervit absol`tnye adresa pamqti.

       w nulewom bloke fajla nahoditsq informaciq, sostawlennaq  kompo-
  now}ikom dlq monitora. ostalxnye bloki sodervat dwoi~nye  kody  prog-
  rammy.

       w q~ejkah nulewogo bloka fajla  nahoditsq  sledu`}aq  informaciq
  dlq monitora:

  0      - perwye tri simwola (VIR) kl`~a VIRTUAL w kode RAD50; ispolx-
           zuetsq, esli komponowka proizwodilasx s kl`~om /V;

  2      - werhnij wirtualxnyj adres pamqti,  ispolxzuemyj  programmoj;
           ispolxzuetsq, esli pri komponowke  w  komandnoj  stroke  byl
           ukazan kl`~ /V;

  4 - 12 - ne ispolxzu`tsq;

  14, 16 - wektor prerywanij po instrukcii BPT; ustanawliwaetsq tolxko,
           esli pri rabote RT11XM wo whodnoj  stroke  komponow}ika  byl
           ukazan kl`~ /R;

  20, 22 - wektor prerywanij po instrukcii IOT; ustanawliwaetsq  tolxko
           pri rabote RT11XM, esli w komandnoj stroke komponow}ika uka-
           zan kl`~ /R;

  24 - 32
         - ne ispolxzu`tsq;

  34, 36 - wektor prerywanij po instrukcii TRAP; ustanawliwaetsq,  esli
           pri komponowke w komandnoj stroke byl ukazan kl`~ /R;

  40     - startowyj adres programmy;

  42     - na~alxnoe zna~enie ukazatelq steka (izmenqetsq kl`~om kompo-
           now}ika /M);

  44     - slowo sostoqniq programmy (JSW);

  46     - adres zagruzki USR (0 ozna~aet standartnoe razme}enie);

  50     - werhnij adres pamqti, ispolxzuemyj programmoj;

  52 - 54
         - ne ispolxzu`tsq;

  56     - w os NTS ispolxzuetsq dlq ukazaniq razmera oblasti  w  kslo-
           wah, trebuemoj dlq raboty programmy;

  60 - 64
         - ne ispolxzu`tsq;

  66     - adres na~ala blokow opredeleniq okon (ustanawliwaetsq,  esli

                                 - 42 -




           byl zadan kl`~ komponow}ika /V);

  70 - 356
         - ne ispolxzu`tsq;

  360 - 377
         - karta zagruzki programmy w pamqtx.

       q~ejka 40, soderva}aq adres zapuska programmy, movet bytx  usta-
  nowlena pri komponowke  kl`~om  /TRANSFER.  naprimer,  ukazatx  adres
  zapuska programmy rawnym 2000 (wosxmeri~noe):

          .LINK PROGR.OBJ/TRANSFER:2000

       programma PROGR.SAV, sozdawaemaq komponow}ikom, budet zapuskatx-
  sq s 2000 adresa. oby~no  adres  zapuska  programmy  opredelqetsq  iz
  direktiwy .END.

       q~ejki 360 - 377 w nulewom bloke fajla ispolxzu`tsq  komponow}i-
  kom dlq pereda~i informacii o raspredelenii pamqti KMON.  kavdyj  bit
  q~eek sootwetstwuet opredelennomu bloku pamqti iz 256 slow i ustanaw-
  liwaetsq w tom slu~ae, esli programma zanimaet hotq by odno  slowo  w
  dannom bloke pamqti. |ta informaciq ispolxzuetsq KMON  dlq  opredele-
  niq, budet li polxzowatelxskaq programma perekrywatx KMON i USR.

       pri zagruzke nulewogo bloka w KMON proizwoditsq  prowerka  q~eek
  bloka otnositelxno bitowoj shemy za}ity sistemy, kotoraq sodervitsq w
  RMON. w q~ejki, kotorye za}i}eny w sheme, takie, kak naprimer, wekto-
  ry ustrojstw sistemy, zapisx informacii iz nulewogo bloka ne proizwo-
  ditsq.

       komandy monitora R i RUN sluvat dlq zagruzki i zapuska  programm
  tipa SAV. komanda RUN ob'edinqet dwe komandy: GET i START. pri wypol-
  nenii |toj komandy KMON s~itywaet nulewoj  blok  fajla  tipa  SAV  wo
  wnutrennij bufer USR, wybiraet informaci` iz q~eek 40-62  i  360-377.
  srawniwaq bitowu` za}itu pamqti (LOWMAP), nahodq}u`sq w RMON, s q~ej-
  kami w nulewom bloke, KMON  zagruvaet  w  pamqtx  (w  sootwetstwu`}u`
  oblastx RMON) iz bufera USR te q~ejki, kotorye ne za}i}eny. naprimer,
  wektory prerywanij ustrojstw, drajwery kotoryh wkl`~eny  w  sistemnye
  tablicy RMON, ne budut izmeneny. zatem KMON ustanawliwaet w q~ejku 50
  werhnij adres ispolxzuemoj pamqti ili werhnij adres programmy,  kakim
  by bolx{im on ni byl.

       pri wypolnenii komandy RUN ili GET  KMON  prowerqet  wozmovnostx
  perekrytiq ego zagruvaemoj programmoj. esli |to imeet mesto, to  KMON
  peresylaet perekrywa`}ie bloki programmy w  fajl  swopinga  SWAP.SYS.
  posle wypolneniq wseh  neobhodimyh  operacij  KMON,  pered  pereda~ej
  uprawleniq RMON, proizwodit s~itywanie w pamqtx teh blokow programmy,
  kotorye byli zapisany w fajl SWAP.SYS i obmeniwalisx s  blokami  KMON
  i, wozmovno, USR.

       w slu~ae wypolneniq komandy R, KMON ne wybiraet  kartu  zagruzki
  dlq prosmotra, kakie bloki fajla dolvny zagruvatxsq. wmesto |togo  on
  obra}aetsq k RMON i s~itywaet ws`  informaci`  w  pamqtx  swy{e  1000
  adresa (komanda R ne ispolxzuet fajl SWAP.SYS). monitor s~itaet,  ~to
  KMON i USR byli uve wygruveny, i na~inaet wypolnenie programmy.

                                 - 43 -




                          8. format fajla REL




       format REL ispolxzuetsq dlq programm, kotorye budut  rabotatx  w
  operatiwnom razdele.

       programmy  w  formate  zagruzki  REL  sozda`tsq  dlq  raboty   s
  RT11FB(XM).

       dlq sozdaniq operatiwnoj programmy ispolxzuetsq programma LINK s
  kl`~om /R ili komanda LINK s kl`~om /FOREGROUND. komponow}ik  ob'edi-
  nqet ob'ektnye moduli i wy~islqet globalxnye ssylki.

       ob'ektnye moduli, ispolxzuemye dlq sozdaniq fajla tipa REL, kom-
  ponu`tsq tak ve, kak fajly tipa SAV s bazowym adresom 1000. |to  daet
  wozmovnostx polxzowatelqm ispolxzowatx direktiwy .ASECT dlq  razme}e-
  niq informacii w oblastx ot 0 do 777 w fajle tipa REL. no, w  otli~ie
  ot fajla tipa SAV, fajl tipa REL ne nastraiwaetsq na adresa pamqti wo
  wremq komponowki. informaciq o pereme}enii wkl`~ena dlq ispolxzowaniq
  pri zagruzke komandoj FRUN (SRUN) i neobhodima dlq opredeleniq, kakie
  q~ejki w programme dolvny bytx nastroeny  pri  zagruzke  programmy  w
  pamqtx.

       w otli~ie ot fonowoj programmy,  kotoraq  sodervit  tolxko  odin
  informacionnyj blok (nulewoj blok), operatiwnaq programma  imeet  dwa
  ili bolx{e informacionnyh blokow.

       w nulewom bloke, pomimo informacii,  opisannoj  dlq  fajla  SAV,
  sodervitsq:

  52     - razmer kornewogo segmenta w bajtah;

  54     - razmer steka w bajtah; po umol~ani` rawen 128  (desqti~noe);
           izmenqetsq kl`~om komponow}ika /R:N;

  56     - razmer owerlejnoj oblasti w bajtah (0, esli net owerleew);

  60     - tip fajla (REL) w kode RAD50;

  62     - nomer bloka, s kotorogo na~inaetsq informaciq o pereme}enii;

  64     - adres tablicy drajwera owerleew dlq owerlejnyh fajlow.

       su}estwuet dwa wida fajlow tipa REL: owerlejnye i neowerlejnye.



       8.1. neowerlejnaq operatiwnaq programma



       struktura neowerlejnoj  operatiwnoj  programmy  predstawlena  na
  ris. 35.

                                 - 44 -




                     !---------------!
                     !    nulewoj    !
                     !      blok     !
                     !---------------!
                     !               !
                     . bloki teksta  .
                     .   programmy   .
                     .               .
                     !---------------!
                     !               !
                     .     bloki     .
                     . pereme}enij   .
                     .               .
                     !---------------!

                         ris. 35

       kavdaq q~ejka bloka informacii o pereme}enii  sodervit  sme}enie
  otnositelxno na~ala programmy (na~alxnyj adres rawen 1000). dlq togo,
  ~toby pereme}enie wypolnqlosx wsegda na granicu slowa, adres razdelen
  na dwa. bit 15 ukazywaet znak pereme}eniq (polovitelxnyj ili  otrica-
  telxnyj). na ris. 36 predstawlen blok informacii o pereme}enii.

   BLOCK NUMBER 003
   000/ 000002 000007 100012 000040 . . .
   020/ 177776 000000 000000 000000 . . .
   040/ 000000 000000 000000 000000 . . .
    .
    .
    .
   760/ 000000 000000 000000 000000 . . .

             ris. 36

       w programme (sm. ris. 36) korrektiru`tsq  sledu`}ie  q~ejki:  4,
  16, 24, 100. q~ejka 24 imeet otricatelxnoe sme}enie. q~ejka, soderva-
  }aq ~islo 177776 (-2), qwlqetsq priznakom konca dannyh w bloke infor-
  macii o pereme}enii.

       pri wypolnenii komandy FRUN monitor zagruvaet  nulewoj  blok  wo
  wnutrennij bufer USR dlq  prowerki  q~eek  bloka  otnositelxno  karty
  za}ity pamqti.

       iz q~ejki 52 nulewogo bloka  wybiraetsq  informaciq  o  razmerah
  programmy i oblastx w pamqti oswobovdaetsq pereme}eniem wniz  KMON  i
  USR. tekst programmy s~itywaetsq w oswobovdennu` oblastx pamqti.

       informaciq o pereme}enii s~itywaetsq wo wnutrennij bufer. q~ejki
  pamqti, ukazannye w bloke informacii  o  pereme}enii,  korrektiru`tsq
  (sodervimoe q~eek summiruetsq s adresom ili wy~itaetsq iz adresa zag-
  ruzki programmy w pamqtx).

       posle wypolneniq korrektirowki programma gotowa dlq zapuska.

                                 - 45 -




       8.2. owerlejnaq operatiwnaq programma


       struktura operatiwnoj programmy, soderva}ej owerlejnye  segmenty
  (ris. 37), podobna strukture neowerlejnoj programmy  (sm.  ris.  35).
  odnako, krome kornewogo segmenta, ime`tsq takve pereme}aemye owerlej-
  nye segmenty.

       owerlejnye segmenty ne qwlq`tsq rezidentnymi w pamqti. oni  zag-
  ruva`tsq tolxko pri wyzowe iz kornewogo ili iz owerlejnogo  segmenta.
  dlq swedeniq k minimumu wremennyh zatrat na korrektirowku  owerlejnyh
  segmentow pri mnogokratnyh wyzowah w pamqtx, nastrojka wseh segmentow
  proizwoditsq kavdyj raz pri zagruzke programmy po  komande  FRUN  ili
  SRUN.

       priznakom konca segmenta (owerlejnogo  ili  kornewogo)  qwlqetsq
  kod 177777 (-1), priznakom konca informacii  w  bloke  pereme}enij  -
  177776 (-2).

                                 - 46 -




                      !--------------!
                      !    nulewoj   !
                      !     blok     !
                      !--------------!
                      ! bloki teksta !
                      !  kornewogo   !
                      !  segmenta 1  !
                      !--------------!
                      ! bloki teksta !
                      ! owerlejnogo  !
                      !  segmenta 1  !
                      !--------------!
                      .              .
                      .              .
                      .              .
                      !--------------!
                      ! bloki teksta !
                      ! owerlejnogo  !
                      !  segmenta N  !
                      !--------------!
                      !    bloki     !
                      ! pereme}enij  !
                      ! kornewogo    !
                      !  segmenta    !
                      !--------------!
                      !      -1      !
                      !--------------!
                      !    bloki     !
                      ! pereme}enij  !
                      ! owerlejnogo  !
                      ! segmenta  1  !
                      !--------------!
                      !      -1      !
                      !--------------!
                      .              .
                      .              .
                      .              .
                      !--------------!
                      !    bloki     !
                      ! pereme}enij  !
                      ! owerlejnogo  !
                      ! segmenta  N  !
                      !--------------!
                      !      -2      !
                      !--------------!

                          ris. 37

       process obrabotki owerlejnoj programmy sostoit w sledu`}em:

         - nulewoj blok s~itywaetsq KMON wo wnutrennij bufer KMON;  USR
           opredelqet iz q~eek 52 i 56 razmer wsej programmy i  oprede-
           lqet mesto w pamqti i adres zagruzki;

         - bloki TXT kornewogo  segmenta  zagruva`tsq  w  pamqtx;  blok
           pereme}enij kornewogo segmenta (nomer  sodervitsq  w  q~ejke
           62) zapisywaetsq wo wnutrennij bufer KMON; KMON korrektiruet
           ukazannye w bloke pereme}enij q~ejki pamqti; procedura obra-
           botki owerlejnyh segmentow  analogi~na  procedure  obrabotki

                                 - 47 -




           kornewyh segmentow. su}estwennaq raznica zakl`~aetsq w  tom,
           ~to skorrektirowannye i nastroennye na opredelennoe mesto  w
           pamqti owerlejnye segmenty perepisywa`tsq na  nositelx.  |to
           pozwolqet pri wyzowe owerleew s~itywatx ih za odno obra}enie
           k ustrojstwu, na kotorom nahoditsq programma.

       pri nowoj zagruzke programmy po komande FRUN  (SRUN)  procedura,
  opisannaq wy{e, powtorqetsq snowa.

       |to wozmovno blagodarq  otli~i`  blokow  pereme}eniq  owerlejnoj
  programmy ot neowerlejnoj. raznica  zakl`~aetsq  w  tom,  ~to,  krome
  adresow q~eek, podleva}ih pereme}eni`, blok sodervit i dannye, hranq-
  }iesq w |tih q~ejkah (ris. 38): w perwom slowe  ukazano  <sme}enie  *
  2>, wo wtorom slowe - perwona~alxnoe sodervimoe |togo slowa.

   BLOCK NUMBER 003
   000/ 000002 177777 000007 000340 100012 000020 . . .
   020/ 177776 000000 000000 000000 000000 000000 . . .
   040/ 000000 000000 000000 000000 000000 000000 . . .
    .
    .
    .
   760/ 000000 000000 000000 000000 000000 000000 . . .

                                 ris. 38

       dannye, soderva}iesq w pereme}aemyh q~ejkah, neobhodimo hranitx,
  tak kak pri posledu`}ih zagruzkah mogut izmenitxsq uslowiq:

         - raznye wersii monitora;
         - izmenenie konfiguracii pamqti;
         - drugie drajwery ustrojstw rezidentny w pamqti.

                                 - 48 -




                  9. format fajla perekrestnyh ssylok




       programma CREF sozdaet listing tablicy perekrestnyh ssylok.  ona
  movet bytx wyzwana tolxko po cepo~ke (makrokomandoj .CHAIN) iz drugoj
  programmy (takoj, naprimer, kak sobstwennyj qzykowyj processor  polx-
  zowatelq). CREF dobawlqet raspe~atku tablicy  perekrestnyh  ssylok  k
  fajlu listinga, sozdannomu wyzywa`}ej programmoj.

       do wyzowa CREF  po  cepo~ke  neobhodimo  zapolnitx  opredelennye
  q~ejki oblasti sohraneniq dannyh w wyzywa`}ej  programme  specialxnoj
  informaciej (q~ejki pamqti s absol`tnymi adresami  ot  500  do  776).
  CREF trebuet sledu`}u` informaci`:

       500   .RAD50 /SY /
       502   .RAD50 /CRE/
       504   .RAD50 /F  /
       506   .RAD50 /SAV/

         - specifikaciq fajla dlq wyzowa CREF;

      510
         - nomer kanala wyhodnogo fajla;

      512
         - imq wyhodnogo ustrojstwa w kode .RAD50;

      514
         - nomer star{ego zapisannogo bloka pl`s 1 (wyhodnogo fajla);

      516
         - nomer kanala whodnogo fajla;

      520
         - imq whodnogo ustrojstwa w kode .RAD50;

      524
         - format raspe~atki:

              0 - 80 pozicij;

             -1 - 132 pozicii;

       526   .RAD50 /DEV/
       530   .RAD50 /FIL/
       532   .RAD50 /NAM/
       534   .RAD50 /TYP/

         - programma, kotoroj CREF wozwra}aet  uprawlenie  po  cepo~ke;
           esli zadano zna~enie 0, to CREF zakrywaet  fajl  listinga  i
           peredaet uprawlenie monitoru;

   536-776
         - stroka kodow koi-7, ispolxzuemaq CREF kak zagolowok stranicy
           raspe~atki (bez nomera stranicy).

       whodnoj fajl, sozdawaemyj  CREF,  dolven  sodervatx  12-bajtowye

                                 - 49 -




  (desqti~noe) zapisi dlq kavdoj ssylki na simwol. zapisx dlq  whodnogo
  fajla CREF imeet sledu`}ij format (sme}enie w bajtah dano  w  wosxme-
  ri~nom wide):

   0     - opisatelx sekcii tablicy:

           razrqdy 0 - 4
                - sodervat znak, kotoryj CREF ispolxzuet kak  imq  sek-
                  cii; zna~enie koi-7 usekaetsq do 5 razrqdow;

           razrqdy 5 - 7
                - sodervat nomer sekcii; |to zna~enie ispolxzuetsq  dlq
                  uporqdo~eniq sekcij w raspe~atke;

   1 -  6
         - imq simwola w koi-7;

   7 - 10
         - nomer stranicy (dwoi~noe); esli nomer  stranicy  ne  ispolx-
           zuetsq, to dolvno sodervatx -1;

  11 - 12
         - nomer stroki (dwoi~noe);

  13     - odnosimwolxnyj  identifikator,  wywodimyj  CREF  posle  |toj
           ssylki; oby~no |tot znak  ispolxzuetsq  dlq  ukazaniq  to~ki
           opredeleniq ili dlq razru{a`}ej predydu}ee zna~enie ssylki.




                10. format fajla protokolirowaniq o{ibok




       drajwery ustrojstw w sisteme s poddervkoj podsistemy  protokoli-
  rowaniq o{ibok (EL) obra}a`tsq k modul` protokolirowaniq o{ibok ~erez
  ukazatelx w monitore. |to obra}enie proizwoditsq posle kavdogo zawer-
  {eniq (kak uspe{nogo, tak i neuspe{nogo) operacii na ustrojstwe. blok
  kopirowaniq w  modulx  protokolirowaniq  o{ibok  wybiraet  (kopiruet)
  sootwetstwu`}u` informaci` iz drajwera  i  razme}aet  ee  wo  whodnom
  bufere protokola w oblasti pamqti, prinadleva}ej |tomu modul`.  zada-
  nie protokolirowaniq o{ibok nahoditsq w  priostanowlennom  sostoqnii,
  poka blok kopirowaniq ne zapi{et informaci` wo whodnoj bufer. w  |tot
  moment monitor snimaet uslowie blokirowki, pozwolqq  zadani`  obrabo-
  tatx nowye dannye.

       zadanie protokolirowaniq o{ibok priostanawliwaetsq do  teh  por,
  poka wo whodnom bufere protokola ne zapolnitsq 200 ili bolee slow  iz
  ob}ego ob'ema bufera w 256 slow (desqti~noe). blok kopirowaniq  zada-
  niq EL informiruet ob |tom monitor, ustanawliwaq bit "C"  slowa  sos-
  toqniq processora pri wozwrate uprawleniq. t.e. zadanie  protokoliro-
  waniq o{ibok razblokiruetsq monitorom  tolxko  togda,  kogda  whodnoj
  bufer protokola sodervit dostato~no mnogo informacii dlq obrabotki.

       dlq o{ibok ustrojstw, o{ibok k|{-pamqti, o{ibok pariteta  pamqti
  modulx protokolirowaniq o{ibok sna~ala sozdaet ili obnowlqet  statis-
  ti~esku` informaci` ob ustrojstwe w kopii zagolowka diskowogo  fajla,

                                 - 50 -




  kotoraq nahoditsq w pamqti. zadanie EL zapisywaet informaci` ob o{ib-
  ke w wyhodnoj bufer (ili w odin iz  dwuh  pri  ispolxzowanii  dwojnoj
  buferizacii) do teh  por,  poka  256-slownyj  (desqti~noe)  bufer  ne
  zapolnitsq. t.e. zapisi ob o{ibkah zapisywa`tsq do teh  por,  poka  w
  bufere estx mesto dlq sledu`}ej zapisi. w protiwnom  slu~ae  proizwo-
  ditsq zapisx obnowlennogo  zagolowka  fajla  i  zapisx  bufera  (t.e.
  nakoplennoj diagnostiki) w fajl na diske s imenem ERRLOG.DAT. na ris.
  39 predstawlena podsistema protokolirowaniq o{ibok.

       dlq uspe{nyh operacij obmena modulx protokolirowaniq o{ibok soz-
  daet ili obnowlqet statisti~esku` informaci` ob  ustrojstwe  w  kopii
  zagolowka fajla, kotoraq nahoditsq w pamqti, analogi~no tomu, kak |to
  proishodit pri o{ibkah ustrojstw ili  pamqti.  obnowlennyj  zagolowok
  zapisywaetsq na disk tolxko posle 10 (desqti~noe) zaprotokolirowannyh
  operacij wwoda/wywoda.

                                 - 51 -





                   podsistema protokolirowaniq o{ibok


      !------------!
      ! drajwer #1 !--
      !------------! !        !--------------------!
          .....      !------->!  blok kopirowaniq  !---!
      !------------! !        !--------------------!   !
      ! drajwer #N !--        !   whodnoj  bufer   !<--!
      !------------!          !--------------------!   !
                              !                    !---!
      !---------------!       !  blok wywoda       !
      ! m o n i t o r !------>!           na disk  !----!
      !---------------!/ \    !--------------------!    !
                        !   --!  zagolowok fajla   !-!  !
                        !   ! !--------------------! !  !
                        !   !-! wyhodnoj bufer # 1 ! !  !
           !------------!   ! !--------------------! !<--
           !                !-! wyhodnoj bufer # 2 !-!
          / \               ! !--------------------!
           !                !
           !                V
      !--------!      !-----------------!      !--------!
      ! ERROUT !<-----! fajl ERRLOG.DAT !<-----! ELINIT !
      !--------!      !-----------------!      !--------!
           !
           V
        !-----!
        ! / \ !  protokol o{ibok
        !/   \!     i statistiki


  drajwery
         - razme}a`t  informaci`  wo  whodnom  bufere  ~erez  ukazatelx
           $ELPTR w RMON;

  ELINIT - inicializaciq fajla ERRLOG.DAT i zapusk EL;

  monitor
         - razblokiruet zadanie EL dlq oswobovdeniq whodnogo  bufera  i
           podgotowki dannyh dlq wywoda;

  ERROUT - zadanie raspe~atki; swqzywaetsq s EL dlq wywoda teku}ih dan-
           nyh iz whodnogo bufera w fajl ERRLOG.DAT dlq sozdaniq polnoj
           itogowoj raspe~atki.


                                 ris. 39

       ris. 40 ill`striruet format zapisi wo wnutrennem whodnom  bufere
  modulq protokolirowaniq o{ibok.

                                 - 52 -




       format zapisi ob o{ibke ustrojstwa wo wnutrennem
            bufere modulq protokolirowaniq o{ibok

    !--------------------------!--------------------------!
    !      nomer    zapisi     !     razmer    zapisi     !
    !--------------------------!--------------------------!
    ! identifikator ustrojstwa !     s~et~ik popytok      !
    !--------------------------!--------------------------!
    !     fizi~eskij    nomer     bloka     (Q.BLKN)      !
    !--------------------------!--------------------------!
    ! rezerw!  nomer !nomer us-!  kod                     !
    !(1 raz-! zadaniq!trojstwa !    specifikacii          !
    ! rqd)  ! (4 raz-! (3 raz- !        (8 razrqdow)      !
    !       ! rqda)  ! rqda)   !                          !
    !--------------------------!--------------------------!
    !        adres    bufera    polxzowatelq              !
    !--------------------------!--------------------------!
    !             s~et~ik    slow    (Q.WCNT)             !
    !--------------------------!--------------------------!
    !    zna~enie PAR1 (Q.PAR) - tolxko w RT11XM          !
    !--------------------------!--------------------------!
    !    ob}ee                 !  ~islo                   !
    !         ~islo            !       fiksiruemyh        !
    !              popytok     !   registrow ustrojstwa   !
    !--------------------------!--------------------------!
    !                 registry  ustrojstwa :              !
    !                    ...............                  !
    !--------------------------!--------------------------!

                                 ris. 40
  na ris. 41 pokazan format zapisi ob uspe{noj pereda~e.

      format zapisi ob uspe{noj pereda~e wo wnutrennem
           bufere modulq protokolirowaniq o{ibok

    !--------------------------!--------------------------!
    !      nomer    zapisi     !     razmer    zapisi     !
    !--------------------------!--------------------------!
    ! identifikator ustrojstwa !           - 1            !
    !--------------------------!--------------------------!
    ! rezerw!  nomer !nomer us-!  kod                     !
    !(1 raz-! zadaniq!trojstwa !    specifikacii          !
    ! rqd)  ! (4 raz-! (3 raz- !        (8 razrqdow)      !
    !       ! rqda)  ! rqda)   !                          !
    !--------------------------!--------------------------!
    !             s~et~ik    slow    (Q.WCNT)             !
    !--------------------------!--------------------------!

                                 ris. 41

       na ris. 42 predstawlen format zapisi  ob  o{ibkah  k|{-pamqti  i
  o{ibkah pariteta pamqti.

       zna~enie identifikatora ID na ris. 42 sledu`}ee:

  -2     - dlq o{ibok k|{-pamqti;

  -3     - dlq o{ibok pariteta pamqti;

                                 - 53 -




  -4     - dlq o{ibok pariteta pamqti i k|{-pamqti odnowremenno.

        format zapisi ob o{ibke k|{-pamqti i/ili o{ibke
         ~etnosti pamqti wo wnutrennem bufere modulq
                   protokolirowaniq o{ibok

    !--------------------------!--------------------------!
    !      nomer    zapisi     !     razmer    zapisi     !
    !--------------------------!--------------------------!
    !  ~islo registrow pamqti  !           ID             !
    !--------------------------!--------------------------!
    !                          PC                         !
    !--------------------------!--------------------------!
    !                          PS                         !
    !--------------------------!--------------------------!
    !                         MPR1                        !
    !--------------------------!--------------------------!
    !                    adres     MPR1                   !
    !--------------------------!--------------------------!
    !     informaciq o registrah pamqti ( do 16 {t.)      !
    !                    ..............                   !
    !--------------------------!--------------------------!
    ! registr sistemnoj o{ibki pamqti (tolxko pri nali~ii !
    !                     k|{-pamqti)                     !
    !--------------------------!--------------------------!
    ! registr uprawleniq k|{-pamqtx` (tolxko pri nali~ii  !
    !                     k|{-pamqti)                     !
    !--------------------------!--------------------------!
    !   registr HIT/MISS (tolxko pri nali~ii k|{-pamqti)  !
    !--------------------------!--------------------------!

                                 ris. 42


                                 - 54 -




                11. struktura ustrojstwa prqmogo dostupa




       komponenty operacionnoj sistemy i programmy polxzowatelej raspo-
  loveny na nositele ustrojstwa prqmogo dostupa w wide fajlow.

       fajly na nositelqh  raspolaga`tsq  w  fizi~eskih  blokah.  dlina
  fizi~eskogo bloka zawisit ot ustrojstwa. su}estwuet ponqtie  logi~es-
  kij blok, dlina kotorogo dlq wseh ustrojstw  odinakowa  i  rawna  512
  bajtam. dlq ustanowleniq sootwetstwiq  mevdu  ustrojstwami,  ime`}imi
  fizi~eskie bloki raznoj dliny, pri obmene  informaciej  dannye  pere-
  da`tsq logi~eskimi blokami po 512 bajtow.

       w nulewom i so 2 po 5 blokah nositelq sodervitsq sistemnyj  zag-
  ruz~ik. blok nomer 1 qwlqetsq blokom informacii sistemy.

       informaciq o kavdom ime`}emsq na nositele fajle (imq, tip fajla,
  ego mestopolovenie na nositele i t.d.) sodervitsq w tablice,  kotoraq
  nazywaetsq katalogom fajlow. na kavdom  fizi~eskom  nositele  imeetsq
  odin katalog fajlow.

       na ris. 43 pokazana struktura ustrojstwa prqmogo dostupa.

                                 - 55 -




            struktura ustrojstwa prqmogo dostupa

      wosxmeri~nyj nomer           sodervimoe
           bloka

      !----------------!
      !         0      !  perwi~nyj sistemnyj zagruz~ik
      !----------------!
      !         1      !  blok informacii sistemy
      !----------------!----
      !         2      !  A
      !----------------!  !
      !         3      !  ! wtori~nyj sistemnyj
      !----------------!  !    zagruz~ik
      !         4      !  !
      !----------------!  !
      !         5      !  V
      !----------------!----
      !         6      !\
      !----------------! >------  1-j segment kataloga
      !         7      !/
      !----------------!
      !        10      !\
      !----------------! >------  2-j segment kataloga
      !        11      !/
      !----------------!
      !       ...      !
      !----------------!
      !         h      !\
      !----------------! >------  N-j segment kataloga
      !       h+1      !/
      !----------------!
      !      fajly     !
      !       ...      !
      !----------------!
          konec toma
                                 ris. 43



       11.1. blok informacii sistemy



       blok nomer 1  na  ustrojstwe  prqmogo  dostupa  qwlqetsq  blokom
  informacii sistemy i sodervit dannye o nositele (tabl. 4). sodervimoe
  neotme~ennyh oblastej ne opredeleno i rezerwiruetsq dlq ispolxzowaniq
  w sledu`}ih wersiqh RT11.

                                 - 56 -




                                                  tablica 4
   --------------------------------------------------------
            !                            ! zna~enie polq
            !                            ! (po umol~ani`
    q~ejka  !      sodervimoe            ! zapisywaetsq
            !                            ! w kode koi-7)
   --------------------------------------------------------
    000-201 ! tablica zame}eniq defektnyh!
            ! blokow na nositele         !
   ---------!----------------------------!-----------------
    204-251 ! oblastx dannyh dlq komand  !
            ! INITIALIZE/RESTORE         !
   ---------!----------------------------!-----------------
    700-701 !      rezerwiruetsq         ! 000000 (w wosx-
            !                            ! meri~nom wide)
   ---------!----------------------------!-----------------
    702-703 ! nomer bloka perwogo fajla  ! 000000 (w wosx-
            !polxzowatelq (rezerwiruetsq)! meri~nom wide)
   ---------!----------------------------!-----------------
    722-723 !                            ! 000001 (w wosx-
            !                            ! meri~nom wide)
   ---------!----------------------------!-----------------
    724-725 ! nomer bloka perwogo        ! 000006 (w wosx-
            ! segmenta kataloga          ! meri~nom wide)
   ---------!----------------------------!-----------------
    726-727 ! wersiq sistemy             ! V500 (w kode
            !                            ! RAD50)
   ---------!----------------------------!-----------------
    730-743 ! identifikator toma         ! RT11A i
            !                            ! probely
   ---------!----------------------------!-----------------
    744-757 ! prinadlevnostx             !
            ! (imq wladelxca)            !
   ---------!----------------------------!-----------------
    760-773 ! identifikaciq sistemy      ! DECRT11A i
            !                            ! 4 probela
   ---------!----------------------------!-----------------
    776-777 ! kontrolxnaq summa          !

       pri wy~islenii kontrolxnoj summy sodervimoe wseh  bajtow  summi-
  ruetsq w slowe, u kotorogo zatem menqetsq znak.

       pri inicializacii nositelq po komande monitora INITIALIZE  movno
  ukazatx identifikator nositelq s pomo}x` kl`~a /VOLUMEID. zapisx sos-
  toit iz imeni toma (dlinoj ot 1 do 12 simwolow) i imeni wladelxca (ot
  1 do 12 simwolow).

       naprimer, dlq sozdaniq kataloga na ustrojstwe RK1: i identifika-
  cii ustrojstwa neobhodimo zadatx sledu`}u` komandu:

            .INITIALIZE/VOLUMEID RK1:
            RK1:/INIT ARE YOU SURE?Y
            VOL ID? #1980
            OWNER NAME? SIMFOR

       |ta informaciq zapisywaetsq na nositelx s pomo}x` programmy DUP.
  raspe~atatx identifikator nositelq movno s pomo}x` programmy DUP  ili
  DIR.

                                 - 57 -




       11.2. katalog fajlow



       katalog sodervit informaci` o fajlah na  nositele  i  razbit  na
  segmenty. razmer kataloga movet bytx ot 1  do  31  segmenta.  segment
  sostoit iz dwuh logi~eskih blokow.

       pri sozdanii kataloga s pomo}x` komandy  monitora  INITIALIZE  i
  kl`~a /SEGMENT:N movno zadatx l`boe koli~estwo segmentow N w dopusti-
  myh predelah. dlq zadaniq nestandartnogo koli~estwa segmentow katalo-
  ga movno wospolxzowatxsq programmoj DUP.

       po umol~ani` sistema ustanawliwaet sledu`}ie zna~eniq  argumenta
  N dlq razli~nyh tipow ustrojstw prqmogo dostupa  (tabl.  5).  razmery
  sodervat desqti~nye zna~eniq.

                                               tablica 5
       -------------------------------------------------
        ustrojstwo!razmer kataloga! razmer fizi~eskogo
                  !  w segmentah  ! bloka w slowah
       -------------------------------------------------
           RK:    !      16       !        256
       -----------!---------------!---------------------
           RF:    !       4       !         64
       -----------!---------------!---------------------
           DP:    !      31       !        256
       -----------!---------------!---------------------
           DX:    !       4       !         64



       11.2.1. format zagolowka segmenta kataloga



       kavdyj segment kataloga imeet zagolowok, sostoq}ij iz pqti slow.
  zagolowok sodervit  informaci`  o  koli~estwe  zapolnennyh  segmentow
  kataloga, swqzi segmentow drug s drugom,  nomere  bloka,  s  kotorogo
  na~ina`tsq fajly, opisannye w dannom segmente. ostalxnye 507  slow  w
  segmente ispolxzu`tsq dlq zapisej o fajlah.

       zagolowok segmenta sodervit sledu`}u` informaci`:

  1 slowo
         - ~islo segmentow, otwedennyh pod katalog; |to zna~enie  movet
           bytx zadano pri sozdanii kataloga s  pomo}x`  programmy  DUP
           ili wzqto po umol~ani`;

  2 slowo
         - nomer  sledu`}ego  logi~eskogo  segmenta  kataloga;  katalog
           predstawlqet soboj swqzannyj spisok; |to slowo qwlqetsq swq-
           zu`}im mevdu logi~eski smevnymi (posledowatelxnymi)  segmen-
           tami; w poslednem ispolxzuemom segmente 2-e  slowo  sodervit
           nulx;

  3 slowo
         - s~et~ik segmentow, ime`}ih zapisi. pri otkrytii nowogo  seg-
           menta s~et~ik korrektiruetsq tolxko  w  perwom  segmente;  w

                                 - 58 -




           posledu`}ih segmentah sodervimoe |togo slowa ne izmenqetsq;

  4 slowo
         - ~islo dopolnitelxnyh bajtow w zapisi o fajle w kataloge; ono
           movet bytx opredeleno pri inicializacii ustrojstwa s pomo}x`
           programmy DUP;

  5 slowo
         - nomer bloka, s kotorogo na~ina`tsq fajly, opisannye w dannom
           segmente.



       11.2.2. format zapisi o fajle w kataloge


       perwye pqtx slow kavdogo segmenta kataloga sodervat informaci` o
  strukture kataloga. ostalxnaq ~astx segmenta zapolnqetsq  zapisqmi  o
  fajlah. zapisi sodervat ws` neobhodimu` informaci` o fajlah, raspolo-
  vennyh na nositele. struktura zapisi predstawlena na ris. 44.

            format zapisi o fajle w kataloge

           !----------!-----------!---
           !wid fajla !ne ispolxz.! slowo sostoqniq fajla
           !----------!-----------!---
           ! imq fajla  ( 2 slowa !
           !---                ---!
           !     w kode RAD50 )   !
           !----------------------!
           ! tip fajla (kod RAD50)!
           !----------------------!
           ! dlina fajla w blokah !
           !----------!-----------!
           ! N zadaniq! N kanala  !
           !   (linii)!           !
           !----------!-----------!
           !    data sozdaniq     !
           !----------------------!---
           .                      .     sistemoj
           . dopolnitelxnye slowa . ne obsluviwa`tsq
           .                      .
           !----------------------!---

                                 ris. 44



       11.2.2.1. slowo sostoqniq fajla



       slowo sostoqniq fajla sodervit sledu`}u` informaci`:

  mlad{ij bajt
         - ne ispolxzuetsq;


                                 - 59 -




  star{ij bajt
         - ukazywaet wid fajla.

       w sisteme imeetsq pqtx widow fajlow, kotorye priwodqtsq w  tabl.
  6 (dany wosxmeri~nye zna~eniq koda wida fajla):

  wremennyj
         - fajl, sozdannyj po makrokomande .ENTER. esli posle ispolxzo-
           waniq fajl ne byl zakryt po makrokomande .CLOSE, to on wosp-
           rinimaetsq sistemoj kak pustoj (<UNUSED>);

  pustoj - fajl na diske, kotoryj ne byl zakryt po makrokomande .CLOSE.
           ispolxzuetsq sistemoj pri sozdanii nowyh fajlow;  informaciq
           o pustom fajle, krome ego dliny, ne ispolxzuetsq (imq,  tip,
           data i t.d.). programma DIR  raspe~atywaet  |tu  zapisx  kak
           <UNUSED>, za kotoroj sleduet dlina swobodnoj  oblasti.  nes-
           kolxko posledowatelxno raspolovennyh pustyh fajlow  raspe~a-
           tywa`tsq programmoj DIR kak odin <UNUSED>;

  postoqnnyj
         - fajl, kotoryj byl zakryt po makrokomande  .CLOSE.  imq  pos-
           toqnnogo fajla qwlqetsq edinstwennym dlq  kavdogo  kataloga,
           t.e. ne mogut su}estwowatx dwa fajla s odinakowym  imenem  i
           tipom. esli sozdaetsq nowyj fajl s takimi ve atributami, kak
           i uve su}estwu`}ij postoqnnyj fajl, to w |tom slu~ae su}est-
           wu`}ij fajl stiraetsq pri wypolnenii makrokomandy .CLOSE;

  postoqnnyj za}i}ennyj
         - fajl, kotoryj nelxzq steretx komandoj DELETE; operaciq za}i-
           ty fajla wypolnqetsq po komande  monitora  RENAME  s  kl`~om
           /PROTECTION ili s pomo}x` programmy PIP i kombinacii  kl`~ej
           /F/R;

  marker konca segmenta
         - sistema ispolxzuet |tot marker dlq opredeleniq konca  dannyh
           w segmente kataloga wo wremq poiska neobhodimoj zapisi.

                                    tablica 6
                  ---------------------------
                   wid fajla !slowo sostoqniq
                             !     fajla
                  ---------------------------
                   wremennyj !       400
                  -----------!---------------
                   pustoj    !      1000
                  -----------!---------------
                   postoqnnyj!      2000
                  -----------!---------------
                   postoqnnyj!
                   za}i}ennyj!    102000
                  -----------!---------------
                     marker  !
                     konca   !      4000
                    segmenta !

                                 - 60 -




       11.2.2.2. imq i tip fajla



       tri slowa sodervat simwolxnoe imq i tip w  kode  RAD50,  kotorye
  priswoeny fajlu. simwolxnoe imq movet sodervatx ot 1 do 6 simwolow, a
  tip fajla - ot 1 do 3 simwolow.



       11.2.2.3. dlina fajla



       dlina fajla rawna koli~estwu logi~eskih blokow,  zanimaemyh  im.
  pri popytke wypolnitx ~tenie ili zapisx za predelami  fajla  sistemoj
  wydaetsq soob}enie ob o{ibke.



       11.2.2.4. nomer zadaniq (linii) i nomer kanala


       |ta informaciq neobhodima sisteme tolxko pri rabote s  wremennym
  fajlom. dlq postoqnnogo fajla |ta informaciq ne ispolxzuetsq.

       w zawisimosti ot tipa monitora swqzx wremennogo fajla s zadaniem
  osu}estwlqetsq po-raznomu:

  RT11SJ - pri rabote RT11SJ star{ij bajt 6-go slowa  ne  ispolxzuetsq;
           dannye o nomere kanala, po kotoromu byl otkryt fajl, zapisy-
           wa`tsq w mlad{ij bajt; |to pozwolqet monitoru po makrokoman-
           de .CLOSE najti nuvnyj wremennyj fajl i sdelatx ego postoqn-
           nym;

  RT11FB     ili RT11XM
         - pri rabote RT11FB(XM) mogut bytx otkryty wremennye fajly dlq
           wosxmi razli~nyh zadanij; pri |tom mogut okazatxsq  odinako-
           wymi imq i tip otkrytyh fajlow, a takve nomera kanalow  (tak
           kak numeraciq kanalow proizwoditsq  nezawisimo  dlq  kavdogo
           zadaniq); po|tomu, dlq odnozna~noj identifikacii  wremennogo
           fajla, krome  nomera  kanala,  pri  wypolnenii  makrokomandy
           .CLOSE, neobhodima informaciq o nomere zadaniq, ispolxzu`}e-
           go |tot fajl; nomer zadaniq pome}aetsq w star{ij  bajt  6-go
           slowa zapisi o fajle; sleduet pomnitx,  ~to  pri  wypolnenii
           operacii .CLOSE dlq wremennyh fajlow s odinakowymi atributa-
           mi (imq i tip odinakowy, zadaniq razli~ny) w kataloge  osta-
           netsq zapisx tolxko o fajle, kotoryj byl zakryt poslednim;

  os NTS - pri rabote os NTS mogut bytx otkryty wremennye fajly dlq  30
           razli~nyh zadanij; dlq odnozna~noj identifikacii  wremennogo
           fajla, krome nomera kanala ispolxzuetsq i  nomer  linii,  na
           kotoroj zapu}eno zadanie, otkryw{ee |tot fajl; |ta  informa-
           ciq pome}aetsq w star{ij bajt {estogo slowa.


       pRIME^ANIE. neobhodimo pomnitx, ~to  {estoe  slowo  ispolxzuetsq
  tolxko pri rabote s wremennymi fajlami. esli fajl stanowitsq postoqn-
  nym, to {estoe slowo ne ispolxzuetsq, tak kak imq  postoqnnogo  fajla

                                 - 61 -




  qwlqetsq edinstwennym dlq dannogo kataloga.

       nomer zadaniq dlq RT11SJ rawen nul`  (movet  wypolnqtxsq  tolxko
  fonowoe zadanie).

       pri rabote RT11FB(XM) zadaniqm nazna~a`tsq sledu`}ie nomera:

  0      - dlq fonowogo zadaniq;

  2-14   - dlq sistemnyh zadanij;

  16     - dlq operatiwnogo zadaniq.

       pri rabote os  NTS  wmesto  nomera  zadaniq  ispolxzuetsq  nomer
  linii. numeraciq linij wypolnqetsq pri generacii os NTS.



       11.2.2.5. data



       pri sozdanii wremennogo fajla  po  makrokomande  .ENTER  teku}aq
  sistemnaq data pome}aetsq w sedxmoe slowo zapisi o dannom fajle (ris.
  45).

                  !15!14  10!9    5!4    0!
                  !--!------!------!------!
                  !  ! mesqc! denx ! god  !
                  !--!------!------!------!

    god (razrqdy  0 -  4)
         - informaciq o teku}em gode w wide raznosti mevdu  dwumq  pos-
           lednimi ciframi teku}ego goda (naprimer,  84)  i  konstantoj
           rawnoj 72;

   denx (razrqdy  5 -  9)
         - ~islo s 1 po 31;

  mesqc (razrqdy 10 - 14)
         - ~islo s 1 po 12.
                                 ris. 45


       pRIME^ANIE. esli sistemnaq data ne ustanowlena, w sedxmom  slowe
  zapisywaetsq 0.



       11.2.2.6. dopolnitelxnye slowa


       sistema ne ispolxzuet informaci`,  zapisannu`  w  dopolnitelxnyh
  slowah zapisi o fajle. pri neobhodimosti polxzowatelx dolven napisatx
  sobstwennu` programmu obrabotki dopolnitelxnyh slow.

       w sisteme predusmotrena wozmovnostx pri sozdanii kataloga  prog-
  rammoj DUP ili komandoj INITIALIZE ukazatx koli~estwo  dopolnitelxnyh
  slow w zapisi o fajle. po umol~ani` dopolnitelxnye slowa ne  otwodqt-

                                 - 62 -




  sq.

       dopolnitelxnye slowa mogut ispolxzowatxsq dlq za}ity fajla.  oni
  mogut sodervatx informaci` o  wladelxce  fajla  i  metode  dostupa  k
  informacii, nahodq}ejsq w fajle (naprimer, tolxko  ~itatx,  ~itatx  i
  pisatx, tolxko pisatx).



       11.3. razmer  i  koli~estwo  fajlow,   razme}ennyh   na
             nositele


       l`boe wne{nee ustrojstwo, obsluviwaemoe sistemoj, ne movet imetx
  bolx{e 31 segmenta w kataloge.

       koli~estwo fajlow, kotoroe movet  bytx  razme}eno  na  nositele,
  zawisit ot ~isla segmentow w kataloge i dopolnitelxnyh slow w zapisi.

       maksimalxnoe ~islo zapisej (MAX), kotorye mogut bytx razme}eny w
  kataloge, rass~itywaetsq po formule:

                     MAX  =  31 * S                   (4.1)
   gde

    S    - wy~islqetsq po sledu`}ej formule:

                       (512 - 5)
                   S = --------- - 2                  (4.2)
                        (7 + M)

          gde

             M  - ~islo dopolnitelxnyh slow w zapisi;

           512  - razmer segmenta w slowah;

             5  - ~islo slow, otwodimyh pod zagolowok segmenta.

       w formule (4.2) korrektirowka na  "-2"  neobhodima  dlq  kavdogo
  segmenta po dwum pri~inam: dlq togo, ~toby  sozdatx  fajl,  zapisx  O
  wremennom fajle dolvna  bytx  razme}ena  wmesto  zapisi  o  swobodnoj
  oblasti (<UNUSED>) i dolvna bytx  sozdana  zapisx  o  konce  segmenta
  (marker konca segmenta).

       esli fajly raspoloveny posledowatelxno drug za drugom i net pus-
  tyh fajlow, to priblizitelxno polowina wseh zapisej budet  nahoditxsq
  na ustrojstwe pered poqwleniem soob}eniq o perepolnenii kataloga. |ta
  situaciq woznikaet iz-za algoritma zapolneniq segmentow kataloga.

       esli segment kataloga polnostx` zapolnen  i  neobhodimo  otkrytx
  nowyj segment, to priblizitelxno polowina zapisej  zapolnennogo  seg-
  menta perepisywaetsq wo wnowx otkrytyj segment. takim  obrazom,  esli
  poslednij segment zapolnen,  to  wse  predydu}ie  segmenty  zapolneny
  priblizitelxno napolowinu.

       maksimalxnoe ~islo zapisej  movet  bytx  polu~eno  tolxko  posle
  wypolneniq operacii "sborka musora" na nositele. |ta operaciq  wypol-
  nqetsq s pomo}x` kl`~a /S programmy DUP ili komandy monitora SQUEEZE.

                                 - 63 -




       esli fajly neprerywno dobawlq`tsq na ustrojstwo i ne byla prowe-
  dena "sborka musora", to maksimalxnoe ~islo zapisej movet bytx wy~is-
  leno po formule (4.3):

                             S
            MAX = (N - 1) * --- + S                   (4.3)
                             2

   gde

    N    - ~islo segmentow, otwedennyh pod katalog.

       formula (4.3) u~itywaet specifiku zapolneniq segmentow zapisqmi.
  takoj algoritm zapolneniq pozwolqet wosstanawliwatx "poterqnnye" faj-
  ly. wremennye fajly, kotorye po kakoj-libo pri~ine (sboj sistemy  ili
  programmy) ne byli zakryty, mogut bytx wosstanowleny programmoj DUP.



       11.4. algoritm zapolneniq segmentow zapisqmi


       opisanie zapolneniq segmentow zapisqmi imeet sledu`}ie obozna~e-
  niq:

           1    !-!
                !*!  |to segment kataloga s neskolxkimi
                !*!  zapisqmi; nomer segmenta 1
                ! !
                ! !
                !-!


           1    !-!
                !*!  segment 1 polnostx` zapolnen, t.e.
                !*!  net mesta dlq nowyh zapisej
                !*!  w |tot segment
                !*!
                !-!

       katalog na~inaetsq s zapisej, kotorymi zapolnqetsq segment 1:

           1    !-!
                !*!
                !*!
                ! !
                ! !
                !-!

       po mere dobawleniq zapisej segment 1 zapolnqetsq:

           1    !-!
                !*!
                !*!
                !*!
                !*!
                !-!

       esli segment zapolnen i neobhodimo dobawitx nowu` zapisx w kata-

                                 - 64 -




  log, to sistema dolvna otkrytx drugoj segment kataloga. esli  imeetsq
  swobodnyj segment w kataloge, to proizwodqtsq sledu`}ie dejstwiq:

         - wtoraq polowina zapisej iz zapolnennogo  segmenta  perepisy-
           waetsq w sledu`}ij otkrytyj segment i zapolnqetsq  zagolowok
           |togo segmenta;
         - skorrektirowannyj segment perepisywaetsq na disk;
         - korrektiru`tsq swqzi segmentow kataloga;
         - zapisx o fajle budet pome}ena ili w skorrektirowannyj, ili w
           nowyj otkrytyj segment. |to zawisit ot togo, w kakom segmen-
           te imeetsq zapisx o pustom fajle trebuemogo razmera.

       pri popytke zapisatx nowu` zapisx w polnostx`  zapolnennyj  pos-
  lednij segment kataloga wydaetsq soob}enie  ob  o{ibke  (perepolnenie
  kataloga).

       oby~no segment zapolnqetsq sledu`}im obrazom:

          1   !-!
              !*!    pered ras{ireniem segment 1
              !*!    zapolnen polnostx`
              !*!
              !*!
              !-!


          1   !-!    posle ras{ireniq: priblizitelxno
              !*!    polowina zapisej - w skorrektiro-
              !*!    wannom segmente i ostalxnaq ~astx
              ! !     - w nowom. segment 1 swqzywaetsq
              ! !    s segmentom 2
              !-!\
                  \  swqzx 1-go i 2-go segmentow
                  /
          2   !-!/
              !*!
              !*!
              ! !
              ! !
              !-!

                                 - 65 -




       esli bylo otkryto mnogo fajlow, to oni zapolnq`t wesx  2-j  seg-
  ment i perepisywa`tsq w 3-j, esli on dostupen:

          1   !-!
              !*!
              !*!
              ! !
              ! !
              !-!\
                  \  swqzx 1-go i 2-go segmentow
                  /
          2   !-!/
              !*!
              !*!
              ! !
              ! !
              !-!\
                  \  swqzx 2-go i 3-go segmentow
                  /
          3   !-!/
              !*!
              !*!
              ! !
              ! !
              !-!

       w |tom slu~ae segmenty  qwlq`tsq  smevnymi  (posledowatelxnymi).
  segmenty mogut bytx i nesmevnymi.

       naprimer, esli stiraetsq bolx{oj fajl iz segmenta 2 i otkrywaet-
  sq mnogo nebolx{ih fajlow, to w |tom slu~ae movet wozniknutx  neobho-
  dimostx snowa skorrektirowatx segment 2.

       esli |to proishodit i otkrywaetsq 4-j segment, to swqzi w  kata-
  loge budut imetx sledu`}ij wid:

                                 - 66 -




          1   !-!
              !*!
              !*!
              ! !
              ! !
              !-!\
                  \  swqzx 1-go i 2-go segmentow
                  /
          2   !-!/
              !*!
              !*!
            --! !    w |tom slu~ae ~astx segmenta 2
            ! ! !    perepisywaetsq w 4-j segment
            ! !-!
            !
          3 ! !-!
            ! !*!
            ! !*!
            ! ! !<-!
            ! ! !  !
            ! !-!  !
            !      !
          4 ! !-!  !
            ->!*!  !   segment 4 swqzywaetsq s
              !*!  !   segmentom 3, t.k.
              ! !--!   segment 2 perwona~alxno
              ! !      byl swqzan s segmentom 3
              !-!



       11.4.1. wosstanowlenie   dannyh   w   slu~ae    poqwleniq
               defektnyh blokow w kataloge



       zna~itelxnaq poterq dannyh, nahodq}ihsq na nositele, proishodit,
  esli odin iz blokow w kataloge nositelq portitsq: perestaet prawilxno
  s~itywatxsq apparaturoj ili na |to mesto kakaq-libo programma polxzo-
  watelq proizwela zapisx proizwolxnoj informacii. oby~no w  situaciqh,
  podobnyh ukazannym, fajly i informaciq na nositele ne izmenq`tsq,  no
  razru{a`tsq nekotorye zapisi w kataloge. nive priwedeny rekomendacii,
  sleduq kotorym movno izwle~x kak movno bolx{e informacii s  nositelq,
  ime`}ego defektnye bloki w kataloge.



       11.4.1.1. prowerka segmenta 1



       perwym {agom wosstanowleniq dannyh qwlqetsq  prowerka,  ~ita`tsq
  li zapisi perwogo segmenta kataloga. sleduet pomnitx, ~to  segment  1
  zanimaet bloki 6 i 7 nositelq. dlq prowerki perwogo segmenta  neobho-
  dimo ustanowitx nositelx na ustrojstwo i popytatxsq  sdelatx  oby~nu`
  raspe~atku kataloga  fajlow  |togo  nositelq.  dlq  |togo  dostato~no
  ispolxzowatx komandu monitora DIRECTORY bez kakih-libo kl`~ej.

       esli nemedlenno budet polu~eno soob}enie:

                                 - 67 -




                  ?MON-F-DIRECTORY I/O ERROR    ili
                  ?MON-F-DIR I/O ERR,
                  ; o{ibka ~teniq kataloga

  to perwyj segment kataloga ne ~itaetsq.  w  dannoj  situacii  ime`tsq
  tolxko dwa warianta raboty.

       w perwom slu~ae proizwoditsq pereformatirowanie i powtornaq ini-
  cializaciq nositelq (nositelx movno powtorno ispolxzowatx, esli  pro-
  werka na nali~ie defektnyh blokow pokavet  otsutstwie  ih  w  oblasti
  kataloga). pri |tom dannye polnostx` terq`tsq.

       wo wtorom slu~ae, esli dannye neobhodimo wosstanowitx,  nositelx
  movet bytx otkryt s pomo}x` sistemnoj programmy TECO, kak  ustrojstwo
  s nefajlowoj strukturoj, i  prosmotren  poblo~no  w  poiskah  dannyh,
  sootwetstwu`}ih ishodnomu tekstu w kode koi-7.  odnako  |to  qwlqetsq
  o~enx trudoemkoj proceduroj.

       s drugoj storony, esli po komande DIRECTORY raspe~atywaetsq hotq
  by ~astx kataloga, to movno wosstanowitx opredelennu` ~astx  informa-
  cii, nahodq}ejsq na nositele. neobhodimo ispolxzowatx komandu monito-
  ra DIRECTORY/SUMMARY, kotoraq raspe~ataet strukturu swqzi segmentow w
  kataloge do defektnogo segmenta. dlq wosstanowleniq maksimalxno  woz-
  movnogo ~isla fajlow neobhodimo wosstanowitx strukturu swqzi  segmen-
  tow, iskl`~iw iz nee defektnyj segment.



       11.4.1.2. opredelenie struktury swqzi segmentow



       nositelx neobhodimo otkrytx pri pomo}i programmy SIPP  kak  ust-
  rojstwo s nefajlowoj strukturoj. prosmotr na~inaetsq s q~ejki 6000, s
  kotoroj na~inaetsq zagolowok perwogo segmenta  kataloga.  |ta  q~ejka
  sodervit ob}ee ~islo segmentow, otwedennyh pod katalog.  q~ejka  6002
  sodervit nomer sledu`}ego segmenta, a q~ejka 6004 - nomer  poslednego
  segmenta, soderva}ego zapisi.

       dlq polu~eniq  absol`tnogo  adresa  q~ejki  sledu`}ego  segmenta
  neobhodimo sodervimoe slowa (ukazatelx na sledu`}ij segment) umnovitx
  na 2000 i pribawitx k 4000. naprimer, esli ukazatelx rawen 2, to sle-
  du`}ij segment na~inaetsq s q~ejki 10000 nositelq. |ta cepo~ka  movet
  bytx prodolvena pri ispolxzowanii sodervimogo  ukazatelej  w  cepo~ke
  segmentow. w processe prosmotra sleduet zapisywatx informaci` o  swq-
  zi, naprimer, w wide, pokazannom na ris. 46.

          zapisx cepo~ki spiska segmentow kataloga,
          soderva}ego ~etyre segmenta

          segment:                swqzan s:

             1                       2
             2                       4
             4                       3 (defektnyj)
             3 (defektnyj)           ?

                                 ris. 46


                                 - 68 -




       na ris. 46 poslednij ispolxzuemyj segment - 4; ~islo  segmentow,
  otwedennyh pod katalog - 4.

       pereme}enie po cepo~ke prodolvaetsq do ee konca,  t.e.  poka  ne
  budut projdeny wse segmenty. sleduet pomnitx, ~to  segment  1  wsegda
  qwlqetsq perwym segmentom w  cepo~ke.  poslednij  segment  w  cepo~ke
  sodervit ukazatelx, rawnyj 0.

       w primere (sm. ris. 46) ukazatelx segmenta 3 dolven  bytx  rawen
  0, t.k. |to poslednij w cepo~ke segment iz ~etyreh ispolxzuemyh.  dlq
  wosstanowleniq takogo  kataloga  neobhodimo  modificirowatx  zna~enie
  ukazatelq segmenta 4, ~toby ono bylo rawno 0, a ne 3.  |ta  korrekciq
  pozwolit udalitx segment 3 iz cepo~ki.  sposob  izwle~eniq  fajlow  s
  takogo nositelq opisan nive.

       na ris. 47 priweden bolee slovnyj primer. w |tom slu~ae  defekt-
  nyj segment ne qwlqetsq poslednim segmentom kataloga.

           zapisx cepo~ki kataloga iz 9 segmentow

          segment:                swqzan s:
             1                       2
             2                       5
             5                       4
             4                       8
             8                       7 (defektnyj)
             7 (defektnyj)           ?
             3                       0
             6                       9
             9                       3

                                 ris. 47

       w |toj situacii (sm. ris. 47) po cepo~ke movno  pereme}atxsq  ot
  segmenta 1 do segmenta 8, kotoryj ukazywaet na defektnyj  segment  7.
  net informacii, na kakoj segment ukazywaet segment 7. w dannom slu~ae
  neobhodimo skorrektirowatx ukazatelx w segmente  8.  dlq  opredeleniq
  nomera segmenta nuvno prosmotretx zapisi, raspolovennye nive  defekt-
  nogo bloka, i najti poslednij segment  w  cepo~ke  (ukazatelx  dolven
  bytx rawen 0). takim segmentom qwlqetsq segment 3, na kotoryj  ukazy-
  waet segment 9. na segment 9 ukazywaet segment 6. takim obrazom, dwi-
  venie po cepo~ke swerhu obrywaetsq na 8 segmente (dalee idet  defekt-
  nyj segment). dwivenie snizu po cepo~ke  obrywaetsq  na  6  segmente.
  sledowatelxno, 8-j segment dolven ukazywatx na 6-j (ris. 48).

                                 - 69 -




                  (1) ---> (2)
                            !
                            !
                            V
                           (5)
                            !
                            !
                            V
                           (4)
                            !
                            !
                            V
                           (8)
                           / \
                          /   \
                         /     \
                       (6)     (7) (defektnyj) ---> ?
                        !
                        !
                        V
                       (9) ---> (3) ---> (0)

                                 ris. 48



       11.4.1.3. polu~enie  dannyh  iz  segmentow,  ne  soderva}ih
                 defektnye bloki



       posle iskl`~eniq defektnogo segmenta (segmentow) iz  spiska  pri
  pomo}i korrekcii ukazatelej,  movno  proizwoditx  sohranenie  fajlow,
  zapisi o kotoryh nahodqtsq w segmentah, ne soderva}ih defektnye  blo-
  ki. dlq perezapisi fajlow na  drugoj  nositelx  ispolxzuetsq  komanda
  monitora COPY. sledu`}aq komanda,  naprimer,  kopiruet  wse  fajly  s
  odnogo gibkogo diska na drugoj:

          COPY DX:*.* DX1:

       |ta procedura perepisywaet s  nositelq  wse  fajly,  krome  teh,
  zapisi o kotoryh nahodqtsq w defektnom segmente.



       11.4.1.4. polu~enie dannyh iz segmenta s defektnymi blokami



       w nekotoryh slu~aqh su}estwuet wozmovnostx  wosstanowitx  fajly,
  zapisi o kotoryh nahodqtsq w segmente s defektnymi blokami, pri pomo-
  }i programm SIPP i DUP. esli pri otkrytii segmenta  pri  pomo}i  SIPP
  perwyj blok segmenta ne  ~itaetsq,  neobhodima  osobaq  ostorovnostx,
  t.k., dave esli wtoroj blok segmenta ~itaetsq  normalxno,  su}estwuet
  weroqtnostx, ~to on sodervit ustarew{ie dannye.

       esli perwyj blok segmenta ~itaetsq normalxno, zagolowok segmenta
  i zapisi o fajlah dekodiru`tsq w sootwetstwii s listingom  raspe~atki
  katalogA. prodolvaq rabotu s SIPP, sleduet popytatxsq opredelitx raz-

                                 - 70 -




  me}enie fajlow na nositele. kak tolxko opredelen na~alxnyj i kone~nyj
  blok trebuemogo fajla, sleduet wyzwatx programmu DUP  i  ispolxzowatx
  komandnu` stroku sledu`}ego formata:

          *OUTDEV:FILE=INPDEV:/G:START/E:ENDBLK/I/F

  kotoraq perepi{et fajl s  ustrojstwa  INPDEV,  na~ina`}ijsq  s  bloka
  START, na ustrojstwo OUTDEV w ukazannyj fajl s imenem FILE. dlq polu-
  ~eniq togo ve rezulxtata movet bytx  ispolxzowana  sledu`}aq  komanda
  monitora RT11:

     COPY/DEV/FIL/STA:START/END:ENDBLK INPDEV: OUTDEV:FILE

       posle wosstanowleniq fajlow s nositelq, ego movno wernutx  polx-
  zowatelqm ili movno  pereformatirowatx  i  inicializirowatx  nositelx
  (esli w kataloge byli defektnye  bloki).  esli  posle  formatirowaniq
  ostanutsq defektnye bloki w  zone  kataloga,  |tot  nositelx  sleduet
  pometitx kak negodnyj k ispolxzowani` w RT11.



       11.5. sozdanie i razme}enie fajlow w sisteme



       wse fajly sistemy razme}a`tsq w blokah, kotorye sledu`t drug  za
  drugom na ustrojstwe. pri sozdanii fajla  pod  uprawleniem  RT11  ego
  dlina dolvna bytx zadana w makrokomande .ENTER. esli dlina zaranee ne
  izwestna, kak ~asto bywaet, to ona wybiraetsq dostato~no bolx{oj  dlq
  togo, ~toby movno bylo razmestitx wse neobhodimye dannye.

       su}estwuet tri warianta ispolxzowaniq makrokomandy .ENTER.  esli
  argument "dlina" rawen 0, to dlq sozdawaemogo wremennogo fajla  otwo-
  ditsq ili polowina samogo bolx{ogo swobodnogo prostranstwa  <UNUSED>,
  ili polnostx` wtoroj po weli~ine <UNUSED> (kakim  by  bolx{im  on  ni
  byl). esli argument rawen "-1", to wybiraetsq samyj bolx{oj <UNUSED>,
  ime`}ijsq na ustrojstwe. i esli argument bolx{e 0, to  |to  ukazywaet
  konkretnyj razmer wremennogo fajla.

       wremennyj fajl wsegda raspolagaetsq w swobodnoj oblasti.

       na ris. 49 pokazan wremennyj fajl, zadannaq dlina kotorogo rawna
  100 blokam.

                                 - 71 -




                   sozdanie wremennogo fajla

                         !------------!
                         !    fajl    !
                         !  70 blokow !
                         !------------!
                         ! wremennyj  !
                         !    fajl    !
                         ! 100 blokow !
                         !------------!
                         !  <UNUSED>  !
                         !  40 blokow !
                         !------------!
                         !    fajl    !
                         !  81 blok   !
                         !------------!

                                 ris. 49

       pri rabote dwuh programm dopuskaetsq sozdanie kavdoj  programmoj
  wremennogo fajla. naprimer, odna programma  sozdala  wremennyj  fajl,
  dlinoj 100 blokow, drugaq sozdaet wremennyj fajl, dlinoj w 25  blokow
  (ris. 50).

                         !------------!
                         !    fajl    !
                         !  70 blokow !
                         !------------!
                         ! wremennym  !
                         !    fajl    !
                         ! 100 blokow !
                         !------------!
                         !  <UNUSED>  !
                         !   0 blokow !
                         !------------!
                         ! wremennyj  !
                         !    fajl    !
                         !  25 blokow !
                         !------------!
                         !  <UNUSED>  !
                         !  15 blokow !
                         !------------!
                         !    fajl    !
                         !  81 blok   !
                         !------------!

                                 ris. 50

       esli programma zakan~iwaet zapisx dannyh na ustrojstwo, ona zak-
  rywaet wremennyj fajl po makrokomande .CLOSE. wremennyj  fajl  stano-
  witsq postoqnnym. ego dlina budet opredelena po maksimalxnomu  nomeru
  bloka, zapisannogo w |tot fajl. na  ris.  51  pokazano  raspredelenie
  fajlow posle zakrytiq oboih wremennyh fajlow. dlina perwogo  fajla  -
  75 blokow, wtorogo - 10 blokow.

                                 - 72 -




                        !------------!
                        !    fajl    !
                        !  70 blokow !
                        !------------!
                        ! postoqnnyj !
                        !    fajl    !
                        !  75 blokow !
                        !------------!
                        !  <UNUSED>  !
                        !  25 blokow !
                        !------------!
                        ! postoqnnyj !
                        !    fajl    !
                        !  10 blokow !
                        !------------!
                        !  <UNUSED>  !
                        !  30 blokow !
                        !------------!
                        !    fajl    !
                        !  81 blok   !
                        !------------!

                           ris. 51

       esli neobhodimo uweli~itx razmer su}estwu`}ego fajla, nuvno otk-
  rytx nowyj fajl trebuemogo razmera i zatem  zapisatx  w  nego  staryj
  fajl i nowye dannye. esli pri |tom neobhodimo udalitx staryj fajl, to
  udobnee sozdawaemyj wremennyj fajl nazwatx tem ve imenem. w |tom slu-
  ~ae staryj fajl budet udalen pri wypolnenii makrokomandy .CLOSE.

       programma DUP s pomo}x` kl`~a /T pozwolqet sozdawatx fajl  neob-
  hodimoj dliny pri uslowii nali~iq swobodnoj oblasti dostato~nogo raz-
  mera.



       11.6. gibkie diski w formate obmena



       dlq pereda~i dannyh mevdu nositelqmi RT11 i  gibkimi  diskami  w
  formate obmena movno  ispolxzowatx  programmu  FILEX  (kl`~  /U)  ili
  komandu monitora COPY/INTERCHANGE. gibkij disk formata obmena,  nazy-
  waemyj takve gibkim diskom es |wm, sodervit 77 dorovek. kavdaq dorov-
  ka imeet 26 (desqti~noe) sektorow, i movno razme}atx w l`bom  sektore
  odnu zapisx w kode koi-8. zapisx movet sodervatx do 128 simwolow.

       dorovka 0 rezerwiruetsq dlq metok dannyh,  kotorye  ime`t  formu
  kataloga. funkcii dorovki 0 opisany nive.

       sektory s 1 po 4 rezerwiru`tsq w es |wm dlq ispolxzowaniq siste-
  moj. oni sodervat po 80 probelow na sektor.

       bajty s 1 po 13 sektora 5 ispolxzu`tsq dlq zapisi  identifikacii
  o{ibo~nyh dorovek. bajty s 1 po 5 sodervat identifikator karty ERMAP.
  funkcii sektora 5 w RT11 ne podderviwa`tsq.

       sektor 6 rezerwiruetsq w es |wm dlq ispolxzowaniq  sistemoj.  on
  sodervit 80 probelow.

                                 - 73 -




       sektor 7 qwlqetsq metkoj toma. bajty s 0 po 3  sektora  sodervat
  zapisx VOL1 w koi-8. |to identificiruet nositelx kak gibkij disk for-
  mata es |wm. w sm |wm |ti ~etyre bajta sodervat identifikator  siste-
  my, kotoraq wypolnqla zapisx na gibkij  disk.  drugie  bajty  sektora
  identificiru`t nositelx, ego  format,  prinadlevnostx  i  opredelq`t,
  ispolxzu`tsq li standartnye metki. tabl. 7 wkl`~aet opisanie sodervi-
  mogo sektora 7 gibkogo diska formata obmena.

                                                   TAblica 7

          sedxmoj sektor gibkogo diska formata obmena
   ---------------------------------------------------------
   sme}enie,!               sodervimoe
    bajty   !       (wse zna~eniq dany w kode koi-8)
   ---------------------------------------------------------
         0  ! V
         1  ! O
         2  ! L
         3  ! 1
      4-11  ! pole identifikatora toma
            ! identifikator sodervit ot 1 do 6 znakow
            ! (cifr ili bukw), wyrawnennyh po lewomu kra`.
            ! neispolxzuemye pozicii dolvny sodervatx
            ! probely
        12  ! kod dostupa. dolven bytx probelom dlq razre-
            ! {eniq dostupa k nositel`
     13-44  ! rezerwiru`tsq dlq es |wm
     45-62  ! sodervat pole identifikacii wladelxca
            ! |to pole ispolxzuetsq ne wo wseh sistemah
    63-113  ! rezerwiru`tsq dlq es |wm
   114-115  ! opredelq`t, qwlq`tsq li zapisi
            ! posledowatelxnymi, ili ukazywa`t
            ! faktor smevnosti (dwa probela predstawlq`t
            ! faktor 1:1)
       116  ! rezerwiruetsq dlq es |wm
       117  ! pole metki wersii. W ukazywaet standartnye
            ! metki

       sektory s 8 po 26 sodervat metki naborow dannyh. oni ime`t dlinu
  40 slow i sodervat katalogowu` informaci`. Tabl. 8 opisywaet sodervi-
  moe sektorow s 8 po 26.

                                 - 74 -




                                                   tablica 8

            sektory 8-26 gibkogo diska formata obmena
   ---------------------------------------------------------
    sme}enie,!               sodervimoe
     bajty   !     (wse zna~eniq dany w kode koi-8)
   ---------------------------------------------------------
         0   ! H
         1   ! D
         2   ! R
         3   ! 1
         4   ! rezerwiruetsq
      5-14   ! metkA fajla
     15-25   ! rezerwiruetsq
     26-32   ! bajty sodervat ukazanie dliny
             ! bloka/zapisi. zna~eniem po umol~ani`
             ! qwlqetsq 80, no wozmovno i 128
        33   ! rezerwiruetsq
     34-35   ! nomer dorovki, s kotoroj na~ina`tsq dannye
        36   ! 0 (wosxmeri~noe 360)
     37-40   ! nomer sektora, s kotorogo na~ina`tsq dannye
        41   ! rezerwiruetsq
     42-43   ! nomer poslednej dorovki,
             ! otwedennoj pod |tot nabor dannyh
        44   ! 0 (wosxmeri~noe 360)
     45-46   ! nomer poslednego sektora,
             ! otwedennogo pod |tot nabor dannyh
        47   ! rezerwiruetsq
        50   ! indikator obhoda
        51   ! garantiq nabora dannyh
        52   ! za}ita zapisi
        53   ! probel (wosxmeri~noe 100)
             ! dlq izmeneniq dannyh
        54   ! indikator mnogotomnosti:
             !      C       - prodolvaetsq na dr. nositele
             !      L       - poslednij tom fajla
             !      probel  - bez prodolveniq
     55-56   ! nomer toma
     57-60   ! god sozdaniq
     61-62   ! mesqc sozdaniq
     63-64   ! denx sozdaniq
    65-101   ! rezerwiru`tsq
   102-107   ! data iste~eniq sroka hraneniq nabora
             ! dannyh w tom ve formate, ~to i data
             ! sozdaniq nabora (bajty 57-64)
       110   ! pometka kontrolq:
             !     V       - nabor dannyh sweren
             !     probel  - bez swerki
       111   ! rezerwiruetsq
   112-113   ! nomer sledu`}ej swobodnoj dorovki w
             ! |tom nabore dannyh
       114   ! rezerwiruetsq
   115-116   ! nomer sledu`}ego swobodnogo sektora w
             ! |tom nabore dannyh
       117   ! rezerwiruetsq

                                 - 75 -




       11.7. mnogotomnaq fajlowaq struktura


       w sisteme su}estwuet wozmovnostx sozdaniq wirtualxnyh  nositelej
  na ustrojstwe prqmogo dostupa. kavdyj iz wirtualxnyh nositelej  movet
  ispolxzowatxsq odnim ili gruppoj polxzowatelej. wirtualxnyj  nositelx
  imeet swoj katalog fajlow.

       ispolxzowanie wirtualxnyh nositelej pozwolqet:

         - osu}estwitx za}itu ot neumy{lennoj popytki  powreditx  fajly
           drugogo polxzowatelq (pri sozdanii ili  pereimenowanii  faj-
           low, a takve pri operaciqh stiraniq ili zapisi s odnogo ust-
           rojstwa na drugoe);
         - sodervatx neskolxkim  polxzowatelqm  swoi  fajly  nezawisimo
           drug ot druga;
         - sokratitx w bolx{instwe slu~aew wremq poiska fajla w katalo-
           ge;
         - ispolxzowatx wirtualxnyj nositelx  dlq  hraneniq  sistemy  i
           dannyh, zagruvaemyh po linii swqzi (dlq  lokalxnyh  mnogoma-
           {innyh kompleksow).

       wirtualxnyj nositelx - |to oby~nyj fajl s to~ki zreniq  logi~es-
  koj organizacii fajlow na diske. s to~ki zreniq sistemy -  |to  nosi-
  telx. takim obrazom, na diske poqwlq`tsq fajly, kotorye ime`t slovnu`
  wnutrenn`` strukturu. primenenie wirtualxnyh nositelej pozwolqet soz-
  dawatx fajlowu` strukturu, ime`}u` dwa i bolee urownej ierarhii.

       wirtualxnyj nositelx imeet swoj katalog i sodervit tolxko  fajly
  dannogo polxzowatelq ili polxzowatelej. sama sistema, prikladnye sis-
  temnye programmy raspoloveny na ob}em diske. polxzowateli, po  kakoj-
  libo pri~ine otkazaw{iesq ot sobstwennogo wirtualxnogo nositelq, hra-
  nqt swoi fajly takve, kak i sistemnye. na ris. 52 predstawlena struk-
  tura diska, ime`}ego prostu` (oby~nu`) strukturu i  soderva}ego  wir-
  tualxnye fajlowye nositeli.

                struktura diska s wirtualxnymi nositelqmi

         !-----------------!
         !     katalog     !
         !      diska      !
         !-----------------!
         !     fajl #1     !
         !-----------------!
         !     fajl #2     !
         !-----------------!    /!-----------------!
         !     <UNUSED>    !   / !     katalog     !
         !-----------------!  /  !  wirtualxnogo   !
         !     fajl #3     ! /   !     nositelq    !
         !-----------------!/    !-----------------!
         !     fajl #4     !     !     fajl #1     !
         !-----------------!\    !-----------------!
         !     fajl #5     ! \   !     fajl #2     !
         !-----------------   \  !-----------------!
         !                 !   \ !     <UNUSED>    !
         !     <UNUSED>    !    \!-----------------!
         !                 !
         !-----------------!

                                 - 76 -




                                 ris. 52

       w razli~nyh tipah monitorow  rabota  s  wirtualxnymi  nositelqmi
  realizowana po-raznomu. esli w RT11 |to wypolnqetsq  s  pomo}x`  spe-
  cialxnyh drajwerow LD ili LDX , to w os  NTS  realizuetsq  s  pomo}x`
  sredstw monitora.



       11.7.1. rabota s wirtualxnymi nositelqmi w RT11





       11.7.1.1. drajwer wirtualxnogo fajlowogo nositelq


       RT11 imeet  specialxnyj  drajwer  dlq  obsluviwaniq  wirtualxnyh
  nositelej LD.SYS ili LDX.SYS. razmer  wirtualxnogo  nositelq  oprede-
  lqetsq   pri   sozdanii   wirtualxnogo   fajla   komandoj    monitora
  "CREATE",kl`~ /ALL:SIZE. drajwer LD movet obsluviwatx do wosxmi  wir-
  tualxnyh nositelej (naprimer, ot LD0: do LD7:).



       11.7.1.2. struktura kataloga diska i wirtualxnogo nositelq



       komanda "MOU" w RT11 ili "CONNECT" w os NTS  pozwolqet  ob'qwitx
  fajl wirtualxnym nositelem. naprimer, po sledu`}ej komande  sozdaetsq
  w RT11 wirtualxnyj nositelx LD1: dlinoj w 546  blokow  na  ustrojstwe
  RK0:.

          .CREATE RK0:DISK1.DSK/ALL:546

          .MOU LD1: RK0:DISK1





       11.7.2. rabota s wirtualxnymi nositelqmi w os NTS



       procedura sozdaniq wirtualxnogo nositelq sledu`}aq:  po  komande
  CREATE na fizi~eskom diske sozdaetsq fajl, razmer kotorogo ukazywaet-
  sq kl`~om /ALL:N. posle |togo neobhodimo  wypolnitx  komandu  CONNECT
  dlq ob'qwleniq fajla wirtualxnym nositelem. posle wypolneniq  komandy
  INITIALIZE ustrojstwo gotowo k rabote.

       naprimer, po sledu`}emu naboru komand sozdaetsq  fajl  dlinoj  w
  1000 blokow na ustrojstwe RK0: i  ob'qwlqetsq  wirtualxnym  nositelem
  F:.

        .CREATE RK0:DISK.DSK/ALL:1000
        .CONNECT RK0:DISK.DSK F:

                                 - 77 -






  esli neobhodimo tolxko ~itatx  iz  wirtualxnogo  nositelq,  to  movno
  wmesto komandy CONNECT ispolxzowatx ASSIGN.

       razmer kataloga wirtualxnogo nositelq zadaetsq pri inicializacii
  i zawisit ot razmera sozdawaemogo wirtualxnogo nositelq. pri  inicia-
  lizacii movno ukazatx trebuemoe koli~estwo segmentow:

         .INITIALIZE/SEGMENT:N F:

         F:/INIT ARE YOU SURE?Y

  po |toj komande na wirtualxnom nositele F:  sozdaetsq  katalog  iz  N
  segmentow.


       pRIME^ANIE. neobhodimo pomnitx,  ~to  posle  wypolneniq  komandy
  SQUEEZE (svatie informacii na nositele) ili powtornoj zagruzki siste-
  my nuvno zanowo proizwesti ob'qwlenie neobhodimogo fajla  wirtualxnym
  nositelem.




           12. struktura ustrojstwa posledowatelxnogo dostupa




       w otli~ie ot nositelej ustrojstw prqmogo dostupa  nositeli  ust-
  rojstwa posledowatelxnogo dostupa ne ime`t kataloga. kavdyj  fajl  na
  takom nositele, krome  dannyh,  wkl`~aet  informaci`  o  samom  fajle
  (zagolowok fajla). pri poiske fajla proizwoditsq prosmotr  wseh  faj-
  low, nahodq}ihsq pered nim. k takim ustrojstwam  otnosqtsq  magnitnye
  lenty i kassety.



       12.1. struktura fajlow na magnitnoj lente



       wsq informaciq na magnitnoj lente raspolovena w logi~eskih  blo-
  kah.

       magnitnaq lenta w sisteme imeet standartnyj nabor metok, kotoryj
  neobhodim dlq uprawleniq  dannymi.  w  metkah  nahoditsq  informaciq,
  ispolxzuemaq dlq kontrolq. naprimer, w metke movet sodervatxsq  ~islo
  blokow w fajle. posle raboty s fajlom movet bytx proizwedena prowerka
  koli~estwa ime`}ihsq w fajle blokow s ukazannym w metke. nesowpadenie
  |tih dwuh zna~enij w nekotoryh slu~aqh ukazywaet na o{ibku pri  obra-
  botke fajla.

       standartnye metki:

  metka toma (VOL1)
         - magnitnaq lenta w sisteme imeet tolxko odin tom; ne  ispolx-
           zuetsq metka konca toma EOV, po|tomu nelxzq raspolagatx fajl

                                 - 78 -




           na dwuh lentah;

  lento~nyj marker (*)
         - metki ot dannyh otdelq`tsq lento~nym markerom; dwa lento~nyh
           markera ozna~a`t logi~eskij konec lenty;

  metka na~ala fajla (HDR1)
         - metka sodervit ws` neobhodimu` informaci` o fajle, za iskl`-
           ~eniem dliny fajla; dlina fajla rawna 0;

  metka konca fajla (EOF1)
         - metka polnostx` powtorqet informaci`, soderva}u`sq  w  metke
           HDR1, za iskl`~eniem dliny fajla; dlina rawna  ~islu  blokow
           dannyh;

  mevblo~nyj promevutok
         - sluvebnaq zapisx,  razdelq`}aq  bloki  dannyh  mevdu  soboj;
           neobhodima dlq razgona i ostanowa bobiny magnitnoj lenty pri
           s~itywanii ili zapisi informacii.

       esli dannye na magnitnoj lente ne ime`t standartnogo formata, to
  oni mogut bytx pro~itany s pomo}x` makrokomandy  .SPFUN  i  drajwera,
  podderviwa`}ego fajlowu` strukturu.

       sistemnye programmy RT11 (DIR, DUP,  PIP  i  t.d.)  osu}estwlq`t
  zapisx na lentu ili s~itywanie poblo~no, t.e. zapisqmi po 512 bajt.

       fajl, sozdannyj na magnitnoj lente, imeet wid:

      HDR1 * dannye * EOF1 *

       tom, soderva}ij odin fajl, imeet format:

      VOL1 HDR1 * dannye * EOF1 * * *

       tom, soderva}ij dwa fajla, imeet format:

      VOL1 HDR1 * dannye * EOF1 * HDR1 * dannye * EOF1 * * *

       magnitnaq lenta, kotoraq byla inicializirowana, imeet  sledu`}ij
  format:

      VOL1 HDR1 * * EOF1 * * *

       na~alxnyj zagruz~ik magnitnoj lenty toma imeet format:

      VOL1 mBOOT  HDR1 * dannye * EOF1 * * *

       pri sozdanii zagruz~ika na magnitnoj lente fajl MBOOT.BOT  (per-
  wi~nyj zagruz~ik) dolven ispolxzowatxsq  dlq  kopirowaniq  wtori~nogo
  zagruz~ika magnitnoj lenty. perwyj fajl, kotoryj dolven bytx  zapisan
  posle perwi~nogo zagruz~ika (mBOOT), |to MSBOOT.BOT, kotoryj sodervit
  wtori~nyj zagruz~ik magnitnoj  lenty.  perwi~nyj  zagruz~ik  zanimaet
  odin blok (512 bajtow).

       kavdaq metka na magnitnoj lente ispolxzuet tolxko perwye 80 baj-
  tow (iz zanimaemyh 512 bajtow), i kavdyj bajt w metke sodervit infor-
  maci` w simwolxnom  kode.  informaciq,  soderva}aqsq  w  metke  toma,
  predstawlena w tabl. 9.

                                 - 79 -




                                                tablica 9

               format metki toma (VOL1)

  -------------------------------------------------------
            !        !dlina !      zna~enie polq
   poziciq  !imq polq!polq, ! (po umol~ani` zapisywaetsq
    polq    !        !bajty !      w kode koi-7)
  -------------------------------------------------------
            !identi- !  3   !
            !fikator !      !
    1 -  3  ! (ID)   !      !           VOL
            ! metki  !      !
  ----------!--------!------!----------------------------
         4  ! nomer  !  1   !            1
            ! metki  !      !
  ----------!--------!------!----------------------------
            !        !      ! RT11A, za kotorym sleduet
    5 - 10  ! ID toma!  6   ! odin probel (metka toma),
            !        !      ! esli net, to ID toma
  ----------!--------!------!----------------------------
        11  !        !  1   !          probel
  ----------!--------!------!----------------------------
            !   ne   !      !
   12 - 37  ! ispolx-! 26   !          probely
            ! zuetsq !      !
  ----------!--------!------!----------------------------
   38 - 50  !ID polx-! 13   ! s 38 po 40  ID  D&B;
            !zowatelq!      ! s 41 po 50  ID polxzowatelq
            !        !      ! ili probely
  ----------!--------!------!----------------------------
            !standar-!      !
        51  ! tnaq   !  1   !            1
            ! wersiq !      !
            !RT11    !      !
  ----------!--------!------!----------------------------
            !   ne   !      !
   52 - 79  !ispolx- ! 28   !          probely
            ! zuetsq !      !
  ----------!--------!------!----------------------------
            !standar-!      !
        80  !  tnaq  !  1   !            3
            ! wersiq !      !
            !  metki !      !

       informaciq, soderva}aqsq w metke fajla, predstawlena w tabl. 10.

                                 - 80 -




                                                tablica 10

                format metki fajla (HDR1)

  -------------------------------------------------------
            !         !dlina !      zna~enie polq
   poziciq  !imq polq !polq, !(po umol~ani` zapisywaetsq
    polq    !         !bajty !      w kode koi-7)
  -------------------------------------------------------
    1 -  3  !ID metki !   3  !          HDR
  ----------!---------!------!---------------------------
         4  ! nomer   !   1  !           1
            ! metki   !      !
  ----------!---------!------!---------------------------
    5 - 21  !ID fajla !  17  !   imq, razdelitelx (".")
            !         !      !         i tip
  ----------!---------!------!---------------------------
   22 - 27  !ID zapisi!   6  ! RT11A, za kotorym sleduet
            ! fajla   !      !        odin probel
  ----------!---------!------!---------------------------
            ! nomer   !      !
   28 - 31  ! sekcii  !   4  !         0001
            ! fajla   !      ! (w wosxmeri~nom wide)
  ----------!---------!------!---------------------------
            !porqdko- !      !  perwyj fajl imeet nomer
   32 - 35  !wyj nomer!   4  !  0001; nomer sledu`}ego
            ! fajla   !      !  fajla uweli~iwaetsq na 1;
            !         !      !  posle inicializacii lenty
            !         !      !  ego zna~enie rawno 0000
            !         !      ! (w wosxmeri~nom wide)
  ----------!---------!------!---------------------------
            ! nomer   !      !         0001
   36 - 39  !generacii!   4  ! (w wosxmeri~nom wide)
  ----------!---------!------!---------------------------
            ! wersiq  !      !          00
   40 - 41  !generacii!   2  ! (w wosxmeri~nom wide)
  ----------!---------!------!---------------------------
            !  data   !      ! probel, za kotorym sledu-
   42 - 47  !sozdaniq !   6  !  et (god * 1000 + denx)
  ----------!---------!------!---------------------------
            !  data   !      ! probel, za kotorym sledu`t
   48 - 53  !okon~aniq!   6  !         pqtx nulej
  ----------!---------!------!---------------------------
        54  ! metod   !   1  !         probel
            ! dostupa !      !
  ----------!---------!------!---------------------------
   55 - 60  ! s~et~ik !   6  !         000000
            ! blokow  !      ! (w wosxmeri~nom wide)
  ----------!---------!------!---------------------------
   61 - 73  !   kod   !  13  !        DECRT11A
            ! sistemy !      !
  ----------!---------!------!---------------------------
            !   ne    !      !
   74 - 80  ! ispolx- !   7  !         probely
            ! zuetsq  !      !


       pRIME^ANIE. data sozdaniq (DAT) zapominaetsq sledu`}im obrazom:

                                 - 81 -




            DAT = g * 1000 + d                   (4.4)

  gde

  g      - god;

  d      - koli~estwo dnej ot na~ala goda.

       naprimer, data 5.05.83. budet predstawlena w wide

      83 * 1000 + (31 + 28 + 31 + 30 + 5) = 83125

  esli data otsutstwuet, to dannye pozicii zapolnq`tsq nulqmi  (pri~em,
  perwym stoit odin probel, za kotorym sledu`t pqtx nulej).

       metka konca fajla (EOF1) to~no takaq ve, kak i metka na~ala faj-
  la (HDR1), za iskl`~eniem neskolxkih bajtow, kotorye ukazany w  tabl.
  11.

                                                tablica 11

            struktura metki konca fajla (EOF1)
  -------------------------------------------------------
            !        !dlina !      zna~enie polq
   poziciq  !imq polq!polq, ! (po umol~ani` zapisywaetsq
    polq    !        !bajty !      w kode koi-7)
  -------------------------------------------------------
    1 -  3  !ID metki!  3   !          EOF
  ----------!--------!------!----------------------------
            !        !      !koli~estwo blokow dannyh,
            !        !      !soderva}ihsq w fajle (esli
   55 - 60  ! s~et~ik!  6   !fajl ne sozdan makrokomandoj
            ! blokow !      !.SPFUN); pri sozdanii fajla
            !        !      !makrokomandoj .SPFUN s~et~ik
            !        !      !rawen nul`; esli .SPFUN pri
            !        !      !zapisi ispolxzuet bloki po
            !        !      !256 (desqti~noe) slow, to
            !        !      !s~et~ik blokow ustanawliwa-
            !        !      !etsq kak oby~no



       12.2. struktura kassetnogo fajla



       oby~no kassetnye fajly ime`t dannye, kotorye zapisany blokami po
  128 bajtow. sluvebnaq informaciq zapisywaetsq w bloki dlinoj 32  baj-
  ta.

       standartnye obozna~eniq:

  na~alxnyj u~astok lenty
         - ~istaq ~astx lenty w na~ale kassety s lentoj;

  ras{irennyj promevutok
         - blok, otdelq`}ij na~alxnyj u~astok lenty  ot  metki  perwogo
           fajla;

                                 - 82 -




  metka fajla
         - blok, kotoryj sodervit zagolowok fajla;

  metka konca fajla
         - blok, kotoryj otli~aetsq ot metki fajla tem, ~to perwyj bajt
           rawen nul`;

  mevblo~nyj promevutok
         - blok, sluva}ij granicej mevdu blokami dannyh;

  mevfajlowyj promevutok
         - blok, otdelq`}ij konec predydu}ego fajla ot na~ala sledu`}e-
           go;

  marker konca lenty
         - blok, ukazywa`}ij na fizi~eskij  konec  lenty;  ispolxzuetsq
           esli fajl raspoloven na dwuh lentah (w dwuh tomah).

       posle inicializacii kassetnyj fajl imeet format,  predstawlennyj
  na ris. 53.

                    !-------------!
                    !  na~alxnyj  !
                    !   u~astok   !
                    !    lenty    !
                    !-------------!
                    ! ras{irennyj !
                    !  promevutok !
                    !-------------!
                    ! metka fajla !
                    !-------------!
                    ! ostato~naq  !
                    ! informaciq  !
                    !      .      !
                    !      .      !
                    !      .      !
                    \/\/\/\/\/\/\/

                        ris. 53

       posle zapisi fajla informaciq na kassete budet raspolovena  sle-
  du`}im obrazom (ris. 54).

                                 - 83 -




                    !-------------!
                    !  na~alxnyj  !
                    !   u~astok   !
                    !    lenty    !
                    !-------------!
                    ! ras{irennyj !
                    !  promevutok !
                    !-------------!
                    ! metka fajla !
                    !-------------!
                    !  mevblo~nyj !
                    !  promevutok !
                    !-------------!
                    ! blok dannyh !
                    !-------------!
                    !  mevblo~nyj !
                    !  promevutok !
                    !-------------!
                    .             .
                    .             .
                    .             .
                    !-------------!
                    ! blok dannyh !
                    !-------------!
                    ! metka konca !
                    !    fajla    !
                    !-------------!

                        ris. 54

       oby~no w konce fajla, kotoryj raspoloven na odnoj  lente,  stoit
  metka konca fajla (sm. ris. 54). w slu~ae, kogda  fajl  raspolagaetsq
  na dwuh lentah, w konce perwoj lenty zapisywaetsq marker konca  lenty
  (ris. 55).

                                 - 84 -




                     !-------------!
                     .             .
                     .             .
                     .             .
                     !-------------!
                     !  mevblo~nyj !
                     !  promevutok !
                     !-------------!
                     ! blok dannyh !
                     !-------------!
                     !  mevblo~nyj !
                     !  promevutok !
                     !-------------!
                     !  ~asti~no   !
                     ! zapisannyj  !
                     !    blok     !
                     !-------------!
                     !    marker   !
                     ! konca lenty !
                     !-------------!

                        ris. 55


       pRIME^ANIE. esli pered markerom  konca  lenty  budet  nahoditxsq
  ~asti~no zapisannyj blok, to |tot blok dolven bytx perwym blokom sle-
  du`}ego toma pri ispolxzowanii neskolxkih tomow.

                                 - 85 -




       format metki fajla predstawlen w tabl. 12.

                                         tablica 12

               struktura metki fajla
  --------------------------------------------------
            !        !dlina !    zna~enie polq
   poziciq  !imq polq!polq, ! (po umol~ani` zapisy-
    polq    !        !bajty !  waetsq w kode koi-7)
  --------------------------------------------------
    1 -  9  !ID fajla!   9  !      imq i tip
  ----------!--------!------!-----------------------
        10  !  tip   !   1  !          0
            ! dannyh !      !
  ----------!--------!------!-----------------------
            !  dlina !      !
   11 - 12  !  bloka !   2  !         200
            ! dannyh !      !    (wosxmeri~noe)
  ----------!--------!------!-----------------------
            !        !      !0 dlq fajla odnogo toma
            !porqdko-!      !  ili fajla 1-ogo toma
        13  !  wyj   !   1  !(esli imeetsq neskolxko
            ! nomer  !      !tomow); nomer sledu`}e-
            ! fajla  !      !go fajla uweli~iwaetsq
            !        !      !        na 1
  ----------!--------!------!-----------------------
        14  ! urowenx!   1  !          1
  ----------!--------!------!-----------------------
   15 - 20  !  data  !   6  !  0 ili probel, esli
            !sozdaniq!      !   data otsutstwuet
  ----------!--------!------!-----------------------
   21 - 22  !        !   2  !          0
  ----------!--------!------!-----------------------
        23  !atribut !   1  !    0 - dlq kassety
            ! zapisi !      !
  ----------!--------!------!-----------------------
            !   ne   !      !
   24 - 29  !ispolx- !   6  !  rezerw dlq sistemy
            !zuetsq  !      !
  ----------!--------!------!-----------------------
            !   ne   !      !
   30 - 32  !ispolx- !   3  !rezerw dlq polxzowatelq
            !zuetsq  !      !

       esli imeetsq data sozdaniq, to ona zapisywaetsq w kode  koi-7  w
  sledu`}em wide:

         - denx (01 - 31);
         - mesqc (01 - 12);
         - dwe poslednie cifry - raznica mevdu teku}im godom i 1972.

       dlina bloka dannyh (pozicii 11-12) zawisit ot apparatury. perwyj
  bajt ukazywaet nivnij predel dliny (0), wtoroj bajt - werhnij  predel
  dliny (200).












                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        