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

⟦a3c8eb9c9⟧ TextFile

    Length: 19590 (0x4c86)
    Types: TextFile
    Names: »ENQ.P«

Derivation

└─⟦881c1028e⟧ Bits:30005102 8" CR80 Floppy CR80FD_0061 ( VOL: SCC.V NSC Directory: Queue_test.D )
    └─⟦4f56469eb⟧ 
        └─ ⟦this⟧ »QUEUE_TEST.D!ENQ.P« 

TextFile


00.00003 "---------------------------------------------------------------
00.00004 "
00.00005 "     ENQUEUE UTILITY:
00.00006 "
00.00007 "----------------------------------------------------------------
00.00008 "
00.00009 " QUEUES A MTCB WITH A POSSIBLE MESSAGE-FILE INTO A QUEUE
00.00010 " SPECIFYED BY TERMINAL NO. AND QUEUE NO.
00.00011 "
00.00012 "
00.00013 " CALL:
00.00014 "     ENQ    MTCB:<MTCB_FILE> MSG:<MSG_FILE> TER= XX  QUE= YY
00.00015 "
00.00016 "                  WHERE XX AND YY IS DECIMAL QUEUE NUMBERS.
00.00017 "
00.00018 "
00.00019 %SOURCE

======== GENERALPARAMS.S«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00019 
00.00020 %SOURCE

======== MONITORNAMES.S«nul»«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00020 
00.00021 %SOURCE

======== IOSPARAMS.S«nul»«nul»«nul»«nul»«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00021 
00.00022 
00.00023 %SOURCE

======== SCCNAME.N«nul»«nul»«nul»«nul»«nul»«nul»«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00023 
00.00024 %SOURCE

======== SCCDATA.N«nul»«nul»«nul»«nul»«nul»«nul»«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00024 
00.00025 %SOURCE

======== NSSMTCB.N«nul»«nul»«nul»«nul»«nul»«nul»«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00025 
00.00026 %SOURCE

======== SCC_PROCESS.N«nul»«nul»«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00026 
00.00027 %SOURCE

======== SUPPORT.N«nul»«nul»«nul»«nul»«nul»«nul»«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00027 
00.00028 %SOURCE

======== QACCESS_TYPES.S«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00028 
00.00029 
00.00030 
00.00031 %SOURCE

======== UTH.I«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»


======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00031 
00.00032 
00.00033 %LIST
00.00034 %PRINT
00.00035 
00.00036 "     REDEFINITION OF MON INFILE,INELEMENT EXIT VALUES:
00.00037 "
00.00038 CONST
00.00039   INFIOERROR=      IF_ERROR;      
00.00040   INFSYNTAX=       IF_SYNTAX;
00.00041 
00.00042   INELERROR=       IE_ERROR;
00.00043   INELNUMBER=      IE_NUMBER;
00.00044   INELID=          IE_IDENTIFIER;
00.00045   INELSPECIAL=     IE_SPECIAL;
00.00046 
00.00047 TYPE
00.00048   INFID_EXIT=      INFILEID_EXITS;
00.00049   INEL_EXIT=       INELEMENT_EXITS;
00.00050 
00.00051 
00.00052 VAR
00.00053   Q_CTBL: QIOCB;
00.00054   MTCB_BUF: ARRAY[0..SIZE(REAL)-1] OF INTEGER;
00.00055   MTCB_INDX: INTEGER;
00.00056   TER_NO:    INTEGER;
00.00057   QUE_NO:    INTEGER;
00.00058   QUE_NO_DEL:INTEGER;
00.00059   MSGFILETYPE:   FILETYPE;
00.00060   QUEFILETYPE:   FILETYPE;
00.00061   MTCBFILETYPE:  FILETYPE;
00.00062   SIGNAL_NAME1:        PROCESS_NAME;
00.00063 INIT
00.00064   QUEFILETYPE.NAME = 'Q MON CALL(:0:)(:0:)';
00.00065 
00.00066 
00.00067 IMPORT PROCEDURE MTCBMINIT(R3;R6):ERROR_DONE;
00.00068 %SOURCE

======== READUSERPARAMS.S

11.00001 EXPORT PROCEDURE READUSERPARAMS(R6); "ALL REGISTERS DESTROYED
11.00002 "============================"
11.00003 "     READS MSGFILEID FROM PARAMETERFILE. OPENS THE MESSAGEFILE
11.00004 "     AND THE MTCB FILE.
11.00005 "     READS THE TERMINAL NO. AND THE QUEUE NO. CONVERTS TO
11.00006 "     BINARY AND STORES IN TER_NO,QUE_NO RESPECTIVELY.
11.00007 "
11.00008 VAR
11.00009   LINK: INTEGER;
11.00010 
11.00011 CONST
11.00012   NAMELISTMAX= 10;
11.00013   KWSIZE= 2; "IN WORDS"
11.00014   DEFAULT_QUENO = -1;
11.00015 TYPE
11.00016   KEYWORDS= (K_ERROR,
11.00017              K_MTCB,
11.00018              K_MSG,
11.00019              K_TER,
11.00020              K_QUE,
11.00021              K_SIG,
11.00022              K_TOP);
11.00023 
11.00024 VAR
11.00025   KEYWORD: ARRAY [0..K_TOP*KWSIZE-1] OF INTEGER;
11.00026   KEYWORDINDEX: KEYWORDS;
11.00027   NAMENO: INTEGER;
11.00028   FROMADAM: INTEGER;
11.00029   FSN: FILE_SYSTEM_NAME;
11.00030   VOL: VOLUME_NAME;
11.00031   NAMELIST: ARRAY [0..SIZE(FILE_NAME)*NAMELISTMAX-1] OF INTEGER;
11.00032   WORKAREA: ARRAY [0..15] OF INTEGER;
11.00033 
11.00034   Q_NO  :INTEGER;                 " NO. READ FROM PFILE
11.00035 
11.00036 INIT
11.00037   KEYWORD[K_MTCB  *KWSIZE..(K_MTCB  +1)*KWSIZE-1]= 'MTCB';
11.00038   KEYWORD[K_MSG   *KWSIZE..(K_MSG   +1)*KWSIZE-1]= 'MSG';
11.00039   KEYWORD[K_TER   *KWSIZE..(K_TER   +1)*KWSIZE-1]= 'TER';
11.00040   KEYWORD[K_QUE   *KWSIZE..(K_QUE   +1)*KWSIZE-1]= 'QUE';
11.00041   KEYWORD[K_SIG  *KWSIZE..(K_SIG  +1)*KWSIZE-1]= 'SIG';
11.00042 
11.00043 BEGIN
11.00044   R6=> LINK;
11.00045   DEFAULT_QUENO => R6;
11.00046   R6 => TER_NO;
11.00047   R6 => QUE_NO;
11.00048   0 => R1;
11.00049   ADDRESS(SIGNAL_NAME1) => R0;
11.00050   PNAMELENGTH => R5;
11.00051   WHILE R5-1 >= 0 DO
11.00052     R1 => R0@B[R5];
11.00053 
11.00054   ADDRESS(PFILETYPE)=> R4;
11.00055 
11.00056 
11.00057   REPEAT
11.00058     READKEYWORD(KWSIZE,4,K_TOP,R0,ADDRESS(KEYWORD)=>R4,R6);
11.00059     R0=> KEYWORDINDEX;
11.00060 
11.00061     PFILETYPE.S=> R4;
11.00062     CASE R0:KEYWORDS OF
11.00063     K_ERROR:
11.00064       FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('ILLEGAL KEYWORD(:0:)')=>R5, 0=>R7, R6);
11.00065     K_MTCB,K_MSG:
11.00066       BEGIN " READ FILE ID "
11.00067         ADDRESS(DEFAULT_FSN)=> R6;
11.00068         ADDRESS(FSN)=> R7;
11.00069         MOVM(SIZE(FILE_SYSTEM_NAME), R6@FILE_SYSTEM_NAME, R7@FILE_SYSTEM_NAME);
11.00070         ADDRESS(DEFAULT_VOL)=> R6;
11.00071         ADDRESS(VOL)=> R7;
11.00072         MOVM(SIZE(VOLUME_NAME), R6@VOLUME_NAME, R7@VOLUME_NAME);
11.00073         SWITCH MON(INFILEID, ADDRESS(FSN)=>R0, ADDRESS(VOL)=>R1, R2, R3, R4, ADDRESS(NAMELIST)=>R5,
11.00074                    ADDRESS(WORKAREA)=>R6, R7): INFID_EXIT TO
11.00075         INFIOERROR:
11.00076           FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('INFILEID(:0:)')=>R5, R7, R6);
11.00077         INFSYNTAX:
11.00078           FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('FILEID SYNTAX(:0:)')=>R5, R7, R6);
11.00079         END;
11.00080         R2=> NAMENO;
11.00081         R3=> FROMADAM;
11.00082       END;
11.00083     K_TER,K_QUE:
11.00084       BEGIN " READ TERMINAL OR QUEUE NO.
11.00085         SWITCH MON(STREAM, INELEMENT, 2=>R1, R3, R5, ADDRESS(Q_NO)=>R6, R7): INEL_EXIT TO
11.00086         INELERROR:
11.00087           FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('INELEMENT(:0:)')=>R5,R7, R6);
11.00088         INELID, INELSPECIAL:
11.00089           FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('SYNTAX(:0:)')=>R5, R7, R6);
11.00090         END;
11.00091       END;
11.00092     K_SIG:
11.00093       BEGIN " READ PROCESSNAME OF PROCESS TO SIGNAL
11.00094         SWITCH MON(STREAM, INELEMENT, 6=>R1, R3, R5, ADDRESS(SIGNAL_NAME1)=>R6, R7): INEL_EXIT TO
11.00095         INELERROR:
11.00096           FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('IN SIG NAME(:0:)')=>R5,R7, R6);
11.00097         INELNUMBER, INELSPECIAL:
11.00098           FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('SIG SYNTAX(:0:)')=>R5, R7, R6);
11.00099         END;
11.00100       END;
11.00101     END;
11.00102 
11.00103     KEYWORDINDEX=> R6;
11.00104     CASE R6:KEYWORDS OF
11.00105     K_MTCB:
11.00106       BEGIN
11.00107         OPENFILE(ADDRESS(MTCBFILETYPE)=>R4, ADDRESS(FSN)=>R0, ADDRESS(VOL)=>R1, NAMENO=>R2,
11.00108           FROMADAM=>R3, ADDRESS(NAMELIST)=>R5, DFILETYPE.F=>R7, R6);
11.00109       END;
11.00110     K_MSG:
11.00111       BEGIN
11.00112         OPENFILE(ADDRESS(MSGFILETYPE)=>R4, ADDRESS(FSN)=>R0, ADDRESS(VOL)=>R1, NAMENO=>R2,
11.00113           FROMADAM=>R3, ADDRESS(NAMELIST)=>R5, DFILETYPE.F=>R7, R6);
11.00114       END;
11.00115     K_TER:
11.00116       Q_NO => R6 => TER_NO;
11.00117 
11.00118     K_QUE:
11.00119 
11.00120       Q_NO => R6 => QUE_NO;
11.00121 
11.00122 
11.00123     END;
11.00124   UNTIL KEYWORDINDEX=>R0 = K_TOP;
11.00125 
11.00126   TER_NO => R6;
11.00127   IF R6 = DEFAULT_QUENO
11.00128     THEN
11.00129       FILEERROR(ADDRESS(PFILETYPE)=>R4,ADDRESS('ILL. TERM. NO. (:0:)')=>R5,R7,R6);
11.00130   EXIT(LINK);
11.00131 END "READUSERPARAMS";
11.00132 
11.00133 
11.00134 

======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00068 
00.00069 
00.00070 %SOURCE

======== WRITEINTEGERS.S«nul»

12.00001 "---------------------------------------------------------------
12.00002 PROCEDURE WRITEINTEGERS
12.00003                    "  CALL        RETURN
12.00004   (R0;             "  NO. OF      UNCH
12.00005                    "  INTEGERS
12.00006    R1;             "  REF. INTE-  UNCH
12.00007                    "  REF. INTE-  UNCH
12.00008    R4;             "  REF FILE-   UNCH
12.00009                    "  TYPE
12.00010    R6);            "  LINK
12.00011 
12.00012 VAR SAV0,SAV1,SAV4,SAV2,SAV6: INTEGER;
12.00013 "---------------------------------------------------------------
12.00014 BEGIN
12.00015   R6 => SAV6;
12.00016   R4 => SAV4;
12.00017   R0 => SAV0;
12.00018   R2 => SAV2;
12.00019   R1 => SAV1;
12.00020   R4@FILETYPE.S => R4;
12.00021   WHILE R0-1 >= 0 DO
12.00022     BEGIN
12.00023       R1@INTEGER => R2;
12.00024       R1+1;
12.00025       SWITCH MON(STREAM,OUTHEXA,R2,'#' => R3,R4,R7): X2 TO
12.00026         ERR:
12.00027           FILEERROR(SAV4 => R4,ADDRESS('OUTHEXA(:0:)') => R5,R7,R6);
12.00028       END;
12.00029       SWITCH MON(STREAM,OUTBYTE,' ' => R3,R4,R7): X2 TO
12.00030         ERR:
12.00031           FILEERROR(SAV4 => R4,ADDRESS('OUT SPACE(:0:)') => R5,R7,R6);
12.00032       END;
12.00033     END;
12.00034   SWITCH MON(STREAM,OUTTEXTB,R4,ADDRESS('%(:0:)') => R6,R7) : X2 TO
12.00035     ERR:
12.00036       FILEERROR(SAV4 => R4,ADDRESS('OUT %(:0:)') => R5,R7,R6);
12.00037   END;
12.00038   SWITCH MON(STREAM,OUTNL,R4,R7):X2 TO
12.00039     ERR:
12.00040       FILEERROR(SAV4 => R4,ADDRESS('OUT <NL>(:0:)') => R5,R7,R6);
12.00041   END;
12.00042   SAV4 => R4;
12.00043   SAV1 => R1;
12.00044   SAV2 => R2;
12.00045   SAV0 => R0;
12.00046   EXIT(SAV6);
12.00047 END;
12.00048 "---------------------------------------------------------------
12.00049 

======== ENQ.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00070 
00.00071 PROCEDURE READINTEGERS
00.00072                    "  CALL        RETURN
00.00073   (R0;             "  MAX         NO. OF INTEGERS
00.00074                    "  INTEGERS    READ
00.00075    R1;             "  REF. INTE-  UNCH
00.00076                    "  GER ARRAY
00.00077    R4;             "  REF. FILE   UNCH
00.00078                    "  TYPE
00.00079    R6):X2;         "  LINK
00.00080 "  RETURN:         LINK:    NL DETECTED
00.00081 "                  LINK+1:  MAX. INTEGERS FOUND
00.00082 
00.00083 VAR SAV0,SAV1,SAV4,SAV6: INTEGER;
00.00084 CONST
00.00085   NL=10;
00.00086 LABEL END_INTEGER;
00.00087 "---------------------------------------------------------------
00.00088 BEGIN
00.00089   R6 => SAV6;
00.00090   R0 => SAV0;
00.00091   R1 => SAV1;
00.00092   R4 => SAV4;
00.00093   R1 => R0;
00.00094   REPEAT
00.00095     SAV4 => R4;
00.00096     R4@FILETYPE.S => R4;
00.00097     SWITCH MON(STREAM,INELEMENT,6=>R1,R3,R4,R5,R0=>R6,R7):
00.00098     INEL_EXIT TO
00.00099     INELERROR:
00.00100       FILEERROR(SAV4 => R4, ADDRESS('INELEMENT(:0:)') => R5,R7,R6);
00.00101     INELID:
00.00102       FILEERROR(SAV4 => R4, ADDRESS('ELEMENT IN(:0:)') => R5,R3=>R7,R6);
00.00103     INELSPECIAL:
00.00104       BEGIN
00.00105         IF R3 = NL
00.00106           THEN GOTO END_INTEGER;
00.00107         IF R3 <> SP 
00.00108           THEN
00.00109             FILEERROR(SAV4 => R4, ADDRESS('SPACIAL IN(:0:)') => R5,R3=>R7,R6);
00.00110       END;
00.00111     INELNUMBER:
00.00112       BEGIN
00.00113         R0+1;
00.00114         SAV0 => R1-1 => SAV0;
00.00115       END;
00.00116     END;
00.00117   UNTIL SAV0 => R1 < 1;
00.00118   SAV6 => R1+1 => SAV6;
00.00119 END_INTEGER:
00.00120   SAV1 => R1;
00.00121   R0-R1;
00.00122   SAV4 => R4;
00.00123   EXIT(SAV6);
00.00124 END;
00.00125 "---------------------------------------------------------------
00.00126 PROCEDURE READMTCBD(R6);
00.00127 
00.00128 VAR
00.00129   INTGCNT:  INTEGER;
00.00130   SAV6: INTEGER;
00.00131 CONST
00.00132   WAIT_MTCB = 1;
00.00133   WRITE_MASK = #7FF;
00.00134 "---------------------------------------------------------------
00.00135 BEGIN
00.00136   R6 => SAV6;
00.00137   MON (STREAM,OUTTEXTB,COUTFILETYPE.S => R4,
00.00138       ADDRESS('MTCBDATA FROM: (:0:)')=> R6,R7):ERROR_DONE;
00.00139   MON (STREAM,OUTREC,(2*SIZE(FILE_NAME)) => R2,
00.00140       ADDRESS(MTCBFILETYPE) => R1,R4,R7):ERROR_DONE;
00.00141   MON (STREAM,OUTNL,R4,R7):ERROR_DONE;
00.00142   MON (STREAM,FLUSH,R4,R7):ERROR_DONE;
00.00143   ADDRESS(MTCBFILETYPE) => R4;
00.00144   ADDRESS(MTCB_BUF) => R1;
00.00145   SIZE(MTCB_BUF) => R0 => R2;
00.00146   0 => R3;
00.00147   WHILE R2-1 >= 0 DO
00.00148     R3 => R1@A[R2];
00.00149   SWITCH READINTEGERS(R0,R1,R4,R6): X2 TO
00.00150     1:
00.00151       REPEAT INB(R4,R3,R6) UNTIL R3 = NL;
00.00152   END;
00.00153   R0 => INTGCNT;
00.00154   IF R0 = 0
00.00155     THEN
00.00156       MON (TERMINATE,#8000 => R0,LOCATION(READMTCBD) => R1,R7);
00.00157   R1 => R4;
00.00158   R4@INTEGER => R1;
00.00159   SWITCH MON(MTCB,CREAT,WAIT_MTCB => R0,R1,R7): X2 TO
00.00160     ERR:
00.00161       FILEERROR(ADDRESS(MTCBFILETYPE) => R4,ADDRESS('CREATEMTCB(:0:)')=>R5,R7,R6);
00.00162   END;
00.00163   R0 => MTCB_INDX;
00.00164   ADDRESS(MTCB_INDX) => R0;
00.00165   ADDRESS(MTCB_BUF) => R1;
00.00166   SWITCH MON(MTCB,WRITE,R0,R1,WRITE_MASK => R2,R7): X2 TO
00.00167     ERR:
00.00168       FILEERROR(ADDRESS(MTCBFILETYPE) => R4,ADDRESS('WRITEMTCB(:0:)')=>R5,R7,R6);
00.00169     END;
00.00170     ADDRESS(COUTFILETYPE) => R4;
00.00171     REPEAT
00.00172       INTGCNT => R6;
00.00173       IF R6 >= 11
00.00174         THEN
00.00175           8 => R0
00.00176         ELSE
00.00177           R6 => R0;
00.00178       R6 - R0 => INTGCNT;
00.00179       WRITEINTEGERS(R0,R1,R4,R6);
00.00180       R1+R0;
00.00181     UNTIL INTGCNT => R6 < 1;
00.00182     MON (STREAM,FLUSH,COUTFILETYPE.S=>R4,R7):ERROR_DONE;
00.00183   EXIT(SAV6);
00.00184 END;
00.00185 "---------------------------------------------------------------
00.00186 PROCEDURE READMSGD (R6);
00.00187 
00.00188 CONST
00.00189   BUF_SZ = 50;
00.00190 VAR
00.00191   SAV6: INTEGER;
00.00192 VAR
00.00193   MSG_BUF: ARRAY[0..BUF_SZ-1] OF INTEGER;
00.00194 VAR
00.00195   END_READ: INTEGER;
00.00196 CONST
00.00197   READING = 0;
00.00198   STOPREAD = 1;
00.00199   IMF_FILE = 1;
00.00200   PDB_FILE = 2;
00.00201 VAR
00.00202   MTCB_FADDR: FILE_ADDRESS;
00.00203 "---------------------------------------------------------------
00.00204 BEGIN
00.00205   R6 => SAV6;
00.00206   ADDRESS(MTCB_INDX) => R0;
00.00207   ADDRESS(MTCB_FADDR) => R1;
00.00208   SWITCH MON(MTCB,CREATEFILE,R0,R1,PDB_FILE => R2,R4,R7): X2 TO
00.00209     ERR:
00.00210       FILEERROR(ADDRESS(MTCBFILETYPE) => R4,ADDRESS('CREATEFILE(:0:)')=>R5,R7,R6);
00.00211   END;
00.00212   R4 => QUEFILETYPE.F;
00.00213   ADDRESS(QUEFILETYPE) => R4;
00.00214   OPENSTREAM(R4,OUTPUT_MODE => R3,R6);
00.00215   ADDRESS(MTCB_FADDR) => R1;
00.00216   R4@FILETYPE.S => R4;
00.00217   SWITCH MON(STREAM,SETPOSITION,R1,R4,R7): X2 TO
00.00218     ERR:
00.00219       FILEERROR(ADDRESS(QUEFILETYPE) => R4,ADDRESS('SET POS(:0:)')=>R5,R7,R6);
00.00220   END;
00.00221   REPEAT
00.00222     ADDRESS(MSGFILETYPE) => R4;
00.00223     ADDRESS(MSG_BUF) => R1;
00.00224     SIZE(MSG_BUF) => R0;
00.00225     SWITCH READINTEGERS(R0,R1,R4,R6): X2 TO
00.00226       0:
00.00227         STOPREAD => R6 => END_READ;
00.00228     END;
00.00229     R0 => R2 SHIFTLL 1;           "  MAKE BYTE COUNT
00.00230     QUEFILETYPE.S => R4;
00.00231     SWITCH MON(STREAM,OUTREC,R1,R2,R4,R7): X2 TO
00.00232       ERR:
00.00233         FILEERROR(ADDRESS(QUEFILETYPE) => R4,ADDRESS('OUTREC(:0:)')=>R5,R7,R6);
00.00234     END;
00.00235   UNTIL END_READ => R6 = STOPREAD;
00.00236     SWITCH MON(STREAM,FLUSH,R4,R7): X2 TO
00.00237       ERR:
00.00238         FILEERROR(ADDRESS(QUEFILETYPE) => R4, ADDRESS('FLUSH(:0:)')=>R5,R7,R6);
00.00239     END;
00.00240     ADDRESS(QUEFILETYPE) => R4;
00.00241     CLOSESTREAM(R4,R6);
00.00242     DISMANTLEFILE(R4,R6);
00.00243   EXIT(SAV6);
00.00244 END;
00.00245 "---------------------------------------------------------------
00.00246 PROCEDURE QUEUED (R6);
00.00247 
00.00248 VAR SAV6: INTEGER;
00.00249 CONST
00.00250   Q_ENTRYNO = 0;   "  LAST ENTRY
00.00251 "---------------------------------------------------------------
00.00252 BEGIN
00.00253   R6 => SAV6;
00.00254   ADDRESS(Q_CTBL) => R4;
00.00255   TER_NO => R0 => R4@QIOCB.W1;
00.00256   QUE_NO => R0 => R4@QIOCB.W2;
00.00257   Q_ENTRYNO => R0 => R4@QIOCB.W3;
00.00258   MTCB_INDX => R0 => R4@QIOCB.W4;
00.00259   SWITCH MON(QACCESS,INS,R4,R7): X2 TO
00.00260     ERR:
00.00261       FILEERROR(ADDRESS(MTCBFILETYPE) => R4,ADDRESS('ENQUEUE(:0:)')
00.00262       => R5,R7,R6);
00.00263   END;
00.00264   ADDRESS(SIGNAL_NAME1) => R0;
00.00265   IF R0@INTEGER <> 0
00.00266     THEN
00.00267       MON (SENDSIGNAL,R0,R7);
00.00268   EXIT(SAV6);
00.00269 END;
00.00270 "---------------------------------------------------------------
00.00271 "
00.00272 "  ENQUEUE UTILITY
00.00273 "
00.00274 "---------------------------------------------------------------
00.00275 "  QUEUES A MTCB WITH A POSSIBLE
00.00276 "  MESSAGE FILE INTO A QUEUE SPECIFIED
00.00277 "  BY TERM AND QUEUE NO.
00.00278 "  
00.00279 "  CALL:
00.00280 "       ENQ  MTCB:<MTCB_FILE> MSG:<MESSAGE_FILE>
00.00281 "                    TER = XX   QUE = YY
00.00282 LABEL  ENQ_CONTINUE;
00.00283 "---------------------------------------------------------------
00.00284 BEGIN
00.00285   SWITCH MTCBMINIT(MAC_ALL => R3,R6):ERROR_DONE TO
00.00286     ERR:
00.00287       BEGIN
00.00288         R7=>R0;
00.00289         R6=>R1;
00.00290         SETS(R0,15);
00.00291         MON (TERMINATE,R0,R1,R7);
00.00292       END;
00.00293   END;
00.00294   ACCEPTFILES(R6);
00.00295   READSYSPARAMS(R6);
00.00296   OPENSTREAM(ADDRESS(CINFILETYPE) => R4,INPUT_MODE => R3,R6);
00.00297   ADDRESS(MTCBFILETYPE) => R4;
00.00298   ADDRESS(CINFILETYPE) => R5;
00.00299   R5@FILETYPE.F => R3 => R4@FILETYPE.F;
00.00300   R5@FILETYPE.S => R3 => R4@FILETYPE.S;
00.00301   MOVM(SIZE(FILE_NAME), R5@FILE_NAME, R4@FILE_NAME);
00.00302   ADDRESS(MSGFILETYPE) => R4;
00.00303   ADDRESS(CINFILETYPE) => R5;
00.00304   R5@FILETYPE.F => R3 => R4@FILETYPE.F;
00.00305   R5@FILETYPE.S => R3 => R4@FILETYPE.S;
00.00306   MOVM(SIZE(FILE_NAME), R5@FILE_NAME, R4@FILE_NAME);
00.00307   READUSERPARAMS(R6);
00.00308   QUE_NO => R6;
00.00309   IF R6 = -1
00.00310     THEN
00.00311       FILEERROR(ADDRESS(PFILETYPE)=>R4,ADDRESS('ILL. QUEUE NO.(:0:)')=>R5,R7,R6);
00.00312   CLOSESTREAM(ADDRESS(PFILETYPE) => R4,R6);
00.00313   DISMANTLEFILE(R4,R6);
00.00314   ADDRESS(MTCBFILETYPE) => R4;
00.00315   OPENSTREAM(R4,INPUT_MODE => R3,R6);
00.00316   ADDRESS(MSGFILETYPE) => R4;
00.00317   OPENSTREAM(R4,INPUT_MODE => R3,R6);
00.00318 ENQ_CONTINUE:
00.00319   READMTCBD(R6);
00.00320   ADDRESS(MTCB_BUF) => R4;
00.00321   IF R4@INTEGER = MTCB_R
00.00322     THEN
00.00323       BEGIN
00.00324         READMSGD(R6);
00.00325       END;
00.00326   QUEUED(R6);
00.00327   GOTO ENQ_CONTINUE;
00.00328 END;
00.00329 ENDMODULE

LINES:    2887


      CODESIZE  VARSIZE  CONSTSIZE  TEMPSIZE
      --------  -------  ---------  --------
       #022E     #0105     #0084     #0000


SWELL VARIABLES:


===========BLOCK: 00.00079 READINTEGERS
 00E7 0000 SAV0
 00E8 0000 SAV1
 00E9 0000 SAV4
 00EA 0000 SAV6

===========BLOCK: 00.00126 READMTCBD
 00EB 0000 INTGCNT
 00EC 0000 SAV6

===========BLOCK: 00.00186 READMSGD
 0120 0000 END_READ
 00EE 0000 MSG_BUF
 0121 0000 MTCB_FADDR
 00ED 0000 SAV6

===========BLOCK: 00.00246 QUEUED
 0127 0000 SAV6

===========BLOCK: 00.00001 ENQ
 0000 0008 CINFILETYPE
 0000 0009 COUTFILETYPE
 0000 0004 DEFAULT_FSN
 0000 0005 DEFAULT_VOL
 0000 0007 DFILETYPE
 0041 0000 MSGFILETYPE
 0055 0000 MTCBFILETYPE
 0030 0000 MTCB_BUF
 003D 0000 MTCB_INDX
 0000 0006 PFILETYPE
 004B 0000 QUEFILETYPE
 003F 0000 QUE_NO
 0040 0000 QUE_NO_DEL
 0023 0000 Q_CTBL
 005F 0000 SIGNAL_NAME1
 003E 0000 TER_NO 3