DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

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

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B C i

⟦756b9c777⟧ CRfs1, ileave2,6

    Length: 256256 (0x3e900)
    Types: CRfs1, ileave2,6
    Notes: Cr80S1Fs

Derivation

└─⟦38e138861⟧ Bits:30005132 8" CR80 Floppy CR80FD_0092 ( XAMOS-CPU-TEST add 0 Drive 0 Boot Disk XAMOS i FD01 Kræver 256kRAM )
    └─⟦this⟧ 

Namespace

name artifact - - - - - - - - - - - -
0x0000 0x0000 0x0000 0x0000 0x0000 0x0064 0x0000 0x0000 0x0001 0x0210 0x0000 0x0064 BOOT ⟦1c9bf6dd6⟧

Disk picture

  Unclaimed
  ?

OctetView

0x00000…00080 UnusedSector ┆d     d             ░░░░░░░░      @             d           d   i S   d ~ H H i S   d     Y O \   a             B O O T       E ┆
0x00080…00100 UnusedSector ┆                                                                             ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░┆
0x00100…00180 UnusedSector ┆░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░      ┆
0x00180…001c0 DirEnt {filename=»«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x001c0…001e0 00 00 00 00 00 00 00 00 00 00 00 00 ff e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   ┆            ░ ░░░░░░░░░░░░░░░░░░┆
0x001e0…00200 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   ┆░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░┆
0x00200…00280 UnusedSector ┆   ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░    ┆
0x00280…00300 UnusedSector ┆ ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░┆
0x00300…00380 UnusedSector ┆     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░                                                  ┆
0x00380…00400 UnusedSector ┆                                                                                                                                ┆
0x00400…00440 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x00440…00480 DirEnt {filename=»░░S«, kind=0x0464, de04=0x037e, de05=0x0448, de06=0x0448, de07=0x0469, cluster=0x0453, de09=0x0000, de0a=0x0464, de0b=0x0000, nsect=0x0000, de0d=0x0359, cluster2=0x044f, de0f=0x045c, de10=0x0001, de11=0x0461, de12=0x0000, de13=0x0001, de14=0x0004, de15=0x0020, de16=0x0000, de17=0x0001, de18=0x0049, de19=0x004e, de1a=0x0049, de1b=0x0054, de1c=0x0020, de1d=0x0020, de1e=0x0020, de1f=0x0545}
0x00480…004c0 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x004c0…00500 DirEnt {filename=»░░S«, kind=0x0464, de04=0x037e, de05=0x0448, de06=0x0448, de07=0x0469, cluster=0x0453, de09=0x0000, de0a=0x0464, de0b=0x0000, nsect=0x0000, de0d=0x0359, cluster2=0x044f, de0f=0x045c, de10=0x0001, de11=0x0461, de12=0x0000, de13=0x0001, de14=0x0004, de15=0x0020, de16=0x0000, de17=0x0001, de18=0x0049, de19=0x004e, de1a=0x0049, de1b=0x0054, de1c=0x0020, de1d=0x0020, de1e=0x0020, de1f=0x0545}
0x00500…00540 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x00540…00580 DirEnt {filename=»░░S«, kind=0x0464, de04=0x037e, de05=0x0448, de06=0x0448, de07=0x0469, cluster=0x0453, de09=0x0000, de0a=0x0464, de0b=0x0000, nsect=0x0000, de0d=0x0359, cluster2=0x044f, de0f=0x045c, de10=0x0001, de11=0x0461, de12=0x0000, de13=0x0001, de14=0x0004, de15=0x0020, de16=0x0000, de17=0x0001, de18=0x0049, de19=0x004e, de1a=0x0049, de1b=0x0054, de1c=0x0020, de1d=0x0020, de1e=0x0020, de1f=0x0545}
0x00580…005c0 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x005c0…00600 DirEnt {filename=»░░S«, kind=0x0464, de04=0x037e, de05=0x0448, de06=0x0448, de07=0x0469, cluster=0x0453, de09=0x0000, de0a=0x0464, de0b=0x0000, nsect=0x0000, de0d=0x0359, cluster2=0x044f, de0f=0x045c, de10=0x0001, de11=0x0461, de12=0x0000, de13=0x0001, de14=0x0004, de15=0x0020, de16=0x0000, de17=0x0001, de18=0x0049, de19=0x004e, de1a=0x0049, de1b=0x0054, de1c=0x0020, de1d=0x0020, de1e=0x0020, de1f=0x0545}
0x00600…00640 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x00640…00680 DirEnt {filename=»BOOT«, kind=0x0000, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0064, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0210, de0d=0x0000, cluster2=0x0064, de0f=0x000e, de10=0x040a, de11=0x0806, de12=0x0c02, de13=0x0f18, de14=0x1314, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0029, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x00680…00700 DataSector[»BOOT«]
         […0x210…]
0x10f00…10f80 UnusedSector ┆     KEPT                       "         R5;  "ADDRESS OF FIRST CB            ADDRESS OF FOUND CB        "         R4)  "LINK  ┆
0x10f80…11000 UnusedSector ┆"  SPECIFICATIONS:        X "  AUTHOR/DATE:           OH/810617 " "  DELIVERABLE:           YES "  SOURCE LANGUAGE:       SWELL ┆
         […0x1…]
0x11080…11100 UnusedSector ┆------------------------------------ " "  CHANGE RECORD " "  VERSION    AUTHOR/DATE   DESCRIPTION OF CHANGE "  -------    ------┆
0x11100…11180 UnusedSector ┆    R6=> R5;       GOTO RETURN;                      "LAST CB FOUND"     END;     R6@TERMCB.NETERMADDR=> R6;     R0+1;   UNTIL R┆
0x11180…11200 UnusedSector ┆0=MAXTERMS;                                         "ERROR, LAST CB NOT FOUND" RETURN:   SV21=> R6;   SV1=> R1;   SV27=> R0;   E┆
0x11200…11280 UnusedSector ┆XIT(R4); END "FINDLCB";  "***********************************************************************"  PROCEDURE CHECK_CB1  "THIS P┆
0x11280…11300 UnusedSector ┆ROCEDURE CHECKS ALL CONTROL BLOCKS FOR ONE SPECIFIED CB WITH A   " "MEMBER SPECIFIED BY THE CONTENTS OF R5.                     ┆
0x11300…11380 UnusedSector ┆           "         (R3;  "POSITION NUMBER                KEPT                       "         R5;  "CB IDENT                  ┆
0x11380…11400 UnusedSector ┆     ADDRESS OF FOUND CB        "         R4)  "LINK                           DEST                       "        :ERROR_DONE; ┆
0x11400…11480 UnusedSector ┆             "0= NOT FOUND                                              "              "1= FOUND                                ┆
0x11480…11500 UnusedSector ┆                  "  LABEL RETURN; BEGIN   R0=> SV27;   R2=> SV26;   ADDRESS(CBAR)=> R0;   MAXTERMS=> R2;   R0+R3;    REPEAT    ┆
0x11500…11580 UnusedSector ┆ IF R0@INTEGER= R5 THEN     BEGIN       R0-R3=> R5;       R4+1;       GOTO RETURN;                      "CB FOUND"     END;     ┆
0x11580…11600 UnusedSector ┆R0+SIZE(TERMCB);     R2-1;   UNTIL R2=0;                                         "ERROR, CB NOT FOUND" RETURN:   SV26=> R2;   SV┆
0x11600…11680 UnusedSector ┆27=> R0;   EXIT(R4); END "CHECK_CB1";   "-----------------------------------------------------------------------" "             ┆
0x11680…11700 UnusedSector ┆                                                          " "               PROCEDURES USED BY THE IFCOROUTINE                  ┆
0x11700…11780 UnusedSector ┆    " "                                                                       " "-----------------------------------------------┆
0x11780…11800 UnusedSector ┆------------------------"  EXPORT PROCEDURE LTUASSIGN  "THIS PROCEDURE CHECKS WHETHER THE LTU ALREADY IS ASSIGNED AND OK.      "┆
0x11800…11880 UnusedSector ┆ "IF OK AND NOT ASSIGNED, IT SETS THE LTU CONTROL BLOCK STATE TO ASSIGNED"         (R1;  "--                             COMPLET┆
0x11880…11900 UnusedSector ┆ION CODE            "         R4)  "LINK                           DEST                       "        :ERROR_DONE;             ┆
0x11900…11980 UnusedSector ┆ "0= ERROR                                                  "              "1= OK                                               ┆
0x11980…11a00 UnusedSector ┆                         DEST                       "        :0..1;"0= FOUND                                                  " ┆
0x11a00…11a80 UnusedSector ┆             "1= NOT FOUND                                              "  LABEL RETURN;  BEGIN   R6=> SV27;   R5=>R6;    REPEAT┆
0x11a80…11b00 UnusedSector ┆     R6+R1;     IF R6@INTEGER=R2 THEN     BEGIN       R6-R1=> R5;       GOTO RETURN;                      "CB FOUND"     END;   ┆
0x11b00…11b80 UnusedSector ┆  R6-R1;     R6@TERMCB.NETERMADDR => R6;   UNTIL R6=R5;   R4+1;  RETURN:   SV27=> R6;   EXIT(R4); END "FINDIDCB";  "************┆
0x11b80…11c00 UnusedSector ┆***********************************************************"  PROCEDURE FINDLCB  "THIS PROCEDURE SEARCHES THE CHAIN OF CONTROL B┆
0x11c00…11c80 UnusedSector ┆LOCKS FOR THE LAST CB    "         (R5;  "ADDRESS OF FIRST CB            ADDRESS OF LAST CB"         R4)  "LINK                 ┆
0x11c80…11d00 UnusedSector ┆          DEST                       "        :ERROR_DONE;              "0= FAULT                                               ┆
0x11d00…11d80 UnusedSector ┆   "              "1= DONE                                                   "  LABEL RETURN;  VAR   SV1:INTEGER;  BEGIN   R1=> ┆
0x11d80…11e00 UnusedSector ┆SV1;   R6=> SV21;   R0=> SV27;   1=> R0;   R5=> R6;   REPEAT     IF R6@TERMCB.NETERMADDR=> R1 = R5 THEN     BEGIN       R4+1;   ┆
0x11e00…11e80 UnusedSector ┆   BEGIN     LTNAS=> R1;     EXIT(R4,ERR);   END;   IF R5@LTUCB.NOLINAS <>0 THEN   BEGIN     LISAS=> R1;                        ┆
0x11e80…11f00 UnusedSector ┆ "AT LEAST ONE LINE ON THE LTU"     EXIT(R4,ERR);                       "IS STILL ASSIGNED"   END;   0=> R1=> R5@LTUCB.STATE;   ┆
0x11f00…11f80 UnusedSector ┆           "STATE= 0, LTU DEASSIGNED"   NOP;   R4=> R5;   RELS_INTRPT(R4);   R5=> R4;   SV25=> R5;   EXIT(R4,DONE);             ┆
0x11f80…12000 UnusedSector ┆           "LTU IS DEASSIGNED" END "LTUDEASSIGN";  "COMPLETION CODE:"                  "R1=14                 LTU WAS NOT ASSIGN┆
0x12000…12080 UnusedSector ┆ED"                  "R1=20                 ONE LINE IS STILL ASSIGNED"  "******************************************************┆
0x12080…12100 UnusedSector ┆*****************"  EXPORT PROCEDURE LINASSIGN  "THIS PROCEDURECHECKS WHETHER THE LTU IS OK AND IF THE LINE ALREADY IS " "ASSIGN┆
0x12100…12180 UnusedSector ┆ED. IF THE LTU IS OK AND THE LINE IS NOT ASSIGNED, THE LINE CON-" "TROL BLOCK STATE IS CHANGED TO ASSIGNED, AND THE LINE ATTRIBU┆
0x12180…12200 UnusedSector ┆TES ARE  " "READ INTO THE CONTROL BLOCK.                                          "         (R1;  "--                           ┆
0x12200…12280 UnusedSector ┆  COMPLETION CODE            "         R4)  "LINK                           DEST                       "        :ERROR_DONE;    ┆
0x12280…12300 UnusedSector ┆          "0= ERROR                                                  "              "1= OK                                      ┆
0x12300…12380 UnusedSector ┆               "  BEGIN   R2=> SV22;   R5=> SV25;   R6=> SV26;   ADDRESS(ASGD)=> R6;   R6@LINE_ASGN_DESC.ASGNLTLINO=> R5;   LINT┆
0x12380…12400 UnusedSector ┆      "  BEGIN   R2=> SV22;   R5=> SV25;   ADDRESS(LTU_CB)=> R5;   IF R5@LTUCB.STATUS <>0 THEN   BEGIN     LTUER=> R1;          ┆
0x12400…12480 UnusedSector ┆               "LTU ERROR, STATUS=1"     EXIT(R4,ERR);   END;   IF R5@LTUCB.STATE <>0 THEN   BEGIN     LTUAS=> R1;              ┆
0x12480…12500 UnusedSector ┆           "LTU WAS ALREADY ASSIGNED"     EXIT(R4,ERR);   END;   1=> R1=> R5@LTUCB.STATE;              "STATE=1, ASSIGNED"   0=>┆
0x12500…12580 UnusedSector ┆ R1=> R5@LTUCB.STATUS;             "STATUS=0, OK"                                         "LTU GETS ASSIGN DESC:"   SIZE(LTU_ASG┆
0x12580…12600 UnusedSector ┆N_DESC)=> R2;   ADDRESS(ASGD)=> R1;                   "START ADDRESS TO ASSIGN DESC"    REPEAT     R1+1;     R2-1;     R1@INTEGE┆
0x12600…12680 UnusedSector ┆R=> R5@INTEGER;     R5+1;   UNTIL R2=1;    ADDRESS(LTU_CB)=> R5;   R5@LTUCB.DEVADDR=>R2=> LTU_ADDR_PRIO;   R2 SHIFTRL 2 => R5@LT┆
0x12680…12700 UnusedSector ┆UCB.DEVADDR;   R2=> LTU_ADDR;   NOP;   R4=> R2;   SWITCH RESV_INTRPT(R4) TO     ERR:        BEGIN          INTRERR=> R1;        ┆
0x12700…12780 UnusedSector ┆                 "INTERRUPT NOT RESERVED"          EXIT(R2=> R4,ERR);        END;    DONE: NOP;   END "SWITCH RESV_INTRPT";    R┆
0x12780…12800 UnusedSector ┆2=> R4;   NOP;   SV22=> R2;   SV25=> R5;   SV26=> R6;   EXIT(R4,DONE); END "LTUASSIGN";  "COMPLETION CODE:"                  "R1┆
0x12800…12880 UnusedSector ┆=12                 ERROR IN LTU, STATUS=1          "                  "R1=13                 LTU ALREADY ASSIGNED            " ┆
0x12880…12900 UnusedSector ┆ "***********************************************************************"  EXPORT PROCEDURE LTUDEASSIGN  "THIS PROCEDURE DEASSI┆
0x12900…12980 UnusedSector ┆GNES THE LTU IF IT WAS ASSIGNED. IF JUST ONE LINE" "STILL IS ASSIGNED THE LTU CANNOT BE DEASSIGNED.                       "     ┆
0x12980…12a00 UnusedSector ┆    (R1;  "--                             COMPLETION CODE            "         R4)  "LINK                           DEST        ┆
0x12a00…12a80 UnusedSector ┆               "        :ERROR_DONE;              "0= ERROR                                                  "              "1= ┆
0x12a80…12b00 UnusedSector ┆OK                                                     "  BEGIN   R5=> SV25;   ADDRESS(LTU_CB)=> R5;   IF R5@LTUCB.STATE =0 THEN┆
0x12b00…12b80 UnusedSector ┆EDURE CONCREATE  "THIS PROCEDURE CHECKS WHETHER THE SPECIFIED CONNECTION ALREADY IS      " "CREATED. IF NOT AND IF THE LTU IS OK┆
0x12b80…12c00 UnusedSector ┆, IT CREATES A TERMINAL CONTROL    " "BLOCK AND RETURNS A CON_ID.                                            "         (R1;  "--┆
0x12c00…12c80 UnusedSector ┆                             COMPLETION CODE            "         R6; "--                              CON_ID                   ┆
0x12c80…12d00 UnusedSector ┆   "         R4)  "LINK                           DEST                       "        :0..2;"0= ERROR                           ┆
0x12d00…12d80 UnusedSector ┆                       "              "1= OK                                                     "              "2= TERM ALREADY┆
0x12d80…12e00 UnusedSector ┆B[R5]=> R5=> LINPTR;              "ADDRESS TO LINCB INTO R5"   IF R5@LINCB.STATUS=> R2=1 THEN   BEGIN     LTUER=> R1;     EXIT(R┆
0x12e00…12e80 UnusedSector ┆4,ERR);                       "ERROR IN LTU, STATUS=1"   END;   ADDRESS(LTU_CB)=> R5;   IF R5@LTUCB.STATE => R1 <> 1 THEN   BEGI┆
0x12e80…12f00 UnusedSector ┆N     LTNAS => R1;                       "LTU IS NOT ASSIGNED"     EXIT(R4,ERR);   END;   LINPTR => R5;   IF R5@LINCB.STATE=> R2┆
0x12f00…12f80 UnusedSector ┆ =1 THEN   BEGIN     LINAS=> R1;                         "LINE ALREADY ASSIGNED"     EXIT(R4,ERR);   END;                       ┆
0x12f80…13000 UnusedSector ┆                  "LINE GETS ASSIGN DESCRIPTION:"   SIZE(LINE_ASGN_DESC)=> R2;   ADDRESS(ASGD)=>R1;                    "START AD┆
0x13000…13080 UnusedSector ┆DRESS TO ASSIGN LINE"                                         "DESCRIPTION"   REPEAT     R1+1;     R2-1;     R1@INTEGER=> R5@INT┆
0x13080…13100 UnusedSector ┆EGER;     R5+1;   UNTIL R2=1;    ADDRESS(LTU_CB)=> R6;   INC(R6@LTUCB.NOLINAS);   LINPTR=> R5;   R6=> R5@LINCB.LTUCBADDR;   1=> ┆
0x13100…13180 UnusedSector ┆R2=> R5@LINCB.STATE;   R5@LINCB.LTLINO=> R6;   NOP;   SV22=> R2;   SV25=> R5;   SV26=> R6;   EXIT(R4,DONE); END "LINASSIGN";  "C┆
0x13180…13200 UnusedSector ┆OMPLETION CODE:"                  "R1=12                 ERROR IN LTU, STATUS=1"                  "R1=21                 LINE AL┆
0x13200…13280 UnusedSector ┆READY ASSIGNED"  "***********************************************************************"  EXPORT PROCEDURE LINDEASSIGN  "THIS ┆
0x13280…13300 UnusedSector ┆PROCEDURE SETS THE LINE CONTROL BLOCK STATE TO DEASSIGNED,AND DE-" "CREMENTS THE LTUCB, NUMBER OF LINES ASSIGNED.               ┆
0x13300…13380 UnusedSector ┆          "         (R1;  "--                             COMPLETION CODE            "         R2;  "LTU LINE NUMBER            ┆
0x13380…13400 UnusedSector ┆    KEPT                       "         R4)  "LINK                           DEST                       "        :ERROR_DONE;  ┆
0x13400…13480 UnusedSector ┆            "0= ERROR                                                  "              "1= OK                                    ┆
0x13480…13500 UnusedSector ┆                 "  BEGIN   R5=> SV25;   R6=> SV26;   R2=> R6;   LINTB[R6]=> R5;                       "ADDRESS TO LINCB INTO R5┆
0x13500…13580 UnusedSector ┆"   IF R5@LINCB.STATE =0 THEN   BEGIN     LNOAS=> R1;     EXIT(R4,ERR);                       "LINE WAS NOT ASSIGNED"   END;   I┆
0x13580…13600 UnusedSector ┆F R5@LINCB.FITERADDR <> 0 THEN   BEGIN     TERAS=> R1;     EXIT(R4,ERR);                       "AT LEAST ONE CREATED TERMINAL"  ┆
0x13600…13680 UnusedSector ┆ END;                                  "CONTROL BLOCK ON THIS LINE"   0=> R6=> R5@LINCB.STATE;              "LINCB IS DEASSIGNED┆
0x13680…13700 UnusedSector ┆, STATE=0"   ADDRESS(LTU_CB)=> R5;   DEC(R5@LTUCB.NOLINAS);   NOP;   SV25=> R5;   SV26=> R6;   EXIT(R4,DONE); END "LINDEASSIGN";┆
0x13700…13780 UnusedSector ┆  "COMPLETION CODE:"                  "R1= 22                LINE WAS NOT ASSIGNED           "                  "R1= 28         ┆
0x13780…13800 UnusedSector ┆       AT LEAST ONE TERMCB ON THIS LINE"  "***********************************************************************"  EXPORT PROC┆
0x13800…13880 UnusedSector ┆RESS(CRTT)=> R6;   R6@CON_CR_ATT.CRLTLINO=> R4;          "LTU LINE NUMBER INTO R2"   LINTB[R4]=> R5=> LINPTR;   IF R5@LINCB.STAT┆
0x13880…13900 UnusedSector ┆E =0 THEN   BEGIN     LNOAS=> R1;                         "LINE IS NOT ASSIGNED"     EXIT(SV24);   END;   IF R5@LINCB.STATUS=> R┆
0x13900…13980 UnusedSector ┆1=1 THEN   BEGIN     LTUER=> R1;     EXIT(SV24);                         "ERROR IN LTU, STATUS=1"   END;   IF R5@LINCB.FITERADDR┆
0x13980…13a00 UnusedSector ┆=> R5 <>0 THEN   BEGIN     2=> R1;                             "AT LEAST ONE CONNECTION ON THAT"                                ┆
0x13a00…13a80 UnusedSector ┆         "LINE IS CREATED"     R6@CON_CR_ATT.CRADDR=> R2;     SWITCH FINDIDCB(R1,R2,R5,R4) TO       0:       BEGIN              ┆
0x13a80…13b00 UnusedSector ┆               "CONNECTION ALREADY CREATED"         R5@TERMCB.CONID=> R6;           "CON_ID=> R6"         INC(R5@TERMCB.FIOPNO);┆
0x13b00…13b80 UnusedSector ┆          "NUMBER OF FILES OPEN+1"         SV22=> R2;         EXIT(SV24=> R4+2);       END;       1: NOP;                       ┆
0x13b80…13c00 UnusedSector ┆    "CONNECTION NOT CREATED"     END;   END;   STATENO=> R3;   0=> R5;   SWITCH CHECK_CB1(R3,R5,R4) TO     ERR:       BEGIN     ┆
0x13c00…13c80 UnusedSector ┆    NOCBF=> R1;         EXIT(SV24);                     "NO FREE CB FOUND"       END;    DONE: NOP;                           "F┆
0x13c80…13d00 UnusedSector ┆REE CB FOUND, ADDR IN R5"   END;    R5=> CONPTR;                          "CON GETS CREATE ATTRIBUTES:"   SIZE(CON_CR_ATT)=> R2;┆
0x13d00…13d80 UnusedSector ┆   ADDRESS(CRTT)=> R1;    REPEAT     R1+1;     R5+1;     R2-1;     R1@INTEGER=> R5@INTEGER;   UNTIL R2=1;   1=> (R5+1)@INTEGER; ┆
0x13d80…13e00 UnusedSector ┆                  "NO OF FILES OPEN=1"   LINPTR=> R6;   CONPTR=> R5;   IF R6@LINCB.FITERADDR=> R4=0 THEN   BEGIN                ┆
0x13e00…13e80 UnusedSector ┆                 "FIRST TERM ADDR IN LINCB IS 0"     R5=> R6@LINCB.FITERADDR;            "ADDR TO FIRST TERMCB INTO LINCB"     R┆
0x13e80…13f00 UnusedSector ┆5=> R5@TERMCB.NETERMADDR;          "ADDR TO NEXT CB INTO CURRENT CB"   END   ELSE   BEGIN     R4=> R5;                          ┆
0x13f00…13f80 UnusedSector ┆  "FIRST TERMINAL ADDRESS=> R5"     SWITCH FINDLCB(R5,R4) TO       ERR:         BEGIN           CBCER=> R1;           EXIT(SV24)┆
0x13f80…14000 UnusedSector ┆;                   "ERROR, LAST CB NOT FOUND"         END;      DONE: NOP;                         "OK, CB FOUND"     END;     ┆
0x14000…14080 UnusedSector ┆ CONPTR=> R6;     R5@TERMCB.NETERMADDR=> R4=> R6@TERMCB.NETERMADDR;     R6=> R5@TERMCB.NETERMADDR;           "NEW CB INTO CHAIN"┆
0x14080…14100 UnusedSector ┆   END;   LINPTR=> R7;   CONPTR=> R6;   R7@LINCB.PROT=> R4;                   "LINCB PROTOCOL=> R4"   SEMAR[R4]=> R2=> R6@TERMCB┆
0x14100…14180 UnusedSector ┆.PROSEMADDR;"PROTOCOL SEMAPHORE ADDR INTO CB"   R7=> R6@TERMCB.LINCBADDR;             "LINCB ADDR INTO TERMCB"   1=> R4=> R6@TER┆
0x14180…14200 UnusedSector ┆MCB.STATE;             "STATE=1, CREATED"   R4=> R6@TERMCB.FIOPNO;                "NO OF LINES OPEN =1"    WHILE TERMTB[R4] <>0 ┆
0x14200…14280 UnusedSector ┆DO R4+1;   R4=> R6@TERMCB.CONID;                 "CON_ID INTO CB"   R6=> TERMTB[R4];                      "ADDRESS TO TERMCB INT┆
0x14280…14300 UnusedSector ┆O TERMTB"   XFER_ADDR[R4] => R2=> R6@TERMCB.XFERBUF;   R4=> R6;                              "CON_ID=R4=> R6"   NOP;    SV22=> R┆
0x14300…14380 UnusedSector ┆2;   SV25=> R5;   SV7=> R7;   EXIT(SV24=> R4+1); END "CONCREATE";  "COMPLETION CODE:"                  "R1=11                 NO┆
0x14380…14400 UnusedSector ┆ FREE CB FOUND                "                  "R1=12                 ERROR IN LTU, STATUS=1          "                  "R1=1┆
0x14400…14480 UnusedSector ┆9                 ERROR IN CB CHAIN               "                  "R1=22                 LINE IS NOT ASSIGNED            "  "┆
0x14480…14500 UnusedSector ┆ CREATED                                   "  VAR   SV7:INTEGER;  BEGIN   R2=> SV22;   R4=> SV24;   R5=> SV25;   R7=> SV7;   ADD┆
0x14500…14580 UnusedSector ┆ TNOCR=> R1;     EXIT(SV24);                         "TERMCB WAS NOT CREATED"   END;   DEC(R6@TERMCB.FIOPNO);                "NO┆
0x14580…14600 UnusedSector ┆ OF FILES OPEN-1"   IF R6@TERMCB.FIOPNO <> 0 THEN   BEGIN     EXIT(SV24=> R4+2);                  "MORE THAN ONE FILE WAS OPEN" ┆
0x14600…14680 UnusedSector ┆  END;   0=> R2=> TERMTB[R4];                  "0 INTO TERMTABLE"   R2=> R6@TERMCB.STATE;                 "CON STATE=0,DISMANTLE┆
0x14680…14700 UnusedSector ┆D"   R6@TERMCB.LINCBADDR=> R4;   R4@LINCB.FITERADDR=> R1;              "FIRST TERM ADDR INTO R1"   IF R1=CONPTR=> R6 THEN       ┆
0x14700…14780 UnusedSector ┆         "FIRST TERM ADDRESS IN LINCB"   BEGIN                                 "IS THE DISMANTLED TERMCB"     IF R6@TERMCB.NETER┆
0x14780…14800 UnusedSector ┆MADDR=> R1=R6 THEN"ONLY ONE TERM ON THIS LINE"     BEGIN       R2=> R4@LINCB.FITERADDR;          "FIRST TERM ADDR IN LINCB=0"   ┆
0x14800…14880 UnusedSector ┆    GOTO CONDISMOK;     END;     R6@TERMCB.NETERMADDR=> R2=> R4@LINCB.FITERADDR;                                         "NEXT T┆
0x14880…14900 UnusedSector ┆ERM ADDR INTO FIRST TERM"   END;                                  "ADDR IN LINCB"   R6=> R5=> R2;   NCBADNO=> R1;   SWITCH FINDI┆
0x14900…14980 UnusedSector ┆DCB(R1,R2,R5,R4) TO     1:     BEGIN       CBCER=> R1;       EXIT(SV24);                       "ERROR IN CB CHAIN"     END;     ┆
0x14980…14a00 UnusedSector ┆0: NOP;                             "CB FOUND"   END;    R6@TERMCB.NETERMADDR=> R2=> R5@TERMCB.NETERMADDR;                      ┆
0x14a00…14a80 UnusedSector ┆                   "CB IS DISMANTLED AND REMOVED"                                         "FROM CHAIN"  CONDISMOK:   NOP;    SV2┆
0x14a80…14b00 UnusedSector ┆2=> R2;   SV25=> R5;   SV6=> R6;   EXIT(SV24=> R4+1); END "CONDISMANTLE";  "COMPLETION CODE:"                  "R1=19           ┆
0x14b00…14b80 UnusedSector ┆      ERROR IN CB CHAIN               "                  "R1=32                 TERMINAL WAS NOT CREATED        "  "************┆
0x14b80…14c00 UnusedSector ┆***********************************************************"  EXPORT PROCEDURE CREATEBOOT  "THIS PROCEDURE CHECKS WHETHER THE LT┆
0x14c00…14c80 UnusedSector ┆U IS ASSIGNED, AND THAT NO LINES   " "ARE ASSIGNED. THE RETURN IS A BOOT FILE ID.                            "         (R1;  "--┆
0x14c80…14d00 UnusedSector ┆                             COMPLETION CODE            "         R6;  "--                             BOOT FILE ID             ┆
0x14d00…14d80 UnusedSector ┆  "         R4)  "LINK                           DEST                       "        :ERROR_DONE;              "0= ERROR        ┆
0x14d80…14e00 UnusedSector ┆                                          "              "1= OK                                                     "  BEGIN   R┆
0x14e00…14e80 UnusedSector ┆5=> SV25;   ADDRESS(LTU_CB)=> R5;   IF R5@LTUCB.STATE = 0 THEN   BEGIN     LTNAS=> R1;     EXIT(R4,ERR);                       "┆
0x14e80…14f00 UnusedSector ┆***********************************************************************"  EXPORT PROCEDURE CONDISMANTLE  "THIS PROCEDURE REMOVES┆
0x14f00…14f80 UnusedSector ┆ THE CONTROL BLOCK FOR THE SPECIFIED CONNECTION  " "FROM THE CHAIN OF CB`S.                                                "    ┆
0x14f80…15000 UnusedSector ┆     (R1;  "--                             COMPLETION  CODE           "         R2;  "CON_ID                         KEPT       ┆
0x15000…15080 UnusedSector ┆                "         R4)  "LINK                           DEST                       "        :0..2;"0= ERROR              ┆
0x15080…15100 UnusedSector ┆                                    "              "1= OK                                                     "              "2=┆
0x15100…15180 UnusedSector ┆ TERM STILL CREATED, COUNT-1                            "  LABEL CONDISMOK;  VAR   SV6:INTEGER;  BEGIN   R2=> SV22;   R4=> SV24;┆
0x15180…15200 UnusedSector ┆   R5=> SV25;   R6=> SV6;   R2=> R4;   TERMTB[R4]=> R6=> CONPTR;             "POINTER TO TERMCB=> R6"   IF R6=0 THEN   BEGIN    ┆
0x15200…15280 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x6…]
0x15580…15600 UnusedSector ┆Z Z                                                                         Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x15600…15680 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x2…]
0x15780…15800 UnusedSector ┆  BFD   M              ░ H  ░░ |   ░     ░     ░     ░     ░     ░BM   ░     ░     ░     ░     ░  LT ░GRAF ░     ░     ░     ░  ┆
0x15800…15880 UnusedSector ┆   ░U_DR ░ER   ░     ░     ░     ░LTU_ ░.SS  ░     ░     ░     ░  CB ░ROC. ░     ░     ░     ░     ░     ░     ░     ░     ░    ┆
0x15880…15900 UnusedSector ┆THE LTU IS NOT ASSIGNED"   END   ELSE   BEGIN     IF R5@LTUCB.NOLINAS <>0 THEN     BEGIN       LISAS=> R1;       EXIT(R4,ERR);  ┆
0x15900…15980 UnusedSector ┆                   "AT LEAST ONE LINE IS ASSIGNED"     END     ELSE     BEGIN       ADDRESS(CRTT)=> R6;       R6@CON_CR_ATT.CRLT┆
0x15980…15a00 UnusedSector ┆LINO=> R5;       NCB=> R6-R5;                      "NCB-LTU LINE NO=BOOT ID=>R6"       LINTB[R5]=> R1=> LINTB[R6];       1=> R1@┆
0x15a00…15a80 UnusedSector ┆INTEGER;                   "PROTOCOL INDEX=1"       SV25=> R5;       EXIT(R4,DONE);     END;   END; END "CREATEBOOT";  "COMPLETI┆
0x15a80…15b00 UnusedSector ┆ON CODE:"                  "R1=14                 LTU NOT ASSIGNED                "                  "R1=21                 AT L┆
0x15b00…15b80 UnusedSector ┆EAST ONE LINE IS ASSIGNED   "  "***********************************************************************"  ENDMODULE Z Z Z Z Z Z ┆
0x15b80…15c00 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x6…]
0x15f00…15f80 UnusedSector ┆                                            "              "2= MORE                                                   "   IMPORT┆
0x15f80…16000 UnusedSector ┆ PROCEDURE GETBYTE  "THIS PROCEDURE CHECKS THAT THE CURRENT XFER LIST ELEMENT CONTAINS A    " "REFERENCE TO AN OUTPUT BUFFER. IF┆
0x16000…16080 UnusedSector ┆ NOT RETURN IS MADE TO NONE. IF THE   " "BUFFER IS EMPTY, THE NEXT XFER ELEMENT IS FETCHED. THE XFER LIST       " "ELEMENT IS PR┆
0x16080…16100 UnusedSector ┆OCESSED AS THE PREVIOUS. IF THE BUFFER IS NON EMPTY, THE  " "NEXT BYTE IS DELIVERED AND RETURN IS MADE TO MORE.                 ┆
0x16100…16180 UnusedSector ┆    "         (R3;  "--                             BYTE                       "         R4)  "LINK                           DE┆
0x16180…16200 UnusedSector ┆ST                       "        :ERROR_DONE;              "0= NONE                                                   "        ┆
0x16200…16280 UnusedSector ┆      "1= MORE                                                   "  IMPORT PROCEDURE GETWORD "SIMILAR TO GET BYTE, EXCEPT THE NE┆
0x16280…16300 UnusedSector ┆ ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░┆
0x16300…16380 UnusedSector ┆     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░                  ░░░                             ┆
0x16380…16400 UnusedSector ┆SUBMODULE DRIVER_PROCEDURES; " "  PROJECT:               X " "  MODULE NAME:           DRIVER PROCEDURES "  MODULE ID NMB:      ┆
0x16400…16480 UnusedSector ┆   0010 "  MODULE VERSION:        0001 "  MODULE TYPE:           SUBMODULE "  MODULE FILES:          X "  MERGE FILES:          ┆
0x16480…16500 UnusedSector ┆ LTU_DRIV_PREFX.C "                         @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S "                                           ┆
0x16500…16580 UnusedSector ┆     *MONITORNAMES.S "                                                *COMONPARAMS.S "                                          ┆
0x16580…16600 UnusedSector ┆      *DRIVERPARAMS.S " "  SPECIFICATIONS:        X "  AUTHOR/DATE:           OH 81:06:17 " "  DELIVERABLE:           YES "  SOU┆
0x16600…16680 UnusedSector ┆RCE LANGUAGE:       SWELL "  COMPILE COMPUTER:      CR80 "  TARGET COMPUTER:       CR80 "  OPERATING SYSTEM:      AMOS " "------┆
0x16680…16700 UnusedSector ┆-------------------------------------------------------------- " "  CHANGE RECORD " "  VERSION    AUTHOR/DATE   DESCRIPTION OF C┆
0x16700…16780 UnusedSector ┆HANGE "  -------    -----------   --------------------- " "-------------------------------------------------------------------- ┆
0x16780…16800 UnusedSector ┆"   %SOURCE @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.D*MONITORNAMES.S %SOURCE @**GENS.D*SWELLPREFIX┆
0x16800…16880 UnusedSector ┆.D*COMONPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.D*DRIVERPARAMS.S  %SOURCE LTU_DRIV_PREFX.C  %PRINT  IMPORT PROCEDURE NEXT_XFER_EL┆
0x16880…16900 UnusedSector ┆EM    "THE NEXT XFER ELEMENT IF ANY IS FETCHED INTO CXFER.                  "         (R4)  "LINK                           DEST┆
0x16900…16980 UnusedSector ┆                       "        :ERROR_DONE;              "0= NONE                                                   "          ┆
0x16980…16a00 UnusedSector ┆    "1= OK                                                     "   IMPORT PROCEDURE PUTBYTE  "THIS PROCEDURE CHECKS THAT THE CUR┆
0x16a00…16a80 UnusedSector ┆RENT XFER LIST ELEMENT CONTAINS A    " "REFERENCE TO A NON EMPTY INPUT BUFFER. IF NOT, RETURN IS MADE TO ERROR." "PUTS THE BYTE ┆
0x16a80…16b00 UnusedSector ┆AT THE NEXT BYTE POSITION IN THE INPUT BUFFER. IF NOT    " "ROOM FOR ANY MORE BYTES, RETURN IS MADE TO LAST.                    ┆
0x16b00…16b80 UnusedSector ┆   "         (R3;  "BYTE                           KEPT                       "         R4)  "LINK                           DES┆
0x16b80…16c00 UnusedSector ┆T                       "        :0..2;"0= ERROR                                                  "              "1= LAST       ┆
0x16c00…16c80 UnusedSector ┆_ELEM;   LINTB:LINETABLE;   TERMTB:TERMTABLE;   BK_BUF:BREAK_BUF;   SEM_OPIF:SEMAPHORE;   UNKNOWN,   BUSY,   FROM:BREAK_ANSWER; ┆
0x16c80…16d00 UnusedSector ┆XT WORD IF ANY IS FETCHED            "         (R3;  "--                             WORD                       "         R4)  "┆
0x16d00…16d80 UnusedSector ┆LINK                           DEST                       "        :ERROR_DONE;              "0= NONE                           ┆
0x16d80…16e00 UnusedSector ┆                        "              "1= OK                                                     "   IMPORT PROCEDURE PUTWORD "┆
0x16e00…16e80 UnusedSector ┆SIMILAR TO PUTBYTE, EXCEPT A WORD IS PUT INTO BUFFER                   "        (R3;  "WORD                           KEPT      ┆
0x16e80…16f00 UnusedSector ┆                  "        R4)  "LINK                           DEST                        "       :0..2;"0= ERROR             ┆
0x16f00…16f80 UnusedSector ┆                                      "             "1= LAST                                                    "             "2┆
0x16f80…17000 UnusedSector ┆= MORE                                                    "  IMPORT PROCEDURE PROCESS_BREAK "THIS PROCEDURE RECIEVES THE BREAK C┆
0x17000…17080 UnusedSector ┆OMMAND FROM A TERMINAL. IF THE LINE " "IS IDLE A (TO:) IS WRITTEN TO THE TERMINAL, IF THE LINE IS BUSY THE    " "CURRENT COMMAND┆
0x17080…17100 UnusedSector ┆ IS SAVED BEFORE THE WRITING TO THE TERMINAL.           "          (R7;  "REF(LINCB)                  KEPT                      ┆
0x17100…17180 UnusedSector ┆   "          R4); "LINK                        DEST                         "  " IMPORT PROCEDURE DEQUEUE_OPERATION " "THIS PRO┆
0x17180…17200 UnusedSector ┆CEDURE DEQUEUES THE TRANSFER QUEUE. IF ANY QUEUED OPERATION    " "THE FIRST OPERATION IS WRITTEN INTO THE LINCB AND THE STATE IS┆
0x17200…17280 UnusedSector ┆ SET     " "ACCORDING TO THR OPERATION.                                            "  "         (R0;  "OPERATION PCB INDEX      ┆
0x17280…17300 UnusedSector ┆   KEPT                         "          R7;  "REF(LINCB)                  KEPT                         "          R6)  "LINK ┆
0x17300…17380 UnusedSector ┆                       DEST                         "         :ERROR_DONE;               "0= NOT FOUND                          ┆
0x17380…17400 UnusedSector ┆                   "               "1= FOUND                                                 " " IMPORT PROCEDURE FIND_INT_OP" "┆
0x17400…17480 UnusedSector ┆THIS PROCEDURE CHEARCHES THE INTERNAL OPERATION BUFFER FOR AN EMPTY    " "OPERATION. WHEN FOUND IT DELIVERES A REFERENCE TO THIS┆
0x17480…17500 UnusedSector ┆ OPERATION AS    " "AN OUTPUT PARAMETER.                                                   " "        (R6;  "--                 ┆
0x17500…17580 UnusedSector ┆            REF TO INT OP              "         R4)  "LINK                           DEST                       "        :ERROR┆
0x17580…17600 UnusedSector ┆_DONE;"              "0= NOT FOUND                                              "              "1= FOUND                        ┆
0x17600…17680 UnusedSector ┆                          "   IMPORT PROCEDURE GENERATE_ANSWER_OPERATION "THIS PROCEDURE GENERATES AN ANSWER TO THE APPLICATION ┆
0x17680…17700 UnusedSector ┆AND SENDS IT TO  " "THE ANSWER COROUTINE WHICH RETURNS THE ANSWER TO THRXE APPLICATION.    "         (R0;  "COMPLETION CODE     ┆
0x17700…17780 UnusedSector ┆           DEST                       "         R1;  "RESULT                         DEST                       "         R2;  "┆
0x17780…17800 UnusedSector ┆BYTECOUNT                      KEPT                       "         R4;  "OPERATION ADDRESS              KEPT                   ┆
0x17800…17880 UnusedSector ┆    "         R6); "LINK                           DEST                       "   IMPORT VAR   LTU_COM:LTU_COM_TABLE;   I_F_ADDR┆
0x17880…17900 UnusedSector ┆:I_F_TAB_ADDR;   I_F_TAB:I_F_TABLE;   LTU_CB:LTUCB;   MONVAR:COMON_VAR;   LTU_ADDR:INTEGER;   LTU_ADDR_PRIO:INTEGER;   CFER:XFER┆
0x17900…17980 UnusedSector ┆        KEPT                      "         R5;   "ADDRESS OF LTU                KEPT                      "         R4);  "LINK┆
0x17980…17a00 UnusedSector ┆                          DEST                      "  VAR   SV5:INTEGER;  BEGIN   R5=> SV5;   R5+SBPCMD;   WIO(R1,R5);   SV5=> ┆
0x17a00…17a80 UnusedSector ┆R5;   EXIT(R4); END "SET_POINTER";  "----------------------------------------------------------------------"   PROCEDURE READ_WO┆
0x17a80…17b00 UnusedSector ┆RD "THIS PROCEDURE READS ONE WORD FROM THE SPECIFIED ADDRESS IN THE LTU.  "         (R1;   "POINTER                       KEPT  ┆
0x17b00…17b80 UnusedSector ┆                    "         R3;   "--                            WORD                      "         R4);  "LINK              ┆
0x17b80…17c00 UnusedSector ┆            DEST                      "  VAR   SV4,SV5:INTEGER;  BEGIN   R4=> SV4;   R5=> SV5;   LTU_ADDR=> R5;                 ┆
0x17c00…17c80 UnusedSector ┆         "LTU ADDR INTO R5"   SET_POINTER(R1,R5,R4);                  "SET POINTER IN LTU RAM"   R5=> R4+RDCMD;   RIO(R3,R4);   ┆
0x17c80…17d00 UnusedSector ┆SV5=> R5;   EXIT(SV4); END "READ_WORD";  "----------------------------------------------------------------------" "PAGE    EXPOR┆
0x17d00…17d80 UnusedSector ┆T PROCEDURE READ_WORDS "THIS PROCEDURE READS WORDS FROM THE LTU RAM STARTING AT THE SPECIFIED " "ADDRESS, TO THE SPECIFIED BUFFE┆
0x17d80…17e00 UnusedSector ┆R.                                     "         (R1;   "POINTER                       KEPT                      "         R2;  ┆
0x17e00…17e80 UnusedSector ┆ "WORD COUNT                    DEST                      "         R5;   "REF(BUFFER)                   KEPT                   ┆
0x17e80…17f00 UnusedSector ┆   "         R4);  "LINK                          DEST                      "  VAR   SV1,SV4,SV5:INTEGER;  BEGIN   R1=> SV1;   R┆
0x17f00…17f80 UnusedSector ┆4=> SV4;   R5=> SV5;   LTU_ADDR=> R5;                            "LTU ADDR INTO R5"   SET_POINTER(R1,R5,R4);   R5=> R4+RDICMD;  ┆
0x17f80…18000 UnusedSector ┆ SV5=> R5;    REPEAT     RIO(R5@INTEGER,R4);     R5+1;     R2-1;   UNTIL R2=0;   SV1=> R1;   SV5=> R5;   EXIT(SV4); END "READ_WO┆
0x18000…18080 UnusedSector ┆RDS";  "PAGE   "----------------------------------------------------------------------"  PROCEDURE WRITE_BYTE "THIS PROCEDURE WR┆
0x18080…18100 UnusedSector ┆ITES ONE BYTE TO THE SPECIFIED ADDRESS IN THE LTU.   "         (R1;   "POINTER                        DEST                     "┆
0x18100…18180 UnusedSector ┆         R5;   "WORD                           KEPT                     "         R4);  "LINK                           DEST    ┆
0x18180…18200 UnusedSector ┆                 "  VAR   SV4,SV5:INTEGER;  BEGIN   R4=> SV4;   R5=> SV5;   LTU_ADDR=> R5;   SET_POINTER(R1,R5,R4);   R5=> R4+WR┆
0x18200…18280 UnusedSector ┆LCMD;   WIO(SV5=> R5,R4);   SV5=> R5;   EXIT(SV4); END "WRITE_BYTE";  "---------------------------------------------------------┆
0x18280…18300 UnusedSector ┆-------------"   PROCEDURE WRITE_WORD "THIS PROCEDURE WRITES ONE WORD TO THE SPECIFIED ADDRESS IN THE LTU.   "         (R1;   "P┆
0x18300…18380 UnusedSector ┆OINTER                       KEPT                      "         R5;   "WORD                          KEPT                      ┆
0x18380…18400 UnusedSector ┆  SV20,SV21,SV22,   SV23,SV24,SV25,   SV26,SV27:INTEGER;   OP_EXT_INTRPT:EXT_OP;  VAR   LOOP_CNT:INTEGER;   INTRPT_CNT:INTEGER; ┆
0x18400…18480 UnusedSector ┆  BTCNT:INTEGER;   PRC_NAME:ARRAY[0..3] OF INTEGER;   INTRPT_RESV:INTEGER;   LTU_STATUS:INTEGER;   LTU_BTCNT:INTEGER;   TERMDIS:┆
0x18480…18500 UnusedSector ┆ARRAY[1..30] OF BYTE;  CONST   AMON=ADDRESS(MONVAR);   CXFER=ADDRESS(CFER);  INIT   INTRPT_CNT=0;   PRC_NAME[3]=CRLF;   TERMDIS ┆
0x18500…18580 UnusedSector ┆= 'TERMINAL IS DISCONNECTED !',CR,LF;  " PAGE   "----------------------------------------------------------------------"   PROCE┆
0x18580…18600 UnusedSector ┆DURE SET_POINTER "THIS PROCEDURE SETS THE RAM POINTER IN THE LTU.                       "         (R1;   "POINTER               ┆
0x18600…18680 UnusedSector ┆CB)                    KEPT                      "         R4);  "LINK                          DEST                      "  VAR┆
0x18680…18700 UnusedSector ┆   SV1,SV4,SV5:INTEGER;  BEGIN   R1=> SV1;   R4=> SV4;   R5=> SV5;   R7@LINCB.CH_I_F_ADDR=> R1;   0=> R5;   WRITE_BYTE(R1,R5,R4)┆
0x18700…18780 UnusedSector ┆;   SV1=> R1;   SV5=> R5;   EXIT(SV4); END "CLEAR_TS1";  "----------------------------------------------------------------------┆
0x18780…18800 UnusedSector ┆"   PROCEDURE CLEAR_RS1 "THIS PROCEDURE WRITES A STATUS BYTE TO THE LTU WHICH CLEARS THE RS1-  " "STATUS BIT.                   ┆
0x18800…18880 UnusedSector ┆                                        "         (R7;   "REF(LINCB)                    KEPT                      "         R4);┆
0x18880…18900 UnusedSector ┆  "LINK                          DEST                      "  VAR   SV1,SV4,SV5:INTEGER;  BEGIN   R1=> SV1;   R4=> SV4;   R5=> S┆
0x18900…18980 UnusedSector ┆V5;   R7@LINCB.CH_I_F_ADDR=> R1+8;             "ADDRESS TO RS1 INTO R1"   0=> R5;   WRITE_BYTE(R1,R5,R4);   SV1=> R1;   SV5=> R5┆
0x18980…18a00 UnusedSector ┆;   EXIT(SV4); END "CLEAR_RS1"; "----------------------------------------------------------------------" "PAGE    PROCEDURE CLEA┆
0x18a00…18a80 UnusedSector ┆R_TS2 "THIS PROCEDURE WRITES THE POINTER TO THE LTU BUFFER INTO BYTE 6 AND 7 " "IN THE CHANNEL I_F-TABLE AND WRITES A STATUS BYT┆
0x18a80…18b00 UnusedSector ┆E TO THIS TABLE WHICH " "CLEARS THE TS2-STATUS BYTE.                                           "         (R7;   "REF(LINCB)     ┆
0x18b00…18b80 UnusedSector ┆               KEPT                      "         R4);  "LINK                          DEST                      "  VAR   SV1,S┆
0x18b80…18c00 UnusedSector ┆V3,SV4,SV5:INTEGER;  BEGIN   R1=> SV1;   R3=> SV3;   R4=> SV4;   R5=> SV5;   R7@LINCB.CH_I_F_ADDR => R1+4;   REPEAT     READ_WOR┆
0x18c00…18c80 UnusedSector ┆D(R1,R3,R4);   UNTIL R3[BN_SET];   R7@LINCB.CH_I_F_ADDR=> R1+6;            "ADDRESS TO FULL BUF POINTER"   ADDRESS(I_F_TAB)=> R5┆
0x18c80…18d00 UnusedSector ┆;   R5@I_F_TABLE.TX_BUF_ADDR=> R5;          "BUF ADDRESS INTO R5"   WRITE_WORD(R1,R5,R4);   R1-2;                               ┆
0x18d00…18d80 UnusedSector ┆    "ADDRESS TO TS2"   0=> R5;   WRITE_BYTE(R1,R5,R4);   SV1=> R1;   SV3=> R3;   SV5=> R5;   EXIT(SV4); END "CLEAR_TS2";  "-----┆
0x18d80…18e00 UnusedSector ┆"         R4);  "LINK                          DEST                      "  VAR   SV4,SV5:INTEGER;  BEGIN   R4=> SV4;   R5=> SV5┆
0x18e00…18e80 UnusedSector ┆;   LTU_ADDR=> R5;                          "LTU ADDR INTO R5"   SET_POINTER(R1,R5,R4);   R5=> R4+WRCMD;   WIO(SV5=>R5,R4);   EX┆
0x18e80…18f00 UnusedSector ┆IT(SV4); END "WRITE_WORD";  "----------------------------------------------------------------------" "PAGE     PROCEDURE WRITE_W┆
0x18f00…18f80 UnusedSector ┆ORDS "THIS PROCEDURE WRITES WORDS TO THE SPECIFIED ADDRESS IN THE LTU FROM  " "THE SPECIFIED ADDRESS.                           ┆
0x18f80…19000 UnusedSector ┆                     "         (R1;   "POINTER                       KEPT                      "         R2;   "WORD COUNT      ┆
0x19000…19080 UnusedSector ┆              DEST                      "         R5;   "REF(BUFFER)                   KEPT                      "         R4); ┆
0x19080…19100 UnusedSector ┆ "LINK                          DEST                      "  VAR   SV1,SV4,SV5:INTEGER;  BEGIN   R1=> SV1;   R4=> SV4;   R5=> SV┆
0x19100…19180 UnusedSector ┆5;   LTU_ADDR=> R5;                       "LTU ADDR INTO R5"   SET_POINTER(R1,R5,R4);   R5=> R4+WRICMD;   SV5=> R5;    REPEAT   ┆
0x19180…19200 UnusedSector ┆  WIO(R5@INTEGER,R4);     R5+1;     R2-1;   UNTIL R2=0;   SV1=> R1;   SV5=> R5;   EXIT(SV4); END "WRITE_WORDS"; "---------------┆
0x19200…19280 UnusedSector ┆-------------------------------------------------------"  "PAGE    PROCEDURE CLEAR_TS1 "THIS PROCEDURE WRITES A STATUS BYTE TO T┆
0x19280…19300 UnusedSector ┆HE LTU WHICH CLEARS THE TS1-  " "STATUS BIT.                                                           "         (R7;   "REF(LIN┆
0x19300…19380 UnusedSector ┆R;     INCD(R4,R5);   UNTIL R2=SIZE(XFER_ELEM);   SV2=> R2;   SV5=> R5;   EXIT(SV4); END "RESTORE_XFER_ELEM";  "----------------┆
0x19380…19400 UnusedSector ┆------------------------------------------------------"  PROCEDURE WRITE_BTCNT_STATUS "THIS PROCEDURE WRITES THE TX BYTE COUNT A┆
0x19400…19480 UnusedSector ┆ND THE TX STATUS BYTE.       "         (R0;    "BYTE COUNT                  KEPT                      "          R1;    "--     ┆
0x19480…19500 UnusedSector ┆                     DEST                      "          R2;    "PACKET STATUS               KEPT                      "       ┆
0x19500…19580 UnusedSector ┆   R7;    "REF(LINCB)                  KEPT                      "          R4);   "LINK                        DEST            ┆
0x19580…19600 UnusedSector ┆          "  VAR   SV4,SV5:INTEGER;  BEGIN   R4=> SV4;   R5=> SV5;   ADDRESS(I_F_TAB)=> R5;   R5@I_F_TABLE.TX_BUF_ADDR=> R1+2;  ┆
0x19600…19680 UnusedSector ┆ R0=> R5+(LTU_BTCNT=> R4);   WRITE_WORD(R1,R5,R4);                    "WRITE BYTE COUNT TO LTU"   R1+5;   R2=> R5;   WRITE_BYTE(┆
0x19680…19700 UnusedSector ┆R1,R5,R4);                    "WRITE TX STATUS BYTE"   CLEAR_TS2(R7,R4);   0=> R5=> LTU_BTCNT;   SV5=> R5;   EXIT(SV4); END "WRI┆
0x19700…19780 UnusedSector ┆TE_BTCNT_STATUS";  "--------------------------------------------------------------------" EXPORT PROCEDURE OUTPUT_TEXT "THIS PRO┆
0x19780…19800 UnusedSector ┆-----------------------------------------------------------------" "PAGE      PROCEDURE CLEAR_RS2 "THIS PROCEDURE WRITES THE POI┆
0x19800…19880 UnusedSector ┆NTER TO THE LTU BUFFER INTO BYTE 6 AND 7 " "IN THE CHANNEL I_F-TABLE AND WRITES A STATUS BYTE TO THIS TABLE WHICH " "CLEARS RHE ┆
0x19880…19900 UnusedSector ┆TS2-STATUS BYTE.                                           "         (R7;   "REF(LINCB)                    KEPT                 ┆
0x19900…19980 UnusedSector ┆     "         R4);  "LINK                          DEST                      "  VAR   SV1,SV3,SV4,SV5:INTEGER;  BEGIN   R1=> SV┆
0x19980…19a00 UnusedSector ┆1;   R3=> SV3;   R4=> SV4;    R5=> SV5;   R7@LINCB.CH_I_F_ADDR => R1+12;   REPEAT     READ_WORD(R1,R3,R4);   UNTIL R3[BN_SET];  ┆
0x19a00…19a80 UnusedSector ┆ R7@LINCB.CH_I_F_ADDR=> R1+14;           "ADDRESS TO EMPTY BUF POINTER"   ADDRESS(I_F_TAB)=> R5;   R5@I_F_TABLE.RX_BUF_ADDR=> R5┆
0x19a80…19b00 UnusedSector ┆;          "BUF ADDRESS INTO R5"   WRITE_WORD(R1,R5,R4);   R1-2;                                   "ADDRESS TO RS2"   0=> R5;   ┆
0x19b00…19b80 UnusedSector ┆WRITE_BYTE(R1,R5,R4);   SV1=> R1;   SV3=> R3;   SV5=> R5;   EXIT(SV4); END "CLEAR_RS2";  "--------------------------------------┆
0x19b80…19c00 UnusedSector ┆--------------------------------"  PROCEDURE SAVE_XFER_ELEM "THIS PROCEDURE COPIES THE CURRENT XFER_ELEM INTO A TERMCB RELATED B┆
0x19c00…19c80 UnusedSector ┆UF"         (R7;   "REF(LINCB)                    KEPT                      "         R4);  "LINK                          DEST ┆
0x19c80…19d00 UnusedSector ┆                     "  VAR   SV2,SV4,SV5:INTEGER;  BEGIN   R2=> SV2;   R4=> SV4;   R5=> SV5;   R7@LINCB.MESS_CONID => R4;   TER┆
0x19d00…19d80 UnusedSector ┆MTB[R4] => R4;   R4@TERMCB.XFERBUF => R5;   CXFER => R4;   0 => R2;   REPEAT     R2+1;     R4@INTEGER => R5@INTEGER;     INCD(R4┆
0x19d80…19e00 UnusedSector ┆,R5);   UNTIL R2 = SIZE(XFER_ELEM);   SV2 => R2;   SV5 => R5;   EXIT(SV4); END "SAVE_XFER_ELEM";  "-----------------------------┆
0x19e00…19e80 UnusedSector ┆-----------------------------------------"  PROCEDURE RESTORE_XFER_ELEM "THIS PROCEDURE COPIES THE SAVED XFER ELEM INTO CXFER.  ┆
0x19e80…19f00 UnusedSector ┆               "         (R7;   "REF(LINCB)                    KEPT                      "         R4);  "LINK                  ┆
0x19f00…19f80 UnusedSector ┆        DEST                      "  VAR   SV2,SV4,SV5:INTEGER;  BEGIN   R2=> SV2;   R4=> SV4;   R5=> SV5;    R7@LINCB.MESS_CONI┆
0x19f80…1a000 UnusedSector ┆D => R4;   TERMTB[R4] => R4;   R4@TERMCB.XFERBUF => R5;   CXFER => R4;   0 => R2;   REPEAT     R2+1;     R5@INTEGER => R4@INTEGE┆
0x1a000…1a080 UnusedSector ┆0;   R0=> R4@XFER_ELEM.XFERPSW;   R7@LINCB.MESS_TLST=> R1=> R4@XFER_ELEM.LINK;   SWITCH NEXT_XFER_ELEM(R4) TO     ERR,    DONE: ┆
0x1a080…1a100 UnusedSector ┆NOP;   END "NEXT_XFER_ELEM";   SWITCH NEXT_XFER_ELEM(R4) TO     ERR:        BEGIN          1 SHIFTLL BN_ERROR => R1;          XF┆
0x1a100…1a180 UnusedSector ┆LI0=> R6;                       "ERROR,LINK=0"          GOTO RETURN_ERROR;        END;    DONE: NOP;                            ┆
0x1a180…1a200 UnusedSector ┆CEDURE OUTPUTS A STRING OF TEXT SPECIFIED IN THE LTU DRIVER " "PROCESS TO THE SHARED RAM IN THE LTU.                            ┆
0x1a200…1a280 UnusedSector ┆   "          (R7;  "REF(LINCB)                  KEPT                      "          R4); "LINK                        DEST    ┆
0x1a280…1a300 UnusedSector ┆                  "  VAR   SV1,SV2,SV4,SV5:INTEGER;  BEGIN   R1=> SV1;   R2=> SV2;   R4=> SV4;   R5=> SV5;   CLEAR_TS1(R7,R4);  ┆
0x1a300…1a380 UnusedSector ┆ 2=> R2;   ADDRESS(I_F_TAB)=> R5;   R5@I_F_TABLE.TX_BUF_ADDR=> R1+2;   ADDRESS(LTU_COM)=> R5;   READ_WORDS(R1,R2,R5,R4);   R7@LI┆
0x1a380…1a400 UnusedSector ┆NCB_BREAK.OUT_BTCNT=> R4=> BTCNT;   (R4+1) SHIFTRL 1 => R2;                  "WORDCNT=(BTCNT+1)/2"   R5@LTU_COM_TABLE.TX_ADDR=> ┆
0x1a400…1a480 UnusedSector ┆R1;   0 => R5=> R7@LINCB.CUR_BTCNT;   R7@LINCB_BREAK.OUT_ADDR=> R5;   WRITE_WORDS(R1,R2,R5,R4);   CH_IDLE=> R5=> R7@LINCB.CH_STA┆
0x1a480…1a500 UnusedSector ┆TE;   ADDRESS(I_F_TAB)=> R5;   R5@I_F_TABLE.TX_BUF_ADDR=> R1+2;   BTCNT=> R5;   WRITE_WORD(R1,R5,R4);                    "WRITE ┆
0x1a500…1a580 UnusedSector ┆TX BYTE COUNT"   R1+5;   0=> R5;                                  "BUF IS A SINGLE PACKET"   WRITE_BYTE(R1,R5,R4);              ┆
0x1a580…1a600 UnusedSector ┆      "WRITE TX  STATUS BYTE"   R0=> R4;   R7=> R5;   BMDELAY=> R2;   2=> R0;   MON(WAITEVENT,R0,R1,R2,R7);   R4=> R0;   R5=> R7┆
0x1a600…1a680 UnusedSector ┆;   CLEAR_TS2(R7,R4);   SV1=> R1;   SV2=> R2;   SV5=> R5;   EXIT(SV4); END "OUTPUT_TEXT";  "------------------------------------┆
0x1a680…1a700 UnusedSector ┆---------------------------------" EXPORT PROCEDURE UPDATE_LINCB "THIS PROCEDURE UPDATES THE SPECIFIED LINE CONTROL BLOCK WITH T┆
0x1a700…1a780 UnusedSector ┆HE DATA" "IN THE SPECIFIED INTERNAL OPERATION.                                 "          (R4;  "REF(INT_OP)                 KEP┆
0x1a780…1a800 UnusedSector ┆T                       "          R7;  "REF(LINCB)                  KEPT                       "          R6); "LINK           ┆
0x1a800…1a880 UnusedSector ┆             DEST                       "  VAR   SV6:INTEGER;  BEGIN   R6=> SV6;   R4@MES_OP.MOHEAD=> R6=> R7@LINCB.MESS_HEAD;  ┆
0x1a880…1a900 UnusedSector ┆ R4@MES_OP.MOTLST=> R6=> R7@LINCB.MESS_TLST;   R4@MES_OP.MOEVENT=> R6=>R7@LINCB.MESS_EVNT;   R4@MES_OP.MOCOUNT=> R6=> R7@LINCB.M┆
0x1a900…1a980 UnusedSector ┆ESS_COUNT;   R4@MES_OP.MOCONID=> R6=> R7@LINCB.MESS_CONID;   0=> R6=> R7@LINCB.CUR_BTCNT;   EXIT(SV6); END "UPDATE_LINCB";  "---┆
0x1a980…1aa00 UnusedSector ┆------------------------------------------------------------------"  PROCEDURE INPUT_BLOCK "THIS PROCEDURE INPUTS A BLOCK OF DAT┆
0x1aa00…1aa80 UnusedSector ┆A FROM THE SHARED RAM IN THE LTU " "TO THE APPLICATION. THE SIZE OF THE BLOCK IS EQUAL TO THE SIZE OF THE" "BUFFER WHICH THE LTU┆
0x1aa80…1ab00 UnusedSector ┆ HANDS OVER. IF MORE DATA FROM THE LTU AND IF A  " "NEW BUFFER IS SEND FROM THE LTU DURING THE READING THIS BUFFER ALSO  " "IS R┆
0x1ab00…1ab80 UnusedSector ┆EAD.                                                             "          (R5;  "REF(LTU_COM_BUFFER)         KEPT             ┆
0x1ab80…1ac00 UnusedSector ┆          "          R7;  "REF(LINCB)                  KEPT                       "          R4); "LINK                        D┆
0x1ac00…1ac80 UnusedSector ┆EST                       "  LABEL RETURN_ERROR;  VAR   SV0,SV1,SV2,SV3,SV4,SV5,SV6:INTEGER;  BEGIN   R0=> SV0;   R1=> SV1;   R2┆
0x1ac80…1ad00 UnusedSector ┆=> SV2;   R3=> SV3;   R4=> SV4;   R5=> SV5;   R6=> SV6;   CXFER=> R4;   R7@LINCB.MESS_HEAD=> R0 EXTRACT 2 SHIFTLL XFER_SCP +#E80┆
0x1ad00…1ad80 UnusedSector ┆N_ERROR;       END;       IF R1 =1 THEN       REGRET=> R6       ELSE       RELEASE=> R6;       1 SHIFTLL BN_ERROR => R1;       G┆
0x1ad80…1ae00 UnusedSector ┆OTO RETURN_ERROR;     END     ELSE     BEGIN       R7@LINCB.CUR_BTCNT=> R0+ R5@LTU_COM_TABLE.RX_BTCNT;       R7@LINCB.MESS_COUNT┆
0x1ae00…1ae80 UnusedSector ┆=> R2;       IF R2<R0 THEN       BEGIN         OVRFL=> R6;         1 SHIFTLL BN_ERROR => R1;         GOTO RETURN_ERROR;       EN┆
0x1ae80…1af00 UnusedSector ┆D;       0=> R0;       R5@LTU_COM_TABLE.RX_BTCNT=> R2;       R5@LTU_COM_TABLE.RX_ADDR=> R1;       IF R2[0] THEN       BEGIN     ┆
0x1af00…1af80 UnusedSector ┆    READ_WORD(R1,R3,R4);               "LTU BYTE COUNT IS ODD"         SWITCH PUTBYTE(R3,R4) TO             0:              BEGI┆
0x1af80…1b000 UnusedSector ┆N                FOMER=> R6;                 "FORMAT ERROR"                1 SHIFTLL BN_ERROR => R1;              END;          ┆
0x1b000…1b080 UnusedSector ┆ 1,2: NOP;                        "LAST,MORE"         END "SWITCH PUTWORD";         INCD(R0,R1);                       "INCREMEN┆
0x1b080…1b100 UnusedSector ┆T R0,R1"       END;        WHILE R0<> R2 DO       BEGIN         READ_WORD(R1,R3,R4);         SWITCH PUTWORD(R3,R4) TO           ┆
0x1b100…1b180 UnusedSector ┆  0:              BEGIN                FOMER=> R6;                1 SHIFTLL BN_ERROR => R1;                GOTO RETURN_ERROR;   ┆
0x1b180…1b200 UnusedSector ┆           END;             1:              BEGIN                         "LAST TRANSFER"                IF R0< R2 THEN         ┆
0x1b200…1b280 UnusedSector ┆       BEGIN                  OVRFL=> R6;               "OVERFLOW FROM LTU"                  1 SHIFTLL BN_ERROR => R1;          ┆
0x1b280…1b300 UnusedSector ┆        GOTO RETURN_ERROR;                END;              END;             2: NOP;                        "MORE DATA TO BE TRA┆
0x1b300…1b380 UnusedSector ┆NSFERRED"         END "SWITCH PUTBYTE";         R1+2;                              "INCREMENT LTU POINTER"         R0+2;        ┆
0x1b380…1b400 UnusedSector ┆                      "INCREMENT BYTE COUNT"       END "WHILE DO";      R7@LINCB.CUR_BTCNT+R0;      R5@LTU_COM_TABLE.RX_STATUS=>┆
0x1b400…1b480 UnusedSector ┆ R4 SHIFTRL BYTES; "RX STATUS BYTE=> R4"      IF NOT R4[BN_S_PACKET] THEN      BEGIN                                 "END OF PAC┆
0x1b480…1b500 UnusedSector ┆KET"        0=> R6;                             "COMPLETION CODE=OK"        0=> R1;                             "RESULT=0" RETUR┆
0x1b500…1b580 UnusedSector ┆N_ERROR:        R6=> R2;        CH_IDLE=> R4=> R7@LINCB.CH_STATE;   "SET CHANNEL STATE TO IDLE"        SWITCH FIND_INT_OP(R6,R4)┆
0x1b580…1b600 UnusedSector ┆ TO          ERR,         DONE:        END "SWITCH FIND_INT_OP";        R6=> R5;        R2=> R6;        R7@LINCB.MESS_HEAD=> R2=┆
0x1b600…1b680 UnusedSector ┆> R5@ANS_OP.AOHEAD;        R7@LINCB.MESS_TLST=> R2=> R5@ANS_OP.AOTLST;        R7@LINCB.MESS_EVNT=> R2=> R5@ANS_OP.AOEVENT;      ┆
0x1b680…1b700 UnusedSector ┆  ANS_OPN => R2=> R5@ANS_OP.OPN;        R7@LINCB.CUR_BTCNT=> R2;            "BYTE COUNT INTO R2"        0=> R0=> R7@LINCB.CUR_BT┆
0x1b700…1b780 UnusedSector ┆CNT;        R6=> R0;                            "COMPLETION CODE INTO R0"        R5=> R4;                            "ADDRESS TO┆
0x1b780…1b800 UnusedSector ┆ INTOP INTO R4"        GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6);      END;    END;    CLEAR_RS2(R7,R4);    IF R7@LINCB.CUR_BTCN┆
0x1b800…1b880 UnusedSector ┆T <> 0 THEN    BEGIN      2=> R2;                               "MORE DATA TO BE TRANSFERRED"      R7@LINCB.CH_I_F_ADDR=> R1+8; ┆
0x1b880…1b900 UnusedSector ┆  "NEXT XFER ELEM FETCHED"   END "SWITCH NEXT_XFER_ELEM";   R7@LINCB.CUR_BTCNT => R2;   IF R2 <>0 THEN   RESTORE_XFER_ELEM(R7,R4┆
0x1b900…1b980 UnusedSector ┆);    REPEAT     R5@LTU_COM_TABLE.RX_STATUS=> R6 SHIFTRL BYTES=> R1  EXTRACT 4;     R5@LTU_COM_TABLE.RX_BTCNT=> R2;     IF R1 <>┆
0x1b980…1ba00 UnusedSector ┆ 0 LOGOR R2=0 THEN     BEGIN       IF R2 =0 LOGAND NOT R6 [BN_S_PACKET] THEN       BEGIN         0=> R1=> R6;         GOTO RETUR┆
0x1ba00…1ba80 UnusedSector ┆1=> SV1;   R2=> SV2;   R3=> SV3;   R4=> SV4;   R5=> SV5;   R6=> SV6;   R7=> SV7;   0=> R5=> ANS;   R5=> LTU_BTCNT;   R7@LINCB.FI┆
0x1ba80…1bb00 UnusedSector ┆TERADDR=> R5;   R7@LINCB.MESS_EVNT=> R2;   R5@TERMCB.PROCID=> R3;   SWITCH MON(IDENTIFYSENDER,R0,R2,R7):ERROR_DONE TO     ERR:  ┆
0x1bb00…1bb80 UnusedSector ┆      BEGIN          SV7=> R7;          0=> R0=> R2;          WRITE_BTCNT_STATUS(R0,R1,R2,R7,R4);          1 SHIFTLL BN_ERROR=> ┆
0x1bb80…1bc00 UnusedSector ┆R1;          PCB_ERR=> R6;          GOTO RETURN_ERROR;        END;    DONE: NOP;                               "R0 CONTAINS THE ┆
0x1bc00…1bc80 UnusedSector ┆PCBINDEX"   END "SWITCH MON(IDENTIFYSENDER)"; "PAGE    IF R0 <>R3 THEN   BEGIN     R0=> R5@TERMCB.PROCID;                  "PCB ┆
0x1bc80…1bd00 UnusedSector ┆INDEX INTO TERMCB"     2=> R2;                                 "WORD COUNT =2"     SV5=> R5;     R5@LTU_COM_TABLE.TX_ADDR=> R1; ┆
0x1bd00…1bd80 UnusedSector ┆    ADDRESS(FROM)=> R5;                     "ADDRESS TO LTU BUFFER"     WRITE_WORDS(R1,R2,R5,R4);               "WRITE (FM:) TO ┆
0x1bd80…1be00 UnusedSector ┆THE TERM"     SV5=> R5;     R5@LTU_COM_TABLE.TX_BTCNT-(4=> R1);     R5@LTU_COM_TABLE.TX_ADDR+(4=> R1);     MON(IDENTIFYPROCESS,R┆
0x1be00…1be80 UnusedSector ┆0,R1,R2,R7);     R0=> PRC_NAME[0];                        "THE NEW PROCESS NAME-"     R1=> PRC_NAME[1];                        "┆
0x1be80…1bf00 UnusedSector ┆IS WRITTEN TO THE TERM"     R2=> PRC_NAME[2];     NOP;     4=> R2;     R5@LTU_COM_TABLE.TX_ADDR=> R1;     ADDRESS(PRC_NAME)=> R5┆
0x1bf00…1bf80 UnusedSector ┆;     WRITE_WORDS(R1,R2,R5,R4);     SV5=> R5;     R5@LTU_COM_TABLE.TX_BTCNT-(8=> R1);     R5@LTU_COM_TABLE.TX_ADDR+(8=> R1);    ┆
0x1bf80…1c000 UnusedSector ┆ 12=> R7=> LTU_BTCNT;   END;   SV7=> R7;   CXFER=> R4;   R7@LINCB.MESS_HEAD=> R0 EXTRACT 2 SHIFTLL XFER_SCP +#E800;   R0=> R4@XF┆
0x1c000…1c080 UnusedSector ┆ER_ELEM.XFERPSW;   R7@LINCB.MESS_TLST=> R2=> R4@XFER_ELEM.LINK;   SWITCH NEXT_XFER_ELEM(R4) TO     ERR,    DONE: NOP;   END "SWI┆
0x1c080…1c100 UnusedSector ┆TCH NEXT_XFER_ELEM";   SWITCH NEXT_XFER_ELEM(R4) TO     ERR:        BEGIN          0=> R0;          0=> R2;          WRITE_BTCNT┆
0x1c100…1c180 UnusedSector ┆_STATUS(R0,R1,R2,R7,R4);          1 SHIFTLL BN_ERROR => R1;          XFLI0=> R6;          GOTO RETURN_ERROR;        END;    DONE┆
0x1c180…1c200 UnusedSector ┆: NOP;                               "NEXT XFER ELEM FETCHED"   END "SWITCH NEXT_XFER_ELEM";   R7@LINCB.CUR_BTCNT => R2;   IF R2┆
0x1c200…1c280 UnusedSector ┆ <>0 THEN   RESTORE_XFER_ELEM(R7,R4);   SV5 => R5;   REPEAT     R5@LTU_COM_TABLE.TX_BTCNT=> R2;     R7@LINCB.MESS_COUNT => R3;  ┆
0x1c280…1c300 UnusedSector ┆     ADDRESS(I_F_TAB)=> R5+4;      READ_WORDS(R1,R2,R5,R4);      R5-4;      R5@I_F_TABLE.RS1_STATUS=> R1;      IF R1[BN_SET]  TH┆
0x1c300…1c380 UnusedSector ┆EN      BEGIN        CLEAR_RS1(R7,R4);        R5@I_F_TABLE.RX_BUF_ADDR=> R1+2;        ADDRESS(LTU_COM)=> R5+3;        3=> R2;   ┆
0x1c380…1c400 UnusedSector ┆     READ_WORDS(R1,R2,R5,R4);        R5-3;        INTRPT_CNT=> R4+1=> INTRPT_CNT;        0=> R4;      END      ELSE      SAVE_XF┆
0x1c400…1c480 UnusedSector ┆ER_ELEM(R7,R4);    END;  UNTIL R4 <>0;  SV0=> R0;  SV1=> R1;  SV2=> R2;  SV3=> R3;  SV5=> R5;  SV6=> R6;  EXIT(SV4); END "INPUT_┆
0x1c480…1c500 UnusedSector ┆BLOCK";  "---------------------------------------------------------------------" "PAGE  PROCEDURE OUTPUT_BLOCK "THIS PROCEDURE O┆
0x1c500…1c580 UnusedSector ┆UTPUTS A BLOCK OF DATA FROM THE APPLICATION TO THE   " "SHARED RAM IN THE LTU. THE SIZE OF THE BLOCK IS LESSER THAN OR EQUAL " "┆
0x1c580…1c600 UnusedSector ┆TO THE SIZE OF THE BUFFER WHICH THE LTU HANDS OVER.                  "         (R5;   "REF(LTU_COM_BUFFER)            KEPT      ┆
0x1c600…1c680 UnusedSector ┆              "         R7;   "REF(LINCB)                     KEPT                    "         R4);  "LINK                     ┆
0x1c680…1c700 UnusedSector ┆      DEST                    " LABEL   RETURN_ERROR;  VAR   SV0,SV1,SV2,SV3,SV4,SV5,SV6,SV7,ANS:INTEGER;  BEGIN   R0=> SV0;   R┆
0x1c700…1c780 UnusedSector ┆                  "ADDRESS TO INT OP INTO R4"       0=> R5=> R7@LINCB.CUR_BTCNT;       GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6)┆
0x1c780…1c800 UnusedSector ┆;     END     ELSE     BEGIN       2=> R2;       R7@LINCB.CH_I_F_ADDR=> R1;       ADDRESS(I_F_TAB)=> R5;       READ_WORDS(R1,R2,┆
0x1c800…1c880 UnusedSector ┆R5,R4);       R5@I_F_TABLE.TS1_STATUS=> R1;       IF R1[BN_SET]  THEN       BEGIN         CLEAR_TS1(R7,R4);         R5@I_F_TABLE┆
0x1c880…1c900 UnusedSector ┆.TX_BUF_ADDR=> R1+2;         ADDRESS(LTU_COM)=> R5;         2=> R2;         READ_WORDS(R1,R2,R5,R4);         INTRPT_CNT=> R4+1=>┆
0x1c900…1c980 UnusedSector ┆ INTRPT_CNT;         0=> R4;       END       ELSE       SAVE_XFER_ELEM(R7,R4);     END;   UNTIL R4 <> 0;   SV1=> R1;   SV2=> R2;┆
0x1c980…1ca00 UnusedSector ┆   SV3=> R3;   SV5=> R5;   SV6=> R6;   SV7=> R7;   EXIT(SV4); END "OUTPUT_BLOCK";  "--------------------------------------------┆
0x1ca00…1ca80 UnusedSector ┆--------------------------" EXPORT PROCEDURE GET_CHANNEL "THIS PROCEDURE CHECKS THE TWO STATUS WORDS FOR EACH LTU CHANNEL. THE  ┆
0x1ca80…1cb00 UnusedSector ┆" "FIRST TIME A CHANGE IN ONE OF THE WORDS IS DETECTED THE PROCEDURE RE- " "TURNS WITH A REFERENCE TO THE LINCB.                ┆
0x1cb00…1cb80 UnusedSector ┆                  " "         (R5;  "CHANNEL NO START            FOUND CHANNEL NO            "          R6;  "--                ┆
0x1cb80…1cc00 UnusedSector ┆          CHANNEL STATUS              "          R4)  "LINK                        DEST                        "         :0..2;"┆
0x1cc00…1cc80 UnusedSector ┆               "0= NOT FOUND                                            "               "1= FOUND                               ┆
0x1cc80…1cd00 UnusedSector ┆   R3-R7@LINCB.CUR_BTCNT;     IF R3 < R2 THEN     R3=> BTCNT     ELSE     R2=> BTCNT;     R5@LTU_COM_TABLE.TX_ADDR=> R1;     0=>┆
0x1cd00…1cd80 UnusedSector ┆ R0;     BTCNT => R2;      REPEAT       SWITCH GETBYTE(R3,R4) TO         ERR:            BEGIN              0=> R0=> R2;        ┆
0x1cd80…1ce00 UnusedSector ┆      WRITE_BTCNT_STATUS(R0,R1,R2,R7,R4);              1 SHIFTLL BN_ERROR => R1;              EMBUF=> R6;              GOTO RETU┆
0x1ce00…1ce80 UnusedSector ┆RN_ERROR;            END;        DONE: NOP;                           "BYTE GOT"       END "SWITCH GETBYTE";       R3=> R5;     ┆
0x1ce80…1cf00 UnusedSector ┆  WRITE_BYTE(R1,R5,R4);       INCD(R0,R1);     UNTIL R0= R2;      (R7@LINCB.CUR_BTCNT+(BTCNT=> R5))=> R1;     R7@LINCB.MESS_COUN┆
0x1cf00…1cf80 UnusedSector ┆T=> R2-R1;     R1-(BTCNT=> R4);     IF R2=0 THEN                            "END OF PACKET"     BEGIN       1=> R2=> ANS;       ┆
0x1cf80…1d000 UnusedSector ┆IF R1= 0 THEN       0=> R2                                "BUF IS A SINGLE PACKET"       ELSE       P_PACKET=> R2;              ┆
0x1d000…1d080 UnusedSector ┆          "BUF IS THE LAST IN PCK"     END     ELSE     BEGIN       IF R1= 0 THEN       S_PACKET=> R2                         "B┆
0x1d080…1d100 UnusedSector ┆UF IS START OF PACKET"       ELSE       P_PACKET=> R2+S_PACKET;               "BUF IS PART OF PACKET"     END;     WRITE_BTCNT_S┆
0x1d100…1d180 UnusedSector ┆TATUS(R0,R1,R2,R7,R4);     IF ANS=> R1=1 THEN     BEGIN       0=> R6;                               "COMPLETION CODE=OK"       0┆
0x1d180…1d200 UnusedSector ┆=> R1;                               "RESULT=OK"  RETURN_ERROR:       SV7=> R7;       CH_IDLE=> R4=> R7@LINCB.CH_STATE;     "SET┆
0x1d200…1d280 UnusedSector ┆ CHAN STATE TO IDLE"       R6=> R2;       SWITCH FIND_INT_OP(R6,R4) TO         ERR,        DONE: NOP;       END "SWITCH FIND_INT┆
0x1d280…1d300 UnusedSector ┆_OP";       R6=> R5;       R2=> R6;       R7@LINCB.MESS_HEAD=> R2=> R5@ANS_OP.AOHEAD;       R7@LINCB.MESS_TLST=> R2=> R5@ANS_OP.┆
0x1d300…1d380 UnusedSector ┆AOTLST;       R7@LINCB.MESS_EVNT=> R2=> R5@ANS_OP.AOEVENT;       ANS_OPN=> R2=> R5@ANS_OP.OPN;       R7@LINCB.CUR_BTCNT=> R2;   ┆
0x1d380…1d400 UnusedSector ┆           "BYTE COUNT INTO R2"       R6=> R0;                              "COMPLETION CODE INTO R0"       R5=> R4;            ┆
0x1d400…1d480 UnusedSector ┆F)=> R5,R7);         END         ELSE "PAGE          BEGIN           IF R7@LINCB.CH_STATE => R1= CH_READ LOGOR R1= CH_IDLE THEN ┆
0x1d480…1d500 UnusedSector ┆          BEGIN             IF R1 = CH_IDLE THEN             BEGIN               R7@LINCB.FITERADDR => R4;               R4@TERM┆
0x1d500…1d580 UnusedSector ┆CB.PROCID => R0;               SWITCH DEQUEUE_OPERATION(R0,R7,R6) TO                 ERR:                    BEGIN              ┆
0x1d580…1d600 UnusedSector ┆        CLEAR_RS1(R7,R4);                      CLEAR_RS2(R7,R4);                    END;                DONE:                   ┆
0x1d600…1d680 UnusedSector ┆ BEGIN                      CH_READ=> R6;                      SV4=> R1+1 => SV4;                      CHNO => R5;              ┆
0x1d680…1d700 UnusedSector ┆                 "               "2= OUTPUT TEXT EXECUTED                                 "  "PAGE   VAR   SV1,SV2,SV4,SV7,CHNO:┆
0x1d700…1d780 UnusedSector ┆INTEGER;  BEGIN   R1=> SV1;   R2=> SV2;   R4=> SV4;   R7=> SV7;   R5-1 => R4 => CHNO;    REPEAT     LINTB[R4]=> R7;             ┆
0x1d780…1d800 UnusedSector ┆           "REF TO LINCB INTO R7"     6=> R2;                                "WORD CNT=7"     R7@LINCB.CH_I_F_ADDR=> R1;        ┆
0x1d800…1d880 UnusedSector ┆     "ADDRESS TO START OF IF TAB"     ADDRESS(I_F_TAB)=> R5;     READ_WORDS(R1,R2,R5,R4);     R5@I_F_TABLE.RS1_STATUS=> R4;     ┆
0x1d880…1d900 UnusedSector ┆IF R4[BN_SET]  THEN     BEGIN       R7@LINCB.FITERADDR => R1;       IF R1=0 THEN       BEGIN         CLEAR_RS1(R7,R4);         C┆
0x1d900…1d980 UnusedSector ┆LEAR_RS2(R7,R4);         ADDRESS(TERMDIS)=> R4=> R7@LINCB_BREAK.OUT_ADDR;         28 => R4=> R7@LINCB_BREAK.OUT_BTCNT;         R┆
0x1d980…1da00 UnusedSector ┆EPEAT           2=> R2;           R7@LINCB.CH_I_F_ADDR => R1;           ADDRESS(I_F_TAB)=> R5;           READ_WORDS(R1,R2,R5,R4)┆
0x1da00…1da80 UnusedSector ┆;           R5@I_F_TABLE.TS1_STATUS => R2;         UNTIL R2[BN_SET];         OUTPUT_TEXT(R7,R4);       END       ELSE       BEGI┆
0x1da80…1db00 UnusedSector ┆N       R5@I_F_TABLE.RX_BUF_ADDR=> R1+7;     "ADDR TO RX STATUS"       READ_WORD(R1,R3,R4);       IF R3[BN_BREAK] THEN       BEG┆
0x1db00…1db80 UnusedSector ┆IN         CLEAR_RS1(R7,R4);         CLEAR_RS2(R7,R4);         PROCESS_BREAK(R7,R4);       END       ELSE "PAGE        BEGIN    ┆
0x1db80…1dc00 UnusedSector ┆     IF R7@LINCB.CH_STATE=> R1= CH_READ_BREAK  THEN         BEGIN           CLEAR_RS1(R7,R4);           R5@I_F_TABLE.RX_BUF_ADDR┆
0x1dc00…1dc80 UnusedSector ┆=> R1+2; "ADDR TO COM TABLE BTCNT"           ADDRESS(LTU_COM)=> R5+3;           3=> R2;           READ_WORDS(R1,R2,R5,R4);      ┆
0x1dc80…1dd00 UnusedSector ┆     R5-3;           R5@LTU_COM_TABLE.RX_BTCNT=> R1;           IF R1=0 THEN           BEGIN             NULL => R1 => BK_BUF[1=>┆
0x1dd00…1dd80 UnusedSector ┆ R4];             1=> R1;           END;           IF R1 >= 7 THEN           6=> R2=> R0           ELSE           R1=> R0=> R2; ┆
0x1dd80…1de00 UnusedSector ┆                     "BYTE CNT INTO R0"           R2+1 SHIFTRL 1;                    "WORD CNT INTO R2"           R5@LTU_COM_TAB┆
0x1de00…1de80 UnusedSector ┆LE.RX_ADDR=> R1;     "POINTER TO LTU INPUT BUF"           ADDRESS(BK_BUF)=> R5;           READ_WORDS(R1,R2,R5,R4);           R0=┆
0x1de80…1df00 UnusedSector ┆> R4-1;           IF R0<6  THEN                      "PROCESS NAME WITH LESS -"           REPEAT                             "TH┆
0x1df00…1df80 UnusedSector ┆AN 6 CHAR IS FILLED UP-"             R4+1;                            "WITH NULLS"             NULL=>R0=> BK_BUF[R4];           ┆
0x1df80…1e000 UnusedSector ┆UNTIL R4=6;           CLEAR_RS2(R7,R4);           NOP;           SWITCH FIND_INT_OP(R6,R4) TO             ERR,            DONE:R┆
0x1e000…1e080 UnusedSector ┆6=> R4;                     "R4 CONTAINS REF TO INT OP"           END "SWITCH FIND_INT_OP";           NOP;           CH_READ_BRE┆
0x1e080…1e100 UnusedSector ┆AK=> R1=> R4@BREAK_OP.OPN;           R7=> R4@BREAK_OP.LCBREF;           NOP;           MON(COR,AMON,SIGNAL_OP,R4,ADDRESS(SEM_OPI┆
0x1e100…1e180 UnusedSector ┆  ELSE             BEGIN               CH_READ=> R6;               SV4=> R1+1=> SV4;               CHNO=> R5;               CHAN┆
0x1e180…1e200 UnusedSector ┆NEL_3=> R1=> CHNO;             END;           END;         END;       END;       END;     END     ELSE     BEGIN       R5@I_F_TA┆
0x1e200…1e280 UnusedSector ┆BLE.TS1_STATUS=> R4;       IF R4[BN_SET]  THEN       BEGIN         IF R7@LINCB.CH_STATE=> R1= CH_BREAK  THEN         BEGIN      ┆
0x1e280…1e300 UnusedSector ┆     OUTPUT_TEXT(R7,R4);           SV4=> R1+2=> SV4;           CHNO=> R5;           CHANNEL_3=> R1=> CHNO;         END;         ┆
0x1e300…1e380 UnusedSector ┆IF R7@LINCB.CH_STATE=> R1=CH_WRITE  THEN         BEGIN           CH_WRITE=> R6;           SV4=> R1+1=>SV4;           CHNO=> R5; ┆
0x1e380…1e400 UnusedSector ┆          CHANNEL_3=> R1=> CHNO;         END;       END;     END;     CHNO=> R4+1 => CHNO;   UNTIL   R4=CHANNEL_4;   EXIT(SV4); ┆
0x1e400…1e480 UnusedSector ┆END "GET CHANNEL";  "-----------------------------------------------------------------------"   "PAGE    EXPORT PROCEDURE INTERR┆
0x1e480…1e500 UnusedSector ┆UPT_HANDLER "THIS PROCEDURE SCANS ALL THE LTU COMMUNICATION TABLES. IF ANY CHANGE  " "IN THE STATUS WORD A DATA TRANSFER PROCEDU┆
0x1e500…1e580 UnusedSector ┆RE IS CALLED.               "         (R4);  "LINK                          DEST                      "  VAR   SV4,SV5,SV6,SV7,C┆
0x1e580…1e600 UnusedSector ┆HNO:INTEGER;  BEGIN   R4=> SV4;   R5=> SV5;   R6=> SV6;   R7=> SV7;    CHANNEL_1=> R4=> CHNO;   0=> R4=> LOOP_CNT;   IF INTRPT_C┆
0x1e600…1e680 UnusedSector ┆NT=> R4 =0 THEN   BEGIN     REPEAT       CHNO=> R5;       SWITCH GET_CHANNEL(R5,R6,R4) TO            0,                         ┆
0x1e680…1e700 UnusedSector ┆    "CHANNEL NOT FOUND"            2:                             "OUTPUT TEXT EXECUTED"            BEGIN              SV5=> R5;┆
0x1e700…1e780 UnusedSector ┆              SV6=> R6;              EXIT(SV4);            END;            1: NOP;                        "CHANNEL FOUND"       ┆
0x1e780…1e800 UnusedSector ┆END "SWITCH GET CHANNEL";  "PAGE        LOOP_CNT=> R4+1=> LOOP_CNT;       IF R4>=2 THEN       INTRPT_CNT=> R4+1=> INTRPT_CNT;   ┆
0x1e800…1e880 UnusedSector ┆    LINTB[R5]=> R7;                     "REF(LINCB) INTO R7"       ADDRESS(LTU_COM)=> R5;              "REF(BUFFER) INTO R5"    ┆
0x1e880…1e900 UnusedSector ┆   3=> R2;                             "WORD COUNT=3"       IF R6=CH_READ THEN       BEGIN         CLEAR_RS1(R7,R4);         ADD┆
0x1e900…1e980 UnusedSector ┆RESS(I_F_TAB)=> R6;         R6@I_F_TABLE.RX_BUF_ADDR=> R1+2;  "ADDR TO COM TAB BYTE COUNT"         R5+3;         READ_WORDS(R1,R┆
0x1e980…1ea00 UnusedSector ┆2,R5,R4);         ADDRESS(LTU_COM)=> R5;         INPUT_BLOCK(R5,R7,R4);       END       ELSE       BEGIN         CLEAR_TS1(R7,R4┆
0x1ea00…1ea80 UnusedSector ┆);         ADDRESS(I_F_TAB)=> R6;         R6@I_F_TABLE.TX_BUF_ADDR=> R1+2;         R2-1;         READ_WORDS(R1,R2,R5,R4);       ┆
0x1ea80…1eb00 UnusedSector ┆  OUTPUT_BLOCK(R5,R7,R4);       END;       CHNO=> R4+1 => CHNO;                "INCREMENT CHANNEL NO"     UNTIL R4=CHANNEL_5;   ┆
0x1eb00…1eb80 UnusedSector ┆END   ELSE   INTRPT_CNT=> R4-1=> INTRPT_CNT;   SV5=> R5;   SV6=> R6;   SV7=> R7;   EXIT(SV4); END "INTERRUPT_HANDLER";  "-------┆
0x1eb80…1ec00 UnusedSector ┆--------------------------------------------------------------" PROCEDURE LTU_ERROR_HANDLER "THIS PROCEDURE SETS THE CONTROL BLO┆
0x1ec00…1ec80 UnusedSector ┆CK STATUS TO 1 (ERROR STATE) IN   " "THE LTUCB AND THE LINCB.                                             "         (R7;   "REF(┆
0x1ec80…1ed00 UnusedSector ┆LINCB)                     KEPT                    "         R4);  "LINK                           DEST                    "  VA┆
0x1ed00…1ed80 UnusedSector ┆R   SV0,SV1,SV2,SV4,SV5,SV6:INTEGER;  BEGIN   R0=> SV0;   R1=> SV1;   R2=> SV2;   R4=> SV4;   R5=> SV5;   R6=> SV6;   ADDRESS(LT┆
0x1ed80…1ee00 UnusedSector ┆        CHANNEL_3 => R1=> CHNO;                    END;               END "SWITCH DEQUEUE_OPERATION";             END           ┆
0x1ee00…1ee80 UnusedSector ┆     "         R4);  "LINK                           DEST                    "  VAR   SV1,SV2,SV4,SV5:INTEGER;  BEGIN   R1=> SV1┆
0x1ee80…1ef00 UnusedSector ┆;   R2=> SV2;   R4=> SV4;   R5=> SV5;   0 => R1;   LTU_STATUS => R2;   READ_WORD(R1,R3,R4);                        "READ LTU STA┆
0x1ef00…1ef80 UnusedSector ┆TUS WORD"   IF R3 = R2 THEN   BEGIN     READ_WORD(R1,R3,R4);     IF R3 = R2 THEN LTU_ERROR_HANDLER(R7,R4)     ELSE     R3 => LTU┆
0x1ef80…1f000 UnusedSector ┆_STATUS;   END   ELSE   R3=> LTU_STATUS;   REPEAT     2=> R2;     R7@LINCB.CH_I_F_ADDR=> R1;     ADDRESS(I_F_TAB)=> R5;     READ┆
0x1f000…1f080 UnusedSector ┆_WORDS(R1,R2,R5,R4);     R5@I_F_TABLE.TS1_STATUS=> R2;   UNTIL R2[BN_SET];   CLEAR_TS1(R7,R4);   R5@I_F_TABLE.TX_BUF_ADDR=> R1+2┆
0x1f080…1f100 UnusedSector ┆;   ADDRESS(LTU_COM)=> R5;   2=> R2;   READ_WORDS(R1,R2,R5,R4);   OUTPUT_BLOCK(R5,R7,R4);   SV1=> R1;   SV2=> R2;   SV5=> R5;   ┆
0x1f100…1f180 UnusedSector ┆EXIT(SV4); END "LTU_IF";  "---------------------------------------------------------------------" EXPORT PROCEDURE BOOT_HANDLER ┆
0x1f180…1f200 UnusedSector ┆"THIS PROCEDURE HANDLES THE BOOT LOADING OF THE LTU. AT FIRST THE CR80" "INDICATES THAT IT IS READY BY LOADING THE STATUS WORD I┆
0x1f200…1f280 UnusedSector ┆N THE SHARED  " "RAM IN THE LTU WITH #AAAA. IF THE LTU IS READY, THE STATUS WORD WILL " "BE LOADED WITH #0000. THE CR80 LOADS TH┆
0x1f280…1f300 UnusedSector ┆E LTU WITH THE BOOT LOAD DATA." "IT IS CHECKED THAT THE STATUS WORD IS VALID, TELLING THAT THE BOOT   " "LOAD HAS BEEN SUCCESFUL┆
0x1f300…1f380 UnusedSector ┆, IF NOT A NEW BOOT LOAD IS PERFORMED.        "         (R4;   "REF(INT_OP)                    KEPT                    "        ┆
0x1f380…1f400 UnusedSector ┆ R7;   "REF(LINCB)                     KEPT                    "         R6);  "LINK                           DEST             ┆
0x1f400…1f480 UnusedSector ┆       "  LABEL RETURN;  VAR   LTU_BOOT_COUNT,LTU_BOOT_ADDR,BOOT_CNT:INTEGER;  BEGIN   R0=> SV20;   R1=> SV21;   R2=> SV22;   R3┆
0x1f480…1f500 UnusedSector ┆=> SV23;   R4=> SV24;   R5=> SV25;   R6=> SV26;   R7=> SV27;   IF R7@LINCB.MODEOP => R1 <> BOOT_DISMANTLE THEN   BEGIN     IF R7┆
0x1f500…1f580 UnusedSector ┆@LINCB.CH_STATE => R1 = CH_IDLE THEN     BEGIN       0=> R1=> R6;                       "START ADDRESS TO LTU RAM"       LTU_ADD┆
0x1f580…1f600 UnusedSector ┆R => R5 +MCCMD +BLCMD;       WIO(R1,R5);                       "MASTER CLEAR LTU"       20=> R0;       BMDELAY => R2;           ┆
0x1f600…1f680 UnusedSector ┆         "WAIT 2 SEC."       MON(WAITEVENT,R0,R1,R2,R7);       #AAAA=> R5;       0 => R1;       WRITE_WORD(R1,R5,R4);           ┆
0x1f680…1f700 UnusedSector ┆  "WRITE STATUS #AAAA TO LTU"        REPEAT         0=> R1;         READ_WORD(R1,R3,R4);            "READ STATUS WORD"         R┆
0x1f700…1f780 UnusedSector ┆6+1;         2=> R0;         BMDELAY=> R2;         MON(WAITEVENT,R0,R1,R2,R7);     "WAIT 200mS"         IF R6= 50 THEN         B┆
0x1f780…1f800 UnusedSector ┆U_CB)=> R4;   1=> R1=> R4@LTUCB.STATUS;   0=> R4;   REPEAT     LINTB[R4] => R5;     R1=> R5@LINCB.STATUS;     R4+1;   UNTIL R4=4┆
0x1f800…1f880 UnusedSector ┆;   SWITCH FIND_INT_OP(R6,R4) TO     ERR,    DONE: NOP;   END "SWITCH FIND_INT_OP";   R7@LINCB.MESS_HEAD=> R1=> R6@ANS_OP.AOHEAD┆
0x1f880…1f900 UnusedSector ┆;   R7@LINCB.MESS_TLST=> R1=> R6@ANS_OP.AOTLST;   R7@LINCB.MESS_EVNT=> R1=> R6@ANS_OP.AOEVENT;   ANS_OPN=> R1=> R6@ANS_OP.OPN;  ┆
0x1f900…1f980 UnusedSector ┆ LTUER=> R0;   1 SHIFTLL BN_ERROR => R1;   0=> R2;   R6=> R4;   GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6);   SV0=> R0;   SV1=> R┆
0x1f980…1fa00 UnusedSector ┆1;   SV2=> R2;   SV5=> R5;   SV6=> R6;   EXIT(SV4); END "LTU_ERROR_HANDLER";  "-------------------------------------------------┆
0x1fa00…1fa80 UnusedSector ┆--------------------" EXPORT PROCEDURE LTU_IF "THIS PROCEDURE TAKES CARE OF THE FIRST DATA TRANSFER TO ONE OF THE   " "LTU CHANN┆
0x1fa80…1fb00 UnusedSector ┆ELS FROM THE APPLICATION .                                  "         (R7;   "REF(LINCB)                     KEPT               ┆
0x1fb00…1fb80 UnusedSector ┆END "SWITCH GETWORD";       R3 => BOOT_CNT;                    "BOOT FILE BYTE COUNT"       R7@LINCB.FREQ -(2=> R0);     END;   ┆
0x1fb80…1fc00 UnusedSector ┆   REPEAT       SWITCH GETBYTE(R3,R4) TO         ERR:            BEGIN              0=> R2;              1 SHIFTLL BN_ERROR => R┆
0x1fc00…1fc80 UnusedSector ┆1;              EMBUF => R0;              GOTO RETURN;            END;        DONE: NOP;                        "BYTE GOT"      ┆
0x1fc80…1fd00 UnusedSector ┆ END "SWITCH GETBYTE";       R3=> R5;       WRITE_BYTE(R1,R5,R4);       INCD(R0,R1);     UNTIL R0=R2;     0=> R0=> R1;   END   E┆
0x1fd00…1fd80 UnusedSector ┆LSE   BEGIN     2=> R1;     R7@LINCB.FREQ => R5;     IF R5 <> BOOT_CNT => R6 THEN     BEGIN       BBCER => R0;       1 SHIFTLL B┆
0x1fd80…1fe00 UnusedSector ┆N_ERROR => R1;       GOTO RETURN;     END;     WRITE_WORD(R1,R5,R4);                "WRITE BYTE COUNT TO LTU"     1 SHIFTLL 15 =┆
0x1fe00…1fe80 UnusedSector ┆> R5+(1 SHIFTLL 14);   "TOGGLE AND EOT BITS SET"     0=> R1;     WRITE_WORD(R1,R5,R4);                "WRITE STATUS WORD"     0=┆
0x1fe80…1ff00 UnusedSector ┆> R6;      REPEAT       IF R6=50 THEN       BEGIN         1 SHIFTLL BN_ERROR => R1;         LTBER => R0;                     "LT┆
0x1ff00…1ff80 UnusedSector ┆U BOOT ERROR"         GOTO RETURN"       END;       R6+1;       1=> R0;       BMDELAY=> R2;       MON(WAITEVENT,R0,R1,R2,R7);   ┆
0x1ff80…20000 UnusedSector ┆     "WAIT 100mS"       0=> R1;       READ_WORD(R1,R3,R4);       R3=> R1 SHIFTRL BYTES;     UNTIL R1=0;     IF R3 EXTRACT BYTES ┆
0x20000…20080 UnusedSector ┆<> 0 THEN     BEGIN       1 SHIFTLL BN_ERROR => R1;       CHSER => R0                        "LTU CHECK SUM ERROR"     END     E┆
0x20080…20100 UnusedSector ┆LSE     BEGIN       LTU_ADDR => R5+ MCCMD;       0=> R1;       WIO(R1,R5);                        "MASTER CLEAR  LTU"       0=>R┆
0x20100…20180 UnusedSector ┆1=> R0=> R2;       SV27=> R7;       0=> R6=> R7@LINCB.CH_STATE;     END;   END;  RETURN:   SV27=> R7;   SV24=> R4;   R7@LINCB.ME┆
0x20180…20200 UnusedSector ┆EGIN           1 SHIFTLL BN_ERROR => R1;           LTBER => R0;                  "LTU BOOT LOAD ERROR"           GOTO RETURN;   ┆
0x20200…20280 UnusedSector ┆      END;         R3=> R1 SHIFTRL BYTES;       UNTIL R1=0;       IF R3 <> 0 THEN       BEGIN         LTUER=> R0;               ┆
0x20280…20300 UnusedSector ┆      "HARDWARE ERROR IN LTU"         1 SHIFTLL BN_ERROR => R1;         GOTO RETURN;       END;       2=> R1;       READ_WORD(R1┆
0x20300…20380 UnusedSector ┆,R3,R4);              "READ BYTE COUNT"       R3=> LTU_BOOT_COUNT;       4=> R1;       READ_WORD(R1,R3,R4);              "READ S┆
0x20380…20400 UnusedSector ┆TART LOAD ADDRESS"       R3=> LTU_BOOT_ADDR;       SV27=> R7;       BOOT_STARTED => R0=> R7@LINCB.CH_STATE;     END;     CXFER=>┆
0x20400…20480 UnusedSector ┆ R4;     R7@LINCB.MESS_HEAD => R0 EXTRACT 2 SHIFTLL XFER_SCP + #E800;     R0=> R4@XFER_ELEM.XFERPSW;     R7@LINCB.MESS_TLST=> R1┆
0x20480…20500 UnusedSector ┆=> R4@XFER_ELEM.LINK;     SWITCH NEXT_XFER_ELEM(R4) TO       ERR,      DONE: NOP;     END "SWITCH NEXT_XFER_ELEM";     SWITCH NE┆
0x20500…20580 UnusedSector ┆XT_XFER_ELEM(R4) TO       ERR:          BEGIN            1 SHIFTLL BN_ERROR => R1;            XFLI0=> R0;            GOTO RETURN┆
0x20580…20600 UnusedSector ┆;          END;      DONE: NOP;                          "NEXT XFER ELEM FETCHED"     END "SWITCH NEXT_XFER_ELEM";     R7@LINCB.┆
0x20600…20680 UnusedSector ┆MESS_COUNT => R2;     R7@LINCB.FREQ => R3;     LTU_BOOT_ADDR=> R1+R3;               "LINCB.FREQ USED AS BOOT CNT"     (R7@LINCB.┆
0x20680…20700 UnusedSector ┆FREQ +R2)=> R0;     IF LTU_BOOT_COUNT => R6 < R0 THEN     BEGIN       1 SHIFTLL BN_ERROR => R1;          "BOOT DATA ERROR"      ┆
0x20700…20780 UnusedSector ┆ BODER => R0;       GOTO RETURN;     END;     0=> R0;     IF R3 =0 THEN     BEGIN       SWITCH GETWORD(R3,R4) TO         ERR:   ┆
0x20780…20800 UnusedSector ┆         BEGIN              1 SHIFTLL BN_ERROR => R1;              EMBUF => R0;              GOTO RETURN;            END;       ┆
0x20800…20880 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x4…]
0x20a80…20b00 UnusedSector ┆Z Z                     %   Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x20b00…20b80 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x20b80…20c00 UnusedSector ┆SS_HEAD=> R6=> R4@ANS_OP.AOHEAD;   R7@LINCB.MESS_TLST=> R6=> R4@ANS_OP.AOTLST;   R7@LINCB.MESS_EVNT=> R6=> R4@ANS_OP.AOEVENT;   ┆
0x20c00…20c80 UnusedSector ┆ANS_OPN=> R6=> R4@ANS_OP.OPN;   GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6);   SV20=> R0;   SV21=> R1;   SV22=> R2;   SV23=> R3;  ┆
0x20c80…20d00 UnusedSector ┆ SV25=> R5;   EXIT(SV26); END "BOOT_HANDLER";  "----------------------------------------------------------------------"  "PAGE  ┆
0x20d00…20d80 UnusedSector ┆ EXPORT PROCEDURE RESV_INTRPT "THIS PROCEDURE RESERVES THE INTERRUPT TO THE LTU COROUTINE.           " "IF THE INTERRUPT ALREADY┆
0x20d80…20e00 UnusedSector ┆ IS RESERVED BY ANOTHER PROCESS, THE DRIVER   " "PROCESS IS STOPPED AND THE ERROR IS REPORTED TO THE CONSOL.           "        ┆
0x20e00…20e80 UnusedSector ┆ (R4)   "LINK                          DEST                      "        :ERROR_DONE;               "0= INTERRUPT NOT RESERVED ┆
0x20e80…20f00 UnusedSector ┆                              "               "1= INTERRUPT RESERVED                                   "  VAR   SV1,SV7:INTEGER;┆
0x20f00…20f80 UnusedSector ┆  BEGIN   R1=> SV1;   R7=> SV7;   LTU_ADDR_PRIO => R1;                    "LTU ADDRESS INTO R1"   MON(RESERVEINTERRUPT,R1,R7);  ┆
0x20f80…21000 UnusedSector ┆ R1=> INTRPT_RESV;   IF R1=-1 THEN   BEGIN     SV7=> R7;     EXIT(R4,ERR);   END;   MON(CLEARINTERRUPT,R1,R7);              "CLE┆
0x21000…21080 UnusedSector ┆AR INTERRUPT COUNTER"   SV1=> R1;   SV7=> R7;   EXIT(R4,DONE); END "RESV_INTRPT";  "--------------------------------------------┆
0x21080…21100 UnusedSector ┆-------------------------" EXPORT PROCEDURE RELS_INTRPT "THIS PROCEDURE CHECKS IF INTRPT IS VALID AND CORRESPONDS TO AN INTER-" ┆
0x21100…21180 UnusedSector ┆"RUPT RESERVED BY THE CALLING PROCESS. IF SO THE INTERRUPT IS RELEASED" "OTHERWISE NO ACTION IS TAKEN.                          ┆
0x21180…21200 UnusedSector ┆              "         (R4);  "LINK                           DEST                    "  VAR   SV1,SV7:INTEGER;  BEGIN   R1=> S┆
0x21200…21280 UnusedSector ┆V1;   R7=> SV7;   INTRPT_RESV=> R1;   MON(RELEASEINTERRUPT,R1,R7);   SV1=> R1;   SV7=> R7;   EXIT(R4); END "RELS_INTRPT";  "----┆
0x21280…21300 UnusedSector ┆-----------------------------------------------------------------" ENDMODULE  Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x21300…21380 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x3…]
0x21500…21580 UnusedSector ┆M.SEC)"   UNS(SIZE(XFER_ELEMTYPE)-1,R7);   LDS(R6);                              "RESTORE PSW"   STC(SIZE(XFER_ELEMTYPE)-1,CXFER┆
0x21580…21600 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x1…]
0x21680…21700 UnusedSector ┆  BFD    8             ░ H  ░░ |   ░     ░     ░     ░     ░     ░BM   ░     ░     ░     ░     ░  LT ░GRAF ░     ░     ░     ░  ┆
0x21700…21780 UnusedSector ┆   ░U_DR ░ER   ░     ░     ░     ░LTU_ ░.SS  ░     ░     ░     ░  CB ░ROC. ░     ░     ░     ░     ░IV_P ░C.SS ░     ░     ░    ┆
0x21780…21800 UnusedSector ┆ ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░┆
0x21800…21880 UnusedSector ┆     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░                  ░░░                             ┆
0x21880…21900 UnusedSector ┆SUBMODULE XFER_PROCEDURES; "-------------------------------------------------------------------- " "  PROJECT:               X "┆
0x21900…21980 UnusedSector ┆ "  MODULE NAME:           XFER_PROCEDURES "  MODULE ID NMB:         0010 "  MODULE VERSION:        0001 "  MODULE TYPE:        ┆
0x21980…21a00 UnusedSector ┆   SUBMODULE "  MODULE FILES:          X " MERGE FILES:            LTU_DRIV_PREFX.C "                         @**GENS.D*SWELLPRE┆
0x21a00…21a80 UnusedSector ┆FIX.D*GENERALPARAMS.S "                                                *DRIVERPARAMS.S "                                        ┆
0x21a80…21b00 UnusedSector ┆        *DMADRVPARAMS.S "                                                *MONITORNAMES.S "                                      ┆
0x21b00…21b80 UnusedSector ┆          *COMONPARAMS.S "  SPECIFICATIONS:        X "  AUTHOR/DATE:           OH/810617 " "  DELIVERABLE:           YES "  SOUR┆
0x21b80…21c00 UnusedSector ┆CE LANGUAGE:       SWELL "  COMPILE COMPUTER:      CR80 "  TARGET COMPUTER:       CR80 "  OPERATING SYSTEM:      AMOS " "-------┆
0x21c00…21c80 UnusedSector ┆------------------------------------------------------------- " "  CHANGE RECORD " "  VERSION    AUTHOR/DATE   DESCRIPTION OF CH┆
0x21c80…21d00 UnusedSector ┆ANGE "  -------    -----------   --------------------- " "-------------------------------------------------------------------- "┆
0x21d00…21d80 UnusedSector ┆   %SOURCE @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.D*DRIVERPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.┆
0x21d80…21e00 UnusedSector ┆D*MONITORNAMES.S %SOURCE @**GENS.D*SWELLPREFIX.D*COMONPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.D*DMADRVPARAMS.S %SOURCE LTU_DRIV_P┆
0x21e00…21e80 UnusedSector ┆REFX.C %PRINT  VAR   SV12,   SV14,   SV15,   SV17,   SV33,   SV34,   SV43,   SV44,   SV53:INTEGER;                             "┆
0x21e80…21f00 UnusedSector ┆REGISTER SAVE AREAS"  EXPORT VAR   CFER:XFER_ELEM;  CONST   CXFER=ADDRESS(CFER);  "---------------------------------------------┆
0x21f00…21f80 UnusedSector ┆-------------------------"   EXPORT PROCEDURE NEXT_XFER_ELEM    "THE NEXT XFER ELEMENT IF ANY IS FETCHED INTO CXFER.            ┆
0x21f80…22000 UnusedSector ┆      "         (R4)  "LINK                           DEST                       "        :ERROR_DONE;              "0= NONE    ┆
0x22000…22080 UnusedSector ┆                                               "              "1= OK                                                     "  VAR ┆
0x22080…22100 UnusedSector ┆  REGSTACK:ARRAY[0..7] OF INTEGER;   SV4:INTEGER;  BEGIN   R4=> SV4;   R7=> REGSTACK[7];   STC(6,ADDRESS(REGSTACK)+7=> R7);   CX┆
0x22100…22180 UnusedSector ┆FER=> R4;   IF R4@XFER_ELEM.LINK=> R7=0 THEN   BEGIN     REGSTACK[7]=> R7;     EXIT(SV4);                          "NONE"   END;┆
0x22180…22200 UnusedSector ┆   R7-CBASE@INTEGER;   SVS(R6);                              "SAVE PSW"   LDS(R4@XFER_ELEM.XFERPSW=> R5);       "SWITCH(XFER_ELE┆
0x22200…22280 UnusedSector ┆  " "IF IT CONTAINS A TRANSFER COMMAND THE XFER LIST ELEMENT IS FETCHED     "     "INTO CXFER. RETURN IS MADE TO XFER.          ┆
0x22280…22300 UnusedSector ┆                      "         (R1;  "REF(MSG)                       KEPT                       "         R2;  "--             ┆
0x22300…22380 UnusedSector ┆                EVENT(IF CANCEL)           "         R4)  "LINK                           DEST                       "        :0┆
0x22380…22400 UnusedSector ┆..2;"0= FAULT                                                  "              "1= CANCEL                                        ┆
0x22400…22480 UnusedSector ┆         "              "2= XFER                                                    "  LABEL RETURN; BEGIN   R4=> SV14;   R5=> S┆
0x22480…22500 UnusedSector ┆V15;   R1=> R5;                              "REF(MSG)=> R5"   NOP;   R5@DMADRV_MESSAGE.OPERATION => R2 SHIFTRL MESS_CMP EXTRACT┆
0x22500…22580 UnusedSector ┆ MESS_CML;   IF R2=MESS_CABORT THEN   BEGIN                                 "COMMAND= CANCEL"     R5@DMADRV_MESSAGE.TRANSFER_LIS┆
0x22580…22600 UnusedSector ┆T => R2;     R4+1;     GOTO RETURN;   END;   IF R2<>MESS_CXFER THEN   BEGIN                                 "COMMAND<>XFER"     ┆
0x22600…22680 UnusedSector ┆GOTO RETURN;                        "RETURN FAULT"   END;   R5@DMADRV_MESSAGE.OPERATION => R2 EXTRACT (MESS_SCP+MESS_SCL)+#E800;┆
0x22680…22700 UnusedSector ┆   CXFER=> R4;   R2=> R4@XFER_ELEM.XFERPSW;            "TRANS. SECTION=>XFERPSW"   R5@DMADRV_MESSAGE.TRANSFER_LIST=> R2=> R4@XFE┆
0x22700…22780 UnusedSector ┆R_ELEM.LINK;   SWITCH NEXT_XFER_ELEM(R4) TO     ERR: SV14=>R4;                      "NONE"    DONE: SV14=> R4+2;                ┆
0x22780…22800 UnusedSector ┆   "OK"   END;  RETURN:   SV15=> R5;   NOP;   EXIT(R4); END "CHECK_OPERATION";  "***********************************************┆
0x22800…22880 UnusedSector ┆************************"  EXPORT PROCEDURE PUTBYTE  "THIS PROCEDURE CHECKS THAT THE CURRENT XFER LIST ELEMENT CONTAINS A    " "┆
0x22880…22900 UnusedSector ┆REFERENCE TO A NON EMPTY INPUT BUFFER. IF NOT, RETURN IS MADE TO ERROR." "PUTS THE BYTE AT THE NEXT BYTE POSITION IN THE INPUT B┆
0x22900…22980 UnusedSector ┆UFFER. IF NOT    " "ROOM FOR ANY MORE BYTES, RETURN IS MADE TO LAST.                       "         (R3;  "BYTE                ┆
0x22980…22a00 UnusedSector ┆           KEPT                       "         R4)  "LINK                           DEST                       "        :0..2;"┆
0x22a00…22a80 UnusedSector ┆0= ERROR                                                  "              "1= LAST                                               ┆
0x22a80…22b00 UnusedSector ┆    "              "2= MORE                                                   "  LABEL PUTBYTE2;  VAR   SV1:INTEGER;  BEGIN   R4┆
0x22b00…22b80 UnusedSector ┆=> SV14;   CXFER=> R4;   R4@XFER_ELEM.OP=> R4 SHIFTRL XFER_CMP EXTRACT XFER_CML;   IF R4<>XFER_CINP THEN   BEGIN     EXIT(SV14);┆
0x22b80…22c00 UnusedSector ┆                         "RETURN(ERROR)"   END;   CXFER=> R4;   IF R4@XFER_ELEM.COUNT=0 THEN   BEGIN                            ┆
0x22c00…22c80 UnusedSector ┆     "BUFFER EMPTY"     EXIT(SV14);                         "RETURN(ERROR)"   END;   R5=> SV15;   R2=> SV12;   R1=> SV1;   R4@XF┆
0x22c80…22d00 UnusedSector ┆+SIZE(XFER_ELEMTYPE)=> R7);   CXFER=> R4;   NOP;   R0 EXTRACT (XFER_SCP+XFER_SCL)+#E800=> R4@XFER_ELEM.BUFFPSW;   R4@XFER_ELEM.C┆
0x22d00…22d80 UnusedSector ┆OUNT=> R0=> R4@XFER_ELEM.XFOCNT;   UNS(7,ADDRESS(REGSTACK)=> R7);   EXIT(SV4=> R4,DONE); END "NEXT_XFER_ELEM";  "***************┆
0x22d80…22e00 UnusedSector ┆********************************************************" EXPORT PROCEDURE CHECK_OPERATION  "THE REFERENCED SYSTEM MSG IS INSPEC┆
0x22e00…22e80 UnusedSector ┆TED. IF IT DOES NOT HAVE A PROPER   " "FORMAT, RETURN IS MADE TO FAULT.                                       " "IF IT CONTAINS ┆
0x22e80…22f00 UnusedSector ┆A CANCEL COMMAND, RETURN IS MADE TO CANCEL AND THE      " "EVENT TO BE CANCELLED IS PRODUCED.                                   ┆
0x22f00…22f80 UnusedSector ┆  SV1:INTEGER;  BEGIN   R1=> SV1;   R2=> SV12;   R4=> SV14;   R5=> SV15;   R7=> SV17;    REPEAT                                "┆
0x22f80…23000 UnusedSector ┆TILL NOT EMPTY"     CXFER=> R4;     R4@XFER_ELEM.OP=> R2 SHIFTRL XFER_CMP EXTRACT XFER_CML;     IF R2<>XFER_COUT THEN     BEGIN ┆
0x23000…23080 UnusedSector ┆      SV12=> R2;       EXIT(SV14);                       "ILLEGAL CMD, RETURN NONE"     END;     IF R4@XFER_ELEM.COUNT=> R3=0 TH┆
0x23080…23100 UnusedSector ┆EN     BEGIN                               "BUFFER EMPTY"       SWITCH NEXT_XFER_ELEM(R4) TO         ERR:           BEGIN       ┆
0x23100…23180 UnusedSector ┆      SV12=> R2;             EXIT(SV14);                 "RETURN NONE"           END;        DONE: NOP;                       "D┆
0x23180…23200 UnusedSector ┆ONE"       END;      END;   UNTIL R3<>0;    CXFER=> R4;                                         "GET BYTE:"   R4@XFER_ELEM.ADDR=┆
0x23200…23280 UnusedSector ┆> R5-CBASE@INTEGER;   R4@XFER_ELEM.OFFSET=> R7;   SVS(R2);                              "SAVE PSW"   LDS(R4@XFER_ELEM.BUFFPSW=> ┆
0x23280…23300 UnusedSector ┆R1);   R5@BYTEARR[R7]=> R3;   LDS(R2);                              "RESTORE PSW"   INC(R4@XFER_ELEM.OFFSET);   DEC(R4@XFER_ELEM┆
0x23300…23380 UnusedSector ┆.COUNT);   SV1=> R1;   SV12=> R2;   SV14=> R4;   SV15=> R5;   SV17=> R7;   EXIT(R4,DONE);                        "RETURN(MORE)" ┆
0x23380…23400 UnusedSector ┆END "GETBYTE";  "***********************************************************************"  EXPORT PROCEDURE PUTWORD  "SIMILAR TO┆
0x23400…23480 UnusedSector ┆ PUTBYTE.                                                    "         (R3;  "WORD                           KEPT               ┆
0x23480…23500 UnusedSector ┆        "         R4)  "LINK                           DEST                       "        :0..2;"0= ERROR                      ┆
0x23500…23580 UnusedSector ┆                            "              "1= LAST                                                   "              "2= MORE   ┆
0x23580…23600 UnusedSector ┆                                                "  BEGIN   R4=> SV44;   R3=> SV53;   SWITCH PUTBYTE(R3,R4) TO              "PUTB┆
0x23600…23680 UnusedSector ┆YTE(WORD LOWER)"     0,1: EXIT(SV44);                    "0 ERROR,RETURN(ERROR)"                                         "1 LAST┆
0x23680…23700 UnusedSector ┆ER_ELEM.ADDR=> R5-CBASE@INTEGER;   R7=> SV17;   R4@XFER_ELEM.OFFSET=> R7;   SVS(R1);                              "SAVE PSW"   L┆
0x23700…23780 UnusedSector ┆DS(R4@XFER_ELEM.BUFFPSW=> R2);   R3=> R5@BYTEARR[R7];   LDS(R1);                              "RESTORE PSW"   INC(R4@XFER_ELEM.O┆
0x23780…23800 UnusedSector ┆FFSET);   DEC(R4@XFER_ELEM.COUNT);   SV1=> R1;   SV12=> R2;   SV15=> R5;   SV17=> R7;  PUTBYTE2:   IF R4@XFER_ELEM.COUNT<>0 THEN┆
0x23800…23880 UnusedSector ┆   BEGIN     EXIT(SV14=> R4+2);                  "RETURN(MORE)"   END   ELSE   BEGIN     SWITCH NEXT_XFER_ELEM(R4) TO       ERR:┆
0x23880…23900 UnusedSector ┆ EXIT(SV14=> R4+1);           "RETURN(LAST)"      DONE: GOTO PUTBYTE2;     END;    END; END "PUTBYTE";  "***********************┆
0x23900…23980 UnusedSector ┆************************************************"  EXPORT PROCEDURE GETBYTE  "THIS PROCEDURE CHECKS THAT THE CURRENT XFER LIST E┆
0x23980…23a00 UnusedSector ┆LEMENT CONTAINS A    " "REFERENCE TO AN OUTPUT BUFFER. IF NOT RETURN IS MADE TO NONE. IF THE   " "BUFFER IS EMPTY, THE NEXT XFER┆
0x23a00…23a80 UnusedSector ┆ ELEMENT IS FETCHED. THE XFER LIST       " "ELEMENT IS PROCESSED AS THE PREVIOUS. IF THE BUFFER IS NON EMPTY, THE  " "NEXT BYTE ┆
0x23a80…23b00 UnusedSector ┆IS DELIVERED AND RETURN IS MADE TO MORE.                     "         (R3;  "--                             BYTE               ┆
0x23b00…23b80 UnusedSector ┆        "         R4)  "LINK                           DEST                       "        :ERROR_DONE;              "0= NONE   ┆
0x23b80…23c00 UnusedSector ┆                                                "              "1= MORE                                                   "  VAR┆
0x23c00…23c80 UnusedSector ┆                                "  LABEL ERR1;  BEGIN   R3=> SV33;   R4=> SV34;    REPEAT     SWITCH NEXT_XFER_ELEM(R4) TO      ┆
0x23c80…23d00 UnusedSector ┆ ERR: 0=> R3;                      "NONE,CONTINUE"      DONE: 1=> R3;                      "OK,NEXT_XFER_ELEM"     END;    UNTIL┆
0x23d00…23d80 UnusedSector ┆ R3<>1;                          "UNTIL LAST ELEMENT"   R0=> R3;   NOP;   SWITCH PUTWORD(R3,R4) TO              "PUTWORD(RESULT,┆
0x23d80…23e00 UnusedSector ┆   0,1: GOTO ERR1;                       "FAULT,LAST:GOTO ERR1"     2: NOP;                             "MORE      :CONTINUE"   ┆
0x23e00…23e80 UnusedSector ┆END;    R1=> R3;   NOP;   SWITCH PUTWORD(R3,R4) TO              "PUTWORD(BYTECNT. LOWER)"   0,1: GOTO ERR1;                     ┆
0x23e80…23f00 UnusedSector ┆  "FAULT,LAST:GOTO ERR1"     2: NOP;                             "MORE      :CONTINUE"   END;    R2=> R3;   SWITCH PUTWORD(R3,R4┆
0x23f00…23f80 UnusedSector ┆) TO              "PUTWORD(BYTECNT. UPPER)"     0: GOTO ERR1;                       "FAULT:GOTO ERR1"   1,2: NOP;               ┆
0x23f80…24000 UnusedSector ┆              "LAST,MORE:CONTINUE"   END;    SV33=> R3;   NOP;   EXIT(SV34=> R4,DONE);                 "RETURN(OK)"  ERR1:   SV3┆
0x24000…24080 UnusedSector ┆3=> R3;   NOP;   EXIT(SV34=> R4,ERR);                  "RETURN(ERROR)" END "TERMINATE_OPERATION";  "****************************┆
0x24080…24100 UnusedSector ┆,RETURN(LAST)"       2: NOP;                           "2 MORE,CONTINUE"   END;    NOP;   R3 SHIFTRL 8;   SWITCH PUTBYTE(R3,R4) ┆
0x24100…24180 UnusedSector ┆TO              "PUTBYTE(WORD UPPER"     0: EXIT(SV44);                      "ERROR, RETURN(ERROR)"     1: SV44=> R4+1;         ┆
0x24180…24200 UnusedSector ┆            "LAST, RETURN(LAST)"     2: SV44=> R4+2;                     "MORE, CONTINUE"   END;    SV53=> R3;                  ┆
0x24200…24280 UnusedSector ┆          "RESTORE WORD"   EXIT(R4); END "PUTWORD";  "***********************************************************************"  ┆
0x24280…24300 UnusedSector ┆EXPORT PROCEDURE GETWORD  "SIMILAR TO GETBYTE, EXCEPT THE NEXT WORD IF ANY IS FETCHED.            "         (R3;  "--           ┆
0x24300…24380 UnusedSector ┆                  WORD                       "         R4)  "LINK                           DEST                       "        ┆
0x24380…24400 UnusedSector ┆:ERROR_DONE;              "0= NONE                                                   "              "1= OK                      ┆
0x24400…24480 UnusedSector ┆                               "  BEGIN   R4=> SV44;   SWITCH GETBYTE(R3,R4) TO              "GETBYTE(WORD LOWER)"     ERR: EXIT┆
0x24480…24500 UnusedSector ┆(SV44);                    "NONE, RETURN(NONE)"    DONE: NOP;                           "OK, CONTINUE"   END;    R3=> SV53;     ┆
0x24500…24580 UnusedSector ┆                       "SAVE LOWER BYTE"   SWITCH GETBYTE(R3,R4) TO              "GETBYTE(WORD UPPER)"     ERR: EXIT(SV44);     ┆
0x24580…24600 UnusedSector ┆               "NONE, RETURN(NONE)"    DONE: NOP;                           "OK, CONTINUE"   END;    R3 SHIFTLL 8 +(SV53 => R4);┆
0x24600…24680 UnusedSector ┆           "UPPER/_8 +LOWER=> WORD"   EXIT(SV44=> R4,DONE); END "GETWORD";  "***************************************************┆
0x24680…24700 UnusedSector ┆********************"  EXPORT PROCEDURE TERMINATE_OPERATION  "THIS PROCEDURE SKIPS FORWARD TO THE LAST XFER ELEMENT AND STORES T┆
0x24700…24780 UnusedSector ┆HE   " "RESULT AND THE BYTECOUNT(=NUMBER OF TRANSFERRED  BYTES).               "         (R0;  "RESULT                         K┆
0x24780…24800 UnusedSector ┆EPT(COMPLETION CODE)      "         R1;  "BYTECOUNT(LEAST SIGF PART)     KEPT                       "         R2;  "BYTECOUNT(MO┆
0x24800…24880 UnusedSector ┆ST SIGF KIND)      KEPT                       "         R4)  "LINK                           DEST                       "       ┆
0x24880…24900 UnusedSector ┆ :ERROR_DONE;              "0= ERROR                                                  "              "1= OK                     ┆
0x24900…24980 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x2…]
0x24a80…24b00 UnusedSector ┆******************************************"  EXPORT PROCEDURE NEXT_OPERATION  "THE REFERENCED SYSTEM MESSAGE IS INSPECTED. IF IT┆
0x24b00…24b80 UnusedSector ┆ DOES NOT HAVE A     " "PROPER FORMAT, RETURN IS MADE TO ERROR. IF IT CONTAINS A CANCEL CMD   " "RETURN IS MADE TO CANCEL AND TH┆
0x24b80…24c00 UnusedSector ┆E EVENT TO BE CANCLLED IS DELIVERED.   " "IF THE MESSAGE CONTAINS A PROPER I/O COMMAND, RETURN IS MADE TO CMD.  " "AND THE OPERA┆
0x24c00…24c80 UnusedSector ┆TION CODE AND BYTECOUNT ARE RETURNED.                    "         (R0;  "--                             BYTECOUNT(LEAST SIGF PA┆
0x24c80…24d00 UnusedSector ┆RT)"         R1;  "REF(MSG)                       BYTECOUNT(MOST SIGF PART) "         R2;  "--                             OPERA┆
0x24d00…24d80 UnusedSector ┆TION/EVENT           "         R4)  "LINK                           DEST                      "        :0..2;"0= ERROR          ┆
0x24d80…24e00 UnusedSector ┆                                       "              "1= CANCEL                                                "              "┆
0x24e00…24e80 UnusedSector ┆2= COMMAND                                               "   BEGIN   R4=> SV34;   SWITCH CHECK_OPERATION(R1,R2,R4) TO     0: EXI┆
0x24e80…24f00 UnusedSector ┆T(SV34);                      "ERROR,RETURN(ERROR)"     1: EXIT(SV34=> R4+1);               "CANCEL,RETURN(CANCEL)"     2: NOP; ┆
0x24f00…24f80 UnusedSector ┆                            "XFER,CONTINUE"   END;    R3=> SV33;   SWITCH GETWORD(R3,R4) TO     ERR:                            ┆
0x24f80…25000 UnusedSector ┆    "NONE,GOTO ERROR"       BEGIN         SV33=> R3;         EXIT(SV34);       END;    DONE: NOP;                           "OK,┆
0x25000…25080 UnusedSector ┆WORD=> OPERATION"   END;    R3=> R2;   8=> R1;   WHILE R1<>1 DO   BEGIN     R3=> R0;                            "WORD=> CNT LOWE┆
0x25080…25100 UnusedSector ┆R"     SWITCH GETWORD(R3,R4) TO       ERR:                              "NONE;GOTO ERROR"         BEGIN           SV33=> R3;    ┆
0x25100…25180 UnusedSector ┆       EXIT(SV34);         END;      DONE: NOP;                         "OK,CONTINUE"     END;      R1-1;   END;   R3=> R1;     ┆
0x25180…25200 UnusedSector ┆                         "WORD=> CNT UPPER"   SWITCH NEXT_XFER_ELEM(R4) TO     ERR,    DONE: NOP;                           "NON┆
0x25200…25280 UnusedSector ┆E,OK,CONTINUE"   END;    SV33=> R3;   EXIT(SV34=> R4+2); END "NEXT_OPERATION";  ENDMODULE Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x25280…25300 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x5…]
0x25580…25600 UnusedSector ┆Z Z ,   1   6   Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x25600…25680 UnusedSector ┆     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░                  ░░░                             ┆
0x25680…25700 UnusedSector ┆"-----------------------------------------------------------------------" "                                                     ┆
0x25700…25780 UnusedSector ┆                  " PROCEDURE DUMMY_COR" "THIS DUMMY COROUTINE RECIEVES ALL THE SYSTEM ANSWERS THAT THE DRIVER   " "ITSELF SENDS┆
0x25780…25800 UnusedSector ┆ OUT AS AN ANSWER TO ITS OWN SYSTEM MESSAGES.              "        (R4);  "LINK                           DEST                 ┆
0x25800…25880 UnusedSector ┆     "  BEGIN   ADDRESS(SEM_OPDUMMY)=> R5;   REPEAT     MON(COR,AMON,WAIT_OP,R4,R5,R7);   UNTIL R0<>R0;   EXIT(R4); END "DUMMY_C┆
0x25880…25900 UnusedSector ┆OR"; "-----------------------------------------------------------------------" "                                                ┆
0x25900…25980 UnusedSector ┆                       " "               ANSWER COROUTINE                                        " "                            ┆
0x25980…25a00 UnusedSector ┆                                           " "-----------------------------------------------------------------------"  PROCEDUR┆
0x25a00…25a80 UnusedSector ┆E ANS_COR  "THIS COROUTINE FILLS UP THE SYSTEM STATUS RECORD WITH THE COMPLETION   " "CODE AND BYTECOUNT/CON_ID AND IT SENDS THE┆
0x25a80…25b00 UnusedSector ┆ RESULT OF THE SYSTEM MESSAGE" "TO THE SYSTEM.                                                         "         (R4); "LINK    ┆
0x25b00…25b80 UnusedSector ┆                        DEST                      "  VAR   SV24:INTEGER;   BEGIN   R4=> SV24;    REPEAT     MON(COR,AMON,WAIT_OP┆
0x25b80…25c00 UnusedSector ┆,R4,ADDRESS(SEM_OPANS)=> R5,R7);     R4=> OPREF;                         "SAVE OPERATION ADDRESS"     NOP;     IF R4@ANS_OP.OPN=┆
0x25c00…25c80 UnusedSector ┆> R0=ANS_OPN_ERR THEN     BEGIN       1 SHIFTLL BN_ERROR=> R0;          "FORMAT ERROR IN CHECK OPR."       FOMER => R1 SHIFTLL 8┆
0x25c80…25d00 UnusedSector ┆ => R4@ANS_OP.AOHEAD;     END     ELSE     BEGIN       R4@ANS_OP.AOHEAD=> R0 EXTRACT 2 SHIFTLL 2 + #E800; "TRANS SECTION"       ┆
0x25d00…25d80 UnusedSector ┆R4@ANS_OP.AOHEAD=> R1 SHIFTRL 2 EXTRACT 2 SHIFTLL 2 + #E800;                                                       "BUFFER SECTI┆
0x25d80…25e00 UnusedSector ┆ON"       CXFER=> R5;       R4@ANS_OP.AOTLST=> R2=> R5@XFER_ELEM.LINK;"ABS TRANS LIST ADDRESS"                                  ┆
0x25e00…25e80 UnusedSector ┆               "INTO TRANSFER LIST"       R0=> R5@XFER_ELEM.XFERPSW;       R1=> R5@XFER_ELEM.BUFFPSW;       R4@ANS_OP.AOCC=> R0;┆
0x25e80…25f00 UnusedSector ┆              "COMPLETION CODE=> R0"       R4@ANS_OP.AOCNT=> R1;             "BYTE COUNT=> R1"       0=> R2;                    ┆
0x25f00…25f80 UnusedSector ┆       "EXTEND BYTE COUNT TO LONG"       SWITCH TERMINATE_OPERATION(R0,R1,R2,R4) TO         ERR: 1 SHIFTLL BN_ERROR=> R0;   "ERR┆
0x25f80…26000 UnusedSector ┆OR, RESULT<>0"        DONE: 0=> R0;                    "OK, RESULT=0"       END;        OPREF=> R4;     END;      R4@ANS_OP.AOHE┆
0x26000…26080 UnusedSector ┆AD=> R3 SHIFTRL 8;    "TAKE RESULT"     R3=> OP.BUF[1];                     "SET COMPLETION CODE"     R0=> OP.BUF[0];           ┆
0x26080…26100 UnusedSector ┆          "SET RESULT"     R4@ANS_OP.AOEVENT=> R2=> OP.EVT;     0=> R4@INTEGER;                     "RELEASE INT OP"     ADDRESS┆
0x26100…26180 UnusedSector ┆(OP)=> R4;     NOP;     MON(COR,AMON,CM_SEND_SYS_ANS,R4,R7);   UNTIL R0<>R0;   EXIT(SV24); END "ANSCOR";  "---------------------┆
0x26180…26200 UnusedSector ┆  BFD             *    ░ H  ░░ |   ░     ░     ░     ░     ░     ░BM   ░     ░     ░     ░     ░  LT ░GRAF ░     ░     ░     ░  ┆
0x26200…26280 UnusedSector ┆   ░U_DR ░ER   ░     ░     ░     ░LTU_ ░.SS  ░     ░     ░     ░  CB ░ROC. ░     ░     ░     ░     ░IV_P ░C.SS ░     ░     ░    ┆
0x26280…26300 UnusedSector ┆ ░XFER ░ROC. ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░┆
0x26300…26380 UnusedSector ┆LE.TS1_STATUS=> R4;       IF R4[BN_SET]  THEN       OUTPUT_TEXT(R7,R4);     END;  MESS_OP_APPEND:     LTU_IF(R7,R4);     END "CA┆
0x26380…26400 UnusedSector ┆SE";   UNTIL R0 <> R0; END "LTU_COR";  "--------------------------------------------------------------------" PROCEDURE PDP_COR ┆
0x26400…26480 UnusedSector ┆"THIS COROUTINE CONTROLS THE DATA TRANSFER BETWEEN THE APPLICATION   " "AND THE LTU. IT RECIEVES AN INTERNAL OPERATION FROM THE ┆
0x26480…26500 UnusedSector ┆APPLICATION " "INTERFACE COROUTINE AND DEPENDING UPON THE COMMAND(THE OP_TYPE) IT  " "HANDLES THE OPERATION, AND IF THE COMMAND ┆
0x26500…26580 UnusedSector ┆IS A BOOT OR A WRITE COM- " "MAND IT SENDS AN INTERNAL OPERATION TO THE LTU COROUTINE.           "          (R4); "LINK         ┆
0x26580…26600 UnusedSector ┆               DEST                      "  BEGIN   REPEAT     0=> R3;     MON(COR,AMON,WAIT_OP,R4,ADDRESS(SEM_OPPDP)=> R5,R7); ┆
0x26600…26680 UnusedSector ┆    R4@MES_OP.MOLINEREF=> R7;              "R7 CONTAINS REF(LINCB)"     NOP;     IF R7@LINCB.STATUS <>0 THEN     BEGIN       LTU┆
0x26680…26700 UnusedSector ┆ER => R1;                         "LTU ERROR, STATUS <> 0"       1 SHIFTLL BN_ERROR => R0;       0=> R2;       GENERATE_ANSWER_O┆
0x26700…26780 UnusedSector ┆PERATION(R0,R1,R2,R4,R6);     END     ELSE     BEGIN       R4@MES_OP.OPN=> R5;       CASE R5 OF  MESS_OP_BOOT:       BEGIN      ┆
0x26780…26800 UnusedSector ┆   UPDATE_LINCB(R4,R7,R6);         1=> R3;       END;  MESS_OP_APPEND:       BEGIN         IF R7@LINCB.CH_STATE=> R1= CH_IDLE TH┆
0x26800…26880 UnusedSector ┆EN         BEGIN           UPDATE_LINCB(R4,R7,R6);           1=> R3;           CH_WRITE=> R1=> R7@LINCB.CH_STATE;         END   ┆
0x26880…26900 UnusedSector ┆      ELSE         BEGIN           R4@MES_OP.MOEVENT => R2;           MON(SAVEEVENT,R2,R7);         END;       END;  MESS_OP_REA┆
0x26900…26980 UnusedSector ┆D:       BEGIN         QUEUE_OPERATION(R4,R7,R6);       END;       END "CASE";        IF R3=1 THEN       MON(COR,AMON,SIGNAL_OP,┆
0x26980…26a00 UnusedSector ┆R4,ADDRESS(SEM_OPLTU)=> R5,R7);       BNSYSTEMMESSAGE=> R2;       MON(RECOVEREVENTS,R2,R7);     END;   UNTIL R0 <> R0;   EXIT(R4┆
0x26a00…26a80 UnusedSector ┆); END "PDP_COR";  "--------------------------------------------------------------------" Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x26a80…26b00 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x1…]
0x26b80…26c00 UnusedSector ┆--------------------------------------------------" PROCEDURE LTU_COR "THIS COROUTINE HANDLES ALL DATA TRANSFER BETWEEN THE APPL┆
0x26c00…26c80 UnusedSector ┆ICATION AND  " "THE LTU. FURTHER IT RECIEVES THE INTERRUPTS FROM THE LTU AND SCANS ALL" "THE LTU COMMUNICATION TABLES.          ┆
0x26c80…26d00 UnusedSector ┆                               "          (R4); "LINK                        DEST                        "  BEGIN   REPEAT     A┆
0x26d00…26d80 UnusedSector ┆DDRESS(OP_EXT_INTRPT)=> R4;     INTRPT=> R1=> R4@EXT_OP.OPN;             "EXT OPTYPE=INTRPT"     ADDRESS(SEM_OPLTU)=> R5=> R4@EX┆
0x26d80…26e00 UnusedSector ┆T_OP.SEM;     MON(COR,AMON,SEM_ALLOC_INT,R4,R7);     MON(COR,AMON,WAIT_OP,R4,R5,R7);     NOP;     R4@EXT_OP.OPN=> R6;     IF R6 ┆
0x26e00…26e80 UnusedSector ┆<> INTRPT  THEN     BEGIN       R4@TRANS_OP.TOLINEREF=> R7;          "REF(LINCB)=> R7"       IF R6 <> MESS_OP_BOOT THEN       0=┆
0x26e80…26f00 UnusedSector ┆>R4@INTEGER;                       "RELEASE INT OP"     END;      CASE R6 OF  INTRPT:     INTERRUPT_HANDLER(R4);  MESS_OP_BOOT: ┆
0x26f00…26f80 UnusedSector ┆    BOOT_HANDLER(R4,R7,R6);  "INIT_CMD:     "INIT_LINE(R7,R4);  CH_READ_BREAK:     BEGIN       3=> R2;                          ┆
0x26f80…27000 UnusedSector ┆    "WORD COUNT=3"       R7@LINCB.CH_I_F_ADDR=> R1;       ADDRESS(I_F_TAB)=> R5;       READ_WORDS(R1,R2,R5,R4);       R5@I_F_TAB┆
0x27000…27080 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x27080…27100 UnusedSector ┆  BFD    1        ;    ░ H  ░░ |   ░     ░     ░     ░     ░     ░BM   ░     ░     ░     ░     ░  LT ░GRAF ░     ░     ░     ░  ┆
0x27100…27180 UnusedSector ┆   ░U_DR ░ER   ░     ░     ░     ░LTU_ ░.SS  ░     ░     ░     ░  CB ░ROC. ░     ░     ░     ░     ░IV_P ░C.SS ░     ░     ░    ┆
0x27180…27200 UnusedSector ┆ ░XFER ░ROC. ░     ░     ░     ░  SU ░COR. ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░┆
0x27200…27280 UnusedSector ┆     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░                  ░░░                             ┆
0x27280…27300 UnusedSector ┆EXPORT PROCEDURE GENERATE_ANSWER_OPERATION          (R0;  "COMPLETION CODE                DEST                       "         R┆
0x27300…27380 UnusedSector ┆1;  "RESULT                         DEST                       "         R2;  "BYTECOUNT                      KEPT              ┆
0x27380…27400 UnusedSector ┆         "         R4;  "OPERATION ADDRESS              KEPT                       "         R6); "LINK                         ┆
0x27400…27480 UnusedSector ┆  DEST                       "  VAR   SV26,SV27:INTEGER;  BEGIN   R6=> SV26;   R7=> SV27;   R0=> R4@ANS_OP.AOCC;                ┆
0x27480…27500 UnusedSector ┆  "SET COMPLETION CODE"   R2=> R4@ANS_OP.AOCNT;                 "SET BYTE COUNT/FILE ID"   R4@ANS_OP.AOHEAD=> R0 SHIFTLL 8;     ┆
0x27500…27580 UnusedSector ┆ "PACK RESULT WITH SECTION BITS"   R0+R1;   SWP(R0);   R0=> R4@ANS_OP.AOHEAD;                "SET RESULT"   R5=> R0;            ┆
0x27580…27600 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0xb…]
0x27b80…27c00 UnusedSector ┆Z Z =   B   G   L   Q   Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x27c00…27c80 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x1…]
0x27d00…27d80 UnusedSector ┆SWITCH MON(LOOKUPPROCESS,R0,R7):ERROR_DONE TO     ERR:                                   "PROCESS UNKNOWN"        BEGIN         ┆
0x27d80…27e00 UnusedSector ┆ LCBREF => R7;                     "REF TO LINCB INTO R7"          10=> R2=> R7@LINCB_BREAK.OUT_BTCNT;          ADDRESS(UNKNOWN)┆
0x27e00…27e80 UnusedSector ┆=> R2=> R7@LINCB_BREAK.OUT_ADDR;          MON(COR,AMON,SIGNAL_OP,R4,ADDRESS(SEM_OPLTU)=> R5,R7);          EXIT(R6,NO_ANSWER);   ┆
0x27e80…27f00 UnusedSector ┆     END;    DONE: NOP;                              "PROCESS FOUND"   END "SWITCH MON(LOOKUPPROCESS)";   LCBREF => R7;   SWITCH┆
0x27f00…27f80 UnusedSector ┆ DEQUEUE_OPERATION(R0,R7,R6) TO     ERR: NOP;    DONE:        BEGIN          OPREF => R4;          0 => R4@INTEGER;             ┆
0x27f80…28000 UnusedSector ┆                  "SAVE R5"   MON(COR,AMON,SIGNAL_OP,R4,ADDRESS(SEM_OPANS)=> R5,R7);   R0=> R5;                              "RE┆
0x28000…28080 UnusedSector ┆ESTABLISH R5"   SV27 => R7;   EXIT(SV26); END "GENERATE_ANSWER_OPERATION";  "---------------------------------------------------┆
0x28080…28100 UnusedSector ┆-------------------"  EXPORT PROCEDURE DEQUEUE_OPERATION "THIS PROCEDURE DEQUEUES THE TRANSFER QUEUE. IF ANY QUEUED OPERATION  "┆
0x28100…28180 UnusedSector ┆ "THE FIRST OPERATION IS WRITTEN INTO THE LINCB AND THE STATE IS SET   " "ACCORDING TO THE OPERATION.                           ┆
0x28180…28200 UnusedSector ┆               "          (R0;  "PCB INDEX                   KEPT                       "          R7;  "REF(LINCB)             ┆
0x28200…28280 UnusedSector ┆     KEPT                       "          R6)  "LINK                        DEST                       "         :ERROR_DONE;  ┆
0x28280…28300 UnusedSector ┆             "0= NOT FOUND                                           "               "1= FOUND                                  ┆
0x28300…28380 UnusedSector ┆             "  LABEL FOUND,RETURN;  VAR   SV2,SV4,SV5,SV6:INTEGER;  BEGIN   R2=> SV2;   R4=> SV4;   R5=> SV5;   R6=> SV6;   R7@┆
0x28380…28400 UnusedSector ┆LINCB.TRQUEADDR=> R6=> R5;   WHILE R6 <> 0 DO   BEGIN     REPEAT       IF R6@MES_OP.MOPCB => R4=R0 THEN       GOTO FOUND       E┆
0x28400…28480 UnusedSector ┆LSE       R6@INTEGER => R6;     UNTIL R6= R7@LINCB.TRQUEADDR;     GOTO RETURN; FOUND:     IF R6@INTEGER= R6 THEN     BEGIN      ┆
0x28480…28500 UnusedSector ┆ 0=> R4=> R7@LINCB.TRQUEADDR;       R6=> R4;       0=> R2=> R6@INTEGER     END     ELSE     BEGIN       R6=> R4;       WHILE R4@┆
0x28500…28580 UnusedSector ┆INTEGER <> R6 DO R4@INTEGER => R4;       R6@INTEGER=> R2=> R4@INTEGER;       0=> R6@INTEGER;                      "CLEAR LINK TO┆
0x28580…28600 UnusedSector ┆ NEXT ELEM"       R6=> R4;       IF R6= R5 THEN       R2=> R7@LINCB.TRQUEADDR;             "LINCB POITER TO NEXT ELEM"     END; ┆
0x28600…28680 UnusedSector ┆    UPDATE_LINCB(R4,R7,R6);     CH_READ => R2=> R7@LINCB.CH_STATE;     SV6 => R2+1=> SV6;   END; RETURN:   SV2=> R2;   SV4=> R4;┆
0x28680…28700 UnusedSector ┆   SV5=> R5;   EXIT(SV6); END "DEQUEUE_OPERATION";  "---------------------------------------------------------------------" PROC┆
0x28700…28780 UnusedSector ┆EDURE FIND_PROCESS "THIS PROCEDURE SENDS A SIGNAL TO THE PROCESS IDENTIFIED IN THE INTER-" "NAL OPERATION, AND WAITS FOR A SYSTE┆
0x28780…28800 UnusedSector ┆M MESSAGE FROM THE PROCESS.      " "IF THE PROCESS IS UNKNOWN OR BUSY A COMMAND A COMMAND TO WRITE THIS  " "TO THE TERMINAL IS S┆
0x28800…28880 UnusedSector ┆IGNALLED TO THE LTU COROUTINE. IF A SYSTEM MES-  " "SAGE IS RECIEVED, THE REFERENCE TO THE EXTERNAL OPERATION CONCERNING " "THE ┆
0x28880…28900 UnusedSector ┆MESSAGE IS AN OUTPUT PARAMETER.                                  "          (R4;  "REF(INT_OP)                         REF(EXT_O┆
0x28900…28980 UnusedSector ┆P)        "          R6)  "LINK                                DEST               "         : FIND_OUT;  VAR   SV6,LCBREF:INTEGE┆
0x28980…28a00 UnusedSector ┆R;  BEGIN   R4=> OPREF;   R6=> SV6;   ADDRESS(BK_BUF)=> R0;   R4@BREAK_OP.LCBREF=> R7=> LCBREF;        "REF TO LINCB INTO R7"   ┆
0x28a00…28a80 UnusedSector ┆                  "SAVE PCB INDEX"   ADDRESS(BK_BUF)=> R0;   MON(SENDSIGNAL,R0,R7);                   "SIGNAL TO NEW PROCESS"   ┆
0x28a80…28b00 UnusedSector ┆ADDRESS(OP_EXT_LOOK)=> R4;   ADDRESS(PROC_NAME)=> R0;                 "ADDRESS TO OWN PROCESS"   ADDRESS(SEM_OPDUMMY)=> R1=> R4@┆
0x28b00…28b80 UnusedSector ┆EXT_OP.SEM;   MON(COR,AMON,SEM_SEND_SYS_MES,R0,R4,R7);   0=> R3;    ADDRESS(EX_OP)=> R4;   ADDRESS(SEM_OPBREAK)=> R5 => R4@EXT_O┆
0x28b80…28c00 UnusedSector ┆P.SEM;   REPEAT     MON(COR,AMON,SEM_ALLOC_SYS_MES,R4,R7);     MON(COR,AMON,WAIT_OP,R4,R5,R7);     R4@EXT_OP.EVT=> R2;     SWITC┆
0x28c00…28c80 UnusedSector ┆H MON(IDENTIFYSENDER,R0,R2,R7):ERROR_DONE TO       ERR,      DONE: NOP;     END "SWITCH MON(IDENTIFYSENDER)";     NOP;     IF R0┆
0x28c80…28d00 UnusedSector ┆=R6 THEN     BEGIN       LCBREF=> R7;       CH_IDLE=> R1=> R7@LINCB.CH_STATE;       R7@LINCB.FITERADDR=> R4;       R0=> R4@TERMC┆
0x28d00…28d80 UnusedSector ┆B.PROCID;       1=> R3;       ADDRESS(OP_EXT_DUMMY)=> R4;       ADDRESS(SEM_OPBREAK)=> R5=> R4@EXT_OP.SEM;     END     ELSE     ┆
0x28d80…28e00 UnusedSector ┆BEGIN       IF R0<> OWN_PCBINDEX => R1 THEN       MON(SAVEEVENT,R2,R7);     END;   UNTIL R0= OWN_PCBINDEX=>R1;   IF R3=0 THEN   ┆
0x28e00…28e80 UnusedSector ┆BEGIN     LCBREF=> R7;     ADDRESS(BUSY)=> R1=> R7@LINCB_BREAK.OUT_ADDR;     6=> R1=> R7@LINCB_BREAK.OUT_BTCNT;     OPREF=> R4; ┆
0x28e80…28f00 UnusedSector ┆    NOP;     MON(COR,AMON,SIGNAL_OP,R4,ADDRESS(SEM_OPLTU)=> R5,R7);   END;   ADDRESS(OP_EXT_DUMMY)=>R4;   R2=> R4@EXT_OP.EVT;   ┆
0x28f00…28f80 UnusedSector ┆MON(COR,AMON,CM_SEND_SYS_ANS,R4,R7);   SV6=> R6;   BNSYSTEMMESSAGE=> R2;   MON(RECOVEREVENTS,R2,R7);   IF R3<>0 THEN   BEGIN    ┆
0x28f80…29000 UnusedSector ┆ OPREF=> R4;     0=> R4@INTEGER;                        "RELEASE INT OP"     ADDRESS(EX_OP)=> R4;                   "OUTPUT PARA┆
0x29000…29080 UnusedSector ┆METER IS SET"     EXIT(R6,PROCESS_ANSWER);   END   ELSE     EXIT(R6,NO_ANSWER); END "FIND_PROCESS";  "--------------------------┆
0x29080…29100 UnusedSector ┆-------------------------------------------"  EXPORT PROCEDURE PROCESS_BREAK "THIS PROCEDURE RECIEVES THE BREAK COMMAND FROM A T┆
0x29100…29180 UnusedSector ┆ERMINAL. IF THE LINE" "IS IDLE A (TO:) IS WRITTEN TO THE TERMINAL, IF THE LINE IS BUSY THE   " "CURRENT COMMAND IS SAVED BEFORE ┆
0x29180…29200 UnusedSector ┆THE WRITING TO THE TERMINAL.          "          (R7;  "REF(LINCB)                  KEPT                       "          R4); "┆
0x29200…29280 UnusedSector ┆LINK                        DEST                       "  VAR   SV2,SV4,SV7:INTEGER;  BEGIN   R2=> SV2;   R4=> SV4;   R7=> SV7; ┆
0x29280…29300 UnusedSector ┆  BNSYSTEMMESSAGE=> R2;   MON(RECOVEREVENTS,R2,R7);   SV7=> R7;   IF R7@LINCB.CH_STATE=> R2= CH_WRITE LOGOR R2=CH_READ THEN   BE┆
0x29300…29380 UnusedSector ┆GIN     R7@LINCB.MESS_EVNT=> R2;     MON(SAVEEVENT,R2,R7);   END;   SV7=> R7;   CH_BREAK=> R4=> R7@LINCB.CH_STATE;   ADDRESS(TO_┆
0x29380…29400 UnusedSector ┆BREAK)=> R4=> R7@LINCB_BREAK.OUT_ADDR;   4=> R4=> R7@LINCB_BREAK.OUT_BTCNT;   REPEAT     2 => R2;     R7@LINCB.CH_I_F_ADDR => R1┆
0x29400…29480 UnusedSector ┆;     ADDRESS(I_F_TAB)=> R5;     READ_WORDS(R1,R2,R5,R4);     R5@I_F_TABLE.TS1_STATUS => R2;   UNTIL R2[BN_SET];   OUTPUT_TEXT(R┆
0x29480…29500 UnusedSector ┆7,R4);   CH_READ_BREAK=> R4=> R7@LINCB.CH_STATE;   BNSYSTEMMESSAGE=> R2;   MON(RECOVEREVENTS,R2,R7);   SV2 => R2;   SV7 => R7;  ┆
0x29500…29580 UnusedSector ┆ EXIT(SV4); END "PROCESS_BREAK";  "---------------------------------------------------------------------" PROCEDURE QUEUE_OPERAT┆
0x29580…29600 UnusedSector ┆ION "THIS PROCEDURE PUTS THE INTERNAL OPERATION INTO THE TRANSFER QUEUE.  "          (R4;  "REF(INT OP)                 KEPT    ┆
0x29600…29680 UnusedSector ┆                   "          R7;  "REF(LINCB)                  KEPT                       "          R6); "LINK                ┆
0x29680…29700 UnusedSector ┆    "RELEASE INT OP"          EXIT(SV6 => R6,NO_ANSWER);        END;   END "SWITCH DEQUEUE_OPERATION";   R0=> R6;               ┆
0x29700…29780 UnusedSector ┆O     ERR:        BEGIN          0 => R2;          PCB_ERR => R0;          1 SHIFTLL BN_ERROR => R1;          R6=> R7;          ┆
0x29780…29800 UnusedSector ┆GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6);          R7=> R6;        END;    DONE: NOP;                             "R0 CONTAINS ┆
0x29800…29880 UnusedSector ┆THE PCB-INDEX"   END "SWITCH MON(IDENTIFYSENDER)";   R5=> R4;   R0=> (R1+1)@INTEGER; RETURN:   0=> R4@INTEGER;                  ┆
0x29880…29900 UnusedSector ┆       "RELEASE INT OP"   SV0=> R0;   SV1=> R1;   SV2=> R2;   SV5=> R5;   SV7=> R7;   EXIT(SV6); END "QUEUE_OPERATION";  "------┆
0x29900…29980 UnusedSector ┆---------------------------------------------------------------"  EXPORT PROCEDURE FIND_INT_OP "THIS PROCEDURE CHEARCHES THE INT┆
0x29980…29a00 UnusedSector ┆ERNAL OPERATION BUFFER FOR AN EMPTY   " "OPERATION. WHEN FOUND IT DELIVERES A REFERENCE TO THIS OPERATION AS   " "AN OUTPUT PARA┆
0x29a00…29a80 UnusedSector ┆METER.                                                  "        (R6;  "--                             REF TO INT OP            ┆
0x29a80…29b00 UnusedSector ┆ "         R4)  "LINK                           DEST                      "        :ERROR_DONE;              "0= NOT FOUND      ┆
0x29b00…29b80 UnusedSector ┆                                       "              "1= FOUND                                                 "  VAR   SV5:INT┆
0x29b80…29c00 UnusedSector ┆EGER;  BEGIN   R5=> SV5;   0=> R5;    REPEAT     R5+1;     IF (INTO_BUF_DESC[R5]=> R6)@INTEGER=0 THEN     BEGIN       1=> R6@INT┆
0x29c00…29c80 UnusedSector ┆EGER;       SV5=> R5;       EXIT(R4,DONE);                      "INT OP FOUND"     END;   UNTIL R5=MAX_INT_OP;   SV5=> R5;   EXI┆
0x29c80…29d00 UnusedSector ┆T(R4,ERR);                           "INT OP NOT FOUND" END "FIND_INT_OP";  "---------------------------------------------------┆
0x29d00…29d80 UnusedSector ┆--------------------"  PROCEDURE PROCESS_ABORT_REQUEST  "THIS PROCEDURE RECOVERS ALL SAVED SYSTEM MESSAGES. THE EVENT QUEUE OF  ┆
0x29d80…29e00 UnusedSector ┆" "SYSTEM MESSAGES IS INSPECTED FOR A REQUEST TO BE ABORTED.              "         (R3;  "CANEVENT                       KEPT  ┆
0x29e00…29e80 UnusedSector ┆                     "         R4); "LINK                           DEST                       "  LABEL FOUND;  VAR   SEVENT,SV2┆
0x29e80…29f00 UnusedSector ┆4:INTEGER;  BEGIN   R4=> SV24;   ADDRESS(EX_OP)=> R4;   BNSYSTEMMESSAGE=> R2;   MON(RECOVEREVENTS,R2,R7);             "RECOVER (┆
0x29f00…29f80 UnusedSector ┆SYSTEM MESSAGES)"   MSIDENT=> R2=> R4@EXT_OP.EVT;   0=> R1=> R4@EXT_OP.BUF[0];            "RESULT=0, OK"   MON(COR,AMON,CM_SEND_┆
0x29f80…2a000 UnusedSector ┆SYS_ANS,R4,R7);    0 => R5;   REPEAT     LINTB[R5] => R7;     R7@LINCB.CH_STATE => R0;     R7@LINCB.MESS_EVNT => R6;     IF R6 =┆
0x2a000…2a080 UnusedSector ┆R3 LOGAND (R0 =CH_WRITE LOGOR R0 = CH_READ) THEN     BEGIN       CH_IDLE => R6=> R7@LINCB.CH_STATE;       0 => R6=> R7@LINCB.CUR┆
0x2a080…2a100 UnusedSector ┆        DEST                       "  LABEL FOUND,RETURN;  VAR   SV0,SV1,SV2,SV5,SV7,SV6:INTEGER;  BEGIN   R0=> SV0;   R1=> SV1;┆
0x2a100…2a180 UnusedSector ┆   R2=> SV2;   R5=> SV5;   R6=> SV6;   R7=> SV7;   R7@LINCB.LTLINO=> R6;   LQD[R6]=> R0;   TRANS_MESS_NO=> R2;    REPEAT     IF ┆
0x2a180…2a200 UnusedSector ┆R0@INTEGER =0 THEN     GOTO FOUND;     R0+SIZE(MES_OP);   UNTIL R2-1=0;   R4@MES_OP.MOEVENT=> R2;   MON(SAVEEVENT,R2,R7);   GOTO┆
0x2a200…2a280 UnusedSector ┆ RETURN;  FOUND:   R7@LINCB.TRQUEADDR=> R6=> R5;   IF R6 = 0 THEN                           "QUEUE EMPTY"   BEGIN     R0=> R0@IN┆
0x2a280…2a300 UnusedSector ┆TEGER;     R0=> R7@LINCB.TRQUEADDR;   END   ELSE   BEGIN     WHILE R6@INTEGER <> R5 DO R6@INTEGER => R6;     R6@INTEGER=> R0@INT┆
0x2a300…2a380 UnusedSector ┆EGER;     R0=> R6@INTEGER;   END;   ADDRESS(R4@MES_OP.INT)=> R5;   REPEAT     R5+1;     R5@INTEGER=> (R0+1)@INTEGER;   UNTIL R5 ┆
0x2a380…2a400 UnusedSector ┆=ADDRESS(R4@MES_OP.MOCOUNT);   R4=> R5;   R0=> R1;   R4@MES_OP.MOEVENT => R2;   SWITCH MON(IDENTIFYSENDER,R0,R2,R7):ERROR_DONE T┆
0x2a400…2a480 UnusedSector ┆OR,AMON,CM_SEND_SYS_ANS,R4,R7);   EXIT(SV24); FOUND:    ADDRESS(EX_OP)=> R4;   0=> R6=> R4@EXT_OP.BUF[0];   PABORTED=> R6=> R4@E┆
0x2a480…2a500 UnusedSector ┆XT_OP.BUF[1];   R3=> R4@EXT_OP.EVT;   MON(COR,AMON,CM_SEND_SYS_ANS,R4,R7);   EXIT(SV24); END "PROCESS_ABORT_REQUEST";  "--------┆
0x2a500…2a580 UnusedSector ┆---------------------------------------------------------------"  Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2a580…2a600 UnusedSector ┆Z Z X   ]   b   g   l   q   Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2a600…2a680 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x2…]
0x2a780…2a800 UnusedSector ┆  BFD    9        V    ░ H  ░░ |   ░     ░     ░     ░     ░     ░BM   ░     ░     ░     ░     ░  LT ░GRAF ░     ░     ░     ░  ┆
0x2a800…2a880 UnusedSector ┆   ░U_DR ░ER   ░     ░     ░     ░LTU_ ░.SS  ░     ░     ░     ░  CB ░ROC. ░     ░     ░     ░     ░IV_P ░C.SS ░     ░     ░    ┆
0x2a880…2a900 UnusedSector ┆ ░XFER ░ROC. ░     ░     ░     ░  SU ░COR. ░     ░     ░     ░     ░B_PR ░.SS  ░     ░     ░     ░     ░     ░     ░     ░     ░┆
0x2a900…2a980 UnusedSector ┆     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░                  ░░░                             ┆
0x2a980…2aa00 UnusedSector ┆ "-------------------------------------------------------------------- " "  PROJECT:               X " "  MODULE NAME:          ┆
0x2aa00…2aa80 UnusedSector ┆ LTU_DRIV_PREFX.C "  MODULE ID NMB:         0010 "  MODULE VERSION:        0001 "  MODULE TYPE:           PREFIX "  MODULE FILES┆
0x2aa80…2ab00 UnusedSector ┆_BTCNT;       GOTO FOUND;     END;     R7@LINCB.TRQUEADDR => R6=> R0;     IF R6 <> 0 THEN     BEGIN       REPEAT         IF R6@M┆
0x2ab00…2ab80 UnusedSector ┆ES_OP.MOEVENT => R4 =R3 THEN         BEGIN           IF R6@INTEGER =R6 THEN           BEGIN             0 => R4=> R7@LINCB.TRQUE┆
0x2ab80…2ac00 UnusedSector ┆ADDR;             R4=> R6@INTEGER;           END           ELSE           BEGIN             R6=> R4;             WHILE R4@INTEGE┆
0x2ac00…2ac80 UnusedSector ┆R <> R6 DO R4@INTEGER => R4;             R6@INTEGER => R2=> R4@INTEGER;             0 => R6@INTEGER;             IF R6 =R0 THEN ┆
0x2ac80…2ad00 UnusedSector ┆            R2 => R7@LINCB.TRQUEADDR;           END;           GOTO FOUND;         END;         R6@INTEGER => R6;       UNTIL R6┆
0x2ad00…2ad80 UnusedSector ┆ =R0;     END;     R5+1;   UNTIL R5 =4;   ADDRESS(OP_EXT_LOOK)=> R4;   ADDRESS(SEM_OPDUMMY)=> R0=> R4@EXT_OP.SEM;   ADDRESS(PROC┆
0x2ad80…2ae00 UnusedSector ┆_NAME)=> R0;              "ADDRESS TO OWN PROCESS"   MON(COR,AMON,SEM_SEND_SYS_MES,R0,R4,R7);    5 => R6;   REPEAT     ADDRESS(E┆
0x2ae00…2ae80 UnusedSector ┆X_OP)=> R4;     ADDRESS(SEM_OPBREAK)=> R5=> R4@EXT_OP.SEM;     MON(COR,AMON,SEM_ALLOC_SYS_MES,R4,R7);     MON(COR,AMON,WAIT_OP,R┆
0x2ae80…2af00 UnusedSector ┆4,R5,R7);     R4@EXT_OP.EVT=> R2=> SEVENT;     SWITCH MON(IDENTIFYSENDER,R0,R2,R7):ERROR_DONE TO        ERR,DONE: NOP;     END "┆
0x2af00…2af80 UnusedSector ┆SWITCH MON(IDENTIFYSENDER)";      IF R2=R3 THEN                       "EVENT FOUND"     BEGIN       ADDRESS(EX_OP)=> R4;       0┆
0x2af80…2b000 UnusedSector ┆=> R6=> R4@EXT_OP.BUF[0];       PABORTED=> R6=> R4@EXT_OP.BUF[1];       R3=> R4@EXT_OP.EVT;       MON(COR,AMON,CM_SEND_SYS_ANS,R┆
0x2b000…2b080 UnusedSector ┆4,R7);     END     ELSE     BEGIN       IF R0 <> OWN_PCBINDEX => R4 THEN       MON(SAVEEVENT,R2,R7);     END;   UNTIL R0 = OWN_P┆
0x2b080…2b100 UnusedSector ┆CBINDEX=> R2;    BNSYSTEMMESSAGE=> R2;   MON(RECOVEREVENTS,R2,R7);   ADDRESS(EX_OP)=> R4;   SEVENT=> R2=> R4@EXT_OP.EVT;   MON(C┆
0x2b100…2b180 UnusedSector ┆E ERROR IN LTU"   LTUAS= #60C;                  "LTU IS ALREADY ASSIGNED"   LTNAS= #60D;                  "LTU IS NOT ASSIGNED" ┆
0x2b180…2b200 UnusedSector ┆  BODER= #60E;                  "BOOT DATA COUNT ERROR"   OVRFL= #60F;                  "OVERFLOW IN DATA FROM LTU"   REGRET= #6┆
0x2b200…2b280 UnusedSector ┆10;                 "TRANSFERRED DATA FROM LTU ARE INVALID"   RELEASE= #611;                "STOP IN DATA TRANSFER FROM LTU"   C┆
0x2b280…2b300 UnusedSector ┆BCER= #612;                  "ERROR IN CONTROL BLOCK CHAIN"   LISAS= #613;                  "AT LEAST ONE LINE IS STILL ASSIGNED┆
0x2b300…2b380 UnusedSector ┆"   LINAS= #614;                  "LINE IS ALREADY ASSIGNED"   LNOAS= #615;                  "LINE IS NOT ASSIGNED"   LLNER= #61┆
0x2b380…2b400 UnusedSector ┆6;                  "ERROR IN LTU LINE NUMBER"   FRQER= #617;                  "ERROR IN FREQUENCY INDEX"   MODER= #618;        ┆
0x2b400…2b480 UnusedSector ┆          "MODE OF OPERATION ERROR"   PROER= #619;                  "UNKNOWN PROTOCOL TYPE"   NOPRC= #61A;                  "NO ┆
0x2b480…2b500 UnusedSector ┆:          X "  MERGE FILES:           X " "  SPECIFICATIONS:        X "  AUTHOR/DATE:           OH 81:06:17 " "  DELIVERABLE:  ┆
0x2b500…2b580 UnusedSector ┆         YES "  SOURCE LANGUAGE:       SWELL "  COMPILE COMPUTER:      CR80 "  TARGET COMPUTER:       CR80 "  OPERATING SYSTEM: ┆
0x2b580…2b600 UnusedSector ┆     AMOS " "-------------------------------------------------------------------- " "  CHANGE RECORD " "  VERSION    AUTHOR/DATE┆
0x2b600…2b680 UnusedSector ┆   DESCRIPTION OF CHANGE "  -------    -----------   --------------------- " "--------------------------------------------------┆
0x2b680…2b700 UnusedSector ┆------------------ "   CONST   CHNUM=7;                                "NUMBER OF CHANNELS"   BYTES=8;   CBASE=8;   PABORTED=1; ┆
0x2b700…2b780 UnusedSector ┆ "***********************************************************************" "                                                    ┆
0x2b780…2b800 UnusedSector ┆                   " "              DEVICE DRIVER CONFIGURATION FOR INTERFACING TO           " "              THE AMOS I/O SYSTE┆
0x2b800…2b880 UnusedSector ┆M.                                     " "                                                                       " "************┆
0x2b880…2b900 UnusedSector ┆***********************************************************"    CONST   MESS_CMP= 8;  MESS_CML= 8;   MESS_SCP= 2;  MESS_SCL= 2; ┆
0x2b900…2b980 UnusedSector ┆ TYPE   MESS_COMMANDS= (MESS_CABORT,MESS_CXFER);  " FORMAT OF XFER LIST ELEMENT" TYPE XFER_ELEMTYPE=   RECORD     OP:INTEGER;   ┆
0x2b980…2ba00 UnusedSector ┆  LINK:INTEGER;     COUNT:INTEGER;     ADDR:INTEGER;     OFFSET:INTEGER;   END;  "FORMAT OF EXTENDED XFER LIST ELEMENT" TYPE XFE┆
0x2ba00…2ba80 UnusedSector ┆R_ELEM=   RECORD     OP,     LINK,     COUNT,     ADDR,     OFFSET,     XFERPSW,     BUFFPSW,     XFOCNT:INTEGER;   END;  CONST ┆
0x2ba80…2bb00 UnusedSector ┆  XFER_CMP= 8;  XFER_CML= 8;   XFER_SCP= 2;  XFER_SCL= 2;  TYPE   XFERLIST_COMMANDS= (XFER_CINP,XFER_COUT);  TYPE   BYTEARR= ARR┆
0x2bb00…2bb80 UnusedSector ┆AY[0..0] OF BYTE; "BYTE ARRAY QUALIFIER"   TYPE   ILLOPSTYPE= ARRAY[1..13] OF INTEGER;  "ILLEGAL OPERATIONS"  TYPE   PROCOPSTYPE┆
0x2bb80…2bc00 UnusedSector ┆= ARRAY[1..13] OF INTEGER; "PROCESSABLE OPERATIONS"  CONST                           "COMPLETION CODE:"   LTBER= #601;          ┆
0x2bc00…2bc80 UnusedSector ┆        "LTU BOOT LOAD ERROR"   XFLI0= #603;                  "XFER ELEM LINK =0"   EMBUF= #604;                  "XFER ELEM BUF┆
0x2bc80…2bd00 UnusedSector ┆ IS EMPTY"   CHSER= #605;                  "LTU CHECK SUM ERROR"   NOINT= #606;                  "NO INTERNAL OPERATION FREE"   ┆
0x2bd00…2bd80 UnusedSector ┆ILCOM= #607;                  "ILLEGAL COMMAND"   FOMER= #608;                  "COMMAND FORMAT ERROR"   CMKER= #609;           ┆
0x2bd80…2be00 UnusedSector ┆       "ERROR IN COMMAND NUMBER"   NOCBF= #60A;                  "NO FRE CONTROL FOUND"   LTUER= #60B;                  "HARDWAR┆
0x2be00…2be80 UnusedSector ┆*******************************" "                                                                       " "               CONTR┆
0x2be80…2bf00 UnusedSector ┆SUCH PROTOCOL COROUTINE"   TERAS= #61B;                  "AT LEAST ONE TERMINAL IS STILL ASSIGNED"   BBCER= #61C;               ┆
0x2bf00…2bf80 UnusedSector ┆   "BOOT FILE BYTE COUNT ERROR"   NNFND= #61D;                  "FILE NAME NOT FOUND"   ILCON= #61E;                  "ILLEGAL C┆
0x2bf80…2c000 UnusedSector ┆ON_ID/BOOT FILE ID"   TNOCR= #61F;                  "TERMINAL IS NOT CREATED"   PCB_ERR= #620;                "ERROR IN PCB_INDE┆
0x2c000…2c080 UnusedSector ┆X FOR SINDING PROCESS"   BFDSM= #621;                  "BOOT FILE IS DISMANTLED"   BTTTG= #622;                  "BYTE COUNT IS ┆
0x2c080…2c100 UnusedSector ┆TO BIG(BTCNT>2**16)"   INTRERR= #623;                "LTU INTERRUPT CANNOT BE RESERVED"  "**************************************┆
0x2c100…2c180 UnusedSector ┆*********************************" "                                                                       " "               INT┆
0x2c180…2c200 UnusedSector ┆ERNAL OPERATIONS                                     " "                                                                       "┆
0x2c200…2c280 UnusedSector ┆ "***********************************************************************"  TYPE MES_OP=                    "INTERNAL MESSAGE OP┆
0x2c280…2c300 UnusedSector ┆ERATION"   RECORD     INT:INTERNAL_OPERATION;     OPN:OP_TYPE;     MOHEAD:INTEGER;             "COMMAND, SECTION"     MOTLST:INT┆
0x2c300…2c380 UnusedSector ┆EGER;             "TRANSFER LIST ADDRESS"     MOEVENT:INTEGER;            "EVENT IDENTIFICATION"     MOLINEREF:INTEGER;         ┆
0x2c380…2c400 UnusedSector ┆ "REF(LINCB)"     MOCONID:INTEGER;            "CON ID"     MOCOUNT:INTEGER;            "INPUT BYTE COUNT"     MOPCB:INTEGER;    ┆
0x2c400…2c480 UnusedSector ┆          "OPERATION PCB INDEX"   END;   TYPE ANS_OP=                    "INTERNAL ANSWER OPERATION"   RECORD     INT:INTERNAL_O┆
0x2c480…2c500 UnusedSector ┆PERATION;     OPN:OP_TYPE;     AOHEAD:INTEGER;             "RESULT, SECTION"     AOTLST:INTEGER;             "TRANSFER LIST ADDR┆
0x2c500…2c580 UnusedSector ┆ESS"     AOEVENT:INTEGER;            "EVENT IDENTIFICATION"     AOCNT:INTEGER;              "BYTE COUNT"     AOCC:INTEGER;      ┆
0x2c580…2c600 UnusedSector ┆         "COMPLETION CODE"   END;  TYPE TRANS_OP=                  "INTERNAL TRANSFER OPERATION"   RECORD     INT:INTERNAL_OPERA┆
0x2c600…2c680 UnusedSector ┆TION;     OPN:OP_TYPE;     TOHEAD:INTEGER;             "COMMAND, SECTION"     TOTLST:INTEGER;             "TRANSFER LIST ADDRESS┆
0x2c680…2c700 UnusedSector ┆"     TOEVENT:INTEGER;            "EVENT IDENTIFICATION"     TOLINEREF:INTEGER;          "REF(LINCB)"     TOCONID:INTEGER;      ┆
0x2c700…2c780 UnusedSector ┆      "CONNECTION ID"   END;   TYPE OPN_CODE=                  "OPERATION OP_TYPE CODES"   (CHANNEL_0,CHANNEL_1,CHANNEL_2,    CH┆
0x2c780…2c800 UnusedSector ┆ANNEL_3,CHANNEL_4,CHANNEL_5,INTRPT,    CH_READ_BREAK,MESS_OP_READ,    MESS_OP_APPEND,MESS_OP_BOOT,    ANS_OPN,ANS_OPN_ERR,INIT_C┆
0x2c800…2c880 UnusedSector ┆MD,    BOOT_DISMANTLE); " PAGE    CONST   MAX_INT_OP=10;  TYPE   INT_OP_BUF=ARRAY[1..SIZE(MES_OP)*MAX_INT_OP] OF INTEGER;  TYPE ┆
0x2c880…2c900 UnusedSector ┆  INT_OP_BUF_DESC=ARRAY[1..MAX_INT_OP] OF INTEGER;  "***********************************************************************" " ┆
0x2c900…2c980 UnusedSector ┆                                                                      " "               DRIVER CONFIGURATION                    ┆
0x2c980…2ca00 UnusedSector ┆                " "                                                                       " "***********************************┆
0x2ca00…2ca80 UnusedSector ┆************************************"  CONST   MAXLINES= 4;                 "NUMBER OF LINECB`S"   MAXTERMS= 4;                 ┆
0x2ca80…2cb00 UnusedSector ┆"NUMBER OF TERMCB`S"   NCB= MAXLINES+MAXTERMS;      "NO OF LINCB AND TERMCB IN POOL"   "****************************************┆
0x2cb00…2cb80 UnusedSector ┆TROL BLOCK:"   RECORD     PROT:INTEGER;               "PROTOCOL"     MODEOP:INTEGER;             "MODE OF OPERATION"     LTLINO:┆
0x2cb80…2cc00 UnusedSector ┆INTEGER;             "LTU LINE NUMBER"     FREQ:INTEGER;               "COMMUNICATION RATE"     TRQUEADDR:INTEGER;          "TRA┆
0x2cc00…2cc80 UnusedSector ┆NSFER QUEUE ADDRESS"     STATE:INTEGER;              "STATE= 1 WHEN ASSIGNED ELSE 0"     STATUS:INTEGER;             "STATUS= 0 ┆
0x2cc80…2cd00 UnusedSector ┆WHEN LTU OK ELSE 1"     FITERADDR:INTEGER;          "FIRST TERMCB ADDRESS"     LTUCBADDR:INTEGER;          "LTUCB ADDRESS"     M┆
0x2cd00…2cd80 UnusedSector ┆ESS_HEAD:INTEGER;          "CMD,BUFFSEC,TRANSFERSEC"     MESS_TLST:INTEGER;          "TRANSFER LIST ADDRESS"     MESS_EVNT:INTEG┆
0x2cd80…2ce00 UnusedSector ┆ER;          "EVENT IDENTIFICATION"     MESS_COUNT:INTEGER;         "INPUT BYTE COUNT"     MESS_CONID:INTEGER;         "CONNECTI┆
0x2ce00…2ce80 UnusedSector ┆ON ID"     CH_STATE:INTEGER;           "LINE STATE(READ,WRITE BREAK)     CH_I_F_ADDR:INTEGER;        "ADDRESS TO LTU CH_I_F_TABL┆
0x2ce80…2cf00 UnusedSector ┆E"     CUR_BTCNT:INTEGER;          "CURRENT BYTE COUNT"   END;   TYPE TERMCB=                    "TERMINAL CONTROL BLOCK:"   REC┆
0x2cf00…2cf80 UnusedSector ┆ORD     CONID:INTEGER;              "CONNECTION ID"     LTLINO:INTEGER;             "LTU LINE NUMBER"     TERMADDR:INTEGER;     ┆
0x2cf80…2d000 UnusedSector ┆      "TERMINAL ADDRESS"     FIOPNO:INTEGER;             "NUMBER OF FILES OPEN"     CONVDIR:INTEGER;            "CONVERSATION DI┆
0x2d000…2d080 UnusedSector ┆RECTION"     NETERMADDR:INTEGER;         "NEXT TERMINAL ADDRESS"     STATE:INTEGER;              "STATE= 1 WHEN ASSIGNED ELSE 0"┆
0x2d080…2d100 UnusedSector ┆     STATUS:INTEGER;             "STATUS= 0 WHEN LTU OK ELSE 1"     PROCID:INTEGER;             "PROCES IDENTIFICATION"     LINC┆
0x2d100…2d180 UnusedSector ┆BADDR:INTEGER;          "LINECB ADDRESS"     PROSEMADDR:INTEGER;         "PROTOCOL SEMAPHORE ADDRESS"     XFERBUF:INTEGER;      ┆
0x2d180…2d200 UnusedSector ┆      "XFER_ELEM SAVE BUFFER"   END;  TYPE LTU_ASGN_DESC=             "LTU ASSIGN DESCRIPTION RECORD"   RECORD     ASGNKIND:INTE┆
0x2d200…2d280 UnusedSector ┆GER;           "ASSIGN(LTU)=1"     ASGNDEV:INTEGER;            "DEVICE KIND"     ASGNIOADDR:INTEGER;         "DEVICE ADDRESS"   ┆
0x2d280…2d300 UnusedSector ┆  ASGNNULI:INTEGER;           "NUMBER OF LINES"   END;  TYPE LINE_ASGN_DESC=            "LINE ASSIGN DESCRIPTION RECORD"   RECOR┆
0x2d300…2d380 UnusedSector ┆D     ASGNKIND:INTEGER;           "ASSIGN(LINE)=2"     ASGNPROT:INTEGER;           "LINE PROTOCOL"     ASGNMODE:INTEGER;        ┆
0x2d380…2d400 UnusedSector ┆   "MODE OF OPERATION"     ASGNLTLINO:INTEGER;         "LTU LINE NUMBER"     ASGNFREQ:INTEGER;           "COMMUNICATION RATE"   ┆
0x2d400…2d480 UnusedSector ┆END;  TYPE CON_CR_ATT=                "CONNECTION ATTRIBUTES RECORD"   RECORD     CRKIND:INTEGER;             "CREATE(CON)=2"   ┆
0x2d480…2d500 UnusedSector ┆  CRLTLINO:INTEGER;           "LTU LINE NUMBER"     CRADDR:INTEGER;             "TERMINAL ADDRESS"   END;  TYPE BOOT_CR_ATT=    ┆
0x2d500…2d580 UnusedSector ┆           "BOOT LOAD ATTRIBUTES RECORD"   RECORD     CRKIND:INTEGER;             "CREATE(BOOT LOAD)=1"     CRLTLINO:INTEGER;   ┆
0x2d580…2d600 UnusedSector ┆OL BLOCKS                                          " "                                                                       " "┆
0x2d600…2d680 UnusedSector ┆***********************************************************************"  TYPE LTUCB=                     "LTU CONTROL BLOCK:"  ┆
0x2d680…2d700 UnusedSector ┆ RECORD     DEVKIND:INTEGER;            "DEVICE KIND"     DEVADDR:INTEGER;            "DEVICE ADDRESS"     NOLIN:INTEGER;       ┆
0x2d700…2d780 UnusedSector ┆       "NUMBER OF LINES"     NOLINAS:INTEGER;            "NO OF ASSIGNED LINES"     STATE:INTEGER;              "STATE= 1 WHEN A┆
0x2d780…2d800 UnusedSector ┆SSIGNED ELSE 0"     STATUS:INTEGER;             "STATUS= 0 WHEN LTU OK ELSE 1"   END;  TYPE LINCB=                     "LINE CON┆
0x2d800…2d880 UnusedSector ┆(NO_ANSWER,PROCESS_ANSWER);  TYPE   EXT_OP=EXTERNAL_OPERATION;  TYPE   FILE__NAME= ARRAY[0..7] OF INTEGER;  TYPE   FILE__NAMES= ┆
0x2d880…2d900 UnusedSector ┆ARRAY[1..SIZE(FILE__NAME)*MAXTERMS] OF INTEGER;  "----------------------------------------------------------------------" "     ┆
0x2d900…2d980 UnusedSector ┆                                                                 " "              LTU CONFIGURATION                             ┆
0x2d980…2da00 UnusedSector ┆          " "                                                                      " "------------------------------------------┆
0x2da00…2da80 UnusedSector ┆----------------------------"  CONST                                     "STATUS WORD BIT MASK CONST"   BN_REGRET=0;   BN_BREAK=┆
0x2da80…2db00 UnusedSector ┆5;   BN_S_PACKET=6;   BN_P_PACKET=7;   BN_SET=7;   CRLF=CR SHIFTLL 8 +LF;  CONST   S_PACKET=1 SHIFTLL BN_S_PACKET;   P_PACKET=1 ┆
0x2db00…2db80 UnusedSector ┆SHIFTLL BN_P_PACKET;  CONST                                     "FIFO ORINTED I/O INSTR. CODE"   MCCMD=1 SHIFTLL 11;            ┆
0x2db80…2dc00 UnusedSector ┆         "MASTER CLEAR"   BLCMD=1 SHIFTLL 10;                     "BOOT LOAD LTU"   SBPCMD=#3 SHIFTLL 6;                    "SET┆
0x2dc00…2dc80 UnusedSector ┆ BYTE POINTER"   RDCMD=#C SHIFTLL 6;                     "READ WORD"   RDICMD=#4 SHIFTLL 6;                    "READ WORD AND IN┆
0x2dc80…2dd00 UnusedSector ┆CREMENT"   WRLCMD=#9 SHIFTLL 6;                    "WRITE BYTE FROM LOWER POS"   WRCMD=#D SHIFTLL 6;                     "WRITE ┆
0x2dd00…2dd80 UnusedSector ┆WORD"   WRICMD=#8 SHIFTLL 6;                    "WRITE WORD AND INCREMENT"   RSTCMD=#0 SHIFTLL 6;                    "READ DEVIC┆
0x2dd80…2de00 UnusedSector ┆E STATUS"  CONST                                     "LTU ADDRESSES:"   LTU_1=#14;   TYPE LTU_I_F_TABLE_ADDR=                  "┆
0x2de00…2de80 UnusedSector ┆ADDRESSES TO LTU AND TO-"   RECORD                                  "INTERFACE TABLES"     I_F_TABLE0:INTEGER;     I_F_TABLE1:IN┆
0x2de80…2df00 UnusedSector ┆TEGER;     I_F_TABLE2:INTEGER;     I_F_TABLE3:INTEGER;     I_F_TABLE4:INTEGER;     I_F_TABLE5:INTEGER;     I_F_TABLE6:INTEGER;  ┆
0x2df00…2df80 UnusedSector ┆   I_F_TABLE7:INTEGER;     LTU_ADDR:INTEGER;   END;  TYPE LTU_COM_TABLE=                       "LTU COMMUNICATION TABLE"   RECOR┆
0x2df80…2e000 UnusedSector ┆        "LTU LINE NUMBER"   END;  CONST   TRANS_MESS_NO= NCB;           "MAX NUMBER OF QUEUED TRANSFER MESSAGES"   NTEL= TRANS_M┆
0x2e000…2e080 UnusedSector ┆ESS_NO*SIZE(MES_OP);  "NUMBER OF TRANSFER QUEUE ELE-"                                        "MENTS PER LINE"    NTE= NTEL*MAXLI┆
0x2e080…2e100 UnusedSector ┆NES;           "TOTAL NUMBER OF TRANSFER QUEUE ELEMENTS"  TYPE   CBARR= ARRAY[1..SIZE(TERMCB)*MAXTERMS] OF INTEGER;  TYPE   SEMA┆
0x2e100…2e180 UnusedSector ┆DDR= ARRAY[0..7] OF INTEGER;        "ARRAY OF ADDRESSES TO PRO-"                                           "TOCOL SEMAPHORS" TYP┆
0x2e180…2e200 UnusedSector ┆E   TERMTABLE= ARRAY[1..MAXTERMS] OF INTEGER;  "ARRAY OF ADDRESSES TO TER-"                                              "MINAL ┆
0x2e200…2e280 UnusedSector ┆CB, INDEX=CON ID"  TYPE   XFER_ELEM_BUFFERS= ARRAY[1..SIZE(XFER_ELEM)*MAXTERMS] OF INTEGER;  TYPE   XFER_ELEM_ADDR= TERMTABLE;; ┆
0x2e280…2e300 UnusedSector ┆ TYPE   LINETABLE=ARRAY[0..NCB] OF INTEGER;  TYPE   LINE_CONTROL_BLOCK=ARRAY[1..SIZE(LINCB)*MAXLINES] OF INTEGER;  TYPE   LINE_Q┆
0x2e300…2e380 UnusedSector ┆UEUE=ARRAY[1..NTEL] OF INTEGER;  TYPE   TRANSFER_QUEUE=   RECORD     LINE0_QUE:LINE_QUEUE;     LINE1_QUE:LINE_QUEUE;     LINE2_Q┆
0x2e380…2e400 UnusedSector ┆UE:LINE_QUEUE;     LINE3_QUE:LINE_QUEUE;   END;  TYPE   LINE_QUEUE_DESCRIPTER= ARRAY[0..MAXLINES-1] OF INTEGER;   CONST   NCBADN┆
0x2e400…2e480 UnusedSector ┆O= 5;                   "NEXT CB ADDRESS IS NUMBER 5 IN CB"   STATENO= 6;                   "STATE IS NUMBER 6 IN CB"   TYPE   C┆
0x2e480…2e500 UnusedSector ┆ONTROL_BLOCK_STATE=(CB_FREE,CB_OCCP);  TYPE   CHANNEL_STATE=(CH_IDLE,CH_READ,CH_WRITE,CH_BREAK,BOOT_STARTED);  TYPE   FIND_OUT= ┆
0x2e500…2e580 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2e580…2e600 UnusedSector ┆  BFD   fF        v    ░ H  ░░ |   ░     ░     ░     ░     ░     ░BM   ░     ░     ░     ░     ░  LT ░GRAF ░     ░     ░     ░  ┆
0x2e600…2e680 UnusedSector ┆   ░U_DR ░ER   ░     ░     ░     ░LTU_ ░.SS  ░     ░     ░     ░  CB ░ROC. ░     ░     ░     ░     ░IV_P ░C.SS ░     ░     ░    ┆
0x2e680…2e700 UnusedSector ┆ ░XFER ░ROC. ░     ░     ░     ░  SU ░COR. ░     ░     ░     ░     ░B_PR ░.SS  ░     ░     ░     ░LTU_ ░IV_P ░FX.C ░     ░     ░┆
0x2e700…2e780 UnusedSector ┆     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░                  ░░░                             ┆
0x2e780…2e800 UnusedSector ┆ ░  o d          B   A  &   x3   A                  ░░                      ░░  !                   ░░  "                   ░░  ┆
0x2e800…2e880 UnusedSector ┆#                   ░░  $                   ░░  %                   ░░  '           ,                           a `   r         ┆
0x2e880…2e900 UnusedSector ┆  a p   s     g   A       g   A       f A                                   g   A       b P             \     P ░   i  0     0  ┆
0x2e900…2e980 UnusedSector ┆      b   P           `   s p               r       1       a     t   2       a @   u   3       a P   v   4       a `   w   5 f ┆
0x2e980…2ea00 UnusedSector ┆D     TX_BTCNT:INTEGER;     TX_ADDR:INTEGER;     TX_STATUS:INTEGER;     RX_BTCNT:INTEGER;     RX_ADDR:INTEGER;     RX_STATUS:INT┆
0x2ea00…2ea80 UnusedSector ┆EGER;   END;  " PAGE   TYPE I_F_TABLE=   RECORD     TS1_STATUS:INTEGER;     TX_BUF_ADDR:INTEGER;     TS2_STATUS:INTEGER;     SPA┆
0x2ea80…2eb00 UnusedSector ┆RE:INTEGER;     RS1_STATUS:INTEGER;     RX_BUF_ADDR:INTEGER;     RS2_STATUS:INTEGER;   END;  TYPE   I_F_TAB_ADDR=ARRAY[0..8] OF ┆
0x2eb00…2eb80 UnusedSector ┆INTEGER;    "ADDRESSES TO LTU I_F TABLES" "----------------------------------------------------------------------" "            ┆
0x2eb80…2ec00 UnusedSector ┆                                                          " "             BREAK CONFIGURATION                                   ┆
0x2ec00…2ec80 UnusedSector ┆   " "                                                                      " "-------------------------------------------------┆
0x2ec80…2ed00 UnusedSector ┆---------------------"   TYPE BREAK_OP=   RECORD     INT:INTERNAL_OPERATION;     OPN:OP_TYPE;     NAME1:INTEGER;     NAME2:INTEG┆
0x2ed00…2ed80 UnusedSector ┆ER;     NAME3:INTEGER;     LCBREF:INTEGER;   END;  TYPE LINCB_BREAK=   RECORD     NUD:ARRAY[0..9] OF INTEGER;         "NOT USED"┆
0x2ed80…2ee00 UnusedSector ┆     OUT_ADDR:INTEGER;     OUT_BTCNT:INTEGER;   END;  TYPE   BREAK_BUF= ARRAY[1..8] OF BYTE;  TYPE  BREAK_ANSWER= ARRAY[0..5] OF┆
0x2ee00…2ee80 UnusedSector ┆ INTEGER;  " PAGE     Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2ee80…2ef00 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x3…]
0x2f080…2f100 UnusedSector ┆Z Z x   }                           Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2f100…2f180 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x1…]
0x2f200…2f280 UnusedSector ┆{    ░    U ^     `   V       `     P   W   A     X   Y   P     |    ░    Z       `     P   [   @   \   n       a @       o     ┆
0x2f280…2f300 UnusedSector ┆  \   2 @   p \         q ░       r       `       g   A     s \     g   A     t ░   i  0     0      v \   P   w   x       f Q & ┆
0x2f300…2f380 UnusedSector ┆p   y f q       z f q   `   {   ` 0                 {       } \   ` g ` q     ~ \   ` g ` q       {             f q   ` b `     ┆
0x2f380…2f400 UnusedSector ┆q   ` b ` P   6   `   {       8   9 f a   @   @     : {       ; {    ░    < d ` `   =         ` p |    ░    > {       ?   @ $ ` ┆
0x2f400…2f480 UnusedSector ┆` {       B \   @ g @ q     C b ` @   D \       E c   `   F {       H b ` @   I & @ ` d @ @ |    ░    J d `   c   @   K ^   `   ┆
0x2f480…2f500 UnusedSector ┆L b ` @   M   ` P   N g   q     O   P '     ░░      `   Q \       g   q     R       `   w                 a     w   S |    ░'   ┆
0x2f500…2f580 UnusedSector ┆T   U       `   t     V       `   u @   W       `   v P   X           w   Y   l a @   #   m       a `   x   n       \   V     o ┆
0x2f580…2f600 UnusedSector ┆f A   p       a p   y   p {       q   s       `   y p   t \       g   q     u       \   Z   g   q     v       \     P ░   i  0  ┆
0x2f600…2f680 UnusedSector ┆   0      w   `   x {       y   {    ░    z ░     |    ░  |    ░    {       `   y p   | {       }   {       ~     `   # @     ^ ┆
0x2f680…2f700 UnusedSector ┆  @           `   x `   `     {    ░           ░a ` |    ░  |    ░      b   `           \   V       ░   E           \   D @     ┆
0x2f700…2f780 UnusedSector ┆      \   $             \       g   A       ░   i  0     0        \   0           \   2 @           \     P g P A           ░   ┆
0x2f780…2f800 UnusedSector ┆i  0     0        ░   i  0     0        f A         {               {    ░      ░     |    ░  |    ░                ` {         ┆
0x2f800…2f880 UnusedSector ┆      `   y p     \     g   q       f q   @     g   A       \     0           \   M @           \     P g P A       {           ┆
0x2f880…2f900 UnusedSector ┆    `   (             ░                   `   (         |    ░%       0   {    ░            `   y p           \   `   g   q     ┆
0x2f900…2f980 UnusedSector ┆  \       g   q       `   # @                 \     P ░   i  0     0                  \   M @     g   A       ░   i  0     0    ┆
0x2f980…2fa00 UnusedSector ┆          `   x `     \           ░           0   {         `   # @     ^   @           \   2 @       a       {    ░        `   ┆
0x2fa00…2fa80 UnusedSector ┆            a     z           a @   {           a p   |     \           ░               `   | p     f q                         ┆
0x2fa80…2fb00 UnusedSector ┆f q         ░                   `   | p     \     @ g @ q             \   f @ g @ q       \     @ g @ q           \           f ┆
0x2fb00…2fb80 UnusedSector ┆ILCOM= #607;                  "ILLEGAL COMMAND"   FOMER= #608;                  "COMMAND FORMAT ERROR"   CMKER= #609;           ┆
0x2fb80…2fc00 UnusedSector ┆  ░               `   z             `   | p               {               a     }   ░       a     ~           a                 ┆
0x2fc00…2fc80 UnusedSector ┆a P               a `               a p         f q   `           f a /       \                         {                       ┆
0x2fc80…2fd00 UnusedSector ┆            |    ░      f A         ░         {             f q   ` b ` P       `   {         c         g   q       {         & ┆
0x2fd00…2fd80 UnusedSector ┆` P d ` ` |    ░      e `       c   `         + @ \   P               P   !         e P     " + @   P     |    ░    # b @ P   $ ┆
0x2fd80…2fe00 UnusedSector ┆b       % f A       & {       '   ) \       *       \         + \         , b ` p   - '    ░       ░  `   . b p `   / {       0 ┆
0x2fe00…2fe80 UnusedSector ┆  {    ░    1 ░     |    ░  |    ░    2 b P @   3         c       4   5 ^   @   6       `   }     7       `   ~     8       `   ┆
0x2fe80…2ff00 UnusedSector ┆      9       `     P   :       `     p   ;               <   N       a P       O \   P   Q   R       P   S     @ f Q   `   `   ┆
0x2ff00…2ff80 UnusedSector ┆    \     P g P A       ░   i  0     0        ░   i  0     0        f A           a           {   !       {    ░      ░     |   ┆
0x2ff80…30000 UnusedSector ┆ ░  |    ░          0 {   "           \   2 @     \   ` g ` A       \     ` g ` A       g 0 A       ░   i  0     0        {   # ┆
0x30000…30080 UnusedSector ┆          `   ( @     @     ░                   `   (         |    ░)     \           ░               \   2 @           `       ┆
0x30080…30100 UnusedSector ┆g   A       ░   i  0     0                                  \   2 @     \   ` g ` A       \     ` g ` A       g 0 A       ░   i ┆
0x30100…30180 UnusedSector ┆ 0     0                                                          \     P         ░   i  0     0              |    ░        @   ┆
0x30180…30200 UnusedSector ┆    "       a @       $   %       \     P ░   i  0     0      & a @   #   '     ( f A             {   $   * \         +       \ ┆
0x30200…30280 UnusedSector ┆              g   A     - {   %   / f A                     $             0 f A                             $             2 $   ┆
0x30280…30300 UnusedSector ┆  \     P   3 f A     g   Q     5 g   Q     6 g   Q     7 f A       8 f A       9 \       : {   &   ; \       {   '   < \     { ┆
0x30300…30380 UnusedSector ┆  '   = '   ( ░░    ( @ |    ░  |    ░    ? `   # @   @   B f A   0       0   C       a 0   .   D       a     -   E f A         ┆
0x30380…30400 UnusedSector ┆  a     ,   F ^   @   G       \   ) @   H     I ░   i  0     0      J       |    ░@   K               L   W   X       \   ; @   ┆
0x30400…30480 UnusedSector ┆Y \       g   A     Z       \     P g P A     [ ░   i  0     0      \ ░   i  0     0      ]     ^ f A   `   _   `     {    ░    ┆
0x30480…30500 UnusedSector ┆a f A   p   b   `       c ^   @   d   f {   )   h   i '   * ░░    * @ {   +   k   l '   , ░░    , ` {   +   q   s \         t f ┆
0x30500…30580 UnusedSector ┆q       u       \     P   v '     ░░      @   w d P @   x   @       y '     ░░      @   z {   +   |   } '   - ░░    - @ {   +   ┆
0x30580…30600 UnusedSector ┆~ - `     - `     {    ░  + ` ~    ░  |    ░  |    ░  {    ░  |    ░  |    ░            |    ░5             \   0           \   ┆
0x30600…30680 UnusedSector ┆  P ░   i  0     0        f A   p             q     {   .           \           \           \         '    ░       ░  `     {   ┆
0x30680…30700 UnusedSector ┆/     f A   P     {   0         '     ░░      `     \     0     {   1         f q           {   2     '     ░░      `     \     ┆
0x30700…30780 UnusedSector ┆0     \       g   q       {    ░      f A         ░             {   1         '    ░u      ░u `     {   1     - P     - P     { ┆
0x30780…30800 UnusedSector ┆   ░  + P ~    ░  |    ░  |    ░  |    ░        0     {    ░            \     P ░   i  0     0        \           ░             ┆
0x30800…30880 UnusedSector ┆      |    ░9       @                           \     P     \   `               `     ^   P           P       `     |    ░      ┆
0x30880…30900 UnusedSector ┆\     P     \   @         + P \   ] p       g p A &           P           @       @     |    ░      \     b   P                 ┆
0x30900…30980 UnusedSector ┆      g   Q 3           P       P     |    ░            \   W P     \   @               @           g P A %           P       @ ┆
0x30980…30a00 UnusedSector ┆    |    ░      \   @     \     P               f A & `           f Q 3   g   a         @ P       @     |    ░            \     ┆
0x30a00…30a80 UnusedSector ┆@     \   P               P         @ g @ Q             @       P     |    ░      \   @               f A , P     ░   i  0     0┆
0x30a80…30b00 UnusedSector ┆    `   {             f a   @   @ 0 {         $ ` ` {         \   @ g @ q       c @ `     {         b ` @     & @ ` d @ @ |    ░┆
0x30b00…30b80 UnusedSector ┆      d `   c   @     ^   `       `       g   q           {             d ` `       `   |    ░                P       P     |   ┆
0x30b80…30c00 UnusedSector ┆ ░*           \   D @           \       g   A             \   $       ░   i  0     0        \     `               \   2 @       ┆
0x30c00…30c80 UnusedSector ┆@ @ |    ░  |    ░    q {   A   r b 0   {   B   s   t {   B   u b 0 P {   B   v b 0 p {   B   w a 0   $ {   B   x a 0   % {   B ┆
0x30c80…30d00 UnusedSector ┆  y -       -       {    ░  +   ~    ░  |    ░  |    ░  |    ░  |    ░  |    ░  |    ░  |    ░  |    ░  |    ░    z         |   ┆
0x30d00…30d80 UnusedSector ┆ ░(   ~ $     \     @           f A                         f A   `       `           `       `       `                         ┆
0x30d80…30e00 UnusedSector ┆          `     `     g   a       b   0     \     `             a     {   C           $       0 ` {   D           \           { ┆
0x30e00…30e80 UnusedSector ┆  >     {   E           $     ! 0 `     {   F               `     |    ░      \         \         \         {   :         {   G ┆
0x30e80…30f00 UnusedSector ┆        {   H               \           {   >     {   I       {   I     '   J ░░    J @ |    ░  |    ░  |    ░            \     ┆
0x30f00…30f80 UnusedSector ┆BADDR:INTEGER;          "LINECB ADDRESS"     PROSEMADDR:INTEGER;         "PROTOCOL SEMAPHORE ADDRESS"     XFERBUF:INTEGER;      ┆
0x30f80…31000 UnusedSector ┆      c 0 `           `           |    ░                  `                       {   M           \           {   >             ┆
0x31000…31080 UnusedSector ┆    {   N     {   O     {   >           {   P     '   Q ░░    Q @ |    ░  |    ░  |    ░      {   R     {   S     {   >       { ┆
0x31080…31100 UnusedSector ┆  T     '   U ░░    U @ |    ░  |    ░          b `       {   V         b P       \     p       p           6   p -       {   W ┆
0x31100…31180 UnusedSector ┆          \           {   >         \                   5     {   X     {   Y     {   >         \     b     b         {   :     ┆
0x31180…31200 UnusedSector ┆{   Z       {   Z     '   [ ░░    [ @ |    ░  |    ░  |    ░      \         {    ░            f Q & p     \           g   Q &   ┆
0x31200…31280 UnusedSector ┆  \       g   q       d p P     f Q & P           `     @     \       g   A       g p A       ░   i  0     0        |    ░      ┆
0x31280…31300 UnusedSector ┆    {   V         {   \               \         ░ {   >     {   ]       {   ]     '   J ░░    J @ |    ░  |    ░  |    ░        ┆
0x31300…31380 UnusedSector ┆    \     `     \                           {   ^               \           {   >     {   _       {   _     '   @ ░░    @ @ |   ┆
0x31380…31400 UnusedSector ┆ ░  |    ░      c 0 `           `           |    ░            \     `           d `                   {   `           \         ┆
0x31400…31480 UnusedSector ┆  {   >                 {   a     {   b     {   >       {   c     '   d ░░    d @ |    ░  |    ░    ! {   e   # f a     .       ┆
0x31480…31500 UnusedSector ┆              @       @     |    ░            \       ░   i  0     0        $   ░░3 \   ░░3             \       ░   i  0     0  ┆
0x31500…31580 UnusedSector ┆      $   ░░h \   ░░h             \       ░   i  0     0        $   ░░  \   ░░      !       \       ░   i  0     0      " $   ░░┆
0x31580…31600 UnusedSector ┆  \   ░░      #       \       ░   i  0     0      1       \   $     2 {   3   3   {    ░    4 ░     |    ░  |    ░    5       a ┆
0x31600…31680 UnusedSector ┆    (   7     8   9   :       \   2 @   ;       \     P g P A     < \     g   A     = ░   i  0     0      > ░   i  0     0      ┆
0x31680…31700 UnusedSector ┆?     @ f A       A         {   4   B {   5   D   E {   6 '    ░-      ░- ` |    ░  |    ░    F b @ 0   G f A           a       ┆
0x31700…31780 UnusedSector ┆  H {   7   I   K       \   N `   L {   8   M   {   8   N '    ░!      ░! @ |    ░  |    ░    O b 0 @   P + @ \       b   P   Q ┆
0x31780…31800 UnusedSector ┆f Q     g   a     R g   a     S \     @ g @ a     T       a `       U {   9   V   X \         Y \     b       Z \     @ g @ a   ┆
0x31800…31880 UnusedSector ┆  [ {   :   \ {   ;   ]   _ b   0   ` \     c   `   a '    ░       ░  @   b |    ░>   c {   ;   d   {   ;   e '   < ░░    < @ | ┆
0x31880…31900 UnusedSector ┆   ░  |    ░  |    ░    f \       g   h           i {   =   j   l       \         m {   >   n {   ?   o   {   ?   p '   @ ░░    ┆
0x31900…31980 UnusedSector ┆        |    ░      5 `   {               \           {   >                     |    ░            0 b 0       b   P       f Q ! ┆
0x31980…31a00 UnusedSector ┆@   @         A           {   V     / 0         0 - 0     {    ░1 + 0 ~    ░  |    ░  {    ░- |    ░  {    ░+ {    ░* {    ░) { ┆
0x31a00…31a80 UnusedSector ┆   ░( {    ░' {    ░& {    ░% {    ░$ {    ░# {    ░" {    ░! |    ░  {    ░  |    ░] {    ░  {    ░  {    ░  {    ░  {    ░  { ┆
0x31a80…31b00 UnusedSector ┆   ░  {    ░  {    ░  {    ░  {    ░  {    ░  {    ░  {    ░  |    ░  {    ░  |    ░  {    ░  |    ░  {    ░  {    ░  {    ░  { ┆
0x31b00…31b80 UnusedSector ┆   ░  {    ░  {    ░  {    ░  |    ░  {    ░  |    ░  {    ░  |    ░                  \           {   >         \         \     ┆
0x31b80…31c00 UnusedSector ┆    {    ░          b         \                     `     @           '    ░       ░  `           |    ░a       @               ┆
0x31c00…31c80 UnusedSector ┆                                                                                                                                ┆
0x31c80…31d00 UnusedSector 0x00[128]
         […0x2…]
0x31e00…31e80 UnusedSector ┆                                                  C                                                                             ┆
0x31e80…31f00 UnusedSector ┆-     {   f   %       \         & {   >   '   ( f a   p , p     {   g   *       \         + {   >   ,   -   q &   {   h   /     ┆
0x31f00…31f80 UnusedSector ┆  \         0 {   >   1   2         f a     ,       {    ░    3       ,       {   i   5       \         6 {   >   7   8 {   j   ┆
0x31f80…32000 UnusedSector ┆9 {   >   :   {   k   ; '   l ░░    l @ |    ░  |    ░    <   = \       > {   V   @   B b P     C     D   p       p     {   m   ┆
0x32000…32080 UnusedSector ┆F       \         G {   >   H   I   p     {   n   K {   o   L {   >   M   {   p   N '   q ░░    q @ |    ░  |    ░    P {   r   ┆
0x32080…32100 UnusedSector ┆R {   s   S {   >   T   {   t   U '   u ░░    u @ |    ░  |    ░    V   W \       X {   V   Z   ^ \     @       @   _ 6 P @ - P ┆
0x32100…32180 UnusedSector ┆    {   v   a       \         b {   >   c   d       `     `   e `   %     f `   $     g       {   w   i       \   "     j {   > ┆
0x32180…32200 UnusedSector ┆  k   l g   a     m g P a     n \     @       @ 5 P @ {   x   p       f Q ! @   @   {   y   r       \         s {   >   t   u f ┆
0x32200…32280 UnusedSector ┆A   P   v f A   0   0   {   z   x       \         y {   >   z   { f A   @   |     0         {   {   } \         ~ g   a   {    ░┆
0x32280…32300 UnusedSector ┆      \       g   a       {   |           f Q & @   @   {   }           \   !       {   >         d @ P     f Q & P     \       ┆
0x32300…32380 UnusedSector ┆g   a           g @ a       b ` @     ░   i  0     0              |    ░      {   V         b 0 `     {   ~               \     ┆
0x32380…32400 UnusedSector ┆      {   >     {           {         '   J ░░    J @ |    ░  |    ░  |    ░              0     {    ░          0     {         ┆
0x32400…32480 UnusedSector ┆      \   w   {               \                 P           P / P           |    ░          \               {                   ┆
0x32480…32500 UnusedSector ┆\           {   >     {           {         '   @ ░░    @ @ |    ░  |    ░      c 0                                     |    ░  ┆
0x32500…32580 UnusedSector ┆                  `     {    ░          `     {         \     b   0           \   w   b   @           \       b   P b P `       ┆
0x32580…32600 UnusedSector ┆    `         (     {                               {         \               0     b @       b P       \   p           p 7 0 p ┆
0x32600…32680 UnusedSector ┆      TO  :                   FM  :                                                                                             ┆
0x32680…32700 UnusedSector ┆        G + G 3 = ░░h k v y         ░░░░  D " ' > A ~                         ░░\ ░░f ░░░░y           $   $ . 2 N g S ░░\ e ` ░░┆
0x32700…32780 UnusedSector ┆l z         )     ░░            ░░      ░░b       ░ ░░    + / = H C G ░░l O U Z d h l ░░v   |   ░░      ░░                      ┆
0x32780…32800 UnusedSector ┆      (             READ_WORDS        OUTPUT_TEXT       UPDATE_LINCB      * INTERRUPT_HANDLER     - LTU_IF      , BOOT_HANDLER  ┆
0x32800…32880 UnusedSector ┆      NEXT_XFER_ELEM      < CHECK_OPERATION     @ GETWORD     ( TERMINATE_OPERATION     J NEXT_OPERATION      d LTUASSIGN     q ┆
0x32880…32900 UnusedSector 0x00[128]
         […0x10…]
0x33100…33180 UnusedSector ┆                                                                                                                                ┆
0x33180…33200 UnusedSector ┆                          F               "   <   .   ,   B   @   >                       2   4   6   &   (   *               LT┆
0x33200…33280 UnusedSector ┆  U0  01                                                                                                                        ┆
0x33280…33300 UnusedSector ┆                                                                                      UN  KN  OW  N           BU  SY            ┆
0x33300…33380 UnusedSector ┆  CBAR    ^   LCB       TERMTB        LINTB       LQD       TRANS_QUE       ASGD        CRTT        LINPTR        CONPTR        ┆
0x33380…33400 UnusedSector ┆LTU_ADDR        LTU_ADDR_PRIO       LTU_CB        INTOPREF        XFER_ADDR       MONVAR        SEM_OPIF        SEM_OPBREAK     ┆
0x33400…33480 UnusedSector ┆  SEM_OPPDP       SEM_OPLTU       SEM_OPANS       SEM_OPDUMMY       COR_DESC_IF       COR_DESC_PDP        COR_DESC_LTU        CO┆
0x33480…33500 UnusedSector ┆R_DESC_DUMMY        COR_DESC_ANS        I_F_ADDR        I_F_TAB       LTU_COM   $   PROC_NAME   (   OWN_PCBINDEX    )   OP    2 ┆
0x33500…33580 UnusedSector ┆  EX_OP   ;   OP_EXT_INTRPT   D   OP_EXT_LOOK   M   OP_EXT_DUMMY    V   BK_BUF    Z   UNKNOWN   `   BUSY    f   TO_BREAK    l   ┆
0x33580…33600 UnusedSector ┆FROM      ░░GENERATE_ANSWER_OPERATION     ░░DEQUEUE_OPERATION     ░░PROCESS_BREAK   Q ░░FIND_INT_OP   Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x33600…33680 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x7…]
0x33a00…33a80 UnusedSector ┆a P               a `               a p         f q   `           f a /       \                         {                       ┆
0x33a80…33b00 UnusedSector ┆            |    ░      f A         ░         {             f q   ` b ` P       `   {         c         g   q       {         & ┆
0x33b00…33b80 UnusedSector ┆` P d ` ` |    ░      e `       c   `         + @ \   P               P   !         e P     " + @   P     |    ░    # b @ P   $ ┆
0x33b80…33c00 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x7…]
0x33f80…34000 UnusedSector ┆LTUDEASSIGN     l LINASSIGN     u LINDEASSIGN     Q CONCREATE     [ CONDISMANTLE      U CREATEBOOT        CFER    &   SEMAR   . ┆
0x34000…34080 UnusedSector ┆  LT ░DR.L ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░                  ░░░                             ┆
0x34080…34100 UnusedSector ┆  ======== LTU_DR.SS         00.00001 MAINMODULE LTU_DRIVER; 00.00002 "---------------------------------------------------------┆
0x34100…34180 UnusedSector ┆----------- 00.00003 " 00.00004 "  PROJECT:               X 00.00005 " 00.00006 "  MODULE NAME:           LTU MAIN MODULE 00.000┆
0x34180…34200 UnusedSector ┆07 "  MODULE ID NMB:         0010 00.00008 "  MODULE VERSION:        0001 00.00009 "  MODULE TYPE:           MAIN MODULE 00.0001┆
0x34200…34280 UnusedSector ┆0 "  MODULE FILES:          SUB_COR.SS  SUB_PROC.SS 00.00011 "  MERGE FILES:           GENERALPARAMS.S MONITORNAMES.S 00.00012 "┆
0x34280…34300 UnusedSector ┆                         COMONPARAMS.S FMSPARAMS.S DRIVERPARAMS.S 00.00013 "                         LTU_DRIV_PREFX.C DMADRVPARA┆
0x34300…34380 UnusedSector ┆MS.S 00.00014 " 00.00015 "  SPECIFICATIONS:        X 00.00016 "  AUTHOR/DATE:           OH/810415 00.00017 " 00.00018 "  DELIVER┆
0x34380…34400 UnusedSector ┆ABLE:           NO 00.00019 "  SOURCE LANGUAGE:       SWELL 00.00020 "  COMPILE COMPUTER:      CR80 00.00021 "  TARGET COMPUTER:┆
0x34400…34480 UnusedSector ┆       CR80 00.00022 "  OPERATING SYSTEM:      AMOS 00.00023 " 00.00024 "-------------------------------------------------------┆
0x34480…34500 UnusedSector ┆------------- 00.00025 " 00.00026 "  CHANGE RECORD 00.00027 " 00.00028 "  VERSION    AUTHOR/DATE   DESCRIPTION OF CHANGE 00.0002┆
0x34500…34580 UnusedSector ┆9 "  -------    -----------   --------------------- 00.00030 " 00.00031 "-------------------------------------------------------┆
0x34580…34600 UnusedSector ┆------------- 00.00032 " 00.00033  00.00033 %SOURCE  ======== GENERALPARAMS.S    ======== LTU_DR.SS         00.00033  00.00034 %┆
0x34600…34680 UnusedSector ┆SOURCE  ======== MONITORNAMES.S     ======== LTU_DR.SS         00.00034  00.00035 %SOURCE  ======== COMONPARAMS.S      ======== ┆
0x34680…34700 UnusedSector ┆LTU_DR.SS         00.00035  00.00036 %SOURCE  ======== FMSPARAMS.S        ======== LTU_DR.SS         00.00036  00.00037 %SOURCE ┆
0x34700…34780 UnusedSector ┆ ======== DRIVERPARAMS.S     ======== LTU_DR.SS         00.00037  00.00038 %SOURCE  ======== DMADRVPARAMS.S     ======== LTU_DR.┆
0x34780…34800 UnusedSector ┆SS         00.00038  00.00039 %LIST 00.00040 %SOURCE  ======== LTU_DRIV_PREFX.C  07.00001  07.00002 "---------------------------┆
0x34800…34880 UnusedSector ┆----------------------------------------- 07.00003 " 07.00004 "  PROJECT:               X 07.00005 " 07.00006 "  MODULE NAME:   ┆
0x34880…34900 UnusedSector ┆        LTU_DRIV_PREFX.C 07.00007 "  MODULE ID NMB:         0010 07.00008 "  MODULE VERSION:        0001 07.00009 "  MODULE TYPE┆
0x34900…34980 UnusedSector ┆:           PREFIX 07.00010 "  MODULE FILES:          X 07.00011 "  MERGE FILES:           X 07.00012 " 07.00013 "  SPECIFICATIO┆
0x34980…34a00 UnusedSector ┆Z Z                                                                 Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x34a00…34a80 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
         […0x2…]
0x34b80…34c00 UnusedSector ┆  BFD                  ░ H  ░░ |   ░     ░     ░     ░     ░     ░BM   ░     ░     ░     ░     ░  LT ░GRAF ░     ░     ░     ░  ┆
0x34c00…34c80 UnusedSector ┆   ░U_DR ░ER   ░     ░     ░     ░LTU_ ░.SS  ░     ░     ░     ░  CB ░ROC. ░     ░     ░     ░     ░IV_P ░C.SS ░     ░     ░    ┆
0x34c80…34d00 UnusedSector ┆ ░XFER ░ROC. ░     ░     ░     ░  SU ░COR. ░     ░     ░     ░     ░B_PR ░.SS  ░     ░     ░     ░LTU_ ░IV_P ░FX.C ░     ░     ░┆
0x34d00…34d80 UnusedSector ┆COUNT:INTEGER; 07.00060     ADDR:INTEGER; 07.00061     OFFSET:INTEGER; 07.00062   END; 07.00063  07.00064 "FORMAT OF EXTENDED XF┆
0x34d80…34e00 UnusedSector ┆ER LIST ELEMENT" 07.00065 TYPE XFER_ELEM= 07.00066   RECORD 07.00067     OP, 07.00068     LINK, 07.00069     COUNT, 07.00070    ┆
0x34e00…34e80 UnusedSector ┆ ADDR, 07.00071     OFFSET, 07.00072     XFERPSW, 07.00073     BUFFPSW, 07.00074     XFOCNT:INTEGER; 07.00075   END; 07.00076  0┆
0x34e80…34f00 UnusedSector ┆7.00077 CONST 07.00078   XFER_CMP= 8;  XFER_CML= 8; 07.00079   XFER_SCP= 2;  XFER_SCL= 2; 07.00080  07.00081 TYPE 07.00082   XFE┆
0x34f00…34f80 UnusedSector ┆RLIST_COMMANDS= (XFER_CINP,XFER_COUT); 07.00083  07.00084 TYPE 07.00085   BYTEARR= ARRAY[0..0] OF BYTE; "BYTE ARRAY QUALIFIER" 0┆
0x34f80…35000 UnusedSector ┆7.00086  07.00087  07.00088 TYPE 07.00089   ILLOPSTYPE= ARRAY[1..13] OF INTEGER;  "ILLEGAL OPERATIONS" 07.00090  07.00091 TYPE 0┆
0x35000…35080 UnusedSector ┆7.00092   PROCOPSTYPE= ARRAY[1..13] OF INTEGER; "PROCESSABLE OPERATIONS" 07.00093  07.00094 CONST                           "COM┆
0x35080…35100 UnusedSector ┆PLETION CODE:" 07.00095   LTBER= #601;                  "LTU BOOT LOAD ERROR" 07.00096   XFLI0= #603;                  "XFER ELE┆
0x35100…35180 UnusedSector ┆M LINK =0" 07.00097   EMBUF= #604;                  "XFER ELEM BUF IS EMPTY" 07.00098   CHSER= #605;                  "LTU CHECK┆
0x35180…35200 UnusedSector ┆ SUM ERROR" 07.00099   NOINT= #606;                  "NO INTERNAL OPERATION FREE" 07.00100   ILCOM= #607;                  "ILLE┆
0x35200…35280 UnusedSector ┆GAL COMMAND" 07.00101   FOMER= #608;                  "COMMAND FORMAT ERROR" 07.00102   CMKER= #609;                  "ERROR IN ┆
0x35280…35300 UnusedSector ┆COMMAND NUMBER" 07.00103   NOCBF= #60A;                  "NO FRE CONTROL FOUND" 07.00104   LTUER= #60B;                  "HARDWA┆
0x35300…35380 UnusedSector ┆RE ERROR IN LTU" 07.00105   LTUAS= #60C;                  "LTU IS ALREADY ASSIGNED" 07.00106   LTNAS= #60D;                  "LT┆
0x35380…35400 UnusedSector ┆NS:        X 07.00014 "  AUTHOR/DATE:           OH 81:03:31 07.00015 " 07.00016 "  DELIVERABLE:           NO 07.00017 "  SOURCE ┆
0x35400…35480 UnusedSector ┆LANGUAGE:       SWELL 07.00018 "  COMPILE COMPUTER:      CR80 07.00019 "  TARGET COMPUTER:       CR80 07.00020 "  OPERATING SYST┆
0x35480…35500 UnusedSector ┆EM:      AMOS 07.00021 " 07.00022 "-------------------------------------------------------------------- 07.00023 " 07.00024 "  C┆
0x35500…35580 UnusedSector ┆HANGE RECORD 07.00025 " 07.00026 "  VERSION    AUTHOR/DATE   DESCRIPTION OF CHANGE 07.00027 "  -------    -----------   --------┆
0x35580…35600 UnusedSector ┆------------- 07.00028 " 07.00029 "-------------------------------------------------------------------- 07.00030 " 07.00031  07.┆
0x35600…35680 UnusedSector ┆00031  07.00032 CONST 07.00033   CHNUM=7;                                "NUMBER OF CHANNELS" 07.00034   BYTES=8; 07.00035   CBA┆
0x35680…35700 UnusedSector ┆SE=8; 07.00036   PABORTED=1; 07.00037  07.00038 "***********************************************************************" 07.000┆
0x35700…35780 UnusedSector ┆39 "                                                                       " 07.00040 "              DEVICE DRIVER CONFIGURATION┆
0x35780…35800 UnusedSector ┆ FOR INTERFACING TO           " 07.00041 "              THE AMOS I/O SYSTEM.                                     " 07.00042 "   ┆
0x35800…35880 UnusedSector ┆                                                                    " 07.00043 "************************************************┆
0x35880…35900 UnusedSector ┆***********************" 07.00044  07.00045  07.00046  07.00047 CONST 07.00048   MESS_CMP= 8;  MESS_CML= 8; 07.00049   MESS_SCP=┆
0x35900…35980 UnusedSector ┆ 2;  MESS_SCL= 2; 07.00050  07.00051 TYPE 07.00052   MESS_COMMANDS= (MESS_CABORT,MESS_CXFER); 07.00053  07.00054 " FORMAT OF XFE┆
0x35980…35a00 UnusedSector ┆R LIST ELEMENT" 07.00055 TYPE XFER_ELEMTYPE= 07.00056   RECORD 07.00057     OP:INTEGER; 07.00058     LINK:INTEGER; 07.00059     ┆
0x35a00…35a80 UnusedSector ┆ID:INTEGER;            "CON ID" 07.00145     MOCOUNT:INTEGER;            "INPUT BYTE COUNT" 07.00146     MOPCB:INTEGER;         ┆
0x35a80…35b00 UnusedSector ┆     "OPERATION PCB INDEX" 07.00147   END; 07.00148  07.00149  07.00150 TYPE ANS_OP=                    "INTERNAL ANSWER OPERATI┆
0x35b00…35b80 UnusedSector ┆ON" 07.00151   RECORD 07.00152     INT:INTERNAL_OPERATION; 07.00153     OPN:OP_TYPE; 07.00154     AOHEAD:INTEGER;             "R┆
0x35b80…35c00 UnusedSector ┆ESULT, SECTION" 07.00155     AOTLST:INTEGER;             "TRANSFER LIST ADDRESS" 07.00156     AOEVENT:INTEGER;            "EVENT┆
0x35c00…35c80 UnusedSector ┆ IDENTIFICATION" 07.00157     AOCNT:INTEGER;              "BYTE COUNT" 07.00158     AOCC:INTEGER;               "COMPLETION CODE┆
0x35c80…35d00 UnusedSector ┆" 07.00159   END; 07.00160  07.00161 TYPE TRANS_OP=                  "INTERNAL TRANSFER OPERATION" 07.00162   RECORD 07.00163   ┆
0x35d00…35d80 UnusedSector ┆  INT:INTERNAL_OPERATION; 07.00164     OPN:OP_TYPE; 07.00165     TOHEAD:INTEGER;             "COMMAND, SECTION" 07.00166     TOT┆
0x35d80…35e00 UnusedSector ┆U IS NOT ASSIGNED" 07.00107   BODER= #60E;                  "BOOT DATA COUNT ERROR" 07.00108   OVRFL= #60F;                  "OV┆
0x35e00…35e80 UnusedSector ┆ERFLOW IN DATA FROM LTU" 07.00109   REGRET= #610;                 "TRANSFERRED DATA FROM LTU ARE INVALID" 07.00110   RELEASE= #6┆
0x35e80…35f00 UnusedSector ┆11;                "STOP IN DATA TRANSFER FROM LTU" 07.00111   CBCER= #612;                  "ERROR IN CONTROL BLOCK CHAIN" 07.0┆
0x35f00…35f80 UnusedSector ┆0112   LISAS= #613;                  "AT LEAST ONE LINE IS STILL ASSIGNED" 07.00113   LINAS= #614;                  "LINE IS ALR┆
0x35f80…36000 UnusedSector ┆EADY ASSIGNED" 07.00114   LNOAS= #615;                  "LINE IS NOT ASSIGNED" 07.00115   LLNER= #616;                  "ERROR I┆
0x36000…36080 UnusedSector ┆N LTU LINE NUMBER" 07.00116   FRQER= #617;                  "ERROR IN FREQUENCY INDEX" 07.00117   MODER= #618;                  ┆
0x36080…36100 UnusedSector ┆"MODE OF OPERATION ERROR" 07.00118   PROER= #619;                  "UNKNOWN PROTOCOL TYPE" 07.00119   NOPRC= #61A;              ┆
0x36100…36180 UnusedSector ┆    "NO SUCH PROTOCOL COROUTINE" 07.00120   TERAS= #61B;                  "AT LEAST ONE TERMINAL IS STILL ASSIGNED" 07.00121   B┆
0x36180…36200 UnusedSector ┆BCER= #61C;                  "BOOT FILE BYTE COUNT ERROR" 07.00122   NNFND= #61D;                  "FILE NAME NOT FOUND" 07.0012┆
0x36200…36280 UnusedSector ┆3   ILCON= #61E;                  "ILLEGAL CON_ID/BOOT FILE ID" 07.00124   TNOCR= #61F;                  "TERMINAL IS NOT CREATE┆
0x36280…36300 UnusedSector ┆D" 07.00125   PCB_ERR= #620;                "ERROR IN PCB_INDEX FOR SINDING PROCESS" 07.00126   BFDSM= #621;                  "B┆
0x36300…36380 UnusedSector ┆OOT FILE IS DISMANTLED" 07.00127   BTTTG= #622;                  "BYTE COUNT IS TO BIG(BTCNT>2**16)" 07.00128   INTRERR= #623;  ┆
0x36380…36400 UnusedSector ┆              "LTU INTERRUPT CANNOT BE RESERVED" 07.00129  07.00130 "***********************************************************┆
0x36400…36480 UnusedSector ┆************" 07.00131 "                                                                       " 07.00132 "               INTERN┆
0x36480…36500 UnusedSector ┆AL OPERATIONS                                     " 07.00133 "                                                                  ┆
0x36500…36580 UnusedSector ┆     " 07.00134 "***********************************************************************" 07.00135  07.00136 TYPE MES_OP=       ┆
0x36580…36600 UnusedSector ┆             "INTERNAL MESSAGE OPERATION" 07.00137   RECORD 07.00138     INT:INTERNAL_OPERATION; 07.00139     OPN:OP_TYPE; 07.00┆
0x36600…36680 UnusedSector ┆140     MOHEAD:INTEGER;             "COMMAND, SECTION" 07.00141     MOTLST:INTEGER;             "TRANSFER LIST ADDRESS" 07.00142┆
0x36680…36700 UnusedSector ┆     MOEVENT:INTEGER;            "EVENT IDENTIFICATION" 07.00143     MOLINEREF:INTEGER;          "REF(LINCB)" 07.00144     MOCON┆
0x36700…36780 UnusedSector ┆EVNT:INTEGER;          "EVENT IDENTIFICATION" 07.00233     MESS_COUNT:INTEGER;         "INPUT BYTE COUNT" 07.00234     MESS_CONI┆
0x36780…36800 UnusedSector ┆LST:INTEGER;             "TRANSFER LIST ADDRESS" 07.00167     TOEVENT:INTEGER;            "EVENT IDENTIFICATION" 07.00168     TO┆
0x36800…36880 UnusedSector ┆LINEREF:INTEGER;          "REF(LINCB)" 07.00169     TOCONID:INTEGER;            "CONNECTION ID" 07.00170   END; 07.00171  07.001┆
0x36880…36900 UnusedSector ┆72  07.00173 TYPE OPN_CODE=                  "OPERATION OP_TYPE CODES" 07.00174   (CHANNEL_0,CHANNEL_1,CHANNEL_2, 07.00175    CH┆
0x36900…36980 UnusedSector ┆ANNEL_3,CHANNEL_4,CHANNEL_5,INTRPT, 07.00176    CH_READ_BREAK,MESS_OP_READ, 07.00177    MESS_OP_APPEND,MESS_OP_BOOT, 07.00178   ┆
0x36980…36a00 UnusedSector ┆ ANS_OPN,ANS_OPN_ERR,INIT_CMD, 07.00179    BOOT_DISMANTLE); 07.00180 " PAGE  07.00181  07.00181  07.00182 CONST 07.00183   MAX_I┆
0x36a00…36a80 UnusedSector ┆NT_OP=10; 07.00184  07.00185 TYPE 07.00186   INT_OP_BUF=ARRAY[1..SIZE(MES_OP)*MAX_INT_OP] OF INTEGER; 07.00187  07.00188 TYPE 07┆
0x36a80…36b00 UnusedSector ┆.00189   INT_OP_BUF_DESC=ARRAY[1..MAX_INT_OP] OF INTEGER; 07.00190  07.00191 "**************************************************┆
0x36b00…36b80 UnusedSector ┆*********************" 07.00192 "                                                                       " 07.00193 "            ┆
0x36b80…36c00 UnusedSector ┆   DRIVER CONFIGURATION                                    " 07.00194 "                                                         ┆
0x36c00…36c80 UnusedSector ┆              " 07.00195 "***********************************************************************" 07.00196  07.00197 CONST 07.0┆
0x36c80…36d00 UnusedSector ┆0198   MAXLINES= 4;                 "NUMBER OF LINECB`S" 07.00199   MAXTERMS= 4;                 "NUMBER OF TERMCB`S" 07.00200  ┆
0x36d00…36d80 UnusedSector ┆ NCB= MAXLINES+MAXTERMS;      "NO OF LINCB AND TERMCB IN POOL" 07.00201  07.00202  07.00203 "***********************************┆
0x36d80…36e00 UnusedSector ┆************************************" 07.00204 "                                                                       " 07.0020┆
0x36e00…36e80 UnusedSector ┆5 "               CONTROL BLOCKS                                          " 07.00206 "                                          ┆
0x36e80…36f00 UnusedSector ┆                             " 07.00207 "***********************************************************************" 07.00208  07.0┆
0x36f00…36f80 UnusedSector ┆0209 TYPE LTUCB=                     "LTU CONTROL BLOCK:" 07.00210   RECORD 07.00211     DEVKIND:INTEGER;            "DEVICE KIN┆
0x36f80…37000 UnusedSector ┆D" 07.00212     DEVADDR:INTEGER;            "DEVICE ADDRESS" 07.00213     NOLIN:INTEGER;              "NUMBER OF LINES" 07.00214┆
0x37000…37080 UnusedSector ┆     NOLINAS:INTEGER;            "NO OF ASSIGNED LINES" 07.00215     STATE:INTEGER;              "STATE= 1 WHEN ASSIGNED ELSE 0"┆
0x37080…37100 UnusedSector ┆ 07.00216     STATUS:INTEGER;             "STATUS= 0 WHEN LTU OK ELSE 1" 07.00217   END; 07.00218  07.00219 TYPE LINCB=         ┆
0x37100…37180 UnusedSector ┆            "LINE CONTROL BLOCK:" 07.00220   RECORD 07.00221     PROT:INTEGER;               "PROTOCOL" 07.00222     MODEOP:INTE┆
0x37180…37200 UnusedSector ┆GER;             "MODE OF OPERATION" 07.00223     LTLINO:INTEGER;             "LTU LINE NUMBER" 07.00224     FREQ:INTEGER;      ┆
0x37200…37280 UnusedSector ┆         "COMMUNICATION RATE" 07.00225     TRQUEADDR:INTEGER;          "TRANSFER QUEUE ADDRESS" 07.00226     STATE:INTEGER;     ┆
0x37280…37300 UnusedSector ┆         "STATE= 1 WHEN ASSIGNED ELSE 0" 07.00227     STATUS:INTEGER;             "STATUS= 0 WHEN LTU OK ELSE 1" 07.00228     FI┆
0x37300…37380 UnusedSector ┆TERADDR:INTEGER;          "FIRST TERMCB ADDRESS" 07.00229     LTUCBADDR:INTEGER;          "LTUCB ADDRESS" 07.00230     MESS_HEAD┆
0x37380…37400 UnusedSector ┆:INTEGER;          "CMD,BUFFSEC,TRANSFERSEC" 07.00231     MESS_TLST:INTEGER;          "TRANSFER LIST ADDRESS" 07.00232     MESS_┆
0x37400…37480 UnusedSector ┆ "CONVERSATION DIRECTION" 07.00248     NETERMADDR:INTEGER;         "NEXT TERMINAL ADDRESS" 07.00249     STATE:INTEGER;          ┆
0x37480…37500 UnusedSector ┆    "STATE= 1 WHEN ASSIGNED ELSE 0" 07.00250     STATUS:INTEGER;             "STATUS= 0 WHEN LTU OK ELSE 1" 07.00251     PROCID:┆
0x37500…37580 UnusedSector ┆INTEGER;             "PROCES IDENTIFICATION" 07.00252     LINCBADDR:INTEGER;          "LINECB ADDRESS" 07.00253     PROSEMADDR:I┆
0x37580…37600 UnusedSector ┆NTEGER;         "PROTOCOL SEMAPHORE ADDRESS" 07.00254     XFERBUF:INTEGER;            "XFER_ELEM SAVE BUFFER" 07.00255   END; 07┆
0x37600…37680 UnusedSector ┆.00256  07.00257 TYPE LTU_ASGN_DESC=             "LTU ASSIGN DESCRIPTION RECORD" 07.00258   RECORD 07.00259     ASGNKIND:INTEGER┆
0x37680…37700 UnusedSector ┆;           "ASSIGN(LTU)=1" 07.00260     ASGNDEV:INTEGER;            "DEVICE KIND" 07.00261     ASGNIOADDR:INTEGER;         "DEV┆
0x37700…37780 UnusedSector ┆ICE ADDRESS" 07.00262     ASGNNULI:INTEGER;           "NUMBER OF LINES" 07.00263   END; 07.00264  07.00265 TYPE LINE_ASGN_DESC= ┆
0x37780…37800 UnusedSector ┆           "LINE ASSIGN DESCRIPTION RECORD" 07.00266   RECORD 07.00267     ASGNKIND:INTEGER;           "ASSIGN(LINE)=2" 07.00268┆
0x37800…37880 UnusedSector ┆     ASGNPROT:INTEGER;           "LINE PROTOCOL" 07.00269     ASGNMODE:INTEGER;           "MODE OF OPERATION" 07.00270     ASGNL┆
0x37880…37900 UnusedSector ┆TLINO:INTEGER;         "LTU LINE NUMBER" 07.00271     ASGNFREQ:INTEGER;           "COMMUNICATION RATE" 07.00272   END; 07.00273 ┆
0x37900…37980 UnusedSector ┆ 07.00274 TYPE CON_CR_ATT=                "CONNECTION ATTRIBUTES RECORD" 07.00275   RECORD 07.00276     CRKIND:INTEGER;         ┆
0x37980…37a00 UnusedSector ┆    "CREATE(CON)=2" 07.00277     CRLTLINO:INTEGER;           "LTU LINE NUMBER" 07.00278     CRADDR:INTEGER;             "TERMINA┆
0x37a00…37a80 UnusedSector ┆L ADDRESS" 07.00279   END; 07.00280  07.00281 TYPE BOOT_CR_ATT=               "BOOT LOAD ATTRIBUTES RECORD" 07.00282   RECORD 07┆
0x37a80…37b00 UnusedSector ┆.00283     CRKIND:INTEGER;             "CREATE(BOOT LOAD)=1" 07.00284     CRLTLINO:INTEGER;           "LTU LINE NUMBER" 07.00285┆
0x37b00…37b80 UnusedSector ┆   END; 07.00286  07.00287 CONST 07.00288   TRANS_MESS_NO= NCB;           "MAX NUMBER OF QUEUED TRANSFER MESSAGES" 07.00289   NT┆
0x37b80…37c00 UnusedSector ┆EL= TRANS_MESS_NO*SIZE(MES_OP);  "NUMBER OF TRANSFER QUEUE ELE-" 07.00290                                        "MENTS PER LINE┆
0x37c00…37c80 UnusedSector ┆" 07.00291  07.00292   NTE= NTEL*MAXLINES;           "TOTAL NUMBER OF TRANSFER QUEUE ELEMENTS" 07.00293  07.00294 TYPE 07.00295 ┆
0x37c80…37d00 UnusedSector ┆  CBARR= ARRAY[1..SIZE(TERMCB)*MAXTERMS] OF INTEGER; 07.00296  07.00297 TYPE 07.00298   SEMADDR= ARRAY[0..7] OF INTEGER;        ┆
0x37d00…37d80 UnusedSector ┆"ARRAY OF ADDRESSES TO PRO-" 07.00299                                           "TOCOL SEMAPHORS" 07.00300 TYPE 07.00301   TERMT┆
0x37d80…37e00 UnusedSector ┆ABLE= ARRAY[1..MAXTERMS] OF INTEGER;  "ARRAY OF ADDRESSES TO TER-" 07.00302                                              "MINAL ┆
0x37e00…37e80 UnusedSector ┆CB, INDEX=CON ID" 07.00303  07.00304 TYPE 07.00305   XFER_ELEM_BUFFERS= ARRAY[1..SIZE(XFER_ELEM)*MAXTERMS] OF INTEGER; 07.00306 ┆
0x37e80…37f00 UnusedSector ┆D:INTEGER;         "CONNECTION ID" 07.00235     CH_STATE:INTEGER;           "LINE STATE(READ,WRITE BREAK) 07.00236     CH_I_F_AD┆
0x37f00…37f80 UnusedSector ┆DR:INTEGER;        "ADDRESS TO LTU CH_I_F_TABLE" 07.00237     CUR_BTCNT:INTEGER;          "CURRENT BYTE COUNT" 07.00238   END; 0┆
0x37f80…38000 UnusedSector ┆7.00239  07.00240  07.00241 TYPE TERMCB=                    "TERMINAL CONTROL BLOCK:" 07.00242   RECORD 07.00243     CONID:INTEG┆
0x38000…38080 UnusedSector ┆ER;              "CONNECTION ID" 07.00244     LTLINO:INTEGER;             "LTU LINE NUMBER" 07.00245     TERMADDR:INTEGER;      ┆
0x38080…38100 UnusedSector ┆     "TERMINAL ADDRESS" 07.00246     FIOPNO:INTEGER;             "NUMBER OF FILES OPEN" 07.00247     CONVDIR:INTEGER;           ┆
0x38100…38180 UnusedSector ┆                                       " 07.00357 "              LTU CONFIGURATION                                       " 07.00┆
0x38180…38200 UnusedSector ┆358 "                                                                      " 07.00359 "-----------------------------------------┆
0x38200…38280 UnusedSector ┆-----------------------------" 07.00360  07.00361 CONST                                     "STATUS WORD BIT MASK CONST" 07.0036┆
0x38280…38300 UnusedSector ┆2   BN_REGRET=0; 07.00363   BN_BREAK=5; 07.00364   BN_S_PACKET=6; 07.00365   BN_P_PACKET=7; 07.00366   BN_SET=7; 07.00367   CRLF┆
0x38300…38380 UnusedSector ┆=CR SHIFTLL 8 +LF; 07.00368  07.00369 CONST 07.00370   S_PACKET=1 SHIFTLL BN_S_PACKET; 07.00371   P_PACKET=1 SHIFTLL BN_P_PACKET┆
0x38380…38400 UnusedSector ┆; 07.00372  07.00373 CONST                                     "FIFO ORINTED I/O INSTR. CODE" 07.00374   MCCMD=1 SHIFTLL 11;    ┆
0x38400…38480 UnusedSector ┆                 "MASTER CLEAR" 07.00375   BLCMD=1 SHIFTLL 10;                     "BOOT LOAD LTU" 07.00376   SBPCMD=#3 SHIFTLL ┆
0x38480…38500 UnusedSector ┆6;                    "SET BYTE POINTER" 07.00377   RDCMD=#C SHIFTLL 6;                     "READ WORD" 07.00378   RDICMD=#4 SHI┆
0x38500…38580 UnusedSector ┆FTLL 6;                    "READ WORD AND INCREMENT" 07.00379   WRLCMD=#9 SHIFTLL 6;                    "WRITE BYTE FROM LOWER P┆
0x38580…38600 UnusedSector ┆OS" 07.00380   WRCMD=#D SHIFTLL 6;                     "WRITE WORD" 07.00381   WRICMD=#8 SHIFTLL 6;                    "WRITE WO┆
0x38600…38680 UnusedSector ┆RD AND INCREMENT" 07.00382   RSTCMD=#0 SHIFTLL 6;                    "READ DEVICE STATUS" 07.00383  07.00384 CONST              ┆
0x38680…38700 UnusedSector ┆                       "LTU ADDRESSES:" 07.00385   LTU_1=#14; 07.00386  07.00387  07.00388 TYPE LTU_I_F_TABLE_ADDR=             ┆
0x38700…38780 UnusedSector ┆     "ADDRESSES TO LTU AND TO-" 07.00389   RECORD                                  "INTERFACE TABLES" 07.00390     I_F_TABLE0:IN┆
0x38780…38800 UnusedSector ┆TEGER; 07.00391     I_F_TABLE1:INTEGER; 07.00392     I_F_TABLE2:INTEGER; 07.00393     I_F_TABLE3:INTEGER; 07.00394     I_F_TABLE┆
0x38800…38880 UnusedSector ┆4:INTEGER; 07.00395     I_F_TABLE5:INTEGER; 07.00396     I_F_TABLE6:INTEGER; 07.00397     I_F_TABLE7:INTEGER; 07.00398     LTU_A┆
0x38880…38900 UnusedSector ┆ 07.00307 TYPE 07.00308   XFER_ELEM_ADDR= TERMTABLE;; 07.00309  07.00310 TYPE 07.00311   LINETABLE=ARRAY[0..NCB] OF INTEGER; 07.┆
0x38900…38980 UnusedSector ┆00312  07.00313 TYPE 07.00314   LINE_CONTROL_BLOCK=ARRAY[1..SIZE(LINCB)*MAXLINES] OF INTEGER; 07.00315  07.00316 TYPE 07.00317  ┆
0x38980…38a00 UnusedSector ┆ LINE_QUEUE=ARRAY[1..NTEL] OF INTEGER; 07.00318  07.00319 TYPE 07.00320   TRANSFER_QUEUE= 07.00321   RECORD 07.00322     LINE0_Q┆
0x38a00…38a80 UnusedSector ┆UE:LINE_QUEUE; 07.00323     LINE1_QUE:LINE_QUEUE; 07.00324     LINE2_QUE:LINE_QUEUE; 07.00325     LINE3_QUE:LINE_QUEUE; 07.00326┆
0x38a80…38b00 UnusedSector ┆   END; 07.00327  07.00328 TYPE 07.00329   LINE_QUEUE_DESCRIPTER= ARRAY[0..MAXLINES-1] OF INTEGER; 07.00330  07.00331  07.00332 ┆
0x38b00…38b80 UnusedSector ┆CONST 07.00333   NCBADNO= 5;                   "NEXT CB ADDRESS IS NUMBER 5 IN CB" 07.00334   STATENO= 6;                   "STA┆
0x38b80…38c00 UnusedSector ┆TE IS NUMBER 6 IN CB" 07.00335  07.00336  07.00337 TYPE 07.00338   CONTROL_BLOCK_STATE=(CB_FREE,CB_OCCP); 07.00339  07.00340 TYP┆
0x38c00…38c80 UnusedSector ┆E 07.00341   CHANNEL_STATE=(CH_IDLE,CH_READ,CH_WRITE,CH_BREAK,BOOT_STARTED); 07.00342  07.00343 TYPE 07.00344   FIND_OUT= (NO_AN┆
0x38c80…38d00 UnusedSector ┆SWER,PROCESS_ANSWER); 07.00345  07.00346 TYPE 07.00347   EXT_OP=EXTERNAL_OPERATION; 07.00348  07.00349 TYPE 07.00350   FILE__NAM┆
0x38d00…38d80 UnusedSector ┆E= ARRAY[0..7] OF INTEGER; 07.00351  07.00352 TYPE 07.00353   FILE__NAMES= ARRAY[1..SIZE(FILE__NAME)*MAXTERMS] OF INTEGER; 07.00┆
0x38d80…38e00 UnusedSector ┆354  07.00355 "----------------------------------------------------------------------" 07.00356 "                               ┆
0x38e00…38e80 UnusedSector ┆2  00.00053        (R1;   "POINTER                       KEPT                      " 00.00054         R2;   "WORD COUNT         ┆
0x38e80…38f00 UnusedSector ┆           DEST                      " 00.00055         R5;   "REF(BUFFER)                   KEPT                      " 00.0005┆
0x38f00…38f80 UnusedSector ┆6         R4);  "LINK                          DEST                      " 00.00057  00.00058 IMPORT PROCEDURE OUTPUT_TEXT 00.00┆
0x38f80…39000 UnusedSector ┆059 "THIS PROCEDURE OUTPUTS A STRING OF TEXT SPECIFIED IN THE LTU DRIVER " 00.00060 "PROCESS TO THE SHARED RAM IN THE LTU.      ┆
0x39000…39080 UnusedSector ┆                         " 00.00061  00.00062         (R7;  "REF(LINCB)                  KEPT                      " 00.00063   ┆
0x39080…39100 UnusedSector ┆       R4); "LINK                        DEST                      " 00.00064  00.00065 IMPORT PROCEDURE UPDATE_LINCB 00.00066 "┆
0x39100…39180 UnusedSector ┆THIS PROCEDURE UPDATES THE SPECIFIED LINE CONTROL BLOCK WITH THE DATA" 00.00067 "IN THE SPECIFIED INTERNAL OPERATION.           ┆
0x39180…39200 UnusedSector ┆                      " 00.00068  00.00069         (R4;  "REF(INT_OP)                 KEPT                       " 00.00070     ┆
0x39200…39280 UnusedSector ┆     R7;  "REF(LINCB)                  KEPT                       " 00.00071          R6); "LINK                        DEST    ┆
0x39280…39300 UnusedSector ┆DDR:INTEGER; 07.00399   END; 07.00400  07.00401 TYPE LTU_COM_TABLE=                       "LTU COMMUNICATION TABLE" 07.00402   R┆
0x39300…39380 UnusedSector ┆ECORD 07.00403     TX_BTCNT:INTEGER; 07.00404     TX_ADDR:INTEGER; 07.00405     TX_STATUS:INTEGER; 07.00406     RX_BTCNT:INTEGER┆
0x39380…39400 UnusedSector ┆; 07.00407     RX_ADDR:INTEGER; 07.00408     RX_STATUS:INTEGER; 07.00409   END; 07.00410  07.00411 " PAGE  07.00412  07.00412 TY┆
0x39400…39480 UnusedSector ┆PE I_F_TABLE= 07.00413   RECORD 07.00414     TS1_STATUS:INTEGER; 07.00415     TX_BUF_ADDR:INTEGER; 07.00416     TS2_STATUS:INTEG┆
0x39480…39500 UnusedSector ┆ER; 07.00417     SPARE:INTEGER; 07.00418     RS1_STATUS:INTEGER; 07.00419     RX_BUF_ADDR:INTEGER; 07.00420     RS2_STATUS:INTEG┆
0x39500…39580 UnusedSector ┆ER; 07.00421   END; 07.00422  07.00423 TYPE 07.00424   I_F_TAB_ADDR=ARRAY[0..8] OF INTEGER;    "ADDRESSES TO LTU I_F TABLES" 07.┆
0x39580…39600 UnusedSector ┆00425 "----------------------------------------------------------------------" 07.00426 "                                       ┆
0x39600…39680 UnusedSector ┆                               " 07.00427 "             BREAK CONFIGURATION                                      " 07.00428 "   ┆
0x39680…39700 UnusedSector ┆                                                                   " 07.00429 "-------------------------------------------------┆
0x39700…39780 UnusedSector ┆---------------------" 07.00430  07.00431  07.00432 TYPE BREAK_OP= 07.00433   RECORD 07.00434     INT:INTERNAL_OPERATION; 07.004┆
0x39780…39800 UnusedSector ┆35     OPN:OP_TYPE; 07.00436     NAME1:INTEGER; 07.00437     NAME2:INTEGER; 07.00438     NAME3:INTEGER; 07.00439     LCBREF:INTE┆
0x39800…39880 UnusedSector ┆GER; 07.00440   END; 07.00441  07.00442 TYPE LINCB_BREAK= 07.00443   RECORD 07.00444     NUD:ARRAY[0..9] OF INTEGER;         "NO┆
0x39880…39900 UnusedSector ┆T USED" 07.00445     OUT_ADDR:INTEGER; 07.00446     OUT_BTCNT:INTEGER; 07.00447   END; 07.00448  07.00449 TYPE 07.00450   BREAK_┆
0x39900…39980 UnusedSector ┆BUF= ARRAY[1..8] OF BYTE; 07.00451  07.00452 TYPE  BREAK_ANSWER= ARRAY[0..5] OF INTEGER; 07.00453  07.00454 " PAGE  07.00455  07┆
0x39980…39a00 UnusedSector ┆.00455  07.00456   ======== LTU_DR.SS         00.00040  00.00041  00.00042  00.00043 LABEL IFCOR,IFCERR,IFCANS,IFCPROP; 00.00044┆
0x39a00…39a80 UnusedSector ┆ %PRINT 00.00045  00.00046  00.00047  00.00048  00.00049 IMPORT PROCEDURE READ_WORDS 00.00050 "THIS PROCEDURE READS WORDS FROM T┆
0x39a80…39b00 UnusedSector ┆HE LTU RAM STARTING AT THE SPECIFIED " 00.00051 "ADDRESS, TO THE SPECIFIED BUFFER.                                     " 00.0005┆
0x39b00…39b80 UnusedSector ┆                                                  " 00.00122  00.00123  00.00124  00.00125  00.00126 IMPORT PROCEDURE GETWORD 00┆
0x39b80…39c00 UnusedSector ┆.00127  00.00128 "SIMILAR TO GETBYTE, EXCEPT THE NEXT WORD IF ANY IS FETCHED.            " 00.00129  00.00130        (R3;  "--  ┆
0x39c00…39c80 UnusedSector ┆                           WORD                       " 00.00131         R4)  "LINK                           DEST              ┆
0x39c80…39d00 UnusedSector ┆                   " 00.00072  00.00073 IMPORT PROCEDURE INTERRUPT_HANDLER 00.00074 "THIS PROCEDURE SCANS ALL THE LTU COMMUNICAT┆
0x39d00…39d80 UnusedSector ┆ION TABLES. IF ANY CHANGE  " 00.00075 "IN THE STATUS WORD A DATA TRANSFER PROCEDURE IS CALLED.               " 00.00076  00.0007┆
0x39d80…39e00 UnusedSector ┆7        (R4);  "LINK                          DEST                      " 00.00078  00.00079 IMPORT PROCEDURE LTU_IF 00.00080 "┆
0x39e00…39e80 UnusedSector ┆THIS PROCEDURE TAKES CARE OF THE FIRST DATA TRANSFER TO ONE OF THE   " 00.00081 "LTU CHANNELS FROM THE APPLICATION .            ┆
0x39e80…39f00 UnusedSector ┆                      " 00.00082  00.00083        (R7;   "REF(LINCB)                     KEPT                    " 00.00084     ┆
0x39f00…39f80 UnusedSector ┆    R4);  "LINK                           DEST                    " 00.00085  00.00086 IMPORT PROCEDURE BOOT_HANDLER 00.00087 "T┆
0x39f80…3a000 UnusedSector ┆HIS PROCEDURE HANDLES THE BOOT LOADING OF THE LTU. AT FIRST THE CR80" 00.00088 "INDICATES THAT IT IS READY BY LOADING THE STATUS┆
0x3a000…3a080 UnusedSector ┆ WORD IN THE SHARED  " 00.00089 "RAM IN THE LTU WITH #AAAA. IF THE LTU IS READY, THE STATUS WORD WILL " 00.00090 "BE LOADED WITH┆
0x3a080…3a100 UnusedSector ┆ #0000. THE CR80 LOADS THE LTU WITH THE BOOT LOAD DATA." 00.00091 "IT IS CHECKED THAT THE STATUS WORD IS VALID, TELLING THAT THE┆
0x3a100…3a180 UnusedSector ┆ BOOT   " 00.00092 "LOAD HAS BEEN SUCCESFUL, IF NOT A NEW BOOT LOAD IS PERFORMED.        " 00.00093  00.00094        (R4;   "REF┆
0x3a180…3a200 UnusedSector ┆(INT_OP)                    KEPT                    " 00.00095         R7;   "REF(LINCB)                     KEPT               ┆
0x3a200…3a280 UnusedSector ┆     " 00.00096         R6);  "LINK                           DEST                    " 00.00097  00.00098 IMPORT PROCEDURE NEXT┆
0x3a280…3a300 UnusedSector ┆_XFER_ELEM 00.00099  00.00100   "THE NEXT XFER ELEMENT IF ANY IS FETCHED INTO CXFER.                  " 00.00101  00.00102      ┆
0x3a300…3a380 UnusedSector ┆  (R4)  "LINK                           DEST                       " 00.00103        :ERROR_DONE; 00.00104              "0= NONE┆
0x3a380…3a400 UnusedSector ┆                                                   " 00.00105              "1= OK                                               ┆
0x3a400…3a480 UnusedSector ┆      " 00.00106  00.00107 IMPORT PROCEDURE CHECK_OPERATION 00.00108  00.00109 "THE REFERENCED SYSTEM MSG IS INSPECTED. IF IT DO┆
0x3a480…3a500 UnusedSector ┆ES NOT HAVE A PROPER   " 00.00110 "FORMAT, RETURN IS MADE TO FAULT.                                       " 00.00111 "IF IT CONT┆
0x3a500…3a580 UnusedSector ┆AINS A CANCEL COMMAND, RETURN IS MADE TO CANCEL AND THE      " 00.00112 "EVENT TO BE CANCELLED IS PRODUCED.                     ┆
0x3a580…3a600 UnusedSector ┆                " 00.00113 "IF IT CONTAINS A TRANSFER COMMAND THE XFER LIST ELEMENT IS FETCHED     " 00.00114 "INTO CXFER. RETUR┆
0x3a600…3a680 UnusedSector ┆N IS MADE TO XFER.                                    " 00.00115  00.00116        (R1;  "REF(MSG)                       KEPT    ┆
0x3a680…3a700 UnusedSector ┆                   " 00.00117         R2;  "--                             EVENT(IF CANCEL)           " 00.00118         R4)  "L┆
0x3a700…3a780 UnusedSector ┆INK                           DEST                       " 00.00119        :0..2;"0= FAULT                                      ┆
0x3a780…3a800 UnusedSector ┆            " 00.00120              "1= CANCEL                                                 " 00.00121              "2=XFER  ┆
0x3a800…3a880 UnusedSector ┆D THE BYTECOUNT(=NUMBER OF TRANSFERRED  BYTES).               " 00.00141  00.00142        (R0;  "RESULT                         ┆
0x3a880…3a900 UnusedSector ┆KEPT(COMPLETION CODE)      " 00.00143         R1;  "BYTECOUNT(LEAST SIGF PART)     KEPT                       " 00.00144        ┆
0x3a900…3a980 UnusedSector ┆ R2;  "BYTECOUNT(MOST SIGF KIND)      KEPT                       " 00.00145         R4)  "LINK                           DEST   ┆
0x3a980…3aa00 UnusedSector ┆                    " 00.00146        :ERROR_DONE; 00.00147              "0= ERROR                                              ┆
0x3aa00…3aa80 UnusedSector ┆    " 00.00148              "1= OK                                                     " 00.00149  00.00150  00.00151 IMPORT PRO┆
0x3aa80…3ab00 UnusedSector ┆CEDURE NEXT_OPERATION 00.00152  00.00153 "THE REFERENCED SYSTEM MESSAGE IS INSPECTED. IF IT DOES NOT HAVE A     " 00.00154 "PROP┆
0x3ab00…3ab80 UnusedSector ┆ER FORMAT, RETURN IS MADE TO ERROR. IF IT CONTAINS A CANCEL CMD   " 00.00155 "RETURN IS MADE TO CANCEL AND THE EVENT TO BE CANCL┆
0x3ab80…3ac00 UnusedSector ┆LED IS DELIVERED.   " 00.00156 "IF THE MESSAGE CONTAINS A PROPER I/O COMMAND, RETURN IS MADE TO CMD.  " 00.00157 "AND THE OPERAT┆
0x3ac00…3ac80 UnusedSector ┆ION CODE AND BYTECOUNT ARE RETURNED.                    " 00.00158  00.00159        (R0;  "--                             BYTECO┆
0x3ac80…3ad00 UnusedSector ┆UNT(LEAST SIGF PART)" 00.00160         R1;  "REF(MSG)                       BYTECOUNT(MOST SIGF PART) " 00.00161         R2;  "-┆
0x3ad00…3ad80 UnusedSector ┆-                             OPERATION/EVENT           " 00.00162         R4)  "LINK                           DEST            ┆
0x3ad80…3ae00 UnusedSector ┆          " 00.00163        :0..2;"0= ERROR                                                 " 00.00164              "1= CANCEL  ┆
0x3ae00…3ae80 UnusedSector ┆                                              " 00.00165              "2= COMMAND                                               ┆
0x3ae80…3af00 UnusedSector ┆" 00.00166  00.00167 IMPORT PROCEDURE LTUASSIGN 00.00168  00.00169 "THIS PROCEDURE CHECKS WHETHER THE LTU ALREADY IS ASSIGNED AN┆
0x3af00…3af80 UnusedSector ┆D OK.      " 00.00170 "IF OK AND NOT ASSIGNED, IT SETS THE LTU CONTROL BLOCK STATE TO ASSIGNED" 00.00171  00.00172        (R1;  ┆
0x3af80…3b000 UnusedSector ┆"--                             COMPLETION CODE            " 00.00173         R4)  "LINK                           DEST         ┆
0x3b000…3b080 UnusedSector ┆              " 00.00174        :ERROR_DONE; 00.00175              "0= ERROR                                                  " ┆
0x3b080…3b100 UnusedSector ┆00.00176              "1= OK                                                     " 00.00177  00.00178  00.00179 IMPORT PROCEDURE┆
0x3b100…3b180 UnusedSector ┆ LTUDEASSIGN 00.00180  00.00181 "THIS PROCEDURE DEASSIGNES THE LTU IF IT WAS ASSIGNED. IF JUST ONE LINE" 00.00182 "STILL IS ASSI┆
0x3b180…3b200 UnusedSector ┆GNED THE LTU CANNOT BE DEASSIGNED.                       " 00.00183  00.00184        (R1;  "--                             COMPL┆
0x3b200…3b280 UnusedSector ┆ETION CODE            " 00.00185         R4)  "LINK                           DEST                       " 00.00186        :ERRO┆
0x3b280…3b300 UnusedSector ┆R_DONE; 00.00187              "0= ERROR                                                  " 00.00188              "1= OK         ┆
0x3b300…3b380 UnusedSector ┆                                            " 00.00189  00.00190  00.00191 IMPORT PROCEDURE LINASSIGN 00.00192  00.00193 "THIS P┆
0x3b380…3b400 UnusedSector ┆         " 00.00132        :ERROR_DONE; 00.00133              "0= NONE                                                   " 00.00┆
0x3b400…3b480 UnusedSector ┆134              "1= OK                                                     " 00.00135  00.00136  00.00137 IMPORT PROCEDURE TERM┆
0x3b480…3b500 UnusedSector ┆INATE_OPERATION 00.00138  00.00139 "THIS PROCEDURE SKIPS FORWARD TO THE LAST XFER ELEMENT AND STORES THE   " 00.00140 "RESULT AN┆
0x3b500…3b580 UnusedSector ┆                    " 00.00213        :ERROR_DONE; 00.00214              "0= ERROR                                              ┆
0x3b580…3b600 UnusedSector ┆    " 00.00215              "1= OK                                                     " 00.00216  00.00217  00.00218 IMPORT PRO┆
0x3b600…3b680 UnusedSector ┆CEDURE CONCREATE 00.00219  00.00220 "THIS PROCEDURE CHECKS WHETHER THE SPECIFIED CONNECTION ALREADY IS      " 00.00221 "CREATED.┆
0x3b680…3b700 UnusedSector ┆ IF NOT AND IF THE LTU IS OK, IT CREATES A TERMINAL CONTROL    " 00.00222 "BLOCK AND RETURNS A CON_ID.                          ┆
0x3b700…3b780 UnusedSector ┆                  " 00.00223  00.00224        (R1;  "--                             COMPLETION CODE            " 00.00225       ┆
0x3b780…3b800 UnusedSector ┆  R6; "--                              CON_ID                      " 00.00226         R4)  "LINK                           DEST ┆
0x3b800…3b880 UnusedSector ┆                      " 00.00227        :0..2;"0= ERROR                                                  " 00.00228             ┆
0x3b880…3b900 UnusedSector ┆ "1= OK                                                     " 00.00229              "2= TERM ALREADY CREATED                    ┆
0x3b900…3b980 UnusedSector ┆               " 00.00230  00.00231  00.00232 IMPORT PROCEDURE CONDISMANTLE 00.00233  00.00234 "THIS PROCEDURE REMOVES THE CONTR┆
0x3b980…3ba00 UnusedSector ┆OL BLOCK FOR THE SPECIFIED CONNECTION  " 00.00235 "FROM THE CHAIN OF CB`S.                                                " 00.0┆
0x3ba00…3ba80 UnusedSector ┆0236  00.00237        (R1;  "--                             COMPLETION  CODE           " 00.00238         R2;  "CON_ID          ┆
0x3ba80…3bb00 UnusedSector ┆               KEPT                       " 00.00239         R4)  "LINK                           DEST                       " 0┆
0x3bb00…3bb80 UnusedSector ┆0.00240        :0..2;"0= ERROR                                                  " 00.00241              "1= OK                  ┆
0x3bb80…3bc00 UnusedSector ┆                                   " 00.00242              "2= TERM STILL CREATED, COUNT-1                            " 00.00243┆
0x3bc00…3bc80 UnusedSector ┆  00.00244  00.00245 IMPORT PROCEDURE CREATEBOOT 00.00246  00.00247 "THIS PROCEDURE CHECKS WHETHER THE LTU IS ASSIGNED, AND THAT┆
0x3bc80…3bd00 UnusedSector ┆ NO LINES   " 00.00248 "ARE ASSIGNED. THE RETURN IS A BOOT FILE ID.                            " 00.00249  00.00250        (R1; ┆
0x3bd00…3bd80 UnusedSector ┆ "--                             COMPLETION CODE            " 00.00251         R6;  "--                             BOOT FILE ID┆
0x3bd80…3be00 UnusedSector ┆ROCEDURECHECKS WHETHER THE LTU IS OK AND IF THE LINE ALREADY IS " 00.00194 "ASSIGNED. IF THE LTU IS OK AND THE LINE IS NOT ASSIG┆
0x3be00…3be80 UnusedSector ┆NED, THE LINE CON-" 00.00195 "TROL BLOCK STATE IS CHANGED TO ASSIGNED, AND THE LINE ATTRIBUTES ARE  " 00.00196 "READ INTO THE CO┆
0x3be80…3bf00 UnusedSector ┆NTROL BLOCK.                                          " 00.00197  00.00198        (R1;  "--                             COMPLETI┆
0x3bf00…3bf80 UnusedSector ┆ON CODE            " 00.00199         R4)  "LINK                           DEST                       " 00.00200        :ERROR_D┆
0x3bf80…3c000 UnusedSector ┆ONE; 00.00201              "0= ERROR                                                  " 00.00202              "1= OK            ┆
0x3c000…3c080 UnusedSector ┆                                         " 00.00203  00.00204  00.00205 IMPORT PROCEDURE LINDEASSIGN 00.00206  00.00207 "THIS PR┆
0x3c080…3c100 UnusedSector ┆OCEDURE SETS THE LINE CONTROL BLOCK STATE TO DEASSIGNED,AND DE-" 00.00208 "CREMENTS THE LTUCB, NUMBER OF LINES ASSIGNED.        ┆
0x3c100…3c180 UnusedSector ┆                 " 00.00209  00.00210        (R1;  "--                             COMPLETION CODE            " 00.00211        ┆
0x3c180…3c200 UnusedSector ┆ R2;  "LTU LINE NUMBER                KEPT                       " 00.00212         R4)  "LINK                           DEST   ┆
0x3c200…3c280 UnusedSector ┆0_QUE); 00.00302   LQD[1]=ADDRESS(TRANS_QUE.LINE1_QUE); 00.00303   LQD[2]=ADDRESS(TRANS_QUE.LINE2_QUE); 00.00304   LQD[3]=ADDRES┆
0x3c280…3c300 UnusedSector ┆S(TRANS_QUE.LINE3_QUE); 00.00305  00.00306 VAR 00.00307   INTO_BUF:INT_OP_BUF; 00.00308   INTO_BUF_DESC:INT_OP_BUF_DESC; 00.0030┆
0x3c300…3c380 UnusedSector ┆9   INTO_MES_OP:MES_OP; 00.00310   XFER_BUFFERS:XFER_ELEM_BUFFERS; 00.00311   FILE_NAME: FILE__NAME; 00.00312   FILE_NAMES: FILE┆
0x3c380…3c400 UnusedSector ┆__NAMES; 00.00313  00.00314 "***********************************************************************" 00.00315 "                ┆
0x3c400…3c480 UnusedSector ┆                                                       " 00.00316 "               COROUTINE CONFIGURATION                       ┆
0x3c480…3c500 UnusedSector ┆          " 00.00317 "                                                                       " 00.00318 "***********************┆
0x3c500…3c580 UnusedSector ┆************************************************" 00.00319  00.00320 EXPORT VAR 00.00321   MONVAR:COMON_VAR; 00.00322   SEM_OPIF┆
0x3c580…3c600 UnusedSector ┆:SEMAPHORE;           "HOST INTERFACE OPERATION SEMAPHORE" 00.00323   SEM_OPBREAK:SEMAPHORE;        "HOST INTERFACE BREAK OPERAT┆
0x3c600…3c680 UnusedSector ┆ION SEM" 00.00324   SEM_OPPDP:SEMAPHORE;          "PDP OPERATION SEMAPHORE" 00.00325   SEM_OPLTU:SEMAPHORE;          "LTU OPERAT┆
0x3c680…3c700 UnusedSector ┆ION SEMAPHORE" 00.00326   SEM_OPANS:SEMAPHORE;          "ANSWER OPERATION SEMAPHORE" 00.00327   SEM_OPDUMMY:SEMAPHORE;        "D┆
0x3c700…3c780 UnusedSector ┆UMMY OPERATION SEMAPHORE" 00.00328   COR_DESC_IF, 00.00329   COR_DESC_PDP, 00.00330   COR_DESC_LTU, 00.00331   COR_DESC_DUMMY, 0┆
0x3c780…3c800 UnusedSector ┆               " 00.00252         R4)  "LINK                           DEST                       " 00.00253        :ERROR_DONE;┆
0x3c800…3c880 UnusedSector ┆ 00.00254              "0= ERROR                                                  " 00.00255              "1= OK                ┆
0x3c880…3c900 UnusedSector ┆                                     " 00.00256  00.00257  00.00258  00.00259 VAR 00.00260   OPREF:INTEGER;                "REFE┆
0x3c900…3c980 UnusedSector ┆RENCE TO CURRENT OPERATION" 00.00261   APP_BTCNT:LONG;               "APPLICATION BYTE COUNT" 00.00262  00.00263 IMPORT VAR 00.0┆
0x3c980…3ca00 UnusedSector ┆0264   CFER:XFER_ELEM; 00.00265  00.00266 CONST 00.00267   CXFER=ADDRESS(CFER); 00.00268  00.00269 "----------------------------┆
0x3ca00…3ca80 UnusedSector ┆------------------------------------------" 00.00270 "                                                                      " 00┆
0x3ca80…3cb00 UnusedSector ┆.00271 "            CONTROL BLOCK CONFIGURATION                               " 00.00272 "                                      ┆
0x3cb00…3cb80 UnusedSector ┆                                " 00.00273 "----------------------------------------------------------------------" 00.00274 EXP┆
0x3cb80…3cc00 UnusedSector ┆ORT VAR 00.00275   SEMAR:SEMADDR; 00.00276   CBAR:CBARR; 00.00277   LCB:LINE_CONTROL_BLOCK; 00.00278   TERMTB:TERMTABLE; 00.0027┆
0x3cc00…3cc80 UnusedSector ┆9   LINTB:LINETABLE; 00.00280   LQD:LINE_QUEUE_DESCRIPTER; 00.00281   TRANS_QUE:TRANSFER_QUEUE; 00.00282   ASGD:LINE_ASGN_DESC; ┆
0x3cc80…3cd00 UnusedSector ┆00.00283   CRTT:CON_CR_ATT; 00.00284   LINPTR:INTEGER; 00.00285   CONPTR:INTEGER; 00.00286   LTU_ADDR:INTEGER; 00.00287   LTU_AD┆
0x3cd00…3cd80 UnusedSector ┆DR_PRIO:INTEGER; 00.00288   LTU_CB:LTUCB; 00.00289   INTOPREF:INTEGER;             "REF TO INTERNAL OPERATION" 00.00290   XFER_A┆
0x3cd80…3ce00 UnusedSector ┆DDR:XFER_ELEM_ADDR; 00.00291  00.00292 INIT 00.00293   CBAR[1..SIZE(TERMCB)*MAXTERMS]= 0; 00.00294   TERMTB[1..MAXTERMS]= 0; 00.┆
0x3ce00…3ce80 UnusedSector ┆00295   LINTB[0..NCB]=0; 00.00296   LCB[1..SIZE(LINCB)*MAXLINES]=0; 00.00297   TRANS_QUE.LINE0_QUE[1]=0; 00.00298   TRANS_QUE.LI┆
0x3ce80…3cf00 UnusedSector ┆NE1_QUE[1]=0; 00.00299   TRANS_QUE.LINE2_QUE[1]=0; 00.00300   TRANS_QUE.LINE3_QUE[1]=0; 00.00301   LQD[0]=ADDRESS(TRANS_QUE.LINE┆
0x3cf00…3cf80 UnusedSector ┆2 "                                                                       " 00.00413 "               EXTERNAL OPERATION CONFIGUR┆
0x3cf80…3d000 UnusedSector ┆ATION                        " 00.00414 "                                                                       " 00.00415 "****┆
0x3d000…3d080 UnusedSector ┆*******************************************************************" 00.00416  00.00417 EXPORT VAR 00.00418   OP:EXT_OP; 00.0041┆
0x3d080…3d100 UnusedSector ┆9   EX_OP:EXT_OP; 00.00420   OP_EXT_INTRPT:EXT_OP; 00.00421   OP_EXT_LOOK:EXT_OP; 00.00422   OP_EXT_DUMMY:EXT_OP; 00.00423  00.0┆
0x3d100…3d180 UnusedSector ┆0424 INIT 00.00425   OP.BUF[0..4]= 0; 00.00426   EX_OP.BUF[0..4]=0; 00.00427   OP_EXT_INTRPT.BUF[0..4]=0; 00.00428   OP_EXT_LOOK┆
0x3d180…3d200 UnusedSector ┆0.00332   COR_DESC_ANS:COROUTINE_DESCRIPTOR; 00.00333  00.00334 VAR 00.00335   SEM_ADDR:ARRAY[0..6] OF INTEGER; 00.00336  00.003┆
0x3d200…3d280 UnusedSector ┆37 CONST 00.00338   AMON= ADDRESS(MONVAR); 00.00339  00.00340 INIT 00.00341   SEMAR[0..7]= 0; 00.00342   SEMAR[1]= ADDRESS(SEM_O┆
0x3d280…3d300 UnusedSector ┆PPDP); 00.00343  00.00344 INIT 00.00345   SEM_ADDR[0]=ADDRESS(SEM_OPIF); 00.00346   SEM_ADDR[1]=ADDRESS(SEM_OPPDP); 00.00347   S┆
0x3d300…3d380 UnusedSector ┆EM_ADDR[2]=ADDRESS(SEM_OPLTU); 00.00348   SEM_ADDR[3]=ADDRESS(SEM_OPANS); 00.00349   SEM_ADDR[4]=ADDRESS(SEM_OPBREAK); 00.00350 ┆
0x3d380…3d400 UnusedSector ┆  SEM_ADDR[5]=ADDRESS(SEM_OPDUMMY); 00.00351  00.00352 "--------------------------------------------------------------------" 00┆
0x3d400…3d480 UnusedSector ┆.00353 "                                                                    " 00.00354 "             LTU CONFIGURATION          ┆
0x3d480…3d500 UnusedSector ┆                            " 00.00355 "                                                                    " 00.00356 "--------┆
0x3d500…3d580 UnusedSector ┆------------------------------------------------------------" 00.00357  00.00358 EXPORT VAR 00.00359   I_F_ADDR:I_F_TAB_ADDR;   ┆
0x3d580…3d600 UnusedSector ┆     "ADDRESSES TO LTU I_F TABLES" 00.00360   I_F_TAB:I_F_TABLE; 00.00361   LTU_COM:LTU_COM_TABLE; 00.00362  00.00363 "*********┆
0x3d600…3d680 UnusedSector ┆**************************************************************" 00.00364 "                                                      ┆
0x3d680…3d700 UnusedSector ┆                 " 00.00365 "               HOST INTERFACE COROUTINE CONFIGURATION                  " 00.00366 "                ┆
0x3d700…3d780 UnusedSector ┆                                                       " 00.00367 "*************************************************************┆
0x3d780…3d800 UnusedSector ┆**********" 00.00368  00.00369  00.00370 VAR 00.00371   MSIDENT:INTEGER;              "RECEIVED MESSAGE IDENT" 00.00372   ILLOPS┆
0x3d800…3d880 UnusedSector ┆:ILLOPSTYPE; 00.00373   PROCOPS:PROCOPSTYPE; 00.00374  00.00375 EXPORT VAR 00.00376   PROC_NAME:PROCESS_NAME; 00.00377   OWN_PCB┆
0x3d880…3d900 UnusedSector ┆INDEX:INTEGER; 00.00378  00.00379 INIT 00.00380   PROC_NAME.NAME[0..5]='LTU001'; 00.00381  00.00382 INIT 00.00383   ILLOPS= 00.0┆
0x3d900…3d980 UnusedSector ┆0384     ACCEPT_CMD, 00.00385     FORMAT_CMD, 00.00386     MOUNT_CMD, 00.00387     DISMOUNT_CMD, 00.00388     OFFER_CMD, 00.0038┆
0x3d980…3da00 UnusedSector ┆9     PROTECT_CMD, 00.00390     READ_SECTORS_CMD, 00.00391     REMOVE_CMD, 00.00392     RENAME_CMD, 00.00393     WRITE_AND_MARK_┆
0x3da00…3da80 UnusedSector ┆CMD, 00.00394     WRITE_AND_PROTECT_CMD, 00.00395     WRITE_SECTORS_CMD, 00.00396     0; 00.00397  00.00398 INIT 00.00399   PROC┆
0x3da80…3db00 UnusedSector ┆OPS= 00.00400     CREATE_CMD, 00.00401     DISMANTLE_CMD, 00.00402     ASSIGN_CMD, 00.00403     DEASSIGN_CMD, 00.00404     READ_┆
0x3db00…3db80 UnusedSector ┆BYTES_CMD, 00.00405     MODIFY_BYTES_CMD, 00.00406     APPEND_BYTES_CMD, 00.00407     ENTER_CMD, 00.00408     LOOKUP_CMD, 00.004┆
0x3db80…3dc00 UnusedSector ┆09     DESCENT_CMD, 00.00410     0,0; 00.00411 "***********************************************************************" 00.0041┆
0x3dc00…3dc80 UnusedSector ┆THIS PROCEDURE TAKES CARE OF THE FIRST DATA TRANSFER TO ONE OF THE   " 00.00081 "LTU CHANNELS FROM THE APPLICATION .            ┆
0x3dc80…3dd00 UnusedSector ┆                      " 00.00082  00.00083        (R7;   "REF(LINCB)                     KEPT                    " 00.00084     ┆
0x3dd00…3dd80 UnusedSector ┆    R4);  "LINK                           DEST                    " 00.00085  00.00086 IMPORT PROCEDURE BOOT_HANDLER 00.00087 "T┆
0x3dd80…3de00 UnusedSector ┆                       " 00.00441 "----------------------------------------------------------------------" 00.00442 EXPORT VAR 0┆
0x3de00…3de80 UnusedSector ┆0.00443   BK_BUF:BREAK_BUF; 00.00444   UNKNOWN:BREAK_ANSWER; 00.00445   BUSY:BREAK_ANSWER; 00.00446   TO_BREAK:BREAK_ANSWER; 00.┆
0x3de80…3df00 UnusedSector ┆00447   FROM:BREAK_ANSWER; 00.00448  00.00449 INIT 00.00450   UNKNOWN[0..4]='UNKNOWN ',CRLF; 00.00451   BUSY='BUSY',CRLF; 00.004┆
0x3df00…3df80 UnusedSector ┆52   TO_BREAK='TO: '; 00.00453   FROM='FM: '; 00.00454 "*********************************************************************" 0┆
0x3df80…3e000 UnusedSector ┆0.00455  00.00456 %SOURCE  ======== SUB_PROC.SS       08.00001 EXPORT PROCEDURE GENERATE_ANSWER_OPERATION 08.00002  08.00003  08┆
0x3e000…3e080 UnusedSector ┆.00004        (R0;  "COMPLETION CODE                DEST                       " 08.00005         R1;  "RESULT                  ┆
0x3e080…3e100 UnusedSector ┆       DEST                       " 08.00006         R2;  "BYTECOUNT                      KEPT                       " 08.00007 ┆
0x3e100…3e180 UnusedSector ┆        R4;  "OPERATION ADDRESS              KEPT                       " 08.00008         R6); "LINK                           ┆
0x3e180…3e200 UnusedSector ┆DEST                       " 08.00009  08.00010 VAR 08.00011   SV26,SV27:INTEGER; 08.00012  08.00013 BEGIN 08.00014   R6=> SV26;┆
0x3e200…3e280 UnusedSector ┆      " 00.00106  00.00107 IMPORT PROCEDURE CHECK_OPERATION 00.00108  00.00109 "THE REFERENCED SYSTEM MSG IS INSPECTED. IF IT DO┆
0x3e280…3e300 UnusedSector ┆ES NOT HAVE A PROPER   " 00.00110 "FORMAT, RETURN IS MADE TO FAULT.                                       " 00.00111 "IF IT CONT┆
0x3e300…3e380 UnusedSector ┆AINS A CANCEL COMMAND, RETURN IS MADE TO CANCEL AND THE      " 00.00112 "EVENT TO BE CANCELLED IS PRODUCED.                     ┆
0x3e380…3e400 UnusedSector ┆                " 00.00113 "IF IT CONTAINS A TRANSFER COMMAND THE XFER LIST ELEMENT IS FETCHED     " 00.00114 "INTO CXFER. RETUR┆
0x3e400…3e480 UnusedSector ┆N IS MADE TO XFER.                                    " 00.00115  00.00116        (R1;  "REF(MSG)                       KEPT    ┆
0x3e480…3e500 UnusedSector ┆                   " 00.00117         R2;  "--                             EVENT(IF CANCEL)           " 00.00118         R4)  "L┆
0x3e500…3e580 UnusedSector ┆INK                           DEST                       " 00.00119        :0..2;"0= FAULT                                      ┆
0x3e580…3e600 UnusedSector ┆                       ░ H  ░░ |   ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░  ┆
0x3e600…3e680 UnusedSector ┆   ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░    ┆
0x3e680…3e700 UnusedSector ┆ ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░┆
0x3e700…3e780 UnusedSector ┆     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░     ░                  ░░░                             ┆
0x3e780…3e800 UnusedSector 0x1a[128]
         […0x1…]
0x3e880…3e900 UnusedSector ┆7        (R4);  "LINK                          DEST                      " 00.00078  00.00079 IMPORT PROCEDURE LTU_IF 00.00080 "┆