Action unknown: copypageplugin__copy
plato:source:plaopl:mrq
Table of Contents
MRQ
Table Of Contents
- [00010] -MRQ- PLATO/MASTOR REQUEST PROCESSOR
- [00013] MASTOR REQUEST PROCESSOR.
- [00017] QUALS - ESTABLISH ALPHABETIC ORDER.
- [00074] MASTOR-TO-MRQ REQUEST FORMATS
- [00182] COMMON SYMBOL/MACRO DEFINITIONS.
- [00227] MACRO DEFINITIONS
- [00272] FIELD - EXTRACT SPECIFIED FIELD.
- [00326] DIRECT CELL DEFINITIONS
- [00362] MAIN PROGRAM
- [00452] MRQR100 - PROCESS PENDING MASTOR REQUESTS.
- [00520] MRQRTAB - REQUEST/PROCESSOR TABLE.
- [00569] EXITS FROM REQUEST PROCESSING
- [00624] ERROR EXITS / DROP PPU
- [00674] PROCESS REQUESTS (UCPJ, UJOB, SYNC, MCS)
- [00785] CLOCKER - UPDATE RUNNING MILLISEC CLOCKS.
- [00786] CLOCKER - UPDATE JOB CLOCKS.
- [01071] FCP - FIND HIGHEST PR CP IN *W* STATE.
- [01072] FCP - FIND HIGHEST JOB IN *W* STATUS.
- [01135] PAUSE - PAUSE FOR STORAGE MOVE.
- [01136] PAUSE - PAUSE FOR STORAGE RELOCATION
- [01238] PSM - PAUSE FOR STORAGE MOVE.
- [01270] PSM1 - PAUSE FOR STORAGE MOVE
- [01280] LOADPPW - LOAD PP COMMUNICATIONS WORD ADDRESS
- [01299] MESSAG - OUTPUT MESSAGE TO *B*-DISPLAY.
- [01323] VJOBN - VERIFY JOB NAME. (NOS VERSION 1)
- [01326] VJOBN - VERIFY JOB NAME.
- [01358] READEJT - READ EXECUTING JOB TABLE.
- [01360] READEJT - READ PARTIAL ENTRY FROM EJT.
- [01404] SWITCH - CHANGE CONTROL POINT ASSIGNMENT.
- [01405] SWITCH - CHANGE CONTROL POINT ASSIGNMENT.
- [01455] RSVDDP - RESERVE DDP PORT/CHANNEL.
- [01518] RELDDP - RELEASE DDP PORT/CHANNEL.
- [01542] RSVTAB - RESERVE *JOBTAB* TABLE.
- [01587] RELTAB - RELEASE *JOBTAB* TABLE RESERVATION.
- [01626] READECS - ECS TO PPU TRANSFER VIA DDP.
- [01680] WRITECS - PPU TO ECS TRANSFER VIA DDP.
- [01755] FLAG - ECS FLAG REGISTER OPERATIONS VIA DDP.
- [01814] DDPMCP - MASTER CLEAR DDP PORT.
- [01838] EXDROP - INFORM MASTOR OF EXECUTOR DROP.
- [01839] EXDROP - INFORM MASTOR OF EXECUTOR DROP.
- [01869] COMMON DECKS
- [01884] STORAGE DEFINITIONS (MAIN OVERLAY)
Source Code
- MRQ.txt
MRQ * /--- FILE TYPE = E * /--- BLOCK IDENT 00 000 85/02/13 07.11 IDENT MRQ,PPFW MASTOR REQUEST PROCESSOR. PERIPH BASE MIXED LIST F SST SYSCOM TITLE -MRQ- PLATO/MASTOR REQUEST PROCESSOR COMMENT MASTOR REQUEST PROCESSOR (PLATO) SPACE 4 *** MRQ - MASTOR REQUEST PROCESSOR. * * PLATO SYSTEM PROGRAMMERS INNUMERABLE. * TITLE QUALS - ESTABLISH ALPHABETIC ORDER. * * ESTABLISH ALPHABETIC QUAL ORDER. * * NOTE THAT THE FIRST AND LAST QUAL CARDS ARE * MARKERS AND MUST APPEAR EXACTLY AS THEY ARE * IN ORDER FOR THE PROGRAMS THAT UPDATE THESE * QUAL CARDS TO WORK. * * QUAL START QUAL ABLK QUAL ACCH QUAL AFT QUAL ATT QUAL BIO QUAL CPS QUAL CSCAN QUAL C=DDP QUAL DDPCM QUAL DDP70 QUAL EJT QUAL EVT QUAL FAW QUAL FIP QUAL FIW QUAL FTYPE QUAL INITIAL QUAL INIT1 QUAL INIT2 QUAL INIT3 QUAL JIO QUAL JMACT QUAL JSCAN QUAL MACRO$ QUAL MASI QUAL MFF QUAL MNTCH QUAL MRQSPL QUAL PIM QUAL PPUAV QUAL RSCR QUAL SCD QUAL SCR QUAL SSD QUAL SYSDAX QUAL SYSDBX QUAL SYSDCX QUAL SYSDEX QUAL SYSDIX QUAL SYSDMX QUAL SYSDPX QUAL SYSDQX QUAL SYSDRX QUAL 1DS QUAL * /--- BLOCK COMMENTS 00 000 84/11/30 07.59 TITLE MASTOR-TO-MRQ REQUEST FORMATS ************************************************************ * * -MRQ- * * PPU PROGRAM *MRQ* PROCESSES SPECIAL REQUESTS FOR * LOGIC *MASTOR* * * * FORMAT OF *MASTOR* TO *MRQ* REQUEST WORD - * * 1ST 12 BITS = REQUEST / REPLY TYPE CODE * NEXT 36 = REQUEST PARAMETERS * NEXT 11 = UNUSED * NEXT 1 = COMPLETION BIT * * * REQUEST FORMATS - * * REQUEST TYPE = 1 = SET CPU PRIORITY * 12/1, 24/0, 12/CPU PRIORITY, 12/0 * * REQUEST TYPE = 2 = OBTAIN MAIN-FRAME NUMBER * 12/2, 36/0, 12/0 * * REQUEST TYPE = 3 = DROP PPU * 12/3, 36/0, 12/0 * * REQUEST TYPE = 4 = ABORT SPECIFIED CONTROL POINT * 12/4, 24/0, 12/CONTROL POINT, 12/0 * * REQUEST TYPE = 5 = WRITE TABLE OF RUNNING JOBS * 12/5, 12/0, 24/CM ADDRESS FOR TABLE, 12/0 * * REQUEST TYPE = 6 = UPDATE *JOBTAB* * 12/6, 36/0, 12/0 * * REQUEST TYPE = 7 = OBTAIN B-DISPLAY INFORMATION * 12/7,48/0 * 12/0,24/BUFFER LENGTH,24/BUFFER ADDRESS * * REQUEST TYPE = 8 = OBTAIN A-DISPLAY INFORMATION * 12/8,48/0 * 12/0,24/BUFFER LENGTH,24/BUFFER ADDRESS * 42/JOB NAME, 18/CONTROL POINT NUMBER * * REQUEST TYPE = 9 = OBTAIN P-DISPLAY INFORMATION * 12/9,48/0 * 12/0,24/BUFFER LENGTH,24/BUFFER ADDRESS * * REQUEST TYPE = 10 = OBTAIN Q-DISPLAY INFORMATION * 12/10,48/0 * 12/0,24/BUFFER LENGTH,24/BUFFER ADDRESS * * REQUEST TYPE = 11 = SET RAX/FLX TO *MASTOR* VALUES * 12/11, 36/0, 12/0 * * /--- BLOCK COMMENTS 00 000 85/03/22 08.44 * * REQUEST TYPE = 12 = OBTAIN C-DISPLAY INFORMATION * 12/12,48/0 * 12/0,24/BUFFER LENGTH,24/BUFFER ADDRESS * 24/0, 12/LENGTH, 24/CM ADDRESS * * REQUEST TYPE = 13 = OBTAIN M-DISPLAY INFORMATION * 12/13,48/0 * 12/0,24/BUFFER LENGTH,24/BUFFER ADDRESS * 24/0, 12/LENGTH, 24/ECS ADDRESS * * REQUEST TYPE = 14 = SET JOB NAME * 12/14, 36/0, 12/0 * * REQUEST TYPE = 15 = DROP SPECIFIED JOB * 12/15, 1/FORCE DROP, 11/0, 24/0, 12/0 * 42/JOB NAME, 18/0 * * REQUEST TYPE = 20 = PURGE SPECIFIED JOB * 12/20, 36/0, 12/0 * 42/JOB NAME, 18/0 * * REQUEST TYPE = 29 = OBTAIN E-DISPLAY INFORMATION * 12/29,48/0 * 12/0,24/BUFFER LENGTH,24/BUFFER ADDRESS * * REQUEST TYPE = 30 = OBTAIN I-DISPLAY INFORMATION * 12/30,48/0 * 12/0,24/BUFFER LENGTH,24/BUFFER ADDRESS * * REQUEST TYPE = 31 = OBTAIN NUMBER FREE PPUS * 12/31, 24/0, 12/NUM PPUS, 12/0 * * REQUEST TYPE = 32 = SYNCHRONIZE CLOCKS * 12/32, 36/0, 12/0 * 12/1, 48/CLOCK ADJUSTMENT VALUE * * REQUEST TYPE = 33 = OBTAIN R-DISPLAY INFORMATION * 12/33,48/0 * 12/0,24/BUFFER LENGTH,24/BUFFER ADDRESS * * REQUEST TYPE = 34 = SEARCH PERIPHERAL LIBRARY * 12/34, 18/0, 18/PPUNAME, 12/0 * * REQUEST TYPE = 36 = SET A170 MAINT CHANNEL FLAG * 12/36,48/0 * * ************************************************************ * /--- BLOCK COMMONS 00 000 85/02/11 15.04 TITLE COMMON SYMBOL/MACRO DEFINITIONS. *CALL COMPMAC SYSTEM PP MACROS. *CALL PLASGLB PLATO GLOBAL EQUIVALENCES. *CALL SYSCON SYSTEM CONFIGURATION (GLOBAL) QUAL BIO *CALL COMSBIO BATCHIO EQUIVALENCES. QUAL CPS *CALL COMSCPS CPU MONITOR SUBFUNCTION CODES. QUAL EJT *CALL COMSEJT EXECUTING JOB TABLE DEFINITIONS QUAL EVT *CALL COMSEVT EVENT DESCRIPTORS (R-DISPLAY) QUAL JIO *CALL COMSJIO QFT EQUIVALENCES (Q-DISPLAY) QUAL PIM *CALL COMSPIM PP INSTRUCTION MNEMONICS. QUAL SHNI EQU /PIM/SHNI FOR *COMPCPE* QUAL SCD *CALL COMSSCD SERVICE CLASS DEFINITIONS. QUAL DSSC EQU /SCD/DSSC FOR *COMPCPE* SSSC EQU /SCD/SSSC FOR *COMPCPE* MXJC EQU /SCD/MXJC FOR *COMPRJC* QUAL SCR *CALL COMSSCR S/C REGISTER EQUIVALENCES. QUAL SSD *CALL COMSSSD SUBSYSTEM DEFINITIONS. QUAL 1DS *CALL COMS1DS 1DS FUNCTION CODE DEFINITIONS. QUAL BASE * *CALL PLAP501 NOS 501 MACROS USED BY PLATO. *CALL AIDTEXT NOS LEVEL DEPENDENT INSTRUCTS. *CALL PTEXT PLATO PP EQUIVALENCES. *CALL PLASMPC MASTOR PARAMETERS AND CONSTANTS *CALL PLASMRQ MRQ/MASTOR REQUEST CODES. QUAL$ SET 1 NO AUTO-QUALIFY FOR COMMON DCKS * /--- BLOCK MACROS 00 000 84/12/03 08.14 TITLE MACRO DEFINITIONS *** REQTAB MACRO DEFINE MRQ REQUEST TABLE * * 1ST ARGUMENT = OVERLAY NUMBER (0 = NOT AN OVERLAY) * 2ND = ADDRESS TO JUMP TO IF NOT AN * OVERLAY (IRRELEVANT IF 1ST ARGUMENT * IS NONZERO) * 3RD = AN ARGUMENT VALUE TO PASS TO THE * EXECUTION ROUTINE * 4TH = FLAG TO INDICATE WHETHER REQUEST * DEPENDS ON THE *SECUR* CONFIG * PARAMETER BEING *ON*. * * FIRST WORD OF ENTRY * 1/SECUR FLAG (1=SECUR MUST BE *ON* TO USE) * 5/OVERLAY NUMBER (0 = NO OVERLAY) * 6/ARGUMENT VALUE * SECOND WORD OF ENTRY * 12/ADDRESS TO JUMP TO IF OVERLAY NUMBER = 0 * * PURGMAC REQTAB MACREF REQTAB$ REQTAB MACRO OVL,ADDR,ARG,SECURF MACREF REQTAB .RQT IFC EQ,*SECURF** .SECUR SET 0 DEFAULT = 0 .RQT ELSE .SECUR SET SECURF ELSE, PASSED VALUE .RQT ENDIF VFD 1/.SECUR,5/OVL,6/ARG VFD 12/ADDR ENDM *** DROP. MACRO DROP PP, DIAGNOSTICALLY. * PURGMAC DROP. MACREF DROP.$ DROP. MACRO MACREF DROP. RJM DROPMSG ENDM * * /--- BLOCK FIELD MAC 00 000 84/11/30 08.06 SPACE 4,10 ** FIELD - EXTRACT SPECIFIED FIELD. * * 1ST ARG - PP BYTE TO BE LOADED. * 2ND ARG - .ARS. TO MOVE FIELD TO LOW ORDER. * 3RD ARG - MASK FOR FIELD. * 4TH ARG - .CLS. TO MOVE FIELD FOR STORAGE. * 5TH ARG - PP BYTE WHERE FIELD WILL BE -RAM-ED. * * ANY ARG CAN BE OPTIONAL, AND UNNECESSARY * INSTRUCTIONS WILL BE OPTIMIZED OUT. * PURGMAC FIELD MACREF FIELD$ FIELD MACRO IN,RSH,MSK,LSH,OUT .IN IFC NE,*IN** .IND IFLT IN,100B LDD IN .IND ELSE LDM IN .IND ENDIF .IN ENDIF .RSH IFC NE,*RSH** .RSH0 IFNE RSH,0 SHN -RSH .RSH0 ENDIF .RSH ENDIF .MSK IFC NE,*MSK** .MSKN IFLT MSK,100B LPN MSK .MSKN ELSE LPC MSK .MSKN ENDIF .MSK ENDIF .LSH IFC NE,*LSH** .LSH0 IFNE LSH,0 SHN LSH .LSH0 ENDIF .LSH ENDIF .OUT IFC NE,*OUT** .OUTD IFLT OUT,100B RAD OUT .OUTD ELSE RAM OUT .OUTD ENDIF .OUT ENDIF ENDM * * /--- BLOCK DIRECT 00 000 87/02/24 13.23 TITLE DIRECT CELL DEFINITIONS 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 D.PNT EQU 30B JOB NAME TABLE POINTER D.BPR EQU 31B HIGHEST NON-PLATO CPU PR IN W D.CPR EQU 32B HIGHEST CPU PRIORITY IN *WAIT* EC EQU 33B ECS / ESM MODE D.JI EQU 34B JOB INDEX CN EQU 35B - 41B CM WORK CELL * D.COM EQU 42B COMSOURCE NOS FLAG (0 - NO) * * D.MMF HAS TWO VALUES ON A BATCH MULTI-MAINFRAME * SYSTEM. A VALUE OF 1 MEANS THIS IS THE FIRST * TIME THROUGH THE MAIN LOOP. A VALUE OF 2 MEANS * THIS IS THE SECOND (AND FINAL) TIME THROUGH. MRQ * WILL BE DROPPED WHEN THE FINAL LOOP IS COMPLETED. * * D.MMF EQU 43B MMF FLAG (0 - PLATO ON 2ND MCH) D.NSCR EQU 44B NUMBER OF S/C REGISTERS D.RSAV EQU 45B - 46B SAVE (R) REGISTER OF MRQ-S CP D.A170 EQU 47B 170/800 FLAG (NONZERO=170/800) RI EQU 60B - 61B RANDOM INDEX (FOR CRA) EX EQU 62B EXTENDED ADDRESSING MODE (=1) SC1 EQU CHSC CHANNEL FOR 1ST S/C REGISTER SC2 EQU 36B CHANNEL FOR 2ND S/C REGISTER * * /--- BLOCK MAIN 00 000 87/06/12 12.03 TITLE MAIN PROGRAM ORG PPFW MRQ BSS 0 EXEC INITIAL INITIALIZATIONS LDM MFN NJN MRQ1 IF NOT MAINFRAME ZERO LDN 3 SET OVERLAY ARGUMENT STM II EXEC MASI INITIALIZE MASTOR CONTROL POINT MRQ1 BSS 0 .NOS252 IFGE OSLEV,678D LDM DDP1 CHECK PRIMARY DDP CHANNEL SHN 6 MJN MRQ3 IF PATH ENABLED LDM DDP2 CHECK SECONDARY DDP CHANNEL SHN 6 MJN MRQ3 IF PATH ENABLED .NOS252 ELSE LDM /C=DDP/C=DDP READ DDP CHANNEL NUMBER SHN 6 SHIFT FIRST BIT TO SIGN PJN MRQ3 -- DDP IS PRESENT .NOS252 ENDIF EXEC INIT1 170/800 SERIES, NO DDP EXEC INIT2 170/700 SERIES, NO DDP MRQ3 BSS 0 EXEC INIT3 MRQ INITS REQUIRING EM ACCESS LDN 1 STM INITC MARK INITIALIZATIONS COMPLETE RJM MRQR100 * /--- BLOCK MAIN 00 000 87/06/12 11.56 * * MAIN MRQ LOOP - UPDATE TABLES AND PROCESS REQUESTS * * NOTE THAT IF A JOB CALLS MRQ WITH AUTO-RECALL, THE * CPU WILL BE RE-STARTED AFTER THE FIRST MRQ REQUEST * HAS BEEN PROCESSED. * MRQREQ LDD D.MMF ZJN MRQREQ3 IF A PLATO MMF LPN 2 NJP MRQREQ7 IF SECOND TIME THROUGH HERE STM RII (RII)=0 = FORCE A REQUEST CHECK LDD D.MMF SHN 1 MAKE NEXT TIME THE 2ND TIME STD D.MMF UJN MRQREQ5 IF A BATCH MMF * MRQREQ3 DELAY 100 IDLE MRQREQ5 CALL CLOCKER UPDATE MILLISECOND CLOCK CALL FCP CALL EXDROP CHECK FOR EXECUTOR DROP CALL PAUSE SOM RII CHECK IF TIME FOR REQUEST CHECK PJN MRQREQ6 IF NOT TIME FOR REQUEST CHECK YET RJM MRQR100 CHECK FOR A REQUEST UJP MRQREQ * MRQREQ6 BSS 0 SOM JII CHECK IF TIME FOR SCAN FUNCTION PJP MRQREQ LDC 5000 RE-SET TIMER STM JII MRQREQ7 BSS 0 EXEC CSCAN UPDATE *CLOKTAB* CALL CLOCKER UPDATE MILLISECOND CLOCK EXEC JSCAN UPDATE *JOBTAB* LDD D.NSCR CHECK NUMBER OF S/C REGISTERS ZJN MRQE7.1 IF NO SCR-S AND NOT 1ST TIME EXEC RSCR UPDATE CM COPY OF S/C REGISTER MRQE7.1 BSS 0 LDD D.MMF NJN MRQREQ8 IF A BATCH MMF LJM MRQREQ * MRQREQ8 BSS 0 .NOSV2 IFLT OSLEV,562D (NOS VERSION 1) LDD CP SET UP PP RECALL ADN RLPW CWD IR .NOSV2 ENDIF MONITOR DPPM DROP PPU LJM PPR * * /--- BLOCK MRQR100 00 000 82/11/18 09.07 TITLE MRQR100 - PROCESS PENDING MASTOR REQUESTS. * * CHECK FOR *MASTOR* TO *MRQ* REQUEST * MRQR100 SUBR CALL PAUSE CHECK FOR ERROR/STORAGE MOVE LDC 20 STM RII RE-SET TIMER LDN 3 STD D.T0 SET NUMBER CM WORDS TO READ RJM LOADPPW GET ADDRESS OF REQUEST WORD CRM REQUEST,D.T0 READ REQUEST WORDS LDM REQUEST+4 LPN 1 CHECK COMPLETION BIT NJP MRQR950 IF REQUEST COMPLETED LDM REQUEST SHN 1 MULTIPLY BY MRQRTAB ENTRY SIZE STD D.T1 ADC -MRQRMAX CHECK REQUEST CODE LEGAL PJP MRQRERR LDM MRQRTAB,D.T1 LOAD FIRST WORD OF ENTRY STD D.T0 SHN 6 CHECK TOP BIT PJN MRQ200 IF DOESN*T DEPEND ON *SECUR* * GET VALUE OF *SECUR* FOR CURRENT MAINFRAME. LDD RA SHN 6 ADN MS.ECSP CRM ECSP,ON UPDATE CURRENT VALUE OF *ECSP* * NOW SEE IF *SECUR* IS ON (1) OR OFF (0). LDM ECSP LPN 10B *SECUR* BIT NJP MRQRERR IF *SECUR* = ON MRQ200 LDD D.T0 RESTORE FIRST WORD OF ENTRY AOD D.T1 (A) = ADDR OF SECOND ENTRY WORD LDM MRQRTAB,D.T1 LOAD SECOND WORD OF ENTRY STD D.T1 MRQR500 LDD D.T0 LPC 3700B OVERLAY NUMBER NJN MRQR700 IF AN OVERLAY LDD D.T1 ADDRESS ZJP MRQRERR IF NO ADDRESS (AND NO OVERLAY) * PROCESS ADDRESS LDD D.T0 LPN 77B LOAD ARGUMENT STM II LJM 0,D.T1 JUMP TO APPROPRIATE ROUTINE * * PROCESS OVERLAY * MRQR700 LDD D.T0 LPN 77B LOAD ARGUMENT STM II LDD D.T0 LPC 3700B OVERLAY NUMBER SHN -6 EXEC EXECUTE THE OVERLAY LJM MRQRX * * /--- BLOCK MRQRTAB 00 000 85/03/22 08.49 TITLE MRQRTAB - REQUEST/PROCESSOR TABLE. MRQRTAB BSS 0 REQTAB 0,MRQRX,0 0 = NO-OP REQTAB MASI,0,0,0 1 = SET CPU/QUEUE PRIORITY REQTAB MASI,0,1,0 2 = OBTAIN MAINFRAME NUMBER REQTAB MASI,0,2,0 3 = DROP PPU REQTAB 0,MRQRERR,0 4 = OBSOLETE (ABORT JOB) REQTAB 0,MRQWJB,0 5 = WRITE RUNNING JOB TABLE REQTAB 0,MRQJSC,0 6 = *JOBTAB* SCAN REQTAB SYSDBX,0,0 7 = OBTAIN B-DISPLAY INFO REQTAB SYSDAX,0,0 8 = OBTAIN A-DISPLAY INFO REQTAB SYSDPX,0,0 9 = OBTAIN P-DISPLAY INFO REQTAB SYSDQX,0,0 10 = OBTAIN Q-DISPLAY INFO * NEXT OVERLAY ALSO CALLED DIRECTLY DURING INITIALIZATION REQTAB MASI,0,3,0 11 = SET RAE/FLE TO *MASTOR* REQTAB SYSDCX,0,0 12 = OBTAIN C-DISPLAY INFO REQTAB SYSDMX,0,0,1 13 = OBTAIN M-DISPLAY INFO REQTAB MASI,0,4,0 14 = SET JOB NAME REQTAB JMACT,0,0 15 = DROP SPECIFIED JOB REQTAB SYSDHX,0,0 16 = OBTAIN H-DISPLAY INFO REQTAB 0,MRQRERR,0 17 = UNUSED REQTAB 0,MRQRERR,0 18 = UNUSED REQTAB 0,MRQRERR,0 19 = UNUSED .NOSV2 IFGE OSLEV,562D (NOS VERSION 2) REQTAB 0,MRQRERR,0 20 = OBSOLETE (PURGE Q FILE) .NOSV2 ELSE (NOS VERSION 1) REQTAB JMACT,0,1 20 = PURGE QUEUE FILE .NOSV2 ENDIF REQTAB 0,MRQRERR,0 21 = UNUSED REQTAB 0,MRQRERR,0 22 = UNUSED REQTAB 0,MRQRERR,0 23 = UNUSED REQTAB 0,MRQRERR,0 24 = UNUSED REQTAB 0,MRQRERR,0 25 = UNUSED REQTAB 0,MRQRERR,0 26 = UNUSED REQTAB 0,MRQRERR,0 27 = UNUSED REQTAB 0,MRQRERR,0 28 = UNUSED REQTAB SYSDEX,0,0 29 = OBTAIN E-DISPLAY INFO REQTAB SYSDIX,0,0 30 = OBTAIN I-DISPLAY INFO REQTAB PPUAV,0,0 31 = DETERMIN NUMBR PPUS FREE REQTAB 0,MRQSNC,0 32 = SYNCHRONIZE CLOCKS REQTAB SYSDRX,0,0 33 = OBTAIN R-DISPLAY INFO REQTAB MRQSPL,0,0 34 = SEARCH PERIPH. LIBRARY REQTAB 0,MRQRERR,0 35 = UNUSED REQTAB 0,MNTCH,0 36 = SET MC FLAG * BSS 0 MRQRMAX EQU *-MRQRTAB * * /--- BLOCK REQEXITS 00 000 82/11/18 08.55 TITLE EXITS FROM REQUEST PROCESSING ** STANDARD EXIT FOR DISPLAY OVERLAYS * * (D.T3) = NUMBER OF PPU WORDS OF DATA TO BE WRITTEN * BUFF = BEGINNING ADDRESS OF DATA * RSVDDP HAS BEEN CALLED TO RESERVE DDP * DSPWRT LDC BUFF STD D.T0 D.T0 = PPU MEMORY ADDRESS LDM MRAX+1 ADM REQUEST+9 ECS ADDR LOWER STD D.T2 D.T2 = LOWER PART OF ECS ADDR SHN -12 ADM MRAX COMPUTE UPPER PART OF ABS ADDR ADM REQUEST+8 ECS ADDR UPPER STD D.T1 D.T1 = UPPER PART OF ECS ADDR CALL WRITECS WRITE INFO TO ECS CALL RELDDP RELEASE DDP PORT * UJN MRQRX * * REQUEST PROCESSING EXITS * MRQRX LDC 4000B MARK NO ERROR OCCURRED STM REQUEST UJN MRQR900 * MRQRER1 CALL RELDDP RELEASE DDP IF NECESSARY MRQRERR LDC 4077B MARK ERROR OCCURRED STM REQUEST MRQR900 LDN 1 SET COMPLETION BIT STM REQUEST+4 RJM LOADPPW GET ADDRESS OF REQUEST WORD CWM REQUEST,ON RE-WRITE REQUEST LDD CP CALLING CP AREA ADDR ADK STSW OFFSET TO STATUS WORD CRD CM READ CONTROL POINT STATUS WORD LDD CM+C.CPSTAT .NOSV2 IFGE OSLEV,562D (NOS VERSION 2) SHN -11B (A) = CP STATUS SBN 6 6 = *I* = AUTO-RECALL NJN MRQR950 IF NOT IN AUTO-RECALL .NOSV2 ELSE (NOS VERSION 1) LPC 1000B CHECK IF AUTO-RECALL BIT SET ZJN MRQR950 IF NOT IN AUTO-RECALL .NOSV2 ENDIF LDN ZERL CRD CM PRE-CLEAR ARGUMENT AREA MONITOR RCPM RE-START CPU MRQR950 BSS 0 UJP MRQR100X * * * /--- BLOCK ERREXITS 00 000 82/11/22 11.58 TITLE ERROR EXITS / DROP PPU * * ERROR EXITS - * MRQERR5 BSS 0 CALL DFM,(=C/ "PPU.MRQ" - CANNOT RETURN TO MASTOR./) DROP. * * MRQERR1 BSS 0 CALL DFM,(=C/ "PPU.MRQ" - IMPROPER REQUEST./) MRQERRX LDN ZERL PRE-CLEAR ARGUMENTS CRD CM LDN PPET STD CM+1 SET ERROR FLAG = PPU ABORT MONITOR CEFM DROP. * DROPMSG SUBR ENTER AS SUBROUTINE, NO EXIT LDM DROPMSG READ CALLING ADDR SHN -6 KEEP UPPER 2 DIGITS RJM C2D CONVERT TO DISPLAY CODE STM DRPB STORE IN MESSAGE TEXT LDM DROPMSG READ CALLING ADDR AGAIN LPN 77B KEEP LOWER 2 DIGITS RJM C2D CONVERT TO DISPLAY CODE STM DRPB+1 STORE IN MESSAGE TEXT LDK CPON+DRPA MESSAGE TYPE + TEXT ADDR RJM DFM OUTPUT MESSAGE DROP CALL RELTAB RELEASE *JOBTAB* CALL RELDDP RELEASE DDP LDN ZERL CRD CM MONITOR DPPM DROP PPU LJM PPR * * DRPA DATA H* "PPU.MRQ" - DROPPED AT * DRPB DATA 0,0 4 CHAR ADDR DIS ,/./ PERIOD + END-OF-LINE * * BASE M *CALL COMPC2D CONSTANT TO OCTAL DISPLAY CODE BASE * * * * /--- BLOCK PROCESS 00 000 85/03/22 08.58 TITLE PROCESS REQUESTS (UCPJ, UJOB, SYNC, MCS) * * REQUEST = 5 = WRITE TABLE OF RUNNING JOBS * MRQWJB EXEC CSCAN UPDATE JOB TABLE LDC MS.NCP STD D.T0 SET NUMBER WORDS TO WRITE LDM REQUEST+2 SHN 12 FORM ADDRESS TO WRITE ADM REQUEST+3 CALL ABS CONVERT TO ABSOLUTE ZJP MRQRERR CWM CPJNAM,D.T0 WRITE JOB NAMES TO CM UJP MRQRX * * * REQUEST = 6 = PERFORM *JOBTAB* SCAN * MRQJSC EXEC CSCAN UPDATE *CLOKTAB* EXEC JSCAN UPDATE *JOBTAB* UJP MRQRX * * * REQUEST = 32 = SYNCHRONIZE CLOCKS * MRQSNC LDC 7777B INITIALIZE TIME-OUT STM II MSNC20 LDN 2 SET NUMBER OF CM WORDS TO READ STD D.T0 RJM LOADPPW GET ADDRESS OF REQUEST WORD CRM REQUEST,D.T0 LDM REQUEST+5 CHECK IF ADJUSTMENT VALUE READY NJP MSNC40 SOM II TIME-OUT END TEST ZJP MRQRERR CALL PAUSE CHECK FOR ERROR/STORAGE MOVE CALL CLOCKER UPDATE MILLISECOND CLOCK DELAY 100 UJP MSNC20 * MSNC40 LDN 4 INITIALIZE INDEX STD D.T0 MSNC45 LDM REQUEST+5,D.T0 SET CLOCK ADJ VALUE STM CKADJ,D.T0 SOD D.T0 DECREMENT INDEX PJP MSNC45 LDM CKADJ+1 SET UPPER BYTE STM CKADJ LDM CKADJF CHECK IF INITIAL ADJUSTMENT NJP MSNC50 LDC RTCL READ MILLISECOND CLOCK CRM CKBUFF,ON LDM CKBUFF+4 SBN 1 FORCE UPDATE OF MSEC CLOCK STM CKLAST+5 SET LAST CLOCK TIME MSNC50 CALL CLOCKER UPDATE MILLISECOND CLOCK LDN 1 STM CKADJF MARK CLOCK SYNCHRONIZED UJP MRQRX * * /--- BLOCK PROCESS 00 000 85/07/17 14.46 * * REQUEST = 36 = SET MASTOR INTERLOCK * * CALLS - CLOCKER, MESSAG. * * USES - CM. * MNTCH LDC 1000 TIMES TO TRY BEFORE MESSAGE (1 SEC) STM MCWK MC15 LDD RA GET MASTOR-S RA SHN 6 ADN MS.INTK (A) = ADDRESS OF INTERLOCK WORD CRD CM LDD CM (A) = FIRST 2 CHARS OF WHO HAS INTERLOCK NJN MC20 IF SOMEONE HAS THE INTERLOCK LDN ZERL CRM INTLK,ON LDM PNW (A) = *MA* STM INTLK LDM PNW+1 (A) = *ST* STM INTLK+1 LDM PNW+2 (A) = *OR* STM INTLK+2 LDD RA GET MASTOR-S RA SHN 6 ADN MS.INTK (A) = ADDRESS OF INTERLOCK WORD CWM INTLK,ON UJP MRQRX MARK NO ERROR OCCURRED * INTERLOCK WORD RESERVED SOMEWHERE ELSE MC20 CALL CLOCKER UPDATE MILLISECOND CLOCK DELAY 1000 IDLE FOR 1 MILLISEC CALL CLOCKER UPDATE MILLISECOND CLOCK SOM MCWK (A) = NUMBER OF TRIES LEFT PJP MC15 IF SOME TRIES LEFT LDC MSGMC RJM MESSAG RJM PAUSE CHECK FOR ERROR / STORAGE MOVE UJP MNTCH TRY AGAIN -- WE GET IT OR HANG * INTLK BSS 5 MCWK BSS 1 NUMBER OF TIMES TO TRY AGAIN MSGMC DIS ,/"PPU.MRQ" CANNOT GET MASTOR INTLOK/ * /--- BLOCK CLOCKER 00 000 79/02/23 17.33 TITLE CLOCKER - UPDATE RUNNING MILLISEC CLOCKS. ** CLOCKER - UPDATE JOB CLOCKS. * * UPDATES MILLISECOND CLOCK IN RA+77 OF JOBS LISTED * IN CM *CLOKTAB* TABLE * * DOESN'7T USE -- D.T0-D.T4 * CLOCKER SUBR LDM CKON CHECK IF CLOCKING ACTIVATED YET ZJN CLOCKERX * CHECK IF MILLISECOND CLOCK HAS TICKED CLOK100 LDC RTCL READ MILLISECOND CLOCK CRM CKBUFF,ON LDM CKBUFF+4 SBM CKLAST+5 COMPARE WITH LAST CLOCK TIME ZJN CLOCKERX STM CKTICK SET CLOCK TICK SIZE LDM CKBUFF+4 RE-SET LAST CLOCK UPDATE TIME STM CKLAST+5 LDN 0 STM CKBUFF CLEAR UPPER TWO BYTES OF CLOCK STM CKBUFF+1 * ADJUST MILLISECOND CLOCK LDM CKADJ+4 ADJUST 4TH BYTE RAM CKBUFF+4 SHN -12 ADM CKADJ+3 ADJUST 3RD BYTE RAM CKBUFF+3 SHN -12 ADM CKADJ+2 ADJUST 2ND BYTE RAM CKBUFF+2 SHN -12 RAM CKBUFF+4 END-ROUND CARRY * PREVENT NEGATIVE ELAPSED TIME LDM CKADJF CHECK IF INITIALIZATIONS ZJP CLOK115 LDM CKBUFF+2 CHECK IF ELAPSED TIME NEGATIVE SBM CKLAST+2 MJP CLOK112 NJP CLOK115 LDM CKBUFF+3 SBM CKLAST+3 MJP CLOK112 NJP CLOK115 LDM CKBUFF+4 SBM CKLAST+4 PJP CLOK115 ADK 15 MINIMUM CLOCK TICK VALUE PJN CLOK113 SKIP MSG IF NORMAL CORRECTION CLOK112 CALL MESSAG,(=16C"PPU.MRQ" CLOCK RESET) CLOK113 LJM CLOCKERX * CLOK115 LDM CKBUFF+4 UPDATE PREVIOUS CLOCK VALUE STM CKLAST+4 LDM CKBUFF+3 STM CKLAST+3 LDM CKBUFF+2 STM CKLAST+2 * UPDATE MILLISECOND CLOCK IN *MASTOR* RA+77B LDC 77B CALL ABS GET ABS ADDR OF RA+77 ZJP MRQERR1 CWM CKBUFF,ON WRITE OUT MILLISECOND CLOCK * UPDATE MILLISECOND CLOCK IN RA+77B OF JOBS LISTED * IN *CLOKTAB* TABLE LDC 5*CKLTH INITIALIZE PPU *CLOKTAB* INDEX STD T1 CLOK120 LDC -5 DECREMENT *CLOKTAB* INDEX RAD T1 ZJP CLOCKERX LDM CLOKTAB,T1 ZJP CLOK120 SKIP IF NO JOB NAME * /--- BLOCK CLOCKER/V2 00 000 89/06/01 15.43 .NOSV2 IFGE OSLEV,562D (NOS VERSION 2) LDM CLOKTAB+2,T1 (A) = EJT ORDINAL ZJP CLOK190 DELETE JOB FROM TABLE CALL READEJT READ EXECUTING JOB TABLE LDM CLOKTAB,T1 COMPARE CHARS 1-2 OF JSN LMD EJT.JSN NJP CLOK190 DELETE ENTRY IF DIFF JSN LDM CLOKTAB+1,T1 COMPARE CHARS 3-4 OF JSN LMD EJT.JSN+1 NJP CLOK190 LDD EJT.ST READ EJT STATUS BYTE SHN 17D-6 MOVE JOB ADVANCE FLAG TO SIGN MJP CLOK190 REMOVE IF CHANGING JOB STEP SHN 6 LPN 37B (A) = JOB STATUS SBN /EJT/EXJS CHECK FOR EXECUTING NJP CLOK120 RELOOP IF NOT EXECUTING LDD EJT.EF READ ERROR FLAGS NJP CLOK190 DELETE JOB IF ERROR OCCURRED LDD EJT.XCP READ CONTROL POINT NUMBER LPN 37B MASK FOR CONTROL POINT NUMBER SHN 7 (A) = FWA OF CP AREA STD T2 STM CLOKTAB+4,T1 ADK STSW LOAD CP STATUS WORD CRD CM LDD CM+1 CHECK ERROR FLAGS NJP CLOK190 LDK CMCL CHECK FOR PENDING STORAGE MOVE CRD CM LDD CM CP AREA WHERE MOVE IS PENDING .NOS27 IFGE OSLEV,716D NOS 2.7.1 SHN 7 .NOS27 ENDIF SBD T2 OUR TARGET CP AREA ZJP CLOK120 RELOOP IF MTR ABOUT TO MOVE CP CLOKA LDN FLSW READ FIELD LENGTH WORD * LDN FLSW+1 (CME PRESENT) ADD T2 CRD CM * /--- BLOCK CLOCKER/V1 00 000 82/12/02 09.01 .NOSV2 ELSE (NOS VERSION 1) * READ JOB NAME AT TARGET CP LDM CLOKTAB+4,T1 ZJP CLOK120 JUMP IF JOB DELETED FROM TABLE ADN JNMW BIAS TO JOB NAME CRD CM READ JOB NAME LDD CM+3 SCN 77B CLEAR 8TH CHARACTER OF JOB NAME STD CM+3 * VERIFY JOB NAME - CHECK JOB STILL RUNNING LDD CM COMPARE 1ST BYTE SBM CLOKTAB,T1 NJP CLOK190 LDD CM+1 COMPARE 2ND BYTE SBM CLOKTAB+1,T1 NJP CLOK190 LDD CM+2 COMPARE 3RD BYTE SBM CLOKTAB+2,T1 NJP CLOK190 LDM CLOKTAB+3,T1 SCN 77B CLEAR 8TH CHARACTER SBM CM+3 COMPARE 4TH BYTE NJP CLOK190 * CHECK FOR PENDING STORAGE MOVE LDK CMCL CRD CM LDD CM FWA OF CP AREA ABOUT TO MOVE SBM CLOKTAB+4,T1 FWA OF OUR TARGET CP ZJP CLOK120 IF MTR ABOUT TO MOVE THIS CP * CHECK FOR ERROR OR CHANGE IN CONDITION LDM CLOKTAB+4,T1 ADN STSW FORM ADDRESS OF STATUS WORD CRD CM LDD CM+C.CPEF CHECK IF ERROR OCCURRED NJP CLOK190 LDD CM+C.CPSTAT LPN 40B CHECK FOR JOB ADVANCE FLAG NJP CLOK190 REMOVE IF CHANGING JOB STEP * READ CM RA .CLOK150 IFGE OSLEV,552D IF NOS LEVEL IS 552 OR GREATER LDM CLOKTAB+4,T1 (A) = JOB-S CP AREA ADN FLSW FORM ADDRESS OF RA AND FL CRD CM .CLOK150 ENDIF LDD CM+C.CPRA LOAD CM RA ZJP CLOK120 STD T2 T2 = JOBS CM RA LDD D.A170 CHECK FOR 800 SERIES MAINFRAME ZJN CLOK160 -- NO, DON'7T FOOL WITH R OR RA .NOSV2 ENDIF * /--- BLOCK CLOCKER 00 000 82/11/29 16.42 * PROGRAMMER-S NOTES FOR 800 SERIES MAINFRAMES -- * * 1) FROM THIS POINT ON UNTIL *CLOK185* THERE MUST * BE NO STORAGE MOVE REQUESTS MADE. THIS IS * BECAUSE THE (R) WOULD BE UPDATED, BUT * *CLOK185* WOULD RESTORE THE OLD VALUE WHEN IT * WOULD NEXT BE EXECUTED. * 2) ALL EXITS FROM THIS LOOP (FROM THIS POINT ON) * WHICH USED TO GO TO *CLOK120* TO PROCESS THE * NEXT TABLE ENTRY SHOULD NOW GO TO *CLOK185* SO * THAT THE R-REGISTER WILL BE PROPERLY RESTORED * FOR A170 MACHINES. * BUILD *RA* FOR A170 MACHINES SRD D.RSAV SAVE CURRENT (R) .NOSV2 IFGE OSLEV,562D (NOS VERSION 2) LRD CM+1 (RA - NFL) / 100B LDD CM+3 4000B+NFL/100B .NOSV2 ELSE (NOS VERSION 1) LRD CM+C.CPRA-1 RA LDD RA .NOSV2 ENDIF STD T2 T2 IS SET UP TO WORK WITH (R) CLOK160 BSS 0 LDD CM+C.CPFL OBTAIN FIELD LENGTH ZJP CLOK185 IF TOO LITTLE CM FIELD LENGTH * CHECK IF SHOULD UPDATE CPU TIME FOR THIS JOB LDD T2 GET ABSOLUTE CM RA SHN 6 ADC 101B ABSOLUTE ADDRESS OF RA+101B CRM CKBUFF+10D,ON READ CURRENT CPU CLOCK LDM CLOKTAB+4,T1 FWA OF CP AREA ADN 6 READ WORD 6 OF EXCHANGE PACKAGE CRD CM LDD CM READ UPPER BYTE OF *MA* LPN 77B MASK OFF UNUSED PORTION ADD CM+1 PLUS LOWER BYTE NJN CLOK180 -- IF NOT EXECUTING * /--- BLOCK CLOCKER 00 000 86/12/12 13.53 * INCREMENT CPU TIME CLOCK IN RA+101B CLOK170 LDM CKTICK GET CLOCK TICK VALUE RAM CKBUFF+14 SHN -12 INCREMENT CPU TIME CLOCK RAM CKBUFF+13 SHN -12 RAM CKBUFF+12 * UPDATE MILLISECOND CLOCK IN RA+77B CLOK180 BSS 0 LDD D.BPR HIGHEST WAITING CPU PR (BATCH) SHN 6 SHIFT UP (24/,18/BPR,18/CPR) STM CKBUFF+8 LDD D.CPR GET HIGHEST PRIORITY IN *W* STM CKBUFF+9 LDM CPUSON SET CPU FLAG STM CKBUFF+5 LDD T2 SHN 6 POSITION CM RA ADN 77B ABSOLUTE ADDRESS OF RA+77B CWM CKBUFF,TR WRITE BACK WORDS 77-101B CLOK185 BSS 0 LRD D.RSAV RESTORE OLD (R) UJP CLOK120 * CLOK190 LDN 0 MARK JOB NO LONGER RUNNING .NOSV2 IFGE OSLEV,562D (NOS VERSION 2) STM CLOKTAB+2,T1 CLEAR EJT ORDINAL .NOSV2 ELSE (NOS VERSION 1) STM CLOKTAB+4,T1 .NOSV2 ENDIF LDM CLOKTAB+3,T1 LPN 1 CHECK IF MULTI-EXECUTOR DROP ZJP CLOK120 LDN 1 FLAG EXECUTOR HAS DROPPED STM MXDRPD UJP CLOK120 * * /--- BLOCK FCP 00 000 86/12/12 13.49 TITLE FCP - FIND HIGHEST PR CP IN *W* STATE. ** FCP - FIND HIGHEST JOB IN *W* STATUS. * * ON EXIT, TWO DIRECT CELLS ARE SET TO THE HIGHEST * CPU PRIORITY FOR A JOB IN WAIT STATE, AS FOLLOWS'; * * (D.CPR) = FOR ANY JOB * (D.BPR) = FOR ANY NON-PLATO SUBSYSTEM JOB * FCP SUBR LDN 0 INITIALIZE CP PRIORITY STD D.CPR CLEAR MAX CPU PR IN W STATE STD D.BPR CLEAR MAX NON-PLATO CPU PR ETC LDM NCPNT INITIALIZE CP LOOP STD T1 FCP1 ZJN FCPX IF NO MORE CONTROL POINTS * READ *STSW* AND *JCIW* FROM CONTROL POINT AREA SHN 7 CP NUM * 200B = CP AREA ADDR ADN STSW CRD CM .NOS750 IFGE OSLEV,750D ADK CWQW-STSW READ CPU PRIORITY .NOS750 ELSE ADN JCIW-STSW .NOS750 ENDIF CRD D.T0 READ CPU PRIORITY LDD CM+C.CPSTAT CHECK CPU ACTIVITY SHN -11B SBN 4 CHECK FOR STATUS = *W* = 4 NJN FCP2 NOT WAITING FOR CPU LDD D.T0 ELSE LOAD CP PRIORITY .NOS750 IFGE OSLEV,750D SHN -3 LPC 177B .NOS750 ELSE LPC 177B .NOS750 ENDIF STD D.T0 STORE ACTUAL CPU PRIORITY LDD D.T2 READ SUB-SYSTEM IDENTIFIER SBK /SSD/PLSI CHECK FOR OTHER PLATO JOBS ZJN FCP1.5 -- YES, IT IS A PLATO JOB LDD D.T0 CPU PRIORITY SBD D.BPR CURRENT MAX BATCH CPU PRIORITY MJN FCP2 -- NOT A NEW RECORD RAD D.BPR ELSE, ADD DIFF TO FORM NEW MAX FCP1.5 BSS 0 LDD D.T0 CPU PRIORITY SBD D.CPR MAX CPU PRIORITY MJN FCP2 -- NOT A NEW RECORD RAD D.CPR ELSE BUMP PRIORITY UP BY DIFF. FCP2 SOD T1 BUMP TO NEXT CONTROL POINT UJN FCP1 LOOP * * /--- BLOCK PAUSE 00 000 89/06/01 15.44 TITLE PAUSE - PAUSE FOR STORAGE MOVE. ** PAUSE - PAUSE FOR STORAGE RELOCATION * * CHECK CPU ACTIVITY AND PAUSE / DROP AS NECESSARY * * IF NO CPU ACTIVITY BUT *DIS* ACTIVE, * CONTINUE PROCESSING PAUSE SUBR LDD CP ADN STSW CRD CM LDD CM+C.CPEF CHECK ERROR FLAG ZJN PSE1 IF NO ERROR DROP. DROP PP * PSE1 LDD CM+C.CPSTAT CHECK CPU ACTIVITY SHN -11B .NOSV2 IFGE OSLEV,562D (NOS VERSION 2) NJN PSE2 IF SOME SORT OF ACTIVITY LDD CP (A) = FWA OF CP AREA ADK JCIW JOB CONTROL INFO WORD CRD CM LDD CM+3 SHN 8 MOVE *DIS* FLAG TO SIGN MJN PSE2 DIS UP, CHECK FOR STORAGE MOVE DROP. DROP PP * PSE2 BSS 0 LDK CMCL CPUMTR STORAGE MOVE INFO CRD CM LDD CP FWA OF MASTOR CP .NOS27 IFGE OSLEV,716D NOS 2.7.1 SHN -7 .NOS27 ENDIF LMD CM CP ABOUT TO BE MOVED NJN PSE4 NOT WAITING FOR US, EXIT RJM PSM ELSE PAUSE FOR STORAGE MOVE PSE4 UJP PAUSEX * * /--- BLOCK PAUSE 00 000 89/06/01 15.44 .NOSV2 ELSE (NOS VERSION 1) NJN PSE3 IF ACTIVITY * CHECK FOR DIS ACTIVE LDN PPUL CRD CM LDD CM+2 SAVE NUMBER OF PPS ON SYSTEM SBN 11D PJN PSE1.1 IF MORE THAN 10 PPS LDN 10D SET 10 PPS UJN PSE1.2 * PSE1.1 LDN 20D PSE1.2 STD T1 LDN PPCP GET ADDRESS OF PP COMMUNICATION CRD CM LDD CM+4 STD T2 PSE2 CRD CM READ NEXT INPUT REGISTER LDD CM LMC 2RDI NJN PSE6 IF NOT *DIS* LDD CP SHN -7 LMC 1RS*100B LMD CM+1 SCN 40B NJN PSE6 IF NOT *DIS* AT THIS CP * CHECK FOR STORAGE MOVE PSE3 LDN CMCL CRD CM LDD CP .NOS27 IFGE OSLEV,716D NOS 2.7.1 SHN -7 .NOS27 ENDIF LMD CM NJN PSE4 IF NOT THIS CP RJM PSM PAUSE FOR STORAGE MOVE PSE4 LJM PAUSEX PSE6 SOD T1 NJN PSE7 IF MORE PPS TO CHECK DROP. DROP PP PSE7 LDN 10B BUMP TO NEXT INPUT REGISTER RAD T2 LJM PSE2 LOOP * .NOSV2 ENDIF * * /--- BLOCK PSM 00 000 87/06/12 12.37 PSM TITLE PSM - PAUSE FOR STORAGE MOVE. ** PSM - PAUSE FOR STORAGE MOVE. * * DROP DDP IF RESERVED * DO STORAGE MOVE * RESERVE DDP AGAIN IF NEEDED * PSM SUBR LDM RDDP IS DDP RESERVED ZJN PSM100 * DDP IS RESERVED, SO RELEASE IT BUT RETAIN FLAG LDN ZERL CRD CM LDM /C=DDP/C=DDP STD CM+1 MONITOR DCHM PSM100 CALL PSM1 LDM RDDP WAS DDP RESERVED ZJN PSMX * DDP WAS RESERVED, SO RESERVE AGAIN LDN 0 STM RDDP CALL RSVDDP UJN PSMX * PSM1 SPACE 5,11 ** PSM1 - PAUSE FOR STORAGE MOVE * * ISSUE MONITOR FUNCTION TO PAUSE PSM1 SUBR PAUSE ST UJN PSM1X * * /--- BLOCK LOADPPW 00 000 84/11/30 08.19 LOADPPW TITLE LOADPPW - LOAD PP COMM. WORD ADDR ** LOADPPW - LOAD PP COMMUNICATIONS WORD ADDRESS * * LOAD THE ABSOLUTE ADDRESS OF THE CM WORD USED FOR * PP COMMUNICATIONS. * * ENTRY NONE. * * EXIT A = ABSOLUTE ADDRESS OF COMMUNICATIONS WORD LOADPPW SUBR LDD D.PPWD UPPER PART OF RELATIVE ADDRESS SHN 12 POSITION UPPER PART OF ADDRESS ADD D.PPWD+1 ATTACH LOWER PART CALL ABS CONVERT TO ABSOLUTE ZJP MRQERR1 IF ADDRESS OUT OF RANGE UJN LOADPPWX * * /--- BLOCK MESSAG 00 000 84/11/30 08.19 MESSAG TITLE MESSAG - OUTPUT MESSAGE TO *B*-DISPLAY ** MESSAG - OUTPUT MESSAGE TO *B*-DISPLAY. * * ON ENTRY - A = ADDRESS OF MESSAGE * * DESTROYS NO VARIABLES * MESSAG SUBR STM MSGA PLANT PPU ADDR 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 ADK MS1W ADD BIAS TO MESSAGE AREA CWM **,D.T0 WRITE MESSAGE TO CP AREA MSGA EQU *-1 PLANTED PP MEM ADDR LDM MSG20 STD D.T0 RESTORE *D.T0* UJN MESSAGX * MSG20 BSS 1 * * /--- BLOCK VJOBN 00 000 82/11/12 12.21 TITLE VJOBN - VERIFY JOB NAME. (NOS VERSION 1) .NOSV2 IFLT OSLEV,562D (NOS VERSION 1) ** VJOBN - VERIFY JOB NAME. * * VERIFY JOB IS STILL AT CONTROL POINT * * ENTRY - (A) = ADDRESS OF JOB NAME * (CPN) = CONTROL POINT TO CHECK * * EXIT - (A) = 0 IF JOB NAME NAME MATCHES VJOBN SUBR STD T1 LDM CPN SHN 7 ADN JNMW CRD CM READ JOB NAME LDI T1 LMD CM NJN VJOBNX IF MISMATCH LDM 1,T1 LMD CM+1 NJN VJOBNX IF MISMATCH LDM 2,T1 LMD CM+2 NJN VJOBNX IF MISMATCH LDM 3,T1 LMD CM+3 SCN 77B UJN VJOBNX .NOSV2 ENDIF * /--- BLOCK READEJT 00 000 82/11/18 09.21 TITLE READEJT - READ EXECUTING JOB TABLE. .NOSV2 IFGE OSLEV,562D (NOS VERSION 2) ** READEJT - READ PARTIAL ENTRY FROM EJT. * * ENTRY (A) = EJT ORDINAL. * * EXIT (CM - CM+4) = FIRST WORD OF EJT ENTRY, * (CN - CN+4) = SECOND WORD, * (T3 - T7) = THIRD WORD, * (A) = ABS CM ADDR OF THIRD WORD. * * USES - T0 (IF *EJTE* IS ODD), CM - CM+4, * CN - CN+4, T3 - T7. * * MACROS - SFA (WHICH CALLS .CEA FROM COMPGFP). * READEJT SUBR SFA EJT COMPUTE CM ADDR FROM EJT ORD. CRD CM READ FIRST WORD ADN 1 CRD CN READ SECOND WORD ADN 1 CRD T3 READ THIRD WORD UJP READEJTX RETURN * * DEFINITIONS OF FIELDS WITHIN EJT * EJT.JSN EQU CM JOB SEQUENCE NUMBER (2 BYTES) EJT.ST EQU CM+4 JOB STATUS BYTE EJT.XCP EQU CN+3 CONTROL POINT (IFF EXECUTING) EJT.XPR EQU CN+4 PRIORITY (IFF EXECUTING) EJT.EF EQU T3+1 ERROR FLAGS * * * GLOBAL FNT PROCESSORS FOR USE WITH *SFA* MACRO. * QFT$ EQU 1 ASSEMBLE .CQA SUBROUTINE EJT$ EQU 1 ASSEMBLE .CEA SUBROUTINE IFP$ EQU 1 REMOTE INITIALIZATION SUBR. *CALL COMPGFP * .NOSV2 ENDIF * /--- BLOCK SWITCH 00 000 82/11/18 09.22 TITLE SWITCH - CHANGE CONTROL POINT ASSIGNMENT. ** SWITCH - CHANGE CONTROL POINT ASSIGNMENT. * * SWITCH TO SPECFIED CONTROL POINT * * ON ENTRY - D.T0 = CONTROL POINT NUMBER * * ON EXIT - CPN = CONTROL POINT NUMBER * 0 IF ERROR OCCURRED * * SWT90 LDN 0 OPERATION FAILED. STM CPN SWITCH SUBR LDD D.T0 LOAD SPECIFIED C.P. NUMBER ZJP SWT90 SBM NCPNT SBN 1 CHECK CONTROL POINT LEGAL PJP SWT90 LDD D.T0 SHN 7 COMPUTE ADDRESS OF JOB NAME .NOSV2 IFGE OSLEV,562D (NOS VERSION 2) ADK TFSW READ EJT ORDINAL .NOSV2 ELSE (NOS VERSION 1) ADK JNMW READ JOB NAME .NOSV2 ENDIF CRD CM LDD CM ZJP SWT90 EXIT IF NO JOB RUNNING LDN ZERL ADDRESS OF ZERO CM WORD CRD CM PRE-CLEAR ARGUMENT AREA LDD D.T0 STM CPN SET NEW CONTROL POINT NUMBER ADD TH SET REJECT-ON-MOVE-PENDING BIT STD CM+1 MONITOR CCAM LDD CM+1 CHECK IF CHANGE SUCCESSFULL NJP SWT90 LDM CPN CHECK IF SWITCH TO *MASTOR* SBD D.CPN NJN SCP1 CALL PSM SCP1 LJM SWITCHX * * /--- BLOCK RSVDDP 00 000 87/02/17 12.37 RSVDDP TITLE DDP PORT/CHANNEL RESERVATIONS ** RSVDDP - RESERVE DDP PORT/CHANNEL. * * THIS SUBROUTINE WILL BE OVERWRITTEN BY * /DDPCM/RSVDDP IF THE DDP IS NOT AVAILABLE ON A * 170/800 MACHINE. * RSVDDP SUBR LDM RDDP CHECK IF DDP RESERVED NJN RSVDDPX RVD110 CALL CLOCKER UPDATE MILLISECOND CLOCK LDN ZERL CRD CM .NOS252 IFGE OSLEV,678D LDM DDP1 .NOS252 ELSE LDM /C=DDP/C=DDP .NOS252 ENDIF STD CM+1 SET CHANNEL NUMBER MONITOR CCHM CHECK IF CHANNEL RESERVED LDD CM+2 NJN RVD114 IF CHANNEL ASSIGNED .NOS252 IFGE OSLEV,678D LDM DDP2 ZJN RVD113 IF NO SECONDARY ACCESS STD CM+1 SET CHANNEL NUMBER MONITOR CCHM CHECK IF CHANNEL RESERVED LDD CM+2 NJN RVD114 IF CHANNEL ASSIGNED .NOS252 ENDIF RVD113 CALL PSM1 UJN RVD110 TRY AGAIN * RVD114 AOM RDDP MARK DDP RESERVED .NOS252 IFGE OSLEV,678D LDD CM+1 LOAD CHANNEL ASSIGNED PLANT CHANNEL,C=DDP .NOS252 ENDIF RVD120 IJM RVD122,C=DDP DCN C=DDP,40B INSURE CHANNEL INACTIVE RVD122 FNC 5010B,C=DDP MASTER-CLEAR PORT WAIT INACTIVE,C=DDP,RVD140 LDD EC ZJN RVD130 IF ECS MODE FNC 5404B,C=DDP SELECT ESM MODE RVD130 LJM RSVDDPX * PROCESS DDP CHANNEL MALFUNCTION. RVD140 LDN 0 CLEAR JOB TABLE FLAG STM RJTAB CALL RELDDP RELEASE DDP CHANNEL CALL DFM,(=C/"PPU.MRQ" DDP FUNCTION REJECT./) DROP. DROP PP * RVDL EQU *-RSVDDPX LENGTH OF ROUTINE -RSVDDP- * * /--- BLOCK RELDDP 00 000 84/11/30 08.22 RELDDP SPACE 4,10 ** RELDDP - RELEASE DDP PORT/CHANNEL. * * THIS SUBROUTINE WILL BE OVERWRITTEN BY * /DDPCM/RELDDP IF THE DDP IS NOT AVAILABLE ON A * 170/800 MACHINE. * RELDDP SUBR LDM RDDP CHECK IF DDP RESERVED ZJN RELDDPX LDN ZERL PRE-CLEAR ARGUMENTS CRD CM LDM /C=DDP/C=DDP STD CM+1 SET CHANNEL NUMBER MONITOR DCHM RELEASE CHANNEL LDN 0 STM RDDP MARK DDP NO LONGER RESERVED UJN RELDDPX RLDL EQU *-RELDDPX LENGTH OF ROUTINE -RELDDP- * * * /--- BLOCK RSVTAB 00 000 84/11/30 08.23 RSVTAB TITLE RESERVE/RELEASE *JOBTAB* VIA DDP. ** RSVTAB - RESERVE *JOBTAB* TABLE. * * RESERVE *JOBTAB* TABLE VIA ECS FLAG REGISTER * (MAY RESERVE DDP PORT) * * THIS SUBROUTINE WILL BE OVERWRITTEN BY * /DDPCM/RSVTAB IF THE DDP IS NOT AVAILABLE ON A * 170/800 MACHINE. * RSVTAB SUBR LDM RJTAB CHECK IF TABLE RESERVED NJN RSVTABX * RVT10 CALL RSVDDP RESERVE DDP PORT LDC 1000 INITIALIZE COUNTER STM RSVWK * RVT20 LDC 4020B SET DDP FUNCTION AND BIT STD D.T0 CALL FLAG FUNCTION ECS FLAG REGISTER NJP RVT30 LDN 1 MARK TABLE RESERVED STM RJTAB UJN RSVTABX * RVT30 CALL CLOCKER UPDATE MILLISECOND CLOCK DELAY 1000 IDLE CALL CLOCKER UPDATE MILLISECOND CLOCK SOM RSVWK PJP RVT20 CHECK FOR INTERLOCK PROBLEM CALL RELDDP RELEASE DDP PORT CALL CLOCKER UPDATE MILLISECOND CLOCK DELAY 1000 IDLE CALL CLOCKER UPDATE MILLISECOND CLOCK DELAY 1000 IDLE CALL CLOCKER UPDATE MILLISECOND CLOCK CALL MESSAG,(=19C"PPU.MRQ" FLAG INTERLOCK) CALL PAUSE CHECK FOR ERROR / STORAGE MOVE UJP RVT10 CONTINUE WAITING RSVL EQU *-RSVTABX LENGTH OF ROUTINE -RSVTAB- * * /--- BLOCK RELTAB 00 000 84/11/30 08.23 RELTAB EJECT ** RELTAB - RELEASE *JOBTAB* TABLE RESERVATION. * * RELEASE *JOBTAB* TABLE VIA ECS FLAG REGISTER * (MAY RESERVE DDP PORT) * * THIS SUBROUTINE WILL BE OVERWRITTEN BY * /DDPCM/RELTAB IF THE DDP IS NOT AVAILABLE ON A * 170/800 MACHINE. * * RELTAB SUBR LDM RJTAB CHECK IF *JOBTAB* RESERVED ZJN RELTABX CALL RSVDDP RESERVE DDP PORT LDC 7020B SET DDP FUNCTION AND BIT STD D.T0 CALL FLAG FUNCTION ECS FLAG REGISTER ZJP REL1 IF FUNCTION ACCEPTED CALL DFM,(=C/"PPU.MRQ" ADDRESS PE ON FLAG FUNCTION/) LDN ZERL CRD CM LDN OKET STD CM+1 MONITOR CEFM MONITOR DPPM UJP PPR * REL1 LDN 0 STM RJTAB MARK *JOBTAB* RELEASED LJM RELTABX * * RSVWK BSS 14B PADDING FOR ROUTINES IN INIT1/2 RELL EQU *-RELTABX LENGTH OF ROUTINE -RELTAB- * * * /--- BLOCK READECS 00 000 82/11/17 13.43 READECS TITLE READECS - ECS TO PPU TRANSFER VIA DDP. ** READECS - ECS TO PPU TRANSFER VIA DDP. * * ON ENTRY - D.T0 = PPU MEMORY ADDRESS * D.T1 = UPPER PORTION OF ECS ADDRESS * D.T2 = LOWER PORTION OF ECS ADDRESS * D.T3 = NUMBER OF PPU WORDS TO READ * * ON RETURN - A = 0 = READ COMPLETED * 1 = ECS PARITY ERROR * * THIS SUBROUTINE WILL BE OVERWRITTEN BY * /DDPCM/READECS IF THE DDP IS NOT AVAILABLE ON A * 170/800 MACHINE. * * READECS SUBR IJM RCS10,C=DDP DCN C=DDP,40B * RCS10 FNC 5001B,C=DDP 5001B = READ ECS WAIT INACTIVE,C=DDP,RCS82 ACN C=DDP,40B FJM RCS82,C=DDP LDN 2 OAM D.T1,C=DDP OUTPUT 2 WORD ECS ADDRESS LDD D.T0 STM RCS15+1 PLANT PPU MEMORY ADDRESS WAIT FULL,C=DDP,RCS82 * LDM D.T3 NUMBER OF WORDS TO READ RCS15 IAM **,C=DDP READ ECS TO PPU MEMORY NJP RCS80 EXIT IF ERROR * RCS20 IJM RCS80,C=DDP WAIT CHANNEL ACTIVE + FULL EJM RCS20,C=DDP DCN C=DDP,40B DISCONNECT CHANNEL LDN 0 MARK NO ERROR OCCURRED RCS30 LJM READECSX * RCS80 CALL DFM,(=C/"PPU.MRQ" ECS PARITY ERROR/) UJP RCS90 * RCS82 CALL DFM,(=C/"PPU.MRQ" DDP CHANNEL ERROR/) UJP RCS90 * RCS90 CALL DDPMCP MASTER CLEAR DDP PORT LDN 1 MARK ERROR OCCURRED UJN RCS30 BSSZ 116B FILLER FOR OTHER -READECS- CODE RCSL EQU *-READECSX LENGTH OF ROUTINE -READECS- * * /--- BLOCK WRITECS 00 000 82/11/17 13.43 WRITECS TITLE WRITECS - PPU TO ECS TRANSFER VIA DDP. ** WRITECS - PPU TO ECS TRANSFER VIA DDP. * * ON ENTRY - D.T0 = PPU MEMORY ADDRESS * D.T1 = UPPER PORTION OF ECS ADDRESS * D.T2 = LOWER PORTION OF ECS ADDRESS * D.T3 = NUMBER OF PPU WORDS TO WRITE * * ON RETURN - A = 0 = WRITE COMPLETED * 1 = ECS ABORT * * THIS SUBROUTINE WILL BE OVERWRITTEN BY * /DDPCM/WRITECS IF THE DDP IS NOT AVAILABLE ON A * 170/800 MACHINE. * * WRITECS SUBR * TRAP ANY ATTEMPT TO DESTROY THE ECS LABEL BY * WRITING TO ADDRESS 0. LDN D.T1 (A) = TOP 12 BITS OF ADDRESS ADN D.T2 ADD BOTTOM 12 BITS OF ADDRESS NJN WEM1 IF ADDRESS NON-ZERO MONITOR MXFM WEM1 LDD D.T3 NJN WEM2 IF NON-ZERO LENGTH MONITOR MXFM WEM2 IJM WCS10,C=DDP DCN C=DDP,40B * WCS10 FNC 5002B,C=DDP 5002B = WRITE ECS WAIT INACTIVE,C=DDP,WCS92 ACN C=DDP,40B LDN 2 OAM D.T1,C=DDP OUTPUT 2 WORD ECS ADDRESS LDD D.T0 STM WCS15+1 PLANT PPU MEMORY ADDRESS * LDM D.T3 NUMBER OF WORDS TO WRITE WCS15 OAM **,C=DDP WRITE PPU MEMORY TO ECS NJP WCS90 EXIT IF ERROR DCN C=DDP,40B * WCS30 FNC 5004B,C=DDP 5004B = SELECT STATUS WAIT INACTIVE,C=DDP,WCS90 ACN C=DDP,40B RE-ACTIVATE DDP CHANNEL WAIT FULL,C=DDP,WCS90 IAN C=DDP,40B INPUT STATUS WORD DCN C=DDP,40B LPN 11B MASK WRITE/ABORT BITS NJP WCS50 JUMP IF ERROR OR INCOMPLETE IJM WCS40,C=DDP EXIT (A=0) DCN C=DDP,40B WCS40 LJM WRITECSX EXIT (A=0) * WCS50 LPN 10B NJP WCS30 LOOP IF WRITE NOT COMPLETE * WCS90 CALL DFM,(=C/"PPU.MRQ" ECS ABORT/) UJP WCS99 * WCS92 CALL DFM,(=C/"PPU.MRQ" DDP CHANNEL ERROR/) * WCS99 CALL DDPMCP MASTER CLEAR DDP PORT LDN 1 MARK ERROR OCCURRED UJN WCS40 BSSZ 36B FILLER FOR OTHER -WRITECS- CODE WCSL EQU *-WRITECSX LENGTH OF ROUTINE -WRITECS- * * /--- BLOCK FLAG 00 000 84/11/30 08.24 FLAG TITLE FLAG - ECS FLAG REG OPERATIONS VIA DDP. ** FLAG - ECS FLAG REGISTER OPERATIONS VIA DDP. * * ON ENTRY - D.T0 = FLAG REG FUNCTION / BIT * * ON RETURN - A = 0 = ACCEPT * 1 = REJECT * * THIS SUBROUTINE WILL BE OVERWRITTEN BY * /DDPCM/FLAG IF THE DDP IS NOT AVAILABLE ON A * 170/800 MACHINE. * * FLAG SUBR LDD D.T0 LOAD FUNCTION / BIT LPC 3777B ADC 4000B INSURE FLAG REGISTER BIT SET STD D.T0 LDN 0 STD D.T1 CLEAR 2ND WORD OF ADDRESS STD D.T2 NO ERROR SO FAR * FLG10 IJM FLG15,C=DDP DCN C=DDP,40B * FLG15 FNC 5001B,C=DDP FUNCTION FLAG REGISTER (ECS) * FNC 5040B,C=DDP FUNCTION FLAG REGISTER (ESM) WAIT INACTIVE,C=DDP,FLG82 ACN C=DDP,40B FJM FLG82,C=DDP LDN 2 OAM D.T0,C=DDP OUTPUT 2 WORD ECS ADDRESS WAIT EMPTY,C=DDP,FLG82 DCN C=DDP,40B DISCONNECT CHANNEL * FNC 5004B,C=DDP 5004B = SELECT STATUS WAIT INACTIVE,C=DDP,FLG82 ACN C=DDP,40B RE-ACTIVATE DDP CHANNEL IAN C=DDP,40B INPUT STATUS WORD DCN C=DDP,40B LPN 1B A = ABORT BIT (0/1) STD D.T2 CALL DDPMCP MASTER CLEAR DDP PORT LDD D.T2 LJM FLAGX * FLG82 LDD D.T2 IF FIRST TIME, WRITE MESSAGE NJP FLG84 CALL DFM,(=C/"PPU.MRQ" DDP CHANNEL ERROR/) LDN 1 MARK ERROR OCCURRED STD D.T2 * FLG84 CALL DDPMCP MASTER CLEAR DDP PORT UJP FLG10 TRY AGAIN BSSZ 14 FLGL EQU *-FLAGX LENGTH OF ROUTINE -FLAG- * * /--- BLOCK DDPMCP 00 000 84/11/30 08.24 DDPMCP TITLE DDPMCP - MASTER CLEAR DDP PORT. ** DDPMCP - MASTER CLEAR DDP PORT. * * THIS SUBROUTINE WILL BE OVERWRITTEN BY * /DDPCM/DDPMCP IF THE DDP IS NOT AVAILABLE ON A * 170/800 MACHINE. * DDPMCP SUBR IJM DMC20,C=DDP DCN C=DDP,40B INSURE CHANNEL INACTIVE * DMC20 FNC 5010B,C=DDP 5010B = MASTER CLEAR PORT WAIT EMPTY,C=DDP WAIT INACTIVE,C=DDP * IJM DMC40,C=DDP CHECK IF CHANNEL INACTIVE DCN C=DDP,40B DISCONNECT DDP CHANNEL DMC40 LDD EC ZJN DDPMCPX IF ECS MODE FNC 5404B,C=DDP SELECT ESM MODE UJN DDPMCPX DMCL EQU *-DDPMCPX LENGTH OF ROUTINE -DDPMCP- * * /--- BLOCK EXDROP 00 000 82/11/17 09.04 TITLE EXDROP - INFORM MASTOR OF EXECUTOR DROP. ** EXDROP - INFORM MASTOR OF EXECUTOR DROP. * EXDROP SUBR LDM MXDRPD CHECK IF DROP DETECTED ZJN EXDROPX LDN 0 CLEAR DROP DETECTED FLAG STM MXDRPD EXEC CSCAN UPDATE *CLOKTAB* EXEC JSCAN UPDATE *JOBTAB* CALL RSVDDP RESERVE DDP PORT LDN ZERL CRM BUFF,ON PRE-CLEAR LDN 1 STM BUFF+4 FORM EXECUTOR DROP FLAG LDC BUFF STD D.T0 D.T0 = PPU MEMORY ADDRESS LDM MRAX+1 LOWER PART OF ECS RA ADC MS.EDRF STD D.T2 D.T2 = LOWER PART OF ECS ADDR SHN -12 ADM MRAX UPPER PART OF ECS RA STD D.T1 D.T1 = UPPER PART OF ECS ADDR LDN 5 STD D.T3 D.T3 = NUM PPU WORDS TO WRITE CALL WRITECS WRITE EXECUTOR DROP FLAG CALL RELDDP RELEASE DDP PORT LJM EXDROPX * * /--- BLOCK COMDECKS 00 000 84/11/30 08.26 TITLE COMMON DECKS * * * CALL SUBROUTINE COMMON DECKS (QUAL$) * BASE M AQA$ SET 1 ASSEMBLE *ADD QFNT ADDRESS* *CALL COMPQFP BASE * *CALL PLAPABS *CALL PLAPDNM *CALL PLAPEQN *CALL PLAPEXO *CALL PLAPPLN * /--- BLOCK STORAGE 00 000 87/06/12 12.03 TITLE STORAGE DEFINITIONS (MAIN OVERLAY) * * * STORAGE -- TABLES, BUFFERS, FLAGS, INDEXES, CELLS * * * (C=DDP) = CHANNEL OF DDP. * = -1 IF NO DDP. * C=DDP TABLE CHANNEL DDP CHANNEL TABLE .NOS252 IFGE OSLEV,678D DDP1 BSSZ 1 PRIMARY DDP CHANNEL DDP2 BSSZ 1 SECONDARY DDP CHANNEL .NOS252 ENDIF * * MASNAM DIS ,*MASTOR* *MASTOR* JOB NAME MFN DATA 0 MAIN-FRAME NUMBER * MASTAB BSSZ 5*5 *MASTOR* POINTER TABLE M.JTAB EQU MASTAB+21 POINTER TO JOB NAME TABLE * CLOKPNT BSSZ 5 *CLOKTAB* POINTER M.CTAB EQU CLOKPNT+3 POINTER TO MSEC CLOCK TABLE * * 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 BSSZ 2 *MASTOR* RAX MFLX BSSZ 2 *MASTOR* FLX PNW BSS 5 PROGRAM NAME WORD NCPNT BSS 1 NUMBER OF CONTROL POINTS CPN DATA 0 CONTROL POINT NUMBER FOR SWITCH MXDRPD DATA 0 EXECUTOR DROP DETECTED FLAG * CKBUFF DATA 0,0,0,0,0 BUFFER FOR MILLISECOND CLOCK DATA 0,0,0,0,0 BUFFER FOR HIGHEST PRIORITY DATA 0,0,0,0,0 BUFFER FOR CPU CLOCK CKLAST BSSZ 6 PREVIOUS CLOCK VALUES CKTICK DATA 0 CLOCK TICK VALUE CKON DATA 0 CLOCK ON/OFF FLAG CKADJF DATA 0 CLOCK ADJUSTMENT FLAG CKADJ DATA 0,0,0,0,0 BUFFER FOR CLOCK ADJUST VALUE CKCPU BSSZ 10 CPU ASSIGNMENT BUFFER CPUSON DATA 4000B = 0 IF ONLY ONE CPU * INITC DATA 0 1 IF INITIALIZATIONS COMPLETE RDDP BSSZ 1 DDP RESERVED FLAG RJTAB BSSZ 1 *JOBTAB* RESERVED FLAG * REQUEST BSSZ 3*5 *MASTOR* TO *MRQ* REQUEST WORDS * II BSS 1 * RII DATA 0 REQUEST SCAN TIMER JII DATA 0 *JOBTAB* SCAN TIMER * CKLTH EQU MS.CKTN CLOKTAB BSSZ 5*CKLTH *CLOKTAB* TABLE IMAGE * CPJNAM BSSZ 5*MS.NCP JOB NAMES BY CONTROL POINT USE LITERALS FORCE LITERAL BLOCK OVBUFF OVBUFF "MRQ.OVX",760B OVERLAY BUFFER BUFFLTH EQU 1460B BUFFER LENGTH BUFFWDS EQU BUFFLTH/5 BUFF EQU * START OF WORK BUFFER .NOS518 IFLT "MODLEVEL",518 DFBLTH EQU BUFFWDS-10 DAYFILE BUFFER LENGTH .NOS518 ENDIF ERRNG 7764B-BUFF-BUFFLTH
plato/source/plaopl/mrq.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator