|
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 - 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