cdc:nos2.source:opl871:subsyst
Table of Contents
SUBSYST
Table Of Contents
- [00008] SUBSYST - SUBSYSTEM DISPLAY.
- [00012] SUBSYSTEM DISPLAY.
- [00147] GENERATE SUBSYSTEM TABLE.
- [00177] ASSEMBLY CONSTANTS.
- [00194] TABLES AND BUFFER DEFINITIONS.
- [00264] MAIN PROGRAM.
- [00293] SUBROUTINES.
- [00295] ERR - ERROR PROCESSOR.
- [00308] FDB - FORMAT DISPLAY BUFFER.
- [00347] PKB - PROCESS KEYBOARD.
- [00603] RSD - RETURN SUBSYSTEM DATA.
- [00620] WSB - WRITE SUBSYSTEM INFORMATION BUFFER.
- [00735] WSBC - PAGING CONTROL WORDS.
- [00769] BUFFER AREA.
- [00794] PRS - PRESET ROUTINE.
- [00913] TLOP - TABLE OF LIST OPTIONS.
- [00925] FNB - FIND NON-BLANK CHARACTER.
- [00950] PRESET COMMON DECKS.
Source Code
- SUBSYST.txt
- 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
cdc/nos2.source/opl871/subsyst.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator