plato:source:plaopl:mas
Table of Contents
MAS
Table Of Contents
- [00005] -MAS-
- [00006] DEFINITIONS
- [00068] EM MACROS
- [00128] COMMENTS
- [00184] -MAS- INITIALIZE CONTROL POINT PARAMS
- [00315] -MAS- ACCEPT REQUEST FROM CALLING JOB
- [00349] SEARCH FOR MASTOR(N) CONTROL POINT.
- [00417] READ POINTERS FROM MASTOR(N) CM.
- [00516] REFORMAT REQUEST FOR MASTOR.
- [00562] READ POINTERS FROM MASTOR EM.
- [00597] REQUEST A REQUEST AREA FROM MASTOR.
- [00627] WAIT FOR MASTOR TO ASSIGN REQUEST AREA.
- [00654] POST REQUEST THRU ASSIGNED REQ AREA.
- [00709] PROCESS MASTOR-TO-MAS REQUEST.
- [00753] -MAS- PROCESS RAX/FLX REQUEST
- [00868] -MAS- PROCESS CPU/QUEUE PRIORITY REQ
- [00933] -MAS- PROCESS IDENTIFY LOGIC REQUEST
- [01013] PROCESS SET CLOCKS REQUEST
- [01059] -MAS- END REQUEST - RETURN STATUS
- [01345] ERROR EXIT ROUTINES
- [01410] -MAS- DROP PPU
- [01457] -PAUSE- CHECK FOR STORAGE MOVE
- [01498] -MESSAG- OUTPUT B-DISPLAY MESSAGE
- [01527] CEP - CONVERT RAX/FLX TO EXCHANGE PACKAGE VALUE
- [01564] STORAGE DEFINITIONS
- [01626] EM PROCS
Source Code
- MAS.txt
- MAS
- * /--- FILE TYPE = E
- * /--- BLOCK IDENT 00 000 76/03/02 14.47
- IDENT MAS,MAS
- TITLE -MAS-
- TITLE DEFINITIONS
- COMMENT MASTOR REQUEST PROCESSOR
- *
- *
- ************************************************************
- *
- *
- PERIPH
- SST
- *
- *
- LIST F
- * QUAL UFP
- **CALL COMSUFP CYBERNET EQUIVALENCES
- * QUAL *
- *CALL COMSACC
- *CALL COMPMAC
- *CALL COMSEJT
- *CALL COMSPIM
- *CALL COMSSSD
- *CALL COMSSSJ
- QUAL CPS
- *CALL COMSCPS
- QUAL *
- *CALL PLAP501
- *CALL COMSPRD
- *CALL AIDTEXT
- *CALL PTEXT
- *CALL SYSCON
- *CALL PLASMPC
- *CALL PLASMRC
- *
- *
- D.T0 EQU 20B DIRECT CELL WORK VARIABLES
- D.T1 EQU 21B
- D.T2 EQU 22B
- D.T3 EQU 23B
- D.T4 EQU 24B
- *
- D.PPWD EQU 25B (2 WORDS) ADDRESS OF CPU / PPU
- * COMMUNICATION AREA
- D.CPN EQU 27B CONTROL POINT NUMBER
- *
- CN EQU 30B - 34B USED BY COMMON DECK *COMPUFT*
- EM EQU 35B ECS / ESM MODE
- RI EQU 36B - 37B RANDOM INDEX (FOR CRA)
- FN EQU 40B - 44B USED BY COMMON DECK *COMPUFT*
- SC EQU 45B SCRATCH CELL -- USED BY *CDV*
- D.COM EQU 46B COMSOURCE NOS FLAG (0 - NO)
- D.A170 EQU 47B 170/800 FLAG (NONZERO=170/800)
- D.RSAV EQU 60B - 61B SAVE (R) REGISTER
- D.RSV EQU 62B FWA+1 OF ROUTINE *RSVDDP*
- D.REL EQU 63B FWA+1 OF ROUTINE *RELDDP*
- D.RE EQU 64B FWA+1 OF ROUTINE *READECS*
- D.WE EQU 65B FWA+1 OF ROUTINE *WRITECS*
- EX EQU 66B EXTENDED ADDRESSING MODE (=1)
- *
- ************************************************************
- * /--- BLOCK EM MACROS 00 000 85/05/02 10.45
- TITLE EM MACROS
- ** EM TRANSFER MACROS
- *
- * THESE MACROS HANDLE THE SETUP FOR CALLS TO THE
- * READ AND WRITE ROUTINES IN COMMON DECK *EMPROCS*
- *
- * 1ST TAG = PPADDR = ADDRESS IN PP MEMORY.
- * 2ND TAG = EMADDR = FIRST BYTE OF TWO-BYTES CON-
- * TAINING EM ADDRESS RELATIVE
- * TO MASTOR(N)'7S RAX.
- * 3RD TAG = OFFSET = CONSTANT OFFSET ADDED TO SUM
- * OF (EMADDR) AND (MRAX)
- * 4TH TAG = LTH = LENGTH OF TRANSFER IN CM WORDS.
- *
- * THIS MACRO INTERFACES WITH THE ROUTINES FROM
- * *EMPROCS* D.RE/D.WE WHICH REQUIRE';
- * (D.T0) = PPU MEMORY ADDRESS
- * (D.T1) AND (D.T2) = EM ADDRESS (UPPER/LOWER)
- * (D.T2) = TRANSFER LENGTH IN PP BYTES
- *
- MACREF EMXFER$
- EMXFER MACRO RDWRT,PPADDR,EMADDR,OFFSET,LENGTH
- MACREF EMXFER
- .LTH SET LENGTH
- LDK PPADDR
- STD D.T0
- LDM MRAX+1
- .1 IFC NE,$EMADDR$$
- ADM EMADDR+1
- .1 ENDIF
- .2 IFC NE,$OFFSET$$
- ADK OFFSET
- .2 ENDIF
- STD D.T2
- SHN -12D
- ADM MRAX
- .3 IFC NE,$EMADDR$$
- ADM EMADDR
- .3 ENDIF
- STD D.T1
- LDK .LTH*5
- STD D.T3
- RJM 0,D._RDWRT
- NJP MASERR4
- ENDM
- MACREF READEM$
- READEM MACRO PPADDR,EMADDR,OFFSET,XFERLTH
- MACREF READEM
- EMXFER RE,PPADDR,EMADDR,OFFSET,XFERLTH
- ENDM
- MACREF WRITEM$
- WRITEM MACRO PPADDR,EMADDR,OFFSET,XFERLTH
- MACREF WRITEM
- EMXFER WE,PPADDR,EMADDR,OFFSET,XFERLTH
- ENDM
- *
- *
- * /--- BLOCK COMMENTS 00 000 82/10/18 10.47
- TITLE COMMENTS
- ************************************************************
- *
- *
- * PPU PROGRAM *MAS* PROVIDES THE COMMUNICATION LINK
- * BETWEEN CENTRAL PROCESSOR JOBS AND *MASTOR*
- * *MAS* ALSO PROCESSES PPU REQUESTS REQUIRED BY
- * *MASTOR* IN PROCESSING THE REQUEST GENERATED BY
- * A CENTRAL PROCESSOR JOB
- *
- * *** *** *** *** *** *** *** *** *** **
- *
- * INPUT REGISTER FORMAT
- *
- * 18/MAS, 6/CP, 11/, 1/NA, 24/RA
- *
- * NA - IF NON-ZERO DO NOT ABORT ON MASTOR
- * NOT ACTIVE. RETURN ERROR CODE
- *
- * RA - REQUEST ADDRESS
- *
- *
- *
- * JOB TO *MAS* REQUEST FORMAT -
- * 1ST WORD -
- * 1ST 12 BITS = REQUEST TYPE
- * NEXT 24 = UNUSED
- * NEXT 12 = *MAS* TO JOB REPLY FIELD
- * NEXT 11 = 0
- * NEXT 1 = COMPLETION BIT
- * 2ND - 7TH WORDS = REQUEST / REPLY PARAMETERS
- *
- *
- * ECS *MAS* / *MASTOR* REQUEST AREA FORMAT -
- * 1ST WORD - *MAS* TO *MASTOR* REQUEST AREA
- * 1ST 42 BITS = JOB NAME. 'FOR NOS 562 AND
- * LATER - 24 / JOB SEQUENCE NAME
- * 12 / EJT ORD, 6/UNUSED
- * NEXT 3 = ORIGIN MAIN-FRAME NUMBER
- * NEXT 3 = 0 (DESTINATION MAIN-FRAME)
- * NEXT 6 = *MASTOR* TO *MAS* REPLY FIELD
- * NEXT 6 = REQUEST TYPE CODE
- * 2ND WORD - *MASTOR* TO *MAS* REQUEST AREA
- * 1ST 12 BITS = *MAS* TO *MASTOR* REPLY FIELD
- * NEXT 36 = REQUEST PARAMETERS
- * NEXT 12 = REQUEST TYPE CODE
- * 3RD - 8TH WORDS = *MAS* TO *MASTOR* REQ PARAMS
- *
- * IF BIT 5 OF MASTOR REPLY STATUS IS SET,
- * JOB WILL BE ABORTED WITH *SYET* ERROR FLAG.
- *
- *
- ************************************************************
- *
- *
- * /--- BLOCK INITIAL 00 000 82/10/26 12.30
- TITLE -MAS- INITIALIZE CONTROL POINT PARAMS
- *
- *
- *
- ORG PPFW
- MAS BSS 0
- * INITIALIZE TO SHOW EM ROUTINES HAVE NOT BEEN
- * LOADED YET.
- LDN 0 (A) = EM ROUTINES NOT LOADED
- STD D.RE
- *
- * VERIFY CALLER IS EITHER SYSTEM ORIGIN
- * OR PROGRAM HAS A *SSJ=* ENTRY POINT.
- *
- LDD CP (A) = CONTROL POINT AREA ADDR
- *
- .NOSV2 IFLT OSLEV,562D NOS V1
- ADN JNMW
- CRD CM
- LDD CM+3
- LPN 77B (A) = JOB ORIGIN TYPE
- .NOSV2 ELSE NOS V2
- ADN JOTW JOB ORIGIN TYPE WORD
- CRD CM
- LDD CM+3 (A) = JOB ORIGIN TYPE
- .NOSV2 ENDIF
- *
- STM JOBORG SAVE JOB ORIGIN TYPE
- LMN SYOT
- ZJN MAS2 IF JOB OF SYSTEM ORIGIN
- LDD CP CHECK FOR SYSTEM ORIGIN PRIV
- ADK AACW
- CRD CM
- LDD CM+4
- LPN 20B
- ZJN MAS1 IF NO SYOT PRIVLEDGES
- LDN SSTL CHECK IF IN DEBUG MODE
- CRD CM
- LDD CM+3
- LPN 1
- NJN MAS2 IF IN DEBUG MODE
- MAS1 LDD CP
- ADC SEPW
- CRD CM
- LDD CM
- SHN 17-2
- MJN MAS2 IF SSJ= PRESENT
- LJM MASERR1
- *
- * INITIALIZE MACHINE TYPE (C170, 170/800, ETC.)
- *
- MAS2 BSS 0
- .NOSV2 IFGE OSLEV,578D NOS V2
- LDC MABL READ MAINFRAME ATTRIBUTE BLOCK
- CRD CM
- LDD CM+1
- SHN -13B (A) = 0 IF 800 SERIES, ELSE 1
- LMN 1 (A) = 1 IF 800 SERIES, ELSE 0
- .NOSV2 ELSE NOS V1
- LDN CPUL READ MACHINE TYPE
- CRD CM
- LDD CM+3 (A) = *CPUL* PART OF WORD
- LPC 0400B MASK OFF 170/800 FLAG
- .NOSV2 ENDIF
- STD D.A170 (0=C170, NONZERO=170/800)
- *
- * INITIALIZE CONTROL POINT NUMBER
- *
- LDD CP
- SHN -7 SET CONTROL POINT NUMBER
- STD D.CPN
- *
- * SET UP ADDRESS OF JOB TO *MAS* REQUEST
- *
- LDD IR+3 FORM ADDRESS OF ARGUMENTS
- LPN 37B
- STD D.PPWD SAVE UPPER PART OF REL ADDRESS
- LDD IR+4
- STD D.PPWD+1 SAVE LOWER PART OF REL ADDRESS
- * /--- BLOCK INITIAL 00 000 87/02/17 11.32
- *
- * INITIALIZE FOR *SFA* MACRO
- *
- .NOSV2 IFGE OSLEV,562D IF NOS V2
- RJM IFP INITIALIZATION FOR SFA MACRO
- .NOSV2 ENDIF
- *
- *
- * FORM AND PLANT ADDRESS OF CPU STATUS WORD
- *
- LDD CP GET ADDRESS OF C.P. AREA
- ADN STSW FORM ADDRESS OF STATUS WORD
- PLANT CM,STATSW
- *
- * FORM AND PLANT ADDR OF CPU/PPU COMMUNICATION WORD
- *
- LDD D.PPWD UPPER PART OF RELATIVE ADDRESS
- SHN 12 POSITION UPPER PART OF ADDRESS
- ADD D.PPWD+1 ATTACH LOWER PART
- RJM ABS CONVERT TO ABSOLUTE
- ZJP MASERR1
- PLANT CM,PPUWD PLANT REFERENCES
- *
- * OBTAIN DDP PORT CHANNEL NUMBER
- *
- LDC 2RD1 DDP EQUIPMENT NAME
- RJM EQN
- PJN MAS30 IF DDP FOUND
- STM C=DDP1 SET DDP CHANNEL=-1 FOR NO DDP
- UJN MAS50 NO DDP
- MAS30 BSS 0
- LDD CM LOAD DDP PORT CHANNEL NUMBER
- STM C=DDP1 SAVE DDP CHANNEL
- .NOS252 IFGE OSLEV,678D
- LDD CM+2
- STM C=DDP1+1
- .NOS252 ENDIF
- *
- * INITIALIZE EM ACCESSING PROCEDURES
- *
- MAS50 BSS 0
- * CALL EMPROC LOAD APPROPRIATE EM ROUTINES
- RJM EMPROC LOAD APPROPRIATE EM ROUTINES
- * /--- BLOCK ACCEPT 00 000 86/02/07 11.40
- TITLE -MAS- ACCEPT REQUEST FROM CALLING JOB
- *
- *
- *
- * READ JOB TO *MAS* REQUEST FROM CM
- *
- LDK MS.MDIM SET UP LENGTH TO READ
- STD D.T0
- LOADCM PPUWD ADDRESS OF COMMUNICATION AREA
- CRM JREQ,D.T0 READ REQUEST FROM CM
- * CHECK IF INTERNAL REQUEST
- LDM JREQ
- NJP MAS99 IF A *MASTOR* REQUEST
- LDM JREQ+1 GET *MAS* SUB-FUNCTION CODE
- SBN REQL
- PJP MASERR1 IF INVALID REQUEST
- ADN REQL
- STD T1
- LDM REQT,T1
- STD T2
- LJM 0,T2 PROCESS REQUEST
- * INTERNAL REQUEST TABLE
- REQT BSS 0
- CON MASERR1 0 = OBSOLETE
- CON MAS99 1 = RETURN *MFORD* CONFIG VALUE
- CON CDJ 2 = COUNT DEFERRED BATCH JOBS
- CON VUN 3 = VALIDATE USER NUMBER
- REQL EQU *-REQT
- * /--- BLOCK MAS SEARCH 00 000 73/06/01 14.21
- TITLE SEARCH FOR MASTOR(N) CONTROL POINT.
- *
- * SEARCH FOR MASTOR(N) CONTROL POINT
- *
- MAS99 LDN NCPL PTR TO WORD WITH NUM OF C.P.
- CRD CM
- .NOSV2 IFLT OSLEV,562D (NOS VERSION 1)
- LDD CM+3
- .NOSV2 ELSE (NOS VERSION 2)
- LDD CM+1
- .NOSV2 ENDIF
- SHN 7 *200B = CP AREA ADDR (MAX)
- STM MASCPA ALSO SERVES AS LOOP INDEX
- LDN 0 FOR ENTRY INTO SEARCH ROUTINE
- UJN MAS101 -- BEGIN SEARCH
- * START OF SEARCH LOOP
- MAS100 BSS 0 CHECK NEXT CONTROL POINT
- LDK -200B LTH OF CP AREA (FOR DECREMENT)
- MAS101 BSS 0 RECHECK SAME CONTROL POINT,
- * *** ENTER WITH (A) = 0 ***
- RAM MASCPA ADDR OF CONTROL POINT AREA
- ZJP MASERR2 -- NO MORE CP'7S, NO MASTOR(N)
- ADK JCIW PTR TO JOB CONTROL INFO
- CRD T2
- ADK TFSW-JCIW PTR TO EJT ORDINAL
- CRD CM
- LDD CM (A) = EJT ORDINAL
- SFA EJT RETURNS (A) = ADDR IN EJT
- ADK JSNE PLUS OFFSET TO JOB SEQ NAME
- CRD CM
- LDD CM+1 CHARS 3-4 OF JSN
- LPN 77B MASK FOR 4TH CHAR
- SBN 1R0 CHECK FOR NUMERIC
- MJP MAS100 -- NOT SPECIAL JSN
- LDD CM+1 CHARS 3-4 OF JSN
- SCN 77B CLEAR 4TH CHAR
- SHN 6 MOVE 3RD CHAR TO UPPER 6 BITS
- LMD CM UNION CHARS 1-2 INTO LOWER 12
- LMC 3RSMA COMPARE WITH MASTOR(N) NAME
- NJP MAS100 -- NOT MASTOR(N)
- LDD T2+2 SUBSYSTEM IDENTIFIER
- SBK PLSI PLATO SUBSYSTEM IDENTIFIER
- .NOS23 IFGE OSLEV,617D (NOS VERSION 2.3)
- NJP MAS100 -- NOT PART OF PLATO SUBSYSTEM
- .NOS23 ELSE (NOS VERSIONS 2.0 - 2.2)
- ZJN MAS110 -- YES, PART OF PLATO
- SBK 7754B-PLSI CHECK FOR SUBSYS ID OF PLATO
- * JOBS W/O RESIDENT PP'7S.
- NJP MAS100 -- NOT PART OF PLATO
- MAS110 BSS 0
- .NOS23 ENDIF
- LDN CMCL PTR TO STORAGE MOVE CONTROL WD
- CRD CM
- LDM MASCPA CP AREA ADDR FOR CURRENT CP
- .NOS27 IFGE OSLEV,716D NOS 2.7.1
- SHN -7 /200B - CHANGE TO CP NUMBER
- .NOS27 ENDIF
- LMD CM CP AREA ADDR OF CP TO BE MOVED
- NJN MAS120 -- NOT BEING MOVED
- CALL PAUSE ELSE, WAIT A MOMENT THEN
- LDN 0 MAKE SURE (A) = 0, THEN
- UJP MAS101 -- RE-CHECK SAME CP
- * /--- BLOCK READ EM PT 00 000 86/02/07 11.34
- TITLE READ POINTERS FROM MASTOR(N) CM.
- *
- * MASTOR(N) LOCATED; READ EXTENDED MEMORY POINTERS.
- *
- MAS120 BSS 0
- .NOSV2 IFGE OSLEV,562D (NOS VERSION 2)
- LDD D.A170
- ZJN MAS130 -- IF CME NOT PRESENT
- LDN 1 CME PRESENT, 800 SERIES
- MAS130 BSS 0 ENTER WITH (A) = 0 OR 1
- ADK FLSW OFFSET TO FIELD LENGTH WORDS
- ADM MASCPA PLUS CP AREA ADDR
- CRD CM READ APPROPRIATE WORD
- SRD D.RSAV SAVE *R* FROM CALLING CP
- LRD CM+1 LOAD *R* WITH (RA-NFL)/100B
- LDD CM+3 MASTOR(N) RA
- .NOSV2 ELSE (NOS VERSION 1)
- LDM MASCPA CP AREA ADDR
- .NOS552 IFGE OSLEV,552D (NOS VERSION 1.4/552)
- ADK FLSW
- .NOS552 ELSE (PRE-NOS VERSION 1.4/552)
- ADK STSW
- .NOS552 ENDIF
- CRD CM READ RA/FL INFORMATION
- LDD D.A170
- NJN MAS130 -- IF AN 800 SERIES MAINFRAME
- LDD CM+3 12-BIT RA ON A NON-800
- UJN MAS140 -- ALL THAT'7S NEEDED
- MAS130 BSS 0 800-SERIES MAINFRAME
- SRD D.RSAV SAVE CALLING CP'7S *R*
- LRD CM+2 SET *R* TO MASTOR(N)'7S RA
- LDD RA 4000B ON AN 800 SERIES
- .NOSV2 ENDIF
- * /--- BLOCK READ EM PT 00 000 87/02/24 14.01
- MAS140 BSS 0 ENTER WITH (A) = RA/100B
- SHN 6 *100B = MASTOR(N) RA
- ADK MS.CHKS PLUS OFFSET TO EM POINTERS
- CRM CHKS,TR READ 3 WORD BUFFER
- LRD D.RSAV RESTORE CALLING CP'7S *R*
- LDM ECSP (A) = 3/MF ORDINAL, 9/--
- SHN -9
- STM MFN SAVE MAINFRAME ORDINAL
- RJM VEP VERIFY EXTENDED MEMORY POINTERS
- LDM ECSP
- LPN 1 0=ECS, 1=ESM MODE
- STD EM SAVE ECS/ESM MODE
- .NOS252 IFGE OSLEV,678D
- MRQ150 LDK MEFL
- CRD CM
- LDD CM+2
- SHN -7 EXTENDED ADDRESSING BIT
- LPN 1
- STD EX
- .NOS252 ENDIF
- *
- * READ AND FORMAT JOB NAME AND MAINFRAME NUMBER.
- *
- .NOSV2 IFLT OSLEV,562D NOS V1
- LDD CP LOAD ADDR OF CONTROL POINT AREA
- ADN JNMW BIAS TO JOB NAME
- CRM JOBNAM,ON
- LDM JOBNAM+3
- SCN 77B CLEAR OUT 8TH CHARACTER
- STM JOBNAM+3
- LDN 0 EXIT WITH (A) = 0
- .NOSV2 ELSE (NOS VERSION 2)
- LDD CP (A) = CONTROL POINT AREA ADDR
- ADK TFSW GET EJT ORDINAL
- CRD CM
- SFA EJT,CM (A) = ABS ADDR OF EJT ENTRY
- ADK JSNE ADD WORD OFFSET FOR JSN
- CRM JOBNAM,ON READ JOB SEQUENCE NAME
- LDD CM SAVE EJT ORDINAL WITH JSN
- STM JOBNAM+2
- LDN 0 CLEAR BYTE 3
- STM JOBNAM+3
- .NOSV2 ENDIF
- STM JOBNAM+4 CLEAR 4TH BYTE OF JOB NAME
- LDM MFN GET MAIN-FRAME NUMBER
- SHN 3
- RAM JOBNAM+3 ATTACH TO JOB NAME
- *
- * /--- BLOCK REFORMAT 00 000 86/02/07 11.45
- TITLE REFORMAT REQUEST FOR MASTOR.
- *
- * RE-FORMAT REQUEST FOR TRANSMISSION TO *MASTOR*
- *
- LDM JREQ
- ZJP MFORD IF INTERNAL REQUEST
- LDN 3 INITIALIZE INDEX FOR JOB NAME
- STD D.T0 TRANSFER
- *
- MAS210 LDM JOBNAM,D.T0 TRANSFER JOB NAME TO 1ST CM
- STM MREQ,D.T0 WORD OF REQUEST
- SOD D.T0
- PJP MAS210
- LDM JOBORG CHECK IF JOB IS SYSTEM ORIGIN
- ADC -SYOT
- NJP MAS212
- LDN 4
- RAM MREQ+3 SET SYSTEM ORIGIN BIT
- *
- MAS212 LDD CP CHECK IF JOB HAS SSJ= EP
- ADC SEPW
- CRD CM
- LDD CM
- SHN 17-2
- PJN MAS214 IF NO SSJ= ENTRY POINT
- LDN 2 SET SSJ= BIT
- RAM MREQ+3
- MAS214 LDM JREQ LOAD REQUEST TYPE
- LPC 77B CLEAR REPLY BITS
- ZJP MASERR1
- STM MREQ+4
- LDC 5*MS.MDIM-5
- STD D.T0 INITIALIZE INDEX
- *
- MAS220 SOD D.T0 TRANSFER REQUEST PARAMETERS
- MJP MAS230
- LDM JREQ+5,D.T0 TRANSFER NEXT BYTE
- STM MREQ+10,D.T0
- UJP MAS220
- *
- MAS230 LDN 0
- STM MREQ+5 CLEAR *MASTOR* TO *MAS* REQUEST
- STM MREQ+9 AREA
- *
- * /--- BLOCK M PARAMS 00 000 78/01/30 12.58
- TITLE READ POINTERS FROM MASTOR EM.
- *
- * READ EM POINTERS FROM START OF MASTOR(N) EM.
- *
- RJM 0,D.RSV RESERVE DDP (IF USING ONE)
- READEM MASTAB,,,3 READ FIRST 3 WORDS OF EM
- *
- * COMPUTE PP REQUEST TABLE ENTRY FOR THIS PP';
- * M.REQA _ M.REQA + MF ORDINAL + PP ORDINAL*4.
- *
- ERRNZ MS.NMF-4 NEED TO ADJUST PP REQUEST TABLE
- *
- LDK PPCP PTR TO PP COMM AREAS
- CRD CM
- LDD IA PP COMM AREA FOR THIS PP
- SBD CM+4 MINUS FIRST PP COMM AREA
- * DIVIDED BY 8 = PP ORDINAL
- SHN -1 (A) = PP ORDINAL * 4
- ADM MFN PLUS MAINFRAME ORDINAL
- RAM M.REQA+1 PLUS PP REQ TABLE ADDR
- SHN -12D DROP LOWER BYTE OF ADDR
- RAM M.REQA PLUS UPPER BYTE OF ADDR
- * CHECK FOR TABLE INITIALIZED BY MASTOR
- LDN 2
- STD T1
- MAS320 LDM MASTAB,T1 READ FROM EM
- SBM MASNAM,T1 CONSTANT 6LMASTOR
- NJP MASERR2 -- ERROR, DOES NOT MATCH
- SOD T1 DECREMENT BYTE INDEX
- PJP MAS320 -- IF BYTES LEFT TO COMPARE
- TITLE REQUEST A REQUEST AREA FROM MASTOR.
- *
- * REQUEST A REQUEST AREA FROM MASTOR
- *
- MAS350 BSS 0
- RJM 0,D.REL RELEASE DDP (IF USING ONE)
- CALL PAUSE TAKE A BREATH
- RJM 0,D.RSV RESERVE DDP (IF USING ONE)
- READEM PPREQ,M.REQA,,1
- LDM PPREQ READ UPPER BYTE OF WORD
- NJP MAS350 -- WAIT FOR PREV REQ TO END
- LDM PPREQ+3 LOAD UPPER BYTE OF ADDR
- ADM PPREQ+4 PLUS LOWER BYTE OF ADDR
- NJP MAS380 -- ALREADY AN AREA ASSIGNED
- LDK 4000B SIGN BIT, ALONE, INDICATES
- * PP WANTS A REQUEST AREA
- STM PPREQ
- WRITEM PPREQ,M.REQA,,1 POST REQUEST TO MASTOR
- * CLEAR LOW-ORDER BIT OF ',PPREQTAB', NAME TO
- * FLAG NEW REQUEST TO MASTOR. TO AVOID PROBLEMS
- * IN READING/WRITING THIS WORD FROM TWO PROCESSES,
- * MASTOR SETS THE BIT BEFORE SCANNING, MAS CLEARS
- * THE BIT AFTER POSTING THE REQUEST.
- LDM MASTAB+9 READ LOWER BYTE OF TABLE NAME
- SCN 1 CLEAR 2**0 BIT = REQ PENDING
- STM MASTAB+9
- WRITEM MASTAB+5,,1,1 FLAG REQUEST PENDING
- TITLE WAIT FOR MASTOR TO ASSIGN REQUEST AREA.
- MAS360 BSS 0
- LDC 7777B INITIALIZE TIME-OUT COUNTER
- STM MTIM
- MAS370 BSS 0
- RJM 0,D.REL RELEASE DDP (IF USING ONE)
- CALL PAUSE TAKE A BREATH
- * /--- BLOCK M PARAMS 00 000 78/01/30 12.58
- SOM MTIM DECREMENT/TEST DEADMAN TIMER
- MJP MASERR6 -- MASTOR SEEMS TO HAVE DIED
- RJM 0,D.RSV RESERVE DDP (IF USING ONE)
- READEM PPREQ,M.REQA,,1 RE-EXAMINE REQUEST WORD
- LDM PPREQ+3 LOAD UPPER BYTE OF ADDR
- ADM PPREQ+4 PLUS LOWER BYTE OF ADDR
- NJP MAS380 -- MASTOR HAS REPLIED
- LDM PPREQ CHECK REQUEST FLAG
- ZJP MASERR7 -- MASTOR REJECTED THE REQ.
- READEM NCLOCK,,MS.CLK,1 READ RUNNING CLOCK
- LDM OCLOCK READ PREVIOUS VALUE OF CLOCK
- SBM NCLOCK+4 READ LATEST VALUE OF CLOCK
- ZJP MAS370 -- CLOCK HASN'7T TICKED
- LDM NCLOCK+4 READ LATEST VALUE AND
- STM OCLOCK STORE FOR NEXT PASS
- UJP MAS360 -- RESTART TIME-OUT COUNTER
- TITLE POST REQUEST THRU ASSIGNED REQ AREA.
- *
- * POSTED IN 2 PARTS'; THE PPU TRANSFER TO EM IS
- * OFTEN INTERRUPTED BY THE CPU, CAUSING AN IN-
- * COMPLETE REQUEST TO BE PROCESSED. TO AVOID
- * THIS, WE WRITE THE FIRST WORD AFTER THE REST
- * OF THE REQUEST IS SAFELY STORED.)
- *
- MAS380 BSS 0 POST REQUEST TO MASTOR
- WRITEM MREQ+5,REQADD,1,MS.RDIM-1
- WRITEM MREQ,REQADD,,1 INITIATE REQUEST PROCESSING
- * CLEAR LOW-ORDER BIT OF ',PPREQTAB', NAME TO
- * FLAG NEW REQUEST TO MASTOR. TO AVOID PROBLEMS
- * IN READING/WRITING THIS WORD FROM TWO PROCESSES,
- * MASTOR SETS THE BIT BEFORE SCANNING, MAS CLEARS
- * THE BIT AFTER POSTING THE REQUEST. (THE BIT
- * HAS BEEN CLEARED EARLIER IN THIS ROUTINE, JUST
- * WRITE IT TO EM).
- WRITEM MASTAB+5,,1,1 FLAG REQUEST PENDING
- *
- * WAIT FOR REPLY FROM MASTOR
- *
- MAS400 BSS 0
- LDC 7777B INITIALIZE TIME-OUT COUNTER
- STM MTIM
- MAS420 BSS 0
- RJM 0,D.REL RELEASE DDP (IF USING ONE)
- CALL PAUSE TAKE A BREATH
- SOM MTIM DECREMENT/TEST DEADMAN TIMER
- MJP MASERR6 -- MASTOR SEEMS TO HAVE DIED
- RJM 0,D.RSV RESERVE DDP (IF USING ONE)
- READEM MREQ,REQADD,,MS.RDIM RE-EXAMINE REQUEST
- LDM MREQ+4
- ZJP MASERR7 -- MASTOR ZEROED THE REQUEST
- SHN -11D CHECK FOR COMPLETED REQUEST
- NJP MAS600
- LDM MMREQ+4 CHECK FOR REQUEST FROM MASTOR
- ZJN MAS440
- LDM MMREQ CHECK IF REQUEST FROM MASTOR
- ZJP MAS500 HAS ALREADY BEEN COMPLETED
- MAS440 BSS 0
- READEM NCLOCK,,MS.CLK,1 READ RUNNING CLOCK
- LDM OCLOCK READ PREVIOUS VALUE OF CLOCK
- SBM NCLOCK+4 READ LATEST VALUE OF CLOCK
- ZJP MAS420 -- CLOCK HASN'7T TICKED
- * /--- BLOCK M PARAMS 00 000 78/01/30 12.58
- LDM NCLOCK+4 READ LATEST VALUE AND
- STM OCLOCK STORE FOR NEXT PASS
- UJP MAS400 -- RESTART TIME-OUT COUNTER
- TITLE PROCESS MASTOR-TO-MAS REQUEST.
- *
- * PROCESS *MASTOR* TO *MAS* REQUEST
- *
- MAS500 BSS 0
- LDM MMREQ+4 MASTOR-TO-MAS REQUEST CODE
- STD T1 STORE FOR USE AS INDEX
- SBK MREQL CHECK FOR VALIDITY
- PJP MAS595 -- INVALID REQUEST CODE
- LDM MREQT,T1 PROCESSING ROUTINE FOR CODE
- STD T1 STORE FOR INDEXED JUMP
- LJM 0,T1
- *
- *
- MREQT CON MAS595 0 - ERROR
- CON MAS510 1 - SET RAX/FLX
- CON MAS520 2 - SET CPU/QUEUE PRIORITY
- CON MAS530 3 - IDENTIFY LOGIC
- CON MAS540 4 - SET MAINFRAME CLOCK
- MREQL EQU *-MREQT
- *
- * RETURN REPLY CODE TO MASTOR TO SHOW COMPLETION
- *
- MAS590 LDC 4000B REQUEST COMPLETED OK
- UJN MMRET -- RESPOND TO MASTOR'7S REQ
- *
- MAS599 LDK ZERL
- CRD CM
- LDK PPET
- STD CM+1 SET ERROR FLAG = PP ABORT
- MONITOR CEFM CHANGE ERROR FLAG
- CALL DFM,(=10CMAS ABORT)
- MAS595 LDC 4001B REPORT ERROR (FATAL OR NOT)
- * BACK TO MASTOR
- MMRET BSS 0
- STM MMREQ ENTER WITH CODE IN (A)
- WRITEM MMREQ,REQADD,1,1
- UJP MAS400 -- WAIT FOR NEXT COMMAND
- *
- *
- * /--- BLOCK REQUEST 1 00 000 87/02/24 14.08
- TITLE -MAS- PROCESS RAX/FLX REQUEST
- *
- * PROCESS REQUEST TO SET RAX / FLX OF CALLING JOB
- *
- *
- * WAIT TO INSURE CALLING JOB IN RECALL
- *
- MAS510 LDC 2000D TWO THOUSANDS LOOPS
- STM II
- *
- MAS511 DELAY 1000D ONE MILLISECOND DELAY
- SOM II END TEST
- MJP MAS599
- LOADCM STATSW READ CONTROL POINT STATUS WORD
- CRD D.T0
- LDD D.T0+C.CPSTAT LOAD CPU STATUS
- *
- .NOSV2 IFLT OSLEV,562D NOS V1
- LPC 3000B MASK OFF AUTO-RECALL BIT
- ZJN MAS511 IF NOT IN AUTO-RECALL
- .NOSV2 ELSE NOS V2
- SHN -11B CHECK CPU STATUS
- LMN 6 6 = AUTO RECALL
- NJN MAS511 IF NOT IN AUTO-RECALL
- .NOSV2 ENDIF
- *
- * SET RAX AND FLX TO INDICATED VALUES
- *
- .NOS252 IFGE OSLEV,678D
- LDD EX
- NJN MAS513 IF EXTENDED ADDRESSING MODE
- .NOS252 ELSE
- LDD EM
- NJN MAS513 IF ESM MODE
- .NOS252 ENDIF
- LDM MRAX+1
- SHN 6
- ADM MRAX
- SHN 3
- UJN MAS514
- MAS513 LDM MRAX
- MAS514 STD T1
- LDN 2 SET NUMBER OF WDS TO READ/WRITE
- STM D.T0
- LDD CP ADDRESS OF CONTROL POINT AREA
- ADN 4 BIAS TO RAX/FLX WORDS
- CRM BUFF,D.T0
- LDM MMREQ+3 CONVERT RAX
- ADD T1
- RJM CEP CONVERT TO EXCHANGE PACKAGE
- LDD T1
- STM BUFF SET UPPER RAX
- LDD T2
- STM BUFF+1 SET LOWER RAX
- LDM MMREQ+2 CONVERT FLX
- RJM CEP
- LDD T1
- STM BUFF+5 SET UPPER FLX
- LDD T2
- STM BUFF+6 SET LOWER FLX
- * /--- BLOCK REQUEST 1 00 000 87/02/24 14.02
- *
- * CONTROL POINTS ARE VALIDATED TO USE FLAG REGISTER
- * OPERATIONS IF THE HIGH-ORDER BIT OF *FLE* IS SET.
- * (*FLE* IS THE 'E'M FIELD LENGTH HARDWARE REGISTER.)
- * THIS BIT IS NOT INCLUDED IN 'E'M BOUNDS CHECKS, EVEN
- * IN THE 800 SERIES MACHINES, WHICH DO NOT HAVE A
- * FLAG REGISTER OR EXTERNAL EXTENDED MEMORY.
- *
- * UNFORTUNATELY, FOR REASONS UNKNOWN, THIS IS NOT
- * THE CASE FOR THE 'S3 (845/855). THE BIT IS IN-
- * CLUDED IN 'E'M BOUNDS CHECKS. THIS MEANS THAT FLAG-
- * VALIDATED CONTROL POINTS HAVE VIRTUALLY LIMITLESS
- * 'E'M FIELD LENGTHS. WHEN AN ACCESS EXCEEDS THE
- * PHYSICAL BOUNDS, HOWEVER, IT IS TREATED AS A ',PAGE
- * FAULT', ON THE 180 SIDE OF THE MICROCODE. THIS
- * RESULTS IN A ',HARDWARE MALFUNCTION',, WHICH HANGS
- * THE CONTROL POINT. SEE THE 'CYBER 800 'M'I'G'D'S FOR
- * MORE INFO.
- *
- * WE AVOID THE PROBLEM BY NOT SETTING THE BIT ON
- * 800 SERIES MAINFRAMES. WE CAN DO THIS BECAUSE
- * THEY HAVE NO FLAG REGISTER OPERATIONS ANYWAY.
- *
- LDD D.A170 CHECK FOR 800 SERIES MAINFRAME
- NJN MAS518 -- BRANCH IF 800 SERIES
- LDM MMREQ+1
- LPN 4 SET IF AUTHORIZED FOR FLAG OPS
- SHN 9 MOVE TO HIGH-ORDER BIT
- RAM BUFF+5 MERGE INTO UPPER HALF OF *FLE*
- MAS518 BSS 0
- LDD CP ADDRESS OF CONTROL POINT AREA
- ADN 4 BIAS TO RAX/FLX WORDS
- CWM BUFF,D.T0 REWRITE EXCHANGE PACKAGE
- .NOS22 IFGE OSLEV,594D NOS 2.2
- LDD CP SET PRESERVE FLX BIT IN JCIW
- ADK JCIW
- CRD CM READ WORD JCIW
- * /--- BLOCK REQUEST 1 00 000 84/03/08 20.53
- LDD CM+3 SET BIT 22
- LPC 5777B
- LMC 2000B
- STD CM+3
- LDD CP WRITE BACK TO JCIW
- ADK JCIW
- CWD CM
- .NOS22 ENDIF
- UJP MAS590 EXIT
- *
- *
- * /--- BLOCK REQUEST 2 00 000 84/11/14 11.03
- TITLE -MAS- PROCESS CPU/QUEUE PRIORITY REQ
- *
- *
- *
- * PROCESS REQUEST TO SET CPU PRIORITY AND SUBSYSTEM
- * IDENTIFIER (QUEUE PRIORITY).
- *
- MAS520 LDN ZERL PRE-CLEAR ARGUMENT AREA
- CRD CM
- LDM MMREQ+3 LOAD REQUESTED CPU PRIORITY
- LPC 77B
- .NOSV2 IFLT OSLEV,562D NOS V1
- STD CM+1
- ZJP MAS595 ERROR IF ZERO PRIORITY
- ADC -77B
- PJP MAS595 ERROR IF PRIORITY TOO HIGH
- MONITOR RPRM
- LDM MMREQ+2 LOAD REQUESTED QUEUE PRIORITY
- STD CM+1
- ZJP MAS595 ERROR IF ZERO PRIORITY
- ADC -LSSS
- PJP MAS595 ERROR IF PRIORITY TOO HIGH
- LDN 1 1 = SET QUEUE PRIORITY
- STD CM+2
- MONITOR RPRM
- .NOSV2 ELSE NOS V2
- STD CM+4
- ZJP MAS595 IF ZERO PRIORITY
- LDN /CPS/CPRS SET CPU PRIORITY FUNCTION CODE
- STD CM+1
- MONITOR SJCM
- LDM MMREQ+2 LOAD REQUESTED SUBSYSTEM ID
- STD CM+4
- ZJP MAS595 IF ZERO PRIORITY
- * ADC -LSSI
- * PJP MAS595 IF PRIORITY TOO HIGH
- LDN /CPS/SSIS SET SUBSYSTEM ID FUNCTION CODE
- STD CM+1
- MONITOR SJCM
- .NOS27 IFGE OSLEV,716D NOS 2.7.1
- * CLEAR THE SDM= ENTRY POINT. THIS IS NEEDED SO
- * PLATO SUBSYSTEM CONTROL POINT MESSAGES CAN BE
- * VIEWED IN LESSONS LIKE *CONSOLE*.
- LDD CP GET ORIGINAL CONTENTS OF
- ADK SEPW SPECIAL ENTRY POINT WORD
- CRD CM
- LDD CM PORTION WITH SDM= ENTRY POINT
- SCN 10B CLEAR SDM=
- STD CM
- LDD CP WRITE NEW VALUE BACK TO SEPW
- ADK SEPW
- CWD CM
- .NOS27 ENDIF
- .NOSV2 ENDIF
- UJP MAS590 EXIT
- *
- *
- * /--- BLOCK REQUEST 3 00 000 84/11/14 11.03
- TITLE -MAS- PROCESS IDENTIFY LOGIC REQUEST
- *
- *
- *
- * PROCESS IDENTIFY LOGIC REQUEST - SET FIRST FOUR
- * CHARACTERS OF JOB NAME TO SPECIFIED VALUE
- *
- MAS530 BSS 0
- LDC MMREQ+2 ADDR OF NEW JOB NAME
- CALL MAS535 CHECK LEGALITY OF NEW NAME
- LDC MMREQ+2 CHANGE JOB NAME
- RJM CJN
- * NEED FOLLOWING BECAUSE WE MAY HAVE PAUSED IN *CJN*
- LDD D.PPWD RE-PLANT ABSOLUTE ADDRESSES
- SHN 12
- ADD D.PPWD+1
- RJM ABS CONVERT TO ABSOLUTE
- PLANT CM,PPUWD
- LDD CP SET SSJ= TO USE ACCOUNT FILE
- ADC SEPW
- CRD D.T0
- LDD D.T0
- SCN 4 CLEAR BIT 50 (SSJ=) IF SET
- LMN 4 SET BIT 50 (SSJ= FLAG)
- STD D.T0
- LDD CP
- ADC SEPW
- CWD D.T0
- UJP MAS590
- *
- *
- * -MAS535-
- * CHECKS JOB NAME CHARACTERS LEGAL
- MAS535.1 BSS 0
- SBK (1R+-1R0) RANGE = NUMERIC
- MJN MAS535X -- EXIT IF NUMERIC
- SBK (1R -1R+) CHECK FOR SPACE
- ZJN MAS535X -- YES, EXIT OK
- TO595 UJP MAS595 -- ERROR IF NOT
- MAS535 SUBR
- STD T1 STORE ADDR OF JOB NAME
- LDI T1 LOAD FIRST TWO CHARS
- SHN -6 RETAIN ONLY FIRST CHAR
- SBK 1R0 RANGE = ALPHA
- PJP TO595 -- NO, ERROR
- LDI T1 RELOAD FIRST TWO CHARS
- LPN 77B RETAIN ONLY SECOND CHAR
- SBK 1R0 RANGE = ALPHA
- PJP TO595 -- NO, ERROR
- AOD T1 INCR ADDR TO NEXT 2 CHARS
- LDI T1 LOAD NEXT 2 CHARS
- SHN -6 RETAIN ONLY THIRD CHAR
- SBK 1R0 RANGE = ALPHA
- PJP TO595 -- NO, ERROR
- LDI T1 RELOAD CHARS 3-4
- LPN 77B RETAIN ONLY FOURTH CHAR
- SBK 1R0 RANGE = ALPHA INVALID
- .NOSV2 IFGE OSLEV,562D (NOS VERSION 2)
- PJP MAS535.1 -- OK IF NOT ALPHA
- UJP TO595 -- ELSE, ERROR
- .NOSV2 ELSE (NOS VERSION 1)
- UJP MAS535.1 -- ALPHAS ARE OK TOO
- .NOSV2 ENDIF
- *CALL PLAPCJN
- IRA$ SET 1 DEFINE INITIALIZATION
- REL$ SET 1
- BASE M
- *CALL COMPCRA
- BASE *
- IFP$ EQU 1
- EJT$ EQU 1 ASSEMBLE ROUTINE .CEA
- *CALL COMPGFP
- IFP HERE
- *
- *
- * /--- BLOCK REQUEST 4 00 000 78/04/19 02.59
- TITLE PROCESS SET CLOCKS REQUEST
- *
- * PROCESS REQUEST TO SET CLOCKS ON THIS MIAN-FRAME
- * TO CLOCKS ON MAIN-FRAME = 0
- *
- MAS540 LDM MMREQ+5+5+2 GET YR/MONTH
- STD T1
- LPN 77B MASK MONTH
- STD T2 AND SAVE
- LDD T1
- SHN -6 POSITION YEAR
- LPN 3 CHECK FOR LEAP YEAR
- NJN MAS542
- AOM MNTHS+2 FIX FEBRUARY ENTRY
- MAS542 LDN ZERL SET UP MTR FUNCTION
- CRD CM
- CRD D.T0 CLEAR FOR DAY LIMIT
- AOM MNTHS,T2 GET LIMIT (= DAYS IN MONTH + 1)
- STD D.T0
- LDN 4
- STD T3
- LDD MA WRITE VALUES TO MESSAGE AREA
- ADN 1
- STD CM+2
- CWM MMREQ+5,T3 WRITE CLOCKS
- CWD D.T0 AND DAY LIMIT
- LDN 2
- STD CM+1 SET TIME/DATE
- MONITOR DSRM
- UJP MAS590
- MNTHS EQU *-1
- LOC 0
- DATA 31
- DATA 28
- DATA 31
- DATA 30
- DATA 31
- DATA 30
- DATA 31
- DATA 31
- DATA 30
- DATA 31
- DATA 30
- DATA 31
- LOC *O
- * /--- BLOCK END REQ 00 000 86/02/07 11.47
- TITLE -MAS- END REQUEST - RETURN STATUS
- *
- *
- *
- * END OF REQUEST - RETURN STATUS TO CALLING JOB
- *
- MAS600 LDM MREQ+4 LOAD REPLY CODE
- SHN -6
- LPC 37B MASK OFF 5 BIT REPLY CODE
- ADC 4000B SET UPPER BIT OF REPLY BYTE
- STM JREQ+3
- LDN 0
- STM JREQ+4 INSURE COMPLETION BIT CLEAR
- *
- * WRITE REPLY STATUS TO CALLING JOB
- *
- LDN MS.MDIM-1
- STD D.T0 SET NUMBER OF WORDS TO WRITE
- LOADCM PPUWD COMPUTE CM ADDRESS
- ADN 1
- CWM MREQ+10,D.T0 WRITE REPLY PARAMETERS
- LOADCM PPUWD
- CWM JREQ,ON WRITE REPLY STATUS
- LDM MREQ+4 CHECK FOR JOB ABORT RETURN
- SHN -6
- SBN 77B
- ZJN MAS610 IF *MASTOR NOT ACTIVE* ERROR
- ADN 77B
- SHN 17-4
- PJN MAS610 IF SYSTEM ABORT NOT SELECTED
- LDN SYET
- STD CM+1
- MONITOR CEFM
- MAS610 LJM DROP
- * /--- BLOCK MFORD 00 000 86/02/07 11.47
- MFORD TITLE -MAS- RETURN *MFORD*
- *** MFORD - RETURN VALUE OF *MFORD* CONFIG PARAMETER
- *
- * ENTRY (MFN) = VALUE OF *MFORD* CONFIG SYMBOL.
- *
- * EXIT (MREQ+4) = REPLY CODE = 0 = ALL OK.
- * (MREQ+9) = VALUE OF *MFORD* CONFIG SYMBOL.
- *
- * MACROS PLANT.
- *
- * CALLS ABS.
- *
- MFORD BSS 0
- LDN ZERL (A) = LOCATION OF ZERO WORD
- CRM MREQ+5,ON CLEAR RETURN WORD
- LDM MFN (A) = MAINFRAME ORDINAL
- STM MREQ+9
- LDN 0 (A) = REQUEST COMPLETED OKAY
- STM MREQ+4 SET REPLY CODE
- UJP MAS600 EXIT
- *
- *
- * /--- BLOCK CDJ 00 000 86/02/07 11.48
- CDJ TITLE -MAS- CHECK DEFERRED BATCH JOBS.
- *** CDJ - CHECK DEFERRED BATCH JOBS.
- *
- * ENTRY (JREQ - JREQ+4) = 12/0, 12/MA.CDJ, 36/0
- * (JREQ+5 - JREQ+9) = 60/FAMILY NAME
- * (JREQ+10 - JREQ+14) = 60/USER INDEX
- * (JREQ+15 - JREQ+19) = 60/AHMT
- *
- * EXIT REPLY CODE = 0 = ALL OK
- * = 1 = TOO MANY DEFERRED JOBS
- *
- .V2 IFGE OSLEV,562D
- CDJ LDD MA (A) = MESSAGE BUFFER ADDRESS
- CWM JREQ+5,ON (MB) = FAMILY NAME
- SBN 1 RESET ADDR TO (MA)
- CRD FN (FN - FN+4) = FAMILY NAME
- RJM GFO GET FAMILY ORDINAL
- ZJN CDJ1 --- IF FAMILY NAME FOUND
- LDN 0 RETURN ERROR CONDITION
- UJN CDJ2 --- SET ERROR FLAG AND LEAVE
- .V2 ELSE
- CDJ BSS 0
- .V2 ENDIF
- CDJ1 RJM CDV CHECK DEFERRED BATCH VALIDATION
- CDJ2 ADN 1 OFFSET REPLY BY 1
- SHN 6
- STM MREQ+4 SET REPLY CODE
- LDD D.PPWD RELATIVE ADDR UPPER
- SHN 12
- ADD D.PPWD+1 ADD LOWER
- RJM ABS CONVERT TO ABSOLUTE
- ZJP MASERR1 IF BAD ADDRESS
- PLANT CM,PPUWD
- LJM MAS600 EXIT
- * /--- BLOCK CDV 00 000 86/02/07 11.49
- CDV TITLE -MAS- CHECK DEFERRED BATCH VALIDATION.
- *** CDV - CHECK DEFERRED BATCH VALIDATION.
- *
- * ENTRY (FN+4) = FAMILY ORDINAL
- * (JREQ+10 - JREQ+14) = 42/, 18/UI
- * (JREQ+15 - JREQ+19) = AHMT
- *
- * EXIT (A) = -1 VALIDATION IS OK
- * = 0 IF LIMIT EXCEEDED
- *
- * USES T1 - T5, T6 - T6+4, CM - CM+4, SC.
- *
- * CALLS CDB, DBI, GBN.
- *
- CDVR LDN 0 DEFERRED BATCH LIMIT EXCEEDED.
- CDV SUBR ENTRY/EXIT
- * GET DEFERRED BATCH JOB LIMIT.
- LDM JREQ+15+1 (A) = (5*AHMT+1)
- RJM DBI PASS IT THE WHOLE 12 BITS
- MJP CDV8 IF UNLIMITED
- ZJN CDVX IF DEFERRED BATCH NOT ALLOWED
- STD SC SAVE JOB COUNT
- SOD SC DECREMENT JOB COUNT
- .NOSV2 IFGE OSLEV,562D NOS V2
- LDD FN+4 (A) = FAMILY ORDINAL
- LPN 77B LIMIT TO 6 BITS
- SHN 6
- STD T2 (T2) = 6/FO, 6/0
- LDM JREQ+13 (A) = UPPER HALF OF UI
- LPN 37B
- RAD T2 (T2) = 6/FO, 6/TOP OF UI
- LDM JREQ+14 (A) = BOTTOM OF UI
- STD T3 (T2 - T3) = 6/FO, 18/UI
- RJM CDB (T4) = NO. DEFERRED BATCH JOBS
- LDD T6 RESTORE (T3)
- STD T3
- LDD SC (A) = DEFERRED BATCH LIMIT
- SBD T4 SUBTRACT NUMBER FOUND
- PJN CDV8 IF LIMIT NOT REACHED
- LJM CDVR LIMIT REACHED
- .NOSV2 ELSE NOS V1
- LDM JREQ+13 (A) = TOP OF UI
- STD T1
- LDM JREQ+14 (A) = BOTTOM OF UI
- STD T2
- RJM GBN GENERATE BANNER NAME
- * SCAN CONTROL POINT AREA FOR JOBS WITH SAME HASH NAME.
- LDN NCPL GET NUMBER OF CONTROL POINTS
- CRD CM
- AOD CM+3
- STD T7
- CDV4 SOD T7 COUNT JOBS IN CONTROL POINTS
- * /--- BLOCK CDV 00 000 86/02/07 11.50
- ZJN CDV5 IF END OF CONTROL POINTS
- LDD T7
- SHN 7
- ADN JNMW READ JOB NAME
- CRD CM
- LDD CM+3
- LPN 77B
- STD T4
- LDM TOT,T4
- ZJN CDV4 IF NOT VALID ORIGIN TYPE
- LDD CM
- LMD T1
- NJN CDV4 IF NOT THIS USER
- LDD CM+1
- LMD T2
- NJN CDV4 IF NOT THIS USER
- SOD SC DECREMENT JOB COUNT
- PJN CDV4 IF LIMIT NOT REACHED
- LJM CDVR ERROR
- * SCAN FNT FOR JOBS WITH SAME HASH NAME.
- CDV5 LDN FNTP NUMBER OF ENTRIES IN FNT
- CRD T6
- CDV6 LCN 2
- RAD T7
- CALL AQA ADD QFNT FWA IF INITIALIZED
- CRD CM
- LDD T7
- LMD T6
- ZJN CDV7 IF END OF FNT
- LDD CM
- ZJN CDV6 IF EMPTY ENTRY
- LMD T1
- NJN CDV6 IF NOT THIS USER
- LDD CM+1
- LMD T2
- NJN CDV6 IF NOT THIS USER
- LDD CM+4
- ADC -QUFT*100
- PJN CDV6 IF NOT QUEUED FILE
- LDD CM+3
- LPN 77B
- STD T4
- LDM TOT,T4
- ZJN CDV6 IF NOT LEGAL ORIGIN TYPE
- SOD SC DECREMENT JOB COUNT
- PJN CDV6 IF LIMIT NOT REACHED
- LJM CDVR ERROR
- CDV7 BSS 0
- LDD D.COM
- ZJN CDV8 IF NOT A COMSOURCE NOS SYSTEM
- LDN 0
- CALL AQA ADD QFNT FWA IF INITIALIZED
- NJN CDV8 IF QFNT ALREADY SEARCHED
- CALL IQA INITIALIZE QFNT ADDRESSES
- LDD CM+2 SET QFNT LENGTH
- STD T7
- LDN 0 SET RELATIVE FWA OF QFNT
- STD T6
- LJM CDV6
- .NOSV2 ENDIF
- CDV8 LCN 1 DEFERRED BATCH JOB COUNT IS OK
- LJM CDVX
- * /--- BLOCK TOT 00 000 82/10/26 12.40
- SPACE 5,11
- * TOT - TABLE OF ORIGIN TYPES.
- .NOSV2 IFLT OSLEV,562D
- TOT INDEX
- INDEX SYOT,1
- INDEX BCOT,1
- INDEX EIOT,1
- INDEX MXOT
- .NOSV2 ENDIF
- SPACE 4
- * COMMON DECKS
- DBI$ EQU 1
- BASE M
- *CALL COMPCDB
- *CALL COMPCVI
- *CALL COMPGBN
- AQA$ EQU 1 ASSEMBLE ADD QFNT ADDRESS
- QUAL$ SET 1 NO AUTO-QUALIFY FOR COMMON DECKS
- *CALL COMPQFP
- GFO$ EQU 1 ASSEMBLE GET FAMILY ORDINAL
- DFF$ EQU 1 DO NOT ADD FAMILY IF NOT FOUND
- *CALL COMPUFT UPDATE FAMILY ORDINAL TABLE
- BASE *
- * /--- BLOCK VUN 00 000 86/02/07 11.50
- VUN TITLE VALIDATE USER NUMBER
- *** VUN - VALIDATE USER NUMBER
- *
- * ENTRY (JREQ+5 - JREQ+9) = 42/USER 18/INDEX
- *
- * EXIT USER NUMBER/INDEX IS SET IN NEGATIVE FL
- *
- * CALLS NONE.
- * MACROS NFA.
- *
- VUN LDD CP CHECK VAL= VALIDATION
- ADC SEPW
- CRD CM
- LDD CM CHECK VAL=
- SHN 17-1
- MJN VUN1
- LDD CM CHECK SSJ=
- SHN 17-2
- MJN VUN1
- LJM MASERR1 NOT VAL= OR SSJ=
- VUN1 NFA SSJN+UIDS SET VALIDATION WORD
- CWM JREQ+5,ON
- * SET UP *MREQ* TO RESTORE PARAMETERS IN
- * THE CALLING JOB.
- LDK MS.MDIM-1
- STD D.T0
- LOADCM PPUWD
- ADN 1
- CRM MREQ+10,D.T0
- LJM MAS600
- * /--- BLOCK ERR EXITS 00 000 78/03/02 16.57
- TITLE ERROR EXIT ROUTINES
- *
- *
- *
- * FATAL ERROR EXIT ROUTINES
- *
- MASERR1 CALL DFM,ERRMSG1
- UJP MASERRX
- ERRMSG1 DATA C*("PPU.MAS") IMPROPER REQUEST*
- *
- MASERR2 LDD IR+2
- LPN 1
- ZJN MASER2A IF NOT *NO ABORT*
- CALL MESSAG,ERRMSG2
- LJM MASER99
- MASER2A CALL DFM,ERRMSG2
- UJP MASER99
- ERRMSG2 DATA C*("PPU.MAS") MASTOR NOT ACTIVE*
- *
- MASERR3 CALL DFM,ERRMSG3
- UJP MASERRX
- ERRMSG3 DATA C*("PPU.MAS") DDP NOT AVAILABLE*
- *
- MASERR4 UJP MASERRX MESSAGE ALREADY WRITTEN
- *
- MASERR6 CALL DFM,ERRMSG6
- UJP MASERRX
- ERRMSG6 DATA C*("PPU.MAS") MASTOR TIMEOUT*
- *
- MASERR7 CALL DFM,ERRMSG7
- UJP MASER99
- ERRMSG7 DATA C*("PPU.MAS") MASTOR REQUEST = 0*
- * SET *MAS ERROR IN REQUEST.
- MASER99 LDC 7700B
- STM MREQ+4
- * TEST IF NO ABORT SPECIFIED IN THE REQUEST.
- LDD IR+2
- LPN 1
- NJP MAS600 IF NO ABORT SPECIFIED
- *
- *
- * SET CONTROL POINT ERROR FLAG
- *
- MASERRX LDC 4001B MARK ERROR OCCURRED
- STD D.T0+3
- LDN 1
- STD D.T0+4 SET COMPLETION BIT
- LOADCM PPUWD
- ZJP MX100 CHECK IF ADDRESS PLANTED
- CWD D.T0 WRITE COMPLETION BIT
- *
- MX100 LDC ZERL PRE-CLEAR ARGUMENTS
- CRD CM
- LDN PPET
- STD CM+1 SET ERROR FLAG = PPU ABORT
- MONITOR CEFM
- UJP DROP
- *
- *
- * /--- BLOCK DROP PPU 00 000 84/11/14 10.58
- TITLE -MAS- DROP PPU
- *
- *
- * SET COMPLETION BIT IN PPU STATUS WORD
- *
- DROP LOADCM PPUWD ADDRESS OF STATUS WORD
- ZJN DROP110 IF STATUS WORD ILLEGAL
- CRD CM READ STATUS WORD
- LDN 1
- STD CM+4 SET COMPLETION BIT
- LOADCM PPUWD
- CWD CM RE-WRITE STATUS WORD
- *
- * RELEASE TABLE/EQUIPMENT RESERVATIONS AND DROP PPU
- *
- *
- * RELEASE REQUEST AREA
- *
- DROP110 BSS 0
- LDD D.RE CHECK IF EM ROUTINES LOADED
- ZJP DROP300 -- SIMPLY EXIT IF NOT LOADED
- LDM M.REQA
- ADM M.REQA+1 CHECK IF REQUEST ADDRESS SET
- ZJP DROP200 -- DROP RESERVATIONS AND EXIT
- READEM PPREQ,M.REQA,,1 EXAMINE PP REQUEST WORD
- LDM REQADD LOAD UPPER BYTE OF ADDR
- ADM REQADD+1 PLUS LOWER BYTE OF ADDR
- ZJP DROP200 -- NO REQUEST AREA ASSIGNED
- LDM PPREQ READ PP REQUEST FLAG
- NJP DROP200 -- ALREADY FLAGGED FOR RELEASE
- LDC 4000B SET FLAG FOR DELETION
- STM PPREQ
- WRITEM PPREQ,M.REQA,,1 POST RELEASE REQUEST
- WRITEM MASTAB+5,,1,1 GET MASTOR'7S ATTENTION
- DROP200 BSS 0
- RJM 0,D.REL RELEASE DDP/INTERLOCK
- DROP300 BSS 0
- MONITOR DPPM DROP PPU
- UJP PPR
- *
- *
- * /--- BLOCK -PAUSE- 00 000 73/06/01 14.24
- TITLE -PAUSE- CHECK FOR STORAGE MOVE
- *
- *
- *
- * -PAUSE-
- * CHECK FOR STORAGE MOVE OR CONTROL POINT ERROR
- *
- *
- PAUSE SUBR
- LOADCM STATSW GET ADDRESS OF CP STATUS WORD
- CRD D.T0
- LDD D.T0+C.CPEF ERROR FLAG
- NJP DROP110 CPU IS DEAD, GO DROP PPU
- CALL PAUS1 CHECK FOR STORAGE MOVE
- UJN PAUSEX
- *
- *
- *
- * -PAUS1-
- * CHECK FOR IMPENDING STORAGE MOVE
- *
- *
- PAUS1 SUBR
- LDC CMCL
- CRD CM READ MEMORY CONTROL WORD
- LDD CP
- .NOS27 IFGE OSLEV,716D NOS 2.7.1
- SHN -7
- .NOS27 ENDIF
- LMD CM CHECK IF THIS CONTROL POINT
- NJN PAUS1X
- PAUSE ST
- LDD D.PPWD UPPER PART OF RELATIVE ADDRESS
- SHN 12
- ADD D.PPWD+1 ATTACH LOWER PART
- RJM ABS CONVERT TO ABSOLUTE
- ZJP MASERR1
- PLANT CM,PPUWD
- LJM PAUS1X
- *
- *
- TITLE -MESSAG- OUTPUT B-DISPLAY MESSAGE
- *
- *
- *
- * -MESSAG- OUTPUTS B-DISPLAY MESSAGE
- * ON ENTRY - A = ADDRESS OF MESSAGE
- *
- * DESTROYS NO VARIABLES
- *
- *
- MESSAG SUBR
- STM MSG10+1 PLANT PPU ADDRESS OF MESSAGE
- LDD D.T0
- STM MSG20 PRESERVE *D.T0*
- LDN 5
- STD D.T0 SET LENGTH OF MESSAGE
- LDD CP LOAD CONTROL POINT AREA ADDRESS
- ADC MS1W ADD BIAS TO MESSAGE AREA
- *
- MSG10 CWM **,D.T0 WRITE MESSAGE TO CP AREA
- LDM MSG20
- STD D.T0 RESTORE *D.T0*
- UJN MESSAGX
- *
- MSG20 BSS 1
- *
- *
- * /--- BLOCK CEP 00 000 87/02/24 14.10
- CEP TITLE CONVERT RAX/FLX
- ** CEP - CONVERT RAX/FLX TO EXCHANGE PACKAGE VALUE
- *
- * ENTRY - (A) - RAX/FLX IN ALLOCATABLE UNIT
- *
- * EXIT - (T1 - T2) - EXCHANGE PACKAGE VALUE
- CEP SUBR
- STD T1
- .NOS252 IFGE OSLEV,678D
- LDD EX
- NJN CEP1 IF EXTENDED ADDRESSING MODE
- .NOS252 ELSE
- LDD EM
- NJN CEP1 IF ESM MODE
- .NOS252 ENDIF
- * PROCESS STANDARD ADDRESSING
- LDD T1
- LPN 7
- SHN 9
- STD T2
- LDD T1
- SHN -3
- STD T1
- UJN CEPX
- * PROCESS EXTENDED ADDRESSING
- CEP1 LDD T1
- SHN 6
- STD T2
- SHN -12
- STD T1
- UJN CEPX
- * /--- BLOCK STORAGE 00 000 87/02/17 11.32
- TITLE STORAGE DEFINITIONS
- *CALL COMPDV5
- *
- *CALL PLAPABS
- *CALL PLAPDNM
- *CALL PLAPEQN
- *CALL PLAPPLN
- *CALL PLAPVEP
- *
- *
- * (C=DDP) = CHANNEL OF DDP.
- * = -1 IF NO DDP.
- *
- C=DDP1 DATA -1 NO DDP INITIALLY
- .NOS252 IFGE OSLEV,678D
- BSS 1 SECONDARY ACCESS CHANNEL
- .NOS252 ENDIF
- *
- *
- JOBNAM BSS 5 CALLING JOB NAME
- MASNAM DIS ,*MASTOR* *MASTOR* NAME
- MFN DATA 0
- JOBORG BSS 1 JOB ORIGIN CODE
- MASCPA BSS 1 FWA OF MASTOR-S CP AREA
- *
- PPUWD TABLE CM CPU/PPU COMMUNICATION ADDRESS
- STATSW TABLE CM CPU STATUS WORD
- *
- JREQ BSSZ 5*MS.MDIM JOB TO *MAS* REQUEST
- MREQ BSSZ 5*MS.RDIM *MAS* TO *MASTOR* REQUEST
- MMREQ EQU MREQ+5 *MASTOR* TO *MAS* REQUEST
- *
- MASTAB BSSZ 3*5 *MASTOR* POINTER TABLE
- M.REQA EQU MASTAB+11 POINTER TO REQUEST AREA TABLE
- *
- PPREQ BSSZ 5 PP REQUEST WORD
- REQADD EQU PPREQ+3 ADDR OF REQUEST AREA ASSIGNED
- *
- * THE FOLLOWING 15 WORDS ARE READ FROM CM AND
- * MUST BE CONTIGUOUS.
- CHKS BSS 5 CHECKSUM OF PARAMETERS
- ECSP BSS 1 START OF ECS POINTERS
- MRAX BSS 2 *MASTOR* RAX
- MFLX BSS 2 *MASTOR* FLX
- PNW BSS 5 PROGRAM NAME WORD
- *
- RDDP BSSZ 1 DDP RESERVED FLAG
- RREQ BSSZ 1 REQUEST TABLE RESERVED FLAG
- *
- MTIM DATA 0 TIMER
- NCLOCK BSSZ 5 NEW COPY OF MASTOR CLOCK
- OCLOCK BSSZ 5 PREVIOUS COPY OF MASTOR CLOCK
- *
- II BSS 1
- *
- KZERO BSSZ 5
- *
- * /--- BLOCK EM PROCS 00 000 86/02/07 13.02
- TITLE EM PROCS
- EMSTRT EQU * START OF EM HANDLING PROCEDURES
- PPNAM MICRO 1,3,*MAS* PPU NAME FOR DAYFILE MESSAGES
- LIST X
- *CALL EMPROCS
- LIST *
- BUFF EQU EMSTRT+EMPRLNG START OF EXTRA BUFFER
- ERRNG 7776B-BUFF - 0AV BUFFER LENGTH OVERFLOW
- * DEFINITIONS FOR *CPW* (COMMON DECK PLAPCPW).
- PWRD EQU JREQ+15 START OF PASSWORD (5 WORDS)
- AVLA EQU BUFF *0AV* LOAD ADDRESS
- END
plato/source/plaopl/mas.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator