IDENT SUBSYST,SUB ABS SST ENTRY SUBSYST ENTRY RFL= ENTRY SSJ= SYSCOM B1 TITLE SUBSYST - SUBSYSTEM DISPLAY. *COMMENT SUBSYST - SUBSYSTEM DISPLAY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 *** SUBSYST - SUBSYSTEM DISPLAY. * * B. J. OLIPHANT 81/04/18. * R. C. SCHMITTER 83/09/15. * J. M. MAREK 84/05/16. SPACE 4,10 *** *SUBSYST* IS A CPU UTILITY USED BY THE OPERATOR TO DISPLAY * THE STATUS OF THE SUBSYSTEMS SUPPORTED BY THE OPERATING * SYSTEM. THIS INFORMATION CAN BE DISPLAYED ON A PRINTER * LISTING OR THE *L* DISPLAY. THE STATUS OF A SUBSYSTEM * CAN BE CHANGED BY OPERATOR *L* DISPLAY COMMANDS. SPACE 4,15 *** COMMAND FORMAT. * * * SUBSYST(LFN,OP) ORDER DEPENDENT PARAMETERS. * OR * SUBSYST(L=LFN,LO=OP) ORDER INDEPENDENT (KEYWORD = PARAMETER) * * WHERE * * OP = *L* FORMAT DATA FOR A LINE PRINTER. * * OP = *D* FORMAT DATA FOR THE *L* DISPLAY (DEFAULT). * * OP = *DL* OR *LD* FORMAT DATA FOR THE *L* DISPLAY AND FORMAT * IT FOR A LINE PRINTER WHEN *L.END* IS * ENTERED. * * LFN LIST OUTPUT FILE NAME (DEFAULT = OUTPUT). * THIS PARAMETER VALID ONLY WITH (LO=L). * * NOTES SPECIAL PRIVILEGES REQUIRED. * 1. USER MUST BE *SYOT* TO USE *L* DISPLAY (LO=D). * 2. USER MUST BE *SYOT* OR HAVE SYSTEM ORIGIN * PRIVILEGES TO GENERATE A LISTING (LO=L). SPACE 4,15 *** DAYFILE MESSAGES. * * THESE MESSAGES ARE ISSUED TO THE JOB AND SYSTEM DAYFILES. * * *ARGUMENT ERROR.* * AN INCORRECT PARAMETER WAS ENTERED. (FATAL ERROR) * * *USER ACCESS NOT VALID.* * CALLING JOB WAS NOT SYSTEM ORIGIN. (FATAL ERROR) * * *SUBSYST UTILITY COMPLETE.* * INDICATES NORMAL COMPLETION OF PROGRAM. SPACE 4,10 *** *L* DISPLAY MESSAGES. * * *COMMAND PROCESSED.* * INDICATES COMMAND IS VALID AND CHANGE HAS BEEN MADE. * * *CONTROL POINT NOT ALLOWED.* * THE SPECIFIED SUBSYSTEM DOES NOT ALLOW THE CONTROL * POINT FOR ITS EXECUTION TO BE CHANGED. * * *INCORRECT COMMAND.* * THE ENTERED COMMAND IS NOT ONE OF THE DEFINED * *SUBSYST* COMMANDS - (ENABLE, DISABLE, OUT, END). * * *INCORRECT COMMAND FORMAT.* * AN ILLEGAL SEPARATOR OR EXTRA PARAMETERS WERE * ENTERED FOR THE COMMAND. * * *INCORRECT CONTROL POINT.* * THE ENTERED CONTROL POINT NUMBER IS NOT VALID. IT * MUST BE AN OCTAL NUMBER LESS THAN THE NUMBER OF * CONTROL POINTS DEFINED IN THE SYSTEM. * * *SECURITY UNLOCK REQUIRED.* * IN A SECURED SYSTEM, SECURITY UNLOCK STATUS IS * REQUIRED TO ENABLE RDF. * * *UNKNOWN SUBSYSTEM.* * THE ENTERED SUBSYSTEM NAME IS NOT ONE DEFINED IN * *COMSSSD*. * * *UTILITY COMPLETE.* * INFORMATIVE MESSAGE ISSUED AFTER *END*. SPACE 4,25 *** AVAILABLE *L* DISPLAY COMMANDS. * * L.END TERMINATES THE UTILITY. IF *OP=L* WAS * SPECIFIED, A LISTING WILL BE ROUTED TO * A PRINTER. * * L.OUT ROUTES A LISTING OF THE DISPLAY TO A * PRINTER. * * L.ENABLE,SUB. SETS STATUS OF SUBSYSTEM *SUB* TO ENABLED. * L.ENABLE,SUB,CP. ADDITIONALLY SETS THE CONTROL POINT WHERE * THE SUBSYSTEM MUST EXECUTE. * * L.DISABLE,SUB. SETS STATUS OF SUBSYSTEM *SUB* TO DISABLED * L.DISABLE,SUB,CP. ADDITONALLY SETS THE CONTROL POINT WHERE * THE SUBSYSTEM MUST EXECUTE. * * L.+ DISPLAY THE NEXT PAGE OF SUBSYSTEMS. WHEN * THE CURRENT PAGE IS THE LAST PAGE, THE * NEXT PAGE IS THE FIRST PAGE. * * L.- DISPLAY THE FIRST PAGE OF SUBSYSTEMS. SPACE 4,15 *** OUTPUT FORMAT. * * SUBSYST - SUBSYSTEM STATUS. 84/05/16. 15.04.37. * * SUBSYSTEMS * * REQUIRED EJT * NAME CONTROL POINT ORDINAL STATUS * * IAF 1 10 ENABLED * RHF DISABLED * * * NOTE - THE FIRST TWO LINES ONLY APPEAR WHEN THE DATA IS * FORMATTED FOR A LISTING. SPACE 4,10 *** DEFINITION COMMON DECKS. * *CALL COMCMAC *CALL COMCCMD *CALL COMCDCM *CALL COMSDSP *CALL COMSEVT *CALL COMSSFM *CALL COMSSSD *CALL COMSSSJ SPACE 4,10 * MACROS. SUBSYST SPACE 4,10 ** SUBSYST - GENERATE SUBSYSTEM TABLE. * * SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT * * ENTRY *NAME* = THREE CHARACTER SUBSYSTEM NAME. * *ID* = SUBSYSTEM ID. * *CP* = *YES* IF CONTROL POINT ALLOWED ON *ENABLE* * AND *DISABLE*. * *T 42/ NAME (LEFT JUSTIFIED), 18/ FLAG * * FLAG = 1, IF CONTROL POINT ALLOWED ON *ENABLE/DISABLE*. * = 0, IF CONTROL POINT NOT ALLOWED. PURGMAC SUBSYST SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB .SUB RMT .1 SET TSSN ORG .1+MXSI-ID LOC MXSI-ID VFD 42/3L_NM .A IFC EQ,$CP$YES$ VFD 18/1 .A ELSE VFD 18/0 .A ENDIF .SUB RMT SUBSYST ENDM TITLE ASSEMBLY CONSTANTS. **** ASSEMBLY CONSTANTS. CBUFL EQU 5 COMMAND BUFFER LENGTH HLIN EQU 5 NUMBER OF LINES IN HEADER INPC EQU 0 *L* DISPLAY INPUT COMPLETE STATUS LBIL EQU LCOM/2 *L* DISPLAY INPUT BUFFER LENGTH LBUFL EQU LDSY *L* DISPLAY OUTPUT BUFFER LENGTH LLIN EQU 22D NUMBER OF LINES ON *L* DISPLAY LDAT EQU LLIN-HLIN-3 NUMBER OF DATA LINES ON THE *L* DISPLAY MBUFL EQU 3 MESSAGE BUFFER LENGTH .NSS SET MXSI-LSSI MAXIMUM NUMBER OF SUBSYSTEMS SUPPORTED OBUFL EQU 101B OUTPUT BUFFER LENGTH XCDT EQU 9 X - COORDINATE FOR *L* DISPLAY YCDT EQU 2 Y - COORDINATE FOR *L* DISPLAY **** TITLE TABLES AND BUFFER DEFINITIONS. ORG 111B SUB BSS 0 SPACE 4,10 * DAYFILE MESSAGES. DASC DATA C* SUBSYST UTILITY COMPLETE.* ERAR DATA C* ARGUMENT ERROR.* ERIU DATA C* USER ACCESS NOT VALID.* SPACE 4,10 * *L* DISPLAY MESSAGES. MESA DATA 28CINCORRECT COMMAND. MESB DATA 28CUNKNOWN SUBSYSTEM. MESC DATA 28CINCORRECT CONTROL POINT. MESD DATA 28CINCORRECT COMMAND FORMAT. MESE DATA 28CCONTROL POINT NOT ALLOWED. MESF DATA 28CCOMMAND PROCESSED. MESG DATA 28CUTILITY COMPLETE. MESH DATA 28C MESI DATA 28CSECURITY UNLOCK REQUIRED. SPACE 4,10 * FLAG DEFINITIONS. LFLG CON 0 *L* DISPLAY FLAG OSSM CON 0 OPERATING SYSTEM SECURITY MODE PFLG CON 0 PRINTER OUTPUT FLAG SYOF CON 0 SYSTEM ORIGIN FLAG SPACE 4,10 * *L* DISPLAY BUFFER FIRST WORD. * * T, 12/ N ,1/ S ,1/ F ,46/ * * N SIZE OF DISPLAY BUFFER. * S CHARACTER SIZE. * F DATA FORMAT BIT. LDIW VFD 12/LBIL,48/0 INPUT BUFFER FIRST WORD LDSW VFD 12/LBUFL,48/0 OUTPUT BUFFER FIRST WORD ROLL SPACE 4,10 * ROLLOUT PARAMETER BLOCK. ROLL VFD 30/0,18/LINE,12/10 ROTB SPACE 4,10 * ROUTE PARAMETER BLOCK. ROTB DATA 6LOUTPUT BSSZ DPBL-1 SPACE 4,10 * *SFM* PARAMETER BLOCK. SFMB VFD 12/RSSF,12/0,12/.NSS,6/0,18/WBUFA CON 0 END OF *SFM* PARAMETER BLOCK SPACE 4,5 * SSJ= PARAMETER BLOCK. SSJ= BSS 0 SSJ= ENTRY POINT BSSZ SSJL SSJ= PARAMETER BLOCK FETS SPACE 4,10 * FET DEFINITIONS. O BSS 0 PRINTER OUTPUT FILE BUFFER OUTPUT FILEB OBUF,OBUFL,(FET=6) SPACE 4,10 SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO CALLS *CALL COMSSSD SUBSYST TITLE MAIN PROGRAM. ** SUBSYST - MAIN PROGRAM. * * USES X - 1, 5. * A - 1. * B - 7. * * CALLS FDB, PKB, PRS, RSD. * * MACROS DSDINP, ENDRUN, MESSAGE, ROUTE, WRITER. SUBSYST BSS 0 ENTRY RJ PRS PRESET ROUTINE RJ RSD READ SUBSYSTEM DATA SA1 LFLG ZR X1,SUB1 IF ONLY PRINTER OUTPUT SELECTED SX5 B0+ SX6 MESH BLANK MESSAGE RJ FDB FORMAT DISPLAY RJ PKB PROCESS KEYBOARD DSDINP LBFI,C DROP *L* DISPLAY EQ SUB2 COMPLETE SUB1 SX5 O RJ FDB FORMAT LISTING WRITER O,R ROUTE ROTB,R SUB2 MESSAGE DASC,0,R * SUBSYST UTILITY COMPLETE.* ENDRUN TITLE SUBROUTINES. ERR SPACE 4,10 ** ERR - ERROR PROCESSOR. * * ENTRY (X2) = ADDRESS OF ERROR MESSAGE. * * EXIT MESSAGE ISSUED IN SYSTEM AND USER DAYFILE. * * MACROS ABORT, MESSAGE. ERR BSS 0 ENTRY MESSAGE X2,0,R ABORT FDB SPACE 4,10 ** FDB - FORMAT DISPLAY BUFFER. * * ENTRY (X5) = 0, IF FORMATTING FOR *L* DISPLAY. * .EQ. FET ADDRESS OF OUTPUT FILE IF FOR PRINTER. * (X6) = ADDRESS OF DISPLAY MESSAGE. * (HBUF) = FWA OF FORMATTED SUBSYSTEM DATA. * * USES X - 1, 2, 3, 4, 6, 7. * A - 4, 7. * B - 2, 3, 4, 6. * * CALLS FLB, WSB. * * MACROS DSDOUT. FDB SUBR ENTRY/EXIT RJ WSB WRITE SUBSYSTEM INFORMATION BUFFER * SET UP PARAMETERS FOR *FLD*. SB2 LBUF+1 FWA OF BUFFER TO RECEIVE CONVERTED DATA SB6 LBUF+LBUFL LWA+1 OF BUFFER TO RECEIVE CONVERTED DATA SX1 HBUF FWA OF UNCONVERTED DATA FOR PRINTER SX6 A0-1 LWA OF UNCONVERTED DATA NZ X5,FDB1 IF FORMATTING FOR PRINTER SA4 LDSW INITIALIZE *L* DISPLAY BUFFER SX1 HBUF1 FWA OF BUFFER FOR *L* DISPLAY BX7 X4 SA7 B2-B1 SB3 XCDT SET X-COORDINATE FOR *L* DISPLAY SB4 YCDT SET Y-COORDINATE FOR *L* DISPLAY FDB1 SX3 B1 *C* DISPLAY FORMAT BX2 X5 RJ FLB FORMAT DATA FOR *L* DISPLAY NZ X5,FDBX IF FORMATTING FOR PRINTER DSDOUT LBUF DISPLAY *L* DISPLAY BUFFER EQ FDBX RETURN PKB SPACE 4,10 ** PKB - PROCESS KEYBOARD. * * PROCESSES INPUT FROM OPERATOR UNTIL *L.END* IS ENTERED. * * USES X - ALL. * A - 1, 2, 3, 6, 7. * B - 2, 3, 7. * * CALLS DXB, FDB, POP, RSD, USB. * * MACROS DSDINP, ROLLOUT, ROUTE, SYSTEM, WRITER. PKB SUBR ENTRY/EXIT SA1 LDIW INITIALIZE THE INPUT BUFFER CONTROL WORD MX6 0 ENSURE AN END OF LINE IN COMMAND BUFFER SA6 LBFI+LBIL+1 BX6 X1 SA6 LBFI SB7 B0 CLEAR REFRESH REQUIRED PKB1 DSDINP LBFI REQUEST *L* DISPLAY INPUT SA2 LBFI CHECK FOR INPUT MX0 -12 BX6 -X0*X2 AX6 1 IGNORE COMPLETION BIT ZR X6,PKB3 IF INPUT ERRNZ INPC CODE DEPENDS ON VALUE ZR B7,PKB2 IF REFRESH IS NOT REQUIRED RJ RSD READ SUBSYSTEM DATA SA1 WSBE GET LAST ERROR MESSAGE SX6 X1+ RJ FDB FORMAT DISPLAY BUFFER PKB2 ROLLOUT ROLL WAIT FOR INPUT SB7 B1 SET REFRESH REQUIRED EQ PKB1 INPUT COMMAND PKB3 SX6 B0+ CLEAR STRING BUFFER SB2 80 PKB4 SA6 USBB+B2 SB2 B2-1 PL B2,PKB4 IF MORE TO CLEAR * DETERMINE COMMAND. SB2 LBFI+1 UNPACK COMMAND RJ USB RJ POP GET FIRST PARAMETER ZR X6,PKB19 IF NO COMMAND VERB SB2 B0 INITIALIZE TABLE INDEX MX0 42 PKB5 SA3 TLDC+B2 ZR X3,PKB24 IF END OF TABLE BX2 X3-X6 BX2 X0*X2 SB2 B2+1 ADVANCE INDEX NZ X2,PKB5 IF NO MATCH SB3 X3+ JP B3 PROCESS COMMAND * PROCESS *ENABLE*. PKB6 SX7 B0+ SET ENABLE STATUS EQ PKB8 CONTINUE * PROCESS *DISABLE*. PKB7 SX7 1 SET DISABLE STATUS PKB8 SA7 PKBB SX2 X1-1R, NZ X2,PKB21 IF SEPARATOR NOT *,* * DETERMINE SUBSYSTEM. RJ POP GET SUBSYSTEM NAME SB2 MXSI-LSSI-1 INITIALIZE TABLE INDEX MX0 18 PKB9 NG B2,PKB22 IF END OF TABLE SA3 TSSN+B2 BX4 X0*X3 BX2 X4-X6 SB2 B2-B1 NZ X2,PKB9 IF NO MATCH SX7 MXSI-1 SAVE SUBSYSTEM ID SX2 B2 IX7 X7-X2 SA7 PKBA SX6 B0+ SX4 X1-1R, ZR X4,PKB10 IF SEPARATOR IS A *,* SX4 X1-1R. ZR X4,PKB13 IF END OF COMMAND ZR X1,PKB13 IF END OF COMMAND EQ PKB21 PROCESS ERROR * PROCESS CONTROL POINT. PKB10 BX2 -X0*X3 ZR X2,PKB25 IF CONTROL POINT NOT ALLOWED RJ POP GET CONTROL POINT NUMBER SX4 X1-1R. MX0 6 ZR X4,PKB11 IF END OF COMMAND NZ X1,PKB21 IF ERROR PKB11 SX3 1RB APPEND *B* TO CONTROL POINT LX3 -12 LX0 -12 BX7 X0*X6 NZ X7,PKB23 IF THREE DIGIT CONTROL POINT LX0 6 BX7 X0*X6 ZR X7,PKB12 IF ONE DIGIT CONTROL POINT LX3 -6 PKB12 BX5 X6+X3 SB7 B0 SET OCTAL CONVERSION RJ DXB CONVERT TO OCTAL NZ X4,PKB23 IF ERROR SA2 NCPT CHECK FOR VALID CONTROL POINT NUMBER IX3 X6-X2 PL X3,PKB23 IF CONTROL POINT TOO LARGE SX6 X6+40B LX6 12 POSITION CONTROL POINT NUMBER * CALL *SFM* TO CHANGE SUBSYSTEM STATUS. PKB13 SA1 PKBA ADD SUBSYSTEM ID BX6 X1+X6 SA1 PKBB ADD ENABLE/DISABLE FLAG LX1 18 BX6 X1+X6 SA6 PKBC SAVE *SFM* PARAMETER WORD SX1 RDSI BX1 X1-X6 NZ X1,PKB13.1 IF NOT *ENABLE,RDF.* SA1 OSSM ZR X1,PKB13.1 IF SYSTEM NOT SECURED MX6 1 SA6 PKBE SYSTEM RSB,R,PKBD DETERMINE SECURITY UNLOCK STATUS SA1 PKBE LX1 59-57 PL X1,PKB26 IF NOT SECURITY UNLOCK PKB13.1 SYSTEM SFM,R,PKBC,SUSF*100B RJ RSD READ SUBSYSTEM DATA SX6 MESF *COMMAND PROCESSED.* EQ PKB20 WAIT FOR NEXT INPUT * PROCESS *OUT*. PKB14 SX3 X1-1R. ZR X3,PKB15 IF END OF COMMAND NZ X1,PKB21 IF ERROR PKB15 SX5 O FORMAT LISTING RJ FDB WRITER O,R SA1 ROTB CLEAR COMPLETE BIT MX0 42 BX6 X0*X1 SA6 A1 ROUTE ROTB,R SX6 MESF *COMMAND PROCESSED.* EQ PKB20 WAIT FOR NEXT INPUT * PROCESS *END*. PKB16 SX3 X1-1R. ZR X3,PKB17 IF END OF COMMAND NZ X1,PKB21 IF ERROR PKB17 SA1 PFLG ZR X1,PKB18 IF NO PRINTER OUTPUT REQUESTED SX5 O RJ FDB FORMAT LISTING WRITER O,R SA1 ROTB CLEAR COMPLETE BIT MX0 42 BX6 X0*X1 SA6 A1 ROUTE ROTB,R PKB18 SX5 B0+ SX6 MESG *UTILITY COMPLETE.* RJ FDB EQ PKBX RETURN * PROCESS PAGING COMMANDS. PKB19 SB3 X1-1R+ NG B3,PKB24 IF NEITHER *+* NOR *-* GT B3,B1,PKB24 IF NEITHER *+* NOR *-* SA2 WSBC ALTER PAGING CONTROL WORD LX1 59 FORM MASK TO USE OR IGNORE *NEXT* ORDINAL AX1 29 UX2,B3 X2 SAVE MAXIMUM LINE COUNT BX2 X2*X1 AX2 30 PX6 X2,B3 RESTORE MAXIMUM LINE COUNT SA6 A2+ SX6 MESH CLEAR MESSAGE LINE * EQ PKB20 WAIT FOR NEXT INPUT * ROLLOUT UNTIL NEXT *L* DISPLAY INPUT. PKB20 SX5 B0 FORMAT DISPLAY RJ FDB SB7 B0 CLEAR REFRESH REQUIRED EQ PKB1 CHECK FOR INPUT PKB21 SX6 MESD *INCORRECT COMMAND FORMAT.* EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT PKB22 SX6 MESB *UNKNOWN SUBSYSTEM.* EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT PKB23 SX6 MESC *INCORRECT CONTROL POINT.* EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT PKB24 SX6 MESA *INCORRECT COMMAND.* EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT PKB25 SX6 MESE *CONTROL POINT NOT ALLOWED.* EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT PKB26 SX6 MESI *SECURITY UNLOCK REQUIRED.* EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT PKBA CON 0 SUBSYSTEM ID PKBB CON 0 ENABLE/DISABLE FLAG PKBC CON 0 *SFM* PARAMETER WORD PKBD VFD 12/,12/1,18/SSTL,18/PKBE PKBE VFD 1/1,59/0 SECURITY UNLOCK STATUS NCPT VFD 1/1,59/0 NUMBER OF CONTROL POINTS TLDC SPACE 4,10 ** TABLE OF *L* DISPLAY COMMANDS. * *T 42/ COMMAND, 18/ ADDRESS TLDC BSS 0 VFD 42/6LENABLE,18/PKB6 VFD 42/7LDISABLE,18/PKB7 VFD 42/3LOUT,18/PKB14 VFD 42/3LEND,18/PKB16 CON 0 END OF TABLE TSSN SPACE 4,10 ** TABLE OF SUBSYSTEM NAMES. * *T 42/ NAME (LEFT JUSTIFIED), 18/ FLAG * * FLAG = 1, IF CONTROL POINT ALLOWED ON *ENABLE/DISABLE*. * = 0, IF CONTROL POINT NOT ALLOWED. TSSN BSS 0 TABLE OF SUBSYSTEM NAMES LIST D .SUB HERE LIST * ORG TSSN+MXSI-LSSI RSD SPACE 4,15 ** RSD - RETURN SUBSYSTEM DATA. * * ENTRY (SFMB) = *SFM* PARAMETER BLOCK SET UP * FOR *RSSF* SUBFUNCTION. * * EXIT (HTIM) = THE TIME AT WHICH THE DATA WAS READ. * (WBUFA - WBUFA+.NSS-1) = SUBSYSTEM INFORMATION. * * MACROS CLOCK, DATE, SYSTEM. RSD SUBR ENTRY/EXIT SYSTEM SFM,R,SFMB,RSDF*100B RETURN SYSTEM DATA DATE HDAT CLOCK HTIM SET TIME IN BUFFER FOR PRINTER OUTPUT EQ RSDX RETURN WSB SPACE 4,15 ** WSB - WRITE SUBSYSTEM INFORMATION BUFFER. * * ENTRY (X5) = PRINTER/*L* DISPLAY FLAG. * 0 = *L* DISPLAY FORMAT. * (X6) = ADDRESS OF DISPLAY MESSAGE. * (SFMB) = 24/, 12/NUMBER OF SUBSYSTEMS, 24/. * (WBUFA - WBUFA+.NSS-1) = SUBSYSTEM DATA FROM *SFM*. * * EXIT (A0) = LWA+1 OF DATA IN *WBUF*. * (WBUF - (A0)-1) = FORMATTED SUBSYSTEM DATA. * * USES X - 0, 1, 2, 4, 6. * A - 0, 1, 2, 4, 6. * B - 5, 6, 7. * * CALLS COD, SFN. * * MACROS MOVE. WSB SUBR ENTRY/EXIT SA4 WSBC GET *L* DISPLAY PAGING CONTROL WORD SA1 SFMB GET NUMBER OF WORDS RETURNED ZR X5,WSB1 IF *L* DISPLAY FORMAT SA4 A4+1 GET PRINTER PAGING CONTROL WORD WSB1 SA6 WSBE SAVE ERROR MESSAGE ADDRESS SA0 WBUF FWA TO RETURN REFORMATTED BUFFER MX0 -12 LX1 11-35 UX4,B7 X4 SET MAXIMUM NUMBER OF LINES - 1 TO FORMAT BX1 -X0*X1 SB6 X4+ SUBSYSTEM DATA BUFFER INDEX SB5 X1+ NUMBER OF SUBSYSTEMS WSB2 SA2 TSSN+B6 GET SUBSYSTEM NAME MX0 18 BX1 X0*X2 ZR X1,WSB6 IF NO SUBSYSTEM NAME NG B7,WSB7 IF NO ROOM TO DISPLAY SUBSYSTEM DATA RJ SFN LX6 -12 SA6 A0+ SA0 A0+B1 INCREMENT RETURN BUFFER SA4 WBUFA+B6 GET REQUIRED CONTROL POINT SA2 WSBA PRESET CONTROL POINT TO BLANKS MX0 -6 LX4 -12 BX6 X2 BX1 -X0*X4 CONTROL POINT ZR X1,WSB3 IF NO CONTROL POINT RJ COD WSB3 SA4 WBUFA+B6 GET EJTO SA2 WSBA PRESET EJTO TO BLANKS LX6 24 SA6 A0 STORE REQUIRED CONTROL POINT SA0 A0+B1 INCREMENT RETURN BUFFER MX0 -12 BX1 -X0*X4 EJT ORDINAL BX6 X2 ZR X1,WSB4 IF NO EJT ORDINAL RJ COD WSB4 SA4 WBUFA+B6 GET ENABLE/DISABLE STATUS SA6 A0 STORE EJTO SA0 A0+B1 SA1 WSBB PRESET STATUS TO *DISABLED* LX4 59-18 SA2 A1+B1 NG X4,WSB5 IF SUBSYSTEM DISABLED SA1 A2+B1 SET STATUS TO *ENABLED* SA2 A1+B1 WSB5 BX6 X1 SA6 A0 SA0 A0+B1 INCREMENT RETURN BUFFER BX6 X2 SA6 A0 SA0 A0+B1 INCREMENT RETURN BUFFER SB7 B7-1 DECREMENT LINE LIMIT WSB6 SB6 B6+B1 INCREMENT BUFFER INDEX LT B6,B5,WSB2 IF MORE SUBSYSTEMS TO PROCESS SB6 B0 FIRST SUBSYSTEM FOR NEXT PAGE WSB7 NZ X5,WSBX IF FORMATTING FOR PRINTER SB4 B7+1 CLEAR UNUSED LINES AND *MORE* LINE WSB8 MOVE 5,WSBD,A0 SB4 B4-1 DECREMENT LINE COUNT SA0 A0+5 INCREMENT RETURN BUFFER PL B4,WSB8 IF ALL DISPLAY LINES ARE NOT FILLED SA2 WSBC GET *L* DISPLAY PAGING CONTROL WORD SA1 =4AMORE SX6 B6 MX0 42 LX2 -30 BX2 X0*X2 BX6 X2+X6 SET *NEXT* ORDINAL LX6 30 SA6 A2 BX6 X1 ZR B6,WSB9 IF LAST PAGE SA6 A0-5 SET *MORE* IN BUFFER WSB9 SA2 WSBE SET ERROR MESSAGE IN BUFFER MOVE MBUFL,X2,A0 SA1 LBFI+1 SET COMMAND IN BUFFER SA0 A0+MBUFL WSB10 MX2 -12 BX6 X1 BX2 -X2*X1 SA1 A1+B1 SA6 A0 SA0 A0+B1 LWA+1 OF BUFFER FOR *L* DISPLAY NZ X2,WSB10 IF NOT END OF COMMAND EQ WSBX RETURN WSBA CON 10H WSBB DATA C* DISABLED* DATA C* ENABLED* WSBC SPACE 4,10 ** WSBC - PAGING CONTROL WORDS. * *T VFD 12/ LC ,18/ NEXT ORDINAL,30/ CURRENT ORDINAL * * LC = LINE COUNT - 1 + 2000B. WSBC VFD 12/1777B+LDAT,18/0,30/0 *L* DISPLAY PAGING WORD VFD 12/1777B+2000B,18/0,30/0 PRINTER PAGING WORD WSBD DATA 48C WSBE CON MESH TEMPORARY FOR ERROR MESSAGE ADDRESS SPACE 4,5 * COMMON DECKS. *CALL COMCCIO *CALL COMCCOD *CALL COMCCPM *CALL COMCDXB LIST X *CALL COMCFLD LIST * *CALL COMCLFM *CALL COMCMVE *CALL COMCPOP *CALL COMCSFN *CALL COMCSYS *CALL COMCUSB *CALL COMCWOD *CALL COMCWTC *CALL COMCWTO *CALL COMCWTW *CALL COMCZTB TITLE BUFFER AREA. USE BUFFERS * BUFFER AREA. HBUF BSS 0 HEADER FOR *SUBSYST* DISPLAY DATA 40H SUBSYST - SUBSYSTEM STATUS. HDAT BSSZ 1 HTIM BSSZ 1 CON 0 DATA C* * HBUF1 DATA C* SUBSYSTEMS* DATA C* * DATA C* REQUIRED EJT* DATA C* NAME CONTROL POINT ORDINAL STATUS* DATA C* * WBUF BSS .NSS*5 WORKING BUFFER .1 MAX *,WBUF+LDAT*5+5+MBUFL+CBUFL WBUFA EQU .1 *SFM* RETURNS DATA HERE LBUF EQU WBUFA+.NSS *L* DISPLAY OUTPUT BUFFER LBFI EQU LBUF+LBUFL *L* DISPLAY INPUT BUFFER OBUF EQU LBFI+LBIL+2 OUTPUT FILE BUFFER PRS TITLE PRESET. ** PRS - PRESET ROUTINE. * * ENTRY COMMAND ARGUMENT LIST AT RA+2 (ARGR) * IN OPERATING SYSTEM FORMAT. * * EXIT (B1) = 1. * (PFLG) = 1, IF PRINT FILE REQUESTED. * (LFLG) = 1, IF *L* DISPLAY REQUESTED. * * ERROR TO *ERR*, IF ARGUMENT ERROR OR USER ACCESS NOT VALID. * (X2) = FWA ERROR MESSAGE. PRS9 SYSTEM RSB,R,PRSC SET NUMBER OF CONTROL POINTS SA1 NCPT MX0 -12 LX1 -36 BX6 -X0*X1 SX6 X6+B1 SA6 A1 GETSSM OSSM GET SYSTEM SECURITY MODE PRS SUBR ENTRY/EXIT SB1 1 B1 = 1. GETSPS SYOF CHECK FOR SYSTEM ORIGIN PRIVILEGES SA1 SYOF ZR X1,PRS1 IF SYSTEM ORIGIN PRIVILEGES SX2 ERIU *USER ACCESS NOT VALID.* EQ ERR ABORT * PROCESS ARGUMENT LIST. PRS1 SB2 CCDR UNPACK COMMAND RJ USB SA1 A6 ASSURE TERMINATOR CHARACTER SX6 1R. SA6 X1+B1 SA2 PRSB SET SEPARATOR MASK SB2 60 SET MAXIMUM NON-DELIMITER DISPLAY CODE SB7 PRS8 SET EXIT FOR TERMINATOR CHARACTER RJ FNB FIND NON-BLANK CHARACTER * SKIP PROGRAM NAME. SB7 PRS6 SET EXIT FOR TERMINATOR CHARACTER PRS4 RJ FNB FIND NON-BLANK CHARACTER SB4 B5-B2 LX4 X2,B5 PL B4,PRS5 IF SEPARATOR CHARACTER PL X4,PRS4 IF NOT SEPARATOR CHARACTER PRS5 SB3 TARG FWA ARGUMENT EQUIVALENCE TABLE SB2 TARGL LENGTH ARGUMENT TABLE SB4 PRSA ADDRESS TO PLACE DATA RJ CPA CONVERT POSITIONAL ARGUMENTS NG B5,PRS8 IF ARGUMENT ERROR PL X1,PRS6 IF NO ARGUMENTS PROCESSED SX6 B5 SET LWA OF ARGUMENTS SA6 USBC SB6 PRSA FWA OF ARGUMENTS RJ ARM PROCESS ARGUMENTS NZ X1,PRS8 IF ERROR SA1 O SET FILE NAME IN ROUTE BLOCK MX0 42 BX6 X0*X1 SA6 ROTB * DETERMINE LIST OPTIONS. PRS6 SA1 LO GET LIST OPTION SA2 TLOP-1 MX0 6 SB4 A2+ SAVE ADDRESS OF ARGUMENT TABLE PRS7 BX3 X0*X1 PROCESS NEXT CHARACTER FROM LIST OPTION ZR X3,PRS9 IF ALL OPTIONS PROCESSED PRS7.1 SA2 A2+B1 SEARCH ARGUMENT TABLE ZR X2,PRS8 IF LIST OPTION NOT DEFINED IN TABLE BX4 X0*X2 BX4 X4-X3 NZ X4,PRS7.1 IF MATCH NOT FOUND SX6 B1 SET FLAG FOR THIS OPTION SA6 X2 SX3 A2-TLOP LX1 6 SA2 B4 INITIALIZE TABLE ADDRESS NZ X3,PRS7 IF NOT LO=D MX4 -12 SA3 JOPR CHECK FOR SYSTEM ORIGIN LX3 0-24 BX3 -X4*X3 SX3 X3-SYOT ZR X3,PRS7 IF SYSTEM ORIGIN JOB SX2 ERIU *USER ACCESS NOT VALID.* EQ ERR ABORT PRS8 SX2 ERAR *ARGUMENT ERROR.* EQ ERR ABORT PRSA BSS 100 PRSB CON 40000000000033127777B SEPARATOR MASK PRSC VFD 12/,12/1,18/NCPL,18/NCPT ** ASSUMED VALUES FOR LIST OPTIONS. LO CON 0LD SELECTED LIST OPTION (DEFAULT = *D*) SPACE 4,10 ** ARGUMENT EQUIVALENCE TABLE. * * THIS TABLE IS REQUIRED BY ARGUMENT PROCESSOR *COMCARM*. TARG BSS 0 L ARG O,O,0,0 OUTPUT FILE NAME LO ARG LO,LO,0,0 LIST OPTIONS ARG END OF ARGUMENT TABLE TARGL EQU *-TARG-1 LENGTH OF ARGUMENT TABLE TLOP SPACE 4,15 ** TLOP - TABLE OF LIST OPTIONS. * *T, 42/ OPTION,18/ ADDR * * (ADDR) WILL BE SET NON-ZERO BY PRS IF OPTION IS SELECTED. TLOP BSS 0 VFD 42/0LD,18/LFLG SELECT *L* DISPLAY VFD 42/0LL,18/PFLG SELECT LINE PRINTER CON 0 END OF TABLE FNB SPACE 4,15 ** FNB - FIND NON-BLANK CHARACTER. * * ENTRY (B6) = NEXT CHARACTER ADDRESS. * (B7) = EXIT ADDRESS, IF TERMINATOR ENCOUNTERED. * * EXIT (X1) = (B5) = NEXT NON-BLANK CHARACTER. * (B6) = NEXT CHARACTER ADDRESS (UPDATED). * EXIT IS MADE TO (B7), IF TERMINATOR ENCOUNTERED. * * USES X - 1, 4. * A - 1. * B - 5, 6. FNB SUBR ENTRY/EXIT FNB1 SA1 B6 GET NEXT CHARACTER SB6 B6+B1 SX4 X1-1R ZR X4,FNB1 IF BLANK CHARACTER SB5 X1+ SX4 X1-1R. ZR X4,FNB2 IF TERMINATOR CHARACTER SX4 X1-1R) NZ X4,FNBX IF NOT TERMINATOR CHARACTER, RETURN FNB2 JP B7 TERMINATOR CHARACTER TITLE PRESET COMMON DECKS. *CALL COMCARM *CALL COMCCPA SPACE 4,5 SUBSYE EQU * END OF PROGRAM .RFL= MAX SUBSYE,OBUF+OBUFL RFL= EQU .RFL= SPACE 4,5 END