|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 19590 (0x4c86)
Types: TextFile
Names: »ENQ.P«
└─⟦881c1028e⟧ Bits:30005102 8" CR80 Floppy CR80FD_0061 ( VOL: SCC.V NSC Directory: Queue_test.D )
└─⟦4f56469eb⟧
└─⟦this⟧ »QUEUE_TEST.D!ENQ.P«
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
======== ENQ.S
00.00019
00.00020 %SOURCE
======== MONITORNAMES.S
======== ENQ.S
00.00020
00.00021 %SOURCE
======== IOSPARAMS.S
======== ENQ.S
00.00021
00.00022
00.00023 %SOURCE
======== SCCNAME.N
======== ENQ.S
00.00023
00.00024 %SOURCE
======== SCCDATA.N
======== ENQ.S
00.00024
00.00025 %SOURCE
======== NSSMTCB.N
======== ENQ.S
00.00025
00.00026 %SOURCE
======== SCC_PROCESS.N
======== ENQ.S
00.00026
00.00027 %SOURCE
======== SUPPORT.N
======== ENQ.S
00.00027
00.00028 %SOURCE
======== QACCESS_TYPES.S
======== ENQ.S
00.00028
00.00029
00.00030
00.00031 %SOURCE
======== UTH.I
======== ENQ.S
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
00.00068
00.00069
00.00070 %SOURCE
======== WRITEINTEGERS.S
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
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