.TITLE Q PROGRAM TO WATCH QUEUES, SIMILAR TO QUEDPY ON PDP-10 .LIBRARY @DPYDEF@ .LIBRARY @SYS$LIBRARY:LIB@ $JPIDEF $SJHDEF $SMQDEF $SMRDEF $SQHDEF $SQRDEF $SECDEF $FAODEF .sbttl fao macros .MACRO MAKFAO PRMLST XX=0 .IRP FOO,<'PRMLST'> DOFAO %EXTRACT(0,1,FOO),%LOCATE(<=>,FOO),FOO .ENDR .ENDM .MACRO DOFAO TYPE,POSIT,PARM .IF NE,<^A/'TYPE'/-^A/P/> MOVL PARM,FAOPRM+<4*XX> .MEXIT .ENDC XXX=POSIT-1 XXXX=XXX CHKFAO %EXTRACT(XXX,1,PARM) XX=%EXTRACT(1,XXX,PARM) ZZZ=%LENGTH(PARM) ZZ=XXXX+2 .IF EQ, MOVAL %EXTRACT(ZZ,ZZZ,PARM),- FAOPRM+<4*> .IF_FALSE MOVL %EXTRACT(ZZ,ZZZ,PARM),- FAOPRM+<4*> .ENDC .ENDM .MACRO CHKFAO ARG .IF EQ,<^A/'ARG'/-^A/V/> XXX=XXX-1 .ENDC .ENDM .SBTTL INITIALIZATION .ENTRY Q,^M DPY$SETUP ;SETUP FOR CALLS TO DPY $ASSIGN_S CHAN=TTCHN,DEVNAM=TTDEV ;INIT FOR INPUT INI$ #-1 $QIOW_S CHAN=DPYCHN,FUNC=#IO$_SETMODE!IO$M_CTRLCAST,- P1=CCAST CLRQ JBCCOR ;SET TO MAP P0 SECTION $MGBLSC_S INADR=JBCCOR,GSDNAM=JBCSYSQUE,- FLAGS=#SEC$M_SYSGBL!SEC$M_EXPREG,- RETADR=JBCCOR $QIO_S CHAN=TTCHN,- FUNC=#IO$_READVBLK!IO$M_CVTLOW!IO$M_NOECHO,- ASTADR=DOCMD,IOSB=IOSB,- P1=TTIBUF,P2=#1 .SBTTL TOP OF LOOP LOOP: BBC #FL$V_SUM,QFLG,5$ BRW DOSUM $: BBCC #FL$V_FIRST,QFLG,7$ MNEGW #1,MAXCOL CLRW MINCOL CLRW MINLIN MNEGW #1,MAXLIN SIZ$ MINLIN=MINLIN,MAXLIN=MAXLIN,- MINCOL=MINCOL,MAXCOL=MAXCOL $: $GETTIM_S TIMADR=NOW STR$ QN MOVZBL CURQ,QNAMD MOVC3 QNAMD,CURQ+1,QNAM STR$ QNAMD MOVL JBCCOR,R6 MOVZBL SQH$B_NUMQUE(R6),R7 ;NUMBER OF QUEUES MOVAQ NONQ,R8 ;ASSUME NON-EXISTANT ADDL2 #SQH$K_SIZE,R6 ;POINT TO SMQ AREA P1: SOBGEQ R7,10$ ;IF FOUND BRW NOQ ;NONE 0$: MOVZBL SMQ$T_NAME(R6),R0 ;GET QUE COUNT CMPC5 R0,SMQ$T_NAME+1(R6),#0,QNAMD,@QNAMD+4 BEQL HAVQ ADDL2 #SMQ$K_SIZE,R6 BBC #SMQ$V_INUSE,SMQ$B_FLAGS-SMQ$K_SIZE(R6),10$ BRB LP1 AVQ: ;HERE WITH R6=SMQ MOVAQ NONA,R8 ;IF FIND ONLY DEAD Q BBC #SMQ$V_INUSE,SMQ$B_FLAGS(R6),LP1 .SBTTL DISPLAY QUEUE HEADER BBC #SMQ$V_STOPPED,SMQ$B_FLAGS(R6),20$ STR$ ST 0$: BBC #SMQ$V_PAUSED,SMQ$B_FLAGS(R6),30$ STR$ PA 0$: BBC #SMQ$V_DETJOB,SMQ$B_FLAGS(R6),40$ ;BATCH QUEUE BRW 92$ 0$: BBC #SMQ$V_GENDEV,SMQ$B_FLAGS(R6),50$ STR$ GENDV 0$: BBS #SMQ$V_NOGENERIC,SMQ$B_FLAGS(R6),60$ STR$ GENPR 0$: BBC #SMQ$V_TRMDEV,SMQ$B_CHAR(R6),70$ STR$ TRM 0$: BBC #SMQ$V_LOWER,SMQ$B_FLAGS(R6),75$ STR$ LW 5$: BBC #SMQ$V_DEFFLAG,SMQ$B_FLAGS(R6),80$ STR$ FL 0$: BBC #SMQ$V_DEFBRST,SMQ$B_FLAGS(R6),90$ STR$ BR 0$: MOVAQ FRMCTR,FAOLST+FAO$_CTRSTR MAKFAO $FAOL_G FAOLST STR$ TTOBDSC BBC #SMQ$V_REDIRECT,SMQ$B_FLAGS(R6),91$ STR$ RDR 1$: BRW QDSP 2$: STR$ BAT EXTZV #SMQ$V_INIPRI,#SMQ$S_INIPRI,SMQ$B_CHAR(R6),R0 MOVAQ PRICTR,FAOLST+FAO$_CTRSTR MAKFAO $FAOL_G FAOLST STR$ TTOBDSC BBC #SMQ$V_NOSWAP,SMQ$B_FLAGS(R6),94$ STR$ NSW 4$: STR$ CPUHDR MOVAQ CPLMCTR,FAOLST+FAO$_CTRSTR CLRQ -(SP) MOVAQ STAR,R0 BBC #SMQ$V_DCPULM,SMQ$W_QUOFLG(R6),95$ EMUL #10*10*1000,SMQ$L_DCPULM(R6),#0,(SP) MAKFAO P1=(SP) $FAOL_G FAOLST MOVAQ TTOBDSC,R0 5$: STR$ (R0) CHR$ #^A"/" MOVAQ STAR,R0 BBC #SMQ$V_MCPULM,SMQ$W_QUOFLG(R6),100$ EMUL #10*10*1000,SMQ$L_MCPULM(R6),#0,(SP) MAKFAO P1=(SP) $FAOL_G FAOLST MOVAQ TTOBDSC,R0 00$: STR$ (R0) CLRQ (SP)+ STR$ WSHDR MOVAQ WSLMCTR,FAOLST+FAO$_CTRSTR MOVAQ STAR,R0 BBC #SMQ$V_WSDFLT,SMQ$W_QUOFLG(R6),110$ MAKFAO P1V=SMQ$W_WSDFLT(R6) $FAOL_G FAOLST MOVAQ TTOBDSC,R0 10$: STR$ (R0) CHR$ #^A"/" MOVAQ STAR,R0 BBC #SMQ$V_WSQUTA,SMQ$W_QUOFLG(R6),120$ MAKFAO P1V=SMQ$W_WSQUTA(R6) $FAOL_G FAOLST MOVAQ TTOBDSC,R0 20$: STR$ (R0) .SBTTL DISPLAY QUEUE ENTRIES DSP: MOVAQ HEADER,FAOLST+FAO$_CTRSTR CLRL FAOPRM $FAOL_G FAOLST STR$ TTOBDSC MOVL SMQ$L_CURRENT(R6),R7 ;POINT TO CURRENT 00$: BEQL PNDDEV ;NONE ADDL2 JBCCOR,R7 BSBW DOCUR MOVL SJH$L_NEXTJOB(R7),R7 BRW 100$ NDDEV: ADDL3 #>,JBCCOR,R9 ;POINT CLRL R10 15$: ACBL #31,#1,R10,120$ BRW TIMDEV 20$: MOVL -(R9),R7 MOVL -(R9),R7 ;BEGINNING BEQL 115$ 25$: ADDL2 JBCCOR,R7 MOVZWL SJH$W_QINDEX(R7),R0 ADDL2 JBCCOR,R0 CMPL R0,R6 BNEQ 130$ MOVL JBCCOR,R1 ;SEE IF ANYWHERE ELSE MOVL SQH$L_TIMQUE(R1),R1 26$: BEQL 127$ ADDL2 JBCCOR,R1 CMPL R1,R7 BEQL 130$ MOVL SJH$L_NEXTJOB(R1),R1 BRB 126$ 27$: MOVL SMQ$L_HOLDLST(R6),R1 28$: BEQL 129$ ADDL2 JBCCOR,R1 CMPL R1,R7 BEQL 130$ MOVL SJH$L_NEXTJOB(R1),R1 BRB 128$ 29$: BSBW DOPND 30$: MOVL SJH$L_NEXTJOB(R7),R7 BEQL 115$ BRB 125$ IMDEV: MOVL JBCCOR,R7 MOVL SQH$L_TIMQUE(R7),R7 BEQL HLDDEV 35$: ADDL2 JBCCOR,R7 MOVZWL SJH$W_QINDEX(R7),R0 ADDL2 JBCCOR,R0 CMPL R0,R6 BNEQ 140$ BSBW DOTIM 40$: MOVL SJH$L_NEXTJOB(R7),R7 BNEQ 135$ LDDEV: MOVL SMQ$L_HOLDLST(R6),R7 ;POINT TO HELD BEQL DONDEV 45$: ADDL2 JBCCOR,R7 MOVAB DOHLD1,R0 BBC #SJH$V_HOLD,SJH$B_FLAGS(R7),150$ MOVAB DOHLD2,R0 50$: JSB (R0) MOVL SJH$L_NEXTJOB(R7),R7 BNEQ 145$ ONDEV: BRW DONQ ;WHEN ARE DONE .SBTTL MISCELLANEOUS SUBROUTINES OUTPUT COMMON INFO ABOUT THE CURRENT JOB. SJH ENTRY POINTED TO BY R7 R6 SHOULD POINT TO THE SMQ ENTRY TRASHES R0-R5 DOJOB EXPECTS R5 TO POINT TO ASCIC STATUS STRING FOR THE JOB OJOB: MOVAQ LPCTR,FAOLST+FAO$_CTRSTR MAKFAO $FAOL_G FAOLST STR$ TTOBDSC BBC #SMQ$V_DETJOB,SMQ$B_FLAGS(R6),5$ BSBW DOPAR ;DO BATCH PARAMETERS $: BSBW DOSQR ;DO JOB ENTRIES RSB OPND: MOVAB PND,R5 BRW DOJOB OTIM: MOVAB TIMP,R5 BBC #SJH$V_HOLD,SJH$B_FLAGS(R7),10$ MOVAB TIMH,R5 0$: BRW DOJOB OHLD1: MOVAB HLD1,R5 BRW DOJOB OHLD2: MOVAB HLD2,R5 BRW DOJOB OCUR: MOVAB CUR,R5 BSBW DOJOB BBS #SMQ$V_DETJOB,SMQ$B_FLAGS(R6),13$ BRW 20$ 3$: PUSHL SJH$L_PROCID(R7) MOVAL (SP),R0 $GETJPI_S ITMLST=ITMLST,PIDADR=(R0) BLBC R0,15$ $WAITFR_S EFN=#0 5$: CLRL (SP)+ MOVAQ JOBCTR,FAOLST+FAO$_CTRSTR MAKFAO $FAOL_G FAOLST STR$ TTOBDSC 0$: RSB DO BATCH PARAMETERS USUAL STUFF FOR THESE ROUTINES EXPECTED (R6 AND R7) TRASHES R2,R3 OPAR: CLRQ -(SP) ;ALLOCATE SPACE MOVZBL #1,R3 ;COUNTER MOVAB @SJH$L_PARMBLK(R7),R2 BEQL DONPAR ADDL2 JBCCOR,R2 MOVAQ PARCTR,FAOLST+FAO$_CTRSTR ARLP: MOVZBL (R2),(SP) ;COUNT BEQL DONPAR ;NO MORE MAKFAO $FAOL_G FAOLST STR$ TTOBDSC ADDL2 (SP),R2 INCL R2 ACBL #8,#1,R3,PARLP ONPAR: CMPL #1,R3 BGEQ 30$ STR$ CRLF 0$: STR$ CPUHDR1 MOVAQ CPLMCTR1,FAOLST+FAO$_CTRSTR MOVAQ STAR,R0 BBC #SJH$V_CPULIM,SJH$W_QUOFLG(R7),100$ EMUL #10*10*1000,SJH$L_CPULIM(R7),#0,(SP) MAKFAO P1=(SP) $FAOL_G FAOLST MOVAQ TTOBDSC,R0 00$: STR$ (R0) CLRQ (SP)+ STR$ WSHDR MOVAQ WSLMCTR,FAOLST+FAO$_CTRSTR MOVAQ STAR,R0 BBC #SJH$V_WSDFLT,SJH$W_QUOFLG(R7),110$ MAKFAO P1V=SJH$W_WSDFLT(R7) $FAOL_G FAOLST MOVAQ TTOBDSC,R0 10$: STR$ (R0) CHR$ #^A"/" MOVAQ STAR,R0 BBC #SJH$V_WSQUTA,SJH$W_QUOFLG(R7),120$ MAKFAO P1V=SJH$W_WSQUTA(R7) $FAOL_G FAOLST MOVAQ TTOBDSC,R0 20$: STR$ (R0) STR$ CRLF RSB OUTPUT STUFF IN VARIOUS OF THE QUEUE RECORS POINTED TO BY THE SJH ENTRY POINTED TO BY R7 R0-R4 TRASHED OSQR: MOVL SJH$L_RECLINK(R7),R4 0$: BNEQ 45$ BRW DONSQR 5$: ADDL2 JBCCOR,R4 ;POINT TO ENTRY MOVAQ SQR1,FAOLST+FAO$_CTRSTR MAKFAO $FAOL_G FAOLST STR$ TTOBDSC TSTW SQR$W_DIRSEQ(R4) ;ONLY IF PRESET BEQL 50$ MAKFAO MOVAQ SQR2,FAOLST+FAO$_CTRSTR $FAOL_G FAOLST STR$ TTOBDSC 0$: BBC #SQR$V_DELETE,SQR$B_FLAGS(R4),53$ STR$ DEL 3$: STR$ CRLF BBC #SMQ$V_DETJOB,SMQ$B_FLAGS(R6),505$ BRW 60$ 05$: BBC #SQR$V_FLAGPAG,SQR$B_FLAGS(R4),51$ STR$ FL 1$: BBC #SQR$V_BRSTPAG,SQR$B_FLAGS(R4),52$ STR$ BR 2$: BBC #SQR$V_DOUBLE,SQR$B_FLAGS(R4),54$ STR$ DBL 4$: BBC #SQR$V_NOFEED,SQR$B_FLAGS(R4),55$ STR$ NFD 5$: BBC #SQR$V_PAGHDR,SQR$B_FLAGS(R4),56$ STR$ HDR 6$: MOVAQ CPYCTR,FAOLST+FAO$_CTRSTR MAKFAO P1V=SQR$B_COPYCNT(R4) $FAOL_G FAOLST STR$ TTOBDSC 0$: MOVL SQR$L_RECLINK(R4),R4 BRW 40$ ONSQR: RSB .ENTRY OCTDPY,^M MOVL 4(AP),R0 ;GET NUMBER PUSHAB OCTRET ;RET P: CLRL R1 ;CLEAR HIGH ORDER EDIV #8,R0,R0,R1 BEQL 99$ ;YES MOVZBL R1,-(SP) PUSHAB 100$ BRB LP ;CONTINUE 9$: MOVZBL R1,-(SP) 00$: ADDL3 #^A/0/,(SP)+,R0 ;GET CHARACTER CHR$ R0 RSB CTRET: RET .SBTTL SUMMARY ROUTINE ROUTINE TO DO SUMMARY OF ALL QUEUES ON THE SCREEN. THIS IS THE DEFAULT DISPLAY OSUM: MOVAL @JBCCOR,R6 ;POINT TO CORE AREA MOVW #1,MINLIN MOVW #1,MINCOL MOVW #20,MAXCOL MOVW #5,MAXLIN CLRL R10 ADDL3 #SQH$K_SIZE,JBCCOR,R8 ;POINT TO SMQ AREA SL: ACBB SQH$B_NUMQUE(R6),#1,R10,50$ SIZ$ MINCOL=MINCOL,MAXCOL=#-1,MINLIN=MINLIN,MAXLIN=MAXLIN STR$ CRLF ;CLEAR REST OF SCREEN INCL MAXLIN SIZ$ MINLIN=MAXLIN,MAXLIN=#-1,MINCOL=#0,MAXCOL=#-1 STR$ CRLF ;CLEAR REST OF SCREEN BRW DONQ 0$: BBS #SMQ$V_INUSE,SMQ$B_FLAGS(R8),100$ DECL R10 5$: ADDL2 #SMQ$K_SIZE,R8 BRB OSL 00$: SIZ$ MAXLIN=MAXLIN,MINLIN=MINLIN,- MAXCOL=MAXCOL,MINCOL=MINCOL ;SET WINDOW SIZE MOVAQ SUMHDR,FAOLST+FAO$_CTRSTR MAKFAO P1=SMQ$T_NAME(R8) $FAOL_G FAOLST STR$ TTOBDSC ;NAME OF QUEUE BBC #SMQ$V_DETJOB,SMQ$B_FLAGS(R8),110$ CHR$ #^A/B/ ;BATCH QUEUE BRB 115$ 10$: BBC #SMQ$V_TRMDEV,SMQ$B_CHAR(R8),115$ CHR$ #^A/T/ 15$: BBC #SMQ$V_STOPPED,SMQ$B_FLAGS(R8),120$ CHR$ #^A/S/ 20$: BBC #SMQ$V_PAUSED,SMQ$B_FLAGS(R8),125$ CHR$ #^A/P/ 25$: STR$ CRLF MOVL SMQ$L_CURRENT(R8),R9 ;POINT TO SJH ENTRY BEQL 200$ 50$: ADDL2 JBCCOR,R9 ;ADD IN BASE MOVAQ SUM1,FAOLST+FAO$_CTRSTR MAKFAO $FAOL_G FAOLST STR$ TTOBDSC MOVL SJH$L_NEXTJOB(R9),R9 BNEQ 150$ 00$: ADDL3 JBCCOR,#>,R9 ;POINT TO PENDING CLRL R5 10$: MOVL -(R9),R7 MOVL -(R9),R7 BNEQ 225$ BRW 650$ 25$: ADDL2 JBCCOR,R7 MOVZWL SJH$W_QINDEX(R7),R0 ADDL2 JBCCOR,R0 CMPL R0,R8 BNEQ 600$ MOVL SQH$L_TIMQUE(R6),R11 BEQL 300$ 50$: ADDL2 JBCCOR,R11 CMPL R11,R7 BEQL 600$ MOVL SJH$L_NEXTJOB(R11),R11 BNEQ 250$ 00$: MOVL SMQ$L_HOLDLST(R8),R11 BEQL 500$ 50$: ADDL2 JBCCOR,R11 CMPL R11,R7 BEQL 600$ MOVL SJH$L_NEXTJOB(R11),R11 BNEQ 350$ 00$: MOVAQ SUM1,FAOLST+FAO$_CTRSTR MAKFAO $FAOL_G FAOLST STR$ TTOBDSC 00$: MOVL SJH$L_NEXTJOB(R7),R7 BEQL 650$ BRW 225$ 50$: ACBL #31,#1,R5,675$ BRB 680$ 75$: BRW 210$ 80$: MOVL SQH$L_TIMQUE(R6),R9 BEQL 690$ ;NO TIMER ENTRIES 85$: ADDL2 JBCCOR,R9 MOVZWL SJH$W_QINDEX(R9),R0 ADDL2 JBCCOR,R0 CMPL R0,R8 ;THIS QUEUE? BNEQ 688$ MOVAL SJH$Q_JOBNAME(R9),R0 MOVAB SJH$T_USERNAM(R9),R1 $FAO_S CTRSTR=SUM1,OUTBUF=BUFDSC,OUTLEN=TTOBDSC,- P1=SJH$W_JOBSEQ(R9),P2=#8,P3=R0,- P4=#12,P5=R1 STR$ TTOBDSC 88$: MOVL SJH$L_NEXTJOB(R9),R9 BNEQ 685$ 90$: MOVL SMQ$L_HOLDLST(R8),R9 BEQL NXTQS 00$: ADDL2 JBCCOR,R9 MOVAQ SJH$Q_JOBNAME(R9),R0 MOVAB SJH$T_USERNAM(R9),R1 $FAO_S CTRSTR=SUM1,OUTBUF=BUFDSC,OUTLEN=TTOBDSC,- P1=SJH$W_JOBSEQ(R9),P2=#8,P3=R0,- P4=#12,P5=R1 STR$ TTOBDSC MOVL SJH$L_NEXTJOB(R9),R9 BNEQ 700$ XTQS: ADDW2 #20,MAXCOL ADDW2 #20,MINCOL CMPW #80,MAXCOL BLSS NXTQS2 ADDL2 #SMQ$K_SIZE,R8 BRW OSL XTQS2: ADDW2 #5,MINLIN SIZ$ MINLIN=MINLIN,MAXLIN=MINLIN,MINCOL=#0,MAXCOL=#-1 STR$ CRLF INCL MINLIN ADDW3 #4,MINLIN,MAXLIN MOVW #1,MINCOL MOVW #20,MAXCOL ADDL2 #SMQ$K_SIZE,R8 BRW OSL .SBTTL CONTROL-C AST .ENTRY CCAST,0 TTY$ FUN=#TRM$C_TTY_BOTOM $EXIT_S ONQ: BBCC #FL$V_REF,QFLG,5$ REF$ BRB 7$ $: DPY$ $: $SCHDWK_S DAYTIM=SEC5 $HIBER_S 0$: BRW QLOOP OQ: STR$ (R8) BRB DONQ .SBTTL COMMAND PARSER .ENTRY DOCMD,^M LOCC TTIBUF,#MAXCMD,CMDTAB BEQL ILLCMD SUBL2 #CMDTAB,R1 AVCMD: MOVL CMDADR[R1],R0 JSB (R0) ;PARSE COMMAND LLCMD: $QIO_S CHAN=TTCHN,IOSB=IOSB,- FUNC=#IO$_READVBLK!IO$M_NOECHO!IO$M_CVTLOW,- ASTADR=DOCMD,- P1=TTIBUF,P2=#1 RET CMD: BICL2 #FL$M_SUM,QFLG BISL2 #FL$M_FIRST,QFLG ;FIRST TIME $QIOW_S CHAN=TTCHN,- FUNC=#IO$_READVBLK!IO$M_NOECHO!IO$M_CVTLOW,- IOSB=IOSB,- P1=TTIBUF,P2=#80 MOVW IOSB+2,CURQ MOVC3 CURQ,TTIBUF,CURQ+1 RSB CMD: BISL2 #FL$M_REF,QFLG RSB CMD: BISL2 #FL$M_SUM,QFLG RSB .SBTTL SHARABLE DATA .PSECT QDATA,RD,NOWRT,NOEXE BCSYSQUE: .ASCID/JBCSYSQUE/ EC5: .LONG -5*10*1000*1000,-1 TMLST: .WORD 1,JPI$_PRI .LONG PRIC,0 .WORD 15,JPI$_PRCNAM .LONG PRCNAM,PRCLEN .WORD 1,JPI$_PRIB .LONG PRIB,0 .WORD 64,JPI$_IMAGNAME .LONG IMGNAM,IMGLEN .WORD 12,JPI$_USERNAME .LONG USRNAM,12 .LONG 0 MDTAB: .ASCII/QRS/ MAXCMD=.-CMDTAB MDADR: .LONG QCMD .LONG RCMD .LONG SCMD .SBTTL FORM CONTROL STUFF .PSECT QFORMS,RD,WRT,NOEXE N: .ASCID/Queue / NAMD: .BLKL 1 .LONG QNAM NAM: .BLKB 20 T: .ASCID/ Stopped/ A: .ASCID/ Paused/ ONQ: .ASCID/ does not exist/ ONA: .ASCID/ is not active/ AT: .ASCID/ (B)/ SW: .ASCID/ Noswap/ RICTR: .ASCID\ Inipri=!ZB Job C/L=!ZB/!ZB \ L: .ASCID/ Flag/ ENPR: .ASCID/ GenPr/ ENDV: .ASCID/ GenDv/ W: .ASCID/ Lower/ RMCTR: .ASCID\ Forms=!ZB Symbiont = !AC\ R: .ASCID/ Burst/ RM: .ASCID/ (T)/ DR: .ASCID/ Redirected/ RLF: .ASCID <^O15><^O12> EADER: .ASCID \ !%T\<^O15><^O12>\Job ID Job name Account Sts Pr UIC Username Release Time\<^O15><^O12> PCTR: .ASCID\!ZW !AD !AD !4AC !2UB [!3OW,!3OW] !AD !%D!/\ TOBDSC: .BLKL 1 .LONG TTOBUF UFDSC: .LONG 200 .LONG TTOBUF TOBUF: .BLKB 200 ND: .ASCIC/P/ UR: .ASCIC/C/ IMP: .ASCIC\T/P\ IMH: .ASCIC\T/H2\ LD1: .ASCIC/H1/ LD2: .ASCIC/H2/ OBCTR: .ASCID\ !XL !AD !AD !AD !ZB/!ZB!/\ ARCTR: .ASCID/ P!1XL=!AC/ QR1: .ASCID\ File !AC:!AC FID: !UW,!UW,!UW\ QR2: .ASCID\ (DID: !UW,!UW,!UW)\ FD: .ASCID/ Nofeed/ PYCTR: .ASCID\ Copies=!ZB!/\ BL: .ASCID/ Double space/ EL: .ASCID/ Delete/ DR: .ASCID/ Paghdr/ UMHDR: .ASCID\Queue !AC \ UM1: .ASCID\!4UW !8AD !4AD!/\ PUHDR1: .ASCID\CPU limit: \ PUHDR: .ASCID\CPU D/Q: \ SHDR: .ASCID\ WS D/Q: \ SLMCTR: .ASCID\!UW\ PLMCTR1: .ASCID\%D\ PLMCTR: .ASCID\!5%T\ TAR: .ASCID\*\ .SBTTL IMPURE STORAGE .PSECT QDATA2,RD,WRT,NOEXE OSB: .BLKQ 1 TDEV: .ASCID/TT/ TCHN: .BLKW 1 TIBUF: .BLKB 80 BCCOR: .BLKQ 1 RMQ: .ASCII/Terminal type: / TRMQL=.-TRMQ URQ: .ASCIC/LPA0/ .BLKB 20 OW: .BLKQ 1 RCLEN: .BLKL 1 RCNAM: .BLKB 15 RIB: .BLKB 1 RIC: .BLKB 1 FLG: .LONG FL$M_SUM FL$V_REF=0 FL$M_REF=1 FL$V_SUM=1 FL$M_SUM=2 FL$V_FIRST=2 FL$M_FIRST=4 AXCOL: .BLKW 1 INCOL: .BLKW 1 AXLIN: .BLKW 1 INLIN: .BLKW 1 MGNAM: .BLKB 64 MGLEN: .BLKL 1 SRNAM: .BLKB 12 AOLST: $FAOL PRMLST=FAOPRM,OUTLEN=TTOBDSC,OUTBUF=BUFDSC AOPRM: .BLKL 20 .END Q