DSDI
          IDENT  DSDI,I 
          ABS 
          SST 
          SYSCOM B1 
          ENTRY  DSDI 
          ENTRY  MFL= 
          ENTRY  SSJ= 
          NOREF  .BI,.OW,.NW
*COMMENT  DSDI - DEAD START DUMP INTERPRETER. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  DSDI - EXPRESS DEAD START DUMP INTERPRETER.
 DSDI     SPACE  4,10 
***       DSDI - EXPRESS DEAD START DUMP INTERPRETER. 
* 
*         J.E. LAKE          75/01/31.
*         J.R. HILDEBRAND    75/07/15.
*         M.A. DOLCE         81/12/01.
 DSDI     SPACE  4,10 
***       *DSDI* READS AN EXPRESS DEADSTART DUMP TAPE AND FORMATS 
*         SELECTED PORTIONS FOR LISTING.  THE OUTPUT FORMAT IS
*         CONTROLLED BY DIRECTIVES READ FROM A DIRECTIVE INPUT FILE.
          SPACE  4,10 
***       COMMAND FORMAT. 
* 
*         DSDI(P1,P2,...,PN)
* 
*         WHERE PN MAY BE ANY OF THE FOLLOWING- 
* 
*         I      OMITTED     READ DIRECTIVES FROM FILE *INPUT*. 
*                I=NAME      READ DIRECTIVES FROM FILE *NAME*.
* 
*         F      OMITTED     READ EXPRESS DUMP FROM FILE *DUMP*.
*                F=NAME      READ EXPRESS DUMP FROM FILE *NAME*.
* 
*         B      OMITTED     NO BML FILE IS CREATED.
*                B=NAME      BML MAINTENANCE REGISTER MESSAGES ARE
*                            ON FILE *NAME*.
* 
*         L      OMITTED     LISTING IS ON FILE *OUTPUT*. 
*                L=NAME      LISTING IS ON FILE *NAME*. 
* 
*         NR     OMITTED     DUMP FILE IS REWOUND BEFORE PROCESSING.
*                NR          DUMP FILE IS NOT REWOUND.
* 
*         PD     OMITTED     PRINT DENSITY IS 6 LINES PER INCH. 
*                PD          PRINT DENSITY IS 8 LINES PER INCH. 
*                PD=N        PRINT DENSITY IS N LINES PER INCH WHERE N
*                            MAY BE 3, 4, 6 OR 8. 
* 
*         D      D           IF THE DUMP FILE IS NOT IN RANDOM
*                            FORMAT ON MASS STORAGE, IT IS COPIED 
*                            TO A SCRATCH FILE WITH A RANDOM DIR- 
*                            ECTORY.  THE SCRATCH FILE IS THEN
*                            RENAMED WITH THE NAME OF THE ORIGINAL
*                            DUMP FILE AND THE ORIGINAL FILE IS 
*                            RETURNED.
*                D=NAME      PROCESSING IS IDENTICAL EXCEPT THAT THE
*                            RANDOM DUMP FILE IS WRITTEN TO FILE
*                            *NAME*, AND THE ORIGINAL DUMP FILE IS NOT
*                            RETURNED.
* 
*         DMB                NEEDED IF FILE FROM THE *DMB* OR *LOADBC*
*                            UTILITY IS TO BE ANALYZED.  (SEE NOTE) 
* 
*         FULL               NEEDED IF *NOS V/E* AREA OF MEMORY 
*                            IS TO BE ANALYZED.  (SEE NOTE) 
* 
*         P                  USE LOW CORE POINTERS FROM RUNNING SYSTEM
*                            RATHER THAN THOSE IN DUMP FILE.
* 
*         Z                  DIRECTIVES ARE ONLY ON THE COMMAND.
*                            THIS OVERRIDES THE *I* PARAMETER IF
*                            SPECIFIED.  THE COMMAND FORMAT IS -
* 
*                            DSDI(...)TDDDDTDDDDTDDDD...
* 
*                            *T* IS THE DIRECTIVE SEPERATOR.  IT IS THE 
*                            FIRST CHARACTER FOLLOWING THE COMMAND
*                            TERMINATOR AND MAY BE ANY CHARACTER THAT 
*                            WILL NOT BE USED IN A DIRECTIVE. 
*                            *DDDD* REPRESENTS ANY LEGAL DSDI DIRECTIVE.
* 
*         NOTE ON THE *DMB* PARAMETER-
*         *DSDI* MAY BE USED TO ANALYZE A FILE PRODUCED BY THE
*         *DMB* OR *LOADBC* UTILITY WHEN THIS PARAMETER IS PRESENT. 
* 
*         ONLY THE *BCDUMP* DIRECTIVE CAN BE USED TO ANALYZE
*         THE CONTROLWARE DUMP FILE FROM *LOADBC*.
* 
*         TO ANALYZE THE FILE FROM THE *DMB* UTILITY, USE 
*         DIRECTIVES AS THOUGH THE JOB HAD BEEN RUNNING AT
*         CONTROL POINT ONE.  SINCE *DMB* DOES NOT CARRY ALL
*         SYSTEM INFORMATION, ONLY THE EXCHANGE PACKAGE,
*         THE FIELD LENGTH OF THE DUMPED CONTROL POINT AND DUMPED 
*         USER EXTENDED MEMORY ARE AVAILABLE.  USE THE FOLLOWING
*         DIRECTIVES- 
*                CP,1 TO DUMP EXCHANGE PACKAGE
*                RAC,1/C,FWA,LWA TO DUMP CM IN *C* FORMAT 
*                RAC,1/D,FWA,LWA TO DUMP CM IN *D* FORMAT 
*                RA,0/EC/C,FWA,LWA DUMPS EXTENDED MEMORY IN *C* FORMAT
*                RA,0/EC/D,FWA,LWA DUMPS EXTENDED MEMORY IN *D* FORMAT
* 
*         NOTE ON THE *FULL* PARAMETER- 
*         *FULL* MUST BE PRESENT IN ORDER TO PROCESS DUMP RECORDS 
*         BEYOND THE *NOS* PORTION OF MEMORY FROM 180-CLASS MACHINES. 
*         BESIDES THE *NOS V/E* PORTION OF MEMORY, THIS ALSO INCLUDES 
*         EXTERNAL EXTENDED MEMORY (ESM OR *STORNET*) AND BUFFER
*         CONTROLLER DUMP RECORDS.
          SPACE  4,10 
***       ERROR  PROCESSING.
* 
*         ARITHMETIC (RANGE) ERRORS ARE INTERCEPTED 
*         BY *REPRIEVE* AND JOB EXECUTION IS RESUMED
*         AT *ERR19*. 
 DSDI     SPACE  4,10 
***       DAYFILE MESSAGES. 
* 
*         * B PARAMETER NOT ALLOWED WITH DMB DUMP FILE.*
*                IF THE DUMP FILE TO BE ANALYZED IS FROM THE
*                *DMB* UTILITY, A BML FILE CANNOT BE CREATED. 
* 
*         * CM RECORD NOT FOUND.* 
*                CENTRAL MEMORY RECORD NOT FOUND IN DUMP FILE.
* 
*         * DIRECTORY TABLE BAD.* 
*                DIRECTORY TABLE ON RANDOM FILE NOT CORRECT LENGTH. 
* 
*         * DSDI ARGUMENT ERROR.* 
*                AN UNKNOWN KEYWORD WAS ENCOUNTERED.
* 
*         * DSDI ERROR LIMIT EXCEEDED.* 
*                TOO MANY ERRORS WERE DETECTED. 
* 
*         * EXPRESS DUMP COMPLETE (FL USED XXXXXXB)*
*                DUMP COMPLETED NORMALLY. 
* 
*         * MAINTENANCE REGISTER RECORD NOT FOUND.* 
*                MAINTENANCE REGISTER RECORD NOT FOUND IN DUMP FILE.
* 
*         * NO ERRORS REPORTED IN MAINTENANCE REGISTERS.* 
*                NO BML MESSAGES WERE WRITTEN TO THE BML MAINENANCE 
*                REGISTER MESSAGE FILE BECAUSE NO ERRORS WERE 
*                REPORTED IN THE STATUS SUMMARY REGISTERS.
* 
*         * WARNING - INCOMPLETE DUMP FILE.*
*                AN UNEXPECTED EOF WAS DETECTED WHILE COPYING 
*                THE EDD FILE TO A RANDOM FILE DURING INITIALIZATION. 
*                PROCESSING WILL CONTINUE USING THE DATA COPIED SO FAR. 
 DSDI     SPACE  4,10 
***       ERROR MESSAGES. 
* 
*         *ALTERNATE FILE ACTIVE* 
*                ALTERNATE FILE WAS ALREADY BEING PROCESSED.
* 
*         *ALTERNATE OUTPUT TO TERMINAL INCORRECT*
*                ALTERNATE FILE WAS SPECIFIED TO TERMINAL.
* 
*         *BAD SYSTEM POINTER*
*                A BAD SYSTEM POINTER WAS DETECTED IN DUMP FILE.
* 
*         *DIRECTIVE NOT MEANINGFUL.* 
*                THE *MPP.* DIRECTIVE WAS ENTERED WHEN ONLY 10 PPU-S
*                EXIST OR WHEN THE MACHINE IS A CYBER 170 WITH LESS 
*                THAN 20 PPU-S, THE *MPP,N1.* DIRECTIVE WAS ENTERED 
*                WITH N1=0, THE *PMS* DIRECTIVE WAS ENTERED ON A
*                NON-CYBER 170, OR THE VALUE N1 ON THE *PMS,N1.*
*                DIRECTIVE WAS THE SAME AS THE CURRENT VALUE OF THE 
*                SELECT SWITCHES IN THE S/C REGISTER. 
* 
*         *DIRECTIVE PARAMETER ERROR* 
*                AN ERROR WAS DETECTED IN A DIRECTIVE PARAMETER.
* 
*         *DIRECTIVE RESTRICTED TO PRINTER OUTPUT*
*                A DIRECTIVE THAT IS RESTRICTED TO PRINTER OUTPUT WAS 
*                SPECIFIED. 
* 
*         *DIRECTIVE RESTRICTED TO TERMINAL OUTPUT* 
*                A DIRECTIVE THAT IS RESTRICTED TO TERMINAL OUTPUT WAS
*                SPECIFIED. 
* 
*         *DIRECTIVE SHOULD HAVE NO PARAMETERS.*
*                NO PARAMETER VALUES ARE USED BY THE
*                INDICATED DIRECTIVE. 
* 
*         * DMB FILE FORMAT ERROR.* 
*                THE FILE BEING ANALYZED WITH THE *DMB* PARAMETER 
*                PRESENT IS NOT IN THE CORRECT FORMAT.
* 
*         *EXTENDED MEMORY RECORD NOT FOUND*
*                EXTENDED CORE STORAGE RECORD NOT FOUND IN DUMP FILE. 
* 
*         *HARDWARE REGISTERS NOT FOUND*
*                HARDWARE REGISTERS RECORD NOT FOUND IN DUMP FILE.
* 
*         *INCORRECT CONTROL POINT NUMBER*
*                SPECIFIED CONTROL POINT NUMBER WAS GREATER THAN
*                SYSTEM CONTROL POINT NUMBER, OR THE NUMERIC FORMAT 
*                WAS INCORRECT. 
* 
*         *INCORRECT FILE NAME* 
*                AN INCORRECT FILE NAME WAS SPECIFIED.
* 
*         *INCORRECT PRINT DENSITY SELECTION* 
*                AN INCORRECT PRINT DENSITY WAS SPECIFIED OR THE SYSTEM 
*                VALUE FOR LINES PER PAGE IS SO SMALL THAT IT CAUSES
*                THE SPECIFIED DENSITY TO BE UNUSABLE.
* 
*         *INCORRECT PRINT OPTION SELECTION*
*                AN INCORRECT PRINT OPTION WAS SPECIFIED. 
* 
*         *INSUFFICIENT NFL SPACE.* 
*                CONTROL POINT BEING DUMPED WITH *CP* DIRECTIVE 
*                HAS A NEGATIVE FIELD LENGTH OF LESS THAN THE 
*                DEFAULT VALUE. 
* 
*         *INCORRECT DISK BUFFER NUMBER.* 
*                THE DISK BUFFER NUMBER ON THE DIRECTIVE
*                WAS GREATER THAN THAT OF THE LAST DISK BUFFER
*                WITH THE SPECIFIED MACHINE ID. 
* 
*         *INCORRECT MACHINE ID.* 
*                THE MACHINE ID USED TO SEARCH THE I/O
*                BUFFER DEFINITION TABLE IN EXTENDED MEMORY 
*                WAS NOT FOUND. 
* 
*         *NO ACTIVE DISK BUFFERS.* 
*                NO DISK BUFFERS IN EXTENDED MEMORY HAVE NONZERO
*                ACTIVITY COUNTS IN THEIR CORRESPONDING CONTROL 
*                BUFFER TABLE ENTRIES.
* 
*         *NO BUFFERED DEVICES DEFINED.*
*                DISK BUFFERS ARE NOT DEFINED ON THE DUMP FILE. 
* 
*         *PAGE DESCRIPTOR ENTRY NOT FOUND.*
*                THE CYBER 170-8XX PAGE DESCRIPTOR ENTRY FOR A CM 
*                ADDRESS WAS NOT FOUND. 
* 
*         *PARAMETER CHARACTER COUNT EXCEEDED.* 
*                MORE THAN TEN CHARACTERS WERE USED WITH ONE PARAMETER. 
* 
*         *PPU NOT FOUND* 
*                REQUESTED PPU RECORD NOT FOUND IN DUMP FILE. 
* 
*         * PVA WITH RING = 0.* 
*                A CM ADDRESS FOR A CYBER 170-8XX HAS AN INCORRECT RING 
*                VALUE.  THE VALUE MUST BE IN THE RANGE OF 1 TO 15. 
* 
*         *RECORD NOT FOUND*
*                SPECIFIED RECORD NAME NOT FOUND IN SPECIFIED FILE. 
* 
*         *REQUESTED MEMORY NOT FOUND*
*                REQUESTED MEMORY WAS NOT FOUND IN DUMP FILE. 
* 
*         *RESIDENT CENTRAL LIBRARY EMPTY.* 
*                NO PROGRAMS WERE FOUND IN THE RESIDENT CENTRAL 
*                LIBRARY IN THE DUMP FILE.
* 
*         * SEGMENT MISSING.* 
*                THE SEGMENT ID PART OF A CYBER 170-8XX ADDRESS IS
*                INCORRECT OR THE SEGMENT CANNOT BE FOUND IN THE
*                SEGMENT TABLE. 
* 
*         *SELECTED DEVICE NOT MASS STORAGE.* 
*                AN EST ORDINAL SPECIFIED WITH THE *MST*
*                DIRECTIVE WAS NOT THAT OF A MASS STORAGE DEVICE. 
* 
*         *SELECTED ENTRY BEYOND TABLE BOUNDARY.* 
*                THE ENTRY NUMBER SELECTED TO BE DUMPED FROM
*                THE DESIRED BUFFERED DEVICE TABLE WAS
*                GREATER THAN THAT OF THE LAST TABLE ENTRY. 
* 
*         *STATUS/CONTROL REGISTERS NOT FOUND*
*                STATUS/CONTROL REGISTERS RECORD NOT FOUND IN DUMP
*                FILE.
* 
*         *SUBSYSTEM NOT FOUND* 
*                A SUBSYSTEM WAS NOT FOUND IN DUMP FILE.
* 
*         *TAPE MUST BE REQUESTED AS LABELED* 
*                AN *EDD* TAPE WAS REQUESTED AS UNLABELED.
* 
*         *UNRECOGNIZABLE DIRECTIVE*
*                AN UNRECOGNIZABLE DIRECTIVE WAS ENCOUNTERED. 
* 
*         *USER EXTENDED MEMORY NOT DEFINED*
*                NO USER EXTENDED MEMORY SPACE WAS DEFINED IN THE CMR 
*                WORD *ECRL*. 
* 
*         *WORD ADDRESS NOT FOUND*
*                WORD ADDRESS SPECIFIED NOT FOUND IN SPECIFIED RECORD 
*                ON DUMP FILE.
* 
*         *PROBE TABLE NOT AVAILABLE.*
*                THE PROBE TABLE IS IN AN INDETERMINANT STATE BECAUSE 
*                IT WAS INTERLOCKED AT THE TIME OF THE DUMP.
* 
*         *PROBE NOT ENABLED.*
*                PROBE WAS NOT ENABLED AT DEADSTART TIME. 
          TITLE  ASSEMBLY CONSTANTS.
          SPACE  4
****      ASSEMBLY CONSTANTS. 
  
  
 TMIN     EQU    16000B      MINIMUM TABLE SPACE TO RUN 
 IBUFL    EQU    200B        DIRECTIVE INPUT FILE BUFFER LENGTH 
 OBUFL    EQU    1001B       OUTPUT FILE BUFFER LENGTH
 ABUFL    EQU    1001B       ALTERNATE OUTPUT FILE BUFFER LENGTH
 FBUFL    EQU    3007B       DUMP INPUT FILE BUFFER LENGTH
 JBUFL    EQU    200B        ALTERNATE INPUT FILE BUFFER LENGTH 
 SBUFL    EQU    1000B       BINARY SCRATCH FILE BUFFER LENGTH
 BBUFL    EQU    1001B       BML FILE BUFFER LENGTH 
 CPLEN    EQU    200B        LENGTH OF EACH CONTROL POINT AREA
 LRCL     EQU    100B        NUMBER OF RCL ENTRIES
 LRPL     EQU    400B        NUMBER OF RPL ENTRIES
 NERR     EQU    50          NUMBER OF ERRORS ALLOWED 
 MAXP     EQU    20          MAXIMUM NUMBER OF PPU-S
 DMBCM    EQU    1000B       CMR SIZE IN WORDS FOR DMB MODE 
****
          SPACE  4,10 
*         *DSP* FLAG BIT EQUIVALENCES.
  
  
 FRCS     EQU    2           ROUTE TO CENTRAL SITE
 FRTI     EQU    4           TID OR FM/UN 
 FRDC     EQU    20B         DISPOSITION CODE 
          TITLE  SUB-SYSTEM COMMON DECKS. 
          ORG    110B 
          SPACE  4
**        SYMBOLIC COMMON DECKS.
  
  
*CALL     COMCCMD 
*CALL     COMCMAC 
*CALL     COMCMTM 
  
  
          QUAL   BIO
          BASE   M
*CALL     COMSBIO 
          BASE   *
          QUAL   *
  
          QUAL   DFT
*CALL     COMSDFT 
          QUAL   *
  
 QUAL$S   EQU    0
*CALL     COMSDFS 
  
          QUAL   HIO
*CALL,COMSHIO 
          QUAL   *
  
          QUAL   IOU
*CALL     COMSIOU 
          QUAL   *
  
*CALL,COMSMMF 
  
          QUAL   VE 
*CALL     COMSDST 
          QUAL   *
  
*CALL     COMSMSC 
*CALL     COMSMTR 
  
          QUAL   MSP
*CALL     COMSMSP 
          QUAL   *
  
          QUAL   MTX
*CALL     COMSMTX 
          QUAL   *
  
          QUAL   REM
*CALL     COMSREM 
          QUAL   *
  
*CALL     COMSSCR 
  
*CALL,COMSSSD 
  
          QUAL   SSJ
*CALL     COMSSSJ 
          QUAL   *
  
          QUAL   1DS
*CALL     COMS1DS 
          QUAL   *
  
          QUAL   COMS176
*CALL     COMS176 
          QUAL   *
  
          QUAL   DSL         MUST FOLLOW *COMSMTX* CALL 
*CALL     COMSDSL 
          QUAL   *
          SPACE  4,10 
**        COMMON DECK EQUIVALENCES. 
  
  
 DSDL     EQU    /1DS/DSDL
          TITLE  MACRO DEFINITIONS. 
 CARD     SPACE  4,6
**        CARD - GENERATE DIRECTIVE PROCESSOR TABLE ENTRY.
* 
*         CARD   R,NAME,ERR 
*                R = RESTRICTIONS - *P* IF ONLY FOR PRINTER OUTPUT. 
*                                   *T* IF ONLY FOR TERMINAL. 
*                NAME = DIRECTIVE NAME. 
*                ERR = ERROR RETURN ADDRESS.
  
  
          NOREF  /DIRECT/.A 
 CARD     MACRO  R,NAME,ERR 
 .A       SET    0
          IFC    EQ,*R*P*,1 
 .A       SET    40B
          IFC    EQ,*R*T*,1 
 .A       SET    20B
          VFD    6/.A,18/0,18/ERR,18/NAME 
          ENDM
 FIELD    SPACE  4,20 
**        FIELD - GENERATE TABLE FIELD DESCRIPTOR.
* 
*         DESCRIPTOR FORMAT - 
* 
*T WORD0  6/ IND,18/ DIGIT WIDTH,18/ FIRST DIGIT,18/ WORD ORDINAL 
*T WORD1  60/ DISPLAY CODE DESCRIPTION OF FIELD 
*T WORD2  60/                 * 
*T WORD3  60/                 * 
* 
*         FIELD  O,(        DESCRIPTION        ),F,W,I
* 
*                *DESCRIPTION* MUST BE 27 CHARACTERS LONG.
*                O = WORD ORDINAL.
*                F = FIRST BIT NUMBER (LEFTMOST BIT IS 59). 
*                W = FIELD WIDTH IN BITS. 
*                I - NON-BLANK IF WORD ORDINAL CONTAINS A POINTER TO
*                    WORD CONTAINING WORD ORDINAL IN BITS 17-0. 
* 
*                FIELD BOUNDARIES MUST BE ON 3 BIT DIGIT
*                BOUNDARIES.
  
  
          NOREF  .A,.B
 FIELD    MACRO  O,D,F,W,I
 .A       SET    59D-F
          ERRNZ  .A-.A/3*3   STARTING BIT NOT ON 3-BIT BOUNDARY 
          ERRNZ  W-W/3*3     DIGIT WIDTH NOT ON 3-BIT BOUNDARY
          IFC    NE,$I$$,2
 .B       SET    1
          SKIP   1
 .B       SET    0
 .C       MICRO  1,1,$O$
          IFC    LT,$".C"$0$,1
          SKIP   5
          IFC    GT,$".C"$9$,1
          SKIP   3
          VFD    6/.B,18/W/3,18/.A/3,18/O_B 
 .BA      MICRO  1,, B
          SKIP   2
          VFD    6/.B,18/W/3,18/.A/3,18/O 
 .BA      MICRO  1,,
          DATA   27H_D
 .1       IFC    EQ,/I//
  
*         VALIDATE WORD AND BIT PARAMETERS. 
  
 .NW      SET    O".BA" 
 .BI      IFEQ   F,59D
          ERRNZ  .NW-.OW-1   SEQUENCE ERROR - WORD O
          ERRNZ  .BI         SEQUENCE ERROR - WORD O, BIT F 
 .BI      ELSE
          ERRNZ  F-.BI       SEQUENCE ERROR - WORD O, BIT F 
 .BI      ENDIF 
 .OW      SET    .NW
 .BI      MAX    F-W,0
 .1       ENDIF 
          ENDM
 GETCM    SPACE  4,10 
**        GETCM - READ 60-BIT CM WORDS FROM DUMP FILE.
* 
*         GETCM  FWA,N
* 
*         IF *FWA,N* IS MISSING, ONE WORD IS READ TO X6.
* 
*         CALLS  RCM. 
  
  
 GETCM    MACRO  FWA,N
 .A       IFC    NE,*FWA**
          R=     B6,FWA 
          R=     B7,N 
 .A       ELSE
          SB6    B0 
 .A       ENDIF 
          RJ     RCM         READ CM
          ENDM
 PRINT    SPACE  4,8
**        PRINT - PRINT LINE. 
* 
*         PRINT  FWA,N
* 
*         IF *N* IS MISSING, LINE IS IN *C* FORMAT. 
*         IF *N* IS PRESENT, LINE IS IN *S* FORMAT. 
* 
*         CALLS  WOF. 
  
  
 PRINT    MACRO  FWA,N
          R=     X1,FWA 
          IFC    NE,*N**,1
          R=     X2,N 
          IFC    EQ,*N**,1
          SX2    B0 
          RJ     WOF
          ENDM
 RFDSC    SPACE  4,15 
**        RFDSC - REGISTER FILE DESCRIPTOR BUILDER. 
* 
* DSC2    RFDSC  RN,DSC1
* 
*         RN     = REGISTER NUMBER. 
*         DSC1   = LARGE DESCRIPTOR.
*         DSC2   = TWO CHARACTER REGISTER NAME. 
* 
*         CREATES A WORD OF THE FORM: 
* 
*         VFD    9/RN,17/0,17/2RDSC2,17/DSC1
  
  
          MACRO  RFDSC,D2,RN,D1 
          VFD    9/0#_RN,17/0 
 .A       IFC    NE,$D2$$ 
          VFD    17/2R_D2 
 .A       ELSE
          VFD    17/0 
 .A       ENDIF 
 .B       IFC    NE,$D1$$ 
          VFD    17/=C*D1*
 .B       ELSE
          VFD    17/0 
 .B       ENDIF 
          ENDM
 SCLASS   SPACE  4,15 
**        SCLASS - DEFINE SERVICE CLASS TABLE.
* 
*         SCLASS NM,MN,DF,ST,TX 
* 
*         ENTRY  *NM* = SERVICE CLASS NAME. 
*                *MN* = TWO CHARACTER MNEMONIC. 
*                *DF* = DAYFILE MESSAGE CHARACTER.
*                *ST* = SHORT TEXT FOR *QFTLIST*. 
*                *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE. 
* 
*         NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
*                THIS MACRO.
  
  
          PURGMAC  SCLASS 
  
 SCLASS   MACRO  NM,MN,DF,ST,TX 
 .SCL     RMT 
          DATA   10L_NM        TX 
 .SCL     RMT 
 SCLASS   ENDM
  
  
 SCL$     EQU    0           ONLY PROCESS CLASSES WITH JCB-S
*CALL     COMSSCD 
 STBL     SPACE  4,10 
**        STBL - SET TABLE POINTERS.
* 
*         STBL   TBL
* 
*         TBL = TABLE NAME. 
* 
*         EXIT   (B2) = TABLE POINTER.
*                (X3) = SUBTITLE. 
*                (X6) = TABLE DESCRIPTOR POINTER. 
*                (X7) = TABLE ENTRY LENGTH. 
  
  
 STBL     MACRO  TBL
          R=     B2,TBL_P 
          SA3    =10H_TBL 0000
          R=     X7,TBL_E 
 .A       MICRO  1,2,$TBL$
          R=     X6,TF_".A" 
          ENDM
 S2BIT    SPACE  4,10 
**        S2BIT - CREATE BIT DEFINITIONS FOR THE CYBER 170-8X5. 
* 
*         S2BIT  POS,DESC,FLAGS 
* 
*         POS    = BIT POSITION TO BE DESCRIBED (OCTAL).
*         DESC   = DESCRIPTION OF THE BIT.
*         FLAGS  = MACHINES ON WHICH THE DESCRIPTION IS VALID.
* 
*         CREATES A WORD OF THE FORM
* 
*         VFD    9/POS,17/FLAGS,17/0,17/=C*DESC*
  
  
 S2BIT    MACRO  POS,DESC,F 
          LOCAL  FLG
 FLG      EQU    F 77B
          VFD    9/POS,17/FLG,34/=C*DESC* 
          ENDM
 SXREG    SPACE  4,15 
**        SXREG - CREATE MAINTENANCE REGISTER TABLE ENTRYS FOR THE
*                C170-SX MAINFRAMES.
* 
*         SXREG  REG,DEFMSG,BITDEF,FLAGS
* 
*         REG    = MAINTENANCE REGISTER NUMBER. 
*         DEFMSG = DESCRIPTION OF THE MAINTENANCE REGISTER. 
*         BITDEF = LIST OF BIT DEFINITIONS FOR REGISTER.
*         FLAGS  = LIST OF VALID PROCESSORS.
* 
*         CREATES A WORD OF THE FORM: 
* 
*         VFD    9/REG,17/FLAGS,17/BITDEF,17/DEFMSG 
  
  
 SXREG    MACRO  R,D,B,F
          LOCAL  FLG
 FLG      EQU    F 77B
          VFD    9//IOU/_R,17/FLG 
 .A       IFC    NE,$B$$
          VFD    17/B 
 .A       ELSE
          VFD    17/0 
 .A       ENDIF 
 .B       IFC    NE,$D$$
          VFD    17/=C*D* 
 .B       ELSE
          VFD    17/0 
 .B       ENDIF 
          ENDM
  
 S1       EQU    1S1
 S2       EQU    1S2
 I2       EQU    S2 
 S3       EQU    1S3
 THETA    EQU    1S4
 I4A      EQU    1S4         MODEL 40 IOU 
 I4S      EQU    1S5         MODEL 42 IOU 
          TITLE  FETS AND CONTROL STORAGE.
          ORG    110B 
 FETS     SPACE  4
**        FILE ENVIRONMENT TABLES.
  
  
 I        BSS    0           DIRECTIVE INPUT FILE 
 INPUT    FILEC  IBUF,IBUFL,(FET=6) 
  
 J        BSS    0           ALTERNATE INPUT FILE 
 ALTINP   FILEC  JBUF,JBUFL,(FET=6) 
  
 F        BSS    0           BINARY INPUT FILE
 DUMP     FILEB  FBUF,FBUFL,(FET=7) 
  
 F1       BSS    0           REFORMATTING SCRATCH FILE
 ZZZZZG1  FILEB  SBUF,SBUFL,(FET=8) 
  
 L        BSS    0           LISTING OUTPUT FILE
 OUTPUT   FILEC  OBUF,OBUFL,(FET=6) 
  
 A        BSS    0           ALTERNATE LIST FILE
 ALTRNT   FILEC  ABUF,ABUFL,(FET=8) 
  
 S        BSS    0           BINARY SCRATCH FILE
 ZZZZZG0  RFILEB SBUF,SBUFL,(FET=8) 
  
 B        BSS    0           BML MAINTENANCE REGISTER FILE
 BML      FILEB  BBUF,BBUFL,(FET=8) 
 BFMB     SPACE  4,30 
**        BFMB - BML FILE MESSAGE BLOCK.
* 
*         NOTE - REVISION C OF THE BML INTERFACE SPECIFICATIONS 
*         WAS FOLLOWED. 
* 
*T,BFMB   1/P, 17/ 0, 18/ PMS, 6/ 0, 18/ CMS
*T        12/ CMS, 12/ 0, 36/ PDT 
*T        60/ JOBID 
*T        12/ MSGID, 12/ SYM, 6/ 0, 6/ 17B, 12/ 0, 12/ SEQ
*T        6/ M, 6/ D, 6/ 0, 6/ F, 36/ 0 
*T        60/ DATA
*T        60/ DATA
*T        60/ DATA
*T        60/ DATA
* 
*         P = PARITY FLAG.
*         PMS = PREVIOUS MESSAGE SIZE.
*         CMS = CURRENT MESSAGE SIZE. 
*         PDT = PACKED DATE AND TIME. 
*         JOBID = JOB IDENTIFICATION. 
*         MSGID = MESSAGE IDENTIFICATION. 
*         SYM = SYMPTOM CODE. 
*         SEQ = DFT SEQUENCE NUMBER.
*         M = MESSAGE CONTENT FLAGS.
*                BIT 54 SET INDICATES SUPPORTIVE STATUS BUFFER DATA.
*                BIT 55 SET INDICATES MODEL DEPENDENT BUFFER DATA.
*         D = DFT REVISION LEVEL. 
*         F = FLAG FIELD. 
*         DATA = BML MAINTENANCE REGISTERS. 
* 
*         NOTE - IF THE BLOCK LENGTH (*BFMBL*) CHANGES, *P* 
*         MAY NEED TO BE SET TO MAINTAIN ODD PARITY.
  
  
 BFMB     BSS    0           BML FILE MESSAGE BLOCK 
  
          VFD    1/0,17/0,18/0,6/0,18/BFMBL 
          VFD    12/BFMBL,12/0,36/0 
          VFD    60/10H  SYS S. 
          VFD    12/HM0250,12/0,6/0,6/17B,12/0,12/0 
          VFD    6/0,6/0,6/0,6/4,36/0 
 BFHL     EQU    *-BFMB      HEADER LENGTH
  
 BFBD     BSS    4           DATA BLOCK 
 BFBDL    EQU    *-BFBD      DATA BLOCK LENGTH
  
 BFMBL    EQU    *-BFMB-1    BML FILE MESSAGE BLOCK LENGTH
  
 BFBDA    BSS    48-4        ADDITIONAL MODEL DEPENDENT DATA BLOCK
 BFBDAL   EQU    *-BFBD      DATA BLOCK LENGTH
  
 BFBI     BSS    1           DATA BLOCK INDEX 
          SPACE  4,10 
**        REPRIEVE PARAMETER BLOCK. 
          SPACE  2,10 
 RPVB     VFD    36/0,12/31B,12/0 
          VFD    30/0,30/PER
          BSSZ   27B
 CONTROL  SPACE  4
**        CONTROL STORAGE CELLS.
  
  
 AC       CON    0           ACTUAL NUMBER OF PPU-S IN SYSTEM 
 AF       CON    0           ALTERNATE INPUT ACTIVE FLAG
 AM       CON    0           *ALLMEM* FLAG
 AO       CON    0           ADDRESS OFFSET 
 AP       CON    0           ADVANCED PROCESSOR 
 BA       CON    0           REFERENCE ADDRESS FOR DUMP 
 BD       CON    0           BINARY DUMP MODE FLAG
 BE       CON    0           HIGH-SPEED DEVICE I/O TABLE ENTRY IN *BDT* 
 BF       CON    0           BML MAINTENANCE REGISTER FILE NAME 
 BI       CON    0           INDEX INTO UBUF
 CE       CON    0           CM EXTENSION ON MAINFRAME
 CF       CON    1           ZERO IF CYBER 176 MAINFRAME
 CH       CON    0           INPUT DIRECTIVE STRING BUFFER POINTER
 CI       CON    0           CENTRAL MEMORY BLOCK RANDOM INDEX
 CL       CON    0           CONTROL POINT DUMP LIST OPTIONS
 CN       CON    0           CONTROL POINT NUMBER UNDER ANALYSIS
 CO       DATA   0LXTAF      DEFAULT LIST OPTIONS FOR CP/PCP DUMP 
 C4       CON    0           NUMBER OF CCP-S OR CCH-S 
 DA       CON    0           FWA OF DISK BUFFER AREA
 DP       CON    0           NUMBER OF DIRECTIVES PROCESSED 
 DR       CON    0           CONVERT DUMP INPUT FILE TO RANDOM FILE 
 EB       CON    0           EMPTY BML FILE FLAG
 EC       CON    0           ERROR COUNTER
 ED       CON    0           *EDD* DUMP 
 EE       CON    0           EXTENDED MEMORY SELECTION ERROR FLAG 
 EH       CON    0,0         *EIC* RECORD HEADER + RANDOM INDEX 
 EI       CON    0           *EI* RELATIVE ADDRESS FLAG 
 EM       CON    0           EXTENDED MEMORY SHIFT COUNT
 EQ       CON    0           *EQDE* WORD FROM EST ENTRY 
 FI       CON    0           POINTER FOR FNT SEARCH 
 FC       CON    0           FL OF CONTROL POINT UNDER ANALYSIS 
 FM       CON    0           CURRENT FIELD LENGTH 
 FN       CON    0           INITIAL FIELD LENGTH 
 FW       CON    0           FIRST WORD ADDRESS FOR DUMP
 LW       CON    0           LAST WORD ADDRESS+1 FOR DUMP 
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
 IC       CON    0,0         *CPP* PROCESSING FLAG / *NPP*/*CPP* FLAG 
 ID       CON    0           RECORD ID
 IO       CON    1           IOU TYPE (0 = I4A OR I4S IOU)
 K4       CON    0           FLAG FOR CONTROLLER SIZE 
 MB       CON    0           MEMORY BASE ADDRESS (FOR ECM)
 ME       CON    0           NUMBER OF MCT ENTRIES
 MH       CON    0,0         *MEM* RECORD HEADER + RANDOM INDEX 
 MI       CON    0           MEMORY BLOCK RANDOM INDEX
 MT       CON    0           MEMORY TYPE (NON-ZERO = ESM) 
 NC       CON    0           NUMBER OF CONTROL POINTS IN SYSTEM 
 NP       CON    0           NUMBER OF PP COMMUNICATION AREAS IN SYSTEM 
 NR       CON    0           NEXT RECORD POINTER
 OP       CON    0           PCPA OFFSET
 PC       CON    0           PP COMMUNICATION AREA POINTER
 PF       CON    0           LOW CORE POINTER FLAG
 PI       CON    0           SEARCH POINTER FOR PPU/CONTROL POINT DUMPS 
 PP       CON    0           NUMBER OF PPU TO ANALYZE 
 PS       CON    4096        PP MEMORY SIZE 
 RC       CON    0           RA OF CONTROL POINT UNDER ANALYSIS 
 RI       CON    0           RANDOM ADDRESS FOR RECORD BEING DUMPED 
 SSJ=     EQU    /SSJ/SSJP   DEFINE *SSJ=* PRIVILEGES 
 UA       CON    0           USER CONTROLLED REFERENCE ADDRESS
 UE       CON    0           USER EXTENDED MEMORY SHIFT COUNT 
 UI       CON    0           USER CONTROLLED MEMORY BLOCK RANDOM INDEX
 US       DATA   10H 0000000    USER CONTROLLED SUBTITLE
          DATA   10HCM
 VE       CON    0           *NOS V/E* MEMORY PRESENT 
 XB       CON    0           MEMORY BOUNDS REAL BYTE ADDRESS
 XH       CON    0           MEMORY RECORD VALID FWA
 XI       CON    0           MEMORY RECORD RANDOM INDEX 
 XL       CON    0           MEMORY RECORD VALID LWA+1
 XM       CON    0           MEMORY RECORD PAGE SIZE MASK 
 ZF       CON    0           COMMAND DIRECTIVES FLAG
  
*         OUTPUT LIST CONTROLS - ORDER MUST BE PRESERVED. 
  
 OF       CON    L           LIST FILE FET POINTER
 CC       DATA   1R          CARRIAGE CONTROL CHARACTER 
 EF       CON    0           NO AUTO EJECT FLAG 
 LC       CON    100         LINE NUMBER
 PD       CON    LINP-3      NUMBER OF LINES PER PAGE 
 PN       CON    1           PAGE NUMBER
 TF       CON    0           TERMINAL FLAG
 LISTING  SPACE  4
**        LISTING TITLE LINES.
  
  
 TITL     BSS    0           LISTING TITLE LINE 
          DATA   10H1RA = 
 TITL1    DATA   50H
 TITL2    DATA   10H
          DATA   20H     DSDI 
 DATE     DATA   10H
 TIMM     DATA   10H
          DATA   10H      PAGE
 PAGE     DATA   10H
 TITLL    EQU    *-TITL 
  
 SBTL     BSS    0           LISTING SUBTITLE LINE
          DATA   10H
 SBTL1    DATA   10H
 SBTL2    DATA   50H
          DATA   30H
 SBTL3    DATA   36C
          DATA   2C 
 SBTLL    EQU    *-SBTL 
          SPACE  4,10 
**        CYBER 170-8X5 PROCESSOR POINTERS. 
  
  
 S2STL    CON    0           SEGMENT TABLE LENGTH 
 S2STA    CON    0           SEGMENT TABLE ADDRESS
 S2PTA    CON    0           PAGE TABLE ADDRESS 
 S2PTL    CON    0           PAGE TABLE LENGTH
 S2PSM    CON    0           PAGE SIZE MASK 
 S2MPS    CON    0           MONITOR PROCESS STATE REGISTER 
 S2JPS    CON    0           JOB PROCESS STATE POINTER
 S2LPS    CON    0           LIVE PROCESSOR STATE ADDRESS 
 S2RMA    CON    0           SAVED RMA
 S2PVA    CON    0           SAVED PVA
  
 PTEVCUM  CON    0           PAGE TABLE ENTRY (VALID, CONT, USED, MOD)
 PTEPD    CON    0           PAGE DESCRIPTOR
 STSDE    CON    0           SEGMENT TABLE DESCRIPTOR ENTRY 
 BRMA     CON    0           BYTE REAL MEMORY ADDRESS 
          SPACE  4,10 
**        DUMP FILE RECORD NAMES. 
  
  
 .NPP     DATA   0LPP00      C170 NORMAL PP MEMORY
 .FPP     DATA   0LFP00      FIRST LEVEL PP MEMORY
          ERRNZ  .NPP+1-.FPP CODE DEPENDS ON VALUE
  
 .BCD     VFD    12/0,12/0LBC,36/0     BUFFER CONTROLLER HEADER 
 .BCH     VFD    12/0,24/0LCH00,24/0   BUFFER CONTROLLER MEMORY 
 .CCR     DATA   0LCCR       CIO CHANNEL REGISTERS
 .CMM     DATA   3LCM        C170 CENTRAL MEMORY (60 BIT) 
 .CPP     VFD    6/0,18/0LD00,36/0     CIO PP MEMORY
 .CP0     VFD    12/0,24/0LCPU0,24/0   CPU HARDWARE EXCHANGE PACHAGE
 .DFT     DATA   0LDFT       DFT BLOCK
 .DSB     DATA   0LDSB       DUAL STATE BLOCK 
 .ECS     DATA   0LECS       EXTENDED CORE STORAGE
 .EIB     DATA   0LEIB       ENVIRONMENTAL INTERFACE (OLD NAME) 
 .EIC     DATA   0LEIC       ENVIRONMENTAL INTERFACE
 .ESM     DATA   0LESM       EXTENDED SEMI-CONDUCTOR MEMORY 
 .IMR     DATA   0LIMR       IOU MAINTENANCE REGISTERS
 .IPP     DATA   0LI00       C180 NORMAL PP MEMORY
 .MEM     DATA   0LMEM       C180 CENTRAL MEMORY (64 BIT) 
 .MMR     DATA   0LMMR       MEMORY MAINTENANCE REGISTERS 
 .PCS     DATA   0LPCS       PROCESSOR CONTROL STORE
 .PIS     DATA   0LPIS       C180-99X INSTRUCTION BUFFER STACK
 .PMR     DATA   0LPMR       PROCESSOR MAINTENANCE REGISTERS
 .POC     DATA   0LPOC       C180-99X PROCESSOR OPERAND CACHE 
 .PPM     DATA   0LPPM       C180-99X PROCESSOR PAGE MAP
 .PRF     DATA   0LPRF       C180-99X PROCESSOR REGISTER FILE 
 .PRG     DATA   0LPRG       C180-99X PROCESSOR RGU REGISTERS 
 .PRH     DATA   0LPRH       C180-99X PROCESSOR HISTORY FILE
 .PSM     DATA   0LPSM       C180-99X PROCESSOR SEGMENT MAP 
 .PSR     DATA   0LPSR       I4 IOU OPERATING REGISTERS 
 .PXP     DATA   0LPXP       PROCESSOR EXCHANGE PACKAGES
 .SCR     DATA   0LSCR       C170 STATUS/CONTROL REGISTERS
 .SC1     DATA   0LSC1       C170 S/C REGISTERS AFTER CLEAR 
          SPACE  4,10 
**        MISCELLANEOUS CONSTANTS.
  
  
 K4BFL    EQU    10000B      4K BUFFER CONTROLLER SIZE (4096D)
 K8BFL    EQU    20000B      8K BUFFER CONTROLLER SIZE (8192D)
 K16BFL   EQU    40000B      16K BUFFER CONTROLLER SIZE 
 KIBFL    EQU    106000B     63X ADAPTOR SIZE 
 K4RBFL   EQU    K4BFL/40*40+40  4K BUFFER SIZE, ROUNDED UP 
 K4WBFL   EQU    K4RBFL/5*2  NUMBER OF WORDS TO CONTAIN *K4RBFL* BYTES
          TITLE  MANAGED TABLES.
 TCMT     SPACE  4,5
**        TCMT - CENTRAL MEMORY TABLES. 
*         CONTAINS CM TABLES FROM LOCATION 0 THROUGH THE END OF THE 
*         SECDED ID TABLE AS DEFINED IN LOW CORE.  LOW CORE MAY COME
*         FROM THE DUMP FILE OR THE RUNNING SYSTEM DEPENDING UPON THE 
*         COMMAND *P* OPTION. 
  
  
 TCMT     TABLE 
 TDIR     SPACE  4,5
**        TDIR - BINARY DUMP FILE RANDOM DIRECTORY. 
*         ENTRY  2 WORDS PER RECORD.
* 
*T WORD0  60/FIRST WORD OF RECORD 
*T WORD1  30/WORD COUNT,30/RANDOM ADDRESS 
  
  
 TDIR     TABLE  2
          SPACE  4,10 
**        TNFL - NEGATIVE FIELD LENGTH TABLE. 
*         CONTAINS THE NEGATIVE FL FOR THE CURRENT CONTROL POINT. 
  
  
 TNFL     TABLE 
 TSCR     SPACE  4,3
**        TSCR - SCRATCH TABLE. 
*         USED TO HOLD VARIOUS TABLES AND BUFFERS FROM THE DUMP FILE
*         DURING PROCESSING.
  
  
 TSCR     TABLE 
 TSC1     SPACE  4
**        TSC1 - SCRATCH TABLE. 
  
  
 TSC1     TABLE 
          TITLE  MAIN PROGRAM.
 DSDI     SPACE  4
**        DSDI - MAIN PROGRAM.
  
  
 DSDI     SB1    1           (B1) = 1 THROUGHOUT PROGRAM
          RJ     PRS         PRESET DSDI
          RJ     PBD         PREPROCESS BINARY DUMP 
          RJ     RBI         RANDOMIZE BINARY INPUT 
          RJ     PIO         PRESET INPUT AND OUTPUT FILES
          RJ     CST         CREATE SUBTITLE LINE 
          RJ     RST         READ SYSTEM TABLES 
          RJ     SPP         SET C180 PROCESSOR POINTERS
          MESSAGE MSG1,1,R   * PROCESSING INPUT DIRECTIVES.*
  
*         PROCESS INPUT DIRECTIVE STATEMENTS.  DIRECTIVE PROCESSORS ARE 
*         CALLED BY *CKC* AND EXIT TO *DSD1*. 
  
 DSD1     RJ     RDC         READ NEXT DIRECTIVE
          NZ     X1,DSD2     IF END OF DIRECTIVES 
          RJ     RUC         RESET USER SELECTED CONTROLS 
          BX6    X6-X6       CLEAR DUMP CONTROL BLOCK 
          SA6    CPRA        FWA
          SA6    A6+B1       LWA+1
          SA6    A6+B1       CORE ADDRESS 
          SA6    A6+B1       SUPPRESS REPEAT DATA FLAG
          SA6    A6+B1       FORMAT CODE
          SA6    A6+B1       COLUMN LENGTH
          SA6    CPRA+6      INVERTED ADDRESS 
          SA6    EI          FORCED *EI* ADDRESSING 
          SA6    NR          NEXT RECORD POINTER
          SA6    IC          *CPP* PROCESSING FLAG
          SB2    DSDA        DIRECTIVE PROCESSOR TABLE
          RJ     CKC         CRACK AND PROCESS DIRECTIVE
          JP     ERR3        ERROR - UNRECOGNIZABLE DIRECTIVE 
  
 DSD2     RJ     CBF         CREATE BML MAINTENANCE REGISTER FILE 
          RJ     COF         COMPLETE OUTPUT FILES, RESET FL
          MESSAGE MSG2,,R    * EXPRESS DUMP COMPLETE (FL USED        )* 
          SA1    DP 
          NZ     X1,DSD3     IF DIRECTIVES PROCESSED
          SA1    I           CHECK INPUT FILE NAME
          MX0    42 
          BX1    X0*X1
          ZR     X1,DSD3     IF *I=0* SPECIFIED 
          MESSAGE MSG3,,R    * NO DIRECTIVES PROCESSED.*
 DSD3     SA1    EB 
          ZR     X1,DSD4     IF NOT EMPTY BML FILE
          MESSAGE  MSG4,,R   NO ERRORS IN MAINTENANCE REGISTERS 
 DSD4     ENDRUN
  
 DSDA     BSS    0           CONTROL DIRECTIVE PROCESSOR TABLE
          QUAL   DIRECT 
  
          CARD   P,ACCOUNT
          CARD    ,ALLMEM 
          CARD    ,B
          CARD   P,AP,APR1
          CARD   P,BATCHIO
          CARD   P,BIO
          CARD    ,BCDUMP 
          CARD    ,BUFF 
          CARD    ,C
          CARD    ,CBT
          CARD    ,CCT
          CARD    ,CM 
          CARD    ,CP,CPP1
          CARD    ,CPO
          CARD   P,CT 
          CARD    ,D
          CARD   P,DAYFILE
          CARD   P,DB,DBR4
          CARD    ,DBW
          CARD   P,DDB
          CARD    ,DISPOSE
          CARD   P,DP 
          CARD   P,E
          CARD    ,EC 
          CARD   P,EICB 
          CARD   P,EJ 
          CARD    ,EJOFF
          CARD    ,EJON 
          CARD   P,EJT
          CARD   P,EPB
          CARD   P,ERRLOG 
          CARD   P,EST
          CARD    ,FMFREG 
          CARD   P,FNT
          CARD   P,FOT
          CARD    ,FTT
          CARD    ,HAT
          CARD   P,IAF
          CARD    ,II 
          CARD    ,IOUCR
          CARD    ,IOUMR
          CARD   P,JC 
          CARD   P,LC 
          CARD   P,LDIS 
          CARD   P,LIDT 
          CARD    ,LPVA 
          CARD   P,MAG
          CARD   P,MAGNET 
          CARD   P,MAINLOG
          CARD    ,MCT
          CARD    ,MEMMR
          CARD    ,MPP
          CARD   P,MST
          CARD   P,MTR
          CARD   P,MTRQU
          CARD   P,ODIS 
          CARD    ,OUTPUT 
          CARD   P,P
          CARD    ,PCP
          CARD    ,PD 
          CARD   P,PF 
          CARD   P,PLD
          CARD    ,PMS
          CARD   P,PO 
          CARD    ,PP 
          CARD   P,PROBE
          CARD    ,PROCA
          CARD    ,PROCW
          CARD    ,PROMR
          CARD    ,PROPM
          CARD    ,PRORF
          CARD    ,PROSM
          CARD    ,PROXP
          CARD   P,PST
          CARD    ,PUT
          CARD   P,PX 
          CARD    ,Q
          CARD   P,QF 
          CARD   P,QFT
          CARD    ,QOA
          CARD    ,QOD
          CARD    ,QXA
          CARD    ,QXD
          CARD    ,RA 
          CARD    ,RAC
          CARD   P,RCL
          CARD    ,READ 
          CARD    ,REWIND 
          CARD   P,RHF
          CARD   P,RPL
          CARD   P,SAB
          CARD   P,SC 
          CARD   P,SDA
          CARD   P,SECDED 
          CARD    ,SETCPU 
          CARD    ,SETIOU 
          CARD    ,SETJPS 
          CARD    ,SETRMA 
          CARD    ,SETVEP 
          CARD   P,SST
          CARD    ,TBDUMP 
          CARD    ,TRACE
          CARD    ,UEC
          CARD   P,W
          CARD   P,XP 
          CARD    ,Z
          DATA   0
  
          QUAL
 DAYFILE  SPACE  4
**        DAYFILE MESSAGES. 
  
  
 MSG1     DATA   29C PROCESSING INPUT DIRECTIVES. 
  
 MSG2     DATA   30H EXPRESS DUMP COMPLETE (FL USE
 MSG2A    VFD    12/2LD 
          VFD    36/0        MEMORY USED
          VFD    12/2LB)
          DATA   0
  
 MSG3     DATA   C* NO DIRECTIVES PROCESSED.* 
  
 MSG4     DATA   C* NO ERRORS REPORTED IN MAINTENANCE REGISTERS.* 
  
 MSG5     DATA   C* WARNING - INCOMPLETE DUMP FILE.*
          TITLE  ERROR PROCESSORS.
 ERRORS   SPACE  4
**        ERROR PROCESSORS. 
  
  
 ERR1     SX5    =C* DSDI ARGUMENT ERROR.*
          EQ     PFE         PROCESS FATAL ERROR
  
 ERR2     SX5    =C*STATUS/CONTROL REGISTERS NOT FOUND.*
          EQ     PNE1        PROCESS NON-FATAL ERROR
  
 ERR3     SX5    =C*UNRECOGNIZABLE DIRECTIVE.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR4     SX5    =C* CM RECORD NOT FOUND.*
          EQ     PFE         PROCESS FATAL ERROR
  
 ERR5     SX5    =C*EXTENDED MEMORY RECORD NOT FOUND.*
          EQ     PNE1        PROCESS NON-FATAL ERROR
  
 ERR6     SX5    =C*DIRECTIVE PARAMETER ERROR.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR7     SX5    =C*PPU NOT FOUND.* 
          EQ     PNE1        PROCESS NON-FATAL ERROR
  
 ERR8     SX5    =C*INCORRECT CONTROL POINT NUMBER.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR8.1   SX6    1           CHECK ERROR RETURN ADDRESS 
          SA6    ERRC 
          EQ     ERR8        SET ERROR MESSAGE
  
 ERR9     SX5    =C*INCORRECT PRINT DENSITY SELECTION.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR10    SX5    =C*SUBSYSTEM NOT FOUND.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR11    SX5    =C*ALTERNATE FILE ACTIVE.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR12    SX5    =C*INCORRECT FILE NAME.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR13    SX5    =C*ALTERNATE OUTPUT TO TERMINAL INCORRECT.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR14    SX5    =C*RECORD NOT FOUND.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR15    SX5    =C*HARDWARE REGISTERS NOT FOUND.*
          EQ     PNE1        PROCESS NON-FATAL ERROR
  
 ERR16    SX5    =C*DIRECTIVE RESTRICTED TO PRINTER OUTPUT.*
          EQ     PNE1        PROCESS NON-FATAL ERROR
  
 ERR17    SX5    =C*DIRECTIVE RESTRICTED TO TERMINAL OUTPUT.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR18    SX6    1           CHECK ERROR RETURN ADDRESS 
          SA6    ERRC 
          SX5    =C*WORD ADDRESS NOT FOUND.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR19    SX5    =C*BAD SYSTEM POINTER.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR19.1  SX6    1           CHECK ERROR RETURN ADDRESS 
          SA6    ERRC 
          EQ     ERR19       SET ERROR MESSAGE
  
 ERR20    SX5    =C* DSDI ERROR LIMIT EXCEEDED.*
          EQ     PFE         PROCESS FATAL ERROR
  
 ERR21    SX5    =C*REQUESTED MEMORY NOT FOUND.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR22    SX5    =C*INCORRECT PRINT OPTION SELECTION.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR23    SX5    =C*SELECTED DEVICE NOT MASS STORAGE.*
          EQ     PNE1        PROCESS NON-FATAL ERROR
  
 ERR24    SX5    =C* DIRECTORY TABLE BAD.*
          EQ     PFE         PROCESS FATAL ERROR
  
 ERR25    SX5    =C*DIRECTIVE NOT MEANINGFUL.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR26    SX5    =C*PROBE TABLE NOT AVAILABLE.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR27    SX5    =C*PROBE NOT ENABLED.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR28    SX5    =C* INSUFFICIENT NFL SPACE.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR30    SX5    =C* PAGE DESCRIPTOR ENTRY NOT FOUND.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR31    SX5    =C*RESIDENT CENTRAL LIBRARY EMPTY.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR32    SX5    =C* MEMORY ADDRESS BEYOND CM BOUNDARY.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR33    SX5    =C*PARAMETER CHARACTER COUNT EXCEEDED.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR34    SX5    =C*NO BUFFERED DEVICES DEFINED.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR35    SX5    =C*SELECTED ENTRY BEYOND TABLE BOUNDARY.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR36    SX5    =C*INCORRECT MACHINE ID.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR37    SX5    =C*NO ACTIVE DISK BUFFERS.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR38    SX6    1           CHECK ERROR RETURN ADDRESS 
          SA6    ERRC 
          SX5    =C*INCORRECT DISK BUFFER NUMBER.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR39    SX5    =C* DMB FILE FORMAT ERROR.*
          EQ     PFE         PROCESS FATAL ERROR
  
 ERR40    SX5    =C*DIRECTIVE SHOULD HAVE NO PARAMETERS.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR41    SX5    =C* USER EXTENDED MEMORY NOT DEFINED.* 
          EQ     PNE1        PROCESS ERROR
  
 ERR42    SX5    =C* MAINTENANCE REGISTER RECORD NOT FOUND.*
          EQ     PFE         PROCESS FATAL ERROR
  
 ERR43    SX5    =C* B PARAMETER NOT ALLOWED WITH DMB DUMP FILE.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR44    SX5    =C* SEGMENT MISSING.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR45    SX5    =C* PVA WITH RING = 0.*
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR46    SX5    =C* TAPE MUST BE REQUESTED AS LABELED. * 
          EQ     PFE         PROCESS FATAL ERROR
  
 ERR47    SX5    =C$ CANNOT PROCESS IOU TYPE, USE *ANAD* ON NOS/VE.$
          EQ     PNE         PROCESS ERROR
  
 ERR48    SX5    =C* NO PSEUDO-CONTROL POINTS DEFINED.* 
          EQ     PNE         PROCESS NON-FATAL ERROR
  
 ERR49    SX6    1           CHECK ERROR RETURN ADDRESS 
          SA6    ERRC 
          SX5    =C* INCORRECT PPU PROGRAM NAME.* 
          EQ     PNE1        PROCESS NON-FATAL ERROR
  
 ERR50    SX6    1           CHECK ERROR RETURN ADDRESS 
          SA6    ERRC 
          SX5    =C*PROGRAM NOT FOUND -    .* 
          BX6    X1          SET PROGRAM NAME IN MESSAGE
          SA6    X5+2 
          EQ     PNE1        PROCESS NON-FATAL ERROR
 PNE      SPACE  4,10 
**        PNE - PROCESS NON-FATAL ERROR.
* 
*         ENTRY  AT PNE, LIST CURRENT DIRECTIVE CARD. 
*                AT PNE1, DO NOT LIST CURRENT DIRECTIVE CARD. 
*                (X5) = MESSAGE ADDRESS.
  
  
 PNE      SA1    TF 
          NZ     X1,PNE1     IF CURRENT OUTPUT IS TO TERMINAL 
          SA1    EF 
          SA0    X1          SAVE EJECT FLAG
          SX6    B1 
          SA6    A1          TURN EJECT ON
          RJ     LDC         LIST DIRECTIVE 
          SX6    A0 
          SA6    EF          RESTORE EJECT FLAG 
  
*         CHECK FOR ACTIVE TERMINAL.
  
 PNE1     SX2    L           SET TERMINAL FILE
          RJ     STF
          NZ     X6,PNE2     IF LIST OUTPUT NOT TO TERMINAL 
          WRITE  L,*         SET WRITE CODE IN FET
          WRITEC L,X5        WRITE MESSAGE TO TERMINAL
 PNE2     SA1    TF 
          NZ     X1,PNE4     IF CURRENT OUTPUT TO TERMINAL
          SB2    ERRB        BUILD PRINT MESSAGE
          SB3    B0 
          MX2    -12
 PNE3     SA1    X5+B3       MOVE MESSAGE 
          BX6    X1 
          SA6    B2 
          SB2    B2+B1
          SB3    B3+B1
          BX6    -X2*X6 
          NZ     X6,PNE3     IF NOT END OF MESSAGE
          PRINT  (=2C  )
          PRINT  ERRA 
 PNE4     SA1    EC          ADVANCE ERROR COUNT
          SX6    X1+B1
          SA6    A1 
          SX6    X6-NERR
          PL     X6,ERR20    IF ERROR LIMIT EXCEEDED
          SA1    ERRC 
          ZR     X1,DSD1     IF NOT TO CHECK FOR ERROR RETURN ADDRESS 
          BX6    X6-X6       CLEAR FLAG 
          SA6    A1 
          SA1    A1+B1       GET RETURN ADDRESS 
          SB3    X1 
          ZR     B3,DSD1     IF NONE SPECIFIED
          JP     B3          CONTINUE PROCESSING DIRECTIVE
  
  
 ERRA     DATA   20H *********WARNING - 
 ERRB     BSS    6
 ERRC     CON    0           CHECK ERROR RETURN FLAG
          CON    0           ERROR RETURN ADDRESS 
 PFE      SPACE  4,10 
**        PROCESS FATAL ERRORS. 
* 
*         ENTRY  (X5) = MESSAGE ADDRESS.
  
 PFE      MESSAGE X5,,R 
          RJ     COF         COMPLETE OUTPUT FILES
          ABORT 
          TITLE  COMMON DECKS.
 COMMON   SPACE  4
**        COMMON DECKS. 
  
  
*CALL     COMCARG 
*CALL     COMCCDD 
*CALL COMCCMD 
 ERP1$    EQU    1           SELECT ERROR PROCESSING
*CALL     COMCCIO 
*CALL     COMCCOD 
*CALL     COMCCPM 
*CALL     COMCDXB 
*CALL COMCHXB 
*CALL     COMCLFM 
*CALL     COMCMTP 
*CALL     COMCMVE 
*CALL     COMCRDC 
*CALL     COMCRDO 
*CALL     COMCRDS 
*CALL     COMCRDW 
*CALL     COMCSFN 
*CALL     COMCSTF 
*CALL     COMCSYS 
 USBL$    EQU    1           SELECT VARIABLE STRING LENGTH OPTION 
*CALL     COMCUSB 
*CALL     COMCWTC 
*CALL     COMCWTO 
*CALL     COMCWTS 
*CALL     COMCWTW 
*CALL     COMCZAP 
*CALL     COMDTFN 
*CALL     COMTVDT 
          TITLE  OPERATING SYSTEM TABLE DESCRIPTORS.
          SPACE  4,5
**        THIS SECTION CONTAINS TABLES WHICH DESCRIBE THE KRONOS/NOS
*         OPERATING SYSTEM TABLES.
* 
*         EACH TABLE SHOULD HAVE THE LEFT COLUMN EQUAL TO OR LONGER 
*         THAN THE RIGHT COLUMN.  THE FIELD DESCRIPTION LEFT
*         PARENTHESIS SHOULD BE IN COLUMN 30 AND THE FIELD 27 
*         CHARACTERS LONG.  ALSO, EACH ENTRY SHOULD BE IN THE FORM -
* 
*         FIELD         WORD,(  27 CHARACTER DESCRIPTION ),SB,NB
* 
*         WHERE SB IS THE STARTING BIT OF THE FIELD AND NB IS THE 
*         NUMBER OF BITS IN THE FIELD (MUST BE A MULTIPLE OF 3 BITS). 
 TFLC     SPACE  4
**        TFLC - LOW CORE POINTER DESCRIPTORS.
  
  
 TFLC     VFD    24/0,18/TFLC1,18/TFLC2 
 .OW      SET    0-1         INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFLC1    BSS    0
          FIELD            0,(RESERVED                   ),59,60
          FIELD            1,(                           ),59,60
          FIELD            2,(                           ),59,60
          FIELD            3,(                           ),59,60
          FIELD            4,(                           ),59,60
          FIELD         REML,(RESERVED               REML),59,48
          FIELD         REML,(ERROR FLAGS                ),11,12
          FIELD         DSAL,(DEADSTART ASSISTANT PP DSAL),59,12
          FIELD         DSAL,(SYSTEM CONSOLE DRIVER PP   ),47,12
          FIELD         DSAL,(RESERVED                   ),35,12
          FIELD         DSAL,(CEL PRESENT FLAG           ),23,12
          FIELD         DSAL,(DEADSTART CHANNEL          ),11,12
          FIELD         DSCL,(ACTIVATE ASSISTANT PP  DSCL),59,3 
          FIELD         DSCL,(RESERVED                   ),56,3 
          FIELD         DSCL,(ASSISTANT CHANNEL          ),53,6 
          FIELD         DSCL,(RESERVED                   ),47,48
          FIELD         IN0L,(INSTALLATION WORD 0    IN0L),59,60
          FIELD         IN1L,(INSTALLATION WORD 1    IN1L),59,60
          FIELD         IN2L,(INSTALLATION WORD 2    IN2L),59,60
          FIELD         IN3L,(INSTALLATION WORD 3    IN3L),59,60
          FIELD         IN4L,(INSTALLATION WORD 4    IN4L),59,60
          FIELD         IN5L,(INSTALLATION WORD 5    IN5L),59,60
          FIELD         IN6L,(INSTALLATION WORD 6    IN6L),59,60
          FIELD         IN7L,(INSTALLATION WORD 7    IN7L),59,60
          FIELD           20,(RESERVED                   ),59,60
          FIELD         JSNL,(ZERO                   JSNL),59,12
          FIELD         JSNL,(RESERVED                   ),47,24
          FIELD         JSNL,(JOB SEQUENCE NUMBER        ),23,24
          FIELD         ACML,(AVAILABLE CM/100B      ACML),59,24
          FIELD         AECL,(AVAILABLE XM/*UEBS*    AECL),35,24
          FIELD         ACML,(RESERVED                   ),11,12
          FIELD         CMRL,(ZERO                   CMRL),59,12
          FIELD         CMRL,(RESERVED                   ),47,12
          FIELD         CMRL,(RA/100B FOR CP ZERO        ),35,24
          FIELD         CMRL,(CMR SIZE/100B              ),11,12
          FIELD       CMRL+1,(ZERO                       ),59,12
          FIELD       CMRL+1,(RA/100B FOR CP ZERO        ),47,24
          FIELD       CMRL+1,(4000B                      ),23,12
          FIELD       CMRL+1,(FL/100B FOR CP ZERO        ),11,12
          FIELD         ECRL,(ZERO                   ECRL),59,12
          FIELD         ECRL,(NUMBER OF *UEBS* BLOCKS    ),47,12
          FIELD         ECRL,(EM RA/*UEBS* FOR CP 0      ),35,24
          FIELD         ECRL,(EM FL/*UEBS* FOR CP 0      ),11,12
          FIELD         PPXL,(PP EXCHANGE PENDING    PPXL),59,60
          FIELD         MSCL,(RECALL REDUCTION LIMIT MSCL),59,12
          FIELD         MSCL,(CPU RECALL DELAY           ),47,12
          FIELD         MSCL,(PP/AUTO RECALL DELAY       ),35,12
          FIELD         MSCL,(RESERVED                   ),23,12
          FIELD         MSCL,(MEMORY PAD FOR *RSTM*      ),11,12
          FIELD         JDAL,(JULIAN DATE            JDAL),59,60
          FIELD         PDTL,(ZERO                   PDTL),59,24
          FIELD         PDTL,(YEAR - BIASED BY 1970      ),35,6 
          FIELD         PDTL,(MONTH                      ),29,6 
          FIELD         PDTL,(DAY                        ),23,6 
          FIELD         PDTL,(HOURS                      ),17,6 
          FIELD         PDTL,(MINUTES                    ),11,6 
          FIELD         PDTL,(SECONDS                    ),5,6
          FIELD         TIML,(TIME OF DAY (DSD)      TIML),59,60
          FIELD         DTEL,(DATE (DSD)             DTEL),59,60
          FIELD         SYTL,(SYSTEM TITLE LINE      SYTL),59,60
          FIELD       SYTL+1,(                           ),59,60
          FIELD       SYTL+2,(                           ),59,60
          FIELD       SYTL+3,(                           ),59,60
          FIELD         SVNL,(SYSTEM VERSION NAME    SVNL),59,60
          FIELD       SVNL+1,(                           ),59,60
          FIELD         SSML,(RESERVED               SSML),59,3 
          FIELD         SSML,(OUTPUT QUEUE HANDLING LEVEL),56,3 
          FIELD         SSML,(RESERVED                   ),53,3 
          FIELD         SSML,(SYSTEM SECURITY MODE       ),50,3 
          FIELD         SSML,(RESERVED                   ),47,15
          FIELD         SSML,(SECURITY ACCESS CATEGORIES ),32,33
          FIELD         JSCL,(SCHEDULER ACTIVE FLAG  JSCL),59,3 
          FIELD         JSCL,(RESERVED                   ),56,9 
          FIELD         JSCL,(INPUT FILE SCHED INTERVAL  ),47,12
          FIELD         JSCL,(SCHEDULER CYCLE INTERVAL   ),35,12
          FIELD         JSCL,(SCHEDULER RECALL TIME      ),23,24
          FIELD         IPRL,(CPU1 MULTIPLIER INDEX  IPRL),59,6 
          FIELD         IPRL,(CPU0 MULTIPLIER INDEX      ),53,6 
          FIELD         IPRL,(SEC ROLLOUT SCTR THRESHOLD ),47,12
          FIELD         IPRL,(ASSUMED KEYPUNCH MODE      ),35,3 
          FIELD         IPRL,(RESERVED                   ),32,6 
          FIELD         IPRL,(ASSUMED CHAR SET CONV      ),26,3 
          FIELD         IPRL,(ASSUMED CONV MODE          ),23,12
          FIELD         IPRL,(ASSUMED NT TAPE DENSITY    ),11,6 
          FIELD         IPRL,(TRACK TYPE/MT DENSITY      ),5,6
          FIELD         SSTL,(AUTOR/CM CLR/SEC LOCK  SSTL),59,3 
          FIELD         SSTL,(LOCK/DISABLE MSS M,CART PFS),56,3 
          FIELD         SSTL,(DISABLE USER ECS, PF/MS VAL),53,3 
          FIELD         SSTL,(DISABLE MS VAL,MSE M,SP DWN),50,3 
          FIELD         SSTL,(RES/DISABLE FORCED FORM/RES),47,3 
          FIELD         SSTL,(DISABLE HFI,TAPE PFS,REMOVE),44,3 
          FIELD         SSTL,(DISABLE DSK VL,SEC USER,SCP),41,3 
          FIELD         SSTL,(RESERVED                   ),38,3 
          FIELD         SSTL,(DISABLE SUB-CP/RESERVED    ),35,3 
          FIELD         SSTL,(RESERVED/DISABLE PROBE     ),32,3 
          FIELD         SSTL,(DISABLE TRACE/RESERVED     ),29,3 
          FIELD         SSTL,(RESERVED/DISABLE TMS       ),26,3 
          FIELD         SSTL,(*VE=*/DISABLE FMP, DDP RO  ),23,3 
          FIELD         SSTL,(RESIDENT/PRIVILEGED RDF    ),20,3 
          FIELD         SSTL,(DISABLE STACK/LOG/SIM SCR  ),17,3 
          FIELD         SSTL,(ENGR/SYS DEBUG/DEBUG STATUS),14,3 
          FIELD         SSTL,(RESERVED FOR INSTALLATION  ),11,12
          FIELD         SSSL,(SUBSYSTEM STATUS       SSSL),59,60
          FIELD         DFPP,(FWA DAYFILE BUF PTRS   DFPP),59,24
          FIELD         DFPP,(FWA DAYFILE DUMP BUFFER    ),35,24
          FIELD         DFPP,(DAYFILE DUMP BUF INTERLOCK ),11,12
          FIELD         IPPL,(6 LPI CHARGE           IPPL),59,12
          FIELD         IPPL,(8 LPI CHARGE               ),47,12
          FIELD         IPPL,(SYSTEM PD/PS/PW DEFAULTS   ),35,24
          FIELD         IPPL,(RESERVED                   ),11,12
          FIELD         PPRL,(CPP *MTR* REQ FLAG     PPRL),59,12
          FIELD         PPRL,(RPL FLAG                   ),47,6 
          FIELD         PPRL,(CMR ADDRESS OF IDLE LOOP   ),41,18
          FIELD         PPRL,(LENGTH OF IDLE LOOP        ),23,12
          FIELD         PPRL,(IDLE LOOP LOAD ADDRESS     ),11,12
          FIELD         PPAL,(ZERO                   PPAL),59,12
          FIELD         PPAL,(FREE PP-S, PP0 - PP10      ),47,9 
          FIELD         PPAL,(FREE PP-S, PP11,PP31 - PP20),38,12
          FIELD         PPAL,(ZERO                       ),26,9 
          FIELD         PPAL,(FREE CPP COUNT             ),17,6 
          FIELD         PPAL,(FREE PP COUNT              ),11,12
          FIELD         MSEL,(MS ERR PROC. LOAD CODE MSEL),59,12
          FIELD         MSEL,(CRD    CM                  ),47,12
          FIELD         MSEL,(LDD    CM                  ),35,12
          FIELD         MSEL,(NJN    LMSE                ),23,12
          FIELD         MSEL,(LDD    T1                  ),11,12
          FIELD       MSEL+1,(STD    CM+3                ),59,12
          FIELD       MSEL+1,(LDN    1R7                 ),47,12
          FIELD       MSEL+1,(STD    CM+2                ),35,12
          FIELD       MSEL+1,(MONITOR SPLM               ),23,24
          FIELD       MSEL+2,(MONITOR SPLM (LOW 12 BITS) ),59,12
          FIELD       MSEL+2,(LDD CM+4                   ),47,12
          FIELD       MSEL+2,(LJM PLL4                   ),35,24
          FIELD       MSEL+2,(CON LMSE-1                 ),11,12
          FIELD         BMLL,(DEADSTART FLAG         BMLL),59,12
          FIELD         BMLL,(FWA ERROR MSG BUFFER   EMBP),47,24
          FIELD         BMLL,(MESSAGE LINK               ),23,24
          FIELD         CMCL,(CP FOR STORAGE MOVE    CMCL),59,12
          FIELD         CMCL,(INTERNAL TO MTR            ),47,48
          FIELD         ACPL,(CPU 0 OFF/CPU 0 RA     ACPL),59,24
          FIELD         ACPL,(CPU 0 TIME SLICE OF SUB CP ),35,36
          FIELD       ACPL+1,(CPU 1 OFF/CPU 1 RA         ),59,24
          FIELD       ACPL+1,(CPU 1 TIME SLICE OF SUB CP ),35,36
          FIELD         CSWL,(CPU 0 SWITCH REQ       CSWL),59,6 
          FIELD         CSWL,(PTR TO BYPASS WQ ENTRY     ),53,18
          FIELD         CSWL,(CPU 0 SWITCH TIME          ),35,36
          FIELD       CSWL+1,(CPU 1 SWITCH REQ           ),59,6 
          FIELD       CSWL+1,(PTR TO BYPASS WQ ENTRY     ),53,18
          FIELD       CSWL+1,(CPU 1 SWITCH TIME          ),35,36
          FIELD         PXPP,(RESERVED               PXPP),59,36
          FIELD         PXPP,(ADDRESS OF PP2 XP          ),23,24
          FIELD       PXPP+1,(FIRST WORD OF PP XP        ),59,60
          FIELD         ZERL,(ZERO LOCATION          ZERL),59,60
          FIELD         SMRL,(STORAGE MOVE INC.      SMRL),59,12
          FIELD         SMRL,(PREVIOUS CPU STATUS        ),47,3 
          FIELD         SMRL,(RESERVED                   ),44,6 
          FIELD         SMRL,(ECS ERROR OCCURED          ),38,3 
          FIELD         SMRL,(RESERVED                   ),35,24
          FIELD         SMRL,(NUMBER OF MOVING CP/PCP    ),11,12
          FIELD         NCHL,(MAXIMUM CHANNEL NUMBER NCHL),59,12
          FIELD         NCPL,(NUMBER OF CONTROL PTS  NCPL),47,12
          FIELD         PPUL,(NUMBER OF PP-S         PPUL),35,12
          FIELD         CFGL,(WALL CLK/EM MODE/7255  CFGL),23,3 
          FIELD         CFGL,(ISD ONLY/RESERVED          ),20,3 
          FIELD         CPPL,(NUMBER OF CCH-S AND CPP-S  ),17,6 
          FIELD         EXML,(RESERVED                   ),11,3 
          FIELD         EXML,(EM EQUIPMENT, CPU PATH EXML),8,9
          FIELD         EIBP,(FLAGS - 2CPU W/CACHE   EIBP),59,3 
          FIELD         EIBP,(RESERVED                   ),56,6 
          FIELD         EIBP,(MTR XP ADDR - 2CPU W/CACHE ),50,18
          FIELD         EIBP,(*EICB* POINTER             ),32,33
          FIELD         ESTP,(FWA EST                ESTP),59,24
          FIELD         ESTP,(SIZE EST / LAST ORD + 1    ),35,12
          FIELD         ESTP,(LAST MS ORDINAL + 1        ),23,12
          FIELD         DSSL,(LIBDECK NUMBER         DSSL),11,6 
          FIELD         DSSL,(RES / MICRO/EI STATUS      ),5,3
          FIELD         DSSL,(D/S FLAG / RECOVERY LEVEL  ),2,3
          FIELD         FNTP,(FWA SYSTEM FNT         FNTP),59,24
          FIELD         FNTP,(MAX FNT ENTRIES            ),35,12
          FIELD         FNTP,(COUNT OF FREE FNT ENTRIES  ),23,12
          FIELD         FNTP,(NEXT AVAILABLE FNT ENTRY   ),11,12
          FIELD         EJTP,(FWA EJT                EJTP),59,24
          FIELD         EJTP,(MAX EJT ENTRIES            ),35,12
          FIELD         EJTP,(COUNT OF FREE EJT ENTRIES  ),23,12
          FIELD         EJTP,(NEXT AVAILABLE EJT ENTRY   ),11,12
          FIELD         QFTP,(FWA QFT                QFTP),59,24
          FIELD         QFTP,(MAX QFT ENTRIES            ),35,12
          FIELD         QFTP,(COUNT OF FREE QFT ENTRIES  ),23,12
          FIELD         QFTP,(NEXT AVAILABLE QFT ENTRY   ),11,12
          CON    -1          END OF LEFT COLUMN 
  
 TFLC2    BSS    0
          FIELD         CPSL,(EQ     CPSL            CPSL),59,30
          FIELD         CPSL,(PS     0                   ),29,30
          FIELD         PPCP,(FWA EXT. PP COMM. BLK. PPCP),59,24
          FIELD         MEFL,(USER EM SHIFT COUNT        ),35,3 
          FIELD         MEFL,(EXTENDED ADDRESSING FIELDS ),32,6 
          FIELD         MEFL,(RESERVED               MEFL),26,3 
          FIELD         MEFL,(EM SIZE/*EMBS*             ),23,12
          FIELD         PPCP,(FWA PP COMM AREA       PPCP),11,12
          FIELD         SFIL,(SCOPE STAT INTERLOCK   SFIL),59,60
          FIELD         CLTP,(FWA CLT                CLTP),59,24
          FIELD         CLTP,(MAX CLT ENTRIES            ),35,12
          FIELD         CLTP,(COUNT OF FREE CLT ENTRIES  ),23,12
          FIELD         CLTP,(NEXT                       ),11,12
          FIELD         SDAP,(FWA STAT DATA AREA     SDAP),59,24
          FIELD         PPSP,(FWA PP SAVE AREA       PPSP),35,24
          FIELD         PPSP,(MAX PP SAVE AREAS          ),11,12
          FIELD         CECL,(UNCORRECTED CPU ERROR  CECL),59,12
          FIELD         CECL,(CORRECTED CPU0 COUNT       ),47,12
          FIELD         CECL,(CORRECTED CPU1 COUNT       ),35,12
          FIELD         CECL,(CM SECDED ERROR COUNT      ),23,12
          FIELD         CECL,(LCME SECDED ERROR COUNT    ),11,12
          FIELD          104,(RESERVED FOR INSTALLATION  ),59,60
          FIELD          105,(                           ),59,60
          FIELD         RTCL,(RT CLOCK IMAGE - SECS  RTCL),59,24
          FIELD         RTCL,(RT CLOCK IMAGE - MSECS     ),35,36
          FIELD         PFNL,(DEFAULT PACK TYPE      PFNL),59,18
          FIELD         PFNL,(RESERVED                   ),41,18
          FIELD         PFNL,(EST ORD OF DEFAULT FAM     ),23,12
          FIELD         PFNL,(CPU TRANSFER THRESHOLD     ),11,12
          FIELD         RDSL,(SECS TILL LABEL CHECK  RDSL),59,12
          FIELD         RDSL,(SECONDS TILL *1CK* CALL    ),47,12
          FIELD         RDSL,(RESERVED                   ),35,36
          FIELD         SCRL,(ERROR/EMERGENCY FLAGS  SCRL),59,3 
          FIELD         SCRL,(EMER STEP/MANUAL STEP/RES  ),56,3 
          FIELD         SCRL,(FWA OF SECDED ID TABLE     ),53,18
          FIELD         SCRL,(*1CK* ADDR IF FROM *1MB*   ),35,12
          FIELD         SCRL,(RESERVED                   ),23,24
          FIELD         SABL,(FWA SAB                SABL),59,24
          FIELD         SABL,(SAB LENGTH                 ),35,12
          FIELD         SABL,(RESERVED                   ),23,12
          FIELD         SABL,(LAST EJT ORDINAL SCHEDULED ),11,12
          FIELD         MABL,(RESERVED               MABL),59,12
          FIELD         MABL,(OPTIONS INSTALLED          ),47,12
          FIELD         MABL,(CM SIZE/100B               ),35,24
          FIELD         MABL,(PP SPEED                   ),11,12
          FIELD    EABL+CPEI,(CPU 0 DESCRIPTOR ADDR  EABL),59,18
          FIELD    EABL+CPEI,(CPU 1 DESCRIPTOR ADDR      ),41,18
          FIELD    EABL+CPEI,(CPU 0 CONNECT CODE         ),23,12
          FIELD    EABL+CPEI,(CPU 1 CONNECT CODE         ),11,12
          FIELD    EABL+CMEI,(CENTRAL MEMORY DESCRIPTOR  ),59,18
          FIELD    EABL+CMEI,(EXTENDED MEMORY DESCRIPTOR ),41,18
          FIELD    EABL+CMEI,(CENTRAL MEMORY CONNECT CODE),23,12
          FIELD    EABL+CMEI,(RESERVED                   ),11,12
          FIELD    EABL+IOEI,(IOU DESCRIPTOR ADDR        ),59,18
          FIELD    EABL+IOEI,(RESERVED                   ),41,18
          FIELD    EABL+IOEI,(IOU CONNECT CODE           ),23,12
          FIELD    EABL+IOEI,(RESERVED                   ),11,12
          FIELD    EABL+MFEI,(MAINFRAME DESCRIPTOR ADDR  ),59,18
          FIELD    EABL+DCEI,(DISPLAY CONSOLE DESCRIPTOR ),41,18
          FIELD    EABL+MFEI,(SAB LENGTH                 ),23,12
          FIELD    EABL+MFEI,(RESERVED                   ),11,12
          FIELD         UEML,(UEM BASE ADDR/1000B    UEML),59,12
          FIELD         UEML,(UEM FL/*UEBS*              ),47,12
          FIELD         UEML,(UEM EQUIPMENT              ),35,12
          FIELD         UEML,(RESERVED                   ),23,21
          FIELD         UEML,(*UEM* PRESENT              ),2,3
          FIELD         CMBL,(FWA BLOCK NAME TABLE   CMBL),59,24
          FIELD         CMBL,(RESERVED                   ),35,12
          FIELD         CMBL,(FWA BREAKPOINT TABLE       ),23,24
          FIELD         MMFL,(MACHINE IDENTIFICATION MMFL),59,12
          FIELD         MMFL,(ISD/LSPMMF/BIOMMF FLAGS    ),47,3 
          FIELD         MMFL,(LINK DEVICE EQ             ),44,9 
          FIELD         MMFL,(FLAG REG RECOVERY INTERLOCK),35,3 
          FIELD         MMFL,(INITIALIZED EQ COUNT       ),32,9 
          FIELD         MMFL,(MACHINES MASK              ),23,12
          FIELD         MMFL,(MACHINE INDEX              ),11,12
          FIELD         EFRL,(MACHINE STATE TBL PTR  EFRL),59,24
          FIELD         EFRL,(RESERVED                   ),35,12
          FIELD         EFRL,(DISPLAY FLAG REGISTER IF 0 ),23,6 
          FIELD         EFRL,(FLAG REGISTER IMAGE        ),17,18
          FIELD         INWL,(RESERVED               INWL),59,6 
          FIELD         INWL,(RES/MDD DEDICATED/CM WRITE ),53,3 
          FIELD         INWL,(MR WRT/MX CH HNG/MNT CH HNG),50,3 
          FIELD         INWL,(RESERVED                   ),47,24
          FIELD         INWL,(ACTIVE MREC COUNT          ),23,6 
          FIELD         INWL,(RESERVED/DEADSTART JOB     ),17,3 
          FIELD         INWL,(LIMITS CHG/DIS SCHEDULE/RES),14,3 
          FIELD         INWL,(RESERVED                   ),11,6 
          FIELD         INWL,(RES/CKPT/WALL CLOCK RESET  ),5,3
          FIELD         INWL,(CPD/FATAL ERR/SUBSYS ABORT ),2,3
          FIELD          125,(RESERVED                   ),59,60
          FIELD          126,(RESERVED                   ),59,60
          FIELD          127,(RESERVED                   ),59,60
          FIELD         OSTP,(OPTICAL STATUS TBL FWA OSTP),59,24
          FIELD         OSTP,(NUMBER OF OPTICAL DEVICES  ),35,12
          FIELD         OSTP,(RESERVED                   ),23,12
          FIELD         OSTP,(OPTICAL SCANNER CONTROL    ),11,12
          FIELD         ORTP,(OPTICAL REQ. TABLE FWA ORTP),59,24
          FIELD         ORTP,(OPTICAL REQ. TABLE LENGTH  ),35,12
          FIELD         ORTP,(OPTICAL REQ. ENTRIES AVAIL.),23,12
          FIELD         ORTP,(NEXT OPTICAL REQUEST ENTRY ),11,12
          FIELD         PRBP,(PROBE TABLE INTERLOCK  PRBP),59,3 
          FIELD         PRBP,(RESERVED                   ),56,15
          FIELD         PRBP,(PROBE TABLE AREA LENGTH    ),41,18
          FIELD         PRBP,(FWA PROBE TABLE AREA       ),23,24
          FIELD         EVTP,(EVENT TABLE FWA        EVTP),59,24
          FIELD         INBP,(INSTALLATION BLOCK FWA INBP),35,24
          FIELD         INBP,(INST. BLOCK LENGTH     INBP),11,12
          FIELD         MCTP,(FWA MCT                MCTP),59,24
          FIELD         MCTP,(MAX MCT ENTRIES            ),35,12
          FIELD         PCPP,(FWA PCP AREA           PCPP),23,24
          FIELD         MSAP,(FWA MS ALLOC TABLE     MSAP),59,24
          FIELD         SSCP,(FWA SSCT               SSCP),35,24
          FIELD         TFML,(TMS STATUS BYTE        TFML),11,12
          FIELD         OPRL,(OPERATOR MSG PRESENT   OPRL),59,3 
          FIELD         OPRL,(RESERVED                   ),56,42
          FIELD         OPRL,(RESERVED/LOW SPACE         ),14,3 
          FIELD         OPRL,(ERR ALERT/CH DWN/EM DIS    ),11,3 
          FIELD         OPRL,(TRACK, BML, ACC SIZE LIMIT ),8,3
          FIELD         OPRL,(ERRLOG, DAYFIL LIM/EJT FULL),5,3
          FIELD         OPRL,(QFT, FNT, FOT FULL         ),2,3
          FIELD         FOTP,(FWA FOT                FOTP),59,24
          FIELD         FOTP,(MAX FOT ENTRIES            ),35,12
          FIELD         FOTP,(COUNT OF FREE FOT ENTRIES  ),23,12
          FIELD         FOTP,(NEXT AVAILABLE FOT ENTRY   ),11,12
          FIELD         LIDP,(FWA LID TABLE          LIDP),59,24
          FIELD         LIDP,(LENGTH OF LID TABLE        ),35,12
          FIELD         LIDP,(NUMBER OF FREE ENTRIES     ),23,12
          FIELD         LIDP,(RESERVED                   ),11,9 
          FIELD         LIDP,(INTERLOCK                  ),2,3
          FIELD         CHTP,(RESERVED               CHTP),59,24
          FIELD         CHTP,(FWA CHANNEL TABLES         ),35,24
          FIELD         NVOL,(NOS/VE EJT ORDINAL         ),11,12
          FIELD         RPLP,(FWA RPL                RPLP),59,24
          FIELD         LDSP,(FWA L-DISPLAY BUFFER   LDSP),35,24
          FIELD         VEBL,(NOS/VE BYPASS LIMIT    VEBL),11,12
          FIELD         RCLP,(FWA RCL                RCLP),59,24
          FIELD         SCDP,(FWA SCD PARAMETERS     SCDP),35,24
          FIELD         SCDP,(RESERVED                   ),11,12
          FIELD         PLDP,(FWA PLD                PLDP),59,24
          FIELD         LBDP,(FWA LBD                LBDP),35,24
          FIELD         LBDP,(RESERVED                   ),11,12
          FIELD         EPDP,(FWA EPD                EPDP),59,24
          FIELD         PSTP,(FWA PST                PSTP),35,24
          FIELD         PSTP,(RESERVED                   ),11,12
          FIELD         EDBP,(FWA EM DISPLAY BUFFER  EDBP),59,24
          FIELD         EDBP,(RESERVED                   ),35,12
          FIELD         EPBP,(ECS/PP BUFFER COUNT    EPBP),23,6 
          FIELD         EPBP,(FWA ECS/PP BUFFER          ),17,18
          FIELD         BIOL,(CPUMLD LOAD ADDR/100B  BIOL),59,12
          FIELD         BIOL,(FWA BUFFERED I/O TABLES    ),47,24
          FIELD         CMTP,(FWA CPUMTR             CMTP),23,24
          FIELD         JBCP,(FWA JOB CONTROL BLOCKS JBCP),59,24
          FIELD         JBCP,(RESERVED                   ),35,36
          FIELD       JBCP+1,(RESERVED                   ),59,60
          FIELD         CPAL,(CPU0 EXPACK TYPE       CPAL),59,18
          FIELD         CPAL,(CP ADDR OF JOB IN CPU0     ),41,18
          FIELD         CPAL,(XP ADDR OF JOB IN CPU0     ),23,24
          FIELD       CPAL+1,(CPU1 EXPACK TYPE           ),59,18
          FIELD       CPAL+1,(CP ADDR OF JOB IN CPU1     ),41,18
          FIELD       CPAL+1,(XP ADDR OF JOB IN CPU1     ),23,24
          FIELD         BQRL,(BUF MGR RCL QUEUE PTR  BQRL),59,60
          FIELD         RQRL,(MTR RECALL QUEUE PTR   RQRL),59,60
          FIELD         CQRL,(CPUCIO REQUEST Q PTR   CQRL),59,60
          FIELD         PQRL,(PP REQUEST QUEUE PTR   PQRL),59,60
          FIELD         WQRL,(WQ QUEUE POINTER       WQRL),59,60
          FIELD         TSCL,(CPU0 JOB PRIORITY      TSCL),59,12
          FIELD         TSCL,(RESERVED                   ),47,12
          FIELD         TSCL,(CPU0 RECALL EXPIRATION     ),35,36
          FIELD       TSCL+1,(CPU1 JOB PRIORITY          ),59,12
          FIELD       TSCL+1,(RESERVED                   ),47,12
          FIELD       TSCL+1,(CPU1 RECALL EXPIRATION     ),35,36
          FIELD       DSDL+0,(DSD - 1DS PARAMETER BLOCK  ),59,60
          FIELD       DSDL+1,(                           ),59,60
          FIELD       DSDL+2,(                           ),59,60
          FIELD       DSDL+3,(                           ),59,60
          FIELD       DSDL+4,(                           ),59,60
          FIELD       DSDL+5,(                           ),59,60
          FIELD       DSDL+6,(                           ),59,60
          FIELD       DSDL+7,(                           ),59,60
          FIELD     DSDL+10B,(                           ),59,60
          FIELD     DSDL+11B,(                           ),59,60
          FIELD     DSDL+12B,(                           ),59,60
          FIELD     DSDL+13B,(                           ),59,60
          FIELD     DSDL+14B,(                           ),59,60
          CON    0           END OF RIGHT COLUMN
  
 TFLC3    EQU    *
          ERRNG  2*TFLC2-TFLC1-TFLC3  IF RIGHT LONGER THAN LEFT 
 TFCP     SPACE  4
**        TFCP - CONTROL POINT AREA FIELD DESCRIPTORS.
  
  
 TFCP     VFD    24/0,18/TFCP1,18/TFCP2 
 .OW      SET    STSW-1      INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFCP1    BSS    0
          FIELD         STSW,(CPU STATUS             STSW),59,3 
          FIELD         STSW,(CPU SUB-CP ACTIVE          ),56,3 
          FIELD         STSW,(NUMBER PPS ASSIGNED        ),53,6 
          FIELD         STSW,(ERROR FLAGS                ),47,12
          FIELD         STSW,(RESERVED                   ),35,3 
          FIELD         STSW,(ROLLOUT CONTROL            ),32,9 
          FIELD         STSW,(RESERVED                   ),23,12
          FIELD         STSW,(RECALL CONTROL             ),11,12
          FIELD         CWQW,(CPU PRIORITY/FLAGS     CWQW),59,12
          FIELD         CWQW,(SLICE/RECALL FLAGS         ),47,3 
          FIELD         CWQW,(SERVICE CYCLE NUMBER       ),44,9 
          FIELD         CWQW,(CPU SCHED SERVICE INDEX    ),35,9 
          FIELD         CWQW,(CPU FLAGS/RES/EXPACK TYPE  ),26,9 
          FIELD         CWQW,(*WQ* LINKAGE               ),17,18
          FIELD         CSAW,(ZERO                   CSAW),59,6 
          FIELD         CSAW,(CPU TIME THRESHOLD         ),53,18
          FIELD         CSAW,(RECALL SLICE ACCUMULATOR   ),35,18
          FIELD         CSAW,(CPU SLICE ACCUMULATOR      ),17,18
          FIELD         FLSW,(NEGATIVE FL/100B       FLSW),59,12
          FIELD         FLSW,(*SET* RECOVERY NFL         ),47,12
          FIELD         FLSW,(RA/100B                    ),35,24
          FIELD         FLSW,(FL/100B                    ),11,12
          FIELD       FLSW+1,(ZERO                       ),59,12
          FIELD       FLSW+1,(RA/100B - NFL/100B         ),47,24
          FIELD       FLSW+1,(4000B + NFL/100B           ),23,12
          FIELD       FLSW+1,(FL/100B                    ),11,12
          FIELD         ECSW,(ZERO                   ECSW),59,12
          FIELD         ECSW,(ECXM INTERLOCK/RESERVED    ),47,3 
          FIELD         ECSW,(RESERVED                   ),44,9 
          FIELD         ECSW,(EM RA/*UEBS*               ),35,24
          FIELD         ECSW,(EM FL/*UEBS*               ),11,12
          FIELD         JCIW,(RESERVED               JCIW),59,18
          FIELD         JCIW,(RESV/RESV/CPUPFM ACTIVE    ),41,3 
          FIELD         JCIW,(RESERVED/CPU SELECTION     ),38,3 
          FIELD         JCIW,(SUBSYSTEM ID               ),35,12
          FIELD         JCIW,(JOB CONTROL/*DIS* FLAGS    ),23,3 
          FIELD         JCIW,(USER PRIVACY, PRESERVE EM  ),20,3 
          FIELD         JCIW,(RESERVED                   ),17,18
          FIELD         EOJW,(JOB TERMINATION OPTION EOJW),59,3 
          FIELD         EOJW,(QUEUE FILE DISPOSITION     ),56,3 
          FIELD         EOJW,(RESERVED                   ),53,21
          FIELD         EOJW,(PROJ PRLG/EPLG TERM OPTION ),32,3 
          FIELD         EOJW,(PROJ PRLG/EPLG NEST LVL-1  ),29,6 
          FIELD         JOTW,(JOB ORIGIN TYPE        JOTW),23,12
          FIELD         OAEW,(OPER ASSIGNED EQUIP    OAEW),11,12
          FIELD         SNSW,(PUNCH MODE/OVERRIDE    SNSW),59,3 
          FIELD         SNSW,(RESERVED                   ),56,21
          FIELD         SNSW,(RESERVED-INSTALLATION      ),35,12
          FIELD         SNSW,(PP PAUSE FLAGS             ),23,12
          FIELD         SNSW,(SENSE SWITCHES             ),11,6 
          FIELD         SNSW,(RESERVED                   ),5,6
          FIELD         MS1W,(MESSAGE 1 AREA         MS1W),59,60
          FIELD       MS1W+1,(                           ),59,60
          FIELD       MS1W+2,(                           ),59,60
          FIELD       MS1W+3,(                           ),59,60
          FIELD       MS1W+4,(                           ),59,60
          FIELD         MS2W,(MESSAGE 2 AREA         MS2W),59,60
          FIELD       MS2W+1,(                           ),59,60
          FIELD       MS2W+2,(                           ),59,60
          FIELD         IN0W,(INSTALLATION WORD 0    IN0W),59,60
          FIELD         IN1W,(INSTALLATION WORD 1    IN1W),59,60
          FIELD         IN2W,(INSTALLATION WORD 2    IN2W),59,60
          FIELD         IN3W,(INSTALLATION WORD 3    IN3W),59,60
          FIELD         IN4W,(INSTALLATION WORD 4    IN4W),59,60
          FIELD         IN5W,(INSTALLATION WORD 5    IN5W),59,60
          FIELD         IN6W,(INSTALLATION WORD 6    IN6W),59,60
          FIELD         IN7W,(INSTALLATION WORD 7    IN7W),59,60
          FIELD         ACTW,(LIMIT FLAGS            ACTW),59,6 
          FIELD         SRUW,(RESERVED               SRUW),53,3 
          FIELD         SRUW,(OVERFLOW/CONTROL FLAGS     ),50,9 
          FIELD         SRUW,(SRU ACCUMULATOR/OVERFLOW   ),41,42
          FIELD         CPTW,(CP ACCUM (NANOUNITS/4) CPTW),59,60
          FIELD         IOAW,(IO ACCUMULATORS        IOAW),59,60
          FIELD         MP1W,(M13 = M1 * M3          MP1W),59,18
          FIELD         MP1W,(M14 = M1 * M4              ),41,18
          FIELD         ADAW,(RESERVED                   ),23,3 
          FIELD         ADAW,(ADDER ACCUMULATOR      ADAW),20,21
          FIELD         MP2W,(M1 * 1000              MP2W),59,18
          FIELD         MP2W,(M12 = M1 * M2              ),41,18
          FIELD         MP2W,(RESERVED                   ),23,24
          FIELD         MP3W,(DISABLE SRU ACCUM, CPM MP3W),59,30
          FIELD         MP3W,(IOM                        ),29,30
          FIELD         STLW,(SRU ACCOUNT BLOCK LMT  STLW),59,18
          FIELD         STLW,(COMPUTED SRU JOB STEP LIMIT),41,42
          FIELD         SRJW,(SRU MESSAGE TRIGGER    SRJW),59,12
          FIELD         SRJW,(SRU JOB STEP LIMIT         ),47,18
          FIELD         SRJW,(SRU ACCUM AT JOB STEP START),29,30
          FIELD         CPJW,(RESERVED               CPJW),59,12
          FIELD         CPJW,(CP TIME JOB STEP LIMIT     ),47,18
          FIELD         CPJW,(CP ACCUM AT JOB STEP START ),29,30
          FIELD         FPFW,(CHARGE/ACCOUNTING FLGS FPFW),59,6 
          FIELD         FPFW,(RESERVED                   ),53,6 
          FIELD         FPFW,(SRU VALIDATION LIMIT       ),47,12
          FIELD         FPFW,(FNT ORDINAL OF PROFILE FILE),35,12
          FIELD         FPFW,(LEVEL-3 BLOCK TRACK        ),23,12
          FIELD         FPFW,(LEVEL-3 BLOCK SECTOR       ),11,12
          FIELD         FLCW,(MAX FL FOR JOB STEP    FLCW),59,12
          FIELD         FLCW,(LAST COMMAND FL (NFL)      ),47,12
          FIELD         FLCW,(MAXIMUM FL FOR ENTIRE JOB  ),35,12
          FIELD         FLCW,(RESERVED                   ),23,24
          FIELD         ELCW,(JOB STEP MAX EM FL     ELCW),59,12
          FIELD         ELCW,(LAST CARD EM FL (NFL)      ),47,12
          FIELD         ELCW,(JOB MAX EXTENDED MEMORY FL ),35,12
          FIELD         ELCW,(RESERVED                   ),23,24
          FIELD         EACW,(EQUIP ASSIGNED COUNT   EACW),59,12
          FIELD         FLIW,(RESERVED               FLIW),47,9 
          FIELD         FLIW,(SCHEDULER STATUS           ),38,3 
          FIELD         FLIW,(NEGATIVE FL FOR ROLLIN     ),35,12
          FIELD         FLIW,(EXTENDED MEMORY FL REQUEST ),23,12
          FIELD         FLIW,(CM FL REQUEST              ),11,12
          FIELD         TXSW,(TXOT SUBSYSTEM         TXSW),59,6 
          FIELD         TXSW,(RESERVED                   ),53,6 
          FIELD         TTNW,(TERMINAL NUMBER        TTNW),47,12
          FIELD         TIAW,(TERMINAL INT ADDR      TIAW),35,18
          FIELD         TIOW,(OUTPUT POINTER         TIOW),17,18
          FIELD         PFCW,(RESERVED               PFCW),59,24
          FIELD         PFCW,(*PUCN* USER LIMITS         ),35,12
          FIELD         PFCW,(EST ORD OF FAMILY DEVICE   ),23,12
          FIELD         PFCW,(LIMIT FOR SIZE OF DAF      ),11,3 
          FIELD         PFCW,(LIMIT FOR NUMBER OF PF     ),8,3
          FIELD         PFCW,(LIMIT CUMM SIZE IAPF       ),5,3
          FIELD         PFCW,(LIMIT FOR SIZE OF IAPF     ),2,3
          FIELD         UIDW,(USER NAME              UIDW),59,42
          FIELD         UIDW,(RESERVED, USER INDEX       ),17,18
          FIELD         EECW,(NO EXIT FLAG           EECW),59,3 
          FIELD         EECW,(RESERVED                   ),56,6 
          FIELD         EECW,(RESERVED/TL EXTENDED       ),50,3 
          FIELD         EECW,(REPRIEVE DATA              ),47,12
          FIELD         TINW,(TERMINAL INPUT POINTER TINW),35,18
          FIELD         EECW,(REPRIEVE DATA              ),17,18
          FIELD         TFSW,(EJT ORDINAL OF JOB     TFSW),59,12
          FIELD         TFSW,(PRIMARY FILE FNT OFFSET    ),47,12
          FIELD         TFSW,(RESERVED                   ),35,6 
          FIELD         TERW,(ROLLOUT TIME           TERW),29,9 
          FIELD         TERW,(EVENT DESCRIPTOR           ),20,21
          FIELD         CSPW,(RESERVED               CSPW),59,6 
          FIELD         CSPW,(DIS EMSG/RESERVED/EPLG REQ ),53,3 
          FIELD         CSPW,(CHG REQ/PR USER/INHIB DECR ),50,3 
          FIELD         CSPW,(EOR FLAG/CS COUNT          ),47,24
          FIELD         CSPW,(NEXT COMMAND INDEX         ),23,12
          FIELD         CSPW,(LIMIT INDEX                ),11,12
          FIELD         CSSW,(INPUT/SKIP FLAGS       CSSW),59,3 
          FIELD         CSSW,(EST ORDINAL                ),56,9 
          FIELD         CSSW,(FIRST TRACK                ),47,12
          FIELD         CSSW,(CURRENT TRACK              ),35,12
          FIELD         CSSW,(CURRENT SECTOR             ),23,12
          FIELD         CSSW,(OVERLAP WORD COUNT         ),11,12
          FIELD         RFCW,(RESERVED               RFCW),59,24
          FIELD         RFCW,(COMMAND ADDRESS            ),35,18
          FIELD         RFCW,(DEMAND FILE RANDOM INDEX   ),17,18
          FIELD         ALMW,(ORIGINAL MAX SRU LIMIT ALMW),59,6 
          FIELD         ALMW,(MAX UNITS PLOTTED          ),53,6 
          FIELD         ALMW,(MAX MAGNETIC TAPES         ),47,3 
          FIELD         ALMW,(MAX REMOVABLE PACKS        ),44,3 
          FIELD         ALMW,(MAX DEFER BATCH JOBS       ),41,3 
          FIELD         ALMW,(RESERVED                   ),38,3 
          FIELD         ALMW,(MAX TIME LIMIT             ),35,6 
          FIELD         ALMW,(MAX SRU LIMIT              ),29,6 
          FIELD         ALMW,(MAX FIELD LENGTH           ),23,6 
          FIELD         ALMW,(MAX EM FIELD LENGTH        ),17,6 
          FIELD         ALMW,(MAX LINES PRINTED          ),11,6 
          FIELD         ALMW,(MAX CARDS PUNCHED          ),5,6
          CON    -1          END OF LEFT COLUMN 
  
 TFCP2    BSS    0
          FIELD         ACLW,(REPRIEVE LIMIT         ACLW),59,12
          FIELD         ACLW,(DAYFILE MESSAGES COUNT     ),47,12
          FIELD         ACLW,(COMMANDS CNT               ),35,12
          FIELD         ACLW,(RESERVED                   ),23,6 
          FIELD         ACLW,(MS PRUS COUNT              ),17,18
          FIELD         AACW,(ACCOUNT ACCESS WORD    AACW),59,60
          FIELD         MPMW,(MAP MULTIPLIER * M1    MPMW),59,18
          FIELD         ODAW,(OPTICAL ACCUMULATOR    ODAW),41,21
          FIELD         MPAW,(MAP ACCUMULATOR        MPAW),20,21
          FIELD         AUCW,(RESERVED               AUCW),59,30
          FIELD         AUCW,(AUC ACCUMULATOR            ),29,30
          FIELD       AUCW+1,(RESERVED                   ),59,60
          FIELD       AUCW+2,(RESERVED                   ),59,60
          FIELD         SEPW,(SPEC ENTRY POINT FLAG  SEPW),59,3 
          FIELD         SEPW,(UTL=/LDR=/CLB= EN PT FLAGS ),56,3 
          FIELD         SEPW,(ARG=/DMP=/SDM= EN PT FLAGS ),53,3 
          FIELD         SEPW,(SSJ=/VAL=/SSM= EN PT FLAGS ),50,3 
          FIELD         SEPW,(DPA= /RESERVED             ),47,9 
          FIELD         SEPW,(RESERVED / ENABLE SSJ      ),38,3 
          FIELD         SEPW,(RESTART/SUPPRESS DMP= FLAGS),35,3 
          FIELD         SEPW,(DM* FILE/RESOURCE FLAGS    ),32,3 
          FIELD         SEPW,(DMP= FL/100 (0 = ENTIRE FL)),29,12
          FIELD         SEPW,(SSJ= PARAMETER BLK ADDRESS ),17,18
          FIELD         SPCW,(SYSTEM PROC CALL WORD  SPCW),59,60
          FIELD         JCDW,(CCL - EFF              JCDW),59,6 
          FIELD         JCDW,(CCL - R1G                  ),53,18
          FIELD         JCDW,(CCL - DATA                 ),35,6 
          FIELD         JCDW,(PROCEDURE NESTING LEVEL    ),29,6 
          FIELD         JCDW,(RESERVED                   ),23,24
          FIELD         JCRW,(CCL - EF               JCRW),59,6 
          FIELD         JCRW,(CCL - R3                   ),53,18
          FIELD         JCRW,(CCL - R2                   ),35,18
          FIELD         JCRW,(CCL - R1                   ),17,18
          FIELD         DBAW,(SEC MEM/K DIS FLAGS    DBAW),59,3 
          FIELD         DBAW,(EM AND CM CMM MODE FLAGS   ),56,3 
          FIELD         DBAW,(INPUT BUFFER ADDRESS       ),53,18
          FIELD         DBAW,(RIGHT SCREEN BFR ADD       ),35,18
          FIELD         DBAW,(LEFT SCREEN BFR ADD        ),17,18
          FIELD         LB1W,(MAP OPTIONS/LIB FLAG   LB1W),59,6 
          FIELD         LB1W,(REDUCE/LOADER FLAGS        ),53,6 
          FIELD         LB1W,(RESERVED FOR LOADER        ),47,12
          FIELD         LB1W,(INTERACTIVE DEBUG CONTROL  ),35,12
          FIELD         LB1W,(GLOBAL LIB INDICATORS      ),23,24
          FIELD         LB2W,(SECOND LIB/GLOBAL IND  LB2W),59,60
          FIELD         LB3W,(FIRST LIB/GLOBAL IND   LB3W),59,60
          FIELD         EOCW,(FNT ADDR LAST FIL EXEC EOCW),59,12
          FIELD         PPDW,(EM FL FOR DMP= CALL    PPDW),47,12
          FIELD         PPDW,(FL FOR DMP= CALL           ),35,12
          FIELD         PPDW,(DUMP WORD COUNT            ),23,6 
          FIELD         PPDW,(FWA OF DUMP                ),17,18
          FIELD         SSOW,(RESERVED                   ),59,48
          FIELD         SSOW,(OUTSTANDING CONNECT COUNT  ),11,12
          FIELD         SSCW,(SCP INDEX              SSCW),59,6 
          FIELD         SSCW,(RES/ROLLOUT/CONNECTION     ),53,3 
          FIELD         SSCW,(WAIT RESPONSES             ),50,3 
          FIELD         SSCW,(SCP INDEX                  ),47,6 
          FIELD         SSCW,(RES/ROLLOUT/CONNECTION     ),41,3 
          FIELD         SSCW,(WAIT RESPONSES             ),38,3 
          FIELD         SSCW,(SCP INDEX                  ),35,6 
          FIELD         SSCW,(RES/ROLLOUT/CONNECTION     ),29,3 
          FIELD         SSCW,(WAIT RESPONSES             ),26,3 
          FIELD         SSCW,(SCP INDEX                  ),23,6 
          FIELD         SSCW,(RES/ROLLOUT/CONNECTION     ),17,3 
          FIELD         SSCW,(WAIT RESPONSES             ),14,3 
          FIELD         SSCW,(SCP INDEX                  ),11,6 
          FIELD         SSCW,(RES/ROLLOUT/CONNECTION     ),5,3
          FIELD         SSCW,(WAIT RESPONSES             ),2,3
          FIELD         CPLW,(COMPUTED CP TIME LIMIT CPLW),59,60
          FIELD         LOFW,(LIST OF FILES INDEX    LOFW),59,12
          FIELD         LOFW,(RESERVED                   ),47,6 
          FIELD         LOFW,(LIST OF FILES ADDRESS      ),41,18
          FIELD         LOFW,(RESERVED                   ),23,18
          FIELD         AALW,(APPL ACCESS LEVEL      AALW),5,6
          FIELD         TSCW,(CM RESIDENCE TIME LMT  TSCW),59,24
          FIELD         TSCW,(RESERVED                   ),35,3 
          FIELD         TSCW,(INIT TIME SLICE OCCUR FLAG ),32,3 
          FIELD         TSCW,(CPU TIME SLICE LIMIT       ),29,30
          FIELD         JSCW,(ADMIN/DIAG/USER PW EXP JSCW),59,3 
          FIELD         JSCW,(PF PW EXP/LOWER JAL/FAL    ),56,3 
          FIELD         JSCW,(WRITE DOWN/UNLABELED TAPES ),53,3 
          FIELD         JSCW,(RESERVED                   ),50,3 
          FIELD         JSCW,(JOB ACCESS LEVEL           ),47,3 
          FIELD         JSCW,(USER ACCESS LEV VALIDATION ),44,9 
          FIELD         JSCW,(JOB ACCESS LEVEL LIMIT     ),35,3 
          FIELD         JSCW,(USER ACCESS CATEGORY SET   ),32,33
          FIELD         PKNW,(DEFAULT PACK NAME      PKNW),59,42
          FIELD         PKNW,(DEFAULT PACK TYPE          ),17,18
          FIELD         CRCW,(RECALL CRITERION NO.   CRCW),59,12
          FIELD         CRCW,(RECALL CRITERION PARAMS    ),47,36
          FIELD         CRCW,(NEXT RECALL STACK ENTRY    ),11,12
          FIELD         RCCW,(RECALL CRITERION       RCCW),59,60
          FIELD       RCCW+1,(RECALL CRITERION           ),59,60
          FIELD       RCCW+2,(RECALL CRITERION           ),59,60
          FIELD       RCCW+3,(RECALL CRITERION           ),59,60
          FIELD       RCCW+4,(RECALL CRITERION           ),59,60
          FIELD       RCCW+5,(RECALL CRITERION           ),59,60
          FIELD       RCCW+6,(RECALL CRITERION           ),59,60
          FIELD       RCCW+7,(RECALL CRITERION           ),59,60
          FIELD       RCCW+8,(RECALL CRITERION           ),59,60
          FIELD       RCCW+9,(RECALL CRITERION           ),59,60
          FIELD      RCCW+10,(RECALL CRITERION           ),59,60
          FIELD      RCCW+11,(RECALL CRITERION           ),59,60
          FIELD      RCCW+12,(RECALL CRITERION           ),59,60
          FIELD      RCCW+13,(RECALL CRITERION           ),59,60
          FIELD         RECW,(RECALL REQUESTS IR-S   RECW),59,60
          FIELD       RECW+1,(RECALL REQUESTS IR-S       ),59,60
          FIELD       RECW+2,(RECALL REQUESTS IR-S       ),59,60
          FIELD       RECW+3,(RECALL REQUESTS IR-S       ),59,60
          FIELD       RECW+4,(RECALL REQUESTS IR-S       ),59,60
          FIELD       RECW+5,(RECALL REQUESTS IR-S       ),59,60
          FIELD       RECW+6,(RECALL REQUESTS IR-S       ),59,60
          FIELD       RECW+7,(RECALL REQUESTS IR-S       ),59,60
          FIELD       RECW+8,(RECALL REQUESTS IR-S       ),59,60
          FIELD       RECW+9,(RECALL REQUESTS IR-S       ),59,60
          FIELD      RECW+10,(RECALL REQUESTS IR-S       ),59,60
          FIELD      RECW+11,(RECALL REQUESTS IR-S       ),59,60
          FIELD      RECW+12,(RECALL REQUESTS IR-S       ),59,60
          FIELD      RECW+13,(RECALL REQUESTS IR-S       ),59,60
          FIELD         REPW,(RECALL REQUESTS MB-S   REPW),59,60
          FIELD       REPW+1,(RECALL REQUESTS MB-S       ),59,60
          FIELD       REPW+2,(RECALL REQUESTS MB-S       ),59,60
          FIELD       REPW+3,(RECALL REQUESTS MB-S       ),59,60
          FIELD       REPW+4,(RECALL REQUESTS MB-S       ),59,60
          FIELD       REPW+5,(RECALL REQUESTS MB-S       ),59,60
          FIELD       REPW+6,(RECALL REQUESTS MB-S       ),59,60
          FIELD       REPW+7,(RECALL REQUESTS MB-S       ),59,60
          FIELD       REPW+8,(RECALL REQUESTS MB-S       ),59,60
          FIELD       REPW+9,(RECALL REQUESTS MB-S       ),59,60
          FIELD      REPW+10,(RECALL REQUESTS MB-S       ),59,60
          FIELD      REPW+11,(RECALL REQUESTS MB-S       ),59,60
          FIELD      REPW+12,(RECALL REQUESTS MB-S       ),59,60
          FIELD      REPW+13,(RECALL REQUESTS MB-S       ),59,60
          CON    0           END OF RIGHT COLUMN
  
 TFCP3    EQU    *
          ERRNG  2*TFCP2-TFCP1-TFCP3  IF RIGHT LONGER THAN LEFT 
 TFEJ     SPACE  4,10 
**        TFEJ - EXECUTING JOB TABLE FIELD DESCRIPTORS. 
  
  
 TFEJ     VFD    24/0,18/TFEJ1,18/TFEJ2 
 .OW      SET    JSNE-1 
 .BI      SET    0
  
 TFEJ1    BSS    0
          FIELD         JSNE,(JSN                    JSNE),59,24
          FIELD         JSNE,(FAMILY ORDINAL             ),35,6 
          FIELD         JSNE,(USER INDEX                 ),29,18
          FIELD         JSNE,(SCP/CS/JOB ADVANCE         ),11,6 
          FIELD         JSNE,(JOB STATUS/INTERLOCK       ),5,6
          FIELD         SCHE,(STATUS DEPENDENT       SCHE),59,24
          FIELD         SCHE,(NORERUN/JOB TERMINATION    ),35,3 
          FIELD         SCHE,(RESERVED                   ),32,3 
          FIELD         SCHE,(SCHEDULING DATA            ),29,30
          CON    -1          END OF LEFT COLUMN 
  
 TFEJ2    BSS    0
          FIELD         PRFE,(INSTALLATION RESERVED  PRFE),59,12
          FIELD         PRFE,(ERROR FLAGS                ),47,12
          FIELD         PRFE,(RESERVED/JOB ACCESS LVLS   ),35,12
          FIELD         PRFE,(STATUS DEPENDENT           ),23,24
          FIELD         SCLE,(SERVICE CLASS          SCLE),59,6 
          FIELD         SCLE,(FORCED RI/FORCED RO/OT     ),53,6 
          FIELD         SCLE,(ROUTING INFORMATION        ),47,24
          FIELD         SCLE,(EM FL                      ),23,12
          FIELD         SCLE,(CM FL                      ),11,12
          CON    0           END OF RIGHT COLUMN
  
 TFEJ3    EQU    *
          ERRNG  2*TFEJ2-TFEJ1-TFEJ3  IF RIGHT LONGER THAN LEFT 
 TFES     SPACE  4,10 
**        TFES - EQUIPMENT STATUS TABLE FIELD DESCRIPTORS.
  
  
 TFES     VFD    24/0,18/TFES1,18/TFES2 
 .OW      SET    EQDE-1 
 .BI      SET    0
  
 TFES1    BSS    0
          FIELD         EQDE,(MS/DEVICE DEP/STATUS   EQDE),59,12
          FIELD         EQDE,(CHANNEL 1 DATA             ),47,12
          FIELD         EQDE,(CHANNEL 2 DATA             ),35,12
          FIELD         EQDE,(DEVICE TYPE                ),23,12
          FIELD         EQDE,(DEVICE DEPENDENT           ),11,12
          CON    -1          END OF LEFT COLUMN 
  
 TFES2    BSS    0
          FIELD         EQAE,(INSTALLATION RESERVED  EQAE),59,12
          FIELD         EQAE,(RESERVED FOR CDC           ),47,12
          FIELD         EQAE,(DEVICE DEPENDENT           ),35,12
          FIELD         EQAE,(RES/ACCESS LEVELS          ),23,12
          FIELD         EQAE,(ASSIGNED EJT ORDINAL       ),11,12
          CON    0           END OF RIGHT COLUMN
  
 TFES3    EQU    *
          ERRNG  2*TFES2-TFES1-TFES3  IF RIGHT LONGER THAN LEFT 
 TFFN     SPACE  4,10 
**        TFFN - SYSTEM FILE NAME TABLE FIELD DESCRIPTORS.
  
  
 TFFN     VFD    24/0,18/TFFN1,18/TFFN2 
 .OW      SET    FNTG-1 
 .BI      SET    0
  
 TFFN1    BSS    0
          FIELD         FNTG,(FILE NAME              FNTG),59,42
          FIELD         FNTG,(RES/FAT INDEX              ),17,6 
          FIELD         FNTG,(FILE TYPE                  ),11,6 
          FIELD         FNTG,(RESERVED/INTERLOCK         ),5,6
          CON    -1          END OF LEFT COLUMN 
  
 TFFN2    BSS    0
          FIELD         FSTG,(EST ORDINAL            FSTG),59,12
          FIELD         FSTG,(FIRST TRACK                ),47,12
          FIELD         FSTG,(USER COUNT FOR MOD/APP/RD  ),35,24
          FIELD         FSTG,(ATTACH MODE/UPDATE COUNT   ),11,12
          CON    0           END OF RIGHT COLUMN
  
 TFFN3    EQU    *
          ERRNG  2*TFFN2-TFFN1-TFFN3  IF RIGHT LONGER THAN LEFT 
 TFMS     SPACE  4
**        TFMS - MASS STORAGE TABLE FIELD DESCRIPTORS.
  
  
 TFMS     VFD    24/0,18/TFMS1,18/TFMS2 
 .OW      SET    TDGL-1      INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFMS1    BSS    0
          FIELD         TDGL,(NUMBER OF TRACKS       TDGL),59,12
          FIELD         TDGL,(PF INTERLOCK / COUNTS      ),47,12
          FIELD         TDGL,(LENGTH OF TRT              ),35,12
          FIELD         TDGL,(FIRST AVAIL TRACK PTR      ),23,12
          FIELD         TDGL,(NUM AVAILABLE TRACKS       ),11,12
          FIELD         ACGL,(CTI/DS FILE/CT TRK OVF ACGL),59,3 
          FIELD         ACGL,(RESERVED                   ),56,3 
          FIELD         ACGL,(DAS MMF PARITY ACCESS MASK ),53,6 
          FIELD         ACGL,(OFFLINE DAS PARITY UNIT    ),47,6 
          FIELD         ACGL,(DAS RESTORE CYL/100B       ),41,6 
          FIELD         ACGL,(DIRECT ACCESS FILE CNT     ),35,12
          FIELD         ACGL,(FIRST TRACK IQFT           ),23,12
          FIELD         ACGL,(REDEFINITION STATUSES      ),11,6 
          FIELD         ACGL,(ALL MF UNLOADED/ERROR IDLE ),5,3
          FIELD         ACGL,(DAS ERROR/PARITY FLAGS     ),2,3
          FIELD         SDGL,(FLAG/MST LINK DEV ADDR SDGL),59,24
          FIELD         SDGL,(MST/TRT UPDATE COUNT       ),35,30
          FIELD         SDGL,(MF INDEX/CPUMTR INTERLOCKS ),5,6
          FIELD         ALGL,(FIRST TRACK IAPF       ALGL),59,12
          FIELD         ALGL,(LABEL TRACK                ),47,12
          FIELD         ALGL,(FIRST TRACK PERMITS        ),35,12
          FIELD         ALGL,(NUMBER CATALOG TRACKS      ),23,12
          FIELD         ALGL,(FIRST TRACK DAT            ),11,12
          FIELD         PFGL,(FAMILY OR PACK NAME    PFGL),59,42
          FIELD         PFGL,(DEVICE NUMBER              ),17,6 
          FIELD         PFGL,(DEVICE AL LIMIT LOWER/UPPER),11,6 
          FIELD         PFGL,(REL UNIT MULTIUNIT DEV     ),5,3
          FIELD         PFGL,(NUM UNIT MULTIUNIT DEV     ),2,3
          FIELD         PUGL,(USER NUM PRIVATE PACK  PUGL),59,42
          FIELD         PUGL,(CONT LBL TRK/DEV RES MASKS ),17,18
          FIELD         MDGL,(FLAGS AND DAT INDEX    MDGL),59,12
          FIELD         MDGL,(HT FLAG / S.U. SECTOR LIMIT),47,12
          FIELD         MDGL,(DRIVER NAME                ),35,12
          FIELD         MDGL,(RESERVED                   ),23,6 
          FIELD         MDGL,(DRIVER INDEX               ),17,6 
          FIELD         MDGL,(SECTOR LIMIT               ),11,12
          FIELD         NVGL,(TRACK TO BE FLAWED     NVGL),59,12
          FIELD         NVGL,(BAT EM ADDRESS             ),47,24
          FIELD         NVGL,(BAT TRACK CHAIN - LINK DEV.),23,12
          FIELD         NVGL,(RESERVED UNIT FLAGS        ),11,12
          FIELD         ISGL,(GLOBAL INSTAL AREA     ISGL),59,60
          FIELD         I2GL,(                       I2GL),59,60
          FIELD         DALL,(RES/DEVICE STATE       DALL),59,3 
          FIELD         DALL,(SUSPECT/RESTR. ACTIVITY    ),56,3 
          FIELD         DALL,(OUTSTANDING REQUESTS       ),53,6 
          FIELD         DALL,(UNIT INTERLOCKS            ),47,12
          FIELD         DALL,(CYLINDER NUMBER            ),35,12
          FIELD         DALL,(PRIORITY PP NUMBER         ),23,12
          FIELD         DALL,(CHANNEL 2                  ),11,6 
          FIELD         DALL,(CHANNEL 1                  ),5,6
          FIELD         DILL,(ALLOCATION FLAGS       DILL),59,12
          FIELD         DILL,(CH 2 ACCESS  7154 FLAG     ),47,6 
          FIELD         DILL,(CH 1 ACCESS  7154 FLAG     ),41,6 
          FIELD         DILL,(*PUT* ORD OF FIRST UNIT    ),35,12
          FIELD         DILL,(DEVICE FLAGS               ),23,3 
          FIELD         DILL,(MEMORY TYPE  - 3 BIT VALUE ),20,3 
          FIELD         DILL,(CPU TYPE     - 3 BIT VALUE ),17,3 
          FIELD         DILL,(PP PATH TYPE - 3 BIT VALUE ),14,3 
          FIELD         DILL,(RESERVED                   ),11,6 
          FIELD         DILL,(ALGORITHM INDEX            ),5,6
          CON    -1          END OF LEFT COLUMN 
  
 TFMS2    BSS    0
          FIELD         DULL,(2ND LABEL/TRT SECTOR   DULL),59,12
          FIELD         DULL,(PF INTERLOCK / COUNTS      ),47,12
          FIELD         DULL,(RESERVED                   ),35,6 
          FIELD         DULL,(MACHINE INDEX - 1          ),29,6 
          FIELD         DULL,(CKPT FLG/SYSTEM TABLE TRACK),23,12
          FIELD         DULL,(FAMILY IDLE STAT/ACT COUNT ),11,12
          FIELD         STLL,(LOCAL STATUS FLAGS     STLL),59,18
          FIELD         STLL,(ERROR STATUS               ),41,6 
          FIELD         STLL,(MACHINE ID                 ),35,12
          FIELD         STLL,(CURRENT USER COUNT DAF     ),23,12
          FIELD         STLL,(NEXT EST ORDINAL IN CHAIN  ),11,9 
          FIELD         STLL,(LOCAL STATUS               ),2,3
          FIELD         DDLL,(REDEF IN PROG/NULL EQ  DDLL),59,3 
          FIELD         DDLL,(EQUIPMENT NUMBER           ),56,3 
          FIELD         DDLL,(ORIGINAL NO. OF UNITS - 1  ),53,3 
          FIELD         DDLL,(CURRENT NO. OF UNITS - 1   ),50,3 
          FIELD         DDLL,(UNIT LIST                  ),47,48
          FIELD         ISLL,(LOCAL INSTAL AREA      ISLL),59,60
          FIELD         SCLL,(SWEEP CYLINDER         SCLL),59,12
          FIELD         SCLL,(SWEEP TIME STAMP           ),47,12
          FIELD         SCLL,(STARTING CYLINDER      SCYL),35,12
          FIELD         SCLL,(RESERVED                   ),23,06
          FIELD         TRLL,(FWA OF TRT             TRLL),17,18
          FIELD         THLL,(VERIF FAILURE THRESHOLD    ),59,12
          FIELD         THLL,(RESTRICT ACTIVITY THRESHOLD),47,12
          FIELD         THLL,(LOW SPACE THRESHOLD        ),35,12
          FIELD         THLL,(RECOVERED ERROR THRESHOLD  ),23,12
          FIELD         THLL,(UNRECOVERED ERROR THRESHOLD),11,12
          FIELD         CTLL,(VERIFIFICATION FAILURE CNT ),59,12
          FIELD         CTLL,(RESERVED                   ),47,24
          FIELD         CTLL,(RECOVERED ERROR COUNT      ),23,12
          FIELD         CTLL,(UNRECOVERED ERROR COUNT    ),11,12
          FIELD         EDLL,(RESERVED                   ),59,24
          FIELD         EDLL,(ERROR DATE/TIME            ),35,36
          FIELD         MCLL,(RESERVED FOR CDC       MCLL),59,24
          FIELD         MCLL,(MRT WRITE FLAG             ),35,12
          FIELD         MCLL,(PP INTERLOCK BIT MASK      ),23,24
          FIELD         BDLL,(DAS/9853 FLAGS         BDLL),59,12
          FIELD         BDLL,(BST ADDRESS                ),47,24
          FIELD         BDLL,(DAS MMF FLAGS              ),23,6 
          FIELD         BDLL,(READ BUFFER COUNT          ),17,6 
          FIELD         BDLL,(READ-AHEAD TRIGGER         ),11,6 
          FIELD         BDLL,(READ BUFFER THRESHOLD      ),5,6
          FIELD           26,(RESERVED                   ),59,60
          FIELD           27,(RESERVED                   ),59,60
          CON    0           END OF RIGHT COLUMN
  
 TFMS3    EQU    *
          ERRNG  2*TFMS2-TFMS1-TFMS3  IF RIGHT LONGER THAN LEFT 
 TFJC     SPACE  4
**        TFJC - JOB CONTROL AREA FIELD DESCRIPTORS.
  
  
 TFJC     VFD    24/0,18/TFJC1,18/TFJC2 
 .OW      SET    INQT-1      INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFJC1    BSS    0
          FIELD         INQT,(RESERVED               INQT),59,12
          FIELD         INQT,(LOWER BOUND PRIORITY       ),47,12
          FIELD         INQT,(UPPER BOUND PRIORITY       ),35,12
          FIELD         INQT,(WEIGHTING FACTOR           ),23,12
          FIELD         INQT,(RESERVED                   ),11,12
          FIELD         EXQT,(INIT LWR BND PRIORITY  EXQT),59,12
          FIELD         EXQT,(LOWER BOUND PRIORITY       ),47,12
          FIELD         EXQT,(UPPER BOUND PRIORITY       ),35,12
          FIELD         EXQT,(WEIGHTING FACTOR           ),23,12
          FIELD         EXQT,(INIT EXEC JOB PRIORITY     ),11,12
          FIELD         OTQT,(RESERVED               OTQT),59,12
          FIELD         OTQT,(LOWER BOUND PRIORITY       ),47,12
          FIELD         OTQT,(UPPER BOUND PRIORITY       ),35,12
          FIELD         OTQT,(WEIGHTING FACTOR           ),23,12
          FIELD         OTQT,(RESERVED                   ),11,12
          FIELD         SVJT,(RESERVED               SVJT),59,12
          FIELD         SVJT,(CP TIME SLICE - SECS       ),47,12
          FIELD         SVJT,(CM TIME SLICE - SECS/10B   ),35,12
          FIELD         SVJT,(MAX NUMBER JOBS FOR CLASS  ),23,12
          FIELD         SVJT,(TIMEOUT DELAY FOR SUSP JOBS),11,12
          FIELD         MCMT,(CP SLICE PRIORITY      MCMT),59,12
          FIELD         MCMT,(BASE PRTY FOR INT JOBS     ),47,12
          FIELD         MCMT,(MAX CM FL FOR ANY JOB      ),35,12
          FIELD         MCMT,(MAX CM FL FOR ALL JOBS     ),23,24
          FIELD         MECT,(RESERVED               MECT),59,24
          FIELD         MECT,(MAX XM FL FOR ANY JOB      ),35,12
          FIELD         MECT,(RESERVED                   ),23,12
          FIELD         MECT,(MAX XM FL FOR ALL JOBS     ),11,12
          CON    -1          END OF LEFT COLUMN 
  
 TFJC2    BSS    0
          FIELD         PFCT,(LIMIT FOR SIZE OF DAF  PFCT),59,3 
          FIELD         PFCT,(LIMIT FOR NUMBER OF PF     ),56,3 
          FIELD         PFCT,(LIMIT CUMM SIZE IAPF       ),53,3 
          FIELD         PFCT,(LIMIT FOR SIZE OF IAPF     ),50,3 
          FIELD         PFCT,(RESERVED FOR CDC           ),47,36
          FIELD         PFCT,(SERVICE CLASS ON DETACH    ),11,12
          FIELD         CSJT,(CPU PRIORITY           CSJT),59,12
          FIELD         CSJT,(SYSTEM I/O CPU THRESHOLD   ),47,12
          FIELD         CSJT,(CPU SLICE EXTENSION        ),35,12
          FIELD         CSJT,(RECALL CPU SLICE           ),23,12
          FIELD         CSJT,(UNEXTENDED CPU SLICE       ),11,12
          FIELD         CSAT,(RESERVED               CSAT),59,6 
          FIELD         CSAT,(CONVERTED SLICE EXTENSION  ),53,18
          FIELD         CSAT,(CONVERTED RECALL SLICE     ),35,18
          FIELD         CSAT,(CONVERTED US+SE-RS         ),17,18
          FIELD         CSBT,(RESERVED               CSBT),59,42
          FIELD         CSBT,(CONVERTED I/O THRESHOLD    ),17,18
          FIELD         JCTT,(CURRENT JOB COUNT      JCTT),59,12
          FIELD         JCTT,(JOBS WAITING               ),47,12
          FIELD         JCTT,(RESERVED                   ),35,36
          FIELD         CTMT,(TOTAL CPU ACCUMULATOR  CTMT),59,60
          CON    0           END OF RIGHT COLUMN
  
 TFJC3    EQU    *
          ERRNG  2*TFJC2-TFJC1-TFJC3  IF RIGHT LONGER THAN LEFT 
 TFEB     SPACE  4
**        TFEB - FIELD DESCRIPTORS FOR THE EI COMMUNICATIONS
*         BLOCK.
  
  
 TFEB     VFD    24/0,18/TFEB1,18/TFEB2 
 .OW      SET    /VE/D7TY-1  INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFEB1    BSS    0
          FIELD     /VE/D7TY,(RESERVED               D7TY),59,6 
          FIELD     /VE/D7TY,(DATE POINTER               ),53,18
          FIELD     /VE/D7TY,(TIME POINTER               ),35,18
          FIELD     /VE/D7TY,(170 OS TYPE                ),17,6 
          FIELD     /VE/D7TY,(170 INTERFACE VERSION      ),11,6 
          FIELD     /VE/D7TY,(170 INTERFACE LEVEL        ),5,6
          FIELD     /VE/D7JP,(JOB UNIQUE ID          D7JP),59,36
          FIELD     /VE/D7JP,(TRAP 180 VALIDATION        ),23,9 
          FIELD     /VE/D7JP,(170 CPU PRIORITY           ),14,15
          FIELD   /VE/D7JP+1,(JOB UNIQUE ID              ),59,36
          FIELD   /VE/D7JP+1,(TRAP 180 VALIDATION        ),23,9 
          FIELD   /VE/D7JP+1,(170 CPU PRIORITY           ),14,15
          FIELD     /VE/D7ST,(OPERATING MODES        D7ST),59,3 
          FIELD     /VE/D7ST,(OPERATOR FLAGS             ),56,3 
          FIELD     /VE/D7ST,(CHECKPOINT COMPLETE        ),53,3 
          FIELD     /VE/D7ST,(CHECKPOINT IN PROGRESS     ),50,3 
          FIELD     /VE/D7ST,(RESERVED                   ),47,9 
          FIELD     /VE/D7ST,(DROP NOS/VE                ),38,3 
          FIELD     /VE/D7ST,(FWA MLST/MLI STATUS TABLE  ),35,18
          FIELD     /VE/D7ST,(LENGTH OF MLST             ),17,6 
          FIELD     /VE/D7ST,(RESERVED                   ),11,12
          FIELD     /VE/D7RS,(RESERVED               D7RS),59,60
          FIELD   /VE/D7RS+1,(RESERVED                   ),59,60
          FIELD   /VE/D7RS+2,(RESERVED                   ),59,27
          FIELD   /VE/D7RS+2,(FWA SCD PARAMETER TABLE    ),32,33
          FIELD     /VE/D7CM,(RESERVED               D7CM),59,12
          FIELD     /VE/D7CM,(MINCM/1000B                ),47,24
          FIELD     /VE/D7CM,(NVE STATIC CM SIZE/1000B   ),23,24
          FIELD   /VE/D7CM+1,(RESERVED                   ),59,12
          FIELD   /VE/D7CM+1,(NOS/VE CM FWA/1000B        ),47,24
          FIELD   /VE/D7CM+1,(NOS/VE CM LWA+1/1000B      ),23,24
          FIELD     /VE/D7SV,(LAST 180 CP TIME CPU0  D7SV),59,60
          FIELD   /VE/D7SV+1,(LAST 180 CP TIME CPU1      ),59,60
          FIELD   /VE/D7SV+2,(SYSTEM VERSION NAME POINTER),59,60
          FIELD   /VE/D7SV+3,(SYSTEM TITLE LINE POINTER  ),59,60
          FIELD   /VE/D7SV+4,(RESERVED                   ),59,60
          FIELD   /VE/D7SV+5,(RESERVED                   ),59,60
          FIELD     /VE/D8TY,(RESERVED               D8TY),59,33
          FIELD     /VE/D8TY,(EI VERSION                 ),26,9 
          FIELD     /VE/D8TY,(180 OS TYPE                ),17,6 
          FIELD     /VE/D8TY,(180 INTERFACE VERSION      ),11,6 
          FIELD     /VE/D8TY,(180 INTERFACE LEVEL        ),5,6
          FIELD     /VE/D8TM,(ACCUM 180 CPU0 TIME    D8TM),59,60
          FIELD   /VE/D8TM+1,(ACCUM 180 CPU1 TIME        ),59,60
          FIELD     /VE/D8JP,(RESERVED               D8JP),59,36
          FIELD     /VE/D8JP,(CPU0 ACTIVE OS             ),23,9 
          FIELD     /VE/D8JP,(NOS/VE CPU0 PRIORITY       ),14,15
          FIELD   /VE/D8JP+1,(RESERVED                   ),59,36
          FIELD   /VE/D8JP+1,(CPU1 ACTIVE OS             ),23,9 
          FIELD   /VE/D8JP+1,(NOS/VE CPU1 PRIORITY       ),14,15
          CON    -1          END OF LEFT COLUMN 
  
 TFEB2    BSS    0
          FIELD     /VE/D8ST,(OPERATING MODES        D8ST),59,3 
          FIELD     /VE/D8ST,(OPERATOR FLAG              ),56,3 
          FIELD     /VE/D8ST,(CHECKPOINT COMPLETE        ),53,3 
          FIELD     /VE/D8ST,(CHECKPOINT IN PROGRESS     ),50,3 
          FIELD     /VE/D8ST,(RESERVED                   ),47,18
          FIELD     /VE/D8ST,(VPB LOGICAL PP NUMBER      ),29,6 
          FIELD     /VE/D8ST,(SVP PORT NUMBER            ),23,6 
          FIELD     /VE/D8ST,(SCD LOGICAL PP NUMBER      ),17,6 
          FIELD     /VE/D8ST,(RESERVED                   ),11,12
          FIELD     /VE/D8DS,(NVE DEADSTART STATUS   D8DS),59,30
          FIELD     /VE/D8DS,(NVE DEADSTART INTRLK       ),29,30
          FIELD   /VE/D8DS+1,(EI STACK FRAME ADDRESS     ),59,30
          FIELD   /VE/D8DS+1,(C170 EXCHANGE ADDRESS      ),29,30
          FIELD   /VE/D8DS+2,(ALT STACK FRAME ADDRESS    ),59,30
          FIELD   /VE/D8DS+2,(ALT EXCHANGE ADDRESS       ),29,30
          FIELD     /VE/D8SV,(ADDRESS OF SPAA        D8SV),59,60
          FIELD   /VE/D8SV+1,(SSR POINTER WORD           ),59,60
          FIELD   /VE/D8SV+2,(RESERVED                   ),59,60
          FIELD   /VE/D8SV+3,(RESERVED                   ),59,60
          FIELD   /VE/D8SV+4,(SCD WORD 1                 ),59,60
          FIELD   /VE/D8SV+5,(SCD WORD 2                 ),59,60
          FIELD     /VE/DSCM,(MAINFRAME ERROR INFO   DSCM),59,60
          FIELD   /VE/DSCM+1,(ZERO                       ),59,60
          FIELD   /VE/DSCM+2,(CTI DIRECTORY POINTER      ),59,60
          FIELD   /VE/DSCM+3,(DFT/OS BUFFER POINTER      ),59,60
          FIELD   /VE/DSCM+4,(RESERVED                   ),59,60
          FIELD     /VE/DFCM,(RESERVED               DFCM),59,12
          FIELD     /VE/DFCM,(MESSAGE LENGTH             ),47,18
          FIELD     /VE/DFCM,(RESERVED                   ),29,12
          FIELD     /VE/DFCM,(MESSAGE SEQUENCE NUMBER    ),17,18
          FIELD   /VE/DFCM+1,(DFT MESSAGE WORD 1         ),59,60
          FIELD   /VE/DFCM+2,(DFT MESSAGE WORD 2         ),59,60
          FIELD   /VE/DFCM+3,(DFT MESSAGE WORD 3         ),59,60
          FIELD   /VE/DFCM+4,(RESERVED                   ),59,60
          FIELD   /VE/DFCM+5,(RESERVED                   ),59,60
          FIELD   /VE/DFCM+6,(RESERVED                   ),59,60
          FIELD   /VE/DFCM+7,(RESERVED                   ),59,60
          FIELD   /VE/DFCM+8,(RESERVED                   ),59,60
          FIELD   /VE/DFCM+9,(RESERVED                   ),59,60
          FIELD  /VE/DFCM+10,(RESERVED                   ),59,60
          CON    0           END OF RIGHT COLUMN
  
 TFEB3    EQU    *
          ERRNG  2*TFEB2-TFEB1-TFEB3  RIGHT COLUMN LONGER THAN LEFT 
 TFQF     SPACE  4,10 
**        TFQF - QUEUED FILE TABLE FIELD DESCRIPTORS. 
  
  
 TFQF     VFD    24/0,18/TFQF1,18/TFQF2 
 .OW      SET    JSNQ-1 
 .BI      SET    0
  
 TFQF1    BSS    0
          FIELD         JSNQ,(JSN                    JSNQ),59,24
          FIELD         JSNQ,(FAMILY ORDINAL             ),35,6 
          FIELD         JSNQ,(USER INDEX                 ),29,18
          FIELD         JSNQ,(DISPOSITION TYPE           ),11,6 
          FIELD         JSNQ,(STATUS                     ),5,6
          FIELD         ENTQ,(EST ORDINAL            ENTQ),59,12
          FIELD         ENTQ,(FIRST TRACK                ),47,12
          FIELD         ENTQ,(RESERVED                   ),35,9 
          FIELD         ENTQ,(FILE SIZE INDEX            ),26,3 
          FIELD         ENTQ,(ENTRY TIME                 ),23,24
          CON    -1          END OF LEFT COLUMN 
  
 TFQF2    BSS    0
          FIELD         INSQ,(INSTALLATION RESERVED  INSQ),59,12
          FIELD         INSQ,(DESTINATION LID            ),47,18
          FIELD         INSQ,(RESERVED                   ),29,12
          FIELD         INSQ,(FILE ACCESS LVL/LIMIT/RES  ),17,12
          FIELD         INSQ,(REPEAT COUNT               ),5,6
          FIELD         SCLQ,(SERVICE CLASS          SCLQ),59,6 
          FIELD         SCLQ,(FILE ORIGIN TYPE           ),53,6 
          FIELD         SCLQ,(LOCAL PRINTER ID/FO-UI     ),47,24
          FIELD         SCLQ,(RES/FILE CHARACTERISTICS   ),23,12
          FIELD         SCLQ,(FORMS CODE                 ),11,12
          CON    0           END OF RIGHT COLUMN
  
 TFQF3    EQU    *
          ERRNG  2*TFQF2-TFQF1-TFQF3  IF RIGHT LONGER THAN LEFT 
 TFSD     SPACE  4,10 
**        TFSD - STATISTICAL DATA AREA FIELD DESCRIPTIONS.
  
  
 TFSD     VFD    24/0,18/TFSD1,18/TFSD2 
 .OW      SET    JS0S-1      INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFSD1    BSS    0
          FIELD         JS0S,(EJT SCANS              JS0S),59,24
          FIELD         JS0S,(SCHEDULABLE JOBS           ),35,36
          FIELD         JS1S,(RESERVED FOR CDC       JS1S),59,12
          FIELD         JS1S,(JOBS PREEMPTED             ),47,24
          FIELD         JS1S,(JOBS SCHEDULED             ),23,24
          FIELD         JS2S,(RESERVED FOR CDC       JS2S),59,12
          FIELD         JS2S,(JOBS SCHED NO CONSTRAINTS  ),47,24
          FIELD         JS2S,(EJT SCANS INSUFFICIENT CM  ),23,24
          FIELD         JS3S,(RESERVED FOR CDC       JS3S),59,12
          FIELD         JS3S,(EJT SCANS INSUFFICIENT EM  ),47,24
          FIELD         JS3S,(EJT SCANS NO CP            ),23,24
          FIELD         PF0S,(RESERVED FOR CDC       PF0S),59,12
          FIELD         PF0S,(ROLLOUTS FOR RES LIMITS    ),47,24
          FIELD         PF0S,(TIME SLICES                ),23,24
          FIELD         MTRS,(RESERVED FOR CDC       MTRS),59,12
          FIELD         MTRS,(MTR CLOCK UPDATES MISSED   ),47,12
          FIELD         MTRS,(MTR WORST CASE MXN TIME    ),35,12
          FIELD         MTRS,(WORST CASE MTR CYCLE TIME  ),23,12
          FIELD         MTRS,(CURRENT MTR CYCLE TIME     ),11,12
          FIELD         CMMS,(CM STORAGE MOVES       CMMS),59,60
          FIELD         EMMS,(EM STORAGE MOVES       EMMS),59,60
          FIELD         DMMS,(DIRECT MOVES           DMMS),59,60
          CON    -1          END OF LEFT COLUMN 
  
 TFSD2    BSS    0
          FIELD         CBNS,(COM BUFFER NOT AVAIL   CBNS),59,60
          FIELD         PRXS,(PP PRIORITY EXCHANGES  PRXS),59,60
          FIELD         ROTS,(MASS STORAGE ROLLOUTS  ROTS),59,60
          FIELD         POTS,(PSEUDO-ROLLOUTS        POTS),59,60
          FIELD         PCTS,(PCP ROLLOUTS           PCTS),59,60
          FIELD         SOTS,(ROLLOUTS TO SEC DEV    SOTS),59,60
          FIELD         NROS,(SECTORS ROLLED OUT     NROS),59,60
          FIELD         NSRS,(SEC ROLLED TO SEC DEV  NSRS),59,60
          FIELD         PCNS,(NO PCP AVAILABLE       PCNS),59,60
          FIELD         DM1S,(CURRENT BRT ENTRIES    DM1S),59,12
          FIELD         DM1S,(WORST CASE BRT ENTRIES     ),47,12
          FIELD         DM1S,(BRT ENTRIES REJECTED       ),35,12
          FIELD         DM1S,(TOTAL BRT ENTRIES          ),23,24
          FIELD         DM2S,(CURRENT MTE CYCLE TIME DM2S),59,12
          FIELD         DM2S,(WORST CASE MTE CYCLE TIME  ),47,12
          FIELD         DM2S,(BAT INTERLOCK UNAVAIL.     ),35,12
          FIELD         DM2S,(TOTAL BAT REQUESTS         ),23,24
          CON    0           END OF RIGHT COLUMN
  
 TFSD3    EQU    *
          ERRNG  2*TFSD2-TFSD1-TFSD3  IF RIGHT LONGER THAN LEFT 
 TSCT     SPACE  4,10 
**        TSCT - SERVICE CLASS CONTROL TABLE. 
  
  
 TSCT     VFD    24/0,18/TSCT1,18/TSCT2 
 .OW      SET    SYOT-1      INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TSCT1    BSS    0
          FIELD         SYOT,(RESERVED FOR INSTALLATIONS ),59,12
          FIELD         SYOT,(RESERVED FOR CDC           ),47,6 
          FIELD         SYOT,(ACCESS LEVEL LOWER LIMIT   ),41,3 
          FIELD         SYOT,(ACCESS LEVEL UPPER LIMIT   ),38,3 
          FIELD         SYOT,(VALIDATION MASK FOR SYOT   ),35,36
          FIELD         BCOT,(RESERVED FOR INSTALLATIONS ),59,12
          FIELD         BCOT,(RESERVED FOR CDC           ),47,6 
          FIELD         BCOT,(ACCESS LEVEL LOWER LIMIT   ),41,3 
          FIELD         BCOT,(ACCESS LEVEL UPPER LIMIT   ),38,3 
          FIELD         BCOT,(VALIDATION MASK FOR BCOT   ),35,36
          FIELD         EIOT,(RESERVED FOR INSTALLATIONS ),59,12
          FIELD         RBOT,(RESERVED FOR CDC           ),47,6 
          FIELD         RBOT,(ACCESS LEVEL LOWER LIMIT   ),41,3 
          FIELD         RBOT,(ACCESS LEVEL UPPER LIMIT   ),38,3 
          FIELD         RBOT,(VALIDATION MASK FOR RBOT   ),35,36
          FIELD         IAOT,(RESERVED FOR INSTALLATIONS ),59,12
          FIELD         IAOT,(RESERVED FOR CDC           ),47,6 
          FIELD         IAOT,(ACCESS LEVEL LOWER LIMIT   ),41,3 
          FIELD         IAOT,(ACCESS LEVEL UPPER LIMIT   ),38,3 
          FIELD         IAOT,(VALIDATION MASK FOR IAOT   ),35,36
          FIELD       MXOT-2,(RESERVED FOR FUTURE OT     ),59,60
          FIELD       MXOT-1,(RESERVED FOR FUTURE OT     ),59,60
          CON    -1          END OF LEFT COLUMN 
  
 TSCT2    BSS    0
          FIELD         PLSC,(P0 SERVICE CLASS           ),59,12
          FIELD         PLSC,(P1 SERVICE CLASS           ),47,12
          FIELD         PLSC,(P2 SERVICE CLASS           ),35,12
          FIELD         PLSC,(P3 SERVICE CLASS           ),23,12
          FIELD         PLSC,(P4 SERVICE CLASS           ),11,12
          FIELD       PLSC+1,(P5 SERVICE CLASS           ),59,12
          FIELD       PLSC+1,(P6 SERVICE CLASS           ),47,12
          FIELD       PLSC+1,(P7 SERVICE CLASS           ),35,12
          FIELD       PLSC+1,(RESERVED FOR CDC           ),23,24
          FIELD       PLSC+2,(RESERVED FOR INSTALLATION  ),59,60
          FIELD       PLSC+3,(RESERVED FOR CDC           ),59,60
          FIELD       PLSC+4,(RESERVED FOR CDC           ),59,60
          FIELD       PLSC+5,(RESERVED FOR CDC           ),59,60
          CON    0           END OF RIGHT COLUMN
  
 TSCT3    EQU    *
          ERRNG  2*TSCT2-TSCT1-TSCT3  IF RIGHT LONGER THAN LEFT 
 TCPR     SPACE  4,10 
**        TCPR - CPU REQUEST QUEUE FIELD DESCRIPTORS. 
  
  
 TCPR     VFD    24/0,18/TCPR1,18/TCPR2 
 .OW      SET    CWQW-1      INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TCPR1    BSS    0
          FIELD         CWQW,(CPU PRIORITY/FLAGS     CWQW),59,12
          FIELD         CWQW,(SLICE/RECALL FLAGS         ),47,3 
          FIELD         CWQW,(SERVICE CYCLE NUMBER       ),44,9 
          FIELD         CWQW,(CPU SCHED SERVICE INDEX    ),35,9 
          FIELD         CWQW,(CPU FLAGS/RES/EXPACK TYPE  ),26,9 
          FIELD         CWQW,(*WQ* LINKAGE               ),17,18
          CON    -1          END OF LEFT COLUMN 
  
 TCPR2    BSS    0
          FIELD         CSAW,(ZERO                   CSAW),59,6 
          FIELD         CSAW,(CPU TIME THRESHOLD         ),53,18
          FIELD         CSAW,(RECALL SLICE ACCUMULATOR   ),35,18
          FIELD         CSAW,(CPU SLICE ACCUMULATOR      ),17,18
          CON    0           END OF RIGHT COLUMN
  
 TCPR3    EQU    *
          ERRNG  2*TCPR2-TCPR1-TCPR3  IF RIGHT LONGER THAN LEFT 
 TPPR     SPACE  4,10 
**        TPPR - PP REQUEST QUEUE FIELD DESCRIPTORS.
  
  
 TPPR     VFD    24/0,18/TPPR1,18/TPPR2 
  
 TPPR1    BSS    0
          FIELD        TPPRA,(RESERVED               RCCW),59,48,I
          FIELD        TPPRA,(LINK TO NEXT ENTRY         ),11,12,I
          CON    -1          END OF LEFT COLUMN 
  
 TPPR2    BSS    0
          FIELD        TPPRB,(PP INPUT REGISTER      RECW),59,60,I
          FIELD        TPPRC,(PP MESSAGE BUFFER      REPW),59,60,I
          CON    0           END OF RIGHT COLUMN
  
 TPPR3    EQU    *
          ERRNG  2*TPPR2-TPPR1-TPPR3  IF RIGHT LONGER THAN LEFT 
  
 TPPRA    CON    0           ACTUAL RCCW ADDRESS
 TPPRB    CON    0           ACTUAL RECW ADDRESS
 TPPRC    CON    0           ACTUAL REPW ADDRESS
 TCRL     SPACE  4,10 
**        TCRL - CPU RECALL QUEUE FIELD DESCRIPTORS.
  
  
 TCRL     VFD    24/0,18/TCRL1,18/TCRL2 
 .OW      SET    CRCW-1      INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TCRL1    BSS    0
          FIELD         CRCW,(RECALL CRITERION NO.   CRCW),59,12
          FIELD         CRCW,(RECALL CRITERION PARMS.    ),47,36
          FIELD         CRCW,(LINK TO NEXT ENTRY         ),11,12
          CON    -1          END OF LEFT COLUMN 
  
 TCRL2    BSS    0
          CON    0           END OF RIGHT COLUMN
  
 TCRL3    EQU    *
          ERRNG  2*TCRL2-TCRL1-TCRL3  IF RIGHT LONGER THAN LEFT 
 TPRL     SPACE  4,10 
**        TPRL - PP RECALL QUEUE FIELD DESCRIPTORS
  
  
 TPRL     VFD    24/0,18/TPRL1,18/TPRL2 
  
 TPRL1    BSS    0
          FIELD        TPRLA,(RECALL CRITERION NO.   RCCW),59,12,I
          FIELD        TPRLA,(RECALL CRITERION PARMS.    ),47,36,I
          FIELD        TPRLA,(LINK TO NEXT ENTRY         ),11,12,I
          CON    -1          END OF LEFT COLUMN 
  
 TPRL2    BSS    0
          FIELD        TPRLB,(PP INPUT REGISTER      RECW),59,60,I
          FIELD        TPRLC,(PP MESSAGE BUFFER      REPW),59,60,I
          CON    0           END OF RIGHT COLUMN
  
 TPRL3    EQU    *
          ERRNG  2*TPRL2-TPRL1-TPRL3  IF RIGHT LONGER THAN LEFT 
  
 TPRLA    CON    0           ACTUAL RCCW ADDRESS
 TPRLB    CON    0           ACTUAL RECW ADDRESS
 TPRLC    CON    0           ACTUAL REPW ADDRESS
 TFTT     SPACE  4
**        TFTT - IAF TERMINAL TABLE FIELD DESCRIPTORS.
  
  
 TFTT     VFD    24/0,18/TFTT1,18/TFTT2 
 .OW      SET    /REM/VUIT-1 INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFTT1    BSS    0
          FIELD    /REM/VUIT,(USER NAME              VUIT),59,42
          FIELD    /REM/VUIT,(FAMILY ORDINAL             ),17,6 
          FIELD    /REM/VUIT,(EJT ORDINAL                ),11,12
          FIELD    /REM/VFNT,(PRIMARY FILE NAME      VFNT),59,42
          FIELD    /REM/VFNT,(MODE                       ),17,6 
          FIELD    /REM/VFNT,(RESERVED                   ),11,12
          FIELD    /REM/VFST,(JOB SEQUENCE NUMBER    VFST),59,24
          FIELD    /REM/VFST,(TOTAL I/O OVERFLOW COUNT   ),35,12
          FIELD    /REM/VFST,(SMF STATE CODE             ),23,6 
          FIELD    /REM/VFST,(SM TIMEOUT/NEXT OP INDEX   ),17,6 
          FIELD    /REM/VFST,(EXTRA POT POINTER          ),11,12
  
          FIELD    /REM/VROT,(NEXT OPER INDICATOR    VROT),59,6 
          FIELD    /REM/VROT,(PREPROCESSOR INDEX         ),53,6 
          FIELD    /REM/VROT,(CONT STMNT POT POINTER     ),47,12
          FIELD    /REM/VROT,(*1TO* STATUS               ),35,12
          FIELD    /REM/VROT,(SUB-STATUS                 ),23,12
          FIELD    /REM/VROT,(STATUS                     ),11,12
          FIELD    /REM/VDPT,(FIRST POT              VDPT),59,12
          FIELD    /REM/VDPT,(CURRENT POT                ),47,12
          FIELD    /REM/VDPT,(POT POSITION               ),35,12
          FIELD    /REM/VDPT,(CONTROL FLAGS              ),23,12
          FIELD    /REM/VDPT,(ROUTINE ADDRESS            ),11,12
          CON    -1          END OF LEFT COLUMN 
  
 TFTT2    BSS    0
          FIELD    /REM/VCHT,(REENTRY ADDRESS        VCHT),59,12
          FIELD    /REM/VCHT,(12 BIT (X7)                ),47,12
          FIELD    /REM/VCHT,((B3)                       ),35,12
          FIELD    /REM/VCHT,(INPUT CHARACTER COUNT      ),23,12
          FIELD    /REM/VCHT,(OUTPUT CHARACTER COUNT     ),11,12
          FIELD    /REM/VDCT,(DRIVER FLAGS           VDCT),59,12
          FIELD    /REM/VDCT,(CONTROL INFORMATION        ),47,12
          FIELD    /REM/VDCT,(AUTO                       ),35,12
          FIELD    /REM/VDCT,(ACCESS LEVEL               ),23,12
          FIELD    /REM/VDCT,(NEXT MESSAGE               ),11,12
          FIELD    /REM/VSTT,(GENERAL FLAGS          VSTT),59,12
          FIELD    /REM/VSTT,(FIRST POT SOURCE           ),47,12
          FIELD    /REM/VSTT,(POT COUNT                  ),35,12
          FIELD    /REM/VSTT,(INIT CHAR SET/CURR SYS     ),23,12
          FIELD    /REM/VSTT,(QUEUED OUTPUT POT POINTER  ),11,12
          CON    0           END OF RIGHT COLUMN
  
 TFTT3    EQU    *
          ERRNG  2*TFTT2-TFTT1-TFTT3  IF RIGHT LONGER THAN LEFT 
 TFMT     SPACE  4,10 
**        TFMT - IAF MESSAGE STATUS TABLE FIELD DESCRIPTORS.
  
  
 TFMT     VFD    24/0,18/TFMT1,18/TFMT2 
 .OW      SET    0-1         INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFMT1    BSS    0
          FIELD            0,(FLAGS/DEVICE TYPE      VMST),59,24
          FIELD            0,(UNACKNOW DWNSTRM BLOCK CNT ),35,3 
          FIELD            0,(APPLICATION BLOCK LIMIT    ),32,3 
          FIELD            0,(RESERVED                   ),29,6 
          FIELD            0,(NUMBER OF OUTPUT POTS      ),23,6 
          FIELD            0,(SUPERVISORY MSG POT PNTR   ),17,18
          CON    -1          END OF LEFT COLUMN 
  
 TFMT2    BSS    0
          CON    0           END OF RIGHT COLUMN
  
 TFMT3    EQU    *
          ERRNG  2*TFMT2-TFMT1-TFMT3  IF RIGHT LONGER THAN LEFT 
 TFMU     SPACE  4
**        TFMU - MAGNET UNIT DESCRIPTOR TABLE FIELD DESCRIPTORS.
  
  
 TFMU     VFD    24/0,18/TFMU1,18/TFMU2 
 .OW      SET    /MTX/UXRQ-1 INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFMU1    BSS    0
          FIELD    /MTX/UXRQ,(RETURN STATUS       RS UXRQ),59,12
          FIELD    /MTX/UXRQ,(FUNCTION NUMBER     FN     ),47,12
          FIELD    /MTX/UXRQ,(MODE                MD     ),35,12
          FIELD    /MTX/UXRQ,(PARAMETER A         PA     ),23,12
          FIELD    /MTX/UXRQ,(PARAMETER B         PB     ),11,12
          FIELD    /MTX/UFRQ,(FILE REQUEST           UFRQ),59,12
          FIELD    /MTX/UFRQ,(FILE REQUEST STATUS        ),47,12
          FIELD    /MTX/UFRQ,(RESERVED                   ),35,24
          FIELD    /MTX/UFRQ,(TAPE FILE FNT ADDRESS      ),11,12
          FIELD    /MTX/UCIA,(INTERNAL CIO CODE      UCIA),59,12
          FIELD    /MTX/UCIA,(FET LENGTH                 ),47,6 
          FIELD    /MTX/UCIA,(SKIP COUNT                 ),41,18
          FIELD    /MTX/UCIA,(FET ADDRESS                ),23,24
          FIELD    /MTX/UCIB,(RCL/DATA/EXT CIO CODE  UCIB),59,12
          FIELD    /MTX/UCIB,(USER FET OPTIONS           ),47,12
          FIELD    /MTX/UCIB,(LEVEL NUMBER               ),35,6 
          FIELD    /MTX/UCIB,(MLRS FOR S OR L FORMAT     ),29,30
          FIELD    /MTX/UCIC,(JOB FIELD LENGTH       UCIC),59,12
          FIELD    /MTX/UCIC,(FIRST                      ),47,24
          FIELD    /MTX/UCIC,(LIMIT                      ),23,24
          FIELD    /MTX/UST1,(EQUIP DESCRIPTION   ED UST1),59,12
          FIELD    /MTX/UST1,(HARDWARE OPTIONS    HP     ),47,12
          FIELD    /MTX/UST1,(EST ORDINAL         EO     ),35,12
          FIELD    /MTX/UST1,(EXTENDED STATUS     ES     ),23,12
          FIELD    /MTX/UST1,(DEVICE STATUS       DS     ),11,12
          FIELD    /MTX/UST2,(ERROR ITERATION     EI UST2),59,12
          FIELD    /MTX/UST2,(BLOCK ID WINDOW POINTER    ),47,12
          FIELD    /MTX/UST2,(TAPE BLOCK COUNT    BC     ),35,24
          FIELD    /MTX/UST2,(USER OPTIONS        UP     ),11,12
          FIELD    /MTX/UST3,(LAST GOOD RECORD    LG UST3),59,24
          FIELD    /MTX/UST3,(ERROR PARAMETERS    EP     ),35,24
          FIELD    /MTX/UST3,(REQUEST ERROR CODE  EC     ),11,12
          FIELD    /MTX/UST4,(LABEL TYPE, FLAGS   LT UST4),59,12
          FIELD    /MTX/UST4,(SOFTWARE OPTIONS    SP     ),47,12
          FIELD    /MTX/UST4,(FORMAT/NOISE DEF    EO     ),35,12
          FIELD    /MTX/UST4,(BLOCK WORD COUNT    WC     ),23,12
          FIELD    /MTX/UST4,(CHUNK COUNT         OV     ),11,12
          FIELD    /MTX/UST5,(DENSITY/CONV MODE      UST5),59,12
          FIELD    /MTX/UST5,(ERROR SUB-CODE             ),47,12
          FIELD    /MTX/UST5,(RESERVED                   ),35,36
          FIELD    /MTX/UDS1,(DETAILED STATUS        UDS1),59,60
          FIELD    /MTX/UDS2,(DETAILED STATUS        UDS2),59,60
          FIELD    /MTX/UDS3,(DETAILED STATUS        UDS2),59,60
          FIELD    /MTX/UDS4,(DET STAT/FORMAT PARAM  UDS4),59,60
          FIELD    /MTX/UDS5,(DET STAT/BID WINDOW    UDS5),59,24
          FIELD    /MTX/UDS6,(DET STAT/BID WINDOW    UDS6),35,36
          FIELD    /MTX/UERC,(LATE DATA ERRORS       UERC),59,18
          FIELD    /MTX/UERC,(WRITE ERRORS               ),41,18
          FIELD    /MTX/UERC,(RESERVED                   ),23,6 
          FIELD    /MTX/UERC,(READ ERRORS                ),17,18
          FIELD    /MTX/UBLC,(BLOCKS READ COUNT      UBLC),59,24
          FIELD    /MTX/UBLC,(BLOCKS WRITTEN COUNT       ),35,24
          FIELD    /MTX/UBLC,(BLOCKS SKIPPED COUNT       ),11,12
          FIELD    /MTX/ULRQ,(LAST PP REQUEST        ULRQ),59,60
          FIELD    /MTX/UMSG,(TMS MESSAGE            UMB1),59,60
          FIELD  /MTX/UMSG+1,(TMS MESSAGE                ),59,60
          FIELD  /MTX/UMSG+2,(TMS MESSAGE                ),59,60
          FIELD  /MTX/UMSG+3,(TMS MESSAGE                ),59,60
          CON    -1          END OF LEFT COLUMN 
  
 TFMU2    BSS    0
          FIELD    /MTX/UREQ,(ZERO                   UREQ),59,6 
          FIELD    /MTX/UREQ,(SHIFT COUNT                ),53,6 
          FIELD    /MTX/UREQ,(PROCESSOR ADDRESS          ),47,12
          FIELD    /MTX/UREQ,(PARAMETER                  ),35,36
          FIELD    /MTX/UFLA,(MAGNET FLAGS           UFLA),59,12
          FIELD    /MTX/UFLA,(PP REQUEST TO REISSUE      ),47,48
          FIELD    /MTX/UTIM,(TIME OF LABEL READ     UTIM),59,24
          FIELD    /MTX/UTIM,(RESERVED                   ),35,36
          FIELD    /MTX/UVRI,(EJT ORDINAL            UVRI),59,12
          FIELD    /MTX/UVRI,(FLAGS                      ),47,6 
          FIELD    /MTX/UVRI,(VSN FILE RANDOM ADDRESS    ),41,18
          FIELD    /MTX/UVRI,(REEL NUMBER                ),23,12
          FIELD    /MTX/UVRI,(FLAGS                      ),11,12
          FIELD    /MTX/UTMS,(TFM REQUEST            UTMS),59,12
          FIELD    /MTX/UTMS,(                           ),47,12
          FIELD    /MTX/UTMS,(WRITE REEL                 ),35,12
          FIELD    /MTX/UTMS,(WAIT UNIT GO FLAGS         ),23,12
          FIELD    /MTX/UTMS,(TMS RETURN STATUS          ),11,12
          FIELD    /MTX/UTCI,(FNT ORDINAL            UTCI),59,12
          FIELD    /MTX/UTCI,(POSMF CATALOG              ),47,24
          FIELD    /MTX/UTCI,(CURRENT CATALOG            ),23,24
          FIELD    /MTX/UESN,(EXTERNAL VSN           UESN),59,36
          FIELD    /MTX/UESN,(RESOURCE MNEMONIC          ),23,12
          FIELD    /MTX/UESN,(PREVIEW DISPLAY FLAGS      ),11,12
          FIELD    /MTX/UISN,(INTERNAL VSN           UISN),59,36
          FIELD    /MTX/UISN,(PREVIEW DISPLAY FLAGS      ),23,6 
          FIELD    /MTX/UISN,(PREV DISP MESSAGE CODE     ),17,6 
          FIELD    /MTX/UISN,(PREV DISP MESSAGE EST      ),11,12
          FIELD    /MTX/UUFN,(USER NAME              UUFN),59,42
          FIELD    /MTX/UUFN,(FAMILY ORDINAL             ),17,6 
          FIELD    /MTX/UUFN,(SPECIFIED FILE ACCESS      ),11,6 
          FIELD    /MTX/UUFN,(RESERVED                   ),5,6
          FIELD    /MTX/UVSN,(VOLUME SERIAL NUMBER   UVSN),59,36
          FIELD    /MTX/UVSN,(LABEL PROCESSING FLAGS     ),23,12
          FIELD    /MTX/UVSN,(RESERVED                   ),11,12
          FIELD    /MTX/UFID,(FILE IDENTIFIER        UFID),59,60
          FIELD    /MTX/UFSN,(FILE ID CONTINUED      UFSN),59,42
          FIELD    /MTX/UFSN,(FILE SECTION NUMBER        ),17,18
          FIELD    /MTX/USID,(SET IDENTIFIER         USID),59,36
          FIELD    /MTX/USID,(FILE ACCESSIBILITY         ),23,6 
          FIELD    /MTX/USID,(FILE SEQUENCE NUMBER       ),17,18
          FIELD    /MTX/UGNU,(RESERVED               UGNU),59,12
          FIELD    /MTX/UGNU,(EST ORDINAL WRITTEN ON     ),47,12
          FIELD    /MTX/UGNU,(VOLUME ACCESSIBILITY       ),35,6 
          FIELD    /MTX/UGNU,(GENERATION VERSION         ),29,12
          FIELD    /MTX/UGNU,(GENERATION NUMBER          ),17,18
          FIELD    /MTX/UDAT,(CREATION DATE          UDAT),59,30
          FIELD    /MTX/UDAT,(EXPIRATION DATE            ),29,30
          FIELD    /MTX/UMST,(ACS VSN                UMST),59,36
          FIELD    /MTX/UMST,(CONTROL PATH DATA          ),23,12
          FIELD    /MTX/UMST,(FLAGS, MOUNT STATUS        ),11,12
          FIELD    /MTX/UARP,(RESERVED, REQUEST ID   UARP),59,18
          FIELD    /MTX/UARP,(ACS REQUEST CODE           ),41,6 
          FIELD    /MTX/UARP,(ACS RESPONSE CODE          ),35,6 
          FIELD    /MTX/UARP,(RESERVED                   ),29,6 
          FIELD    /MTX/UARP,(TIME OF REQUEST TIMEOUT    ),23,24
          CON    0           END OF RIGHT COLUMN
  
 TFMU3    EQU    *
          ERRNG  2*TFMU2-TFMU1-TFMU3  IF RIGHT LONGER THAN LEFT 
 TLCW     SPACE  4,10 
**        TLCW - *BDT* LIST CONTROL WORD FIELD DESCRIPTORS. 
  
  
 TLCW     VFD    24/0,18/TLCW1,18/TLCW2 
 .OW      SET    /HIO/EMTP-1 INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TLCW1    BSS    0
          FIELD    /HIO/EMTP,(RESERVED               EMTP),59,6 
          FIELD    /HIO/EMTP,(EMPTY BUFFER COUNT         ),53,18
          FIELD    /HIO/EMTP,(EMPTY BUFFER - LAST ORDINAL),35,18
          FIELD    /HIO/EMTP,(EMPTY BUFFER - 1ST ORDINAL ),17,18
          FIELD    /HIO/DWTP,(RESERVED               DWTP),59,6 
          FIELD    /HIO/DWTP,(DATA WRITTEN BUFFER COUNT  ),53,18
          FIELD    /HIO/DWTP,(DATA WRT BUF - LAST ORDINAL),35,18
          FIELD    /HIO/DWTP,(DATA WRT BUF - 1ST ORDINAL ),17,18
          FIELD    /HIO/DRDP,(RESERVED               DRDP),59,6 
          FIELD    /HIO/DRDP,(READ DATA BUFFER COUNT     ),53,18
          FIELD    /HIO/DRDP,(RD DATA BUF - LAST ORDINAL ),35,18
          FIELD    /HIO/DRDP,(RD DATA BUF - 1ST ORDINAL  ),17,18
          FIELD    /HIO/WRTP,(RESERVED               WRTP),59,6 
          FIELD    /HIO/WRTP,(WRITE DATA BUFFER COUNT    ),53,18
          FIELD    /HIO/WRTP,(WRT DATA BUF - LAST ORDINAL),35,18
          FIELD    /HIO/WRTP,(WRT DATA BUF - 1ST ORDINAL ),17,18
          FIELD   /HIO/IORQP,(I/O REQUEST           IORQP),59,60
          CON    -1          END OF LEFT COLUMN 
  
 TLCW2    BSS    0
          CON    0           END OF RIGHT COLUMN
  
 TLCW3    EQU    *
          ERRNG  2*TLCW2-TLCW1-TLCW3  IF RIGHT LONGER THAN LEFT 
 TIBS     SPACE  4,10 
**        TIBS - I/O BUFFER STATISTICS TABLE FIELD DESCRIPTORS. 
  
  
 TIBS     VFD    24/0,18/TIBS1,18/TIBS2 
 .OW      SET    /HIO/EMTBC-1  INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TIBS1    BSS    0
          FIELD   /HIO/EMTBC,(REALLOC EMPTY BUFS    EMTBC),59,60
          FIELD   /HIO/DWTBC,(REALLOC DATA WRT BUFS DWTBC),59,60
          FIELD   /HIO/DRDBC,(REALLOC RD DATA BUFS  DRDBC),59,60
          FIELD   /HIO/WRTBC,(REALLOC WRT DATA BUFS WRTBC),59,60
          CON    -1          END OF LEFT COLUMN 
  
 TIBS2    BSS    0
          CON    0           END OF RIGHT COLUMN
  
 TIBS3    EQU    *
          ERRNG  2*TIBS2-TIBS1-TIBS3  IF RIGHT LONGER THAN LEFT 
 TPLT     SPACE  4,10 
**        TPLT - PP LINK TABLE FIELD DESCRIPTORS. 
  
  
 TPLT     VFD    24/0,18/TPLT1,18/TPLT2 
 .OW      SET    0-1         INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TPLT1    BSS    0
          FIELD            0,(CONTROL BUF ORDINAL - PP 0 ),59,60
          FIELD            1,(                      PP 1 ),59,60
          FIELD            2,(                      PP 2 ),59,60
          FIELD            3,(                      PP 3 ),59,60
          FIELD            4,(                      PP 4 ),59,60
          FIELD            5,(                      PP 5 ),59,60
          FIELD            6,(                      PP 6 ),59,60
          FIELD            7,(                      PP 7 ),59,60
          FIELD           10,(                      PP 10),59,60
          FIELD           11,(                      PP 11),59,60
          FIELD           12,(                      PP 20),59,60
          FIELD           13,(                      PP 21),59,60
          FIELD           14,(                      PP 22),59,60
          FIELD           15,(                      PP 23),59,60
          FIELD           16,(                      PP 24),59,60
          FIELD           17,(                      PP 25),59,60
          FIELD           20,(                      PP 26),59,60
          FIELD           21,(                      PP 27),59,60
          FIELD           22,(                      PP 30),59,60
          FIELD           23,(                      PP 31),59,60
          CON    -1          END OF LEFT COLUMN 
  
 TPLT2    BSS    0
          CON    0           END OF RIGHT COLUMN
  
 TPLT3    EQU    *
          ERRNG  2*TPLT2-TPLT1-TPLT3  IF RIGHT LONGER THAN LEFT 
 TCBE     SPACE  4,10 
**        TCBE - CONTROL BUFFER TABLE FIELD DESCRIPTORS.
  
  
 TCBE     VFD    24/0,18/TCBE1,18/TCBE2  PRINTER OUTPUT 
          VFD    24/0,18/TCBE1,18/0      TERMINAL OUTPUT
 .OW      SET    /HIO/PAD1-1 INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TCBE1    BSS    0
          FIELD  /HIO/PAD1,(         RESERVED      PAD1),59,6 
          FIELD  /HIO/PAD1,(         PHYS UNIT NUMBER  ),53,6 
          FIELD  /HIO/PAD1,(         PHYS CYL NUMBER   ),47,12
          FIELD  /HIO/PAD1,(         PHYS TRACK NUMBER ),35,6 
          FIELD  /HIO/PAD1,(         PHYS SECTOR NUMBER),29,6 
          FIELD  /HIO/PAD1,(         DATA FLAGS        ),23,12
          FIELD  /HIO/PAD1,(         NEXT SECTOR LINK  ),11,12
          FIELD  /HIO/PAD2,(         RESERVED      PAD2),59,6 
          FIELD  /HIO/PAD2,(         PHYS UNIT NUMBER  ),53,6 
          FIELD  /HIO/PAD2,(         PHYS CYL NUMBER   ),47,12
          FIELD  /HIO/PAD2,(         PHYS TRACK NUMBER ),35,6 
          FIELD  /HIO/PAD2,(         PHYS SECTOR NUMBER),29,6 
          FIELD  /HIO/PAD2,(         DATA FLAGS        ),23,12
          FIELD  /HIO/PAD2,(         NEXT SECTOR LINK  ),11,12
          FIELD  /HIO/PAD3,(         RESERVED      PAD3),59,6 
          FIELD  /HIO/PAD3,(         PHYS UNIT NUMBER  ),53,6 
          FIELD  /HIO/PAD3,(         PHYS CYL NUMBER   ),47,12
          FIELD  /HIO/PAD3,(         PHYS TRACK NUMBER ),35,6 
          FIELD  /HIO/PAD3,(         PHYS SECTOR NUMBER),29,6 
          FIELD  /HIO/PAD3,(         DATA FLAGS        ),23,12
          FIELD  /HIO/PAD3,(         NEXT SECTOR LINK  ),11,12
          FIELD  /HIO/PAD4,(         RESERVED      PAD4),59,6 
          FIELD  /HIO/PAD4,(         PHYS UNIT NUMBER  ),53,6 
          FIELD  /HIO/PAD4,(         PHYS CYL NUMBER   ),47,12
          FIELD  /HIO/PAD4,(         PHYS TRACK NUMBER ),35,6 
          FIELD  /HIO/PAD4,(         PHYS SECTOR NUMBER),29,6 
          FIELD  /HIO/PAD4,(         DATA FLAGS        ),23,12
          FIELD  /HIO/PAD4,(         NEXT SECTOR LINK  ),11,12
          CON    -1          END OF LEFT COLUMN 
  
 TCBE2    BSS    0
          FIELD  /HIO/FSTC,(FST INFORMATION        FSTC),59,60
          FIELD  /HIO/IOLK,(GENERAL FLAGS          IOLK),59,12
          FIELD  /HIO/IOLK,(UNIT I/O QUEUE BACK LINK   ),47,12
          FIELD  /HIO/IOLK,(UNIT I/O QUEUE FORWARD LINK),35,12
          FIELD  /HIO/IOLK,(I/O BUFFER ADDRESS         ),23,24
          FIELD  /HIO/HSLK,(I/O ERROR INFORMATION  HSLK),59,12
          FIELD  /HIO/HSLK,(HASH LIST BACK LINK        ),47,12
          FIELD  /HIO/HSLK,(HASH LIST FORWARD LINK     ),35,12
          FIELD  /HIO/HSLK,(BUFFER RESID LIST INDEX    ),23,3 
          FIELD  /HIO/HSLK,(BUFFER HASH INDEX          ),20,9 
          FIELD  /HIO/HSLK,(*PUT* ORDINAL              ),11,12
          FIELD  /HIO/LSLK,(ACTIVITY COUNT         LSLK),59,12
          FIELD  /HIO/LSLK,(BUFFER LIST BACKWARD LINK  ),47,12
          FIELD  /HIO/LSLK,(BUFFER LIST FORWARD LINK   ),35,12
          FIELD  /HIO/LSLK,(CONTROL POINT NUMBER       ),23,6 
          FIELD  /HIO/LSLK,(RECALL ENTRY ADDRESS       ),17,18
          CON    0           END OF RIGHT COLUMN
  
 TCBE3    EQU    *
          ERRNG  2*TCBE2-TCBE1-TCBE3  IF RIGHT LONGER THAN LEFT 
 TCCE     SPACE  4,10 
**        TCCE - CHANNEL CONTROL TABLE FIELD DESCRIPTORS. 
  
  
 TCCE     VFD    24/0,18/TCCE1,18/TCCE2  PRINTER OUTPUT 
          VFD    24/0,18/TCCE1,18/0      TERMINAL OUTPUT
 .OW      SET    /HIO/CREQ-1 INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TCCE1    BSS    0
          FIELD  /HIO/CREQ,(CHANNEL BUSY FLAG      CREQ),59,12
          FIELD  /HIO/CREQ,(RETRY REQUEST              ),47,24
          FIELD  /HIO/CREQ,(PENDING REQUEST            ),23,12
          FIELD  /HIO/CREQ,(ACTIVE REQUEST             ),11,12
          FIELD  /HIO/CCNT,(REQUEST INIT FLAGS     CCNT),59,12
          FIELD  /HIO/CCNT,(SECOND CHANNEL             ),47,6 
          FIELD  /HIO/CCNT,(FIRST CHANNEL              ),41,6 
          FIELD  /HIO/CCNT,(REQUESTS PROCESSED COUNT   ),35,36
          CON    -1          END OF LEFT COLUMN 
  
 TCCE2    BSS    0
          FIELD  /HIO/CUN1,(*PUT* ORD FOR UNIT 3   CUN1),59,24
          FIELD  /HIO/CUN1,(              UNIT 2       ),35,12
          FIELD  /HIO/CUN1,(              UNIT 1       ),23,12
          FIELD  /HIO/CUN1,(              UNIT 0       ),11,12
          FIELD  /HIO/CUN2,(*PUT* ORD FOR UNIT 7   CUN2),59,24
          FIELD  /HIO/CUN2,(              UNIT 6       ),35,12
          FIELD  /HIO/CUN2,(              UNIT 5       ),23,12
          FIELD  /HIO/CUN2,(              UNIT 4       ),11,12
          CON    0           END OF RIGHT COLUMN
  
 TCCE3    EQU    *
          ERRNG  2*TCCE2-TCCE1-TCCE3  IF RIGHT LONGER THAN LEFT 
 TFTE     SPACE  4,10 
**        TFTE - FUNCTION TIMEOUT TABLE FIELD DESCRIPTORS.
  
  
 TFTE     VFD    24/0,18/TFTE1,18/TFTE2  PRINTER OUTPUT 
          VFD    24/0,18/TFTE1,18/0      TERMINAL OUTPUT
 .OW      SET    0-1         INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TFTE1    BSS    0
          FIELD          0,(RESERVED                   ),59,12
          FIELD          0,(TIMEOUT INCREMENT          ),47,12
          FIELD          0,(EXPECTED STATUS            ),35,12
          FIELD          0,(TIMEOUT VALUE              ),23,24
          CON    -1          END OF LEFT COLUMN 
  
 TFTE2    BSS    0
          CON    0           END OF RIGHT COLUMN
  
 TFTE3    EQU    *
          ERRNG  2*TFTE2-TFTE1-TFTE3  IF RIGHT LONGER THAN LEFT 
 THAE     SPACE  4,10 
**        THAE - HASH TABLE FIELD DESCRIPTORS.
  
  
 THAE     VFD    24/0,18/THAE1,18/THAE2  PRINTER OUTPUT 
          VFD    24/0,18/THAE1,18/0      TERMINAL OUTPUT
 .OW      SET    0-1         INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 THAE1    BSS    0
          FIELD            0,(LOGICAL TRACK          HATL),59,12
          FIELD            0,(FIRST SECTOR               ),47,12
          FIELD            0,(LAST SECTOR                ),35,12
          FIELD            0,(ORD OF 1ST CONTROL BUFFER  ),23,24
          CON    -1          END OF LEFT COLUMN 
  
 THAE2    BSS    0
          CON    0           END OF RIGHT COLUMN
  
 THAE3    EQU    *
          ERRNG  2*THAE2-THAE1-THAE3  IF RIGHT LONGER THAN LEFT 
 TPUE     SPACE  4,10 
**        TPUE - PHYSICAL UNIT TABLE FIELD DESCRIPTORS. 
  
  
 TPUE     VFD    24/0,18/TPUE1,18/TPUE2  PRINTER OUTPUT 
          VFD    24/0,18/TPUE1,18/0      TERMINAL OUTPUT
 .OW      SET    /HIO/UNCT-1 INITIALIZE *FIELD* MACRO CHECKS
 .BI      SET    0
  
 TPUE1    BSS    0
          FIELD  /HIO/UNCT,(UNIT INTERLOCK         UNCT),59,3 
          FIELD  /HIO/UNCT,(EQUIPMENT NUMBER           ),56,3 
          FIELD  /HIO/UNCT,(PHYSICAL UNIT NUMBER       ),53,6 
          FIELD  /HIO/UNCT,(ASSIGNED EST ORDINAL       ),47,12
          FIELD  /HIO/UNCT,(UNIT QUEUE SIZE            ),35,12
          FIELD  /HIO/UNCT,(CURRENT *CB* ORDINAL       ),23,12
          FIELD  /HIO/UNCT,(FIRST *CB* ORDINAL         ),11,12
          FIELD  /HIO/HSCT,(SECTORS PER I/O BUFFER HSCT),59,6 
          FIELD  /HIO/HSCT,(HASH MASK                  ),53,12
          FIELD  /HIO/HSCT,(FWA *HAT* FOR THIS UNIT    ),41,18
          FIELD  /HIO/HSCT,(REQUESTS PROCESSED         ),23,12
          FIELD  /HIO/HSCT,(*PUT* ORDINAL OF NEXT UNIT ),11,12
          FIELD  /HIO/RDST,(RESERVED               RDST),59,24
          FIELD  /HIO/RDST,(SECTORS READ               ),35,36
          FIELD  /HIO/WTST,(RESERVED               WTST),59,24
          FIELD  /HIO/WTST,(SECTORS WRITTEN            ),35,36
          CON    -1          END OF LEFT COLUMN 
  
 TPUE2    BSS    0
          FIELD  /HIO/ACRJ,(EVICTED READ *HAT* ENT ACRJ),59,12
          FIELD  /HIO/ACRJ,(EVICTED WRITE *HAT* ENTRIES),47,12
          FIELD  /HIO/ACRJ,(FULL HASH TABLE REJECTS    ),35,12
          FIELD  /HIO/ACRJ,(BUFFER BUSY REJECTS        ),23,24
          FIELD  /HIO/ACST,(RECALL REQUEST REPLIES ACST),59,24
          FIELD  /HIO/ACST,(BUFFER REQUESTS PROCESSED  ),35,36
          FIELD  /HIO/INST,(I/L BUFFER REJECT      INST),59,24
          FIELD  /HIO/INST,(I/L BUFFER COMPLETE        ),35,36
          FIELD  /HIO/PILL,(ERROR FLAGS            PILL),59,12
          FIELD  /HIO/PILL,(ERROR UNIT NUMBER          ),47,6 
          FIELD  /HIO/PILL,(RESERVED                   ),41,18
          FIELD  /HIO/PILL,(SPECIAL REQUEST FLAGS      ),23,12
          FIELD  /HIO/PILL,(*OR* ADDRESS OF I/L PP     ),11,12
          CON    0           END OF RIGHT COLUMN
  
 TPUE3    EQU    *
          ERRNG  2*TPUE2-TPUE1-TPUE3  IF RIGHT LONGER THAN LEFT 
 FPWB     SPACE  4,2
**        JOB ORIGIN TYPE NAMES.
*         USED BY ROUTINE *FPW*.
  
  
 FPWB     BSS    0           TABLE OF ORIGIN TYPE NAMES 
          LOC    0
          DATA   10LSYOT
          DATA   10LBCOT
          DATA   10LEIOT
          DATA   10LTXOT
          LOC    *O 
 FPWC     SPACE  4,3
**        SPECIAL ENTRY POINT NAMES.  NAMES CORRESPOND TO BITS
*         IN THE *SEPW* WORD IN THE CONTROL POINT AREA.  TABLE
*         ORDER MUST BE PRESERVED.  USED BY ROUTINE *FPW*.
  
  
 FPWC     BSS    0
          DATA   10LDPA=         BIT 47 
          DATA   10LSSM=         BIT 48 
          DATA   10LVAL=         BIT 49 
          DATA   10LSSJ=         BIT 50 
          DATA   10LSDM=         BIT 51 
          DATA   10LDMP=         BIT 52 
          DATA   10LARG=         BIT 53 
          DATA   10LCLB=         BIT 54 
          DATA   10LLDR=         BIT 55 
          DATA   10LUTL=         BIT 56 
 FPWCL    EQU    *-FPWC      TABLE OF SPECIAL ENTRY POINTS LENGTH 
 SCNT     SPACE  4,10 
**        SERVICE CLASS NAMES.
*         USED BY *JC* PROCESSOR. 
  
  
 SCNT     BSS    0           TABLE OF SERVICE CLASS NAMES 
          LOC    1
          LIST   D
 .SCL     HERE
          LIST   *
          LOC    *O 
  
          SEG 
          TITLE  DIRECTIVE PROCESSING - MAIN ROUTINES.
          QUAL   DIRECT 
          SPACE  4
***       DSDI INPUT DIRECTIVES.
* 
*         THE FOLLOWING NOTES AND RULES APPLY TO ALL INPUT DIRECTIVES-
* 
*         1.  ANY CHARACTER WITH A DISPLAY CODE GREATER THAN OR 
*             EQUAL TO 50B (*/* CODE) IS CONSIDERED A SEPARATOR.
* 
*         2.  THE EXPLICIT COMMAND TERMINATOR IS *.*.  ANYTHING BEYOND
*             THE TERMINATOR IS IGNORED.
* 
*         4.  DIRECTIVES WHICH REQUIRE A FIXED NUMBER OF PARAMETERS 
*             WILL IGNORE EVERYTHING BEYOND THE SEPARATOR FOR THE LAST
*             LEGAL PARAMETER.
 ACCOUNT  SPACE  4,3
***       ACCOUNT.
* 
*         DUMP THE ACCOUNT DAYFILE BUFFER IN *E* FORMAT.
*         ALSO, DUMP THE CURRENT BUFFER LINE BY LINE. 
  
  
 ACCOUNT  DATA   0LACCOUNT
  
          SX7    -1 
 ACN1     SA7    CN 
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     GDB         GET DAYFILE BUFFER 
          RJ     LDC         LIST DIRECTIVE 
          RJ     PDP         PRINT DAYFILE POINTERS 
          PRINT  (=2C  )
          RJ     PDB         PRINT DAYFILE BUFFER 
          JP     DSD1        RETURN 
 ALLMEM   SPACE  4,10 
***       ALLMEM. 
* 
*         ALLOW CM DUMPS TO EXTEND PAST THE CM BOUNDARY ON MACHINES 
*         WITH CENTRAL MEMORY EXTENSION (CME).
  
  
 ALLMEM   DATA   0LALLMEM 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    CE 
          ZR     X1,ERR25    IF NOT CM EXTENSION ON MAINFRAME 
          SX6    1           SET *ALLMEM* FLAG
          SA6    AM 
          EQ     DSD1        RETURN 
 AP       SPACE  4,13 
***       AP. 
*         DUMP AND ANALYZE ALL ACTIVE PPUS. 
* 
*         AP,N1,N2,...,NN.
*         DUMP AND ANALYZE SELECTED PPUS.  NN MAY BE A PPU NUMBER 
*         OR A PROGRAM NAME.  IF IT IS A PROGRAM NAME, ALL PPUS 
*         EXECUTING THAT PROGRAM ARE DUMPED.  A WARNING IS ISSUED 
*         IF AN ILLEGAL NUMBER IS DETECTED OR IF A NAMED PROGRAM IS NOT 
*         FOUND IN ANY PPU. 
* 
*         PPU MEMORY IS DUMPED IN *Q* FORMAT.  THE ASSOCIATED 
*         COMMUNICATION REGISTERS ARE DUMPED.  RESIDENT ENTRY 
*         POINT CALL ADDRESSES ARE LISTED.  LOW CORE READ-ONLY
*         CONSTANTS ARE VERIFIED AND FLAGGED IF WRONG.
  
  
 AP       DATA   0LAP 
  
          RJ     IPA         INITIALIZE FOR PPU DUMP
          RJ     LDC         LIST DIRECTIVE 
 APR1     RJ     SPA         SELECT NEXT PPU TO ANALYZE 
          ZR     X1,DSD1     IF NO MORE TO DUMP 
          RJ     APP         ANALYZE PPU
          JP     APR1        CONTINUE 
 B        SPACE  4,5
**        B.
* 
*         DISPLAY BRIEF STATUS FOR ALL CONTROL POINTS IN A FORMAT 
*         SIMILAR TO THE *DSD* *B,A* DISPLAY. 
  
  
 B        DATA   0LB
  
          RJ     LDC         DISPLAY DIRECTIVE
          RJ     SCM         SET CENTRAL MEMORY 
          SA7    RI 
          SX6    0           SET FWA
          SA6    FW 
          SA1    NC          SET LWA
          SX6    X1+2 
          LX6    7
          SA6    A6+B1
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          PRINT  (=2C  )
          PRINT  (=C*     CP   JSN   SC    PR     FL   CPU       MS1W*) 
          PRINT  (=C*               EJT  SCPR     FLE  SS        MS2W*) 
 BDS1     RJ     SSB
          PRINT  (=2C  )
          SA1    FW          INCREMENT CPA ADDRESS
          SX6    X1+CPLEN 
          SA6    A1 
          SA2    A1+B1
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          IX2    X6-X2
          BX1    X6 
          PL     X2,DSD1     IF ALL CONTROL POINTS DISPLAYED
          AX1    7
          SB4    B1+B1
          SB7    PRBF+4      DISPLAY CP NUMBER
          RJ     DOS
          RJ     GEE         GET EJT ENTRY
          NZ     X1,BDS2     IF ACTIVE CP 
          PRINT  CCCH,10
          PRINT  (=2C  )
          EQ     BDS1        CHECK NEXT CP
  
 BDS2     SA2    BUF+JSNE    DISPLAY JSN
          SB6    4
          SB7    PRBF+9 
          RJ     SDI
          SA1    BUF+SCLE    GET SERVICE CLASS, CM FL 
          MX0    6
          BX2    X0*X1
          LX2    6
          SA2    X2+SCNT-1   DISPLAY SERVICE CLASS MNEMONIC 
          BX6    X0*X2
          LX6    6
          SA6    PRBF+16
          SA1    FW 
          RJ     GFL         GET CM FL
          BX5    X1          SAVE BUFFER ADDRESS OF CPA FWA 
          BX1    X7 
          LX1    -6          DISPLAY FL/100B
          SB4    4
          SB7    PRBF+27
          RJ     DOS         DISPLAY CM FL
          SA1    X5+CWQW     GET CPU PRIORITY 
          MX0    2
          BX1    -X0*X1 
          AX1    51 
          SB7    PRBF+19
          RJ     DOS         DISPLAY CPU PRIORITY 
          SB7    PRBF+34
          RJ     GCS         DISPLAY CPU STATUS 
          SA2    X5+MS1W     DISPLAY *MS1W* 
          SB6    48 
          SB7    PRBF+38
          RJ     DMB
          PRINT  CCCH,B7-CCCH+1 
          SA1    GEEA        GET EJT ORDINAL
          RJ     SSB         CLEAR PRINT BUFFER 
          SB4    4
          SB7    PRBF+13
          RJ     DOS         DISPLAY EJT ORDINAL
          SA1    BUF+SCHE    DISPLAY SCHEDULING PRIORITY
          RJ     DOS
          SA1    X5+ECSW
          MX0    -12
          BX1    -X0*X1 
          SA2    UE          GET FLE
          SB3    X2 
          LX1    B3 
          SB4    6
          RJ     DOS         DISPLAY FLE
          SA1    X5+SNSW
          SA2    X5+STSW
          SA3    BUF+SCLE 
          SA4    F.TCMT 
          SA4    X4+CMCL
          SX6    1RI
          SX7    1RS
          LX1    59-15
          LX2    59-56
          LX3    59-52
          PL     X1,BDS3     IF SUBSYSTEM IDLEDOWN NOT SET
          SA6    B7          DISPLAY *SUBSYSTEM IDLEDOWN* FLAG
 BDS3     PL     X2,BDS4     IF NO SUBCONTROL POINTS ACTIVE 
          SA7    B7+1        DISPLAY *SUBCONTROL POINTS ACTIVE* FLAG
 BDS4     SX6    1RL
          SX7    1RM
          PL     X3,BDS5     IF NOT FORCED ROLLIN 
          SA6    B7+2        DISPLAY *FORCED ROLLIN* FLAG 
 BDS5     MX0    -12
          LX4    12 
          SA2    FW 
          AX2    7
          BX4    -X0*X4 
          BX4    X2-X4
          NZ     X4,BDS6     IF CONTROL POINT NOT MOVING
          SA7    B7+3        DISPLAY *CONTROL POINT MOVING* FLAG
 BDS6     SA2    X5+MS2W     DISPLAY *MS2W* 
          SB6    28 
          SB7    PRBF+38
          RJ     DMB
          PRINT  CCCH,B7-CCCH+1 
          EQ     BDS1        CHECK NEXT CP
 BATCHIO  SPACE  4,20 
***       BATCHIO,OPS.
*         BIO,OPS.
* 
*         WHERE OPS IS A STRING OF UP TO 3 CHARACTERS SELECTING 
*         VARIOUS DUMP OPTIONS AS FOLLOWS-
* 
*         B      EACH OF THE ACTIVE BATCHIO BUFFER POINTS ARE ANALYZED
*                WITH ASSOCIATED FET, EST, EQUIPMENT TYPE, AND FNT/FST. 
* 
*         N      DUMP NEGATIVE FIELD LENGTH IN *D* FORMAT.
* 
*         P      ALL COPIES OF 1CD, 1IO, DSP, QAC, AND QAP ARE ANALYZED.
* 
* 
*         BATCHIO. OR BIO.
* 
*         IS EQUIVALENT TO *BATCHIO,PBN.*.
  
  
 BATCHIO  DATA   0LBATCHIO
          EQ     BIO1        PROCESS LIKE *BIO* DIRECTIVE 
  
 BIO      DATA   0LBIO
  
 BIO1     SA5    BIOA 
          RJ     ISS         INITIALIZE FOR SUB-SYSTEM DUMP 
          GETCM  SSBF,/BIO/BUFR+1 
          SA5    BIOB 
          RJ     DSS         DUMP BATCHIO SUB-SYSTEM
          JP     DSD1        RETURN 
  
 BIOA     VFD    24/0,12/BISI,24/0
  
 BIOB     VFD    60/0LPBN 
          VFD    36/0,6/1RB,18/DBB
          VFD    36/0,6/1RN,18/DBN
          VFD    36/0,6/1RP,18/DBP
          VFD    60/0 
 BCDUMP   SPACE  4,35 
***       BCDUMP. 
* 
*         DUMP EACH CONTROLLER RECORD FOUND WITH DEFAULT OPTIONS. 
* 
*         BCDUMP/OPS. 
* 
*         DUMP EACH CONTROLLER RECORD FOUND WITH SPECIFIED OPTIONS. 
* 
*         BCDUMP,CC,CC. 
* 
*         DUMP SPECIFIED CHANNELS WITH DEFAULT OPTIONS. 
* 
*         BCDUMP,CC/OPS,CC/OPS. 
* 
*         DUMP SPECIFIED CHANNELS WITH SPECIFIED OPTIONS. 
* 
*         CONTROLLER MEMORY IS DUMPED IN HEXADECIMAL LINE FORMAT
*         WITH DISPLAY CODE INTERPRETATION BY DEFAULT, WITH NO
*         VERIFICATION DATA.  IF OTHER THAN THE DEFAULT SELECTION 
*         IS REQUIRED, THE *OPS* STRING OF CHARACTERS MAY BE SPECIFIED
*         TO SELECT ALTERNATE DUMP OPTIONS AS FOLLOWS - 
* 
*         A      SELECT 7-BIT ASCII CODE INTERPRETATION.
* 
*         D      SELECT 6-BIT DISPLAY CODE INTERPRETATION.
* 
*         H      DUMP CONTROLLER MEMORY IN HEXADECIMAL LINE FORMAT. 
* 
*         O      DUMP CONTROLLER MEMORY IN OCTAL LINE FORMAT. 
* 
*         V      LIST VERIFICATION INFORMATION IN ADDITION TO 
*                CONTROLLER MEMORY DUMP (FOR USE WITH CONTROLWARE DUMP
*                FILE PRODUCED BY *LOADBC* UTILITY).
  
  
 BCDUMP   DATA   0LBCDUMP 
  
          RJ     LDC         LIST DIRECTIVE 
          SA1    .BCH        SEARCH FOR FIRST BUFFER CONTROLLER RECORD
          MX0    12 
          LX0    -12
          SEARCH TDIR,X1,X0 
          ZR     X2,ERR14    IF RECORD NOT FOUND
          SX6    A2-2        SAVE ADDRESS OF DIRECTORY ENTRY
          SA6    BCDA 
          SA1    CH          CHECK SEPARATOR
          SA1    X1+
          SX6    X1-1R. 
          SA6    PI          SAVE PARAMETER PRESENT FLAG
          SX6    2RHD 
          SA6    SBCB 
          SX6    X1-1R/ 
          NZ     X6,BCD1     IF NOT OPTION SELECTION
          RJ     ASN         ASSEMBLE OPTIONS 
          SA1    CH          CHECK SEPARATOR
          AX6    B6 
          SA1    X1 
          SA6    SBCB        SET ALTERNATE OPTION SELECTION 
          SX6    X1-1R. 
          SA6    PI 
          NZ     X6,ERR6     IF NOT END OF DIRECTIVE
 BCD1     RJ     SBC         SELECT NEXT BUFFER CONTROLLER CHANNEL
          ZR     X1,DSD1     IF END OF CHANNELS TO DUMP 
          SX6    A2          SAVE ADDRESS OF DIRECTORY ENTRY
          MX0    -6 
          SA6    BCDA 
          SA1    SBCB        GET OPTIONS
          SX6    4           SET DEFAULT OPTIONS (HEX AND DISPLAY CODE) 
          SA3    TBOP-1 
 BCD2     SA3    A3+B1       GET *BCDUMP* OPTION TABLE ENTRY
          ZR     X3,ERR6     IF INCORRECT OPTION
          BX7    X1-X3
          BX7    -X0*X7 
          NZ     X7,BCD2     IF NO MATCH
          AX3    6           SELECT DUMP FORMAT 
          SX7    X3 
          BX6    -X7*X6 
          AX3    18 
          BX6    X6+X3
          AX1    6
          SA3    TBOP-1 
          SX7    X6 
          NZ     X1,BCD2     IF MORE OPTIONS SPECIFIED
          SA7    BCDB+3      SET FORMAT OF DUMP 
          SA6    BCDC        SAVE VERIFY OPTION 
          PRINT  (=2C  )
          SB7    PRBF        SET HEADING
          SA2    =17H  CHANNEL NUMBER 
          SB6    17 
          RJ     UPS
          SA1    SBCA        GET CHANNEL NUMBER 
          LX1    -6 
          SB6    B1+B1
          RJ     CTS
          PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
          SA2    BCDA 
          SA2    X2+1        GET RANDOM INDEX 
          BX6    X2 
          SA6    RI          SET RANDOM INDEX OF NEXT RECORD
          BX6    X6-X6       SET FWA
          SA6    BCDB 
          SA6    BCDD 
 BCD3     SA3    BCDD        POSITION DUMP FILE 
          RJ     PDF
          RJ     PBC         PACK BUFFER CONTROLLER MEMORY
          SA2    BCDD 
          NZ     X2,BCD4     IF NOT BEGINNING OF DUMP 
          SA1    PBUF        GET FIRST WORD OF CONTROLWARE
          MX0    8D 
          BX1    X1*X0       MASK OUT CHANNEL TYPE
          LX1    8D          SHIFT INTO POSITION
          BX6    X1          SAVE CHANNEL TYPE
          SA6    K4 
          SA1    X6+TCTP     GET DUMP LWA+1 
          AX1    18 
          SX6    X1 
          SA6    BCDE 
          SX7    K4RBFL      SET INITIAL LWA+1
          SA7    BCDB+1 
          IX7    X6-X7
          PL     X7,BCD4     IF NOT 4K CONTROLLER 
          SA6    A7          RESET LWA+1
 BCD4     SX6    X2+K4WBFL   UPDATE DUMP RECORD FWA 
          SA6    A2 
          BX7    X7-X7       INITIALIZE *NXB* POINTERS
          SX6    IUBUFL1+4
          SA6    NXBA 
          SA7    A6+B1
          SX6    PBUF-1      SET STARTING ADDRESS -1
          SA6    A7+B1
          SA1    BCDB        SET CONTROL BLOCK ADDRESS
          RJ     DSP         PROCESS DUMP 
          SA2    BCDB+1 
          SA3    BCDE        GET DUMP LWA+1 
          IX7    X3-X2
          ZR     X7,BCD5     IF DUMP LWA+1
          BX6    X2          UPDATE FWA 
          SA6    A2-B1
          SX7    X6+K4RBFL   UPDATE LWA+1 
          SA7    A2 
          IX2    X3-X7
          PL     X2,BCD3     IF NOT TOO BIG 
          SX7    X3 
          SA7    A2          SET LWA+1 TO DUMP LWA+1
          EQ     BCD3        READ NEXT BLOCK
  
 BCD5     SA1    BCDC 
          PL     X1,BCD1     IF NOT VERIFY OPTION 
          SX1    X1 
          AX1    2           OCTAL OR HEX FORMAT OPTION 
          SA2    BCDA        GET CONTROLLER MEMORY DIRECTORY ENTRY
          RJ     PCV         PROCESS CONTROLLER VERIFICATION DATA 
          EQ     BCD1        PROCESS NEXT CHANNEL 
  
  
 BCDA     CON    0           DIRECTORY INDEX
 BCDB     CON    0           FWA TO DUMP
          CON    0           LWA+1 TO DUMP
          CON    0
          CON    4           HEX - LINE - DISPLAY CODE
 BCDC     CON    0           VERIFICATION OPTION
 BCDD     CON    0           DUMP RECORD ADDRESS
 BCDE     CON    0           DUMP LWA+1 
  
  
 TBOP     BSS    0           TABLE OF *BCDUMP* OPTIONS
          VFD    36/1,18/1,6/1RA       7-BIT ASCII CODE 
          VFD    36/0,18/1,6/1RD       6-BIT DISPLAY CODE 
          VFD    36/4,18/6,6/1RH       HEX LINE FORMAT
          VFD    36/2,18/6,6/1RO       OCTAL LINE FORMAT
          VFD    1/1,35/0,18/0,6/1RV   VERIFICATION DATA
          CON    0           END OF TABLE 
          SPACE  4,10 
***       BUFF. 
* 
*         DUMP 819 BUFFER TABLES. 
  
  
 BUFF     DATA   0LBUFF 
  
          RJ     LDC         LIST DIRECTIVE 
          BX6    X6-X6       SET REFERENCE ADDRESS
          RJ     SRA
          RJ     SCM         SET CENTRAL MEMORY 
          SA1    F.TCMT 
          SA1    X1+BIOL     GET BUFFER POINTERS
          SX7    X1          GET LWA+1
          AX1    24 
          SX6    X1          GET FWA
          ZR     X6,ERR34    IF NO BUFFERED DEVICES 
          SA6    CPRA        FWA
          SA7    A6+B1       LWA
          SX6    B1 
          SA6    CPRA+4      *D* FORMAT 
          JP     CPR2        PROCESS DUMP 
 TCTP     SPACE  4,15 
**        TCTP - TABLE OF CONTROLLER TYPE PARAMETERS. 
*         INDEXED BY CONTROLLER TYPE. 
* 
*T        1/W,23/0,18/LA,18/BS
* 
*         W      CONTROLLER WORD SIZE FLAG. 
*                  0 = 8 BIT WORD SIZE. 
*                  1 = 16 BIT WORD SIZE.
*         LA     LWA+1 TO DUMP. 
*         BS     CM WORDS OF DATA IN PBUF.
  
  
 TCTP     BSS    0
          VFD    1/1,23/0,18/K4BFL,18/IUBUFL1 
          VFD    1/0,23/0,18/K16BFL,18/IUBUFL2
          VFD    1/1,23/0,18/K8BFL,18/IUBUFL2 
          VFD    1/0,23/0,18/KIBFL,18/IUBUFL3 
          VFD    1/1,23/0,18/K16BFL,18/IUBUFL4
 C        SPACE  4,8
***       C,FWA,LWA+1.
* 
*         DUMP MEMORY IN INSTRUCTION PARCEL FORMAT WITH DISPLAY 
*         CODE INTERPRETATION.  WORDS ARE LISTED COLUMNWISE WITH
*         THREE COLUMNS PER PAGE.  REPETITIVE DATA IS SUPPRESSED. 
* 
*         FOR TERMINAL OUTPUT, DATA IS LISTED ONE WORD PER LINE WITH
*         DISPLAY CODE INTERPRETATION AND NO PAGINATION IS PROCESSED. 
  
  
 C        DATA   0LC
  
          SA1    EE 
          NZ     X1,ERR5     IF EXTENDED MEMORY ERROR FLAG SET
          SA1    TF 
          NZ     X1,CTN      IF OUTPUT IS TO TERMINAL 
          SX6    0           SET *C* FORMAT CODE
 CPR1     SA6    CPRA+4      SET FORMAT CODE
          RJ     LDC         LIST DIRECTIVE 
          SB7    0           SET OCTAL BASE 
          RJ     ASD         ASSEMBLE FWA 
          NZ     X4,ERR6     IF ERROR IN CONVERSION 
          SA6    CPRA        SET FWA
          SX6    X6+B1
          SA6    A6+B1       PRESET LWA+1 
          RJ     ASD         ASSEMBLE LWA+1 
          NZ     X4,CPR2     IF NOT SPECIFIED 
          SA6    CPRA+1      SET LWA+1
 CPR2     SB2    CPRA 
          RJ     CMB         CHECK MEMORY BOUNDS
          RJ     POM         POSITION DUMP FILE 
          SB2    CPRA 
          RJ     PMD         PROCESS DUMP 
          JP     DSD1        RETURN 
  
          QUAL
 CPRA     BSS    0           DUMP PARAMETERS
          CON    0           FWA
          CON    0           LWA+1
          CON    0
          CON    0
          CON    0           FORMAT CODE
          CON    0
          CON    0           INVERTED ADDRESS 
          QUAL   *
  
*         PROCESS TERMINAL OUTPUT.
  
 CTN      SA1    =5000004B
 CTN1     BX6    X1 
          SA6    CPRA+4      SET FORMAT PARAMETERS
          RJ     SSB         CLEAR PRINT STRING 
          SB7    0
          RJ     ASD         ASSEMBLE FWA 
          NZ     X4,ERR6     IF CONVERSION ERROR
          SA6    CPRA        SET FWA
          SX6    X6+B1
          SA6    A6+B1       PRESET LWA+1 
          RJ     ASD
          NZ     X4,CTN2     IF LWA+1 NOT SPECIFIED 
          SA6    CPRA+1 
 CTN2     SB2    CPRA 
          RJ     CMB         CHECK MEMORY BOUNDS
          RJ     POM         POSITION MEMORY
 CTN3     SA1    CPRA 
          SB6    8           NUMBER OF DIGITS 
          SB7    PRBF 
          LX1    -24         LEFT JUSTIFY BINARY DIGITS 
          RJ     CTS         CONVERT ADDRESS
          SB7    B7+B1
          GETCM 
          NZ     X1,CTN4     IF END OF RECORD 
          BX1    X6 
          SA2    CPRA+4 
          RJ     FDW         FORMAT DATA WORD 
          BX2    X1 
          SB6    10 
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          PRINT  PRBF,B7-PRBF 
          SA1    CPRA 
          SA2    A1+B1
          SX6    B1 
          IX6    X1+X6
          SA6    A1          ADVANCE ADDRESS
          IX6    X6-X2
          NG     X6,CTN3     IF MORE TO DUMP
          JP     DSD1        RETURN 
  
 CTN4     PRINT  (=C*-- END OF RECORD --*)
          JP     DSD1        RETURN 
 CBT      SPACE  4,10 
***       CBT.
*         DUMP ALL NONZERO CONTROL BUFFER TABLE ENTRIES.
* 
*         CBT,E1,E2,...,EN. 
*         DUMP SELECTED CONTROL BUFFER TABLE ENTRIES. 
  
  
 CBT      DATA   0LCBT
  
          SX5    =C*           CONTROL BUFFER TABLE*
          SX6    TCBE        SET FORMAT TABLE POINTERS ADDRESS
          SX7    =4HCBT      SET TABLE NAME ADDRESS 
          SB2    /HIO/CBTP   SET BUFFERED DEVICE TABLE INDEX
          RJ     DBT         DUMP *CBT* 
          EQ     DSD1        RETURN 
 CCT      SPACE  4,10 
***       CCT.
*         DUMP ALL NONZERO CHANNEL CONTROL TABLE ENTRIES. 
* 
*         CCT,E1,E2,...,EN. 
*         DUMP SELECTED CHANNEL CONTROL TABLE ENTRIES.
  
  
 CCT      DATA   0LCCT
  
          SX5    =C*           CHANNEL CONTROL TABLE* 
          SX6    TCCE        SET FORMAT TABLE POINTERS ADDRESS
          SX7    =4HCCT      SET TABLE NAME ADDRESS 
          SB2    /HIO/CCTP   SET BUFFERED DEVICE TABLE INDEX
          RJ     DBT         DUMP *CCT* 
          EQ     DSD1        RETURN 
 CM       SPACE  4,4
***       CM. 
* 
*         SET MEMORY TYPE TO *CM*.  SUBSEQUENT C, D AND E DIRECTIVES
*         APPLY TO CENTRAL MEMORY.
  
  
 CM       DATA   0LCM 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     LDC         LIST DIRECTIVE 
          RJ     SCM         SELECT CENTRAL MEMORY
          SA6    US+1        SET USER CONTROLLED MEMORY NAME (SUBTITLE) 
          SA7    UI          SET USER CONTROLLED MEMORY RANDOM INDEX
          BX7    X7-X7       CLEAR EXTENDED MEMORY ERROR FLAG 
          SA7    EE 
          JP     DSD1        RETURN 
 CP       SPACE  4,54 
***       CP. 
*         DUMP ALL ACTIVE CONTROL POINT AND PSEUDO-CONTROL POINT AREAS. 
* 
*         CP,N1,N2,...,NN.
*         DUMP SELECTED CONTROL POINT (ONLY) AREAS. 
* 
*         NN = CONTROL POINT NUMBER.  NN MAY BE OF THE
*         FORM *NN/OPS* WHERE OPS IS A STRING OF UP TO 10 CHARACTERS
*         SELECTING UP TO 10 OF THE FOLLOWING 11 LIST OPTIONS AT ONE
*         TIME- 
* 
*         X      DUMP EXCHANGE PACKAGE, PARAMETER SUMMARY,
*                AND EJT ENTRY. 
* 
*         T      PRINT DETAILED DUMP OF CONTROL POINT AREA.  AN 
*                ENGLISH DESCRIPTION OF EACH PARAMETER FIELD
*                IS PRINTED.  EACH WORD IS LISTED WITH ITS SYSTEXT
*                TAG. 
* 
*         A      DUMP THE JOB DAYFILE BUFFER IN *E* FORMAT. 
*                ALSO, DUMP THE CURRENT BUFFER LINE BY LINE.
* 
*         F      PRINT THE FNT/FST, EST AND MASS STORAGE TRACK CHAIN
*                (IF ANY) FOR ALL FILES ATTACHED TO THIS CONTROL
*                POINT. 
* 
*         C      DUMP THE CONTROL POINTS FIELD LENGTH IN *C* FORMAT.
* 
*         D      DUMP FIELD LENGTH IN *D* FORMAT. 
* 
*         E      DUMP FIELD LENGTH IN *E* FORMAT. 
* 
*         G      DUMP THE CONTROL POINT AREA IN *C* FORMAT. 
* 
*         H      DUMP THE CONTROL POINT AREA IN *D* FORMAT. 
* 
*         I      DUMP THE CONTROL POINT AREA IN *E* FORMAT. 
* 
*         M      DUMP USER EXTENDED MEMORY FIELD LENGTH IN *D* FORMAT.
* 
*         N      DUMP NEGATIVE FIELD LENGTH IN *D* FORMAT.
* 
*         P      DUMP AND ANALYZE ALL ACTIVE PPUS ASSOCIATED WITH THE 
*                CONTROL POINT. 
* 
*         IF OPS IS NOT SPECIFIED, THE DEFAULT VALUE *XTAF* IS USED.
*         THE DEFAULT MAY BE CHANGED WITH THE *CPO* DIRECTIVE.  WHEN
*         SPECIFIED, OPS APPLIES ONLY TO THE CONTROL POINT NUMBER 
*         WITH WHICH IT IS ASSOCIATED ON THE DIRECTIVE STATEMENT. 
* 
*         FOR TERMINAL OUTPUT, THE COMMAND FORMAT IS -
* 
*         CP. 
* 
*         CP/PCP NUMBER AND CPA/PCPA ADDRESS ARE LISTED FOR EACH
*         CONTROL POINT AND PSEUDO-CONTROL POINT. 
* 
*         NONE OF THE LIST OPTIONS ARE EXCLUSIVE, I.E., IF BOTH *D* AND 
*         *E* ARE SPECIFIED, FIELD LENGTH IS DUMPED TWICE, ONCE IN *D*
*         FORMAT AND ONCE IN *E* FORMAT.
  
  
 CP       DATA   0LCP 
  
          SX6    0
          SA6    FW          SET CPA FWA - CPLEN
          SA6    OP          SET NO OFFSET
          SA1    TF 
          NZ     X1,CPTN     IF TERMINAL OUTPUT 
 CPP0     RJ     BCP         BEGIN CONTROL POINT DUMP 
          RJ     LDC
 CPP1     RJ     SCP         SELECT NEXT CONTROL POINT TO DUMP
          ZR     X1,DSD1     IF NO MORE TO DUMP 
          SA1    PI 
          BX6    X1 
          SA6    CPPA        SAVE POINTER INDEX 
          RJ     DCP         DUMP SELECTED CONTROL POINT
          SA1    CPPA 
          BX6    X1 
          SA6    PI          RESTORE POINTER INDEX
          JP     CPP1        CONTINUE 
  
 CPPA     BSS    1           POINTER INDEX
  
*         TERMINAL OUTPUT PROCESSOR.
  
 CPTN     SA2    NC          SET LAST CP NUMBER + 1 
          SX2    X2+2 
 CPN0     LX2    7           COMPUTE CPA/PCPA LWA+1 
          IX6    X6+X2       ADD PCPA OFFSET
          SA6    LW 
          SA5    FW          PRESET CONTROL POINT AREA ADDRESS
          SX5    X5+CPLEN 
 CPN1     PRINT  (=2C  )
          RJ     PEC         PRINT EIGHT CONTROL POINTS 
          SA1    LW 
          IX1    X5-X1
          NG     X1,CPN1     IF MORE CONTROL POINTS TO PROCESS
          SA2    OP 
          NZ     X2,DSD1     IF THROUGH DUMPING PCP-S 
          SA1    F.TCMT      GET PCPA FWA 
          SA1    X1+PCPP
          SA3    LW          SET PCPA OFFSET
          SX5    X1 
          IX6    X5-X3
          ZR     X5,DSD1     IF NO PCP-S DEFINED
          SA6    A2 
          SA2    ME          SET NEW LWA+1
          LX2    7
          IX6    X2+X6       ADD PCPA OFFSET
          SA6    A3 
          EQ     CPN1        DISPLAY PCP-S
 CPO      SPACE  4,4
***       CPO,OPS.
* 
*         RESET THE DEFAULT LIST OPTION STRING FOR CONTROL POINT
*         DUMPS TO *OPS*. 
  
  
 CPO      DATA   0LCPO
  
          RJ     ASN         ASSEMBLE OPTION STRING 
          SA6    CO          UPDATE DEFAULT OPTION LIST 
          JP     DSD1        RETURN 
 CT       SPACE  4,10 
***       CT. 
* 
*         DUMP CHANNEL TABLES IN *D* FORMAT.
  
  
 CT       DATA   0LCT 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT      GET FWA OF CTIL TABLE
          SA2    X1+CHTP
          AX2    12 
          SX6    X2 
          SX7    X6+CTALL    GET LWA+1 OF CTIL TABLE
          SX5    =C*           CHANNEL STATUS TABLE*
          SB3    B1          SET *D* FORMAT 
          IX4    X6+X1       SET ADDRESS OF READ FROM CORE
          RJ     DTB         DUMP CTIL TABLE
          SB3    -B1         SET NO PAGE EJECT
          SA1    CPRA+1      GET FWA OF EJTA TABLE
          BX6    X1 
          SX7    X6+CTALL    GET LWA+1 OF EJTA TABLE
          SX5    =C*           EJT ASSIGNMENT TABLE*
          SA1    F.TCMT      SET ADDRESS OF READ FROM CORE
          IX4    X6+X1
          RJ     DTB         DUMP EJTA TABLE
          SB3    -B1         SET NO PAGE EJECT
          SA1    CPRA+1      GET FWA OF CCTL TABLE
          BX6    X1 
          SX7    X6+CTALL    GET LWA+1 OF CCTL TABLE
          SX5    =C*           CHANNEL CONTROLWARE TABLE* 
          SA1    F.TCMT      SET ADDRESS OF READ FROM CORE
          IX4    X6+X1
          RJ     DTB         DUMP CCTL TABLE
          EQ     DSD1        RETURN 
 D        SPACE  4,9
***       D,FWA,LWA+1.
* 
*         DUMP MEMORY IN BYTE FORMAT WITH DISPLAY CODE INTERPRETATION.
*         WORDS ARE LISTED COLUMNWISE WITH THREE COLUMNS PER
*         PAGE.  REPETITIVE DATA IS SUPPRESSED. 
* 
*         FOR TERMINAL OUTPUT, DATA IS LISTED ONE WORD PER LINE 
*         WITH DISPLAY CODE INTERPRETATION AND NO PAGINATION IS 
*         PROCESSED.
  
  
 D        DATA   0LD
  
          SA1    EE 
          NZ     X1,ERR5     IF EXTENDED MEMORY ERROR FLAG SET
          SA1    TF 
          NZ     X1,DTN      IF TERMINAL OUTPUT 
          SX6    1           *D* FORMAT CODE
          JP     CPR1        PROCESS DUMP 
  
*         TERMINAL OUTPUT PROCESSOR.
  
 DTN      SA1    =4000005B   FORMAT PARAMETERS
          JP     CTN1        PROCESS DUMP 
 DAYFILE  SPACE  4,10 
***       DAYFILE.
* 
*         DUMP THE SYSTEM DAYFILE BUFFER IN *E* FORMAT. 
*         ALSO, DUMP THE CURRENT BUFFER LINE BY LINE. 
  
  
 DAYFILE  DATA   0LDAYFILE
  
          SX7    B0 
          EQ     ACN1        DUMP SYSTEM DAYFILE
 DB       SPACE  4,10 
***       DB. 
*         DUMP ALL ACTIVE DISK BUFFERS, USING MACHINE ID FROM LOW CORE
*           ON DUMP FILE. 
* 
*         DB,ID.
*         DUMP ALL ACTIVE DISK BUFFERS, USING MACHINE ID ON DIRECTIVE.
* 
*         DB,,D1,D2,...,DN. 
*         DUMP SELECTED DISK BUFFERS, USING MACHINE ID FROM LOW CORE
*           ON DUMP FILE. 
* 
*         DB,ID,D1,D2,...,DN. 
*         DUMP SELECTED DISK BUFFERS, USING MACHINE ID ON DIRECTIVE.
  
  
 DB       DATA   0LDB 
  
          RJ     LDC         LIST DIRECTIVE 
          RJ     SCM         SET CENTRAL MEMORY 
          SX6    B0 
          RJ     SRA         SET REFERENCE ADDRESS
          SA2    F.TCMT 
          SA1    X2+BIOL
          AX1    24 
          SX1    X1 
          ZR     X1,ERR34    IF NO BUFFERED DEVICES DEFINED 
          SX6    X1+/HIO/CBTP 
          SA6    CPRA 
          SB2    A6 
          RJ     POM         POSITION TO *BDT* ENTRY
          GETCM 
          SA6    BE          STORE *BDT* ENTRY FOR *CBT*
          RJ     ASN         GET NEXT PARAMETER 
          BX5    X6 
          NG     B6,DBR1     IF MACHINE ID ON DIRECTIVE 
          SA2    F.TCMT 
          SA1    X2+MMFL     GET MACHINE ID FROM LOW CORE 
          MX0    12 
          BX5    X0*X1
 DBR1     RJ     FFD         FIND FWA OF DISK BUFFER AREA 
          SX6    B1          SET *D* FORMAT 
          SA6    CPRA+4 
          SB7    B0          ASSUME OCTAL BASE
          RJ     ASD         GET NEXT PARAMETER 
          SX5    0           PRESET FOR NO ACTIVE DISK BUFFERS
          NG     B6,DBR5     IF SELECTED DISK BUFFERS TO BE DUMPED
          GT     B6,ERR6     IF NULL DISK BUFFER NUMBER 
  
*         DUMP ALL ACTIVE DISK BUFFERS. 
  
          SX6    0
          SA6    DBRA        PRESET ENTRY NUMBER
 DBR2     SA3    DBRA        INCREMENT ENTRY NUMBER 
          SX6    X3+B1
          SA6    A3 
          RJ     SCM         SET CENTRAL MEMORY 
          SA4    A3          GET NEXT ENTRY NUMBER
          RJ     CLE         CHECK IF LAST ENTRY
          NG     X3,DBR3     IF MORE BUFFERS TO DUMP
          NZ     X5,DSD1     IF ACTIVE DISK BUFFERS DUMPED
          EQ     ERR37       *NO ACTIVE DISK BUFFERS.*
  
 DBR3     SA3    BE          GET FWA OF *CBT* ENTRY 
          SX3    X3 
          IX6    X0+X3
          SA6    CPRA 
          SB2    A6+
          RJ     POM         POSITION TO *CBT* ENTRY
          GETCM  BUF,/HIO/CBTL  READ ENTRY INTO CORE
  
*         THE FOLLOWING TEST MUST BE CHANGED TO DUMP
*           DISK BUFFERS UNDER DIFFERENT CONDITIONS.
  
          SA1    BUF+/HIO/LSLK  TEST ACTIVE COUNT IN *CBT* ENTRY
          AX1    48 
          ZR     X1,DBR2     IF EMPTY DISK BUFFER 
  
          SA2    =11HDISK BUFFER
          SB6    12 
          SA1    DBRA        GET ENTRY NUMBER 
          LX1    -12
          RJ     PEN         PRINT ENTRY NUMBER 
          RJ     SEC         SET EXTENDED MEMORY
          SA4    DBRA        DISK BUFFER NUMBER 
          SX4    X4-1        ALLOW FOR NO ENTRY ZERO
          SX2    /HIO/LSLB
          LX2    6
          IX4    X2*X4       RELATIVE DISK BUFFER FWA ON DUMP FILE
          SA1    DA          DISK BUFFER AREA FWA 
          IX6    X1+X4
          IX7    X6+X2
          SA6    CPRA        STORE DISK BUFFER FWA
          SA7    A6+B1       STORE DISK BUFFER LWA+1
          SB2    A6 
          RJ     POM         POSITION TO DISK BUFFER FWA
          SB2    CPRA 
          RJ     PMD         DUMP DISK BUFFER 
          PRINT  (=2C  )
          SX5    B1          INDICATE ACTIVE DISK BUFFER EXISTS 
          EQ     DBR2        CHECK NEXT BUFFER
  
*         DUMP SELECTED DISK BUFFERS. 
  
 DBR4     SB7    B0          ASSUME OCTAL BASE
          RJ     ASD         GET NEXT ENTRY NUMBER
          ZR     B6,DSD1     IF NO MORE BUFFERS TO DUMP 
 DBR5     NZ     X4,ERR6     IF CONVERSION ERROR
          ZR     X6,ERR38    IF INCORRECT DISK BUFFER NUMBER
          SA6    DBRA 
          SX4    X6 
          RJ     CLE         CHECK IF VALID ENTRY NUMBER
          PL     X3,ERR38    IF INCORRECT DISK BUFFER NUMBER
          SX1    X4          GET ENTRY NUMBER 
          LX1    -12
          SA2    =11HDISK BUFFER
          SB6    12 
          RJ     PEN         PRINT ENTRY NUMBER 
          SA2    DA 
          SA4    DBRA        GET ENTRY NUMBER 
          SX4    X4-1        ALLOW FOR NO ENTRY ZERO
          SX1    /HIO/LSLB
          LX1    6
          IX4    X1*X4       RELATIVE DISK BUFFER FWA IN DUMP FILE
          IX6    X4+X2
          IX7    X1+X6
          SA6    CPRA        STORE DISK BUFFER FWA
          SA7    A6+B1       STORE DISK BUFFER LWA+1
          SB2    A6 
          RJ     POM         POSITION TO DISK BUFFER
          SB2    CPRA 
          RJ     PMD         DUMP DISK BUFFER 
          PRINT  (=2C  )
          EQ     DBR4        CHECK NEXT ENTRY NUMBER
  
 DBRA     BSS    1           DISK BUFFER NUMBER 
 DBW      SPACE  4,10 
***       DBW.
*         PRINT BUFFERED DEVICE TABLE LIST CONTROL WORDS, BUFFER
*           STATISTICS TABLE, AND PP - I/O BUFFER LINK TABLE. 
  
  
 DBW      DATA   0LDBW
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     LDC         LIST DIRECTIVE 
          SX6    B0 
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     SCM         SET CENTRAL MEMORY 
          SA1    F.TCMT 
          SA1    X1+BIOL
          AX1    24 
          SX6    X1 
          ZR     X6,ERR34    IF NO BUFFERED DEVICES DEFINED 
  
*         DUMP *BDT* LIST CONTROL WORDS.
  
          SA6    FW          SET DUMP FILE FWA
          SX6    X6+/HIO/EMTP 
          SA6    CPRA 
          SB2    A6+
          RJ     POM         POSITION TO FWA OF LIST WORDS
          GETCM  BUF,/HIO/BDTL-/HIO/EMTP  READ LIST WORDS INTO CORE 
          PRINT  (=2C  )
          PRINT  (=C+          *BDT* LIST CONTROL WORDS+) 
          PRINT  (=2C  )
          SA1    TLCW        GET FORMAT TABLE POINTERS
          SA2    FW 
          SB2    X2-BUF+/HIO/EMTP 
          SB2    -B2         SET FWA OF WORDS IN CORE 
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
  
*         DUMP BUFFER STATISTICS TABLE. 
  
          PRINT  (=2C  )
          PRINT  (=2C  )
          PRINT  (=C*          BUFFER STATISTICS TABLE*)
          PRINT  (=2C  )
          SA1    F.TCMT 
          SA1    X1+BIOL
          AX1    24 
          SX3    X1+/HIO/IBSP 
          RJ     PCM         POSITION TO *BDT* *IBST* ENTRY 
          GETCM 
          SX6    X6 
          SA6    FW          STORE FWA *IBST* IN DUMP FILE
          SX3    X6 
          RJ     PCM         POSITION TO FWA OF *IBST*
          GETCM  BUF,/HIO/IBSL  READ *IBST* INTO CORE 
          SA1    TIBS        GET FORMAT TABLE POINTERS
          SA2    FW 
          SB2    X2-BUF 
          SB2    -B2         SET FWA OF *IBST* IN CORE
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
  
*         DUMP PP - I/O BUFFER LINK TABLE.
  
          PRINT  (=2C  )
          PRINT  (=2C  )
          PRINT  (=C*          PP - I/O BUFFER LINK TABLE*) 
          PRINT  (=2C  )
          SA1    F.TCMT 
          SA1    X1+BIOL
          AX1    24 
          SX3    X1+/HIO/PLTP 
          RJ     PCM         POSITION TO *BDT* *PLT* ENTRY
          GETCM 
          SX6    X6 
          SA6    FW          STORE FWA OF LINK TABLE IN DUMP FILE 
          SX3    X6 
          RJ     PCM         POSITION TO FWA OF LINK TABLE
          GETCM  BUF,/HIO/PLTL  READ *PLT* INTO CORE
          SA1    TPLT        GET FORMAT TABLE POINTERS
          SA2    FW 
          SB2    X2-BUF 
          SB2    -B2         SET FWA OF *PLT* IN CORE 
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
          EQ     DSD1        RETURN 
 DDB      SPACE  4,3
***       DDB.
* 
*         DUMP DAYFILE DUMP BUFFER IN *D* FORMAT. 
  
  
 DDB      DATA   0LDDB
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+DFPP
          LX2    -12
          SX6    X2          FWA DAYFILE DUMP BUFFER
          SX7    X6+DFDS
          SX5    =C*           DAYFILE DUMP BUFFER* 
          SB3    B1          SET *D* FORMAT 
          SX4    B0          SET READ FROM DUMP FILE
          RJ     DTB         DUMP BUFFER
          EQ     DSD1        RETURN 
 DISPOSE  SPACE  4,12 
***       DISPOSE.
*         DISPOSE,UN. 
* 
*         UN = USER NAME. 
* 
*         DISPOSE ALTERNATE LIST FILE TO PRINT QUEUE.  LIST OUTPUT
*         REVERTS TO ORIGINAL OUTPUT FILE.  HAS NO EFFECT IF OUTPUT 
*         HAS NOT BEEN ASSIGNED TO AN ALTERNATE FILE VIA THE OUTPUT 
*         DIRECTIVE.  IF UN IS NOT SPECIFIED, THE LISTING IS PRINTED AT 
*         THE CENTRAL SITE.  IF IT IS SPECIFIED, THE LISTING IS ROUTED
*         TO THE REMOTE BATCH TERMINAL LOGGED IN UNDER THAT USER
*         NUMBER. 
  
  
 DISPOSE  DATA   0LDISPOSE
  
          SA1    OF 
          SX1    X1-A 
          NZ     X1,DSD1     IF ALTERNATE OUTPUT NOT ACTIVE 
          RECALL A
          WRITER X2,R        TERMINATE ALTERNATE FILE 
          SA1    CH          CHECK DIRECTIVE CARD SEPERATOR 
          SA1    X1+
          SX1    X1-1R. 
          ZR     X1,DSP1     IF USER NAME NOT SPECIFIED 
          RJ     ASN         ASSEMBLE USER NAME 
          SA6    DSPB+1      SAVE USER NAME 
          SX2    FRDC+FRTI
          EQ     DSP2        PROCESS ROUTE
  
 DSP1     SX2    FRDC+FRCS
 DSP2     SA1    DSPA+1      SAVE FLAGS 
          MX5    42 
          BX7    X5*X1
          BX7    X7+X2
          SA7    A1 
          SA1    A           GET FILE NAME
          BX7    X5*X1
          SA7    DSPA 
          ROUTE  DSPA,R 
          SX6    L           RESET CONTROLS 
          SA6    OF          RESET OUTPUT FILE FET POINTER
          MOVE   6,OTPA,CC   RESET LIST CONTROLS
          SA1    CC 
          BX6    X1 
          SA6    CCCH        RESTORE CARRIAGE CONTROL CHARACTER 
          JP     DSD1        RETURN 
  
  
 DSPA     VFD    42/0LALTRNT,18/0 
          VFD    24/0,12/2HPR,6/0,18/FRDC+FRCS
          VFD    36/0,24/-DSPB
          BSSZ   4
  
 DSPB     CON    0           FAMILY 
          CON    0           USER NAME
 DP       SPACE  4,3
***       DP. 
* 
*         DUMP DAYFILE BUFFER POINTERS IN *D* FORMAT. 
  
  
 DP       DATA   0LDP 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+DFPP
          LX2    24 
          SX6    X2+
          SB3    B1          SET *D* FORMAT 
          SX7    X6+3*EXDF   SET LWA+1 TO BE DUMPED 
          SX5    =C*           DAYFILE BUFFER POINTERS* 
          SX4    0           SET READ FROM DUMP FILE
          RJ     DTB         DUMP BUFFER POINTERS 
          EQ     DSD1        RETURN 
 E        SPACE  4,4
***       E,FWA,LWA+1.
* 
*         DUMP MEMORY IN WORD FORMAT WITH INTERPRETATION, 
*         4 WORDS PER LINE. 
  
  
 E        DATA   0LE
  
          SA1    EE 
          NZ     X1,ERR5     IF EXTENDED MEMORY ERROR FLAG SET
          SX6    2           *E* FORMAT CODE
          JP     CPR1        PROCESS DUMP 
 EC       SPACE  4,15 
***       EC,FWA. 
*         EC,EMID,FWA.
* 
*         SET MEMORY TYPE TO *EXTENDED MEMORY*.  SUBSEQUENT C, D AND
*         E DIRECTIVES APPLY TO EXTENDED MEMORY/LCME. 
* 
*         EMID - SET TYPE OF EXTENDED MEMORY FOR CYBER 170-865/875. 
*         *UEM* SETS MEMORY TYPE TO UEM, *ESM* SETS TYPE TO ESM.
*         IF OMITTED, THE DEFAULT IS UEM FOR 800 SERIES MAINFRAMES, 
*         AND ESM FOR ALL OTHERS, INCLUDING CYBER 170-865/875.
* 
*         FWA - FIRST WORD ADDRESS/1000B FOR UEM. 
*         IF OMITTED, THE FIRST WORD ADDRESS FOR UEM IS OBTAINED
*         FROM THE *UEML* WORD IN CMR FOR A CYBER 170-8X5.
  
  
 EC       DATA   0LEC 
  
          RJ     LDC         LIST DIRECTIVE CARD
          SA1    .ECS 
          MX0    18 
          SEARCH TDIR,X1,X0 
          NZ     X2,ECB1     IF EXTENDED MEMORY RECORD FOUND
          SA1    CH          SAVE STRING POINTER
          BX6    X1 
          SA6    ECBA 
          RJ     ASN         ASSEMBLE PARAMETER 
          ZR     X6,ECB0     IF NULL PARAMETER
          SA2    =3LUEM 
          BX5    X6-X2
          ZR     X5,ECB0     IF UEM SPECIFIED 
          SA2    =3LESM 
          BX5    X6-X2
          ZR     X5,ECB1     IF ESM SPECIFIED 
          SA1    ECBA        SET POINTER TO RE-READ FWA 
          BX6    X1 
          SA6    CH 
 ECB0     SA1    CE 
          ZR     X1,ECB1     IF NO CM EXTENSION (ERROR) 
          RJ     SEM         SET UNIFIED EXTENDED MEMORY (UEM)
          PL     X3,ECB1     IF NO UEM DEFINED (ERROR)
          SA6    US+1        SET USER CONTROLLED MEMORY NAME (SUBTITLE) 
          SA7    UI          SET USER CONTROLLED RANDOM INDEX 
          SB7    B0+         SET OCTAL BASE 
          RJ     ASD         ASSEMBLE FWA FROM EC DIRECTIVE 
          ZR     X6,DSD1     IF DEFAULT UEM BASE ADDRESS
          LX6    9
          SA6    MB 
          EQ     DSD1        RETURN 
  
 ECB1     RJ     SEC         SET EXTENDED CORE STORAGE
          SA6    US+1        SET USER CONTROLLED MEMORY NAME (SUBTITLE) 
          SA7    UI          SET USER CONTROLLED MEMORY RANDOM INDEX
          JP     DSD1        RETURN 
  
 ECBA     CON    0           STRING POINTER 
 EICB     SPACE  4,10 
***       EICB. 
* 
*         DUMP THE EI COMMUNICATIONS BLOCK WITH INTERPRETATION
*         OF THE VARIOUS FIELDS.  IF THE DFT/OS BUFFER IS PRESENT,
*         IT WILL BE DUMPED IN 64-BIT *I* FORMAT. 
  
  
 EICB     DATA   0LEICB 
  
          RJ     LDC         LIST DIRECTIVE 
          SA1    ED 
          ZR     X1,EIC2     IF *EDD* DUMP
          SA1    .DSB        CHECK FOR *DSB* RECORD 
          MX0    18 
          SEARCH TDIR,X1,X0 
          NZ     X2,EIC1     IF FOUND 
          SA1    .EIB        CHECK FOR *EIB* RECORD 
          MX0    18 
          SEARCH TDIR,X1,X0 
          ZR     X2,ERR14    IF NOT FOUND 
 EIC1     SA2    A2+B1       SET RANDOM INDEX 
          BX6    X2 
          SA6    RI 
          SX3    0
          EQ     EIC3        FORMAT RECORD CONTENTS 
  
 EIC2     RJ     SCM         SET CENTRAL MEMORY 
          SA7    RI 
          SA1    F.TCMT      FETCH EICB POINTER 
          SA3    X1+EIBP
          MX1    -32
          BX3    -X1*X3 
          ZR     X3,ERR21    IF NO EICB POINTER 
 EIC3     RJ     PCM         POSITION CENTRAL MEMORY
          GETCM  BUF,/VE/DSCBL
          SX6    /VE/D7TY    SET FIRST WORD OF BLOCK
          SA6    FW 
          SB2    BUF
          SA1    TFEB 
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
          RJ     DFT         PROCESS DFT/OS BUFFER
          JP     DSD1        RETURN 
 EJ       SPACE  4,9
***       EJ. 
*         FORCE EJECT FOR NEXT DIRECTIVE. 
* 
*         EJ,NN.
*         FORCE PAGE EJECT ONLY IF LESS THAN NN LINES REMAINING 
*         ON THE CURRENT PAGE.  NN IS DECIMAL.
* 
*         THE *EJ.* FUNCTION IS AUTOMATIC UNLESS TURNED OFF BY AN 
*         *EJOFF.* DIRECTIVE. 
  
  
 EJ       DATA   0LEJ 
  
          SA1    CH          CHECK SEPARATOR
          SA1    X1+
          SX2    X1-1R. 
          SX1    100         PRESET BIG LINE COUNT FOR EJECT
          ZR     X2,EJP1     IF LINE COUNT NOT SPECIFIED
          SB7    1           SET DECIMAL BASE 
          RJ     ASD         ASSEMBLE NN
          NZ     X4,ERR6     IF CONVERSION ERROR
          SX1    X6+         SET LINE COUNT 
 EJP1     RJ     CPS         CHECK REMAINING PAGE SPACE 
          JP     DSD1        RETURN 
 EJOFF    SPACE  4,3
***       EJOFF.
* 
*         TURN OFF AUTO PAGE EJECT FOR EACH DIRECTIVE.
  
  
 EJOFF    DATA   0LEJOFF
  
          SX6    1
 EFO1     SA6    EF          UPDATE AUTO EJECT FLAG 
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          JP     DSD1        RETURN 
 EJON     SPACE  4,3
***       EJON. 
* 
*         TURN ON AUTO EJECT FOR EACH DIRECTIVE (DEFAULT).
  
  
 EJON     DATA   0LEJON 
  
          SX6    0
          JP     EFO1 
 EJT      SPACE  4,10 
***       EJT.
* 
*         DUMP EXECUTING JOB TABLE WITH INTERPRETATION. 
  
  
 EJT      DATA   0LEJT
  
          STBL   EJT
          SX5    =C*           EXECUTING JOB TABLE* 
          RJ     DTI         DUMP TABLE WITH INTERPRETATION 
          EQ     DSD1        RETURN 
 EPB      SPACE  4,3
***       EPB.
* 
*         DUMP EXTENDED MEMORY/PP BUFFER IN *D* FORMAT. 
  
  
 EPB      DATA   0LEPB
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     SCM         SET CENTRAL MEMORY 
          SA1    F.TCMT 
          SA2    X1+EPBP
          SX6    X2          FWA EXTENDED MEMORY/PP BUFFER
          SX4    B0          SET READ FROM DUMP FILE
          ZR     X6,ERR21    IF NO EXTENDED MEMORY/PP BUFFER
          MX0    -6          GET BUFFER COUNT 
          AX2    18 
          SX7    102B        LENGTH OF BUFFER 
          BX2    -X0*X2 
          IX2    X2*X7
          IX7    X6+X2       LWA+1
          SB3    B1          SET *D* FORMAT 
          SX5    =C*           EXTENDED MEMORY/PP BUFFER* 
          RJ     DTB         DUMP BUFFER
          EQ     DSD1        RETURN 
 ERRLOG   SPACE  4,3
***       ERRLOG. 
* 
*         DUMP THE ERRLOG DAYFILE BUFFER IN *E* FORMAT. 
*         ALSO, DUMP THE CURRENT BUFFER LINE BY LINE. 
  
  
 ERRLOG   DATA   0LERRLOG 
  
          SX7    -2 
          JP     ACN1 
 EST      SPACE  4,3
***       EST.
* 
*         DUMP EQUIPMENT STATUS TABLE WITH INTERPRETATION.
  
  
 EST      DATA   0LEST
  
          STBL   EST         SET UP TABLE POINTERS
          SX5    =C*           EQUIPMENT STATUS TABLE*
          RJ     DTI         DUMP TABLE WITH INTERPRETATION 
          EQ     DSD1        RETURN 
 FMFREG   SPACE  4,10 
***       FMFREG. 
* 
*         DUMP PP REGISTERS STORED IN *1MB* WHILE PROCESSING A FATAL
*         MAINFRAME ERROR.  *1MB* PLACES THE BUFFER ADDRESS IN (IR+4).
  
  
 FMFREG   DATA   0LFMFREG 
  
          RJ     LDC         LIST DIRECTIVE 
          PRINT  (=C*    PP    P     Q      K       A*) 
          PRINT  (=C* *)
          RJ     SSB         SET STRING BUFFER TO SPACES
          SX6    B0+         SET *FPP* ENTRY CONDITION
          SA6    FI 
          SA6    FMFA        INITIALIZE PP NUMBER 
  
*         LOCATE *1MB* PP AND SET BUFFER ADDRESS. 
  
          SX4    3R1MB
          LX4    42 
          RJ     FPP         FIND *1MB* PP
          SA6    //PP        SET PP NUMBER
          ZR     X1,ERR7     IF *1MB* NOT FOUND 
          RJ     RPD         READ *1MB* PP MEMORY INTO *PBUF* 
          SX1    IR+4        FIND BUFFER ADDRESS IN *1MB* 
          RJ     RPB         READ PP BYTE 
          ZR     X6,ERR15    IF BUFFER POINTER NOT SET
          LX6    12 
          SB4    X6          SAVE BUFFER FWA
  
*         STORE PP NUMBER IN STRING BUFFER. 
  
 FMF1     SA1    FMFA        SET PP NUMBER
          SX2    X1-12B 
          NG     X2,FMF2     IF IN LOWER PP BANK
          SX1    X1+20B-12B 
 FMF2     SB6    2
          SB7    PRBF+4      SET STRING BUFFER ADDRESS
          LX1    54 
          RJ     CTS         CONVERT TO STRING BUFFER 
  
*         STORE *P* REGISTER. 
  
          SX1    B4+1        READ *P* FROM *1MB* BUFFER 
          RJ     RPB         READ PP BYTE 
          BX1    X6 
          SB6    4
          SB7    PRBF+8 
          RJ     CTS         CONVERT TO STRING BUFFER 
  
*         STORE *Q* REGISTER. 
  
          SX1    B4+3        READ *Q* FROM *1MB* BUFFER 
          RJ     RPB         READ PP BYTE 
          BX1    X6 
          SB6    4
          SB7    PRBF+14
          RJ     CTS         CONVERT TO STRING BUFFER 
  
*         STORE *K* REGISTER. 
  
          SX1    B4+4        PROCESS UPPER 6 BITS OF *K*
          RJ     RPB         READ PP BYTE 
          BX1    X6 
          SB6    2
          LX1    6
          SB7    PRBF+20
          RJ     CTS         CONVERT TO STRING BUFFER 
          SX1    B4+5        PROCESS LOWER 12 BITS OF *K* 
          RJ     RPB         READ PP BYTE 
          BX1    X6 
          SB6    4
          SB7    PRBF+22
          RJ     CTS         CONVERT TO STRING BUFFER 
  
*         STORE *A* REGISTER. 
  
          SX1    B4+6        PROCESS UPPER 6 BITS OF *A*
          RJ     RPB         READ PP BYTE 
          BX1    X6 
          SB6    2
          LX1    6
          SB7    PRBF+28
          RJ     CTS         CONVERT TO STRING BUFFER 
          SX1    B4+7        PROCESS LOWER 12 BITS OF *A* 
          RJ     RPB         READ PP BYTE 
          BX1    X6 
          SB6    4
          SB7    PRBF+30
          RJ     CTS         CONVERT TO STRING BUFFER 
  
*         PRINT DATA FOR ONE PP.
  
          SX6    B4+8        SAVE *1MB* BUFFER ADDRESS
          SA6    FMFB 
          PRINT  PRBF,B7-PRBF  PRINT COMPLETED PP REGISTER LINE 
          SA1    FMFA        INCREMENT PP NUMBER
          SX6    X1+1 
          SA2    FMFB        RESTORE *1MB* BUFFER ADDRESS 
          SB4    X2 
          SA3    NP 
          SA6    A1 
          IX3    X6-X3
          NG     X3,FMF1     IF MORE PP-S TO PROCESS
          JP     DSD1        RETURN 
  
 FMFA     BSS    1           PP COUNTER 
 FMFB     BSS    1           *1MB* BUFFER ADDRESS SAVE AREA 
 FNT      SPACE  4,3
***       FNT.
* 
*         DUMP FILE NAME TABLE WITH INTERPRETATION. 
  
  
 FNT      DATA   0LFNT
  
          STBL   FNT         SET TABLE POINTERS 
          SX5    =C*           SYSTEM FILENAME TABLE* 
          RJ     DTI         DUMP TABLE WITH INTERPRETATION 
          EQ     DSD1        RETURN 
 FOT      SPACE  4,10 
***       FOT.
* 
*         DUMP FAMILY ORDINAL TABLE IN *D* FORMAT.
  
  
 FOT      DATA   0LFOT
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+FOTP     SET TABLE POINTER
          LX2    24 
          SX6    X2          FWA OF TABLE 
          LX2    12 
          MX0    -12
          BX2    -X0*X2      MAXIMUM NUMBER OF TABLE ENTRIES
          IX7    X6+X2       LWA+1 OF TABLE 
          SB3    B1          SET *D* FORMAT 
          SX4    B0          SET READ FROM DUMP FILE
          SX5    =C*           FAMILY ORDINAL TABLE*
          RJ     DTB         DUMP TABLE 
          EQ     DSD1        RETURN 
 FTT      SPACE  4,10 
***       FTT.
*         DUMP ALL NONZERO FUNCTION TIMEOUT TABLE ENTRIES.
* 
*         FTT,E1,E2,...,EN. 
*         DUMP SELECTED FUNCTION TIMEOUT TABLE ENTRIES. 
  
  
 FTT      DATA   0LFTT
  
          SX5    =C*           FUNCTION TIMEOUT TABLE*
          SX6    TFTE        SET FORMAT TABLE POINTERS ADDRESS
          SX7    =4HFFT      SET TABLE NAME ADDRESS 
          SB2    /HIO/FTTP   SET BUFFERED DEVICE TABLE INDEX
          RJ     DBT         DUMP *FTT* 
          EQ     DSD1        RETURN 
 HAT      SPACE  4,10 
***       HAT.
*         DUMP ALL NONZERO HASH TABLE ENTRIES.
* 
*         HAT,E1,E2,...,EN. 
*         DUMP SELECTED HASH TABLE ENTRIES. 
  
  
 HAT      DATA   0LHAT
  
          SX5    =C*           HASH TABLE*
          SX6    THAE        SET FORMAT TABLE POINTERS ADDRESS
          SX7    =4HHAT      SET TABLE NAME ADDRESS 
          SB2    /HIO/HATP   SET BUFFERED DEVICE TABLE INDEX
          RJ     DBT         DUMP *HAT* 
          EQ     DSD1        RETURN 
 II       SPACE  4,25 
***       I,HFBN,HLBN,ASID. 
* 
*         DUMP 64-BIT MEMORY IN INSTRUCTION PARCEL FORMAT.
* 
*         HFBN   SPECIFIES FIRST BYTE NUMBER (HEXADECIMAL)
*                TO BE DUMPED (MANDATORY).
* 
*         HLBN   SPECIFIES LAST BYTE NUMBER PLUS ONE
*                (HEXADECIMAL) TO BE DUMPED.  IF HLBN IS
*                OMITTED, HFBN+8 IS ASSUMED BY DEFAULT. 
* 
*         ASID   SPECIFIES THE ACTUAL SEGMENT IDENTIFIER OF 
*                THE MEMORY TO BE DUMPED.  IF ASID=1 THEN 
*                HFBN AND HLBN ARE ADDRESSES WITHIN THE 
*                CYBER 170-8X5 ERROR INTERFACE PACKAGE.  IF 
*                OMITTED, HFBN AND HLBN ARE REAL MEMORY 
*                ADDRESSES. 
* 
*         THE I DIRECTIVE CAUSES THE SPECIFIED LOCATIONS OF 
*         CENTRAL MEMORY TO BE DUMPED IN FOUR GROUPS OF 
*         FOUR HEXADECIMAL DIGITS, THREE WORDS PER LINE 
*         (ONE WORD PER LINE FOR TERMINAL OUTPUT) WITH
*         ASCII CHARACTER EQUIVALENTS.  REPETITIVE DATA 
*         IS SUPPRESSED.
  
  
 II       DATA   0LI
  
          SX6    B0 
 IPR1     SA6    IPRA+2      SET FORMAT CODE
          RJ     LDC         LIST DIRECTIVE CARD
          RJ     GHA         GET HARDWARE ADDRESS 
          ZR     B6,ERR6     IF NOT SPECIFIED 
          MX0    57          FORCE MULTIPLE OF 8 BYTES
          BX6    X0*X6
          SA6    IPRA        SET FIRST BYTE NUMBER
          SX1    8
          IX6    X6+X1
          SA6    A6+B1       PRESET LAST BYTE + 1 
          RJ     GHA         GET SECOND HARDWARE ADDRESS
          ZR     B6,IPR3     IF NO SECOND PARAMETER 
          MX0    57          ROUND UP TO 8-BYTE MULTIPLE
          SX1    7
          IX6    X6+X1
          BX6    X0*X6
          SA6    IPRA+1      SET LAST BYTE + 1
          RJ     ASX         CHECK FOR ASID 
 IPR3     SA1    IPRA        CHECK CONSISTENCY
          SA2    A1+B1
          SB2    32 
          AX4    X1,B2       ISOLATE POSSIBLE ASID
          AX5    X2,B2
          NZ     X4,IPR4     IF ASID GIVEN FOR FBA
          BX4    X5 
 IPR4     ZR     X5,IPR5     IF NO ASID GIVEN FOR LBA 
          BX5    X4-X5
          NZ     X5,ERR6     IF ASID-S DO NOT MATCH 
 IPR5     LX3    X6,B2
          ZR     X4,IPR6     IF NO ASID IN EITHER FBO, LBO
          LX3    X4,B2
          NZ     X6,ERR6     IF ASID ALSO SPECIFICALLY GIVEN
 IPR6     BX7    X2+X3
          BX6    X1+X3
          SA7    A2 
          SA6    A1 
          SB2    A1 
          RJ     DSM         DUMP SIXTY-FOUR BIT MEMORY 
          EQ     DSD1        RETURN TO PROCESS NEXT DIRECTIVE 
  
  
 IPRA     BSS    0           DUMP PARAMETERS
          CON    0           FIRST BYTE NUMBER
          CON    0           LAST BYTE NUMBER + 1 
          CON    0           FORMAT CODE
 IAF      SPACE  4,10 
***       IAF,OPS.
* 
*         WHERE OPS IS A STRING OF UP TO 5 CHARACTERS SELECTING 
*         VARIOUS DUMP OPTIONS AS FOLLOWS-
* 
*         C      THE IAF COMMAND TABLE IS ANALYZED. 
* 
*         E      THE IAF REENTRY TABLE IS PRINTED IN BYTE FORMAT WITH 
*                DISPLAY CODE INTERPRETATION.  EACH LINE OF TWO WORDS 
*                INDICATES ITS ORDINAL WITHIN THE TABLE.
* 
*         L      THE POT LINK TABLE IS PRINTED IN BYTE FORMAT, WITH 
*                LINK ORDINALS PRINTED FOR EVERY FOUR LINKS.  THE POTS
*                ARE DUMPED, FOUR WORDS PER LINE, TWO LINES PER POT,
*                WITH DISPLAY CODE INTERPRETATION.
* 
*         P      ALL COPIES OF TLX, 1TA, 1TN, AND 1TO ARE 
*                ANALYZED.  ALL COPIES OF 1RO AND 1RI THAT ARE
*                ASSOCIATED WITH CONTROL POINTS OF IAF ORIGIN ARE 
*                ANALYZED.
* 
*         T      THE IAF TERMINAL TABLE IS ANALYZED.  EACH WORD OF
*                THE TERMINAL TABLE IS PRINTED WITH ITS SYMBOL AND IS 
*                SPLIT INTO THE APPROPRIATE PARAMETER FIELDS WITH 
*                DESCRIPTION. 
* 
* 
*         IN ALL CASES, THE IAF CURRENT ENTRY WORD *SSPA* IS PRINTED
*         FIRST IN BYTE FORMAT. 
* 
* 
*         IAF.
* 
*         IS EQUIVALENT TO *IAF,ETLP.*. 
  
  
 IAF      DATA   0LIAF
  
          RJ     SCM         SET CENTRAL MEMORY 
          SX3    /REM/VCPT/ 
          SX5    IFSI 
          LX5    24 
          BX5    X5+X3
          RJ     ISS         INITIALIZE FOR SUB-SYSTEM DUMP 
          GETCM  SSBF,/REM/TXORG+1  READ IAF POINTERS AND *SSPA*
          SX1    3
          RJ     CPS         CHECK PAGE SPACE 
          SA5    IAFA 
          RJ     PCW         PRINT CONTENTS OF WORDS
          SA5    IAFB 
          RJ     DSS         DUMP IAF SUBSYSTEM 
          JP     DSD1        RETURN 
  
 IAFA     BSS    0
          VFD    36/6L*SSPA*,6/0,18//REM/TXORG
          DATA   40HIAF CURRENT ENTRY 
          VFD    60/0 
  
 IAFB     VFD    60/0LETLP
          VFD    36/0,6/1RC,18/DTC
          VFD    36/0,6/1RE,18/DTE
          VFD    36/0,6/1RL,18/DTL
          VFD    36/0,6/1RP,18/DTP
          VFD    36/0,6/1RT,18/DTT
          VFD    60/0 
 IOUCR    SPACE  4,15 
***       IOUCR.
*         SPECIFIES THAT ALL CONCURRENT PP CHANNEL REGISTERS
*         WILL BE PROCESSED.
* 
*         IOUCR,C1,C2,,,,CN.
*         PROCESS THE CONCURRENT PP CHANNEL REGISTERS SPECIFIED 
*         ON DIRECTIVE CARD.
* 
*         THE *IOUCR* DIRECTIVE CAUSES THE CHANNEL NUMBER, CHANNEL
*         TYPE, IOU STATUS REGISTER, T-REGISTER, FAULT STATUS MASK
*         AND TEST MODE OPERAND GENERATOR (TEST SEED) TO BE PRINTED 
*         FOR THE THE CHANNELS SPECIFIED. THE CHANNEL NUMBER AND
*         TYPE WILL BE PRINTED IN OCTAL, ALL OTHER DATA IS PRINTED
*         IN HEXADECIMAL. 
  
  
 IOUCR    DATA   0LIOUCR
  
          RJ     LDC         LIST DIRECTIVE CARD
          SX6    B0+
          RJ     IPD         INITIALIZE FOR 16-BIT DUMP 
          SA1    C4 
          ZR     X1,ERR14    IF NO *CPP* CHANNELS ON MAINFRAME
  
*         OUTPUT *CCH* CHANNEL DATA HEADER. 
  
          PRINT  (=2C  )
          PRINT  ICRB 
          PRINT  ICRC 
  
*         SELECT NEXT CHANNEL.
  
 ICR1     SA1    PI 
          ZR     X1,ICR2     IF CHANNEL NUMBERS ON DIRECTIVE CARD 
          SA1    //PP 
          SA2    C4 
          IX2    X1-X2
          PL     X2,DSD1     IF NO MORE CHANNELS TO DUMP
          EQ     ICR3        DUMP NEXT CHANNEL
  
 ICR2     SB7    B0+
          RJ     ASD
          ZR     B6,DSD1     IF NO MORE CHANNELS TO DUMP
          NZ     X4,ERR6     IF CONVERSION ERROR
          SA2    C4 
          IX7    X6-X2
          PL     X7,ERR6     IF CHANNEL NUMBER ERROR
          SA6    //PP 
  
*         GET CHANNEL DATA. 
  
 ICR3     SA1    .CCR        SEARCH FOR IOU CHANNEL RECORD
          MX0    18 
          SEARCH TDIR,X1,X0 
          ZR     X2,ERR14    IF RECORD ID NOT IN DIRECTORY
          SA1    A2+B1
          BX6    X1 
          SA6    RI 
          SA3    //PP        CHANNEL NUMBER 
          SX1    11D
          IX3    X3*X1       CONVERT TO BYTE NUMBER 
          RJ     FBP         FIND BYTE POSITION 
 ICR4     RJ     NXB         GET CHANNEL NUMBER 
          BX5    X1 
          LX5    12 
          RJ     NXB         GET CHANNEL TYPE 
          BX6    X5+X1
          SA6    ICRD 
          BX5    X5-X5
          SB6    6
          SB7    B0+
 ICR5     LX5    8
          RJ     NXB         GET T-REGISTER DATA
          BX5    X1+X5
          SB7    B7+B1
          NE     B6,B7,ICR5  IF NOT END OF T-REGISTER 
          BX6    X5 
          SA6    ICRE 
          BX5    X5-X5
          SB6    3
          SB7    B0 
          MX0    -8 
 ICR6     LX5    8           GET FAULT MASK AND TEST SEED 
          SB7    B7+B1
          RJ     NXB
          BX1    -X0*X1 
          BX5    X5+X1
          NE     B6,B7,ICR6  IF NOT END OF DATA 
          BX6    X5 
          SA6    ICRF 
          SA1    .IMR        FETCH IOU MAINTENANCE REGISTERS RECORD 
          RJ     RDR
          ZR     X2,ERR14    IF RECORD NOT FOUND
          SX1    /IOU/C0CR   FORM *CCH* CHANNEL STATUS REGISTER NUMBER
          SA2    //PP 
          IX5    X1+X2
          SX7    X2+B1       INCREMENT CHANNEL NUMBER 
          SA7    A2 
          RJ     SFR         SEARCH FOR REGISTER
          NG     X1,ERR14    IF REGISTER NOT FOUND
          SA6    ICRA 
          SA7    A6+1 
  
*         OUTPUT *CCH* CHANNEL STATUS REGISTER DATA.
  
          RJ     SSB         SPACE FILL STRING BUFFER 
          SB7    PRBF+2 
          SA2    ICRD        SAVE CHANNEL TYPE FOR REFERENCE
          MX3    -12
          BX3    -X3*X2 
          SB2    X3 
          LX2    59-23
          SB6    B1+B1
          RJ     UPS         UNPACK CHANNEL NUMBER
          SA2    ICRI        DETERMINE CHANNEL TYPE 
          SA4    ICRG 
          SB3    X4 
          EQ     B2,B3,ICR6.1  IF DMA/ISI CHANNEL TYPE
          SA2    A2+B1
          SA4    A4+B1
          SB4    X4 
          EQ     B2,B4,ICR6.1  IF DMA/170 CHANNEL TYPE
          SA2    A2+B1
 ICR6.1   SB7    B7+3 
          SB6    7
          RJ     UPS         UNPACK CHANNEL TYPE
          SB7    B7+2        PROCESS UPPER 16 BITS OF STATUS REGISTER 
          SA1    ICRA 
          MX0    12 
          SA2    A1+B1
          BX3    X0*X2
          BX1    X1+X3
          SB6    4
          LX1    -4 
          RJ     HTS
          SX4    2
 ICR7     BX1    X2          PROCESS LOWER 48 BITS OF REGISTER
          LX1    12 
          SX5    3
 ICR8     SB7    B7+1 
          SB6    4
          RJ     HTS
          SX5    X5-1 
          NZ     X5,ICR8     IF MORE OF CURRENT REGISTER TO PROCESS 
          SX4    X4-1 
          ZR     X4,ICR9     IF STATUS AND T-REGISTER PROCESSED 
          SA2    ICRE 
          SB7    B7+2 
          EQ     ICR7        PROCESS T-REGISTER DATA
  
 ICR9     SB7    B7+3        PROCESS FLAG MASK REGISTER DATA
          SB6    4
          SA1    ICRF 
          EQ     B2,B3,ICR10 IF DMA/ISI TYPE CHANNEL
          SA2    ICRL        WRITE *N/A* IN STRING BUFFER 
          RJ     UPS
          LX1    -16         SHIFT FOR TEST MODE OPERAND GENERATOR
          EQ     ICR11       CONTINUE 
  
 ICR10    LX1    59-23
          RJ     HTS
 ICR11    SB7    B7+7        PROCESS TEST MODE OPERAND GENERATOR
          NE     B2,B4,ICR12 IF NOT DMA/170 CHANNEL TYPE
          SA2    ICRL 
          SB6    3
          RJ     UPS
          EQ     ICR13       PRINT OUTPUT 
  
 ICR12    SB6    2
          RJ     HTS
 ICR13    PRINT  CCCH,B7-CCCH+1 
          EQ     ICR1        DUMP NEXT CHANNEL REGISTERS
  
 ICRA     CON    0           UPPER FOUR BITS OF STATUS REGISTER 
          CON    0           LOWER 60 BITS OF STATUS REGISTER 
  
 ICRB     DATA   50H CHANNEL
          DATA   29C     FAULT  TEST MODE OPERAND 
  
 ICRC     DATA   50H NUMBER   TYPE     STATUS REGISTER       T REGISTE
          DATA   25CR     MASK     GENERATOR
  
 ICRD     CON    0           *CCH* CHANNEL NUMBER AND TYPE
 ICRE     CON    0           *CCH* CHANNEL T-REGISTER 
 ICRF     CON    0           *CCH* CHANNEL FAULT MASK AND TEST SEED 
 ICRG     CON    2R03        DMA/ISI CHANNEL FUNCTION CODE
 ICRH     CON    2R05        DMA/170 CHANNEL FUNCTION CODE
 ICRI     CON    7LDMA/ISI
 ICRJ     CON    7LDMA/170
 ICRK     CON    7LDMA/IPI
 ICRL     CON    4LN/A
 IOUMR    SPACE  4,20 
***       IOUMR.
*         SPECIFIES THAT ALL IOU MAINTENANCE REGISTERS SHOULD 
*         BE DUMPED.
* 
*         IOUMR,FIRST,LAST. 
* 
*         FIRST  SPECIFIES THE FIRST REGISTER (HEX) TO BE DUMPED. 
*                IF OMITTED, REGISTER 00 IS USED BY DEFAULT.
* 
*         LAST   SPECIFIES THE LAST PLUS ONE REGISTER (HEX) TO BE 
*                DUMPED.  IF OMITTED, FIRST+1 IS USED BY DEFAULT. 
* 
*         THE *IOUMR* DIRECTIVE CAUSES THE IOU MAINTENANCE
*         REGISTERS TO BE DUMPED.  FOR EACH REGISTER, THE 
*         REGISTER NUMBER, REGISTER CONTENTS, AND REGISTER
*         DESCRIPTION ARE PRINTED.  FOR REGISTERS CONTAINING
*         ERROR INDICATORS, DESCRIPTIONS OF ERROR INDICATORS
*         SET ARE PRINTED.
  
  
 IOUMR    DATA   0LIOUMR
  
          SA1    .IMR        RECORD ID
          SX7    IMRA        DESCRIPTOR TABLE ADDRESS 
          RJ     DMR         DUMP MAINTENANCE REGISTERS 
          EQ     DSD1        RETURN TO PROCESS NEXT DIRECTIVE 
  
  
*         DESCRIPTOR FORMAT - 
* 
*T        9/ REGISTER,17/ BDTA,17/ 0,17/ DESCRIPTOR PTR 
* 
*                BDTA = BIT DESCRIPTOR TABLE ADDRESS. 
  
 IMRA     BSS    0
          SXREG  SSMR,(STATUS SUMMARY       ),IMRB
          SXREG  EIMR,(ELEMENT ID           ) 
          SXREG  OIMR,(OPTIONS INSTALLED    ) 
          SXREG  IFSM,(FAULT STATUS MASK    ) 
          SXREG  IOSB,(OS BOUNDS            ) 
          SXREG  DEMR,(DEPENDENT ENV CONTROL) 
          SXREG  ISTR,(STATUS REG           ) 
          SXREG  IFS1,(FAULT STATUS 1       ),IMRC
          SXREG  IFS2,(FAULT STATUS 2       ),IMRD
          SXREG  ITMR,(TEST MODE            ) 
          SXREG  OICR,(CCH OPTIONS INSTALLED),,I4A
          SXREG  ECCR,(CCH ENVIRONMENT CONTROL),,I4A
          SXREG  SRCR,(CCH STATUS REGISTER),,I4A
          SXREG  F1CR,(CCH FAULT STATUS 1),,I4A 
          SXREG  F2CR,(CCH FAULT STATUS 2),,I4A 
          SXREG  TMCR,(CCH TEST MODE),,I4A
          SXREG  FMCR,(CCH FAULT STATUS MASK),,I4A
          SXREG  OBCR,(CCH OS BOUNDS),,I4A
          SXREG  C0CR,(CCH CHANNEL 0 STATUS),,I4A+I4S 
          SXREG  C1CR,(CCH CHANNEL 1 STATUS),,I4A+I4S 
          SXREG  C2CR,(CCH CHANNEL 2 STATUS),,I4A+I4S 
          SXREG  C3CR,(CCH CHANNEL 3 STATUS),,I4A+I4S 
          SXREG  C4CR,(CCH CHANNEL 4 STATUS),,I4A 
          SXREG  C5CR,(CCH CHANNEL 5 STATUS),,I4A 
          SXREG  C6CR,(CCH CHANNEL 6 STATUS),,I4A 
          SXREG  C7CR,(CCH CHANNEL 7 STATUS),,I4A 
          SXREG  C8CR,(CCH CHANNEL 10 STATUS),,I4A
          SXREG  C9CR,(CCH CHANNEL 11 STATUS),,I4A
          CON    0
  
*         REG *SSMR* (STATUS SUMMARY) BIT INTERPRETATIONS.
* 
*         DESCRIPTOR FORMAT - 
* 
*T        9/ BIT NO.,17/ 0,17/ 0,17/ DESCRIPTOR PTR 
  
 IMRB     BSS    0
          S2BIT  59,(SUMMARY STATUS       ) 
          S2BIT  60,(PROCESSOR HALT       ) 
          S2BIT  61,(UNCORRECTED ERROR    ) 
          S2BIT  63,(PHYS ENVIRON WARN    ) 
          CON    0
  
*         REG *IFS1* (FAULT STATUS 1) BIT INTERPRETATIONS.
* 
*         DESCRIPTOR FORMAT - 
* 
*T        9/ BIT NO.,17/ 0,17/ 0,17/ DESCRIPTOR PTR 
  
 IMRC     BSS    0
          S2BIT   7,(BARREL 0 PP 00 ERR   ) 
          S2BIT   6,(BARREL 0 PP 01 ERR   ) 
          S2BIT   5,(BARREL 0 PP 02 ERR   ) 
          S2BIT   4,(BARREL 0 PP 03 ERR   ) 
          S2BIT   3,(BARREL 0 PP 04 ERR   ) 
          S2BIT  15,(BARREL 0 PP 05 ERR   ),S1
          S2BIT  15,(BARREL 1 PP 00 ERR   ),I2+I4A+I4S
          S2BIT  14,(BARREL 0 PP 06 ERR   ),S1
          S2BIT  14,(BARREL 1 PP 01 ERR   ),I2+I4A+I4S
          S2BIT  13,(BARREL 0 PP 07 ERR   ),S1
          S2BIT  13,(BARREL 1 PP 02 ERR   ),I2+I4A+I4S
          S2BIT  12,(BARREL 0 PP 10 ERR   ),S1
          S2BIT  12,(BARREL 1 PP 03 ERR   ),I2+I4A+I4S
          S2BIT  11,(BARREL 0 PP 11 ERR   ),S1
          S2BIT  11,(BARREL 1 PP 04 ERR   ),I2+I4A+I4S
          S2BIT  23,(BARREL 1 PP 00 ERR   ),S1
          S2BIT  23,(BARREL 2 PP 00 ERR   ),I2+I4A+I4S
          S2BIT  22,(BARREL 1 PP 01 ERR   ),S1
          S2BIT  22,(BARREL 2 PP 01 ERR   ),I2+I4A+I4S
          S2BIT  21,(BARREL 1 PP 02 ERR   ),S1
          S2BIT  21,(BARREL 2 PP 02 ERR   ),I2+I4A+I4S
          S2BIT  20,(BARREL 1 PP 03 ERR   ),S1
          S2BIT  20,(BARREL 2 PP 03 ERR   ),I2+I4A+I4S
          S2BIT  19,(BARREL 1 PP 04 ERR   ),S1
          S2BIT  19,(BARREL 2 PP 04 ERR   ),I2+I4A+I4S
          S2BIT  31,(BARREL 1 PP 05 ERR   ),S1
          S2BIT  31,(BARREL 3 PP 00 ERR   ),I2+I4A
          S2BIT  31,(CIO PP 00 ERR        ),I4S 
          S2BIT  30,(BARREL 1 PP 06 ERR   ),S1
          S2BIT  30,(BARREL 3 PP 01 ERR   ),I2+I4A
          S2BIT  30,(CIO PP 01 ERR        ),I4S 
          S2BIT  29,(BARREL 1 PP 07 ERR   ),S1
          S2BIT  29,(BARREL 3 PP 02 ERR   ),I2+I4A
          S2BIT  29,(CIO PP 02 ERR        ),I4S 
          S2BIT  28,(BARREL 1 PP 10 ERR   ),S1
          S2BIT  28,(BARREL 3 PP 03 ERR   ),I2+I4A
          S2BIT  28,(CIO PP 03 ERR        ),I4S 
          S2BIT  27,(BARREL 1 PP 11 ERR   ),S1
          S2BIT  27,(BARREL 3 PP 04 ERR   ),I2+I4A
          S2BIT  27,(CIO PP 04 ERR        ),I4S 
          S2BIT  32,(A/R PARITY ERR       ),S1
          S2BIT  32,(ERR ON 7VD0 MODULE   ),S2
          S2BIT  32,(ERR ON JW MODULE     ),I4A 
          S2BIT  32,(ERR ON IIW MODULE    ),I4S 
          S2BIT  33,(P/Q PARITY ERR       ),S1
          S2BIT  33,(ERR ON 7VE0 MODULE   ),S2
          S2BIT  33,(ERR ON KR MODULE     ),I4A+I4S 
          S2BIT  34,(ERR ON JA MODULE     ),I4A 
          S2BIT  34,(ERR ON LA MODULE     ),I4S 
          S2BIT  34,(FIRMWARE ERR         ),S1+I2 
          S2BIT  35,(ERR ON KB MODULE     ),I4A+I4S 
          S2BIT  35,(PP MEM DATA-OUT ERR  ),S1+I2 
          S2BIT  36,(ADU ERR              ),S1
          S2BIT  36,(ERR ON 7VG0 MODULE   ),S2
          S2BIT  36,(ERR ON JC MODULE     ),I4A+I4S 
          S2BIT  37,(12/16 CONVERSION ERR ),S2
          S2BIT  37,(ERR ON JD MODULE     ),I4A+I4S 
          S2BIT  38,(ERR ON JE MODULE     ),I4A+I4S 
          S2BIT  38,(PP MEM ADDR ERR      ),S1+I2 
          S2BIT  39,(ERR ON JF MODULE     ),I4A+I4S 
          S2BIT  39,(PP MEM DATA-IN ERR   ),S1+I2 
          S2BIT  40,(NIO BARREL 0 SECDED  ),I4A+I4S 
          S2BIT  41,(NIO BARREL 1 SECDED  ),I4A+I4S 
          S2BIT  42,(NIO BARREL 2 SECDED  ),I4A+I4S 
          S2BIT  43,(NIO BARREL 3 SECDED  ),I4A 
          S2BIT  43,(CIO BARREL 0 SECDED  ),I4S 
          S2BIT  44,(12/16 CONVERSION ERR ),I4A+I4S 
          S2BIT  45,(OS BOUNDS VIOLATION  ) 
          S2BIT  46,(OS BOUNDS ADDR PARITY ERR) 
          S2BIT  47,(ADU BARREL PARITY ERR),S2
          S2BIT  47,(FIRMWARE ERR         ),I4A+I4S 
          S2BIT  48,(CM READ BUFFER ERR   ),S2
          S2BIT  48,(RESPONSE CODE ERROR  ),I4A+I4S 
          S2BIT  49,(UNCORRECTED CM READ ERR) 
          S2BIT  50,(UNCORRECTED CM WRITE ERR)
          S2BIT  51,(CM REJECT            ) 
          S2BIT  52,(OUTPUT CM TAG ERR    ),S1
          S2BIT  52,(INPUT CM TAG ERR     ),S2
          S2BIT  52,(DATA IN ERR - CMI/ADU),I4A+I4S 
          S2BIT  53,(TAG IN ERR - CMI/ADU ),I4A+I4S 
          S2BIT  53,(CM RESPONSE CODE ERR ),S1+I2 
          S2BIT  54,(CM DATA-IN ERR       ),S1
          S2BIT  54,(CM DATA-OUT ERR      ),S2
          S2BIT  54,(DATA-OUT ERR - CMI/ADU),I4A+I4S
          S2BIT  55,(CM ADDRESS-OUT ERR   ),S2
          S2BIT  55,(ADDR/FUNC ERR - CMI/ADU),I4A+I4S 
          S2BIT  56,(TAG OUT ERR - CMI/ADU),I4A+I4S 
          S2BIT  56,(CM DATA-IN ERR BYTE 0),S1+I2 
          S2BIT  57,(CMI ERR - JJ MODULE  ),I4A 
          S2BIT  57,(CMI ERR - FJ MODULE  ),I4S 
          S2BIT  57,(CM DATA-IN ERR BYTE 1),S1+I2 
          S2BIT  58,(CMI ERR - JJ MODULE  ),I4A 
          S2BIT  58,(CMI ERR - FJ MODULE  ),I4S 
          S2BIT  58,(CM DATA-IN ERR BYTE 2),S1+I2 
          S2BIT  59,(CMI ERR - JG MODULE  ),I4A 
          S2BIT  59,(CMI ERR - FG MODULE  ),I4S 
          S2BIT  59,(CM DATA-IN ERR BYTE 3),S1+I2 
          S2BIT  60,(CMI ERR - JH MODULE  ),I4A 
          S2BIT  60,(CMI ERR - FH MODULE  ),I4S 
          S2BIT  60,(CM DATA-IN ERR BYTE 4),S1+I2 
          S2BIT  61,(CMI ERR - JH MODULE  ),I4A 
          S2BIT  61,(CMI ERR - FH MODULE  ),I4S 
          S2BIT  61,(CM DATA-IN ERR BYTE 5),S1+I2 
          S2BIT  62,(CMI ERR - JH MODULE  ),I4A 
          S2BIT  62,(CMI ERR - FH MODULE  ),I4S 
          S2BIT  62,(CM DATA-IN ERR BYTE 6),S1+I2 
          S2BIT  63,(CMI ERR - JH MODULE  ),I4A 
          S2BIT  63,(CMI ERR - FH MODULE  ),I4S 
          S2BIT  63,(CM DATA-IN ERR BYTE 7),S1+I2 
          CON    0
  
*         REG *IFS2* (FAULT STATUS 2) BIT INTERPRETATIONS.
* 
*         DESCRIPTOR FORMAT - 
* 
*T        9/ BIT NUMBER,17/ 0,17/ 0,17/ DESCRIPTOR PTR
  
 IMRD     BSS    0
          S2BIT  32,(CHAN 07 ERR  ) 
          S2BIT  33,(CHAN 06 ERR  ) 
          S2BIT  34,(CHAN 05 ERR  ) 
          S2BIT  35,(CHAN 04 ERR  ) 
          S2BIT  36,(CHAN 03 ERR  ) 
          S2BIT  37,(CHAN 02 ERR  ) 
          S2BIT  38,(CHAN 01 ERR  ) 
          S2BIT  39,(CHAN 00 ERR  ) 
          S2BIT  40,(CHAN 17 ERR  ) 
          S2BIT  42,(CHAN 15 ERR  ) 
          S2BIT  44,(CHAN 13 ERR  ) 
          S2BIT  45,(CHAN 12 ERR  ) 
          S2BIT  46,(CHAN 11 ERR  ) 
          S2BIT  47,(CHAN 10 ERR  ) 
          S2BIT  48,(CHAN 27 ERR  ),S1+I2+I4A 
          S2BIT  49,(CHAN 26 ERR  ),S1+I2+I4A 
          S2BIT  50,(CHAN 25 ERR  ),S1+I2+I4A 
          S2BIT  51,(CHAN 24 ERR  ) 
          S2BIT  52,(CHAN 23 ERR  ) 
          S2BIT  53,(CHAN 22 ERR  ) 
          S2BIT  54,(CHAN 21 ERR  ) 
          S2BIT  55,(CHAN 20 ERR  ) 
          S2BIT  57,(RADIAL INTERFACE 5/6 ERR),S2 
          S2BIT  58,(RADIAL INTERFACE 3/4 ERR),S2 
          S2BIT  59,(RADIAL INTERFACE 1/2 ERR),S2 
          S2BIT  59,(RADIAL INTERFACE 2/3 ERR),S1 
          S2BIT  60,(CHAN 33 ERR  ),S1+I2+I4A 
          S2BIT  60,(CIO CHAN 03 ERR  ),I4S 
          S2BIT  61,(CHAN 32 ERR  ),S1+I2+I4A 
          S2BIT  61,(CIO CHAN 02 ERR  ),I4S 
          S2BIT  62,(CHAN 31 ERR  ),S1+I2+I4A 
          S2BIT  62,(CIO CHAN 01 ERR  ),I4S 
          S2BIT  63,(CHAN 30 ERR  ),S1+I2+I4A 
          S2BIT  63,(CIO CHAN 00 ERR  ),I4S 
          CON    0
 JC       SPACE  4,5
***       JC. 
* 
*         DUMP JOB CONTROL AREA FOR EACH SERVICE CLASS.  EACH WORD IS 
*         PRINTED WITH ITS SYSTEXT SYMBOL AND IS SPLIT INTO THE 
*         APPROPRIATE PARAMETER FIELDS. 
*         THE FIRST JOB CONTROL BLOCK CONTAINS THE SERVICE CLASS
*         CONTROL AREA *SCT*.  THIS AREA IS DUMPED. 
  
  
 JC       DATA   0LJC 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     SCM         SELECT CENTRAL MEMORY
          SA7    RI 
          SX6    JCBE        PRESET JOB CONTROL AREA INDEX FOR JCB 1
          SA6    JCPA 
          SX6    B0+         PRESET (SERVICE CLASS - 1) FOR JCB 1 
          SA6    JCPC 
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE CARD
          SA1    F.TCMT 
          SA2    X1+JBCP
          LX2    24 
          SX6    X2          FWA JOB CONTROL AREA 
          SA6    JCPB        SAVE FWA OF JOB CONTROL AREA 
          SX3    X6 
          RJ     PCM         POSITION TO CM WORD
          GETCM  BUF,MXJC*JCBE
  
*         DISPLAY THE FIRST JOB CONTROL BLOCK WHICH CONTAINS THE
*         SERVICE CLASS CONTROL TABLE.
  
          SX1    14D
          RJ     CPS         CHECK PAGE SPACE 
          PRINT  (=C*      SERVICE CLASS CONTROL TABLE*)
          PRINT  (=2C  )
          SA1    JCPB        FWA OF JOB CONTROL AREA
          BX2    -X1
          SB2    X2+BUF      SET CORE ADDRESS OF TABLE DATA 
          BX6    X1 
          SA6    FW          SET PRINT ADDRESS
          SA1    TSCT        FORMAT TABLE POINTERS
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
          PRINT  (=2C  )
          PRINT  (=C*          JOB CONTROL AREA BY SERVICE CLASS*)
  
*         DISPLAY JOB CONTROL BLOCKS ASSOCIATED WITH A SERVICE CLASS. 
  
 JCP1     SX1    23D
          RJ     CPS         CHECK PAGE SPACE 
          PRINT  (=2C  )
          SB7    PRBF 
          SA5    JCPC        SERVICE CLASS NUMBER - 1 
          SX6    X5+B1
          SA6    A5          INCREMENT SERVICE CLASS
          SA2    X5+SCNT     TABLE OF SERVICE CLASS NAMES 
          SB6    10 
          RJ     UPS         STORE IN PRINT STRING
          PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
          SA1    JCPB        FWA OF JOB CONTROL AREA
          BX2    -X1
          SA5    JCPA        JOB CONTROL AREA INDEX 
          SB2    X2+BUF      SET CORE ADDRESS OF TABLE DATA 
          IX6    X1+X5
          SA6    FW          SET PRINT ADDRESS
          SA1    TFJC        FORMAT TABLE POINTERS
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
          SA1    JCPA 
          SX6    X1+JCBE
          SA6    A1          INCREMENT JOB CONTROL AREA INDEX 
          SX3    X6-MXJC*JCBE 
          NZ     X3,JCP1     IF MORE TO DUMP
          JP     DSD1        RETURN 
  
  
 JCPA     BSS    1           JOB CONTROL AREA INDEX 
 JCPB     BSS    1           FWA OF JOB CONTROL AREA
 JCPC     BSS    1           SERVICE CLASS - 1
 LC       SPACE  4,4
***       LC. 
* 
*         DUMP LOW CORE.  EACH WORD IS PRINTED WITH ITS SYSTEXT SYMBOL
*         AND IS SPLIT INTO THE APPROPRIATE PARAMETER FIELDS. 
  
  
 LC       DATA   0LLC 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     SCM         SELECT CENTRAL MEMORY
          SA7    RI 
          SX6    0
          SA6    FW          SET PRINT ADDRESS
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE CARD
          SX3    0
          RJ     PCM         POSITION TO START OF CM
          GETCM  BUF,CPAS 
          SB2    BUF         SET CORE ADDRESS OF TABLE DATA 
          SA1    TFLC        FORMAT TABLE POINTERS
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
          JP     DSD1        RETURN 
 LDIS     SPACE  4,10 
***       LDIS. 
* 
*         DUMP THE *L* DISPLAY BUFFERS IN *C* FORMAT. 
  
  
 LDIS     DATA   0LLDIS 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+LDSP     SET DUMP FWA 
          AX2    12 
          SX6    X2 
          SX7    X6+1+LCOM+LDSY+2+2+1  SET DUMP LWA+1 
          SB3    B0          SET *C* FORMAT 
          SX4    B0          SET READ FROM DUMP FILE
          SX5    =C*           L-DISPLAY BUFFERS* 
          RJ     DTB         DUMP BUFFERS 
          EQ     DSD1        RETURN 
          SPACE  4,10 
***       LIDT. 
* 
*         DUMP LOGICAL ID TABLE IN *D* FORMAT.
  
  
 LIDT     DATA   0LLIDT 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+LIDP     GET LID TABLE FWA
          MX0    -18
          LX2    24 
          BX5    -X0*X2 
          BX3    X5 
          RJ     PCM         POSITION DUMP TO LID TABLE 
          GETCM              GET LID TABLE HEADER 
          MX0    -12         GET USABLE LENGTH OF LID TABLE 
          LX6    12 
          BX2    -X0*X6 
          IX7    X5+X2       COMPUTE LWA+1 OF LID TABLE 
          SB3    B1          SET *D* FORMAT 
          BX6    X5          MOVE FWA 
          SX4    B0          SET TO READ FROM DUMP FILE 
          SX5    =C*          LOGICAL ID TABLE* 
          RJ     DTB         DUMP LID TABLE 
          EQ     DSD1        RETURN 
  
 LPVA     SPACE  4,10 
***       LPVA,ADDRESS. 
* 
*         LOAD PVA FROM MEMORY AT THE ADDRESS SPECIFIED.
  
  
 LPVA     DATA   C*LPVA*
  
          RJ     GHA         GET HARDWARE ADDRESS 
          ZR     B6,ERR6     IF NO ADDRESS SPECIFIED
          SA6    BRMA        SAVE SVA 
          RJ     ASX         GET HEX NUMBER 
          ZR     B6,LPV1     IF NO VALUE SPECIFIED
          NZ     X4,ERR6     IF NOT VALID HEX NUMBER
 LPV1     SA1    BRMA        FETCH SVA
          IX1    X1+X6       ADD OFFSET TO SVA
          RJ     FRV         FETCH REGISTER VALUE 
          NZ     X2,ERR30    IF PAGE IS MISSING 
          SA6    S2PVA       VALUE OF PVA 
          SA2    =13HLOADED PVA 
          SB6    13 
          SB7    PRBF 
          RJ     UPS         UNPACK STRING
          SA1    S2PVA
          LX1    59-47
          SB6    12 
          RJ     HTS         HEX TRANSLATION OF PVA 
          PRINT  CCCH,B7-CCCH  *LOADED PVA = RSSSBBBBBBBB*
          JP     DSD1        END OF COMMAND 
 MAGNET   SPACE  4,23 
***       MAG,OPS.
*         MAGNET,OPS. 
* 
*         WHERE OPS IS A STRING OF UP TO 5 CHARACTERS SELECTING 
*         VARIOUS DUMP OPTIONS AS FOLLOWS-
* 
*         P      ALL COPIES OF 1MT ARE ANALYZED.
* 
*         Q      THE MAGNET QUEUE TABLE IS PRINTED IN BYTE FORMAT WITH
*                DISPLAY CODE INTERPRETATION.  EACH LINE OF TWO WORDS 
*                ALSO SHOWS THE ORDINAL WITHIN THE TABLE. 
* 
*         S      THE ACTIVE STAGING JOB TABLE, STAGING VSN TABLE, AND 
*                STAGE REQUEST TABLE ARE PRINTED IN BYTE FORMAT WITH
*                DISPLAY CODE INTERPRETATION. 
* 
*         U      EACH OF THE MAGNET UNIT DESCRIPTOR TABLES ARE ANALYZED 
*                WITH ASSOCIATED FET, EST, AND FNT/FST.  EACH WORD OF 
*                THE UDT IS PRINTED WITH ITS SYMBOL AND IS SPLIT INTO 
*                THE APPROPRIATE PARAMETER FIELDS WITH DESCRIPTION.  IF 
*                EXTENDED LABELS ARE PRESENT, THEY ARE PRINTED WITH THE 
*                FET.  THE FET INDICATES THE ADDRESS AND CONTROL POINT
*                NUMBER OF THE USER.
* 
* 
*         MAGNET. OR MAG. 
* 
*         IS EQUIVALENT TO *MAGNET,UAQSP.*. 
  
  
 MAGNET   DATA   0LMAGNET 
          EQ     MAG1        PROCESS LIKE *MAG* DIRECTIVE 
  
 MAG      DATA   0LMAG
  
 MAG1     SA5    MAGA 
          RJ     ISS         INITIALIZE FOR SUB-SYSTEM DUMP 
          GETCM  SSBF,/MTX/TVSP+1  READ MAGNET POINTERS 
          SA5    MAGB 
          RJ     DSS         DUMP MAGNET SUB-SYSTEM 
          JP     DSD1        RETURN 
  
 MAGA     VFD    24/0,12/MTSI,24/0
  
 MAGB     VFD    60/0LUQSP
          VFD    36/0,6/1RP,18/DMP
          VFD    36/0,6/1RS,18/DMS
          VFD    36/0,6/1RQ,18/DMQ
          VFD    36/0,6/1RU,18/DMU
          VFD    60/0 
 MAINLOG  SPACE  4,10 
***       MAINLOG.
* 
*         DUMP THE BINARY MAINTENANCE LOG IN *E* FORMAT.
  
  
 MAINLOG  DATA   0LMAINLOG
  
          SX7    -3          SET CONTROL POINT
          EQ     ACN1        USE DAYFILE DUMP CODE
 MCT      SPACE  4,10 
***       MCT.
* 
*         DISPLAY THE MEMORY CONTROL TABLE (MCT). 
* 
*         EACH MCT ENTRY IS DISPLAYED ALONG WITH THE RA, FL, RAE, AND 
*         FLE FROM THE CORRESPONDING CPA OR PCPA. 
  
  
 MCT      DATA   0LMCT
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     LDC         LIST DIRECTIVE 
          RJ     SCM         SET CENTRAL MEMORY 
          SA7    RI 
          SA1    F.TCMT 
          SA3    X1+MCTP
          AX3    36 
          BX6    X6-X6       INITIALIZE PCPA OFFSET 
          SA6    OP 
          RJ     PCM         POSITION TO MCT
          SA2    ME          NUMBER OF MCT ENTRIES
          LX2    1
          SX6    -B1         INITIALIZE CP/PCP NUMBER 
          SA6    CN 
          GETCM  BUF,X2      READ IN MCT
          PRINT  (=2C  )
          PRINT  (=C*        PREVIOUS    NEXT    UNASSIGNED        RA 
,     FL     NFL    RECOVERY*)
          PRINT  (=C*         CP/PCP    CP/PCP     MEMORY 
,                  INFORMATION*)
 MCT1     RJ     SSB         CLEAR STRING BUFFER
          PRINT  (=C  ) 
          SA5    CN 
          SA3    ME 
          SX5    X5+B1
          IX3    X5-X3
          PL     X3,DSD1     IF FINISHED
          SA3    NC 
          SX3    X3+2 
          BX6    X5 
          IX4    X5-X3
          NZ     X4,MCT2     IF NOT AT FIRST PCP
          SA1    F.TCMT      SET PCPA FWA OFFSET
          SA1    X1+PCPP
          SX1    X1 
          LX3    7
          IX7    X1-X3
          SA7    OP 
 MCT2     SA6    A5 
          NZ     X5,MCT3     IF NOT CMR 
          BX2    X2-X2
          SA1    MCTA 
          EQ     MCT4        PRINT MCT HEADER 
  
 MCT3     BX2    X5          CONVERT CP/PCP NUMBER
          SX1    707B 
          LX2    3
          BX2    X2+X5
          BX2    X2*X1
          SA1    MCTB 
          LX2    35-11
          NG     X4,MCT4     IF CP
          SA1    A1+B1
 MCT4     IX2    X1+X2
          LX5    1
          SB6    6
          SB7    PRBF 
          RJ     UPS         UNPACK STRING
 MCT5     SA1    X5+BUF      GET NEXT MCT WORD
          SB6    4
          SB7    B7+3 
          RJ     CTS         DISPLAY PREVIOUS CP/PCP
          SB6    4
          SB7    B7+6 
          RJ     CTS         DISPLAY NEXT CP/PCP
          LX1    12 
          SB6    8
          SB7    B7+5 
          RJ     CTS         DISPLAY UNASSIGNED CM/EM 
          AX1    X5,B1
          SA2    OP          ADD PCP OFFSET 
          LX1    7
          IX4    X1+X2
          SX3    X4+FLSW
          LX5    59-0 
          PL     X5,MCT6     IF CM WORD OF MCT ENTRY
          SX3    X4+ECSW
 MCT6     SA1    F.TCMT 
          IX1    X1+X3
          SA1    X1 
          LX1    59-35
          SB6    8
          SB7    PRBF+42
          RJ     CTS         DISPLAY RA/RAE 
          SB6    4
          SB7    B7+4 
          RJ     CTS         DISPLAY FL/FLE 
          SB6    4
          SB7    B7+4 
          RJ     CTS         DISPLAY NFL/NFLE 
          SX3    X4+6 
          SA1    F.TCMT 
          IX1    X1+X3
          SA1    X1 
          PL     X5,MCT6.1   IF CM WORD OF MCT ENTRY
          LX1    59-47
 MCT6.1   SB6    4
          SB7    B7+4 
          RJ     CTS         DISPLAY MCT RECOVERY BYTE
          PRINT  CCCH,B7-CCCH 
          NG     X5,MCT1     IF THROUGH WITH ENTRY
          RJ     SSB         CLEAR STRING BUFFER
          SB7    PRBF+6 
          LX5    0-59 
          SX5    X5+B1
          EQ     MCT5        PRINT EM WORD OF MCT ENTRY 
  
  
 MCTA     DATA   6L CMR 
 MCTB     DATA   6L CP 00 
          DATA   6LPCP 00 
 MEMMR    SPACE  4,20 
***       MEMMR.
*         SPECIFIES THAT ALL MEMORY MAINTENANCE REGISTERS 
*         SHOULD BE DUMPED. 
* 
*         MEMMR,FIRST,LAST. 
* 
*         FIRST  SPECIFIES THE FIRST REGISTER (HEX) TO BE DUMPED. 
*                IF OMITTED, REGISTER 00 IS USED BY DEFAULT.
* 
*         LAST   SPECIFIES THE LAST PLUS ONE REGISTER (HEX) TO BE 
*                DUMPED.  IF OMITTED, FIRST+1 IS USED BY DEFAULT. 
* 
*         THE *MEMMR* DIRECTIVE CAUSES THE MEMORY MAINTENANCE 
*         REGISTERS TO BE DUMPED.  FOR EACH REGISTER, THE REGISTER
*         NUMBER, REGISTER CONTENTS, AND REGISTER DESCRIPTION 
*         ARE PRINTED.  FOR REGISTERS CONTAINING ERROR
*         INDICATORS, DESCRIPTIONS OF ERROR INDICATORS
*         SET ARE PRINTED.
  
  
 MEMMR    DATA   0LMEMMR
  
          SA1    .MMR        FETCH MEMORY MAINTENANCE REGISTERS RECORD
          RJ     RDR
          ZR     X2,ERR14    IF RECORD NOT FOUND
          SX5    /IOU/OIMR   OPTIONS INSTALLED REGISTER 
          RJ     SFR
          NG     X1,ERR14    IF REGISTER NOT FOUND
          LX7    8
          PL     X7,MMR1     IF BIT 12 OF *OIMR* NOT SET
          SA1    MMRP        CHANGE ADDRESS OF BIT DESCRIPTOR TABLE 
          BX7    X1 
          SA7    MMRO 
 MMR1     SA1    .MMR        RECORD ID
          SX7    MMRA        DESCRIPTOR TABLE ADDRESS 
          RJ     DMR         DUMP MAINTENANCE REGISTERS 
          EQ     DSD1        RETURN TO PROCESS NEXT DIRECTIVE 
  
  
*         DESCRIPTOR FORMAT - 
* 
*T        9/ REGISTER,17/ MVP,17/ BDTA,17/ DESCRIPTOR PTR 
* 
*                BDTA = BIT DESCRIPTOR TABLE ADDRESS. 
*                     = 0, IF NO TABLE. 
*                MVP  = MAP OF VALID PROCESSORS.
  
 MMRA     BSS    0
          SXREG    SSMR,(STATUS SUMMARY    ),MMRB 
          SXREG    EIMR,(ELEMENT ID        )
 MMRO     SXREG    OIMR,(OPTIONS INSTALLED ),MMRC 
          SXREG    ECMR,(ENVIRON CONTROL   ),MMRF,S1
          SXREG    ECMR,(ENVIRON CONTROL   ),MMRE,S2+S3+THETA 
          SXREG    MBRG,(BOUNDS REG        )
          SXREG    MCEL,(CORR ERR LOG      ),,S1+S2+S3
          SXREG    MCEL,(CORR ERRLOG REG 0 ),,THETA 
          SXREG  MCEL+1,(CORR ERRLOG REG 1 ),,THETA 
          SXREG  MCEL+2,(CORR ERRLOG REG 2 ),,THETA 
          SXREG  MCEL+3,(CORR ERRLOG REG 3 ),,THETA 
          SXREG    MUL1,(UNCORR ERR LOG 1  ),,S1+S2+S3
          SXREG    MUL1,(UNCOR ERRLOG REG 0),,THETA 
          SXREG  MUL1+1,(UNCOR ERRLOG REG 1),,THETA 
          SXREG  MUL1+2,(UNCOR ERRLOG REG 2),,THETA 
          SXREG  MUL1+3,(UNCOR ERRLOG REG 3),,THETA 
          SXREG    MUL2,(UNCORR ERR LOG 2  ),,S1+S2+S3
          SXREG    MFRC,(FREE RUN COUNTER  )
          CON    0
  
 MMRP     SXREG    OIMR,(OPTIONS INSTALLED ),MMRD 
  
*         REGISTER *SSMR* (STATUS SUMMARY) BIT INTERPRETATIONS. 
* 
*         DESCRIPTOR FORMAT - 
* 
*T        9/ BIT NO.,17/ 0,17/ 0,17/ DESCRIPTOR PTR 
  
 MMRB     BSS    0
          S2BIT  58,(CLOCK TUNING MODE    ) 
          S2BIT  61,(UNCORRECTED ERROR    ) 
          S2BIT  62,(CORRECTED ERROR      ) 
          S2BIT  63,(PHYS ENVIRON WARN    ) 
          CON    0
  
*         REGISTER *OIMR* (OPTIONS INSTALLED) BIT INTERPRETATIONS.
  
 MMRC     BSS    0
          S2BIT   0,(1 MEGABYTE MEMORY    ) 
          S2BIT   1,(2 MEGABYTE MEMORY    ) 
          S2BIT   2,(3 MEGABYTE MEMORY    ) 
          S2BIT   3,(4 MEGABYTE MEMORY    ) 
          S2BIT   4,(5 MEGABYTE MEMORY    ) 
          S2BIT   5,(6 MEGABYTE MEMROY    ) 
          S2BIT   6,(7 MEGABYTE MEMORY    ) 
          S2BIT   7,(8 MEGABYTE MEMORY    ) 
          S2BIT   8,(10 MEGABYTE MEMORY   ) 
          S2BIT   9,(12 MEGABYTE MEMORY   ) 
          S2BIT  10,(14 MEGABYTE MEMORY   ) 
          S2BIT  11,(16 MEGABYTE MEMORY   ) 
          S2BIT  16,(MEMORY RECONFIGURED  ) 
          S2BIT  17,(SW 1 NOT AT CENTER   ) 
          S2BIT  18,(SW 2 NOT AT CENTER   ) 
          S2BIT  19,(SW 3 NOT AT CENTER   ) 
          S2BIT  20,(SW 4 NOT AT CENTER   ) 
          S2BIT  21,(SW 5 NOT AT CENTER   ) 
          S2BIT  22,(SW 6 NOT AT CENTER   ) 
          CON    0
  
*         REGISTER *OIMR* (OPTIONS INSTALLED) BIT INTERPRETATIONS 
*         FOR LARGE MEMORY SYSTEMS. 
  
 MMRD     BSS    0
          S2BIT   0,(2048 MEGABYTE MEMORY ) 
          S2BIT   1,(1024 MEGABYTE MEMORY ) 
          S2BIT   2,(512 MEGABYTE MEMORY  ) 
          S2BIT   3,(256 MEGABYTE MEMORY  ) 
          S2BIT   4,(128 MEGABYTE MEMORY  ) 
          S2BIT   5,(64 MEGABYTE MEMROY   ) 
          S2BIT   6,(32 MEGABYTE MEMORY   ) 
          S2BIT   7,(16 MEGABYTE MEMORY   ) 
          S2BIT   8,(8 MEGABYTE MEMORY    ) 
          S2BIT   9,(4 MEGABYTE MEMORY    ) 
          S2BIT  10,(2 MEGABYTE MEMORY    ) 
          S2BIT  11,(1 MEGABYTE MEMORY    ) 
          S2BIT  16,(MEMORY RECONFIGURED  ) 
          S2BIT  17,(SW 1 NOT AT CENTER   ) 
          S2BIT  18,(SW 2 NOT AT CENTER   ) 
          S2BIT  19,(SW 3 NOT AT CENTER   ) 
          S2BIT  20,(SW 4 NOT AT CENTER   ) 
          S2BIT  21,(SW 5 NOT AT CENTER   ) 
          S2BIT  22,(SW 6 NOT AT CENTER   ) 
          CON    0
  
*         REGISTER *ECMR* (ENVIRONMENTAL CONTROL) - CYBER 835 - 990.
  
 MMRE     BSS    0
          S2BIT   0,(DISABLE PARITY CHECK ) 
          S2BIT   1,(DISABLE SEC/DED      ) 
          S2BIT   2,(ENABLE NONINTLVE MODE) 
          S2BIT   5,(TIMING MARGINS WIDE  ),S2+S3 
          S2BIT   5,(FORCE TO CORR ERR LOG),THETA 
          S2BIT   6,(TIMING MARGINS NARROW),S2+S3 
          S2BIT  32,(DISABLE PORT 0       ) 
          S2BIT  33,(DISABLE PORT 1       ) 
          S2BIT  34,(DISABLE PORT 2       ) 
          S2BIT  35,(DISABLE PORT 3       ) 
          S2BIT  38,(DISABLE CORR ERR RESP) 
          S2BIT  39,(DISABLE SNGL BIT ERR)
          CON    0
  
*         REGISTER *ECMR* (ENVIRONMENTAL CONTROL) - CYBER 810 - 830.
  
 MMRF     BSS    0
          S2BIT   0,(ENABLE PARITY CHECK  ) 
          S2BIT   1,(DISABLE SEC/DED      ) 
          S2BIT   2,(ENABLE NONINTLVE MODE) 
          S2BIT   9,(DISABLE M PORT       ) 
          S2BIT  10,(DISABLE 40/41        ) 
          S2BIT  11,(DISABLE CPU PORT     ) 
          S2BIT  12,(DISABLE IOU PORT     ) 
          S2BIT  13,(DISABLE P PORT       ) 
          S2BIT  38,(DISABLE CORR ERR RESP) 
          S2BIT  39,(DISABLE CORR ERR LOG ) 
          CON    0
 MPP      SPACE  4,20 
***       MPP.
*         MOVE ALL PP-S TO THE OTHER BANK.
* 
*         MPP,N1. 
*         MOVE ONLY PP00 TO PPN1. 
* 
*         THE LOGICAL POSITION OF PP00 HAS BEEN CHANGED PRIOR TO THE
*         FULL DUMP TO TAPE.  IF THE PPS-0/PPS-1 (PPU-A) TOGGLE SWITCH
*         HAS BEEN TOGGLED, *MPP* SHOULD BE SPECIFIED.  WHEN THE
*         SYSTEM HAS ONLY 10 PP-S, OR A CYBER 170 SYSTEM HAS .LT. 20
*         PP-S, *MPP* HAS NO MEANING.  IF PP00 HAS BEEN MOVED TO
*         ANOTHER PP VIA A DEADSTART PANEL PROGRAM, *MPP,N1* SHOULD 
*         BE SPECIFIED.  IF N1 IS SPECIFIED WITH VALUE 0, THE 
*         DIRECTIVE HAS NO MEANING.  CORRECT SPECIFICATION OF EITHER
*         FORM OF THIS DIRECTIVE CAUSES THE CORRECT LOGICAL PP TO BE
*         DUMPED WHEN A SWITCH HAS BEEN MADE. 
  
  
 MPP      DATA   0LMPP
  
*         GET INITIAL TABLE ENTRY.
  
          SA1    .NPP        FIND TABLE ENTRY FOR FIRST PP
          MX0    24 
          SEARCH TDIR,X1,X0  FIND PP00 TABLE ENTRY
          ZR     X2,ERR7     IF NOT FOUND 
          SX6    A2+         SAVE TABLE ENTRY ADDRESS 
          SA6    PI 
  
*         CHECK FOR LEGAL DIRECTIVE.
  
          SA1    CH 
          SA1    X1+
          SX1    X1-1R. 
          NZ     X1,MPP3     IF PP NUMBER ON DIRECTIVE CARD 
          SA2    F.TCMT 
          SA4    AC          CHECK NUMBER OF PP-S IN SYSTEM 
          SX7    X4-11
          NG     X7,ERR25    IF ONLY 10 PP-S
          SX6    X4-20
          ZR     X6,MPP1     IF 20 PP SYSTEM
          SA3    AP 
          ZR     X3,ERR25    IF CYBER 170 WITH .LT. 20 PP-S 
  
*         SWITCH UPPER AND LOWER BANKS. 
  
 MPP1     SA5    PI          SET INITIAL TABLE ENTRY ADDRESS
          SB2    B0          INITIALIZE ENTRY INDICIES
          SB3    X4 
          AX4    B1 
          SB4    X4+
          SB7    X5+B3
 MPP2     SB5    B2+B2       SWITCH BANKS OF PP-S 
          SX2    X5+B5
          SA2    X2+B1
          SA3    A2+B3
          BX6    X2 
          BX7    X3 
          SA6    A3 
          SA7    A2 
          SA2    TLPP+B2     SWITCH LOGICAL PP NUMBERS IN BANKS 
          SA3    A2+B4
          BX6    X2 
          BX7    X3 
          SA6    A3 
          SA7    A2 
          SB2    B2+B1       INCREMENT ENTRY INDEX
          SB6    B2-12B 
          NZ     B6,MPP2     IF MORE TO SWITCH
          EQ     DSD1        PROCESS NEXT DIRECTIVE 
  
*         PROCESS MOVE OF PP00 ONLY.
  
 MPP3     SB7    B0          ASSEMBLE PP NUMBER 
          RJ     ASD
          NZ     X4,ERR6     IF ERROR 
          ZR     X6,ERR25    IF MOVING PP00 TO PP00 
          SA2    NP          CHECK IF VALID PP NUMBER 
          SX2    X2+6 
          SX7    X6-12B 
          NG     X7,MPP4     IF IN LOWER BANK 
          SX7    X6-20B 
          NG     X7,ERR6     IF INCORRECT PP NUMBER 
          IX1    X6-X2
          PL     X1,ERR6     IF PP NUMBER .GT. NUMBER OF PP-S 
          SX6    X6-6        SET INDEX
 MPP4     LX7    X6,B1       FIND TABLE ENTRY FOR LOGICAL PP
          SA5    PI 
          IX7    X5+X7
          SA2    X7+1        SET ENTRY INDEX FOR PP00 
          SA1    TLPP+X6     SET LOGICAL PP00 NUMBER IN PP TABLE
          BX7    X2 
          SA7    X5+1 
          BX6    X1 
          SA6    TLPP 
          EQ     DSD1        PROCESS NEXT DIRECTIVE 
 MST      SPACE  4,8
***       MST.
*         DUMP ALL MASS STORAGE TABLES. 
* 
*         MST,E1,E2,...,EN. 
*         DUMP SELECTED EQUIPMENT MASS STORAGE TABLES.
* 
*         DUMP MASS STORAGE AND TRACK RESERVATION TABLES.  FOR SHARED 
*         BUFFERED I/O DEVICES, ALSO DUMP BUFFER STATUS TABLES.  EACH 
*         WORD OF EACH MST IS PRINTED WITH ITS SYSTEXT SYMBOL AND IS
*         SPLIT INTO THE APPROPRIATE PARAMETER FIELDS.  EACH WORD OF
*         EACH TRT INDICATES ITS LINKAGE BYTE ORDINAL, BYTE FORMAT OF 
*         THE WORD, TRACK BITS(3 GROUPS OF 4 BITS), AND DISPLAY CODE
*         INTERPRETATION.  EACH BST WORD DISPLAYS THE BUFFER ORDINAL, 
*         BYTE FORMAT AND DISPLAY CODE INTERPRETATION OF THE WORD.
  
  
 MST      DATA   0LMST
  
          MX6    0
          SA6    PI          PRESET TO SELECT EQUIPMENT FROM CARD 
          SA1    CH 
          SA1    X1+
          SX1    X1-1R. 
          NZ     X1,MST1     IF EST ORDINALS ON DIRECTIVE CARD
          SX7    NOPE        INITIALIZE EST ORDINAL FOR SEARCH
          SA7    PI          PRESET EST SEARCH POINTER
 MST1     RJ     SCM         SELECT CENTRAL MEMORY
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE CARD
 MST2     RJ     SMT         SELECT NEXT UNIT TO DUMP 
          ZR     X6,DSD1     IF NO MORE TO DUMP 
          RJ     //MST       DUMP MASS STORAGE TABLE
          RJ     TRT         DUMP TRACK RESERVATION TABLE 
          RJ     MRT         DUMP MACHINE RECOVERY TABLE
          RJ     BST         DUMP BUFFER STATUS TABLE 
          EQ     MST2        CONTINUE 
 MTR      SPACE  4,6
***       MTR.
* 
*         DUMP CPU MONITOR.  EXCHANGE PACKAGES WILL BE DUMPED IN
*         EXCHANGE PACKAGE FORMAT AND PROGRAM AREA WILL BE DUMPED 
*         IN INSTRUCTION PARCEL FORMAT WITH DISPLAY CODE
*         INTERPRETATION.  IF A CYBER 176, THE CPU DEADSTART AND
*         REAL TIME CLOCK EXCHANGE PACKAGES WILL ALSO BE DUMPED.
  
  
 MTR      DATA   0LMTR
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT      GET FWA CPUMTR 
          SA2    X1+CMTP
          SX6    X2+
          SA6    MTRC 
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     SCM         SELECT CENTRAL MEMORY
          SA1    F.TCMT 
          SA2    X1+RPLP     RESIDENT PP LIBRARY POINTER
          LX2    24 
          SX6    X2 
          SA1    BA 
          IX6    X6-X1
          MX7    0
          SA7    CPRA        SET FWA FOR DUMP 
          SA6    A7+1        SET LWA+1 = FWA OF RPL 
          SA7    CPRA+4      SET *C* FORMAT CODE
          SB2    CPRA 
          RJ     POM         POSITION DUMP FILE 
          RJ     LDC         LIST DIRECTIVE CARD
          SB2    CPRA 
          RJ     PMD         PROCESS DUMP 
  
*         PRINT *MTR* AND BREAKPOINT XP-S.
  
          SA1    CPRA 
          SX6    X1+CSXP
          SA6    A1+
          SB2    CPRA        REPOSITION TO RA OF *CPUMTR* 
          RJ     POM         POSITION DUMP FILE 
          GETCM  MTRB,2      READ WORD *CXBP* OF *CPUMTR* 
          SA1    MTRB+1      GET ADDRESS OF *MTR* XP
          SA2    MTRC 
          SX1    X1 
          IX6    X1-X2       RELATIVE ADDRESS OF *MTR* XP 
          SA6    CPRA 
          SB2    A6 
          RJ     POM         POSITION DUMP FILE 
          GETCM  BUF,BUFL    READ EXCHANGE PACKAGES TO CORE 
          SA1    PXMC 
          SB2    /EXPACS/MXP
          RJ     PXM         PRINT EXCHANGE PACKAGE 
  
*         PRINT CPU 0 IDLE XP.
  
          SA1    CPRA        SET LISTING ADDRESS
          SX6    X1-40B+/EXPACS/IXP 
          SA6    A1 
          SA1    PXMN 
          SX6    B1          SET ONE XP FLAG
          SB2    /EXPACS/IXP
          SA6    PXMM 
          RJ     PXM         PRINT EXCHANGE PACKAGE 
          PRINT  (=2C  )
          SA1    CPRA        PRINT THE 3 WORDS FOLLOWING THE XP 
          SX6    X1 
          BX1    -X1
          SA6    FW          SET LISTING ADDRESS
          SB2    X1+BUF+/EXPACS/IXP+20B  SET CORE ADDRESS 
          SA1    MTRD 
          RJ     GTD
  
*         PRINT CPU 1 IDLE XP.
  
          SA1    MTRB        GET ADDRESS OF IDLE 1 XP 
          SA2    MTRC 
          SB2    CPRA 
          SX1    X1 
          IX6    X1-X2
          SA6    B2+
          RJ     POM         POSITION DUMP FILE TO IDLE 1 
          GETCM  BUF,MXXT 
          SA1    BUF+DIXT    GET ADDRESS OF DUAL CPU XP FOR CPU 1 
          SA2    MTRC 
          SB2    CPRA 
          SX1    X1+
          IX6    X1-X2
          NG     X6,MTR1     IF ONLY ONE CPU
          SA6    B2 
          RJ     POM         POSITION DUMP FILE TO IDLE 1 
          GETCM  BUF,BUFL 
          SA1    PXMO 
          SX6    B1          SET ONE XP FLAG
          SB2    B0 
          SA6    PXMM 
          RJ     PXM         PRINT EXCHANGE PACKAGE 
          PRINT  (=2C  )
          SA1    CPRA        PRINT THE 3 WORDS FOLLOWING THE XP 
          SX6    X1 
          BX1    -X1
          SA6    FW          SET LISTING ADDRESS
          SB2    BUF+20B+X1  SET CORE ADDRESS 
          SA1    MTRD 
          RJ     GTD
  
*         PRINT PP EXCHANGE PACKAGES. 
  
 MTR1     SA1    MTRB+1      GET MTR XP ADDRESS 
          SA2    MTRC 
          SB2    CPRA 
          SX1    X1+/EXPACS/PXP 
          IX6    X1-X2
          SA6    B2 
          RJ     POM         POSITION DUMP FILE 
          GETCM  BUF,BUFL 
          RJ     PXP         PRINT PPU EXCHANGE PACKAGES
  
*         PRINT CYBER 176 EXCHANGE PACKAGES.
  
          SA1    CF 
          NZ     X1,DSD1     IF NOT CYBER 176 
          RJ     SEA         SET EXCHANGE ADDRESS 
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     SCM         SELECT CENTRAL MEMORY
          BX6    X6-X6       SET RELATIVE ADDRESS OF CYBER 176 PACKAGES 
          SA6    CPRA 
          SB2    A6 
          SX7    X6+40B 
          SA7    A6+1 
          RJ     POM         POSITION DUMP FILE 
          GETCM  BUF,BUFL    READ EXCHANGE PACKAGES TO CORE 
          SA1    PXMD        SET HEADER ADDRESS 
          SB2    B0+
          RJ     PXM         PRINT CYBER 176 EXCHANGE PACKAGES
          SA1    PXMF        SET HEADER ADDRESS 
          SB2    40B         SET *BUF* OFFSET 
          RJ     PXM         PRINT PACKAGES 
          SA1    F.TCMT 
          SA1    X1+BIOL
          AX1    24 
          SX1    X1 
          ZR     X1,DSD1     IF NO 819 DISKS IN SYSTEM
          SA1    PXMG        SET HEADER FOR CHANNEL 2 
          SB2    100B 
          RJ     PXM         PRINT CHANNEL 2 I/O PACKAGES 
          SA1    PXMH        SET HEADER FOR CHANNEL 3 
          SB2    140B 
          RJ     PXM         PRINT CHANNEL 3 I/O PACKAGES 
          SA1    PXMI        SET HEADER FOR CHANNEL 4 
          SB2    200B 
          RJ     PXM         PRINT CHANNEL 4 I/O PACKAGES 
          SA1    PXMJ        SET HEADER FOR CHANNEL 5 
          SB2    240B 
          RJ     PXM         PRINT CHANNEL 5 I/O PACKAGES 
          SA1    PXMK        SET HEADER FOR CHANNEL 6 
          SB2    300B 
          RJ     PXM         PRINT CHANNEL 6 I/O PACKAGES 
          SA1    PXML        SET HEADER FOR CHANNEL 7 
          SB2    340B 
          RJ     PXM         PRINT CHANNEL 7 I/O PACKAGES 
          EQ     DSD1        PROCESS NEXT DIRECTIVE 
  
 MTRA     CON    0           FWA OF PP EXCHANGE PACKAGES FROM LOW CORE
 MTRB     CON    0           WORD *CSXP* OF *CPUMTR* FL 
          CON    0           WORD *CXBP* OF *CPUMTR* FL 
 MTRC     CON    0           RA OF *CPUMTR* 
 MTRE     CON    0,1,2,3
  
 MTRD     VFD    24/0,18/MTRD1,18/MTRD2 
  
  
 MTRD1    BSS    0
          FIELD       MTRE+0,(STSW WORD                  ),59,60,I
          FIELD       MTRE+1,(CWQW WORD                  ),59,60,I
          FIELD       MTRE+2,(CSAW WORD                  ),59,60,I
          FIELD       MTRE+3,(CTMW WORD                  ),59,60,I
          CON    -1          END OF LEFT COLUMN 
  
 MTRD2    BSS    0
          CON    0           END OF RIGHT COLUMN
  
 MTRD3    EQU    *
          ERRNG  2*MTRD2-MTRD1-MTRD3  IF RIGHT COLUMN LONGER THAN LEFT
 MTRQU    SPACE  4,10 
***       MTRQUEUE. 
*         DUMP CPU REQUEST, PP REQUEST, CPUCIO REQUEST, 
*         AND RECALL QUEUES.
* 
*         MTRQUEUE,P1,P2. 
*         DUMP SELECTED QUEUES. 
  
  
 MTRQU    DATA   0LMTRQUEUE 
  
          BX6    X6-X6       CLEAR *C* FLAG 
          SA6    MTQB 
          SA1    CH          CHECK SEPARATOR
          SA1    X1+
          SX1    X1-1R. 
          ZR     X1,MTQ6     IF DUMPING ALL QUEUES
          SX6    0           CLEAR SELECTED OPTIONS 
          SA6    MTQA 
 MTQ1     RJ     ASN         GET NEXT PARAMETER 
          ZR     B6,MTQ7     IF NO MORE PARAMETERS
          AX1    X6,B6
          SX1    X1-1RC 
          ZR     X1,MTQ3     IF *C* SELECTED
          SX1    X1-1RP+1RC 
          ZR     X1,MTQ4     IF *P* SELECTED
          SX1    X1-1RR+1RP 
          ZR     X1,MTQ5     IF *R* SELECTED
          SX1    X1-1RW+1RR 
          NZ     X1,ERR6     IF INVALID PARAMETER 
          SX6    1           SET *W* SELECTED 
 MTQ2     SA1    MTQA        UPDATE SELECTED OPTIONS
          BX6    X6+X1
          SA6    A1 
          EQ     MTQ1        GET NEXT PARAMETER 
  
 MTQ3     SX6    10B         SET *C* SELECTED 
          JP     MTQ2        SAVE SELECTION 
  
 MTQ4     SX6    4           SET *P* SELECTED 
          JP     MTQ2        SAVE SELECTION 
  
 MTQ5     SX6    2           SET *R* SELECTED 
          JP     MTQ2        SAVE SELECTION 
  
 MTQ6     SX6    17B         SELECT ALL OPTIONS 
          SA6    MTQA 
*         JP     MTQ7        PROCESS DUMP 
  
*         PROCESS CPU REQUEST QUEUE DUMP. 
  
 MTQ7     SA5    NC          PRESET QUEUE ENTRY LIMIT 
          SX6    20B         20B ENTRIES PER CONTROL POINT
          SX5    X5+B1
          IX6    X5*X6
          SA6    CCQA 
          RJ     LDC         LIST DIRECTIVE CARD
          SA1    MTQA        GET OPTIONS
          SX2    1
          BX2    X2*X1
          ZR     X2,MTQ10    IF *W* NOT SELECTED
          SX6    0           CLEAR QUEUE ENTRY COUNT
          SA6    CCQB 
          PRINT  (=2C  )
          PRINT  (=C*        CPU REQUEST QUEUE*)
          PRINT  (=2C  )
          SA1    F.TCMT      GET CORE ADDRESS 
          SA2    X1+WQRL     GET BASE LINK
 MTQ8     UX6,B4  X2
          ZR     B4,MTQ10    IF END OF QUEUE
          SA3    NC          CHECK IF CPUCIO REQUEST
          SX3    X3+B1
          LX3    7
          IX3    X6-X3
          PL     X3,MTA9     IF CPUCIO REQUEST
          SX6    X6 
          SA6    FW          SAVE CONTROL POINT ADDRESS 
          SB2    X1 
          SA1    TCPR 
          RJ     GTD         DUMP CPU REQUEST QUEUE WORDS 
          RJ     CCQ
          NG     X5,MTQ10    IF CIRCULAR QUEUE FOUND
          PRINT  (=2C  )
          SA2    FW          GET LINK TO NEXT ENTRY 
          SA1    F.TCMT 
          SX2    X2+CWQW
          IX2    X1+X2
          SA2    X2 
          JP     MTQ8        PROCESS NEXT ENTRY 
  
 MTA9     MX6    -18         GET ADDRESS OF CPUCIO ENTRY
          BX6    -X6*X2 
          SX6    X6-CWQW
          SA6    FW 
          SA6    CPRA        SET FWA
          SX7    25B
          IX7    X6+X7
          SA7    A6+B1       SET LWA
          SX6    B0+
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     SCM         SELECT CENTRAL MEMORY
          SB2    CPRA 
          RJ     POM         POSITION DUMP FILE 
          GETCM  BUF,25B
          SA2    FW 
          SB2    X2          SET CORE ADDRESS 
          SB2    -B2
          SB2    BUF+B2 
          SA1    TCPR 
          RJ     GTD         DUMP CPUCIO REQUEST QUEUE
          RJ     CCQ
          NG     X5,MTQ10    IF CIRCULAR QUEUE FOUND
          PRINT  (=2C  )
          SA2    BUF+CWQW 
          JP     MTQ8        PROCESS NEXT ENTRY 
  
*         PROCESS PP REQUEST QUEUE DUMP.
  
 MTQ10    SA1    MTQA        GET OPTIONS
          SX2    4
          BX2    X2*X1
          ZR     X2,MTQ12    IF *P* NOT SELECTED
          SX6    0           CLEAR QUEUE ENTRY COUNT
          SA6    CCQB 
          PRINT  (=2C  )
          PRINT  (=C*        PP REQUEST QUEUE*) 
          PRINT  (=2C  )
          SA1    F.TCMT      GET CORE ADDRESS 
          SA2    X1+PQRL     GET BASE LINK
 MTQ11    MX6    5
          LX6    11-59
          BX6    X6*X2       GET START OF CONTROL POINT AREA
          ZR     X6,MTQ12    IF END OF QUEUE
          SA6    FW          SAVE CONTROL POINT ADDRESS 
          MX6    -7 
          BX6    -X6*X2      GET INDEX INTO RCCW
          SA6    TPPRA
          SX6    X6+RECW-RCCW  GET INDEX INTO RECW
          SA6    TPPRB
          SX6    X6+REPW-RECW  GET INDEX INTO REPW
          SA6    TPPRC
          SB2    X1 
          SA1    TPPR 
          RJ     GTD         DUMP PP REQUEST QUEUE WORDS
          RJ     CCQ
          NG     X5,MTQ12    IF CIRCULAR QUEUE FOUND
          SA2    FW          GET LINK TO NEXT ENTRY 
          SA1    F.TCMT 
          SA3    TPPRA
          IX2    X2+X3
          IX2    X2+X1
          SA2    X2+
          JP     MTQ11       PROCESS NEXT ENTRY 
  
*         PRINT CPUCIO REQUEST QUEUE. 
  
 MTQ12    SA1    MTQB 
          NZ     X1,MTQ13    IF BOTH *P* AND *C* PROCESSED
          SX6    B1 
          SA6    A1          SET *C* FLAG 
          SA1    MTQA 
          SX2    10B
          BX2    X2*X1
          ZR     X2,MTQ13    IF *C* NOT SELECTED
          SX6    0           CLEAR QUEUE ENTRY COUNT
          SA6    CCQB 
          PRINT  (=2C  )
          PRINT  (=C*        CPUCIO REQUEST QUEUE*) 
          PRINT  (=2C  )
          SA1    F.TCMT 
          SA2    X1+CQRL     GET BASE INDEX 
          JP     MTQ11       PROCESS ENTRY
  
*         PROCESS RECALL QUEUE DUMP.
  
 MTQ13    SA1    MTQA        GET OPTIONS
          SX2    2
          BX2    X2*X1
          ZR     X2,MTQ17    IF *R* NOT SELECTED
          SX6    0           CLEAR QUEUE ENTRY COUNT
          SA6    CCQB 
          PRINT  (=2C  )
          PRINT  (=C*        RECALL QUEUE*) 
          PRINT  (=2C  )
          SA1    F.TCMT      GET CORE ADDRESS 
          SA2    X1+RQRL     GET BASE  LINK 
 MTQ14    MX6    5
          LX6    11-59
          BX6    X6*X2       GET START OF CONTROL POINT AREA
          ZR     X6,MTQ17    IF END OF QUEUE
          SA6    FW          SAVE CONTROL POINT ADDRESS 
          MX6    -7 
          BX6    -X6*X2 
          SA6    TPRLA       SAVE LINK INDEX
          SX5    X6-CRCW
          NZ     X5,MTQ15    IF PP RECALL 
          SB2    X1 
          SA1    TCRL 
          RJ     GTD         DUMP CPU RECALL WORD 
          RJ     CCQ
          NG     X5,MTQ17    IF CIRCULAR QUEUE FOUND
          JP     MTQ16       GET NEXT ENTRY 
  
 MTQ15    SX6    X6+RECW-RCCW  GET INDEX INTO RECW
          SA6    TPRLB
          SX6    X6+REPW-RECW  GET INDEX INTO REPW
          SA6    TPRLC
          SB2    X1 
          SA1    TPRL 
          RJ     GTD         DUMP PP RECALL WORDS 
          RJ     CCQ
          NG     X5,MTQ17    IF CIRCULAR QUEUE FOUND
 MTQ16    PRINT  (=2C  )
          SA1    F.TCMT      GET LINK TO NEXT ENTRY 
          SA2    FW 
          SA3    TPRLA
          IX2    X2+X3
          IX2    X2+X1
          SA2    X2 
          JP     MTQ14       PROCESS NEXT ENTRY 
  
 MTQ17    JP     DSD1        RETURN 
  
 MTQA     CON    0           SELECTED PARAMETERS
 MTQB     CON    0           *C* PROCESSED FLAG 
 ODIS     SPACE  4,10 
***       ODIS. 
* 
*         DUMP THE OPERATOR DISPLAY BUFFER. 
  
 ODIS     DATA   0LODIS 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+LDSP
          AX2    12 
          SX6    X2-LODS     SET DUMP FWA 
          SX7    X2          SET DUMP LWA+1 
          SB3    B0 
          SX4    B0 
          SX5    =C*    OPERATOR-DISPLAY BUFFER*
          RJ     DTB         DUMP BUFFER
          EQ     DSD1        RETURN 
 OUTPUT   SPACE  4,5
***       OUTPUT,LFN. 
*         OUTPUT.            (*LFN* DEFAULT = *ALTRNT*) 
* 
*         ASSIGN OUTPUT TO ALTERNATE FILE *LFN*.  WHEN *LFN* IS 
*         DISPOSED (SEE DISPOSE), OUTPUT RESUMES ON THE ORIGINAL
*         OUTPUT FILE.  ONLY ONE ALTERNATE FILE MAY BE ACTIVE AT A TIME.
*         *LFN* MAY NOT BE THE SAME AS THE NORMAL OUTPUT FILE NAME. 
  
  
 OUTPUT   DATA   0LOUTPUT 
  
          SA1    OF 
          SX1    X1-A 
          ZR     X1,ERR11    IF ALREADY PROCESSING ALTERNATE FILE 
          RJ     ASN         ASSEMBLE FILE NAME 
          NZ     X6,OTP1     IF NAME SPECIFIED
          SA1    OTPC        SET DEFAULT NAME 
          BX6    X1 
          SB6    -36         SET SHIFT COUNT
 OTP1     SA1    L
          MX2    42 
          BX1    X1-X6
          BX1    X1*X2
          ZR     X1,ERR12    IF SAME AS OUTPUT FILE NAME
          SB6    B6+42
          NG     B6,ERR12    IF NAME TOO LONG 
          SX7    3
          BX6    X6+X7
          SA6    A           SET ALTERNATE OUTPUT FILE NAME 
          SA1    A6+B1       READ FIRST 
          SX6    X1 
          SA6    A1+B1       SET IN = FIRST 
          SA6    A6+B1       OUT = FIRST
          SX2    A
          RJ     STF         CHECK IF TERMINAL
          ZR     X6,ERR13    IF TERMINAL FILE 
          SX6    X2+0 
          SA6    OF          SET OUTPUT FILE FET POINTER
          MOVE   6,CC,OTPA   SAVE CURRENT LIST CONTROLS 
          MOVE   6,OTPB,CC   RESET CONTROLS FOR NEW FILE
          SA1    PRSB 
          RJ     RSP         RESET PRINT DENSITY
          JP     DSD1        RETURN 
  
 OTPA     BSS    6           LIST CONTROL SAVE AREA 
  
 OTPB     BSS    0           LIST CONTROL RESET BLOCK 
          CON    0           CARRIAGE CONTROL CHARACTER 
          CON    0           NO AUTO EJECT FLAG 
          CON    100         LINE NUMBER
          CON    0           NUMBER OF LINES PER PAGE 
          CON    1           PAGE NUMBER
          CON    0           TERMINAL OUTPUT FLAG 
 OTPC     DATA   6LALTRNT    DEFAULT ALTERNATE LIST FILE NAME 
 P        SPACE  4,11 
***       P.
*         DUMP ALL PPUS IN BLOCK FORMAT.
* 
*         P,N1,N2,...,NN. 
*         DUMP SELECTED PPUS. 
* 
*         MEMORY IS DUMPED IN 100B WORD BLOCKS WITH 10B ROWS AND
*         10B COLUMNS.  EACH BLOCK IS READ COLUMNWISE.  EACH PAGE 
*         CONTAINS TWO BLOCKS ACROSS THE PAGE AND SIX DOWN. 
*         ZERO BYTES ARE REPRESENTED AS *----*.  REPETITIVE DATA
*         IS NOT SUPPRESSED.
  
  
 P        DATA   0LP
  
          SX6    B0          INITIALIZE FOR PPU DUMP
 PPS1     RJ     IPD
 PPS2     RJ     SNP         SELECT NEXT PPU
          ZR     X1,DSD1     IF NO MORE PPUS TO DUMP
          RJ     DPP         DUMP PPU IN *P* FORMAT 
          EQ     PPS2        CONTINUE 
 PCP      SPACE  4,10 
***       PCP.
* 
*         DUMP PSEUDO-CONTROL POINTS (PCP-S). 
* 
*         PARAMETERS ARE THE SAME AS FOR THE *CP* DIRECTIVE.
  
  
  
 PCP      DATA   0LPCP
  
          SA2    F.TCMT 
          SA2    X2+PCPP
          SX2    X2 
          ZR     X2,ERR48    IF NO PCP-S DEFINED
          SA1    NC 
          SX1    X1+2        FIRST PCP NUMBER 
          LX1    7
          IX6    X2-X1
          SA6    OP          SET PCPA FWA OFFSET
          SX7    X2-CPLEN 
          SA7    FW          SET (PCPA FWA)-(CPLEN) 
          SA1    TF 
          ZR     X1,CPP0     IF PRINTER OUTPUT
          SA2    ME          SET LWA+1 OF PCPA-S
          EQ     CPN0        DISPLAY PCPA-S AT TERMINAL 
 PD       SPACE  4,4
***       PD,N. 
* 
*         RESET PRINT LINE DENSITY TO N LINES PER INCH.  N MAY BE 
*         3, 4, 6 OR 8. 
  
  
 PD       DATA   0LPD 
  
          RJ     ASN         ASSEMBLE N 
          SA6    PRSB        SAVE DENSITY SELECTION 
          BX1    X6 
          RJ     RSP         RESET PRINT DENSITY
          JP     DSD1        RETURN 
 PF       SPACE  4,20 
***       PF. 
*         DUMP ALL FLPPS IN BLOCK FORMAT. 
* 
*         PF,N1,N2,...,NN.
*         DUMP SELECTED FLPPS.
* 
*         MEMORY IS DUMPED IN 100B WORD BLOCKS WITH 10B ROWS AND
*         10B COLUMNS.  EACH BLOCK IS READ COLUMNWISE.  EACH PAGE 
*         CONTAINS TWO BLOCKS ACROSS THE PAGE AND SIX DOWN. 
*         ZERO BYTES ARE REPRESENTED AS *----*.  REPETITIVE DATA
*         IS NOT SUPPRESSED.
  
  
 PF       DATA   0LPF 
  
          SX6    B1          INITIALIZE FOR FLPP DUMP 
          EQ     PPS1        DUMP FLPPS 
 PLD      SPACE  4,3
***       PLD.
* 
*         DUMP PERIPHERAL LIBRARY DIRECTORY IN *D* FORMAT.
  
  
 PLD      DATA   0LPLD
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+PLDP
          LX2    24 
          SX6    X2          FWA PP LIBRARY DIRECTORY 
          SA3    X1+PSTP
          AX3    12 
          SX7    X3          LWA+1 PP LIBRARY DIRECTORY 
          SX5    =C*           PERIPHERAL LIBRARY DIRECTORY*
          SB3    B1          SET *D* FORMAT 
          SX4    B0          SET READ FROM DUMP FILE
          RJ     DTB         DUMP PLD 
          EQ     DSD1        RETURN 
 PMS      SPACE  4,20 
***       PMS,N1. 
*         CYBER 170 PP MEMORY SELECT SWITCHES WERE PREVIOUSLY SET 
*         TO VALUE N1.
* 
*         THE LOGICAL POSITION OF PP00 HAS BEEN CHANGED PRIOR TO THE
*         FULL DUMP TO TAPE.  IF THE PP MEMORY SELECT SWITCHES HAVE 
*         BEEN CHANGED, THIS DIRECTIVE SHOULD BE SPECIFIED WITH THE 
*         BINARY VALUE OF THE SWITCHES PRIOR TO CHANGING THEM, I.E.,
*         0 - 11B.  THE DUMP OF THE S/C REGISTER WILL BE READ TO FIND 
*         THE CURRENT VALUE OF THE SWITCHES AND DETERMINE THE CORRECT 
*         LOGICAL PP TO BE DUMPED.  IF THE MACHINE IS NOT A CYBER 170 
*         OR THE VALUE N1 SPECIFIED IS THE SAME AS THE VALUE READ 
*         FROM THE S/C REGISTER, THIS DIRECTIVE HAS NO MEANING. 
  
  
 PMS      DATA   0LPMS
  
*         MOVE TABLES TO TEMPORARY BUFFER.
  
          SA1    .NPP        FIND TABLE ENTRY FOR FIRST PP
          MX0    24 
          SEARCH TDIR,X1,X0  FIND PP00 TABLE ENTRY
          ZR     X2,ERR7     IF NOT FOUND 
          SX6    A2+         SAVE TABLE ENTRY ADDRESS 
          SA6    PI 
          MOVE   40,A2,BUF   MOVE TABLE ENTRIES 
          MOVE   20,TLPP,BUF+40  MOVE LOGICAL PP TABLE
  
*         CHECK FOR LEGAL SELECT SWITCH VALUE.
  
          SA1    CH 
          SA1    X1+
          SX1    X1-1R. 
          ZR     X1,ERR6     IF NO VALUE SPECIFIED
          SB7    B0          ASSEMBLE SWITCH VALUE
          RJ     ASD
          NZ     X4,ERR6     IF ERROR 
          SX7    X6-12B 
          PL     X7,ERR6     IF INCORRECT VALUE 
          SA6    PMSA        SAVE OLD VAUE OF SWITCHES
  
*         GET CURRENT VALUE OF SWITCHES.
  
          SA1    .SCR        CHECK DIRECTORY FOR *SCR* RECORD 
          MX0    18 
          SEARCH TDIR,X1,X0  LOCATE S/C REGISTER RECORD 
          ZR     X2,ERR25    IF NOT A CYBER 170 
          SA2    A2+2 
          MX0    24 
          LX0    -12
          SA3    =6L  SC16
          BX4    X3-X2
          BX2    X0*X4
          NZ     X2,ERR2     IF NO SC16 RECORD FOUND
          SA2    A2+B1       SET RANDOM INDEX OF S/C REGISTER 
          BX6    X2 
          SA6    RI 
          SX3    B1          POSITION DUMP FILE 
          RJ     PDF
          READW  S,BUF,B1    READ S/C REGISTER DATA 
          SA1    BUF+PMSW*   GET PP SELECT SWITCHES CURRENT VALUE 
          MX0    -4 
          LX1    7
          BX7    -X0*X1 
          SA2    PMSA        GET OLD VALUE
          IX4    X2-X7
          ZR     X4,ERR25    IF OLD SAME AS NEW VALUE 
          PL     X4,PMS1     IF OLD VALUE .GT. NEW
          SX4    X4+10       BIAS VALUE DIFFERENCE FOR LOGICAL PP00 
  
*         MOVE BANK OF PP ADDRESSES AND LOGICAL PP NUMBERS. 
  
 PMS1     SX0    X4          INITIALIZE INDICIES
          SA5    PI 
          SX1    B0 
          SA0    12B         SET END OF LOWER BANK
 PMS2     LX2    X0,B1       FIND TABLE ENTRY 
          LX3    X1,B1
          SX2    BUF+X2 
          SA2    X2+B1       TRANSFER ENTRY 
          BX7    X2 
          IX3    X5+X3
          SA7    X3+B1
          SA2    BUF+40+X0   TRANSFER LOGICAL PP NUMBER 
          SX7    X2+
          SA7    TLPP+X1
          SX1    X1+1        INCREMENT INDICIES 
          SX7    A0 
          IX6    X1-X7
          ZR     X6,PMS3     IF END OF BANK 
          SX0    X0+B1
          IX6    X0-X7
          NG     X6,PMS2     IF NOT WRAP AROUND 
          SX0    A0-12B      WRAP AROUND BANK 
          EQ     PMS2        PROCESS NEXT PP
  
*         CHECK FOR END OF PP-S.
  
 PMS3     SX6    A0-24B 
          ZR     X6,DSD1     IF BOTH BANKS PROCESSED
          SA2    NP          CHECK FOR 20 PP-S
          SX7    X2-20
          NZ     X7,DSD1     IF NOT 20 PP MACHINE 
          SX0    X4+12B      INITIALIZE INDICIES FOR UPPER BANK 
          SX1    12B
          SA0    24B         SET END OF UPPER BANK
          EQ     PMS2        MOVE UPPER BANK
  
 PMSA     CON    0           OLD SELECT SWITCH VALUE
 PO       SPACE  4,25 
***       PO,N1,N2,...,NN.
* 
*         DUMP 16-BIT PP MEMORY IN OCTAL BLOCK FORMAT.
* 
*         NI     NUMBER OF PP TO BE DUMPED.  IF OMITTED, ALL
*                PP-S ARE DUMPED. 
* 
*         THE *PO* DIRECTIVE CAUSES PP MEMORY TO BE DUMPED IN 
*         OCTAL BLOCK FORMAT, WHERE EACH BLOCK REPRESENTS 
*         64 WORDS.  EACH 16-BIT WORD IS REPRESENTED BY 6 
*         OCTAL DIGITS UNLESS THE UPPER 4 BITS OF THE WORD
*         ARE ZERO.  THEN THE WORD IS REPRESENTED BY 4
*         OCTAL DIGITS.  THE BLOCKS ARE READ BY COLUMN (TOP 
*         TO BOTTOM), WHERE EACH COLUMN CONTAINS EIGHT
*         16-BIT WORDS NUMBERED 0 THRU 7.  THERE ARE EIGHT
*         COLUMNS IN EACH BLOCK NUMBERED 0 THRU 7.
*         REPETITIVE DATA IS NOT SUPPRESSED AND ZERO WORDS
*         ARE REPRESENTED BY FOUR HYPHENS. THE CONTENTS 
*         OF THE R-REGISTER IN OCTAL PRECEDES THE FIRST 
*         BLOCK FOR EACH PP.  OUTPUT TO THE TERMINAL IS 
*         NOT PROVIDED. 
  
  
 PO       DATA   0LPO 
  
          SX6    0           SET OCTAL BLOCK FORMAT 
          EQ     QOD1        DUMP PP/CPP
 PP       SPACE  4,10 
***       PP. 
* 
*         DUMP PPU COMMUNICATION REGISTERS.  CONTROL POINT ASSIGNMENT,
*         CHANNEL ASSIGNMENT AND MONITOR FUNCTION ARE LISTED WITH 
*         EACH COMMUNICATION AREA.  THE AREAS ARE DUMPED IN BYTE
*         FORMAT WITH DISPLAY CODE INTERPRETATION.
* 
*         FOR TERMINAL OUTPUT, THE PPU NUMBER, EXECUTING PROGRAM
*         NAME, CONTROL POINT ASSIGNMENT AND INPUT REGISTER 
*         ADDRESS ARE LISTED FOR EACH COMMUNICATION AREA. 
  
  
 PP       DATA   0LPP 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    TF 
          NZ     X1,PPTN     IF TERMINAL OUTPUT 
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     SCM         SET CENTRAL MEMORY 
          RJ     LDC         LIST DIRECTIVE CARD
          RJ     ICT         INITIALIZE CHANNEL RESERVATION TABLE 
          RJ     SSB         SPACEFILL STRING BUFFER
          SA1    F.TCMT 
          SA2    NP          GET NUMBER OF PP-S 
          SX2    X2-11
          SX7    32B         SET LAST PP NUMBER FOR 20 PP CONFIGURATION 
          PL     X2,PPP1     IF 20 PP CONFIGURATION 
          SX7    12B         SET LAST PPU NUMBER
 PPP1     MX6    0
          SA6    FW          INITIALIZE PPU NUMBER
          SA7    A6+B1       SET LAST PPU NUMBER
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          SA5    PC          GET PP COMMUNICATION AREA POINTER
          IX5    X1+X5
          SA5    X5          READ FIRST WORD OF PP COMMUNICATION AREA 
 PPP3     SX1    11B
          RJ     CPS         CHECK PAGE SPACE 
          RJ     FTR         FORMAT 2 COMMUNICATION BLOCKS
          SA1    FW 
          SA2    A1+1 
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          SX6    X1+2        ADVANCE PPU NUMBER 
          IX7    X6-X2
          PL     X7,PPP5     IF LAST PHYSICAL PP PROCESSED
          SX7    X6-10
          NZ     X7,PPP4     IF NOT END OF FIRST BANK 
          SX6    20B         RESET TO BEGINNING OF UPPER BANK 
 PPP4     SA6    A1+         UPDATE PPU NUMBER
          JP     PPP3        CONTINUE 
  
 PPP5     SA1    C4          NUMBER OF CPP-S
          ZR     X1,PPP8     IF NO CPP-S
          BX6    X1 
          SA6    LW          INITIALIZE LAST CPP NUMBER 
          SA6    IC          SET *CPP* PROCESSING FLAG
          SX1    13B
          RJ     CPS         CHECK PAGE SPACE 
          PRINT  (=2C  )
          PRINT  (=C*       CONCURRENT PP-S COMMUNICATION AREA*)
          PRINT  (=2C  )
          MX6    0           INITIALIZE CPP NUMBER
          SA6    FW 
          SA6    FTRB        RESET 2 PP FLAG
 PPP6     SX1    11B
          RJ     CPS         CHECK PAGE SPACE 
          RJ     FTR         FORMAT 2 COMMUNICATION BLOCKS
          SA1    FW 
          SX6    X1+2        ADVANCE CPP NUMBER 
          SA2    A1+B1
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          IX7    X6-X2
          PL     X7,PPP7     IF LAST PHYSICAL CPP PROCESSED 
          SA6    A1          UPDATE CPP NUMBER
          SX0    X7+B1
          NZ     X0,PPP6     IF EVEN NUMBER OF CPP-S
          SX7    1           SET 1 PP FLAG
          SA7    FTRB 
          JP     PPP6        CONTINUE 
  
 PPP7     BX6    X6-X6       CLEAR PROCESSING CPP FLAG
          SA6    IC 
 PPP8     PRINT  (=2C  )
          PRINT  (=C*        PSEUDO PP COMMUNICATION AREA*) 
          PRINT  (=2C  )
          SA1    F.TCMT      GET ADDRESS OF FIRST PSEUDO AREA 
          SA2    PC 
          SA3    NP          GET NUMBER OF PP-S 
          SX6    B1+
          SA6    FTRB        SET 1 PSEUDO PP FLAG 
          BX6    X6-X6
          LX3    3
          IX3    X2+X3
          SA4    C4 
          LX4    3
          IX3    X4+X3
          SA6    FW          CLEAR PP NUMBER
          IX3    X1+X3
          SA5    X3+         ADDRESS OF PSEUDO AREA 
          RJ     FTR         PROCESS PSEUDO PP-S
          JP     DSD1        RETURN 
  
*         PROCESS TERMINAL OUTPUT.
  
 PPTN     SA0    B0          PRESET PPU NUMBER
          SA5    PC          GET PP COMMUNICATION AREA POINTER
 PPT1     PRINT  (=2C  )
  
*         PRINT PPU NAMES.
  
          SA2    PPTA        GET LOOP COUNT 
          SB2    X2+
          SB7    PRBF        PRINT STRING ADDRESS 
 PPT2     SX6    A0+
          SA6    //PP        SET PPU NUMBER 
          RJ     BPN         BUILD PPU NAME 
          BX2    X6 
          SB6    7
          RJ     UPS         FORMAT PPU NAME
          SB2    B2-B1
          SA0    A0+B1       ADVANCE PPU NUMBER 
          GT     B2,B0,PPT2  IF MORE FOR THIS LINE
          PRINT  PRBF,B7-PRBF 
  
*         PRINT EXECUTING PROGRAM NAMES AND CONTROL POINT ASSIGNMENTS.
  
          SB7    PRBF 
          SB2    X5          PP COMMUNICATION AREA INDEX
          MX3    18 
          SA4    F.TCMT 
          SA2    PPTA        GET LOOP COUNT 
          SB3    X2+
 PPT3     SA2    B2+X4       READ PP INPUT REGISTER 
          MX1    12 
          BX1    X1*X2
          NZ     X1,PPT4     IF PPU ACTIVE
          SA2    =4L----
          SB6    7
          RJ     UPS
          JP     PPT5        CONTINUE 
  
 PPT4     BX2    X3*X2       MASK NAME
          SB6    3
          RJ     UPS         SET NAME IN PRINT STRING 
          SX6    1R-
          SA6    B7 
          SB7    B7+B1
          SA2    A2          REREAD INPUT REGISTER
          MX1    -5 
          LX2    24 
          BX1    -X1*X2      CONTROL POINT NUMBER 
          LX1    -6 
          SB6    B1+B1
          RJ     CTS         SET CONTROL POINT NUMBER 
          SB7    B7+1        SPACE 1
 PPT5     SB2    B2+10B      ADVANCE COMMUNICATION AREA ADDRESS 
          SB3    B3-1 
          GT     B3,B0,PPT3  IF MORE FOR THIS LINE
          PRINT  PRBF,B7-PRBF 
  
*         PRINT COMMUNICATION AREA ADDRESSES. 
  
          SB7    PRBF 
          SA1    PPTA        GET LOOP COUNT 
          SB2    X1+
 PPT6     BX1    X5 
          LX1    -12
          SB6    4
          RJ     CTS         CONVERT ADDRESS
          SB6    3
          RJ     SBL         SPACE 3
          SX5    X5+10B      ADVANCE ADDRESS
          SB2    B2-1 
          GT     B2,B0,PPT6  IF MORE FOR THIS LINE
          PRINT  PRBF,B7-PRBF 
          SA1    NP 
          SX2    A0 
          IX2    X2-X1
          SA0    A0-12B+20B  ADJUST PP NUMBER FOR UPPER BANK
          SA3    PPTA 
          SX3    X3-2 
          SA4    IC 
          NZ     X4,PPT7     IF CPP-S ALREADY PROCESSED 
          NG     X3,PPT8     IF PSEUDO PP-S PROCESSED 
          NG     X2,PPT1     IF 10 MORE PPUS
          SA2    C4 
          ZR     X2,PPT7     IF NO CPP-S
          BX6    X2          RESET COUNT FOR CPP-S
          SA6    PPTA 
          SA6    IC          SET *CPP* PROCESSING FLAG
 PPT6.1   SA0    0           SET *CPP* NUMBER 
          JP     PPT1        CONTINUE PROCESSING
  
 PPT7     SX6    B1 
          SA6    PPTA        SET COUNT FOR PSEUDO PP
          SX6    B0          CLEAR *CPP* PROCESSING FLAG
          SA6    IC 
          JP     PPT6.1      PROCESS NEXT LINE
  
 PPT8     SX6    10          RESET LOOP COUNT FOR NEXT CALL 
          SA6    PPTA 
          JP     DSD1        RETURN 
  
  
 PPTA     CON    10          LOOP COUNT 
 PROBE    SPACE  4,10 
***       PROBE.
* 
*         DUMP *PROBE* TABLES IN *D* FORMAT.
  
  
 PROBE    DATA   0LPROBE
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+SSTL
          LX2    59-30
          NG     X2,ERR27    IF PROBE NOT ENABLED 
          SA2    X1+PRBP
          PL     X2,ERR26    IF PROBE TABLES INTERLOCKED
          SX6    X2          SET FWA OF DUMP
          LX2    -24         SET LWA+1 OF DUMP
          SX2    X2 
          IX7    X2+X6
          SX5    =C*           PROBE TABLES*
          SB3    B1          SET *D* FORMAT 
          SX4    B0          SET READ FROM DUMP FILE
          RJ     DTB         DUMP TABLES
          EQ     DSD1        RETURN 
 PROCA    SPACE  4,20 
***       PROCA.
* 
*         SPECIFIES THAT THE ENTIRE PROCESSOR OPERAND CACHE 
*         SHOULD BE DUMPED. 
* 
*         PROCA,FIRST,LAST. 
* 
*         FIRST  SPECIFIES THE FIRST WORD (HEX) TO BE DUMPED. 
*                IF OMITTED, WORD 00 IS USED BY DEFAULT.
* 
*         LAST   SPECIFIES THE LAST+1 WORD (HEX) TO BE DUMPED.
*                IF OMITTED, WORD FIRST+1 IS USED BY DEFAULT. 
*                IF FIRST IS OMITTED, WORD 4095 IS DEFAULT FOR LAST.
* 
*         THE *PROCA* DIRECTIVE IS APPLICABLE ONLY WHEN DUMPING A 
*         CYBER 180-990 MAINFRAME, AND CAUSES THE PROCESSOR LOAD/STORE
*         UNIT (LSU) OPERAND CACHE MEMORY CONTENTS TO BE DUMPED.  THE 
*         RADIAL MCI IS PRINTED BEFORE PRINTING REGISTER 00.  EACH
*         ROW CONTAINS THE WORD NUMBER, AND THE CONTENTS OF THE 
*         CORRESPONDING CONTROL WORD AND DATA WORD. 
  
  
 PROCA    DATA   0LPROCA
  
 PCA1     RJ     LDC         LIST DIRECTIVE CARD
          SA1    .POC 
          SX6    B1+         DISPLAY RADIAL MCI 
          RJ     FPR         FIND PROCESSOR RECORD
          ZR     X2,ERR14    IF RECORD NOT FOUND
          SX6    4095        SET DEFAULT LWA+1
          RJ     SHA         SET HEX ADDRESSES
          PRINT  (=C*      CONTROL WORDS             DATA WORDS*) 
          PRINT  (=2C  )
          RJ     SSB         CLEAR STRING BUFFER
 PCA4     SA3    FW          GET FWA
          LX3    2           CONVERT TO BYTE NUMBER 
          RJ     FBP         FIND BYTE POSITION 
  
*         READ BLOCK OF 60 64-BIT REGISTER WORDS FROM CONTROL 
*         WORD AREA AND CORRESPONDING DATA WORD AREA. 
  
          SB6    B0+
          SB7    240
 PCA5     RJ     NXB         READ 4*60 16-BIT BYTES (64 CM WORDS) 
          BX6    X1 
          SA6    BUF+B6      WRITE THEM INTO BUF+0 TO BUF+239 
          SB6    B6+B1
          LT     B6,B7,PCA5  IF LESS THAN 60 WORDS READ 
          SA3    FW          GET POSITION 
          LX3    2
          SX3    X3+4096*4   JUMP TO DATA WORD AREA 
          RJ     FBP         FIND BYTE POSITION 
          SB6    0
          SB7    240         READ 60 DATA WORDS AND STORE THEM IN BUF 
 PCA6     RJ     NXB
          BX6    X1 
          SA6    BUF+240+B6  SAVE THEM IN BUF RIGHT AFTER CONTROL WORDS 
          SB6    B6+B1
          LT     B6,B7,PCA6  IF LESS THAN 60 WORDS READ 
          SA0    0           INITIALIZE BUFFER POINTER
 PCA7     SA1    FW          GET CURRENT FWA
          SB7    PRBF 
          SB6    3
          LX1    59-11
          RJ     HTS         PLACE ENTRY NUMBER IN OUTPUT FIELD 
          SA1    BUF+A0-1    READ CONTENTS OF BUFFER
          SX5    4
 PCA9     SA1    A1+B1
          LX1    59-15
          SB7    B7+2        READ ONE CONTROL WORD
          SB6    4
          RJ     HTS
          SX5    X5-1 
          NZ     X5,PCA9     IF MORE DATA TO READ 
          SA1    BUF+240-1+A0  READ CORRESPONDING DATA WORD 
          SB7    B7+2 
          SX5    4
 PCA10    SA1    A1+B1
          LX1    59-15
          SB7    B7+2 
          SB6    4
          RJ     HTS
          SX5    X5-1 
          NZ     X5,PCA10    IF MORE DATA TO READ 
          PRINT  CCCH,B7-CCCH+1  PRINT OUT LINE 
          SA1    FW          FWA
          SA2    A1+B1       LWA+1
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          IX2    X1-X2
          PL     X2,PCA11    IF REACHED LWA 
          SX6    X1+B1       INCREMENT FWA
          SA6    A1 
          SA0    A0+4        INCREMENT BUFFER POINTER 
          SX1    A0-240 
          NZ     X1,PCA7     IF BUFFER NOT EMPTY
          JP     PCA4        READ NEXT BLOCK OF WORDS 
  
 PCA11    SA1    NR          NEXT TABLE ENTRY 
          ZR     X1,DSD1     IF NO MORE RECORDS TO PROCESS
          JP     PCA1        PROCESS NEXT RECORD
 PROCW    SPACE  4,10 
***       PROCW.
* 
*         THE *PROCW* DIRECTIVE CAUSES THE PROCESSOR CONTROLWARE
*         PART NUMBER AND REVISION LEVEL TO BE DUMPED.
  
  
 PROCW    DATA   0LPROCW
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    .PMR 
          RJ     GID         GET ELEMENT ID 
          SA2    TMNO+X6
          BX6    X2 
          NG     X6,ERR14    IF UNUSED MODEL
          SA6    PCWA 
 PCW1     RJ     LDC         LIST DIRECTIVE 
          SA1    .PCS 
          SX6    B0+         SET NO RADIAL MCI DISPLAY
          RJ     FPR         FIND PROCESSOR RECORD
          ZR     X2,ERR14    IF RECORD NOT FOUND
          SA3    PCWA 
          RJ     FBP         FIND BYTE POSITION 
          SA2    =41HCONTROLWARE PART NUMBER/REVISION LEVEL = 
          SB6    41 
          SB7    PRBF 
          RJ     UPS         UNPACK STRING
          SB5    4
 PCW4     RJ     NXB         GET NEXT BYTE
          SB6    B1+B1
          LX1    -16         POSITION TO TOP OF WORD
          BX2    X1 
          SB5    B5-B1
          RJ     SAI         SET ASCII INTERPRETATION 
          NZ     B5,PCW4     IF MORE ASCII TO CONVERT 
          PRINT  CCCH,B7-CCCH 
          SA1    NR 
          ZR     X1,DSD1     IF DONE, RETURN TO PROCESS NEXT DIRECTIVE
          JP     PCW1        PROCESS NEXT CONTROLWARE RECORD
  
  
 PCWA     CON    0           BYTE OFFSET
  
**        TMNO - TABLE OF MODEL NUMBER OFFSETS. 
* 
*T        12/ OFFSET
* 
*         OFFSET = NUMBER OF 16-BIT BYTES TO SKIP TO FIND THE START OF
*                  THE MICROCODE NAME IN THE CONTROL STORE RECORD FOR 
*                  THIS MODEL NUMBER. 
*                = -1, IF THE MODEL NUMBER IS NOT VALID.
  
 TMNO     BSS    0
          LOC    0
          CON    -1          UNUSED 
          CON    8           P1 
          CON    12          P2 
          CON    4           P3 
          CON    20420       THETA
          CON    8           P0 
          CON    -1          UNUSED 
          CON    -1          UNUSED 
          LOC    *O 
 PROMR    SPACE  4,25 
***       PROMR.
* 
*         SPECIFIES THAT ALL PROCESSOR MAINTENANCE REGISTERS
*         SHOULD BE DUMPED. 
* 
*         PROMR,FIRST,LAST. 
* 
*         FIRST  SPECIFIES THE FIRST REGISTER (HEX) TO BE DUMPED. 
*                IF OMITTED, REGISTER 00 IS USED BY DEFAULT.
* 
*         LAST   SPECIFIES THE LAST PLUS ONE REGISTER (HEX) TO BE 
*                DUMPED.  IF OMITTED, FIRST+1 IS USED BY DEFAULT. 
* 
*         THE PROMR DIRECTIVE CAUSES THE PROCESSOR MAINTENANCE
*         REGISTERS TO BE DUMPED.  FOR EACH REGISTER, THE 
*         REGISTER NUMBER, REGISTER CONTENTS, AND REGISTER
*         DESCRIPTION ARE PRINTED. FOR REGISTERS CONTAINING 
*         ERROR INDICATORS, DESCRIPTIONS OF ERROR INDICATORS
*         SET ARE PRINTED.  THE RADIAL MAINTENANCE CHANNEL
*         INTERFACE (MCI) IS PRINTED BEFORE PRINTING
*         REGISTER 00.
  
  
 PROMR    DATA   0LPROMR
  
 PRM1     SA1    .PMR        RECORD ID
          SX7    PMRA        DESCRIPTOR TABLE ADDRESS 
          RJ     DMR         DUMP MAINTENANCE REGISTERS 
          SA1    NR 
          NZ     X1,PRM1     LOOP FOR MORE RECORDS
          EQ     DSD1        RETURN TO PROCESS NEXT DIRECTIVE 
  
  
*         DESCRIPTOR FORMAT - 
* 
*T        9/ REGISTER,17/ BDTA,17/ 0,17/ DESCRIPTOR PTR 
* 
*                BDTA = BIT DESCRIPTOR TABLE ADDRESS. 
  
 PMRA     BSS    0
          SXREG     SSMR,(STATUS SUMMARY       ),PMRB 
          SXREG     EIMR,(ELEMENT ID           )
          SXREG     PPID,(PROCESSOR ID         )
          SXREG     OIMR,(OPTIONS INSTALLED    )
          SXREG     PVCM,(VM CAPABILITY LIST   )
          SXREG     DEMR,(DEPENDENT ENV CTRL   )
          SXREG     PCSA,(CSA ADDR BEFORE HALT )
          SXREG     PCSB,(CONTROL MEM BKPT     )
          SXREG     PPRG,(PROGRAM ADDR         )
          SXREG     PMPS,(MTR PROCESS STATE PTR)
          SXREG     PMCR,(MTR CONDITION REG    ),PMRC 
          SXREG     PUCR,(USER CONDITION REG   )
          SXREG     PUPR,(UNTRANSLATABLE PTR   )
          SXREG     PSTL,(SEGMENT TABLE LENGTH )
          SXREG     PSTA,(SEGMENT TABLE ADDRESS)
          SXREG     PBCR,(BASE CONSTANT        )
          SXREG     PPTA,(PAGE TABLE ADDRESS   )
          SXREG     PPTL,(PAGE TABLE LENGTH    )
          SXREG     PPSM,(PAGE SIZE MASK       )
          SXREG     PMDF,(MODEL DEPENDENT FLAGS),,S3+THETA
          SXREG     PMDW,(MODEL DEPENDENT WORD ),,S1+S2 
          SXREG     PMMR,(MTR MASK             )
          SXREG     PJPS,(JOB PROCESS STATE PTR)
          SXREG     PSIT,(SYS INTERVAL TIMER   )
          SXREG     PPFS,(PROC FAULT STATUS    ),,S1+S2 
          SXREG     PPFS,(PROC FAULT STATUS 0  ),,S3+THETA
          SXREG     PCSP,(CONTROL STORE ERR LOG),,S1
          SXREG     PCSP,(CONTROL MEMORY PARITY),,S2
          SXREG   PPFS+1,(PROC FAULT STATUS 1  ),,S3+THETA
          SXREG   PPFS+2,(PROC FAULT STATUS 2  ),,S3+THETA
          SXREG   PPFS+3,(PROC FAULT STATUS 3  ),,S3+THETA
          SXREG   PPFS+4,(PROC FAULT STATUS 4  ),,S3+THETA
          SXREG   PPFS+5,(PROC FAULT STATUS 5  ),,S3+THETA
          SXREG   PPFS+6,(PROC FAULT STATUS 6  ),,S3+THETA
          SXREG   PPFS+7,(PROC FAULT STATUS 7  ),,S3+THETA
          SXREG   PPFS+8,(PROC FAULT STATUS 8  ),,S3+THETA
          SXREG   PPFS+9,(PROC FAULT STATUS 9  ),,S3+THETA
          SXREG  PPFS+10,(PROC FAULT STATUS A  ),,THETA 
          SXREG  PPFS+11,(PROC FAULT STATUS B  ),,THETA 
          SXREG  PPFS+12,(PROC FAULT STATUS C  ),,THETA 
          SXREG  PPFS+13,(PROC FAULT STATUS D  ),,THETA 
          SXREG  PPFS+14,(PROC FAULT STATUS E  ),,THETA 
          SXREG  PPFS+15,(PROC FAULT STATUS F  ),,THETA 
          SXREG     PRCL,(RETRY CORR ERROR LOG ),,S1+S2 
          SXREG     PUCS,(CONTROL STORE ERR LOG),,S1
          SXREG     PCCL,(CACHE CORR ERR LOG   ),,S2
          SXREG     PMCL,(MAP CORR ERR LOG     ),,S1+S2 
          SXREG     PPTM,(PROC TEST MODE       ),,S1+S2+S3
          SXREG     PPTM,(PROC TEST MODE 0     ),,THETA 
          SXREG   PPTM+1,(PROC TEST MODE 1     ),,THETA 
          SXREG   PPTM+2,(PROC TEST MODE 2     ),,THETA 
          SXREG   PPTM+3,(PROC TEST MODE 3     ),,THETA 
          SXREG     PTPE,(TRAP ENABLE          )
          SXREG   PTPE+1,(TRAP ENABLE          )
          SXREG   PTPE+2,(TRAP ENABLE          )
          SXREG   PTPE+3,(TRAP ENABLE          )
          SXREG     PTRP,(TRAP PTR             )
          SXREG     PDLP,(DEBUG LIST PTR       )
          SXREG     PKPM,(KEYPT MASK           )
          SXREG     PKPC,(KEYPT CODE           )
          SXREG     PKCN,(KEYPT CLASS NUMBER   )
          SXREG     PPIT,(PROC INTERVAL TIMER  )
          SXREG     PCCF,(CRITICAL FRAME FLAG  )
          SXREG   PCCF+1,(CRITICAL FRAME FLAG  )
          SXREG     POCF,(ON CONDITION FLAG    )
          SXREG   POCF+1,(ON CONDITION FLAG    )
          SXREG     PDBI,(DEBUG INDEX          )
          SXREG     PDBM,(DEBUG MASK           )
          SXREG     PUSM,(USER MASK            )
          SXREG     PRDM,(REG FILE DUMP ADDRESS),,S1+S2 
          CON    0
  
*         REG *SSMR* (STATUS SUMMARY) BIT INTERPRETATIONS.
* 
*         DESCRIPTOR FORMAT - 
* 
*T        9/ BIT NO.,17/ 0,17/ 0,17/ DESCRIPTOR PTR 
  
 PMRB     BSS    0
          S2BIT  58,(EXECUTIVE MONITOR MODE)
          S2BIT  59,(SHORT ENVIRON WARNING) 
          S2BIT  60,(PROCESSOR HALT       ) 
          S2BIT  61,(UNCORRECTABLE ERROR  ) 
          S2BIT  62,(CORRECTED ERROR      ) 
          S2BIT  63,(PHYSICAL ENVIRON WARNING)
          CON    0
  
*         REG *PMCR* (MTR COND REG) BIT INTERPRETATIONS.
* 
*         DESCRIPTOR FORMAT - 
* 
*T        9/ BIT NO.,17/ 0,17/ 0,17/ DESCRIPTOR PTR 
  
 PMRC     BSS    0
          S2BIT  48,(DETECTED UNCORR ERR  ) 
          S2BIT  50,(SHORT WARNING        ) 
          S2BIT  51,(INSTRUCTION SPEC ERROR)
          S2BIT  52,(ADDRESS SPEC ERROR   ) 
          S2BIT  53,(C170 EXCHANGE REQUEST) 
          S2BIT  54,(ACCESS VIOLATION     ) 
          S2BIT  55,(ENVIRONMENT SPEC ERROR)
          S2BIT  56,(EXTERNAL INTERRUPT   ) 
          S2BIT  57,(PAGE TBL SEARCH W/O FIND)
          S2BIT  58,(SYSTEM CALL          ) 
          S2BIT  59,(SYSTEM INTERVAL TIMER) 
          S2BIT  60,(INCORRECT SEG/RING 0 ) 
          S2BIT  61,(OUTWARD CALL/INWARD RETURN)
          S2BIT  62,(SOFT/CORRECTED ERROR ) 
          S2BIT  63,(TRAP EXCEPTION       ) 
          CON    0
* 
*         SECOND OCCURANCE OF REGISTER 31 DESCRIPTOR. 
* 
 PMRD     BSS    0
          SXREG  PCSA,(CSA ADDR AFTER HALT  ) 
          CON    0
 PROPM    SPACE  4,10 
***       PROPM.
* 
*         DUMP CYBER 180-990 PROCESSOR PAGE MAP.
* 
*         THE *PROPM* DIRECTIVE IS APPLICABLE ONLY WHEN DUMPING A 
*         CYBER 180-990 MAINFRAME, AND CAUSES THE PROCESSOR PAGE MAP
*         TO BE DUMPED.  THE RADIAL MCI IS PRINTED BEFORE PRINTING
*         REGISTER  00.  THERE ARE NO PARAMETERS.  FOR EACH REGISTER, 
*         THE SET NUMBER, ENTRY NUMBER WITHIN THE SET, AND THE REGISTER 
*         CONTENTS ARE PRINTED. 
  
  
 PROPM    DATA   0LPROPM
  
          SA5    .PPM        RECORD ID
          SX7    3           MAXIMUM SET NUMBER 
          EQ     PSM1        PROCESS PAGE MAP 
 PRORF    SPACE  4,20 
***       PRORF.
* 
*         SPECIFIES THAT THE ENTIRE PROCESSOR REGISTER FILE 
*         SHOULD BE DUMPED. 
* 
*         PRORF,FIRST,LAST. 
* 
*         FIRST  SPECIFIES THE FIRST REGISTER (HEX) TO BE DUMPED. 
*                IF OMITTED, REGISTER 00 IS USED BY DEFAULT.
* 
*         LAST   SPECIFIES THE LAST+1 REGISTER (HEX) TO BE DUMPED.
*                IF OMITTED, FIRST+1 IS USED BY DEFAULT.
* 
*         THE *PRORF* DIRECTIVE CAUSES THE PROCESSOR REGISTER 
*         FILE TO BE DUMPED.  THE RADIAL MCI IS PRINTED 
*         BEFORE PRINTING REGISTER 00.  FOR EACH REGISTER,
*         THE REGISTER NUMBER AND REGISTER CONTENTS ARE 
*         PRINTED.
  
  
 PRORF    DATA   0LPRORF
  
          SA1    .PMR 
          RJ     GID         GET ELEMENT ID 
          SX6    X6-4 
          NZ     X6,PRF2     IF NOT CYBER 180-990 
          RJ     TPF
          EQ     DSD1        RETURN 
  
 PRF1     SA1    NR 
          ZR     X1,DSD1     IF NO MORE RECORDS TO PROCESS
 PRF2     RJ     LDC         DISPLAY DIRECTIVE
          SA1    .PRF 
          SX6    1           DISPLAY RADIAL MCI 
          RJ     FPR         FIND PROCESSOR RECORD
          ZR     X2,ERR14    IF RECORD NOT FOUND
          MX0    -18         PRESET *LAST* TO ACTUAL NUMBER OF REGS 
          BX6    -X0*X2 
          RJ     SHA         SET HEX ADDRESSES
          SA3    FW 
          LX3    2           CONVERT STARTING REGISTER NUMBER TO BYTE 
          RJ     FBP         FIND BYTE POSITION 
 PRF3     SA1    FW 
          SX6    X1+B1
          SA2    A1+B1       LAST REGISTER+1 TO PRINT 
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          SA6    A1          INCREMENT REGISTER NUMBER
          IX3    X2-X6
          NG     X3,PRF1     IF ALL REGISTERS PRINTED 
          SB7    PRBF 
          SB6    B1+B1
          LX1    59-7 
          RJ     HTS         DISPLAY REGISTER NUMBER
          RJ     DHR         DISPLAY REGISTER 
          EQ     PRF3        DISPLAY NEXT REGISTER
 PROSM    SPACE  4,10 
***       PROSM.
* 
*         DUMP CYBER 180-990 PROCESSOR SEGMENT MAP. 
* 
*         THE *PROSM* DIRECTIVE IS APPLICABLE ONLY WHEN DUMPING A 
*         CYBER 180-990, AND CAUSES THE PROCESSOR SEGMENT MAP TO BE 
*         DUMPED.  THE RADIAL MCI IS PRINTED BEFORE PRINTING REGISTER 
*         00.  THERE ARE NO PARAMETERS.  FOR EACH REGISTER, THE 
*         SET NUMBER, ENTRY NUMBER WITHIN THE SET, AND THE REGISTER 
*         CONTENTS ARE PRINTED. 
  
  
 PROSM    DATA   0LPROSM
  
          SA5    .PSM        RECORD ID
          SX7    B1+         MAXIMUM SET NUMBER 
 PSM1     SA7    LW          SAVE LAST SET NUMBER 
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
 PSM2     RJ     LDC         DISPLAY DIRECTIVE
          BX1    X5 
          SX6    B1          DISPLAY RADIAL MCI 
          RJ     FPR         FIND PROCESSOR RECORD
          ZR     X2,ERR14    IF RECORD NOT FOUND
          BX7    X7-X7
          SX3    B0 
          SA7    FW          INITIALIZE SET NUMBER
          RJ     FBP         POSITION DUMP FILE 
          SA0    0           INITIALIZE ENTRY NUMBER
          PRINT  (=C* SET  ENTRY   CONTENTS *)
          PRINT  (=2C  )
 PSM3     SA1    FW          DISPLAY SET NUMBER 
          SX6    X1+1R0 
          SA6    PRBF+1 
          SX1    A0          DISPLAY ENTRY NUMBER 
          SB6    B1+B1
          SB7    PRBF+6 
          RJ     CDD
          BX2    X6 
          LX2    59-11
          RJ     UPS
          SA0    A0+1        INCREMENT ENTRY NUMBER 
          RJ     DHR         DISPLAY REGISTER 
          SX3    A0-32D 
          NG     X3,PSM3     IF NOT FINISHED WITH SET 
          SA2    FW          GET SET NUMBER 
          SA1    A2+B1       GET LAST SET NUMBER
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          IX1    X1-X2
          ZR     X1,PSM4     IF DONE
          SX7    X2+B1       INCREMENT SET NUMBER 
          SA7    A2 
          SA0    0           RESET ENTRY NUMBER 
          EQ     PSM3        DISPLAY NEXT SET 
  
 PSM4     SA1    NR          NEXT TABLE ENTRY 
          NZ     X1,PSM2     IF MORE RECORDS TO PROCESS 
          EQ     DSD1        RETURN TO PROCESS NEXT DIRECTIVE 
 PROXP    SPACE  4,10 
***       PROXP.
* 
*         DUMP CYBER 170-8X5 EXCHANGE PACKAGE.
* 
*         THE *PROXP* DIRECTIVE CAUSES THE PROCESSOR EXCHANGE 
*         PACKAGE TO BE DUMPED.  THE RADIAL MCI IS PRINTED BEFORE 
*         REGISTER *SSMR*.  FOR EACH REGISTER, THE REGISTER NUMBER, 
*         REGISTER CONTENTS, AND DESCRIPTIVE INFORMATION IS PRINTED.
  
  
 PROXP    DATA   0LPROXP
  
          RJ     LDC         LIST DIRECTIVE CARD
          RJ     GHA         GET HARDWARE ADDRESS 
 PRX1     SX3    1           DISPLAY RADIAL MCI 
          RJ     PTX         POSITION TO EXCHANGE PACKAGE 
          SX6    51          DISPLAY FULL EXCHANGE PACKAGE
          SX1    0
          RJ     FXA         FORMAT EXCHANGE AREA 
          SA1    NR          NEXT DIRECTORY TABLE ENTRY 
          ZR     X1,DSD1     IF NO MORE TO PROCESS
          SB6    0           NO ADDRESS SPECIFIED 
          EQ     PRX1        PROCESS NEXT EXCHANGE PACKAGE
 PST      SPACE  4,10 
***       PST.
* 
*         DUMP PROGRAM STATUS TABLE AND 
*         ENTRY POINT DIRECTORY IN *D* FORMAT.
  
  
 PST      DATA   0LPST
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+PSTP     GET FWA PST
          AX2    12 
          SX6    X2 
          AX2    24          GET LWA+1 PST
          SX7    X2 
          SX5    =C*           PROGRAM STATUS TABLE*
          SB3    B1          SET *D* FORMAT 
          SX4    B0          SET READ FROM DUMP FILE
          RJ     DTB         DUMP PST 
          SA1    CPRA+1      GET FWA EPD
          SA2    F.TCMT      GET LWA+1 EPD
          SA2    X2+LBDP
          AX2    12 
          BX6    X1 
          SX7    X2 
          SB3    B0          SET *D* FORMAT 
          SX5    =C*           ENTRY POINT DIRECTORY* 
          SX4    0           SET READ FROM DUMP FILE
          RJ     DTB         DUMP EPD 
          EQ     DSD1        RETURN 
 PUT      SPACE  4,10 
***       PUT.
*         DUMP ALL NONZERO PHYSICAL UNIT TABLE ENTRIES. 
* 
*         PUT,E1,E2,...,EN. 
*         DUMP SELECTED PHYSICAL UNIT TABLE ENTRIES.
  
  
 PUT      DATA   0LPUT
  
          SX5    =C*           PHYSICAL UNIT TABLE* 
          SX6    TPUE        SET FORMAT TABLE POINTERS ADDRESS
          SX7    =4HPUT      SET TABLE NAME ADDRESS 
          SB2    /HIO/PUTP   SET BUFFERED DEVICE TABLE INDEX
          RJ     DBT         DUMP *PUT* 
          EQ     DSD1        RETURN 
 PX       SPACE  4,25 
***       PX,N1,N2,...,NN.
* 
*         DUMP 16-BIT PP MEMORY IN HEX BLOCK FORMAT.
* 
*         NI     NUMBER OF PP TO BE DUMPED.  IF OMITTED,
*                ALL PP-S ARE DUMPED. 
* 
*         THE *PX* DIRECTIVE CAUSES PP MEMORY TO BE DUMPED
*         IN HEXADECIMAL BLOCK FORMAT WHERE EACH BLOCK
*         REPRESENTS 256 WORDS.  EACH 16-BIT WORD IS
*         REPRESENTED BY 4 HEXADECIMAL DIGITS.  THE BLOCKS
*         ARE READ BY COLUMN (TOP TO BOTTOM), WHERE EACH
*         COLUMN CONTAINS 16 16-BIT WORDS NUMBERED
*         0 THRU F.  THERE ARE 16 COLUMNS IN EACH BLOCK 
*         NUMBERED 0 THRU F.  REPETITIVE DATA IS NOT
*         SUPPRESSED AND ZERO WORDS ARE REPRESENTED BY
*         FOUR HYPHENS.  THE CONTENTS OF THE R-REGISTER 
*         IN HEXADECIMAL PRECEDES THE FIRST BLOCK FOR 
*         EACH PP.  OUTPUT TO THE TERMINAL IS NOT PROVIDED. 
  
  
 PX       DATA   0LPX 
  
          SX6    1           SET HEX BLOCK FORMAT 
          EQ     QOD1        DUMP PP/CPP
 Q        SPACE  4,19 
***       Q.
*         DUMP ALL PPUS IN LINE FORMAT WITH INTERPRETATION. 
* 
*         Q,N1,N2,...,NN. 
*         DUMP SELECTED PPUS. 
* 
*         EACH LINE CONTAINS 20B BYTES PRINTED IN TWO SETS OF 10B.
*         EACH SET OF 10B CONSISTS OF AN ADDRESS, 10B DATA BYTES AND
*         16D DISPLAY CODE CHARACTERS INTERPRETATION.  REPETITIVE 
*         LINES ARE SUPPRESSED.  ZERO BYTES ARE PRINTED AS *----*.
* 
*         FOR TERMINAL OUTPUT, THE DIRECTIVE FORMAT IS -
* 
*         Q,N,FWA,LWA+1.
* 
*         DATA IS DUMPED 10B BYTES PER LINE WITH DISPLAY CODE 
*         INTERPRETATION.  ZERO BYTES ARE REPRESENTED AS *----*.
*         FWA AND LWA+1 ARE ADJUSTED SO THAT THE DUMP LIMITS
*         FALL ON A MULTIPLE OF 10B.
  
  
 Q        DATA   0LQ
  
          SA1    TF 
          NZ     X1,QTN      IF TERMINAL OUTPUT 
          SX6    B0          INITIALIZE FOR PPU DUMP
 QPR1     RJ     IPD
 QPR2     RJ     SNP         SELECT NEXT PPU
          ZR     X1,DSD1     IF NO MORE TO DUMP 
          RJ     DPQ         DUMP PPU IN *Q* FORMAT 
          EQ     QPR2        CONTINUE 
  
*         PROCESS TERMINAL OUTPUT.
  
 QTN      SB7    0
          RJ     ASD         ASSEMBLE PPU NUMBER
          NZ     X4,ERR6     IF ERROR 
          BX7    X4 
          SA7    IPDA 
          SA6    //PP        SET PPU NUMBER 
          SA1    IC+1        GET PP TYPE
          BX6    X1 
          SA6    A1-B1       SET *CPP* PROCESSING FLAG
          RJ     RPD         READ PPU DATA TO CORE
          RJ     SSB         CLEAR PRINT STRING 
          SB7    B0 
          RJ     ASD         ASSEMBLE FWA FOR DUMP
          NZ     X4,ERR6     IF ERROR 
          MX7    -3 
          BX6    X6*X7       ROUND DOWN 
          SA6    FW          SET DUMP FWA 
          SX6    X6+10B 
          SA6    LW          PRESET LWA+1 
          RJ     ASD         ASSEMBLE LWA+1 
          NZ     X4,QTN1     IF NOT SPECIFIED 
          SA6    LW 
 QTN1     SA1    FW 
          SB2    X1+         SET DUMP ADDRESS 
          SB3    10B         LOOP COUNT 
          SB4    BUF         BYTE BUFFER ADDRESS
 QTN2     SX1    B2 
          RJ     RPB         READ BYTE
          SA6    B4          STORE IN BUFFER
          SB2    B2+B1
          SB4    B4+B1
          SB3    B3-B1
          GT     B3,B0,QTN2  IF MORE BYTES TO READ
          SX4    B2-10B      SET ADDRESS
          SB2    BUF         BYTE BUFFER ADDRESS
          SB7    PRBF        PRINT STRING ADDRESS 
          RJ     DTQ         FORMAT TEN BYTES 
          PRINT  PRBF,B7-PRBF 
          SA1    FW 
          SA2    LW 
          SX6    X1+10B 
          SA6    A1          UPDATE DUMP ADDRESS
          IX6    X6-X2
          NG     X6,QTN1     IF MORE TO DUMP
          JP     DSD1        RETURN 
 QF       SPACE  4,10 
***       QF. 
*         DUMP ALL FLPPS IN LINE FORMAT WITH INTERPRETATION.
* 
*         QF,N1,N2,...,NN.
*         DUMP SELECTED FLPPS.
* 
*         EACH LINE CONTAINS 20B BYTES PRINTED IN TWO SETS OF 10B.
*         EACH SET OF 10B CONSISTS OF AN ADDRESS, 10B DATA BYTES AND
*         16D DISPLAY CODE CHARACTERS INTERPRETATION.  REPETITIVE 
*         LINES ARE SUPPRESSED.  ZERO BYTES ARE PRINTED AS *----*.
  
  
 QF       DATA   0LQF 
  
          SX6    B1          INITIALIZE FOR FLPP DUMP 
          EQ     QPR1        DUMP FLPPS 
 QFT      SPACE  4,10 
***       QFT.
* 
*         DUMP QUEUE FILE TABLE WITH INTERPRETATION.
  
  
 QFT      DATA   0LQFT
  
          STBL   QFT         SET TABLE POINTERS 
          SX5    =C*           QUEUE FILE TABLE*
          RJ     DTI         DUMP TABLE WITH INTERPRETATION 
          EQ     DSD1        RETURN 
 QOA      SPACE  4,25 
***       QOA,N1,N2,...,NN.  (FOR PRINTER OUTPUT) 
* 
*         QOA,N,FWA,LWA,R.   (FOR TERMINAL OUTPUT)
* 
*         NI     NUMBER OF PP TO BE DUMPED. 
*                IF OMITTED, ALL PP-S ARE DUMPED. 
* 
*         N      NUMBER OF PP TO BE DUMPED. 
*                IF OMITTED, ZERO IS ASSUMED. 
* 
*         FWA    FIRST WORD ADDRESS (OCTAL) TO BE DUMPED. 
*                IF OMITTED, ZERO IS ASSUMED. 
* 
*         LWA    LAST WORD ADDRESS + 1 (OCTAL) TO BE DUMPED.
*                IF OMITTED, FWA + 1 IS ASSUMED.
* 
*         R      IF PRESENT, SPECIFIES THAT R-REGISTER
*                SHOULD BE DUMPED.
* 
*         THE *QOA* DIRECTIVE CAUSES PP MEMORY TO BE DUMPED IN
*         OCTAL LINE FORMAT WITH ASCII CODE INTERPRETATION. 
  
  
 QOA      DATA   0LQOA
          SX6    3           SET OCTAL LINE ASCII CODE FORMAT 
          EQ     QOD1        DUMP PP MEMORY 
 QOD      SPACE  4,30 
***       QOD,N1,N2,...,NN.  (FOR PRINTER OUTPUT) 
* 
*         QOD,N,FWA,LWA,R.   (FOR TERMINAL OUTPUT)
* 
*         NI     NUMBER OF PP TO BE DUMPED. 
*                IF OMITTED, ALL PP-S ARE DUMPED. 
* 
*         N      NUMBER OF PP TO BE DUMPED. 
*                IF OMITTED, ZERO IS ASSUMED. 
* 
*         FWA    FIRST WORD ADDRESS (OCTAL) TO BE DUMPED. 
*                IF OMITTED, ZERO IS ASSUMED. 
* 
*         LWA    LAST WORD ADDRESS + 1 (OCTAL) TO BE DUMPED.
*                IF OMITTED, LWA+10B IS ASSUMED.
* 
*         R      IF PRESENT, SPECIFIES THAT R-REGISTER
*                SHOULD BE DUMPED.
* 
*         THE *QOD* DIRECTIVE CAUSES PP MEMORY TO BE DUMPED 
*         IN OCTAL LINE FORMAT WITH DISPLAY CODE INTERPRETATION.
*         EACH LINE CONTAINS AN OCTAL ADDRESS, THE CONTENTS OF
*         EIGHT 16-BIT WORDS, AND DISPLAY CODE CHARACTER
*         INTERPRETATION.  EACH WORD IS REPRESENTED BY
*         6 OCTAL DIGITS UNLESS THE UPPER 4 BITS OF THE 
*         WORD ARE ZERO, WHEN THE WORD IS REPRESENTED BY
*         4 OCTAL DIGITS.  ZERO WORDS ARE REPRESENTED BY
*         4 HYPHENS.  REPETITIVE LINES ARE SUPPRESSED.  IF
*         SPECIFIED, THE R-REGISTER PRECEDES THE FIRST LINE 
*         OF THE DUMP.
  
  
 QOD      DATA   0LQOD
  
          SX6    2           SET OCTAL LINE DISPLAY CODE FORMAT 
 QOD1     SA1    //AP 
          ZR     X1,ERR25    IF NO *IOU* SUBSYSTEM
          SA6    CPRA+3      DUMP FORMAT CODE 
          SA1    PS 
          BX6    X1 
          SA6    A6-B1       SET R-REGISTER DUMP
          SA6    A6-B1       SET LWA+1
          AX1    13 
          LX7    X1,B1
          SA7    K4          SET BUFFER LENGTH
          BX6    X6-X6
          RJ     IPD         INITIALIZE FOR 16-BIT PP DUMP
          SA1    TF 
          ZR     X1,QOD5     IF PRINTER OUTPUT
          BX7    X7-X7       PRESET NOT R-REGISTER DUMP 
          SB7    B0          ASSEMBLE PP NUMBER 
          SA7    CPRA+2 
          RJ     ASD
          NZ     X4,ERR6     IF ERROR 
          RJ     SPD         SET UP PP/CPP DUMP 
          SA1    CPRA+3 
          SX1    X1-4 
          PL     X1,QOD2     IF HEXADECIMAL ADDRESSES 
          SB7    B0          ASSEMBLE OCTAL FWA FOR DUMP
          RJ     ASD
          NZ     X4,ERR6     IF ERROR 
          MX7    -2 
          BX6    X6*X7       ROUND FWA DOWN 
          SA6    CPRA        SET DUMP FWA 
          SX6    X6+10B 
          SA6    CPRA+1      PRESET DUMP LWA+1
          RJ     ASD
          EQ     QOD4        ASSEMBLE R-REGISTER PARAMETER
  
 QOD2     RJ     ASX         ASSEMBLE HEX FWA 
          ZR     B6,QOD3     IF END OF DIRECTIVE
          NZ     X4,ERR6     IF ERROR 
          MX7    -3 
          BX6    X6*X7       ROUND FWA DOWN 
 QOD3     SA6    CPRA        SET DUMP FWA 
          SX6    X6+10B 
          SA6    CPRA+1      PRESET DUMP LWA+1
          RJ     ASX
 QOD4     ZR     B6,QOD6     IF END OF DIRECTIVE
          NZ     X4,QOD6     IF CONVERSION ERROR
          SA6    CPRA+1      SET DUMP LWA+1 
          RJ     ASN         ASSEMBLE R-REGISTER PARAMETER
          SA6    CPRA+2 
          EQ     QOD6        DUMP PP/CPP
  
 QOD5     RJ     SNP         SELECT NEXT PP TO DUMP 
          ZR     X1,DSD1     IF NO MORE PP-S
 QOD6     RJ     CPD         COPY PP DATA TO BUFFER 
          SA1    CPRA        DUMP 16-BIT PP 
          RJ     DSP
          SA1    TF 
          ZR     X1,QOD5     IF PRINTER OUTPUT
          EQ     DSD1        RETURN TO PROCESS NEXT DIRECTIVE 
 QXA      SPACE  4,25 
***       QXA,N1,N2,...,NN.  (FOR PRINTER OUTPUT) 
* 
*         QXA,N,HFWA,HLWA,R.   (FOR TERMINAL OUTPUT)
* 
*         NI     NUMBER OF PP TO BE DUMPED. 
*                IF OMITTED, ALL PP-S ARE DUMPED. 
* 
*         N      NUMBER OF PP TO BE DUMPED. 
*                IF OMITTED, ZERO IS ASSUMED. 
* 
*         HFWA   FIRST WORD ADDRESS (HEX) TO BE DUMPED. 
*                IF OMITTED, ZERO IS ASSUMED. 
* 
*         HLWA   LAST WORD ADDRESS + 1 (HEX) TO BE DUMPED.
*                IF OMITTED, FWA + 1 IS ASSUMED.
* 
*         R      IF PRESENT, SPECIFIES THAT R-REGISTER
*                SHOULD BE DUMPED.
* 
*         THE *QXA* DIRECTIVE CAUSES PP MEMORY TO BE DUMPED 
*         IN HEX LINE FORMAT WITH ASCII CODE INTERPRETATION.
  
  
 QXA      DATA   0LQXA
  
          SX6    5           SET HEX LINE ASCII CODE FORMAT 
          EQ     QOD1        DUMP PP MEMORY 
 QXD      SPACE  4,25 
***       QXD,N1,N2,...,NN.  (FOR PRINTER OUTPUT) 
* 
*         QXD,N,HFWA,HLWA,R.   (FOR TERMINAL OUTPUT)
* 
*         NI     NUMBER OF PP TO BE DUMPED. 
*                IF OMITTED, ALL PP-S ARE DUMPED. 
* 
*         N      NUMBER OF PP TO BE DUMPED. 
*                IF OMITTED, ZERO IS ASSUMED. 
* 
*         HFWA   FIRST WORD ADDRESS (HEX) TO BE DUMPED. 
*                IF OMITTED, ZERO IS ASSUMED. 
* 
*         HLWA   LAST WORD ADDRESS + 1 (HEX) TO BE DUMPED.
*                IF OMITTED, FWA + 1 IS ASSUMED.
* 
*         R      IF PRESENT, SPECIFIES THAT R-REGISTER
*                SHOULD BE DUMPED.
* 
*         THE *QXD* DIRECTIVE CAUSES PP MEMORY TO BE DUMPED 
*         IN HEX LINE FORMAT WITH DISPLAY CODE INTERPRETATION.
  
  
 QXD      DATA   0LQXD
  
          SX6    4           SET HEX LINE DISPLAY CODE FORMAT 
          EQ     QOD1        DUMP PP MEMORY 
 RA       SPACE  4,3
***       RA,NNNNNNN. 
* 
*         RESET REFERENCE ADDRESS TO NNNNNNN. 
  
  
 RA       DATA   0LRA 
  
          RJ     LDC         LIST DIRECTIVE CARD
          SB7    0           SET OCTAL BASE 
          RJ     ASD         ASSEMBLE NNNNNNN 
          NZ     X4,ERR6     IF ASSEMBLY ERROR
          SA6    UA          SET USER CONTROLLED REFERENCE ADDRESS
          RJ     SRA         SET REFERENCE ADDRESS
          SA6    US          SET USER CONTROLLED RA (SUBTITLE)
          JP     DSD1        RETURN 
 RAC      SPACE  4,3
***       RAC,NN. 
* 
*         RESET REFERENCE ADDRESS TO THE RA OF CONTROL POINT NN.
  
  
 RAC      DATA   0LRAC
  
          RJ     LDC         LIST DIRECTIVE CARD
          SB7    0           SET OCTAL BASE 
          RJ     ASD         ASSEMBLE CONTROL POINT NUMBER
          NZ     X4,ERR6     IF ASSEMBLY ERROR
          RJ     CRA         COMPUTE CONTROL POINT REFERENCE ADDRESS
          SA6    UA          SET USER CONTROLLED REFERENCE ADDRESS
          RJ     SRA         SET REFERENCE ADDRESS
          SA6    US          SET USER CONTROLLED RA (SUBTITLE)
          JP     DSD1        RETURN 
 RCL      SPACE  4,3
***       RCL.
* 
*         DUMP RESIDENT CENTRAL LIBRARY IN *C* FORMAT.
  
  
 RCL      DATA   0LRCL
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     SCM         SELECT CENTRAL MEMORY
          SA7    RI 
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE CARD
          SA1    F.TCMT 
          SA2    X1+RCLP     GET FWA RCL
          LX2    24 
          SX6    X2 
          SA6    CPRA        SAVE FWA RCL 
          SB2    A6+
          RJ     POM         POSITION TO PROGRAM LENGTH 
          GETCM 
          BX5    X6 
          ZR     X5,ERR31    IF RCL EMPTY 
          PRINT  (=2C  )
          PRINT  (=C*          RESIDENT CENTRAL LIBRARY*) 
          PRINT  (=2C  )
 RCL1     SA3    CPRA        SET LWA+1 OF NEXT PROGRAM
          IX7    X5+X3
          SX7    X7 
          SA7    A3+B1
          RJ     PCM         POSITION TO RCL
          SB2    CPRA 
          RJ     PMD         PROCESS MEMORY DUMP
          SA2    CPRA+1      SET FWA OF NEXT PROGRAM
          SX6    X2 
          SB2    A2-B1
          SA6    CPRA 
          RJ     POM         POSITION TO NEXT PROGRAM LENGTH
          GETCM 
          BX5    X6 
          ZR     X5,DSD1     IF NO MORE PROGRAMS - RETURN 
          PRINT  (=2C  )     SPACE BETWEEN PROGRAMS 
          PRINT  (=2C  )
          PRINT  (=2C  )
          PRINT  (=2C  )
          PRINT  (=2C  )
          EQ     RCL1        DUMP NEXT PROGRAM
 READ     SPACE  4,14 
***       READ,LFN. 
*         READ DIRECTIVE INPUT FROM FILE *LFN* UNTIL END OF RECORD. 
*         RECORDS MUST BE IN TEXT FORMAT WHERE THE FIRST WORD OF THE
*         RECORD IS THE NAME. 
* 
*         READ,LFN,NAME.
*         READ ONE NAMED RECORD FROM FILE *LFN*.  THE FILE IS SEARCHED
*         FROM CURRENT POSITION TO END OF FILE OR AN EMPTY RECORD.
* 
*         READ,LFN,*. 
*         READ ALL RECORDS TILL EOF OR AN EMPTY RECORD. 
* 
*         AT END OF READ PROCESSING, INPUT RESUMES FROM THE ORIGINAL
*         INPUT FILE. 
  
  
 READ     DATA   0LREAD 
  
          RJ     LDC         LIST DIRECTIVE CARD
          RJ     ASN         ASSEMBLE FILE NAME 
          ZR     B6,ERR12    IF NULL NAME 
          SX7    B6+42
          NG     X7,ERR12    IF NAME TOO LONG 
          SX7    X7-42
          ZR     X7,ERR12    IF NULL NAME 
          SX7    B1 
          BX6    X6+X7
          SA6    J           SET FILE NAME IN FET 
          SA1    A6+B1       READ *FIRST* POINTER 
          SX6    X1 
          SA6    A1+B1       IN = FIRST 
          SA6    A6+B1       OUT = IN 
          SX2    J           CHECK IF TERMINAL FILE 
          RJ     STF
          NZ     X6,RCN0     IF NOT TERMINAL FILE 
          SX7    1           SET READ TO EOR
          SA7    AF 
          JP     DSD1        RETURN 
  
 RCN0     SA1    CH 
          SA1    X1+
          SX6    X1-1R. 
          ZR     X6,RCN1     IF RECORD NAME NOT SPECIFIED 
          RJ     ASN         ASSEMBLE RECORD NAME 
 RCN1     RJ     GSR         GET SELECTED RECORD
          ZR     X7,ERR14    IF RECORD NOT FOUND
          SA7    AF          SET ALTERNATE INPUT FLAG 
          JP     DSD1        RETURN 
 REWIND   SPACE  4,3
***       REWIND,LFN. 
* 
*         REWIND FILE *LFN*.
  
  
 REWIND   DATA   0LREWIND 
  
          RJ     ASN         ASSEMBLE FILE NAME 
          MX0    42 
          BX5    X0*X6
          SA1    REWA        SET FET LIST ADDRESS 
 REW1     SA2    X1          CHECK FOR NAME IN FET
          BX2    X0*X2
          BX7    X5-X2
          SA1    A1+B1       SET NEXT ENTRY 
          ZR     X7,REW2     IF CORRECT FET FOUND 
          NZ     X1,REW1     IF NOT END OF LIST 
          RECALL F
          SX7    3           SET FILE NAME IN INPUT FET 
          BX7    X5+X7
          SA7    X2 
          EQ     REW3        REWIND FILE
  
 REW2     RECALL A2 
 REW3     REWIND X2          REWIND FILE
          EQ     DSD1        RETURN 
  
 REWA     CON    I           DIRECTIVE INPUT
          CON    J           ALTERNATE INPUT
          CON    F           BINARY INPUT 
          CON    L           LISTING OUTPUT 
          CON    A           ALTERNATE LIST 
          CON    S           BINARY SCRATCH 
          CON    0           END OF LIST
          SPACE  4,10 
***       RHF,OPS.
* 
*         WHERE OPS IS A STRING OF UP TO 3 CHARACTERS 
*         SELECTING THE DUMP OPTIONS LISTED BELOW.
* 
*         A      DUMPS RHF DAYFILE BUFFER.
* 
*         C      DUMPS RHF FIELD LENGTH.
* 
*         P      PROVIDES DUMP AND FULL ANALYSIS OF 
*                PP-S RUNNING *NDR*, *NLD*, AND *RHH*.
* 
*         *RHF.*  IS EQUIVALENT TO  *RHF,ACP.* .
  
 RHF      DATA   0LRHF
  
  
          SA5    RHFA 
          RJ     ISS         INITIALIZE FOR SUBSYSTEM DUMP
          GETCM  SSBF,100    READ RHF POINTERS
          SA5    RHFB 
          RJ     DSS         DUMP SUBSYSTEM 
          EQ     DSD1        RETURN 
  
  
 RHFA     VFD    24/0,12/RFSI,24/0
  
 RHFB     VFD    60/0LACP 
          VFD    36/0,6/1RA,18/DHA
          VFD    36/0,6/1RC,18/DHC
          VFD    36/0,6/1RP,18/DHP
          VFD    60/0 
  
 RPL      SPACE  4,6
***       RPL.
* 
*         DUMP RESIDENT PERIPHERAL LIBRARY IN BYTE FORMAT WITH
*         DISPLAY CODE INTERPRETATION.  EACH LINE OF TWO CENTRAL MEMORY 
*         WORDS INDICATES ITS ORDINAL RELATIVE TO THE FWA OF THE PP.
*         THE PP NAME AND BYTE LENGTH IS ALSO LISTED. 
  
  
 RPL      DATA   0LRPL
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     SCM         SELECT CENTRAL MEMORY
          SA7    RI 
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE CARD
          SA1    F.TCMT 
          SA2    X1+RPLP
          LX2    24 
          SX5    X2          ADDRESS OF FIRST OVERLAY HEADER
          SX6    LRPL 
          SA6    RPLA        SET MAXIMUM NUMBER OF OVERLAYS TO DUMP 
 RPL1     SA1    RPLA 
          SX6    X1-1 
          SA6    A1          DECREMENT MAXIMUM OVERLAYS TO DUMP 
          NG     X6,DSD1     IF MAXIMUM DUMPED
          SX3    X5 
          RJ     DPO         DUMP PP OVERLAY
          NZ     X6,RPL1     IF MORE PP OVERLAYS TO DUMP
          JP     DSD1        RETURN 
  
 RPLA     BSS    1           MAXIMUM NUMBER OF OVERLAYS TO DUMP 
 SAB      SPACE  4,10 
***       SAB.
* 
*         DUMP SYSTEM ATTRIBUTE BLOCK IN *D* FORMAT.
  
  
 SAB      DATA   0LSAB
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT 
          SA2    X1+EABL+MFEI  GET SAB ADDRESSES
          MX7    -12
          MX6    -18
          LX2    0-12 
          BX7    -X7*X2      LENGTH OF SAB
          LX2    0-42+0+12
          BX6    -X6*X2      FWA OF SAB 
          IX7    X6+X7       LWA+1 OF SAB 
          SB3    B1          SET *D* FORMAT 
          SX4    B0          SET READ FROM DUMP FILE
          SX5    =C*          SYSTEM ATTRIBUTE BLOCK* 
          RJ     DTB         DUMP BUFFERS 
          EQ     DSD1        RETURN 
 SC       SPACE  4,3
***       SC. 
* 
*         DUMP STATUS AND CONTROL REGISTER FOR CYBER 170, 
*         700, AND 865/875 MAINFRAMES.
  
  
 SC       DATA   0LSC 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    =10HSCR
          BX6    X1 
          SA6    SBTL1       SET NAME FOR SUBTITLE
          SA6    SCPB        SET *SC1* NOT YET PROCESSED
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE CARD
          RJ     SSB         CLEAR PRINT STRING 
          SA1    .SCR 
          MX0    18 
          SEARCH TDIR,X1,X0  LOCATE SCR RECORD
          ZR     X2,ERR2     IF NO SCR RECORD 
 SCP1     SA5    A2+2 
          MX0    24 
          LX0    -12
          SA3    =6L  SC16
          BX4    X3-X5
          BX2    X0*X4
          NZ     X2,ERR2     IF NO SC16 RECORD FOUND
          RJ     SSB         CLEAR PRINT STRING 
          PRINT  (=2C  )
          SA1    SCPB 
          NZ     X1,SCP2     IF *SC1* NOT YET PROCESSED 
          SA2    =38HSCR REGISTER 0 AFTER CLEAR(CHANNEL 16) 
          EQ     SCP3        CONTINUE 
  
 SCP2     SA2    =38HSTATUS/CONTROL REGISTER 0 (CHANNEL 16) 
 SCP3     SB7    PRBF+15
          SA0    BUF         SC REGISTER ADDRESS
          RJ     SCH         SET SC DIRECTIVE HEADER
          SA5    A5+1 
          MX0    24 
          LX0    -12
          SA3    =6L  SC36
          BX4    X3-X5
          BX6    X0*X4
          SA6    SCPA        SET SC36 PRESET OR NOT 
          NZ     X6,SCP6     IF SC36 RECORD NOT FOUND 
          SA1    SCPB 
          NZ     X1,SCP4     IF *SC1* NOT YET PROCESSED 
          SA2    =38HSCR REGISTER 1 AFTER CLEAR(CHANNEL 36) 
          EQ     SCP5        CONTINUE 
  
 SCP4     SA2    =38HSTATUS/CONTROL REGISTER 1 (CHANNEL 36) 
 SCP5     SB7    PRBF+65
          SA0    BUF+4       SC REGISTER ADDRESS
          RJ     SCH         SET SC DIRECTIVE HEADER
 SCP6     SX1    5
          RJ     CPS         CHECK PAGE SPACE 
          PRINT  CCCH,1+65+38 
          PRINT  (=2C  )
  
*         UNPACK SC REGISTER WORDS. 
  
          SB4    4           PRESET NUMBER OF WORDS 
          SA4    SCPA 
          NZ     X4,SCP7     IF SC36 RECORD NOT FOUND 
          SB4    8
 SCP7     SB7    BUF+10      CHARACTER BUFFER 
          SA1    BUF
 SCP8     SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW
          SB4    B4-1 
          ZR     B4,SCP9     IF NO MORE WORDS TO UNPACK 
          SA1    A1+B1       READ NEXT WORD 
          EQ     SCP8        CONTINUE 
  
 SCP9     SX5    BUF+10      SC16 CHARACTER STRING ADDRESS
          SB3    25          NUMBER OF CHARACTERS 
          SA0    =14HBITS 203 - 144 
          RJ     FSC         FORMAT SC REGISTER CONTENTS
          SX5    BUF+35 
          SB3    30 
          SA0    =14HBITS 143 -  72 
          RJ     FSC         FORMAT SC REGISTER CONTENTS
          SX5    BUF+65 
          SB3    30 
          SA0    =14HBITS  71 -  00 
          RJ     FSC         FORMAT SC REGISTER CONTENTS/ 
          SA1    SCPB 
          ZR     X1,DSD1     IF *SC1* PROCESSED, RETURN 
          SA1    .SC1 
          MX0    18 
          SEARCH TDIR,X1,X0  LOCATE SC1 RECORD
          ZR     X2,DSD1     IF NO *SC1* RECORD, RETURN 
          BX6    -X2*X2 
          SA6    SCPB        *SC1* PROCESSED
          EQ     SCP1        CONTINUE 
  
  
 SCPA     BSS    1           IF NONZERO, SC36 RECORD NOT FOUND
 SCPB     BSS    1           IF NONZERO, *SC1* NOT YET PROCESSED
 SDA      SPACE  4,10 
***       SDA.
* 
*         DUMP STATISTICAL DATA AREA.  EACH WORD IS PRINTED 
*         WITH ITS NOSTEXT SYMBOL AND IS SPLIT INTO THE 
*         APPROPRIATE PARAMETER FIELDS. 
  
  
 SDA      DATA   0LSDA
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     SCM         SELECT CENTRAL MEMORY
          SA7    RI          SET CENTRAL MEMORY RANDOM INDEX
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE CARD
          SA1    F.TCMT      SET STATISTICAL DATA AREA FWA
          SA3    X1+SDAP
          AX3    36 
          BX0    -X3         SAVE STATISTICAL DATA AREA FWA 
          SX6    X3          SET FIRST ADDRESS FOR OUTPUT 
          SA6    FW 
          RJ     PCM         POSITION MEMORY RECORD 
          GETCM  BUF,SDAL    READ STATISTICAL DATA AREA 
          SA1    TFSD        SET FIELD DESCRIPTION POINTERS 
          SB2    X0+BUF      SET DATA ADDRESS 
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
          EQ     DSD1        RETURN 
          SPACE  4,10 
***       SECDED. 
* 
*         DUMP SECDED ID TABLE IN *D* FORMAT. 
  
  
 SECDED   DATA   0LSECDED 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          RJ     SCM         SELECT CENTRAL MEMORY
          SA1    F.TCMT      GET ADDRESS OF TABLE 
          SA2    X1+SCRL
          MX6    -18
          AX2    36 
          BX6    -X6*X2 
          SA6    CPRA        SET FWA OF DUMP
          SX7    B1          SELECT *D* FORMAT
          SA7    CPRA+4 
          SX6    X6+UIDL*2   SET LWA+1 OF DUMP
          SA6    CPRA+1 
          RJ     LDC         LIST DIRECTIVE CARD
          JP     CPR2        PROCESS DUMP 
 SETCPU   SPACE  4,10 
**        SETCPU,N. 
* 
*         SETS UP THE CYBER 170-8XX PROCESSOR POINTERS FOR
*         THE PROCESSOR SPECIFIED BY *N*. DEFAULT IS CPU 0. 
  
  
 SETCPU   DATA   0LSETCPU 
  
          RJ     ASN
          ZR     X6,STP1     IF DEFAULT 
          BX5    X6 
          SB7    0           SET OCTAL BASE 
          RJ     DXB
          SA1    STPA 
          IX1    X1-X6
          NG     X1,ERR6     IF PARAMETER ERROR 
 STP1     SA6    SPPB        SAVE PROCESSOR NUMBER
          RJ     SPP         SET PROCESSOR POINTERS 
          EQ     DSD1        RETURN 
  
 STPA     CON    1           MAXIMUM PROCESSOR NUMBER 
 SETIOU   SPACE  4,20 
***       SETIOU. 
*         SET PP SIZE TO 4096 12 BIT WORDS AND PP TYPE TO 
*         NON-CONCURRENT PP.
* 
*         SETIOU,P1,P2. 
*         SET PP SIZE AND TYPE BASED ON THE FOLLOWING PARAMETERS: 
* 
*         C - SET PP SIZE TO 8192 16 BIT WORDS, PP TYPE TO
*         CONCURRENT PP SUBSYSTEM.
* 
*         N - SET PP SIZE TO 4096 16 BIT WORDS, PP TYPE TO
*         NON-CONCURRENT PP SUBSYSTEM.
* 
*         8K - SET PP SIZE TO 8192 16 BIT WORDS.
* 
*         4K - SET PP SIZE TO 4096 16 BIT WORDS - IGNORED IF THE *C*
*              PARAMETER IS ALSO SPECIFIED. 
* 
*         NOTE - PARAMETERS *C* AND *N*, AS WELL AS *4K* AND *8K*, ARE
*         INCOMPATIBLE AND WILL FORCE AN ERROR IF SPECIFIED TOGETHER. 
  
  
  
 SETIOU   DATA   0LSETIOU 
  
          SA1    EF 
          SX6    B1+
          SA0    X1          SAVE EJECT FLAG
          SA6    A1          TURN EJECT ON
          RJ     LDC         LIST DIRECTIVE CARD
          SX6    A0+
          SA6    EF          RESTORE EJECT FLAG 
          SB2    2           SET PARAMETER COUNTER
          SX5    4           SET DEFAULT INDEX
 SPU1     RJ     ASN         ASSEMBLE PARAMETER NAME
          ZR     X6,SPU4     IF NO PARAMETER PRESENT
          SB2    B2-1 
          NG     B2,ERR6     IF MORE THAN 2 PARAMETERS
          SA1    SPUA-1 
 SPU2     SA1    A1+B1
          ZR     X1,ERR6     IF PARAMETER ERROR 
          MX0    12 
          BX2    X0*X1
          BX7    X6-X2
          NZ     X7,SPU2     IF NO MATCH
          MX0    -4 
          ZR     B2,SPU3     IF SECOND PARAMETER
          BX3    -X0*X1      GET COMBINATION MASK 
          LX1    -44         SET INDEX
          BX5    -X0*X1 
          EQ     SPU1        PROCESS NEXT PARAMETER 
  
 SPU3     BX4    X3*X1
          ZR     X4,ERR6     IF INVALID PARAMETER COMBINATION 
          LX1    -44
          BX1    -X0*X1 
          BX5    X1+X5       COMBINE INDICES
          EQ     SPU1        CHECK NEXT PARAMETER 
  
 SPU4     MX0    -2          SET PP RECORD SIZE 
          BX2    -X0*X5 
          SX3    10000B      DEFAULT PP RECORD SIZE 
          IX7    X3*X2
          IX7    X7+X3
          SA7    PS 
          AX5    2
          ZR     X5,DSD1     IF ONLY PP MEMORY SIZE CHANGE
          AX6    X5,B1
          SA6    IC+1        SET *NPP*/*CPP* FLAG 
          ZR     X6,DSD1     IF NOT SETTING CPP PROCESSING
          SA1    IO 
          NZ     X1,ERR6     IF NOT I4A OR I4S IOU
          EQ     DSD1        RETURN 
  
  
**        SPUA - VALID PARAMETER TABLE. 
* 
*T        12/ VP,2/ C,2/ S,40/ 0,4/ MSK.
*         VP     VALID PARAMETER. 
*         C      CONCURRENT PP PROCESSING FLAG. 
*         S      PP RECORD SIZE FLAG. 
*         MSK    PARAMETER COMBINATION MASK.
  
  
 SPUA     VFD    12/2L4K,2/0,2/0,40/0,4/11B 
          VFD    12/2L8K,2/0,2/1,40/0,4/6B
          VFD    12/1LN,2/1,2/0,40/0,4/12B
          VFD    12/1LC,2/2,2/1,40/0,4/5B 
          CON    0           END OF TABLE 
 SETJPS   SPACE  4,10 
**        SETJPS,RMA. 
*         SETJPS,PVA. 
* 
*         SET THE S2JPS REGISTER TO AN ARBITRARY VALUE. 
  
  
 SETJPS   DATA   0LSETJPS 
  
          RJ     GHA         GET HARDWARE ADDRESS 
          ZR     B6,ERR6     IF NO ADDRESS SPECIFIED
          SA6    S2JPS       SAVE POSSIBLE RMA
          SB2    32 
          AX7    X6,B2
          ZR     X7,DSD1     IF JUST RMA SPECIFIED
          RJ     PVM         POSITION VIRTUAL MEMORY
          NZ     X2,ERR30    IF PAGE IS MISSING 
          RJ     NXB
          BX5    X1 
          LX5    16 
          RJ     NXB
          BX6    X1+X5
          SA6    S2JPS
          JP     DSD1        RETURN 
 SETRMA   SPACE  4,10 
***       SETRMA,PVA. 
* 
*         DISPLAY THE TRANSLATED REAL MEMORY ADDRESS FOR A PVA. 
  
  
 SETRMA   DATA   0LSETRMA 
  
          RJ     GHA         GET HARDWARE ADDRESS 
          ZR     B6,ERR6     IF NO ADDRESS SPECIFIED
          RJ     PVM         POSITION VIRTUAL MEMORY
          NZ     X2,ERR30    IF PAGE IS MISSING 
          SA2    =17HTRANSLATED PVA = 
          SB6    17 
          SB7    PRBF 
          RJ     UPS         UNPACK STRING
          SB6    6
          SA1    BRMA        GET TRANSLATED RMA 
          BX6    X1 
          LX1    59-23
          SA6    S2RMA       SAVE FOR SYMBOL *RMA*
          RJ     HTS         COPY TO BUFFER 
          PRINT  CCCH,B7-CCCH  *TRANSLATED PVA = NNNNNN*
          JP     DSD1        PROCESS NEXT COMMAND 
 SETVEP   SPACE  4,10 
**        SETVEP,PTA,PTL,PSM,MPS. 
* 
*         SET VE PARAMETERS.
  
  
 SETVEP   DATA   C*SETVEP*
          RJ     ASX
          NZ     X4,ERR6     IF PARAMETER ERROR 
          SA6    S2PTA
          RJ     ASX
          NZ     X4,ERR6     IF PARAMETER ERROR 
          SA6    S2PTL
          RJ     ASX
          NZ     X4,ERR6     IF PARAMETER ERROR 
          SA6    S2PSM
          RJ     ASX
          NZ     X4,ERR6     IF PARAMETER ERROR 
          SA6    S2MPS
          JP     DSD1        RETURN 
 SST      SPACE  4,10 
***       SST.
* 
*         DUMP SUBSYSTEM CONTROL POINT TABLE AND SUBSYSTEM ASSIGNMENT 
*         TABLE IN *D* FORMAT.
  
  
 SST      DATA   0LSST
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    F.TCMT      GET FWA OF SSCT
          SA2    X1+SSCP
          AX2    12 
          SX6    X2 
          SX7    X6+SSCTL    GET LWA+1 OF SSCT
          SX5    =C*           SUBSYSTEM CONTROL POINT TABLE* 
          SB3    B1          SET *D* FORMAT 
          IX4    X6+X1       SET ADDRESS OF READ FROM CORE
          RJ     DTB         DUMP SSCT
          SB3    -B1         SET NO PAGE EJECT
          SA1    CPRA+1      GET FWA OF SSAT
          BX6    X1 
          SX7    X6+SSCTL    GET LWA+1 OF SSAT
          SX5    =C*           SUBSYSTEM ASSIGNMENT TABLE*
          SA1    F.TCMT      SET ADDRESS OF READ FROM CORE
          IX4    X6+X1
          RJ     DTB         DUMP SSAT
          EQ     DSD1        RETURN 
 TBDUMP   SPACE  4,10 
***       TBDUMP,MTR. 
*         TBDUMP,PPU. 
* 
*         DISPLAY THE SELECTED TRACE BUFFER IN *D* FORMAT.
*         THE FUNCTIONS TRACED, ABSOLUTE ADDRESSES SAVED, AND CPA 
*         ADDRESSES SAVED (*TBDUMP,MTR* ONLY) ARE ALSO DISPLAYED. 
  
  
 TBDUMP   DATA   0LTBDUMP 
  
          RJ     LDC         LIST DIRECTIVE CARD
          RJ     ASN         ASSEMBLE PARAMETER 
          SA1    TBDB 
 TBD1     ZR     X1,ERR6     IF INCORRECT PARAMETER 
          BX2    X1-X6
          SA1    A1+B1
          NZ     X2,TBD1     IF NO MATCH
          SX6    A1-TBDB-1
          SA6    TBDA 
          RJ     SCM         SET CENTRAL MEMORY 
          SA7    RI 
          SA1    F.TCMT 
          SA3    X1+CMBL
          AX3    36 
          RJ     PCM         POSITION TO BLOCK NAME TABLE 
          SA5    =5RTRACE 
 TBD2     GETCM 
          SX3    X6 
          ZR     X3,ERR21    IF NO TRACE BLOCK
          AX6    30 
          BX6    X6-X5
          NZ     X6,TBD2     IF NOT TRACE POINTER 
          RJ     PCM         POSITION TO TRACE BLOCK
          GETCM  TBDC,5      SAVE POINTER WORDS 
          SA1    TBDA 
          ZR     X1,TBD3     IF MTR 
          SX1    3
 TBD3     SA2    X1+TBDC
          SX7    X2 
          SX6    B1          SET *D* FORMAT 
          SA7    CPRA        SET FWA
          SA6    CPRA+4 
          AX2    18 
          SX7    X2 
          SA7    CPRA+1      SET LWA+1
          SA3    X1+TBDC+1
          RJ     PCM         GET LIST OF FUNCTIONS TRACED 
          GETCM 
          BX5    X6 
          RJ     SSB         CLEAR STRING BUFFER
          SA2    =19HFUNCTIONS TRACED - 
          SB7    PRBF 
          SB6    19 
          RJ     UPS         UNPACK STRING
          BX1    X5 
          SA2    =4000005B
          RJ     FDW         FORMAT DATA WORD 
          SA2    =15H*IN* POINTER - 
          SB7    B7+5 
          SB6    15 
          RJ     UPS         UNPACK STRING
          SA3    CPRA        GET *IN* POINTER 
          SX3    X3-1 
          RJ     PCM         POSITION TO *IN* POINTER 
          GETCM 
          BX1    X6 
          LX1    59-17
          SB6    6
          SB7    PRBF+64
          RJ     CTS         PRINT *IN* 
          PRINT  CCCH,B7-CCCH 
          RJ     SSB         CLEAR STRING BUFFER
          PRINT  (=2C  )
          SA3    TBDC+2      GET ABS ADDRESS LIST 
          AX3    18 
          RJ     PCM         POSITION TO ABS ADDRESS LIST 
          SA2    =18HABS WORDS SAVED -
          SA5    TBDA 
 TBD4     SB7    PRBF 
          SB6    18 
          RJ     UPS         UNPACK STRING
          GETCM              GET ADDRESS OF FIRST WORD SAVED
          BX1    X6 
          LX1    59-17
          SB7    PRBF+18
          SB6    6
          RJ     CTS         CONVERT ADDRESS
          SA0    A1          SAVE FET ADDRESS 
          LX1    59-41       GET SECOND ADDRESS 
          SB7    B7+2 
          SB6    6
          RJ     CTS         CONVERT ADDRESS
          PRINT  CCCH,B7-CCCH 
          RJ     SSB         CLEAR PRINT STRING 
          PRINT  (=2C  )
          NZ     X5,CPR2     IF THROUGH PROCESSING ADDRESS LISTS
          SX5    X5+B1       SET UP EXIT
          SA2    =18HCPA WORDS SAVED -
          SA1    A0          GET CPA ADDRESS LIST 
          EQ     TBD4        DISPLAY CPA ADDRESS LIST 
  
  
 TBDA     CON    0           MTR/PPU FLAG 
 TBDB     CON    3LMTR
          CON    3LPPU
          CON    0
 TBDC     VFD    24/0,18/0,18/0  *MTR* TRACE BUFFER LWA+1, FWA
          VFD    42/0,18/0       *MTR* FUNCTION LIST
          VFD    24/0,18/0,18/0  ABS/CPA ADDRESS LISTS
          VFD    24/0,18/0,18/0  *PPU* TRACE BUFFER LWA+1, FWA
          VFD    42/0,18/0       *PPU* FUNCTION LIST
 TRACE    SPACE  4,10 
**        TRACEBK,PVA.
* 
*         PERFORM TRACEBACK ON EXCHANGE PACKAGE.
  
  
 TRACE    DATA   C*TRACEBK* 
  
          RJ     LDC         LIST DIRECTIVE AND EJECT 
          SA1    TF          CHECK TERMINAL FLAG
          SX6    51 
          ZR     X1,TRC1     IF PRINTER, DISPLAY FULL STACK FRAMES
          SX6    3
 TRC1     SA6    TRCA+2      MAXIMUM DISPLAY SIZE 
          RJ     GHA         GET HARDWARE ADDRESS 
          SX3    B0+         SET NO RADIAL MCI DISPLAY
          RJ     PTX         POSITION TO EXCHANGE PACKAGE 
          SX1    B0 
          SA2    TRCA+2 
          BX6    X2 
          RJ     FXA         FORMAT EXCHANGE AREA 
          RJ     CSI         COLLECT SEGMENT INFORMATION
          SA6    TRCA+1 
 TRC2     PRINT  (=2C  )
          SA1    BUF+3*4+1
          SA2    A1+B1
          SA3    A2+B1
          LX1    32 
          LX2    16 
          BX6    X3+X1
          BX6    X6+X2
          RJ     EVA         EXPAND VIRTUAL ADDRESS 
          ZR     X2,DSD1     IF END OF THE LINE 
          SA7    TRCA        SAVE THE PVA 
          SB2    A7 
          RJ     SVA         CONVERT TO SVA 
          SA6    TRCA        SAVE SVA 
          SA2    A6+B1
          BX6    X2 
          RJ     DPN         DISPLAY PROCEDURE NAME 
          SA1    TRCA 
          BX6    X1 
          RJ     PVM         POSITION VIRTUAL MEMORY
          NZ     X2,ERR30    IF PAGE ENTRY NO PRESENT 
          SA2    TRCA+2 
          SA1    TRCA        EXCHANGE PACKAGE SVA 
          BX6    X2 
          RJ     FXA         FORMAT FIRST THREE WORDS 
          JP     TRC2        PROCESS NEXT STACK FRAME 
  
 TRCA     CON    0           TRAP PACKAGE SVA 
          CON    0           EXCHANGE PACKAGE RMA 
          CON    0,0
  
 UEC      SPACE  4,10 
***       UEC,FWA.
* 
*         SET MEMORY TYPE TO *UEC*.  SUBSEQUENT C, D, AND E 
*         DIRECTIVES APPLY TO USER EXTENDED CORE MEMORY.
* 
*         FWA SPECIFIES THE FIRST WORD ADDRESS/1000B FOR USER ECS.
*         IF OMITTED, THE FIRST WORD ADDRESS FOR UEC IS OBTAINED
*         FROM RAE IN THE SYSTEM CONTROL POINT *ECSW* WORD.  FOR USER 
*         ECS IN UEM, THE UEM BASE ADDRESS FROM CMR WORD *UEML* IS
*         ALSO ADDED TO THE RAE FROM THE SYSTEM CONTROL POINT.
  
  
 UEC      DATA   0LUEC
  
          RJ     LDC         LIST DIRECTIVE CARD
          SA1    F.TCMT 
          SA2    X1+ECRL
          MX3    -12
          LX2    -36
          BX2    -X3*X2 
          ZR     X2,UEC3     IF NO USER EXTENDED MEMORY DEFINED 
          RJ     SEM         SET UNIFIED EXTENDED MEMORY (UEM)
          NG     X3,UEC1     IF UEM DEFINED 
          RJ     SEC         SET EXTENDED CORE STORAGE
 UEC1     SA7    UI          SET USER CONTROLLED MEMORY RANDOM INDEX
          SB7    B0+         SELECT OCTAL BASE
          RJ     ASD         ASSEMBLE FWA FROM UEC DIRECTIVE
          LX6    9
          NZ     X6,UEC2     IF FWA SPECIFIED 
          SA1    F.TCMT 
          SA2    NC          GET SYSTEM CP RAE
          SA3    UE          GET USER EM SHIFT COUNT
          SX2    X2+B1
          LX2    7
          IX2    X1+X2
          SB2    X3+9 
          MX6    -24
          SA2    X2+ECSW
          LX2    -12
          BX6    -X6*X2 
          SA3    MB          SET USER EXTENDED MEMORY BASE ADDRESS
          LX6    B2 
          IX6    X3+X6
 UEC2     SA6    MB 
          SA1    =10HUEC         SET NAME FOR SUBTITLE
          BX6    X1 
          SA6    SBTL1
          SA6    US+1        SET USER CONTROLLED MEMORY NAME
          EQ     DSD1        RETURN 
  
 UEC3     SX7    B1+         SET EXTENDED MEMORY ERROR FLAG 
          SA7    EE 
          EQ     ERR41       PROCESS *USER EXTENDED MEMORY NOT DEFINED* 
 W        SPACE  4,20 
***       W,HFBN,HLBN,ASID. 
* 
*         DUMP 64-BIT MEMORY IN WORD FORMAT.
* 
*         HFBN   FIRST BYTE NUMBER (HEX) TO BE DUMPED.
* 
*         HLBN   LAST BYTE NUMBER + 1 TO BE DUMPED. 
*                IF OMITTED, HFBN+8 IS ASSUMED. 
* 
*         ASID   SPECIFIES THE ACTUAL SEGMENT IDENTIFIER OF THE 
*                MEMORY TO BE DUMPED.  IF ASID=1 THEN HFBN AND
*                HLBN ARE ADDRESSES WITHIN THE CYBER 170-8X5 ERROR
*                INTERFACE PACKAGE.  IF OMMITTED, HFBN AND HLBN 
*                ARE REAL MEMORY ADDRESSES. 
* 
*         THE *W* DIRECTIVE CAUSES THE SPECIFIED LOCATIONS OF 
*         CENTRAL MEMORY TO BE DUMPED IN HEXADECIMAL (FOUR
*         WORDS PER LINE WITH ASCII CHARACTER EQUIVALENTS). 
*         OUTPUT TO THE TERMINAL IS NOT PROVIDED. 
  
  
 W        DATA   0LW
  
          SX6    2           SET *W* FORMAT CODE
          EQ     IPR1        DUMP CENTRAL MEMORY
 XP       SPACE  4,4
***       XP. 
* 
*         DUMP THE CPU(S) EXCHANGE PACKAGE(S) EXECUTING AT THE TIME 
*         OF DEAD START.
  
  
 XP       DATA   0LXP 
  
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA1    =10HCPR
          BX6    X1 
          SA6    SBTL1       SET NAME FOR SUBTITLE
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE CARD
          RJ     SSB         CLEAR PRINT STRING 
          SA1    .CP0 
          MX0    24 
          LX0    -12
          SEARCH TDIR,X1,X0  LOCATE CPU0 RECORD 
          NZ     X2,XPP3     IF CPU0 RECORD FOUND 
          RJ     FPX         FIND CYBER 170-8X5 EXCHANGE PACKAGE
          BX6    X1          SAVE CPU1(800) EXCHANGE PACKAGE POINTER
          SA6    XPPD 
          SA2    =28HCPU0 HARDWARE REGISTERS - ON 
          SB7    PRBF 
          SB6    28 
          RJ     UPS         SET CPU0 TITLE MESSAGE 
          SX6    0
          SA6    XPPA        SET CPU0 PRESENT 
          SX6    B1 
          SA6    A6+B1       SET CPU1 NOT PRESENT 
          ZR     X1,XPP4     IF CPU1 EXCHANGE PACKAGE NOT PRESENT 
          BX2    X1 
          RJ     FPX
          NZ     X1,XPP1     IF CPU1 IN C170 MODE 
          BX6    X1 
          SA6    XPPD 
          SA2    =46HCPU1 IS IN C180 STATE - USE DIRECTIVE *PROXP.* 
          SB6    46 
          EQ     XPP2        PRINT MESSAGE
  
 XPP1     SA2    =28HCPU1 HARDWARE REGISTERS - ON 
          SB6    28 
 XPP2     SB7    PRBF+45
          RJ     UPS         UNPACK MESSAGE 
          EQ     XPP4        DUMP EXCHANGE PACKAGE
  
 XPP3     SA0    BUF         EXCHANGE PACKAGE ADDRESS 
          SB7    PRBF 
          SA5    A2+
          SA2    =5HCPU0
          SB6    5
          RJ     UPS
          RJ     XPH         SET XP DIRECTIVE HEADER
          SA6    XPPA        SET CPU0 ON/OFF
          SX6    B1 
          SA6    A6+B1       PRESET CPU1 OFF
          SA5    A5+1 
          MX0    24 
          LX0    -12
          SA3    =6L  CPU1
          BX4    X3-X5
          BX2    X0*X4
          NZ     X2,XPP4     IF CPU1 RECORD NOT FOUND 
          SA0    BUF+20B     EXCHANGE PACKAGE ADDRESS 
          SB7    PRBF+45
          SA2    =5HCPU1
          SB6    5
          RJ     UPS
          RJ     XPH         SET XP DIRECTIVE HEADER
          SA6    XPPB        SET CPU1 ON/OFF
 XPP4     SX1    19 
          RJ     CPS         CHECK PAGE SPACE 
          PRINT  CCCH,100 
          PRINT  (=2C  )
          SX6    0
          SA6    XPPC        CLEAR LINE INDEX 
          SA5    BUF         READ FIRST EXCHANGE PACKAGE
 XPP5     RJ     SSB         CLEAR PRINT STRING 
          SA4    XPPA 
          ZR     X4,XPP6     IF CPU0 ON 
          SA5    A5+B1
          JP     XPP7        CHECK CPU1 
  
 XPP6     SA1    XPPC        LINE INDEX 
          SB7    PRBF+1 
          RJ     FXW         FORMAT EXCHANGE PACKAGE WORD 
 XPP7     SA5    A5+17B      ADVANCE TO NEXT EXCHANGE PACKAGE 
          SA4    XPPB 
          ZR     X4,XPP8     IF CPU1 ON 
          SA4    XPPD        GET CPU1(800) ON/OFF 
          NZ     X4,XPP8     IF PRESENT 
          SA5    A5+1 
          JP     XPP9        PRINT EXCHANGE PACKAGE 
  
 XPP8     SA1    XPPC        LINE INDEX 
          SB7    PRBF+46
          RJ     FXW         FORMAT EXCHANGE PACKAGE WORD 
 XPP9     PRINT  CCCH,B7-CCCH 
          SA1    XPPC 
          SX6    X1+B1
          SA6    A1          ADVANCE LINE INDEX 
          SX7    X6-10B 
          NZ     X7,XPP10    IF NOT END OF A AND B REGISTERS
          PRINT  (=2C  )
 XPP10    SA5    A5-20B      RESET EXCHANGE PACKAGE 
          SA1    XPPC 
          SX1    X1-20B 
          NG     X1,XPP5     IF MORE LINE TO FORMAT 
          JP     DSD1        RETURN 
  
 XPPA     BSS    1           CPU 0 ON/OFF 
 XPPB     BSS    1           CPU 1 ON/OFF 
 XPPC     BSS    1           EXCHANGE PACKAGE LINE INDEX
 XPPD     CON    0           POINTER TO CPU1 EXCHANGE PACKAGE 
          SPACE  4,3
***       *.CCC - CCC 
* 
*         PLACE CCC - CCC IN THE SUBTITLE LINE AS A COMMENT.
*E
  
  
 Z        DATA   0L*
  
          SA1    CH          STRING POINTER 
          SB2    X1+1 
          SB6    36 
          SB7    SBTL3
          RJ     PKS         MOVE COMMENT TO SUBTITLE LINE
          JP     DSD1        RETURN 
  
          QUAL   *
          TITLE  BML MAINTENANCE REGISTER FILE SUBROUTINES. 
 CBF      SPACE  4,10 
**        CBF - CREATE BML MAINTENANCE REGISTER FILE. 
* 
*         USES   X - ALL. 
*                A - 1, 2, 3, 4, 5, 6, 7. 
*                B - 2, 3, 6. 
* 
*         CALLS  DRA, FOM, GDA, GMR, LMB, PBL, RDR, SMR, TBM. 
* 
*         MACROS WRITER, SETFS. 
  
  
 CBF      SUBR               ENTRY/EXIT 
          SA1    BF 
          ZR     X1,CBFX     IF NO BML FILE SPECIFIED 
          SA1    F.TCMT      GET PACKED DATE AND TIME 
          SA2    X1+PDTL
          MX0    -36
          BX6    -X0*X2 
          SA3    BFMB+1      ADD PACKED DATE AND TIME TO HEADER 
          BX3    X0*X3
          BX6    X3+X6
          SA6    A3+
          RJ     GDA         GET DFT/OS BUFFER FWA
          ZR     X3,CBF2     IF BUFFER NOT FOUND
          BX5    X3 
          BX7    X5 
          SA7    CBFK 
          SA3    X5+/DFT/DFMR  SAVE FWA OF M/R BUFFERS
          RJ     DRA
          SA6    CBFL 
          SA3    X5          READ DFT CONTROL WORD
          MX2    -8 
          LX3    0-16        SAVE NUMBER OF M/R BUFFERS 
          BX6    -X2*X3 
          SA6    CBFH 
          LX3    0-24-0+16
          BX6    -X2*X3      SAVE LENGTH OF M/R BUFFER
          SA6    CBFJ 
          LX3    0-48-0+24   GET DFT SEQUENCE NUMBER
          BX7    -X2*X3 
          LX3    8           SAVE DFT VERSION LEVEL 
          BX6    -X2*X3 
          SA6    CBFO 
          SA2    BFMB+4      PLACE IN BML HEADER
          LX6    53-5 
          BX6    X6+X2       ADD VERSION LEVEL
          BX7    X7+X6       ADD SEQUENCE NUMBER
          SA7    A2 
          AX6    50 
          ZR     X6,CBF0     IF VERSION 3 OR LESS 
          SA3    X5+/DFT/DFMD  SAVE FWA OF MODEL DEPENDENT BUFFERS
          RJ     DRA
          IX6    X6+X1
          SA6    CBFM 
          SA3    X5+/DFT/DFSS  SAVE FWA OF SUPPORTIVE STATUS BUFFERS
          RJ     DRA
          SA6    CBFN 
          SA3    X5+/DFT/DFBC  SAVE M/R CONTROL WORD ADDRESS
          RJ     DRA
          BX5    X6 
          EQ     CBF0.1      SAVE M/R CONTROL WORD ADDRESS
  
 CBF0     LX3    40-0 
          SX1    6           DEFAULT NUMBER OF M/R BUFFERS
          MX4    4
          BX0    X4*X3
          ZR     X0,CBF0.1   IF DFT VERSION 1 
          SB3    4
          LX1    X0,B3       NUMBER OF DFT CONTROL WORDS
 CBF0.1   IX6    X5+X1       SAVE ADDRESS OF M/R CONTROL WORD 
          SA6    CBFI 
 CBF1     RJ     FOM         FIND OLDEST ENTRY
          ZR     B3,CBF2     IF NO MORE ENTRIES TO PROCESS
          SX7    B0          INITIALIZE SUMMARY STATUS FLAG 
          SX6    B3          SAVE MRB/SSB ORDINAL 
          SA7    PBHA 
          SA6    PBLB 
          RJ     LMB         LOCATE M/R BUFFER ENTRY
          RJ     PBL         PROCESS BML
          EQ     CBF1        PROCESS NEXT ENTRY 
  
  
*         READ MAINTENANCE REGISTER ERROR ELEMENT RECORDS.
  
 CBF2     SA1    CBFA        GET NEXT ELEMENT RECORD
          SX6    X1+B1       INCREMENT *MRET* INDEX 
          SA6    A1 
          SA2    MRET+X1
          ZR     X2,CBF9     IF END OF ELEMENTS 
          SA1    X2          RECORD ID
          MX3    24 
          BX7    X3*X2       BML MESSAGE ID / SYMPTOM CODE
          AX2    18 
          SA7    CBFD 
          SX6    X2          MAINTENANCE REGISTER LIST ADDRESS
          SA6    A7-B1
          RJ     RDR         READ DUMP RECORD 
          ZR     X2,ERR42    IF RECORD NOT FOUND
  
*         GET MODEL NUMBER FROM ELEMENT ID REGISTER.
  
          SX5    /IOU/EIMR   READ ELEMENT ID REGISTER 
          RJ     GMR
          NG     X1,ERR42    IF ELEMENT ID REGISTER NOT FOUND 
          MX6    -4 
          AX7    16 
          BX6    -X6*X7      ISOLATE MODEL NUMBER 
          SA6    CBFB        SAVE MODEL NUMBER
  
*         CHECK STATUS SUMMARY REGISTER FOR ERRORS. 
  
 CBF5     SX5    /IOU/SSMR   READ STATUS SUMMARY REGISTER 
          RJ     GMR
          NG     X1,ERR42    IF STATUS SUMMARY REGISTER NOT FOUND 
          BX6    X6+X7
          BX7    X7-X7       CLEAR EMPTY BML FILE FLAG
          ZR     X6,CBF2     IF NO ERRORS FOR ELEMENT 
          SA7    EB 
          SA1    BFMB+3 
          SA2    CBFD        GET MESSAGE ID AND SYMPTOM CODE
          MX0    -36
          BX1    -X0*X1      SET MESSAGE ID/SYMPTOM CODE IN HEADER
          BX6    X1+X2
          SA6    A1 
  
*         PROCESS MAINTENANCE REGISTER LIST.
  
 CBF6     SB6    48          SET OVERFLOW SHIFT COUNT 
          SX6    B0+         CLEAR UPPER REGISTER BITS WORD 
          SA6    CBFF 
 CBF7     SA1    CBFC        INCREMENT REGISTER LIST ADDRESS
          SX6    X1+B1
          SA6    A1 
          SA2    X6+         GET NEXT REGISTER
          ZR     X2,CBF8     IF END OF REGISTERS
          SA4    CBFB        CREATE MODEL NUMBER MASK 
          SX1    B1+
          SB2    X4 
          LX4    X1,B2
          LX4    34          POSITION MASK
          BX3    X2*X4
          ZR     X3,CBF7     IF NOT FOR THIS MODEL
          MX0    9
          BX5    X0*X2       GET REGISTER NUMBER
          LX5    9
          RJ     GMR         GET MAINTENANCE REGISTER 
          NG     X1,CBF7     IF MAINTENANCE REGISTER NOT FOUND
          LX6    8
          BX6    X1+X6       UPPER REGISTER BITS/REGISTER NUMBER
          SA3    CBFF        UPDATE UPPER REGISTER BITS WORD
          LX6    B6 
          BX6    X3+X6
          SA6    A3 
          SB6    B6-12       DECREMENT OVERFLOW SHIFT COUNT 
          BX5    X7 
          RJ     SMR         STORE MAINTENANCE REGISTER 
          GT     B6,CBF7     IF OVERFLOW WORD NOT FULL
          SA5    CBFF 
          RJ     SMR         STORE OVERFLOW WORD
          EQ     CBF6        PROCESS NEXT REGISTER
  
 CBF8     RJ     TBM         TERMINATE BML MESSAGE
          SA1    NR          CHECK NEXT RECORD INDEX
          ZR     X1,CBF2     IF NO SECOND RECORD
          SA1    CBFA 
          SX6    X1-1 
          SA6    A1 
          EQ     CBF2        PROCESS SECOND RECORD
  
 CBF9     SA1    EB 
          NZ     X1,CBFX     IF EMPTY BML FILE
          WRITER B,R
          SETFS  X2,0        CLEAR OUTPUT FILE STATUS 
          EQ     CBFX        RETURN 
  
 CBFA     DATA   0           *MRET* INDEX 
 CBFB     DATA   0           MODEL NUMBER 
 CBFC     CON    0,0         MAINTENANCE REGISTER LIST ADDRESS
 CBFD     EQU    CBFC+1      MESSAGE ID-S AND SYMPTOM CODES 
 CBFF     DATA   0           UPPER REGISTER BITS WORD 
 CBFH     CON    0           NUMBER OF M/R BUFFERS
 CBFI     CON    0           ADDRESS OF FIRST CONTROL WORD
 CBFJ     CON    0           LENGTH OF M/R BUFFER 
 CBFK     CON    0           ADDRESS OF DFT CONTROL WORD
 CBFL     CON    0           FWA OF M/R BUFFERS 
 CBFM     CON    0           FWA OF MODEL DEPENDENT BUFFERS 
 CBFN     CON    0           FWA OF SUPPORTIVE STATUS BUFFERS 
 CBFO     CON    0           DFT VERSION LEVEL
          SPACE  4,10 
*         ERROR ELEMENT MAINTENANCE REGISTER LISTS. 
  
 IMRL     BSS    0           IOU MAINTENANCE REGISTER LIST
          SXREG  EIMR 
          SXREG  SSMR 
          SXREG  OIMR 
          SXREG  DEMR 
          SXREG  ISTR 
          SXREG  IFS1 
          SXREG  IFS2 
          SXREG  ITMR 
          SXREG  IFSM 
          SXREG  IOSB 
          SXREG  OICR,,,I4A 
          SXREG  ECCR,,,I4A 
          SXREG  SRCR,,,I4A 
          SXREG  F1CR,,,I4A 
          SXREG  F2CR,,,I4A 
          SXREG  TMCR,,,I4A 
          SXREG  FMCR,,,I4A 
          SXREG  OBCR,,,I4A 
          SXREG  C0CR,,,I4A+I4S 
          SXREG  C1CR,,,I4A+I4S 
          SXREG  C2CR,,,I4A+I4S 
          SXREG  C3CR,,,I4A+I4S 
          SXREG  C4CR,,,I4A 
          SXREG  C5CR,,,I4A 
          SXREG  C6CR,,,I4A 
          SXREG  C7CR,,,I4A 
          SXREG  C8CR,,,I4A 
          SXREG  C9CR,,,I4A 
          CON    0
  
 MMRL     BSS    0           MEMORY MAINTENANCE REGISTER LIST 
          SXREG  EIMR 
          SXREG  SSMR 
          SXREG  OIMR 
          SXREG  ECMR 
          SXREG  MCEL 
          SXREG  MCEL+1,,,THETA 
          SXREG  MCEL+2,,,THETA 
          SXREG  MCEL+3,,,THETA 
          SXREG  MUL1 
          SXREG  MUL1+1,,,THETA 
          SXREG  MUL1+2,,,THETA 
          SXREG  MUL1+3,,,THETA 
          SXREG  MUL2,,,S1+S2+S3
          SXREG  MBRG 
          CON    0
  
 PMRL     BSS    0           PROCESSOR MAINTENANCE REGISTER LIST
          SXREG  EIMR 
          SXREG  SSMR 
          SXREG  OIMR 
          SXREG  DEMR 
          SXREG  PMCL,,,S1
          SXREG  PCCL,,,S2
          SXREG  PRCL,,,S1+S2 
          SXREG  PUCS,,,S1
          SXREG  PPFS 
          SXREG  PPFS+1 
          SXREG  PPFS+2,,,S3+THETA
          SXREG  PPFS+3,,,S3+THETA
          SXREG  PPFS+4,,,S3+THETA
          SXREG  PPFS+5,,,S3+THETA
          SXREG  PPFS+6,,,S3+THETA
          SXREG  PPFS+7,,,S3+THETA
          SXREG  PPFS+8,,,S3+THETA
          SXREG  PPFS+9,,,S3+THETA
          SXREG  PPFS+10,,,THETA
          SXREG  PPFS+11,,,THETA
          SXREG  PPFS+12,,,THETA
          SXREG  PPFS+13,,,THETA
          SXREG  PPFS+14,,,THETA
          SXREG  PPFS+15,,,THETA
 MRET     SPACE  4,10 
**        MRET - MAINTENANCE REGISTER ERROR ELEMENTS TABLE. 
* 
*T,MRET   12/ MSGID, 12/ SYM, 18/ RL, 18/ RID 
* 
*         MSGID = MESSAGE IDENTIFIER. 
*         SYM = SYMPTOM CODE. 
*         RL = LIST OF REGISTERS TO PROCESS.
*         RID = ADDRESS OF RECORD ID WORD.
  
  
 MRET     BSS    0           MAINTENANCE REGISTER ERROR ELEMENTS TABLE
          VFD    12/HM0250,12/HS1002,18/PMRL-1,18/.PMR
          VFD    12/HM0250,12/HS0402,18/MMRL-1,18/.MMR
          VFD    12/HM0250,12/HS0002,18/IMRL-1,18/.IMR
          CON    0           END OF ELEMENT LIST
 DRA      SPACE  4,10 
**        DRA - DERIVE R-FORMAT ADDRESS.
* 
*         ENTRY  (X3) = R-FORMAT ADDRESS. 
* 
*         EXIT   (X6) = UNFORMATTED ADDRESS.
*                (X7) = LENGTH OF BUFFER. 
* 
*         USES   X - 0, 2, 3, 6, 7. 
  
  
 DRA      SUBR               ENTRY/EXIT 
          MX0    -12
          BX7    -X0*X3      LENGTH OF BUFFER 
          AX3    16 
          BX2    -X0*X3      R-LOWER
          AX3    16 
          BX6    -X0*X3      R-UPPER
          LX6    12 
          BX6    X2+X6
          AX3    16 
          BX2    -X0*X3      OFFSET 
          LX6    6
          BX6    X2+X6
          EQ     DRAX        RETURN 
 FOM      SPACE  4,10 
**        FOM - FIND OLDEST M/R ENTRY.
* 
*         ENTRY  (CBFI) = ADDRESS OF M/R CONTROL WORD.
*                (CBFH) = NUMBER OF M/R ENTRIES.
* 
*         EXIT   (B3) = OFFSET OF OLDEST M/R ENTRY. 
*                (X7) = DFT ANALYSIS CODE.
*                (PBLD) .NE. 0 IF MDB DATA PRESENT. 
* 
*         USES   X - 0, 1, 2, 3, 4, 6, 7. 
*                A - 1, 2, 3, 7.
*                B - 2, 3.
  
  
 FOM      SUBR               ENTRY/EXIT 
          SB3    B0          OFFSET OF OLDEST ENTRY 
          BX4    X4-X4       OLDEST SEQUENCE NUMBER 
          SA1    CBFH 
          SA2    CBFI        ADDRESS OF FIRST M/R CONTROL WORD
          SB2    X1+         NUMBER OF ENTRIES TO CHECK 
 FOM1     SB2    B2-B1       DECREMENT COUNTER FOR M/R ENTRIES
          ZR     B2,FOMX     IF ALL ENTRIES PROCESSED 
          SA3    X2+B2       GET NEXT M/R CONTROL WORD
          MX0    -8 
          LX3    0-16 
          BX0    -X0*X3      GET M/R FLAGS
          LX0    59-/DFT/MRLG 
          PL     X0,FOM1     IF NO DATA TO LOG
          LX0    59-/DFT/MRIL-59+/DFT/MRLG
          NG     X0,FOM1     IF ENTRY INTERLOCKED 
          LX3    0-32-0+16
          MX0    -12         GET DFT ANALYSIS CODE
          BX1    -X0*X3 
          SX0    X1-3400B 
          PL     X0,FOM1     IF TO IGNORE THIS ENTRY
          MX0    -8          GET SEQUENCE NUMBER
          LX3    0-24-0+32
          BX6    -X0*X3 
          ZR     B3,FOM3     IF NO ENTRY SELECTED YET 
          IX0    X4-X6       COMPARE OLDEST WITH CURRENT
          PL     X0,FOM2     IF LOWER THAN PREVIOUS OLDEST
          SX0    X0+40B 
          NG     X0,FOM3     IF WRAP AROUND 
          EQ     FOM1        PROCESS NEXT ENTRY 
  
 FOM2     SX0    X0-40B 
          PL     X0,FOM1     IF NOT EARLIER ENTRY 
 FOM3     SB3    B2          UPDATE OLDEST ENTRY OFFSET 
          LX3    0-22-0+24   GET MDB FLAG 
          BX4    X6          SEQUENCE NUMBER
          BX7    X1          SAVE DFT ANALYSIS CODE 
          SA7    FOMA 
          MX0    -1 
          BX7    -X0*X3 
          SA7    PBLD 
          EQ     FOM1        PROCESS NEXT ENTRY 
  
  
 FOMA     CON    0           DFT ANALYSIS CODE
 GMR      SPACE  4,15 
**        GMR - GET MAINTENANCE REGISTER. 
* 
*         ENTRY  (X5) = REGISTER NUMBER.
* 
*         EXIT   (X1) = REGISTER NUMBER IF FOUND. 
*                       .LT. 0 IF REGISTER NOT FOUND. 
*                (X6) = LOWER 4 BITS OF REGISTER (BITS 60-63).
*                (X7) = UPPER 60 BITS OF REGISTER (BITS 0-59).
* 
*         USES   X - 2, 3, 6, 7.
*                A - 6. 
* 
*         CALLS  SFR. 
  
  
 GMR      SUBR               ENTRY/EXIT 
          RJ     SFR
          BX2    X6          REPOSITION BITS
          MX3    -4 
          BX6    -X3*X7      (X6) = BITS 60-63
          BX7    X3*X7       CLEAR LOWER BITS 
          BX7    X2+X7       ADD UPPER BITS 
          LX7    -4          (X7) = BITS 0-59 
          EQ     GMRX        RETURN 
 LMB      SPACE  4,15 
**        LMB - LOCATE M/R BUFFER.
* 
*         ENTRY  (B3) = OFFSET OF M/R CONTROL WORD. 
*                (FOMA) = DFT ANALYSIS CODE.
*                (CBFI) = FIRST M/R CONTROL WORD ADDRESS. 
*                (CBFL) = FWA OF M/R BUFFERS. 
* 
*         EXIT   POSITIONED TO CORRECT BYTE FOR ROUTINE *NXB*.
*                M/R BUFFER CONTROL WORD CLEARED. 
* 
*         USES   X - 0, 1, 2, 3, 4, 6, 7. 
*                A - 1, 2, 3, 4, 6, 7.
* 
*         CALLS  FBP, SCM.
  
  
 LMB      SUBR               ENTRY /EXIT
          SA1    BFMB+3      SET ANALYSIS CODE INTO BML 
          MX0    48 
          LX0    36-0 
          BX1    X0*X1       CLEAR OLD SYMPTOM CODE 
          SA2    FOMA        DFT ANALYSIS CODE
          LX2    36-0 
          BX7    X1+X2
          SA7    A1 
          SA3    CBFI        GET OFFSET TO M/R BUFFER 
          SA4    X3+B3       M/R BUFFER CONTROL WORD
          MX0    -16
          BX3    -X0*X4      OFFSET INTO M/R BUFFERS
          BX6    X6-X6       CLEAR M/R CONTROL WORD 
          SA6    A4 
          SA2    CBFL        FWA OF M/R BUFFERS 
          IX3    X2+X3       LOCATION OF M/R BUFFER 
          LX3    2           BYTE POSITION OF M/R BUFFER
          RJ     SCM         SET CENTRAL MEMORY 
          SA7    RI 
          RJ     FBP         FIND BYTE POSITION 
          EQ     LMBX        RETURN 
 PBH      SPACE  4,10 
**        PBH - PROCESS BML HEADER. 
* 
*         EXIT   (B7) = NUMBER OF REGISTERS TO PROCESS. 
*                (CBFF) = BML REGISTER NUMBERS ENTERED. 
* 
*         USES   X - 1, 3, 6. 
*                A - 3, 6.
*                B - 6, 7.
* 
*         CALLS  NXB. 
  
  
 PBH      SUBR               ENTRY/EXIT 
          SB6    48          SHIFT COUNT
          SB7    B0+         INITIALIZE REGISTER COUNT
 PBH1     RJ     NXB         READ NEXT BYTE 
          NZ     X1,PBH2     IF REGISTER PRESENT
          SA3    PBHA 
          NZ     X3,PBH3     IF NOT STATUS SUMMARY
          MX6    1           SET STATUS SUMMARY FLAG
          SA6    A3 
 PBH2     LX1    B6          SHIFT REGISTER NUMBER TO PROPER LOCATION 
          SA3    CBFF        UPDATE BML REGISTER WORD 
          BX6    X3+X1
          SA6    A3 
          SB7    B7+B1       INCREMENT REGISTER COUNT 
 PBH3     SB6    B6-12       UPDATE SHIFT COUNT 
          NZ     B6,PBH1     IF NOT COMPLETE
          EQ     PBHX        RETURN 
  
  
 PBHA     CON    0           SUMMARY STATUS FLAG
 PBL      SPACE  4,15 
**        PBL - PROCESS BML.
* 
*         ENTRY  (CBFJ) = REGISTERS LEFT TO PROCESS.
*                (FOMA) = DFT ANALYSIS CODE.
* 
*         EXIT   BML FILE WRITTEN.
* 
*         USES   X - 0, 1, 2, 3, 5, 6, 7. 
*                A - 1, 2, 3, 6, 7. 
*                B - 6, 7.
* 
*         CALLS  DRA, FBP, NXB, PBH, PBR, SMR, SMS. 
  
  
*         PROCESS SSB DATA. 
  
 PBL7     SA1    CBFO 
          SX1    X1-4 
          NG     X1,PBLX     IF NOT DFT VERSION 4 OR ABOVE
          SX1    B1          SET BIT 54 IN SECOND WORD OF BML MESSAGE 
          LX1    54-0 
          SA2    BFMB+4 
          BX7    X1+X2
          SA7    A2 
          SA1    CBFN        SSB FWA
          SA2    F.TCMT 
          IX2    X1+X2
          SA2    X2 
          MX0    -16
          BX6    -X0*X2      BUFFER LENGTH
          SX1    X1+B1       FWA OF BUFFER DATA 
          SA3    PBLB        MRB/SSB ORDINAL
          IX2    X3*X6       OFFSET INTO BUFFER 
          IX3    X2+X1       FWA OF BLOCK 
          LX3    2           CONVERT TO BYTE NUMBER 
          RJ     FBP         POSITION TO HEADER WORD
          RJ     NXB
          RJ     NXB
          SB7    X1          NUMBER OF REGISTERS TO PROCESS 
          RJ     NXB
          SA2    PBLD 
          BX6    X6-X6
          MX0    -8 
          ZR     X2,PBL8     IF NO MODEL DEPENDENT DATA 
          BX2    -X0*X1      GET MDB ORDINAL
          AX1    8
          NZ     X1,PBL8     IF NOT VALID DATA
          SX6    X2+1        SET ORDINAL+1 (ENSURE NON-ZERO VALUE)
 PBL8     SA6    A2+         SET/CLEAR MDB FLAG 
          RJ     NXB
 PBL9     SB6    56          INITIALIZE OVERFLOW POSITION 
          RJ     PBR         PROCESS AND STORE BML REGISTERS
          PL     X6,PBL9     IF MORE REGISTERS
  
*         PROCESS MDB DATA. 
  
          SA3    PBLD 
          ZR     X3,PBLX     IF NO MODEL DEPENDENT DATA 
          SX7    BFBDAL      SET DATA BLOCK LENGTH
          SA7    PBLC+0 
          SX6    4           SET OVERFLOW SHIFT COUNT DECREMENT AMOUNT
          SA6    A7+B1
          SX1    B1          SET BIT 55 IN BML HEADER 
          LX1    55-0 
          SA2    BFMB+4 
          BX6    X1+X2
          SA6    A2 
          SX6    X7+BFHL-1   SET MDB MESSAGE SIZE 
          RJ     SMS
          SA1    CBFM        CALCULATE MDB FWA
          SX3    X3-1        GET MDB ORDINAL
          IX3    X3+X1
          SA3    X3 
          RJ     DRA
          LX6    2           CONVERT TO BYTE ADDRESS
          SX3    X6+3        ADVANCE TO BYTE 3 OF HEADER WORD 
          RJ     FBP
          RJ     NXB         GET DATA BLOCK LENGTH
          SB7    X1-1 
 PBL10    SB6    56          INITIALIZE SHIFT COUNT 
          RJ     PBR         PROCESS BLOCK OF REGISTERS 
          PL     X6,PBL10    IF MORE TO PROCESS 
  
 PBL      SUBR               ENTRY/EXIT 
          SA1    CBFJ        NUMBER OF REGISTERS TO PROCESS 
          BX7    X1 
          SA7    PBLA 
 PBL1     SX7    B0+
          SA7    EB          SET BML ERRORS PRESENT FLAG
 PBL2     SA1    PBLA        CHECK ENTRIES LEFT TO PROCESS
          ZR     X1,PBL7     IF ALL ENTRIES PROCESSED 
          SX6    X1-5        DECREMENT ENTRY COUNT
          SA6    A1+
          NZ     X6,PBL5     IF NOT LAST BLOCK
          SA2    FOMA        DFT ANALYSIS CODE
  
*         PROCESSING FOR LAST BLOCK OF REPAIRED/UNREPAIRED ERRORS.
  
          SA1    TM9E        CHECK FOR SPECIAL MODEL 990 ERRORS 
 PBL3     ZR     X1,PBL5     IF NOT SPECIAL ERROR 
          IX3    X2-X1
          SA1    A1+B1
          NZ     X3,PBL3     IF NO MATCH
          SB7    48          INITIALIZE SHIFT POSITION
          RJ     NXB
          MX0    -12
          BX5    -X0*X1      DO NOT SAVE UPPER 4 BITS 
          LX5    B7          POSITION BYTE IN REGISTER SAVE AREA
 PBL4     SB7    B7-16       DECREMENT SHIFT POSITION 
          RJ     NXB
          LX1    B7          POSITION BYTE
          BX5    X1+X5
          NZ     B7,PBL4     IF NOT COMPLETE
          RJ     SMR         STORE MAINTENANCE REGISTER 
          SB7    4           INITIALIZE REGISTER COUNT
          EQ     PBL6        CONTINUE PROCESSING BML REGISTERS
  
 PBL5     RJ     PBH         PROCESS BML HEADER REGISTERS 
 PBL6     SB6    56          INITIALIZE OVERFLOW POSITION 
          RJ     PBR         PROCESS AND STORE BML REGISTERS
          NG     X6,PBL7     IF THROUGH PROCESSING
          EQ     PBL1        CONTINUE PROCESSING
  
  
 PBLA     CON    0           REGISTERS LEFT TO PROCESS
 PBLB     CON    0           MRB/SSB ORDINAL
 PBLC     CON    BFBDL       DATA BLOCK LENGTH
          CON    12          SHIFT COUNT
 PBLD     CON    0           MODEL DEPENDENT DATA BUFFER FLAG 
  
**        TM9E - TABLE OF MODEL 990 SPECIAL ERRORS. 
  
 TM9E     BSS    0
          CON    0#206       REPAIRED ERROR 
          CON    0#207       UNREPAIRED ERROR 
          CON    0#205       RETRY IN PROGRESS
          CON    0#21B       RETRY CONVERTED TO UNCORRECTED ERROR 
          CON    0#21C       RETRY EXHAUSTED
          CON    0#21D       RETRY EXHAUSTED
          CON    0
 PBR      SPACE  4,10 
*         PBR - PROCESS AND STORE BLOCK OF BML REGISTERS. 
* 
*         EXIT   (X6) = NEGATIVE IF *TBM* CALLED. 
* 
*         USES   X - 0, 1, 2, 3, 5, 6.
*                A - 0, 3, 5, 6.
*                B - 4, 6, 7. 
* 
*         CALLS  NXB, SMR, TBM. 
  
  
 PBR3     RJ     TBM         TERMINATE BML MESSAGE
          SX6    -1 
  
 PBR      SUBR               ENTRY/EXIT 
 PBR1     ZR     B7,PBR3     IF NO MORE REGISTERS 
          SX5    B0+         INITIALIZE BML SAVE AREA 
          SB4    44          INITIALIZE SHIFT COUNT FOR REGISTERS 
 PBR2     SA0    B4+
          RJ     NXB         GET NEXT BYTE
          SB4    A0+
          LX1    B4          CORRECTLY POSITION REGISTER
          BX5    X1+X5
          SB4    B4-16       DECREMENT SHIFT COUNT
          PL     B4,PBR2     IF NOT COMPLETE
          RJ     NXB         GET LAST BYTE
          MX0    -4          GET LOWER 4 BITS 
          BX2    -X0*X1 
          AX1    4
          BX5    X1+X5
          LX2    B6 
          SA3    PBLC+1      UPDATE OVERFLOW SHIFT COUNT
          SB4    X3 
          SB6    B6-B4
          SA3    CBFF        UPDATE BML OVERFLOW WORD 
          BX6    X2+X3
          SA6    A3 
          SB7    B7-B1       DECREMENT REGISTER COUNT 
          RJ     SMR         STORE REGISTER 
          ZR     B6,PBR1     IF ONE MORE SPOT IN MDB OVERFLOW WORD
          SA3    PBLC+1 
          SB4    X3 
          SB4    B6-B4
          PL     B4,PBR1     IF OVERFLOW WORD NOT FULL
          SA5    CBFF        STORE OVERFLOW WORD
          RJ     SMR
          BX6    X6-X6       CLEAR OVERFLOW WORD
          SA6    A5 
          EQ     PBRX        RETURN 
 RDB      SPACE  4,10 
**        RDB - RESET DATA BLOCK. 
* 
*         EXIT   (BFBI) = 0.
*                (BFBD - BFBD+BFBDL) = 0. 
* 
*         USES   X - 1, 7.
*                A - 1, 7.
*                B - 2. 
  
 RDB      SUBR               ENTRY/EXIT 
          BX7    X7-X7       RESET DATA BLOCK INDEX 
          SA1    PBLC+0 
          SB2    X1 
          SA7    BFBI 
 RDB1     SB2    B2-1 
          SA7    BFBD+B2
          NZ     B2,RDB1     IF NOT END OF BLOCK
          EQ     RDBX        RETURN 
 SMR      SPACE  4,15 
**        SMR - STORE MAINTENANCE REGISTER. 
* 
*         ENTRY  (X5) = WORD TO STORE.
* 
*         EXIT   (BFBI) = (BFBI) + 1. 
*                (B6) PRESERVED.
*                (B7) PRESERVED.
*                IF THE DATA BLOCK IS FULL, THE CURRENT MESSAGE BLOCK 
*                IS WRITTEN TO THE BML FILE AND (X5) IS STORED IN A 
*                NEW MESSAGE BLOCK. 
* 
*         USES   X - 0, 1, 2, 6, 7. 
*                A - 1, 2, 6, 7.
*                B - 6, 7.
* 
*         CALLS  RDB. 
* 
*         MACROS WRITEW.
  
  
 SMR      SUBR               ENTRY/EXIT 
          SA1    BFBI        GET DATA BLOCK INDEX 
          SA2    PBLC+0      DATA BLOCK LENGTH
          IX6    X1-X2
          NZ     X6,SMR1     IF NOT END OF DATA BLOCK 
  
*         FLUSH DATA BLOCK. 
  
          SX6    B6          SAVE B6, B7
          LX6    18 
          SX7    B7 
          BX7    X6+X7
          SA7    SMRA 
          SX2    X2+BFHL
          WRITEW B,BFMB,X2
          SA1    SMRA        RESTORE
          SB7    X1 
          AX1    18 
          SB6    X1 
          RJ     RDB         RESET DATA BLOCK 
          SA1    BFMB        SET PREVIOUS BLOCK LENGTH
          SA2    PBLC+0 
          SX6    X2+BFHL
          MX0    18 
          LX6    24 
          LX0    -18
          BX1    -X0*X1 
          BX6    X1+X6
          SA6    A1 
          SA1    BFMB+4      SET *NOT FIRST BLOCK* FLAG 
          MX0    1
          LX0    39-59
          BX6    X0+X1
          SA6    A1 
          SA1    BFBI        GET DATA BLOCK INDEX 
 SMR1     BX7    X5          STORE REGISTER CONTENTS
          SA7    BFBD+X1
          SX6    X1+B1       ADVANCE DATA BLOCK INDEX 
          SA6    A1 
          EQ     SMRX        RETURN 
  
  
 SMRA     CON    0           REGISTER SAVE WORD 
 SMS      SPACE  4,10 
**        SMS - SET MESSAGE SIZE IN BML HEADER. 
* 
*         ENTRY - (X6) = CURRENT MESSAGE SIZE TO SET. 
* 
*         EXIT   CURRENT MESSAGE SIZE FIELDS SET IN BML HEADER WORDS
*                0 AND 1. 
* 
*         USES   X - 0, 1, 6, 7.
*                A - 1, 7.
  
  
 SMS      SUBR               ENTRY/EXIT 
          SA1    BFMB        SET HEADER WORD ONE
          MX0    -12
          BX1    X0*X1
          BX7    X1+X6
          SA7    A1 
          LX6    59-11       POSITION SIZE
          LX0    59-11
          SA1    A1+B1       SET HEADER WORD TWO
          BX1    X0*X1
          BX7    X1+X6
          SA7    A1 
          EQ     SMSX        RETURN 
 TBM      SPACE  4,10 
**        TBM - TERMINATE BML MESSAGE.
* 
*         ENTRY  (CBFF) = REGISTER BML WORD.
*                (PBLC+1) = AMOUNT TO DECREMENT OVERFLOW SHIFT COUNT. 
*                (B6) = OVERFLOW SHIFT COUNT. 
* 
*         EXIT   BML BUFFER FLUSHED.
*                CONTINUATION BIT RESET.
* 
*         USES   X - 0, 1, 5, 6, 7. 
*                A - 1, 5, 6, 7.
*                B - 2, 6, 7. 
* 
*         CALLS  RDB, SMR, SMS. 
* 
*         MACROS WRITEW.
  
  
 TBM      SUBR               ENTRY/EXIT.
          SB2    B6-56
          ZR     B2,TBM2     IF OVERFLOW WORD WRITTEN 
          SA1    PBLC+1      GET SHIFT COUNT
          SB7    X1 
          SB6    B6-B7
 TBM1     BX5    X5-X5       WRITE ZERO WORD
          SB6    B6-B7
          RJ     SMR
          GT     B6,TBM1     IF NOT THROUGH WITH BLOCK
          SA5    CBFF        STORE OVERFLOW WORD
          BX6    X6-X6       CLEAR OVERFLOW WORD
          SA6    A5 
          RJ     SMR
 TBM2     SX0    B1          CLEAR CONTINUATION BIT 
          LX0    38-0 
          SA1    BFMB+4 
          BX7    -X0*X1 
          SA7    A1 
  
*         FLUSH MESSAGE BLOCK AND RESET HEADER. 
  
          SA1    PBLC+0 
          SX1    X1+BFHL
          WRITEW B,BFMB,X1   WRITE LAST BLOCK OF MESSAGE
          RJ     RDB         RESET DATA BLOCK 
          SA1    BFMB+4 
          MX0    2
          LX0    55-59       CLEAR MESSAGE CONTENT FLAGS
          BX1    -X0*X1 
          LX0    39-59-55+59 SET CONTINUATION/CLEAR *NOT FIRST BLOCK* 
          BX7    X0-X1
          SA7    A1 
          SX6    BFMBL       RESET CURRENT MESSAGE SIZE 
          RJ     SMS
          SX6    BFBDL       RESET BML MESSAGE SIZE 
          SA6    PBLC+0 
          SX7    12          RESET OVERFLOW SHIFT COUNT 
          SA7    A6+1 
          EQ     TBMX        RETURN 
          TITLE  SUBROUTINES. 
 APP      SPACE  4,7
**        APP - ANALYZE PPU.
* 
*         ENTRY  PP = PPU NUMBER. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  COD, CPN, CPS, DPQ, FEM, FLC, FON, FPL, FPO, GPS, ICT, 
*                PPO, RPD, SFN, SLP, SSB, UPS.
* 
*         MACROS PRINT. 
  
  
 APP      SUBR
          RJ     PPO         PACK PP OPERATING REGISTERS
          SA6    APPH        SAVE REGISTER DATA FOUND FLAG
          RJ     RPD         READ PP DATA 
          SX6    B0+         CLEAR DUMPING PP SAVE AREA DATA FLAG 
 APP1     SA6    APPF 
          RJ     ICT         INITIALIZE CHANNEL TABLE 
          SA2    EF          CHECK AUTO EJECT FLAG
          SX1    100         PRESET FOR EJECT 
          ZR     X2,APP2     IF AUTO EJECT ON 
          SX1    26 
 APP2     RJ     CPS         CHECK PAGE SPACE 
          PRINT  (=2C  )
          SA1    BPNA+1 
          SA2    =6R, AFTE
          BX6    X1 
          BX7    X1+X2
          SA6    APPA+2      SET NAME IN HEADER 
          SA7    APPB+2 
          SA2    APPF 
          ZR     X2,APP3     IF NOT DUMPING PP SAVE AREA DATA 
          SA1    GPSB        GET ADDRESS OF PP SAVE BUFFER
          RJ     COD         CONVERT SAVE BUFFER ADDRESS
          MX6    48          ENSURE END OF LINE 
          BX6    X6*X4
          BX1    X4 
          SA6    APPB+7 
 APP3     SA0    A6+2        SET LOGICAL PP IN MESSAGE
          RJ     SLP
          ZR     X6,APP4     IF NO PP SWITCH
          RJ     SFN         SPACE FILL NAME
          SA6    A6+         SET SPACE FILLED NAME IN HEADER
 APP4     SA1    A6+3        GET FWA OF HEADER
          PRINT  X1          PRINT HEADER 
          PRINT  (=2C  )
          RJ     SSB         CLEAR PRINT STRING 
          SA3    F.TCMT 
          SA4    PC          GET PP COMMUNICATION AREA POINTER
          IX4    X3+X4       ADDRESS OF PP COMMUNICATION AREA 
          RJ     CPN         CONVERT PP/CPP NUMBER
          LX6    3
          IX5    X6+X4
          SA5    X5          READ SELECTED INPUT REGISTER 
          SX6    B0          PRESET LINE INDEX
  
*         FORMAT I/O REGISTERS AND OVERLAY NAMES. 
  
 APP7     SA2    PP          RELOAD PP NUMBER 
          SA6    APPE        SAVE LINE INDEX
          SB4    X6 
          SB2    X2          SET PPU NUMBER 
          SB7    PRBF+5      PRINT STRING ADDRESS 
          RJ     FPL         FORMAT PPU REGISTER LINE 
          SB7    PRBF+60
          RJ     FON         FORMAT OVERLAY NAME
          PRINT  CCCH,B7-CCCH 
          SA1    APPE 
          SA2    APPF 
          SA5    A5+B1       READ NEXT REGISTER WORD
          SX6    X1+B1       ADVANCE LINE INDEX 
          SB4    X6-10B 
          ZR     X2,APP8     IF NOT DUMPING PP SAVE AREA DATA 
          SA5    X1+1+PSAV   GET REGISTER FROM SAVE AREA
 APP8     NG     B4,APP7     IF MORE TO FORMAT
  
*         FORMAT ENTRY POINT MAP, LOW CORE ANALYSIS AND OPERATING 
*         REGISTERS.
  
          PRINT  (=2C  )
          RJ     SSB
          SB7    PRBF        PRINT HEADERS
          SB6    57 
          SA2    APPC 
          RJ     UPS
          SA5    APPH 
          ZR     X5,APP8.1   IF NO PP REGISTERS 
          SB7    PRBF+88
          SB6    20 
          SA2    =C*OPERATING REGISTERS*
          RJ     UPS
 APP8.1   PRINT  CCCH,B7-CCCH 
          RJ     SSB
          SB7    PRBF 
          SB6    61 
          SA2    APPD 
          RJ     UPS
          ZR     X5,APP8.2   IF NO PP REGISTERS 
          SB7    PRBF+93
          SB6    25 
          SA2    =C*P      Q      K       A*
          RJ     UPS
 APP8.2   PRINT  CCCH,B7-CCCH 
          SX5    0           PRESET LINE INDEX
          PRINT  (=2C  )
 APP9     RJ     SSB         CLEAR PRINT STRING 
          RJ     FEM         FORMAT ENTRY POINT 
          RJ     FLC         FORMAT LOW CORE ANALYSIS LINE
          SB7    PRBF+76
          RJ     FPO         FORMAT OPERATING REGISTERS LINE
          PRINT  CCCH,B7-CCCH 
          SX5    X5+1        ADVANCE LINE INDEX 
          SX6    X5-10
          SA1    CE 
          ZR     X1,APP10    IF CME NOT PRESENT 
          SX6    X6-1        COUNT R-REGISTER LINE
 APP10    NG     X6,APP9     IF MORE LINES TO FORMAT
  
*         DUMP MEMORY IN *Q* FORMAT.
  
          PRINT  (=2C  )
          PRINT  (=C*          PPU MEMORY*) 
          PRINT  (=2C  )
          SX6    B1+
          SA6    APPG        SET *PBUF*-DEFINED TO TRUE 
          RJ     DPQ         DUMP PPU MEMORY
          SA3    APPF 
          NZ     X3,APP11    IF DUMPING PP SAVE AREA DATA 
          RJ     GPS         GET PP SAVE AREA DATA
          SX6    1           SET DUMPING PP SAVE AREA DATA FLAG 
          NZ     X5,APP1     IF PP FOUND IN PP SAVE AREA
 APP11    SX6    B0+
          SA6    APPF        CLEAR DUMPING PP SAVE AREA DATA FLAG 
          SA6    APPG        CLEAR  *PBUF*-VALID
          JP     APPX        EXIT 
  
 APPA     DATA   C*        ANALYSIS OF PPXX       (LOGICAL PPYY)* 
          CON    APPA 
 APPB     DATA   50H     RE-ANALYSIS OF PPXX, AFTER RESTORING IT FROM 
          DATA   C*THE PP SAVE AREA AT 000000.    (LOGICAL PPYY)* 
          CON    APPB 
 APPC     DATA   50H       RESIDENT ENTRY POINTS          LOW CORE CON
          DATA   C*STANTS*
 APPD     DATA   50H          NAME  LOC CALLER        NAME LOC   ACTUA
          DATA   C*L EXPECTED*
 APPE     BSS    1           LINE INDEX 
 APPF     CON    0           DUMPING PP SAVE AREA DATA FLAG 
 APPG     CON    0           PP DATA IN *PBUF* FLAG 
 APPH     CON    0           PP REGISTER DATA FLAG
 ASD      SPACE  4,12 
**        ASD - ASSEMBLE DIGITS.
* 
*         ENTRY  (B7) = 0, IF OCTAL BASE. 
*                     = NONZERO, IF DECIMAL BASE. 
*                (CH) = STRING POINTER. 
* 
*         EXIT   (X4) = NONZERO, IF CONVERSION ERROR. 
*                (X6) = CONVERTED DIGITS. 
*                (B6) = 0, IF AT END OF DIRECTIVE.
*                     = NONZERO, IF DIGITS PROCESSED. 
* 
*         USES   X - 5. 
* 
*         CALLS  ASN, DXB.
  
  
 ASD      SUBR               ENTRY/EXIT 
          RJ     ASN         ASSEMBLE NAME
          BX5    X6 
          RJ     DXB         CONVERT DISPLAY CODE TO BINARY 
          EQ     ASDX        RETURN 
 ASN      SPACE  4,15 
**        ASN - ASSEMBLE NAME.
*         ASSEMBLES UP TO A 10-CHARACTER NAME TO A SEPARATOR. 
*         LEADING SPACES ARE IGNORED. 
* 
*         ENTRY  (CH) = STRING POINTER. 
* 
*         EXIT   (X6) = NAME, LEFT-JUSTIFIED AND ZERO-FILLED. 
*                     = 0, IF NULL PARAMETER. 
*                (B6) = 0, IF AT END OF DIRECTIVE.
*                    .LT.0, IF SHIFT COUNT TO RIGHT-JUSTIFY.
*                    .GT.0, IF NULL PARAMETER.
* 
*         ERROR  TO *ERR33*, IF PARAMETER MORE THAN 10 CHARACTERS.
* 
*         USES   X - 1, 6, 7. 
*                A - 1, 7.
*                B - 6. 
  
  
 ASN3     SX7    A1+         STORE ADDRESS OF LAST PARAMETER
          SA7    CH 
          LX6    B6          LEFT-JUSTIFY PARAMETER 
          ZR     X6,ASNX     IF NULL PARAMETER
 ASN4     SB6    B6-60       CLEAR IF END OF DIRECTIVE
  
 ASN      SUBR               ENTRY/EXIT 
          SB6    60          PRESET SHIFT COUNT 
          SX6    0           PRESET ASSEMBLED NAME
          SA1    CH          GET FIRST CHARACTER
          SA1    X1+
          SX7    X1-1R/ 
          NG     X7,ASN2     IF FIRST CHARACTER NOT SEPARATOR 
          SX7    X1-1R. 
          ZR     X7,ASN4     IF END OF DIRECTIVE
 ASN1     SA1    A1+1        GET NEXT CHARACTER 
 ASN2     SX7    X1-1R
          ZR     X7,ASN1     IF SPACING WITHIN DIRECTIVE
          SX7    X1-1R/ 
          PL     X7,ASN3     IF END OF PARAMETER
          SB6    B6-6 
          NG     B6,ERR33    IF MORE THAN 10 CHARACTERS READ
          LX6    6           STORE CHARACTER
          BX6    X6+X1
          EQ     ASN1        GET NEXT CHARACTER 
 ASP      SPACE  4,27 
**        ASP - ANALYZE SELECTED PPUS.
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (X6) = PARAMETER BLOCK ADDRESS.
*                (PC) = PP COMMUNICATION AREA POINTER.
* 
*         PARAMETER BLOCK FORMAT -
* 
*         18/ NAME,1/ ,5/ NUMBER,1/ OT BIT,18/ ,5/ ORIGIN TYPE,12/
*         SECOND ENTRY
*           .      .
*           .      .
*           .      .
*         60/ NEGATIVE WORD TERMINATES BLOCK
* 
*                NAME = 0 IF ANY ACTIVE PPU ALLOWED.
*                     = PPU NAME. 
*                NUMBER = 0 IF ANY CONTROL POINT NUMBER ALLOWED.
*                       = CONTROL POINT NUMBER THAT MUST MATCH THE
*                         CONTROL POINT NUMBER ASSOCIATED WITH THE PPU. 
*                OT BIT = 0 IF ANY ORIGIN TYPE ALLOWED. 
*                       = 1 IF THE ORIGIN TYPE SPECIFIED (BITS 17-12) 
*                         MUST MATCH THE ORIGIN TYPE OF THE CONTROL 
*                         POINT ASSOCIATED WITH THE PPU.
* 
*         USES   X - ALL. 
*                A - 1, 3, 4, 5, 6, 7.
*                B - 2. 
* 
*         CALLS  APP, SCM, SPA. 
  
  
 ASP      SX7    A0 
          SA7    ASPA        SAVE RETURN ADDRESS
          SA6    A7+B1       SAVE PARAMETER BLOCK ADDRESS 
          SA1    PC          GET PP COMMUNICATION AREA POINTER
          BX6    X1 
          SA6    PI          SET SEARCH INDEX 
 ASP1     RJ     SPA         SELECT NEXT PPU TO ANALYZE 
          ZR     X1,ASP6     IF NO MORE PPUS TO ANALYZE 
          SA5    F.TCMT 
          SB2    X6-10B 
          SA4    X5+B2       READ INPUT REGISTER
          SA1    ASPB 
          SA5    X1-1 
 ASP2     SA5    A5+1        NEXT ENTRY IN TABLE
          NG     X5,ASP1     IF END OF TABLE
          MX3    18 
          BX2    X5*X3
          ZR     X2,ASP3     IF ANY ACTIVE PPU ALLOWED
          BX0    X5-X4
          BX1    X0*X3
          NZ     X1,ASP2     IF NAMES DO NOT MATCH
 ASP3     MX6    5
          LX6    -19
          BX1    X5*X6
          ZR     X1,ASP4     IF ANY CONTROL POINT NUMBER ALLOWED
          BX1    X5-X4
          BX1    X1*X6
          NZ     X1,ASP2     IF CONTROL POINT NUMBERS DO NOT MATCH
 ASP4     BX2    X5 
          LX2    24 
          PL     X2,ASP5     IF ANY ORIGIN TYPE ALLOWED 
          SA1    F.TCMT 
          SX7    CPLEN
          BX3    X4*X6
          LX3    24          CONTROL POINT NUMBER 
          IX3    X3*X7       CONTROL POINT AREA ADDRESS 
          IX3    X1+X3
          SA3    X3+JOTW     GET CONTROL POINT AREA ORIGIN TYPE 
          AX6    24 
          BX6    X6*X3
          BX5    X6*X5       GET ORIGIN TYPE FOR TABLE ENTRY
          BX5    X5-X6
          NZ     X5,ASP2     IF ORIGIN TYPES DO NOT MATCH 
 ASP5     RJ     APP         ANALYZE PPU
          JP     ASP1        CONTINUE 
  
 ASP6     RJ     SCM         SET CENTRAL MEMORY 
          SA7    RI 
          SA1    ASPA 
          SB2    X1 
          JP     B2          RETURN 
  
 ASPA     BSS    1           RETURN ADDRESS 
 ASPB     BSS    1           PARAMETER BLOCK ADDRESS
 ASX      SPACE  4,15 
**        ASX - ASSEMBLE HEXADECIMAL DIGITS.
* 
*         ENTRY  (CH) = STRING POINTER. 
* 
*         EXIT   (X4) = NONZERO, IF CONVERSION ERROR. 
*                (X6) = CONVERTED DIGITS. 
*                (B6) = 0, IF NO DIGITS ASSEMBLED.
*                (ASXA) = NUMBER IN DISPLAY CODE, 
*                       = 0 IF NULL PARAMETER.
* 
*         USES   X - 4, 5.
* 
*         CALLS  ASN, HXB.
  
  
 ASX      SUBR               ENTRY/EXIT 
          SX4    1           PRESET ERROR RESPONSE
          RJ     ASN         ASSEMBLE NAME
          SA6    ASXA        SAVE NAME
          ZR     B6,ASXX     IF NO DIGITS ASSEMBLED 
          BX5    X6 
          RJ     HXB         CONVERT DISPLAY CODE TO HEX
          EQ     ASXX        RETURN 
  
 ASXA     CON    0           SAVE RESULT FROM *ASN* 
 ATC      SPACE  4,13 
**        ATC - ASSEMBLE TRACK CHAIN. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (GNFA - GNFA+5) = FILE INFORMATION.
* 
*         EXIT   TRACK LINKS STORED ONE PER WORD RIGHT JUSTIFIED
*                IN TABLE *TSC1*.  TABLE *TSCR* IS USED TO HOLD THE 
*                SELECTED TRT DURING THE ASSEMBLY PROCESS.
* 
*         USES   X - 0, 1, 2, 3, 4, 5, 6. 
*                A - 0, 1, 2, 3, 5, 6.
*                B - 2, 3, 4, 5.
* 
*         CALLS  PCM. 
* 
*         MACROS ADDWRD, ALLOC, GETCM.
  
  
 ATC      SUBR
          SA2    GNFA+5      READ EST 
          MX0    -12
          BX3    -X0*X2 
          LX3    3
          SX5    X3          SAVE MST ADDRESS 
          SX3    X3+TRLL
          RJ     PCM         POSITION TO MST WORD *TRLL*
          GETCM 
          MX0    -18         SAVE FWA OF TRT
          BX6    -X0*X6 
          SA6    ATCA 
          MX0    -12
          SX3    X5+TDGL
          RJ     PCM         POSITION TO TRT ADDRESS
          GETCM 
          AX6    24 
          SA1    ATCA        SET FWA OF TRT 
          SB3    X1 
          SA5    A0          SAVE A0
          BX5    -X0*X6      TRT LENGTH 
          SA1    L.TSCR      ALLOCATE SCRATCH TABLE SPACE 
          IX1    X5-X1
          ALLOC  TSCR,X1
          SA0    X2          SAVE TABLE FWA 
          SX0    X3          SAVE TABLE LENGTH
          SX3    B3+
          RJ     PCM         POSITION TO TRT
          GETCM  A0,X0       READ TRT INTO SCRATCH TABLE
          SB5    X0          RESET TABLE LENGTH 
          SX6    B0 
          SA6    L.TSC1      CLEAR LINK TABLE 
          SA3    GNFA+2      READ FST 
          MX1    -12
          AX3    36 
          BX1    -X1*X3      EXTRACT FIRST TRACK NUMBER 
 ATC1     ADDWRD TSC1,X1     STORE LINK IN TABLE
          SA0    A5+         RESTORE A0 
          SX2    X1-3777B 
          ZR     X2,ATC2     IF LINKED TO FLAW
          LX1    -12
          PL     X1,ATCX     IF EOI REACHED 
          LX1    12 
          MX0    -11
          BX1    -X0*X1      CLEAR LINKED FLAG
          MX2    -2 
          BX2    -X2*X1      BYTE INDEX 
          AX1    2           TRT WORD ORDINAL 
          SB3    X1 
          GE     B3,B5,ATC2  IF LINK BEYOND END OF TRT
          SB2    X2 
          SX3    12 
          IX3    X2*X3
          SB4    X3          SHIFT COUNT
          SA2    F.TSCR 
          IX2    X1+X2
          SA1    X2          READ TRT WORD
          SX5    10B
          AX5    X5,B2
          BX4    X5*X1       CHECK RESERVATION
          ZR     X4,ATC2     IF TRACK NOT RESERVED OR ALREADY LINKED
          BX6    -X5*X1      CLEAR RESERVATION
          SA6    A1          UPDATE TRT 
          MX0    12 
          LX1    X1,B4       POSITION TRT WORD
          BX1    X0*X1       EXTRACT NEXT LINK
          LX1    12 
          JP     ATC1        ADD TO TABLE 
  
 ATC2     SX1    -=C*                        INCORRECT TRACK LINKAGE* 
          ADDWRD TSC1,X1     SET ERROR FLAG 
          SA0    A5          RESTORE A0 
          JP     ATCX        EXIT 
  
 ATCA     CON    0           FWA OF TRT 
 BCP      SPACE  4,9
**        BCP - BEGIN CONTROL POINT DUMP. 
* 
*         ENTRY  (CH) = DIRECTIVE CARD STRING POINTER.
* 
*         EXIT   (PI) = *TCMT* TABLE INDEX FOR ACTIVE CP SEARCH.
*                     = 0, IF CONTROL POINT NUMBERS ON DIRECTIVE CARD.
* 
*         USES   X - 1, 6.
*                A - 1, 6.
  
  
 BCP      SUBR
          SX6    0
          SA6    PI          PRESET SEARCH INDEX
          SA1    CH          CHECK LAST SEPARATOR 
          SA1    X1+
          SX1    X1-1R. 
          NZ     X1,BCPX     IF NUMBERS SPECIFIED ON DIRECTIVE CARD 
          SA1    FW          CPA/PCPA FWA - CPLEN 
          SX6    X1+TFSW
          SA6    PI          PRESET CP AREA SEARCH INDEX
          JP     BCPX        EXIT 
 BPN      SPACE  4,15 
**        BPN - BUILD PPU NAME. 
* 
*         ENTRY  (PP) = PPU NUMBER. 
*                (IC) = *CPP* RECORD PROCESSING FLAG. 
*                (IPDA) = PPU/FLPP RECORD FLAG. 
* 
*         EXIT   (X0) = MASK FOR PP/CPP/FLPP RECORD SEARCH. 
*                (X3) = PP NUMBER IN DISPLAY CODE MINUS 3333B.
*                (X6) = (BPNA+1) = PP HEADER NAME IN FORM *CPPNN*,
*                                  *PPNN*, OR *FPNN*, LEFT JUSTIFIED. 
*                (X7) = (BPNA) = PP RECORD NAME IN FORM *DNN*, *PPNN*,
*                                OR *FPNN*, LEFT JUSTIFIED. 
* 
*         USES   X - 0, 1, 2, 3, 6, 7.
*                A - 1, 2, 6, 7.
  
  
 BPN      SUBR
          SA1    PP 
          SX2    707B 
          BX3    X1 
          LX3    3
          BX3    X3+X1
          BX3    X3*X2
          SA1    IC 
          LX3    47-11
          SA2    IPDA 
          ZR     X1,BPN1     IF NOT CPP 
          SA1    BPNB 
          SA2    .CPP        GET CPP RECORD ID
          IX6    X1+X3
          LX6    -6 
          JP     BPN2        SET IN HEADER
  
 BPN1     SA2    .NPP+X2     GET RECORD ID
          NO
          IX6    X3+X2
 BPN2     IX7    X3+X2
          LX3    11-47
          SA6    BPNA+1      SET PP HEADER NAME 
          SA7    A6-B1
          MX0    24 
          JP     BPNX        EXIT 
  
 BPNA     BSS    1           PP RECORD NAME 
          BSS    1           PP HEADER NAME 
 BPNB     VFD    60/4LPP00+1RC  CPP HEADER NAME 
 BST      SPACE  4,15 
**        BST - DUMP BUFFER STATUS TABLE. 
* 
*         ENTRY  (BUF) = MST FOLLOWED BY TRT OR MRT.
* 
*         EXIT   (BUF) = MST AND BST, IF BST PRESENT. 
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 1, 2, 6, 7.
*                B - 2, 5, 6, 7.
* 
*         CALLS  CTS, FDW, POM, P4F, SDI, SRD, SSB. 
* 
*         MACROS GETCM, PRINT.
  
  
 BST      SUBR
          SA1    BUF+BDLL    FWA OF BST 
          LX1    -24
          SX6    X1 
          ZR     X6,BSTX     IF NO BUFFER STATUS TABLE
          SA6    CPRA 
          SA6    FW 
          SB2    A6 
          RJ     POM         POSITION TO BST
          SX7    BSTL        SET BST LENGTH 
          SA7    LW          SET BST LWA+1
          GETCM  BUF+MSTXL,X7  READ BST INTO *BUF*
          PRINT  (=2C  )
          PRINT  (=C*          BUFFER STATUS TABLE*)
          PRINT  (=2C  )
          MX7    1
          SA7    SRDA        PRESET FIRST CALL TO *SRD* 
          SX6    B0 
          SA6    BSTA        CLEAR LINK ORDINAL 
          SA6    BSTB        CLEAR DATA WORD ORDINAL
          SA6    SRDC+5      STOP DASHES AFTER 50 CHARACTERS
          RJ     SSB         CLEAR PRINT STRING 
 BST1     SA1    BSTB        SET DATA ADDRESS 
          SX1    X1+BUF+MSTXL 
          SB5    1           SET WORD COUNT 
          RJ     SRD         SENSE REPEAT DATA
          NZ     X1,BST2     IF REPEAT SENSED 
          SA1    FW          GET BST ADDRESS
          SA2    BSTB 
          IX1    X1+X2
          LX1    -18
          SB6    6
          SB7    PRBF 
          RJ     CTS         CONVERT BST ADDRESS
          SB7    B7+B1
          SX6    1R+
          SA6    B7 
          SB7    B7+B1
          SA1    BSTA        BUFFER ORDINAL 
          LX1    -12
          SB6    4
          RJ     CTS         CONVERT BUFFER ORDINAL 
          SB7    B7+2 
          SA2    =4000005B
          SA1    BSTB        READ BST DATA WORD 
          SA1    X1+BUF+MSTXL 
          RJ     FDW         FORMAT DATA WORD 
          SA2    BSTB        RE-READ DATA WORD
          SA2    X2+BUF+MSTXL 
          SB7    B7+2 
          SB6    10 
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          PRINT  CCCH,B7-CCCH 
 BST2     SA1    BSTA 
          SX6    X1+20B 
          SA6    A1+         UPDATE BUFFER ORDINAL
          SA1    BSTB 
          SX6    X1+B1
          SA6    A1+         UPDATE BST ADDRESS 
          SA2    LW 
          IX3    X6-X2
          NG     X3,BST1     IF MORE TO DUMP
          SA1    SRDC+1 
          BX6    X1 
          SA6    SRDC+5      RESET DASHES FOR 136 CHARACTERS
          JP     BSTX        EXIT 
  
 BSTA     BSS    1           TRACK LINK ORDINAL 
 BSTB     BSS    1           BST DATA WORD ORDINAL
 CCM      SPACE  4,5
**        CCM - PROCESS *CCM* (CRITICAL *NOS/VE* MEMORY) RECORDS. 
* 
*         ENTRY  VIA UNCONDITIONAL JUMP.
* 
*         CALLS  ERF, RBF.
  
  
 CCM      BSS    0           ENTRY
          RJ     ERF         POSITION TO EOR OF HEADER RECORD 
          RJ     RBF         INITIATE READ OF *CCM* DATA RECORD 
          RJ     ERF         SKIP TO EOR
          EQ     RBI2        READ NEXT RECORD 
 CCQ      SPACE  4,10 
**        CCQ - CHECK FOR CIRCULAR QUEUE. 
* 
*         EXIT   (X5) .LT. 0, IF CIRCULAR QUEUE FOUND.
*                     ELSE, QUEUE ENTRY COUNT IS INCREMENTED. 
* 
*         USES   X - 5, 6.
*                A - 5, 6.
* 
*         MACROS PRINT. 
  
  
 CCQ      SUBR
          SA5    CCQB        INCREMENT QUEUE ENTRY COUNT
          SX6    X5+1 
          SA6    CCQB 
          SA5    CCQA        CHECK IF QUEUE ENTRY LIMIT EXCEEDED
          IX5    X5-X6
          PL     X5,CCQX     IF QUEUE ENTRY LIMIT NOT REACHED 
          PRINT  (=2C  )
          PRINT  (=C+ *********WARNING -  QUEUE ENTRY LIMIT EXCEEDED+)
          PRINT  (=2C  )
          EQ     CCQX        RETURN 
  
 CCQA     CON    0           QUEUE ENTRY LIMIT
 CCQB     CON    0           QUEUE ENTRY COUNT
 CEA      SPACE  4,10 
**        CEA - CHECK *EI* ADDRESS. 
* 
*         ENTRY  (X3) = BYTE ADDRESS. 
* 
*         USES   X - 1, 2, 3, 7.
*                A - 1, 2, 7. 
* 
*         CALLS  PCM. 
  
  
 CEA1     BX7    X1          SET RANDOM ADDRESS 
          AX3    3
          SA7    RI 
          RJ     PCM         POSITION CM RECORD 
  
 CEA      SUBR               ENTRY/EXIT 
          SA2    XB 
          SA1    MH+1        MEMORY RECORD RANDOM ADDRESS 
          IX7    X3-X2
          NG     X7,CEA1     IF NOT *EI* ADDRESS
          BX3    X7 
          SA1    EH+1 
          EQ     CEA1        PROCESS ENVIRONMENTAL INTERFACE ADDRESS
 CEP      SPACE  4,10 
**        CEP - CHECK FOR EXTRANEOUS PARAMETERS.
* 
*         ENTRY  (CH) = DIRECTIVE CARD STRING POINTER.
* 
*         EXIT   TO *ERR40* IF EXTRA PARAMETER DETECTED.
* 
*         USES   X - 1. 
*                A - 1. 
  
  
 CEP      SUBR               ENTRY/EXIT 
          SA1    CH          GET NEXT CHARACTER 
          SA1    X1+
          SX1    X1-1R. 
          NG     X1,ERR40    IF NOT END OF DIRECTIVE
          EQ     CEPX        RETURN 
 CKC      SPACE  4,12 
**        CKC - CRACK AND PROCESS DIRECTIVE CARD. 
* 
*         ENTRY  (B2) = DIRECTIVE PROCESSOR TABLE ADDRESS.
*                       DIRECTIVE BEGINS AT ADDRESS *CHAR* IN 
*                         *S* FORMAT. 
*                (TF) = 0, IF OUTPUT NOT TO TERMINAL. 
* 
*         EXIT   (CH) = DIRECTIVE STRING POINTS TO FIRST ARGUMENT.
*                TO DIRECTIVE PROCESSOR, IF FOUND IN TABLE AND VALID. 
*                TO CALLER, IF DIRECTIVE NOT FOUND IN TABLE.
*                TO *ERR16*, IF PRINTER DIRECTIVE AND TERMINAL OUTPUT.
*                TO *ERR17*, IF TERMINAL DIRECTIVE AND PRINTER OUTPUT.
* 
*         USES   X - 1, 2, 3, 6.
*                A - 1, 2, 6. 
*                B - 2, 3.
* 
*         CALLS  ASN, DIRECTIVE PROCESSORS. 
  
  
 CKC      SUBR
          SX6    CHAR 
          SA6    CH          SET DIRECTIVE STRING POINTER 
          RJ     ASN         ASSEMBLE DIRECTIVE NAME
 CKC1     SA1    B2          READ PROCESSOR TABLE 
          SB2    B2+B1       ADVANCE TABLE POINTER
          ZR     X1,CKCX     IF END OF TABLE
          SA2    X1          READ PROCESSOR NAME
          BX3    X2-X6
          NZ     X3,CKC1     IF NO MATCH
          SB3    X1+B1       SET EXECUTION ADDRESS
          LX3    X1,B1
          SA2    TF          CHECK TERMINAL FLAG
          ZR     X2,CKC2     IF OUTPUT NOT TO TERMINAL
          NG     X1,ERR16    IF DIRECTIVE RESTRICTED TO PRINTER 
 CKC2     NZ     X2,CKC3     IF OUTPUT TO TERMINAL
          NG     X3,ERR17    IF DIRECTIVE RESTRICTED TO TERMINAL
 CKC3     LX1    -18         SET/CLEAR ERROR RETURN ADDRESS 
          SX6    X1 
          SA6    ERRC+1 
          JP     B3          EXECUTE SELECTED PROCESSOR 
 CLE      SPACE  4,10 
**        CLE - CHECK FOR LAST TABLE ENTRY. 
* 
*         ENTRY  (X4) = TABLE ENTRY NUMBER. 
*                (BE) = BUFFERED DEVICE TABLE ENTRY.
* 
*         EXIT   (X0) = ENTRY ADDRESS RELATIVE TO TABLE FWA.
*                (X1) = ENTRY LENGTH. 
*                (X2) = TABLE LENGTH. 
*                (X3).LT.0, IF ENTRY WITHIN TABLE.
* 
*         USES   X - 0, 1, 2, 3.
*                A - 2. 
  
  
 CLE      SUBR               ENTRY/EXIT 
          SA2    BE          GET TABLE *BDT* ENTRY
          LX2    18 
          MX0    -6 
          BX1    -X0*X2      ENTRY LENGTH 
          IX0    X1*X4       ENTRY ADDRESS RELATIVE TO TABLE FWA
          AX2    42          TABLE LENGTH 
          IX3    X0-X2       CHECK IF ENTRY NUMBER WITHIN TABLE 
          EQ     CLEX        RETURN 
 CMB      SPACE  4,15 
**        CMB - CHECK MEMORY BOUNDS.
* 
*         ENTRY  (B2) = DUMP PARAMETER BLOCK ADDRESS. 
*                (AM) = *ALLMEM* FLAG.
*                (AP) = ADVANCED PROCESSOR FLAG.
* 
*         EXIT   TO CALLER IF DUMP PARAMETERS OKAY. 
*                TO *ERR32* IF PARAMETERS ARE BAD.
* 
*         USES   X - 1, 2.
*                A - 1, 2.
  
  
 CMB      SUBR               ENTRY/EXIT 
          SA1    CE 
          ZR     X1,CMBX     IF BOUNDS CHECKING NOT REQUIRED
          SA1    AM 
          NZ     X1,CMBX     IF *ALLMEM* ENABLED
          SA1    SBTL1
          SA2    =10HCM 
          BX1    X1-X2
          NZ     X1,CMBX     IF NOT DUMPING CM
          SA2    F.TCMT      GET CM SIZE
          SA1    X2+MABL
          MX2    -24
          LX1    -12
          BX1    -X2*X1 
          SA2    B2+B1       GET LWA+1 OF DUMP
          LX1    6
          IX1    X2-X1
          NG     X1,CMBX     IF LWA+1 WITHIN CM BOUNDARY
          EQ     ERR32       PROCESS BOUNDARY ERROR 
 CMP      SPACE  4,15 
**        CMP - PROCESS *CM* RECORD.
* 
*         ENTRY  VIA UNCONDITIONAL JUMP.
* 
*         EXIT   TO *RBI2* IF NORMAL. 
*                TO *PPE* IF PREMATURE EOF. 
* 
*         USES   A - 1, 2, 3, 6, 7. 
*                X - 1, 2, 3, 6, 7. 
* 
*         CALLS  CRS, ERS, RBH, WBS.
  
  
 CMP      BSS    0           ENTRY
          SA1    BUF         DETERMINE NUMBER OF WORDS TO COPY
          SX6    X1          GET CM SIZE
          PL     X6,CMP1     IF NEW CM FORMAT 
          SX6    X6-1L       DELETE UPPER SPACE 
 CMP1     LX6    9           CONVERT TO WORDS 
          SA6    CMPA 
          RJ     CRS         COPY RECORD TO S 
          SX7    B0          CLEAR NUMBER OF WORDS COPIED 
          SA7    CMPB 
          SA7    ID          CLEAR RECORD ID
 CMP2     RJ     RBH         READ BLOCK OR HEADER FROM FILE *F* 
          NZ     X1,PPE      IF PREMATURE EOF 
          NG     X1,PPE      IF EOR WITH DEFERRED HEADER
          SA1    BWCF        SET NUMBER OF WORDS TO WRITE 
          BX6    X1 
          SA6    BWCS 
          RJ     WBS         WRITE BLOCK TO FILE *S*
          SA1    CMPB        UPDATE COUNT OF WORDS COPIED 
          SA2    BWCS 
          IX6    X1+X2
          SA6    A1 
          SA3    CMPA        TEST ALL WORDS COPIED
          IX6    X6-X3
          NG     X6,CMP2     IF NOT DONE
          RJ     ERS         END RECORD ON S
          SX6    -1          FORCE EOR ON F 
          SA6    EORF 
          EQ     RBI2        EXIT TO READ NEXT RECORD FROM F
  
  
 CMPA     BSS    1           NUMBER OF WORDS TO COPY
 CMPB     BSS    1           NUMBER OF WORDS COPIED 
 CNL      SPACE  4,10 
**        CNL - CHECK NFL LENGTH. 
* 
*         ENTRY  (L.TNFL) = NFL/100 OF CURRENT CP.
* 
*         EXIT   (X1) .GE. 0 IF SUFFICIENT NFL SPACE. 
*                (X1) .LT. 0 IF INSUFFICIENT NFL SPACE. 
*                       WARNING MESSAGE PRINTED.
* 
*         USES   X - 1, 6.
*                A - 1. 
* 
*         MACROS PRINT. 
  
  
 CNL      SUBR               ENTRY/EXIT 
          SA1    L.TNFL      GET NFL/100
          SX6    DNFL        GET DEFAULT
          IX1    X1-X6
          PL     X1,CNLX     IF SUFFICIENT SPACE
          PRINT  (=2C  )
          PRINT  (=C* INSUFFICIENT NFL SPACE.*) 
          PRINT  (=2C  )
          MX1    1           SET ERROR STATUS 
          EQ     CNLX        RETURN 
 COF      SPACE  4,10 
**        COF - COMPLETE OUTPUT FILES.
*         RESET FIELD LENGTH TO ORIGINAL VALUE IF CHANGED.
* 
*         ENTRY  OF = CURRENT OUTPUT FILE FET ADDRESS.
*                FN = INITIAL FIELD LENGTH. 
*                FM = CURRENT FIELD LENGTH. 
*                BD = BINARY DUMP FLAG. 
* 
*         USES   X - 0, 1, 2, 6, 7. 
*                A - 1, 2, 6, 7.
* 
*         CALLS  COD. 
* 
*         MACROS MEMORY, RECALL, RETURN, SETFS, WRITER. 
  
  
 COF      SUBR
          RECALL L
          WRITER X2,R 
          SETFS  X2,0        CLEAR OUTPUT FILE ID 
          SA1    OF 
          IX2    X1-X2
          ZR     X2,COF1     IF NO ALTERNATE FILE ACTIVE
          RECALL X1 
          WRITER X2,R 
          SETFS  X2,0        CLEAR ALTERNATE FILE ID
 COF1     SA1    BD 
          ZR     X1,COF2     IF NOT BINARY DUMP 
          RETURN F1          DROP SCRATCH FILE
 COF2     SA1    FM          CURRENT FIELD LENGTH 
          RJ     COD         CONVERT TO DISPLAY CODE
          MX0    -36
          BX6    -X0*X6 
          LX6    12 
          SA2    MSG2A       STORE FL USED INTO MESSAGE 
          BX7    X2+X6
          SA7    A2 
          SA1    FN          INITIAL FIELD LENGTH 
          SA2    FM          CURRENT FIELD LENGTH 
          IX2    X2-X1
          ZR     X2,COFX     IF NO FL CHANGE
          LX1    30 
          BX6    X1 
          SA6    A1          SET RFL PARAMETER
          MEMORY CM,FN,R
          JP     COFX        EXIT 
 CPC      SPACE  4,10 
**        CPC - CHECK PAGE CHANGE.
* 
*         CHECK IF THE FWA HAS ENTERED A NEW CM PAGE AND
*         IF NECESSARY, POSITION TO THAT NEW PAGE.
* 
*         ENTRY  (B2+0) - SVA TO DUMP NEXT. 
* 
*         EXIT   *NXB* - POSITIONED TO CORRECT ADDRESS. 
*                (X2) = 0, IF PAGE IS PRESENT.
*                (X3) < 0, IF PAGE IS VALID.
*                (A3) = *PTEVCUM* 
* 
*         USES   X - 1, 2, 6. 
*                A - 1, 2, 6. 
* 
*         SAVES  X - 5. 
* 
*         CALLS  PSM, SPT.
  
  
 CPC      SUBR               ENTRY/EXIT 
          MX3    1
          SA4    B2          ADDRESS TO BE DUMPED 
          SA1    XM          PAGE SIZE MASK 
          BX6    X4*X1
          SX2    B0 
          AX4    32 
          BX7    X5          SAVE X5
          NZ     X6,CPCX     IF NO PAGE CHANGE
          ZR     X4,CPCX     IF NOT VIRTUAL MEMORY DUMP 
          SA7    CPCA        SAVE X5
          RJ     SPT         SEARCH PAGE TABLE
          NZ     X2,CPCX     IF PAGE MISSING
          SB2    BRMA        BYTE REAL MEMORY ADDRESS OF PAGE 
          RJ     PSM         POSITION TO THE RMA
          SA1    CPCA        RESTORE X5 
          SA3    PTEVCUM
          BX5    X1 
          SX2    B0          DEFINE PAGE AS PRESENT 
          EQ     CPCX        RETURN 
  
 CPCA     CON    0
 CPD      SPACE  4,10 
**        CPD - COPY PP DATA TO BUFFER. 
* 
*         ENTRY  DUMP FILE POSITIONED TO PROPER PP RECORD.
* 
*         EXIT   PP MEMORY COPIED TO BUFFER *PBUF*. 
* 
*         USES   X - 1, 6.
*                A - 1, 6.
* 
*         MACROS READW. 
  
  
 CPD1     READW  S,PBUF,IUBUFL1 
          SX6    IUBUFL1
 CPD2     SA6    NXBA 
          BX6    X6-X6
          SA6    A6+B1
          SX6    PBUF-1 
          SA6    A6+1 
  
 CPD      SUBR               ENTRY/EXIT 
          SA1    IO 
          NZ     X1,CPD1     IF NOT I4A OR I4S IOU
          READW  S,PBUF,IUBUFL2 
          SX6    IUBUFL2
          EQ     CPD2        SET POINTERS FOR *NXB* 
 CPN      SPACE  4,10 
**        CPN - CONVERT PP/CPP NUMBER.
* 
*         ENTRY  (PP) = PP/CPP NUMBER FROM DUMP.
* 
*         EXIT   (X2) = (PP). 
*                (X3) .NE. 0 IF DUMPING A CPP.
*                (X6) = LOGICAL PP/CPP NUMBER.
* 
*         USES   X - 2, 3, 6. 
*                A - 2, 3.
  
  
 CPN      SUBR               ENTRY/EXIT 
          SA2    PP          GET PP/CPP NUMBER
          BX6    X2 
          SX3    X2-20B 
          NG     X3,CPN1     IF NOT UPPER BANK
          SX6    X2-20B+12B  CONVERT UPPER BANK PP NUMBER 
 CPN1     SA3    IC 
          ZR     X3,CPNX     IF NOT PROCESSING CPP-S
          SA3    NP          CONVERT CPP NUMBER 
          IX6    X2+X3
          EQ     CPNX        RETURN 
 CPS      SPACE  4,12 
**        CPS - CHECK PAGE SPACE REMAINING. 
* 
*         ENTRY  X1 = NUMBER OF LINES DESIRED.
*                LC = CURRENT LINE NUMBER.
*                PD = NUMBER OF LINES PER FULL PAGE.
* 
*         EXIT   X6 = NUMBER OF LINES AVAILABLE.
*                A NEW PAGE IS FORCED IF THERE ARE .LT. (X1)
*                LINES LEFT ON THE CURRENT PAGE.
* 
*         USES   X - 2,3,6. 
*                A - 2,3,6. 
  
  
 CPS      SUBR
          SA2    LC          CURRENT LINE COUNT 
          SA3    PD 
          IX6    X3-X2       NUMBER OF LINES LEFT ON THIS PAGE
          IX2    X6-X1
          PL     X2,CPSX     IF ENOUGH ROOM REMAINING 
          BX6    X3 
          SA6    A2          FORCE NEW PAGE 
          JP     CPSX        EXIT 
 CRA      SPACE  4,10 
**        CRA - COMPUTE CONTROL POINT REFERENCE ADDRESS.
* 
*         ENTRY  (X6) = CONTROL POINT NUMBER. 
* 
*         EXIT   (X6) = CONTROL POINT RA. 
*                (X7) = CONTROL POINT FL. 
* 
*         USES   X - 1, 2.
*                A - 2. 
* 
*         CALLS  GFL. 
  
  
 CRA      SUBR
          SA2    NC 
          SX2    X2+B1       ALLOW FOR SYSTEM CONTROL POINT 
          IX2    X2-X6
          NG     X2,ERR8     IF INCORRECT CONTROL POINT NUMBER
          SX2    CPLEN
          IX1    X2*X6
          RJ     GFL         GET RA 
          JP     CRAX        EXIT 
 CRS      SPACE  4,10 
**        CRS - COPY RECORD TO S. 
* 
*         ENTRY  (BWCF) = NUMBER OF WORDS TO WRITE IN 1ST BLOCK.
* 
*         USES   A - 1, 6.
*                X - 1, 6.
* 
*         CALLS  ERS, RBH, WBS. 
  
  
 CRS2     RJ     ERS         END RECORD ON S
  
 CRS      SUBR               ENTRY/EXIT 
 CRS1     SA1    BWCF        SET NUMBER OF WORDS TO WRITE 
          BX6    X1 
          SA6    BWCS 
          RJ     WBS         WRITE BLOCK TO S 
          SA1    EORF 
          NG     X1,CRS2     IF EOR 
          RJ     RBH         READ BLOCK OR HEADER 
          NZ     X1,PPE      IF PREMATURE EOF 
          NG     X1,CRS2     IF EOR WITH DEFERRED HEADER
          EQ     CRS1        CONTINUE COPY OF RECORD
 CSI      SPACE  4,10 
**        CSI - COLLECT SEGMENT INFORMATION.
* 
*         ENTRY  (BUF - BUF+53*4) = C170-8X5 EXCHANGE PACKAGE.
* 
*         EXIT   X6 = 12/0, 16/STL, 32/STA. 
* 
*         USES   A - 1, 2, 3. 
*                X - 1, 2, 3, 6.
  
  
 CSI      SUBR               ENTRY/EXIT 
          SA1    BUF+128/2   SEGMENT TABLE LENGTH 
          SA2    BUF+272/2   SEGMENT TABLE ADDRESS
          SA3    BUF+280/2
          LX1    32 
          LX2    16 
          BX3    X1+X3
          BX6    X3+X2
          JP     CSIX        RETURN 
 CST      SPACE  4,10 
**        CST - CREATE SUBTITLE LINE. 
*         READS SYSTEM DATE LINE FROM CM RECORD TO LISTING SUBTITLE.
* 
*         EXIT   (ED) = 0 IF *EDD* DUMP.
*                     = 1 IF *DROPVE* DUMP. 
*                     = 2 IF NO *CM* RECORD FOUND.
* 
*         USES   X - 0, 1, 2, 3, 6. 
*                A - 1, 2, 3, 6.
*                B - 2, 6, 7. 
* 
*         CALLS  PCM, PKS, UPS. 
* 
*         MACROS GETCM, SEARCH. 
  
  
 CST2     SX6    2
          SA6    ED          ED = 2 IF NO CM RECORD FOUND 
  
 CST      SUBR
          MX0    18 
          SA1    .CMM 
          SEARCH TDIR,X1,X0  LOCATE CM RECORD 
          SA3    A2+3 
          NZ     X2,CST1     IF *CM* RECORD PRESET
          SA2    MH 
          ZR     X2,CST2     IF NO CENTRAL MEMORY 
          LX2    -18
          SX6    X2 
          ZR     X6,CST0     IF *EDD* DUMP
          SX6    B1+
 CST0     SA6    ED          ED = 0 IF *EDD* DUMP, = 1 IF *DROPVE* DUMP 
          SX6    B1 
          SA3    A2+B1
          SA6    AP          SET ADVANCED PROCESSOR FLAG
          SA6    CE          SET CM EXTENSION FLAG
 CST1     BX6    X3 
          ZR     X6,ERR4     IF NO CENTRAL MEMORY 
          SA6    UI 
          SA6    RI 
          SA6    CI 
          SX3    TIML 
          RJ     PCM         POSITION DUMP FILE 
          GETCM  CSTA,8      READ SYSTEM DATE/NAME LINE 
          SA2    CSTA 
          SB6    80 
          SB7    PRBF 
          RJ     UPS         UNPACK LINE
          SB2    PRBF 
          SB6    80 
          SB7    SBTL2
          RJ     PKS         REPACK LINE IN SUBTITLE
          JP     CSTX        EXIT 
  
 CSTA     BSS    8
 CTS      SPACE  4,12 
**        CTS - CONVERT TO STRING BUFFER. 
* 
*         ENTRY  X1 = BINARY DIGITS LEFT JUSTIFIED. 
*                B6 = NUMBER OF DIGITS TO CONVERT.
*                B7 = ADDRESS OF STRING BUFFER. 
* 
*         EXIT   B7 IS UPDATED. 
*                X1 IS LEFT SHIFTED (B6)*3 PLACES.
* 
*         SAVES  X - 2,3,4,5,6. 
*                B - 1,2,3,4,5. 
*                A - 0,1. 
  
  
 CTS      SUBR
          SX0    7           DIGIT MASK 
 CTS1     LX1    3           SHIFT ASSEMBLY 
          BX7    X0*X1
          SX7    X7+1R0      CONVERT DIGIT
          SA7    B7          SET IN STRING BUFFER 
          SB7    B7+B1       ADVANCE INDEX
          SB6    B6-1        DECREASE COUNT 
          NZ     B6,CTS1     IF MORE DIGITS 
          JP     CTSX        EXIT 
 CVB      SPACE  4,10 
**        CVB - CONVERT *NOS/VE* BUFFER.
* 
*         CONVERT 64-BIT WORDS IN *FBB* FORMAT TO 60-BIT FORMAT (BYTE 0 
*         IS TRUNCATED) FOR PROCESSING *DROPVE* DUMPS.
* 
*         ENTRY  (X3) = NUMBER OF WORDS TO CONVERT.  MUST BE .GT. 0.
*                (CVBA) = CONVERTED BUFFER POINTER. 
* 
*         EXIT   (CVBA) UPDATED.
* 
*         USES   X - 0, 1, 2, 3, 6. 
*                A - 1, 2, 6. 
  
  
 CVB      SUBR               ENTRY/EXIT 
          SA1    ED 
          ZR     X1,CVBX     IF USING *CM* RECORD 
          SA1    BUF-1
          SA2    CVBA        GET POINTER
 CVB1     MX0    -28
          SA1    A1+B1       GET BYTES 0, 1 
          BX6    -X0*X1      TRUNCATE BYTE 0
          LX6    32 
          SA1    A1+B1       GET BYTES 3, 4 
          BX6    X6+X1
          SA6    X2          STORE CONVERTED WORD 
          SX2    X2+B1       UPDATE POINTER 
          SX3    X3-1 
          NZ     X3,CVB1     IF MORE TO CONVERT 
          BX6    X2          STORE UPDATED POINTER
          SA6    A2 
          EQ     CVBX        RETURN 
  
  
 CVBA     CON    0           STORAGE ADDRESS
 CVE      SPACE  4,15 
**        CVE - CHECK CONTROLLER DATA VERIFICATION ERROR. 
* 
*         ENTRY  (B5) = LEFT SHIFT FOR LOGICAL DIFFERENCE.
*                (X6) = VERIFICATION ERROR FLAG.
*                       0 = NO ERROR. 
*                       10B = BIT 0 IN ERROR. 
*                       1-7 = CORRESPONDING BIT IN ERROR. 
*                       17B = MULTIPLE BIT FAILURE. 
* 
*         EXIT   (X6) = 0 IF NO VERIFICATION ERROR. 
*                (X6) .LT. 0 IF MULTIPLE BIT FAILURE. 
*                (X6) = SHIFTED LOGICAL DIFFERENCE FOR BIT IN ERROR.
* 
*         USES   X - 6. 
*                B - 4. 
  
  
 CVE      SUBR               ENTRY/EXIT 
          ZR     X6,CVEX     IF NO ERROR
          SB4    X6-10B 
          MX6    1
          GT     B4,CVEX     IF MULTIPLE BIT FAILURE
          SX6    B1 
          ZR     B4,CVE1     IF BIT 0 IN ERROR
          SB4    B4+10B      VERIFICATION ERROR BIT NUMBER
 CVE1     LX6    B4 
          LX6    B5 
          EQ     CVEX        RETURN 
 DBB      SPACE  4,9
**        DBB - DUMP BATCHIO BUFFER POINTS. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (CN) = CONTROL POINT NUMBER. 
*                (RC) = CONTROL POINT REFERENCE ADDRESS.
* 
*         USES   X - ALL. 
*                A - 1, 2, 3, 4, 5, 6, 7. 
*                B - 2, 3, 4, 5, 6, 7.
* 
*         CALLS  CTS, DFI, FDW, PCM, SDI, SSB, UPS. 
* 
*         MACROS GETCM, PRINT.
  
  
 DBB      PRINT  (=2C  )
          PRINT  (=C*          BATCHIO BUFFER POINTS*)
  
*         PROCESS AVAILABLE EQUIPMENT TABLE.
  
          SA2    SSBF+/BIO/TEQR 
          SB6    5*7+4       MAXIMUM NUMBER OF EQUIPMENTS AVAILABLE 
          SB7    DBBA 
          LX2    12          SKIP COUNT FIELD 
          MX0    -12
          SB5    4           BYTE COUNT FIRST WORD
          JP     DBB2        ENTER LOOP 
  
 DBB1     SB5    5           BYTE COUNT REMAINING WORDS 
 DBB2     LX2    12 
          BX1    -X0*X2      NEXT BYTE
          SB5    B5-B1
          SB6    B6-B1
          ZR     X1,DBB3     IF END OF TABLE
          NG     B6,DBB3     IF MAXIMUM REACHED 
          AX1    3
          BX6    -X0*X2 
          LX6    9
          BX6    -X0*X6 
          LX6    54-9 
          BX6    X6+X1
          SA6    B7+         STORE ENTRY INTO EQUIPMENT TYPE TABLE
          SB7    B7+1 
          NZ     B5,DBB2     IF MORE BYTES IN THIS WORD 
          SA2    A2+1        READ NEXT WORD 
          JP     DBB1        CONTINUE 
  
 DBB3     SX6    B0 
          SA6    B7          INDICATE END 
  
*         CHECK FOR TWO EQUIPMENTS AT SAME ORDINAL. 
  
          SB5    DBBA 
 DBB4     SB7    B7-1 
          SB6    B7+
          LE     B7,B5,DBB6  IF NO EQUIPMENTS MATCH 
          SA1    B7+
 DBB5     SB6    B6-B1
          SA2    B6 
          LT     B6,B5,DBB4  IF NO MATCH YET
          BX3    X1-X2       COMPARE ORDINALS 
          BX4    -X0*X3 
          NZ     X4,DBB5     IF NO MATCH
          PRINT  (=2C  )
          PRINT  (=C+ *********WARNING -  BATCHIO AVAILABLE EQUIPMENT TA
,BLE ERROR, TWO MATCHING ORDINALS+) 
  
*         CLEAR FET ADDRESS TABLE.
  
 DBB6     SB5    DBBB 
          MX6    1
          SB6    DBBB+/BIO/MXEQ 
 DBB7     SB6    B6-1 
          LT     B6,B5,DBB8  IF FINISHED
          SA6    B6+
          JP     DBB7 
  
*         SET ACTIVE BUFFER POINT COUNT.
  
 DBB8     SA2    =3L1CD      SET PP NAME MASK 
          BX0    X2 
          SX5    0           SET INITIAL COUNT
          SB3    /BIO/D1AR   SET 1ST DRIVER ASSIGNMENT WORD ADDRESS 
 DBB9     SA2    RC          SET DRIVER WORD ADDRESS
          SX7    B3          SAVE ADDRESS 
          IX3    X2+X7
          SA7    DBBI 
          RJ     PCM         POSITION TO DRIVER ASSIGNMENT WORD 
          GETCM 
          BX3    X0-X6
          AX3    42 
          NZ     X3,DBB10    IF *1CD* NOT RUNNING 
          LX6    36 
          AX6    48 
          IX5    X5+X6       ADD INTO COUNT 
 DBB10    SA2    DBBI        CHECK NEXT ASSIGNMENT WORD 
          SB3    X2+B1
          SB6    /BIO/DRQR
          NE     B3,B6,DBB11 IF THREE WORDS NOT PROCESSED 
          MX0    -12         SET BUFFER POINT NUMBER MASK 
          SX7    X5          SAVE COUNT 
          SA7    DBBH 
  
*         SET FET ADDRESS TABLE.
  
          SX5    /BIO/BUFR   ADDRESS OF FIRST FET 
          SX7    /BIO/MXEQ
          SA7    DBBC        SET MAXIMUM NUMBER OF FETS TO PROCESS
 DBB11    SA3    DBBH 
          ZR     X3,DBB16    IF OUT OF FETS 
          SA2    RC 
          IX3    X2+X5
          SX6    X5 
          SA6    DBBD        SAVE CURRENT FET ADDRESS 
          RJ     PCM
          GETCM  DBBE,6 
          SA2    DBBE+5 
          LX2    12 
          BX3    -X0*X2      BUFFER POINT INDEX 
          ZR     X3,DBB13    IF NO BUFFER POINT 
          SX3    X3-/BIO/BFCW+2 
          AX3    1           BUFFER POINT 
          SX4    X3-/BIO/MXEQ-1 
          SB3    X3 
          NG     X4,DBB12    IF VALID BUFFER POINT
          PRINT  (=2C  )
          PRINT  (=C+ *********WARNING -  INVALID BATCHIO FET BUFFER POI
,NT+) 
          SX7    X5          ADDRESS OF FET 
          SA1    CN 
          BX6    X1          CONTROL POINT NUMBER 
          SX5    -1 
          RJ     DFI         DUMP FILE INFORMATION
          JP     DBB13       ADVANCE FET ADDRESS
  
 DBB12    SX6    X5+
          SA6    B3+DBBB     SET FET ADDRESS INTO TABLE 
 DBB13    SA3    DBBE+4 
          SA5    DBBD        CURRENT FET ADDRESS
          SX4    X3          NEXT FET ADDRESS 
          IX1    X5-X4
          NG     X1,DBB14    IF CORRECT LINKAGE 
          PRINT  (=2C  )
          PRINT  (=C+ *********WARNING -  BATCHIO FET LINKAGE ERROR+) 
          SX7    X5          ADDRESS OF FET 
          SA1    CN 
          BX6    X1          CONTROL POINT NUMBER 
          SX5    -1 
          RJ     DFI         DUMP FILE INFORMATION
          JP     DBB30       TERMINATE DIRECTIVE
  
 DBB14    SX5    X4+         SET FET ADDRESS
          SA3    DBBE 
          MX6    24          CHECK FOR JSN
          BX6    X6*X3
          ZR     X6,DBB15    IF NO JSN IN FET 
          SA3    DBBH        DECREMENT BUFFER POINT COUNT 
          SX6    X3-1 
          SA6    A3+
 DBB15    SA1    DBBC 
          SX6    X1-1 
          SA6    A1+         DECREMENT MAXIMUM NUMBER OF FETS 
          NZ     X6,DBB11    IF MAXIMUM NOT PROCESSED 
  
*         FIND LOCATION OF BUFFER POINTS IN NEGATIVE FL.
  
 DBB16    SX6    B0+
          SA6    DBBG        PRESET BUFFER POINT NUMBER 
 DBB17    SA1    F.TNFL      FORM ADDRESS OF BUFFER POINTS IN *TNFL*
          SA2    L.TNFL 
          SX5    /BIO/BFCW+2
          IX1    X1+X2
          IX6    X1-X5
          SA6    DBBF        LOCATION-2 OF BUFFER POINTS
  
*         DUMP BUFFER POINTS. 
  
          SA1    DBBG 
          SX6    X1+1 
          SA6    A1+
          SX2    X6-/BIO/MXEQ-1 
          SX5    X6+         BUFFER POINT NUMBER
          ZR     X2,DBB30    IF ALL BUFFER POINTS DUMPED
          PRINT  (=2C  )
          RJ     SSB         CLEAR PRINT STRING 
  
*         SET BUFFER POINT, FIRST WORD. 
  
          SA2    DBBF 
          LX0    X5,B1
          IX4    X0+X2
          SA1    X4 
          ZR     X1,DBB30    IF ALL ACTIVE BUFFER POINTS DUMPED 
          BX6    X1          SAVE FIRST WORD
          SA6    DBBJ 
          SB7    PRBF+36
          SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW
          BX2    X1 
          SB6    10 
          RJ     SDI
  
*         SET BUFFER POINT NUMBER.
  
          SB7    PRBF 
          SA2    =13HBUFFER POINT 
          SB6    13 
          RJ     UPS
          BX1    X5 
          LX1    -6 
          SB6    2
          RJ     CTS         CONVERT BUFFER POINT NUMBER
  
*         SET EQUIPMENT TYPE. 
  
          SA2    =17HEQUIPMENT TYPE = 
          SB6    17 
          SB7    PRBF+74
          RJ     UPS
  
*         FIND EQUIPMENT TYPE.
  
          MX6    -12
          SA3    DBBJ        GET FIRST WORD OF BUFFER POINT AREA
          AX3    12 
          BX1    -X6*X3 
          ZR     X1,DBB24    IF EST NOT SPECIFIED 
          SB4    DBBA-1 
 DBB18    SB4    B4+B1
          SA2    B4 
          ZR     X2,DBB23    IF NOT FOUND 
          BX3    X1-X2       COMPARE ENTRIES
          BX4    -X6*X3 
          NZ     X4,DBB18    IF MATCH NOT FOUND YET 
          AX2    54 
          BX3    -X6*X2 
          SX2    X3-/BIO/LPDT 
          ZR     X2,DBB19    IF PRINTER 
          SX2    X3-/BIO/CPDT 
          ZR     X2,DBB20    IF CARD PUNCH
          SX2    X3-/BIO/CRDT 
          ZR     X2,DBB21    IF CARD READER 
          SX2    X3-/BIO/NPDT 
          ZR     X2,DBB22    IF NON-IMPACT PRINTER
          SA2    =13HINCORRECT
          JP     DBB25       MOVE NAME TO BUFFER
  
 DBB19    SA2    =13HPRINTER
          JP     DBB25       MOVE NAME TO BUFFER
  
 DBB20    SA2    =13HCARD PUNCH 
          JP     DBB25       MOVE NAME TO BUFFER
  
 DBB21    SA2    =13HCARD READER
          JP     DBB25       MOVE NAME TO BUFFER
  
 DBB22    SA2    =13HNIP PRINTER
          JP     DBB25       MOVE NAME TO BUFFER
  
 DBB23    SA2    =13HNOT FOUND
          JP     DBB25       MOVE NAME TO BUFFER
  
 DBB24    SA2    =13HNOT SPECIFIED
 DBB25    SB6    13 
          RJ     UPS
          BX0    X1 
          PRINT  CCCH,B7-CCCH 
  
*         SET BUFFER POINT, SECOND WORD.
  
          RJ     SSB         CLEAR PRINT STRING 
          BX3    X0 
          SA2    DBBF 
          LX0    X5,B1
          IX4    X0+X2
          SA1    X4+B1
          SB7    PRBF+36
          SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW
          BX2    X1 
          SB6    10 
          RJ     SDI
          ZR     X3,DBB26    IF NO EST SPECIFIED
  
*         SET EST.
  
          SA2    =6HEST - 
          SB6    6
          SB7    PRBF+74
          RJ     UPS
          SA1    F.TCMT 
          SB2    X1+
          SA2    B2+ESTP
          AX2    36 
          R=     X4,ESTE
          IX3    X3*X4
          IX1    X2+X3       EST ADDRESS
          SX1    X1+EQDE
          SA3    B2+X1       EST
          LX1    -18
          SB6    6
          RJ     CTS
          BX1    X3 
          SB7    B7+2 
          SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW
          BX2    X1 
          SB6    10 
          RJ     SDI
 DBB26    PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
  
*         DUMP FET. 
  
          MX0    24 
          SA4    DBBJ        GET BUFFER POINT JSN 
          BX4    X0*X4
          ZR     X4,DBB17    IF NO ASSOCIATED FET 
          SX0    /BIO/MXEQ
 DBB27    SX0    X0-1        GET JSN OF FET 
          NG     X0,DBB28    IF END OF TABLE
          SA5    DBBB+X0
          NG     X5,DBB27    IF NULL ENTRY PROCESS NEXT ENTRY 
          NZ     X5,DBB29    IF STILL SEARCHING FET ADDRESS TABLE 
 DBB28    PRINT  (=2C  )
          PRINT  (=C+ *********WARNING -  EXPECTED FET ADDRESS NOT FOUND
,+) 
          EQ     DBB17       CHECK NEXT BUFFER POINT
  
 DBB29    SA3    RC          READ FIRST WORD OF FET 
          IX3    X5+X3
          RJ     PCM
          GETCM 
          SA4    DBBJ 
          BX1    X6-X4
          AX1    36 
          NZ     X1,DBB27    IF NO MATCHING JSN 
          SX7    X5+         SET FET ADDRESS
          SA1    CN 
          BX6    X1          CONTROL POINT NUMBER 
          SX5    -1 
          RJ     DFI         DUMP FILE INFORMATION
          JP     DBB17       CONTINUE 
  
 DBB30    SB2    A0 
          JP     B2          RETURN 
  
 DBBA     BSS    5*10B       EQUIPMENT TYPE TABLE 
*T DBBA   6/ TYPE, 42/, 12/ ORD 
*                TYPE = DEVICE TYPE, SEE *COMSBIO*. 
*                ORD = EST ORDINAL. 
 DBBB     BSS    /BIO/MXEQ   FET ADDRESS TABLE
 DBBC     BSS    1           MAXIMUM NUMBER OF FETS REMAINING 
 DBBD     BSS    1           CURRENT FET ADDRESS
 DBBE     BSS    6           FET
 DBBF     BSS    1           LOCATION-2 OF BUFFER POINTS
 DBBG     BSS    1           CURRENT BUFFER POINT NUMBER
 DBBH     BSS    1           NUMBER OF ACTIVE BUFFER POINTS 
 DBBI     BSS    1           CURRENT DRIVER ASSIGNMENT WORD ADDRESS 
 DBBJ     BSS    1           FIRST WORD OF CURRENT BUFFER POINT AREA
 DBP      SPACE  4,7
**        DBP - DUMP BATCHIO PPUS.
* 
*         ENTRY  A0 = RETURN ADDRESS. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  ASP. 
  
  
 DBP      SX6    DBPA 
          JP     ASP
  
 DBPA     VFD    18/3L1CD,42/0
          VFD    18/3L1IO,42/0
          VFD    18/3LDSP,42/0
          VFD    18/3LQAC,42/0
          VFD    18/3LQAP,42/0
          VFD    60/-1       END OF PARAMETER BLOCK 
 DBT      SPACE  4,25 
**        DBT - DUMP BUFFERED DEVICE TABLE. 
* 
*         ENTRY  (X5) = TABLE DESCRIPTION ADDRESS.
*                (X6) = ADDRESS OF PRINTER FORMAT TABLE POINTERS. 
*                (X6)+1 = ADDRESS OF TERMINAL FORMAT TABLE POINTERS.
*                (X7) = TABLE NAME ADDRESS. 
*                (B2) = TABLE ENTRY INDEX IN BUFFERED DEVICE TABLE. 
* 
*         ERROR  TO *ERR6*, IF CONVERSION ERROR ON SELECTED 
*                  ENTRY NUMBER.
*                TO *ERR16*, IF PROCESSING FULL TABLE DUMP WITH 
*                  TERMINAL OUTPUT. 
*                TO *ERR34*, IF NO BUFFERED DEVICE TABLE ON 
*                  DUMP FILE. 
*                TO *ERR35*, IF SELECTED ENTRY BEYOND TABLE BOUNDARY. 
* 
*         USES   X - 1, 2, 3, 4, 6. 
*                A - 1, 2, 3, 4, 6, 7.
*                B - 2, 6, 7. 
* 
*         CALLS  ASD, CLE, GTD, GTE, LDC, PEN, POM, SCM, SRA. 
* 
*         MACROS GETCM, PRINT.
  
  
 DBT      SUBR               ENTRY/EXIT 
          SA6    DBTA        STORE FORMAT TABLE POINTERS ADDRESS
          SA7    DBTB        STORE TABLE NAME ADDRESS 
          RJ     SCM         SET CENTRAL MEMORY 
          SX1    B2          SAVE (B2) ACROSS *LDC* CALL
          LX5    18 
          BX5    X5+X1
          RJ     LDC         LIST DIRECTIVE 
          SA2    F.TCMT 
          SB2    X5          RESTORE (B2), (X5) 
          AX5    18 
          SA1    X2+BIOL
          AX1    24 
          SX1    X1 
          ZR     X1,ERR34    IF TABLE NOT ON DUMP FILE
          SX6    X1+B2
          SA6    CPRA 
          PRINT  (=2C  )
          PRINT  X5          PRINT TABLE DESCRIPTION
          PRINT  (=2C  )
          PRINT  (=2C  )
          SX6    B0 
          RJ     SRA         SET REFERENCE ADDRESS
          SB2    CPRA 
          RJ     POM         POSITION TO *BDT* ENTRY
          GETCM 
          SA6    BE          STORE *BDT* ENTRY FOR TABLE
          SB7    B0          ASSUME OCTAL BASE
          RJ     ASD         GET NEXT ENTRY NUMBER
          NZ     X4,ERR6     IF CONVERSION ERROR
          NZ     B6,DBT5     IF PROCESSING SELECTED ENTRIES 
  
*         PROCESS FULL TABLE DUMP.
  
          SA1    TF 
          NZ     X1,ERR16    IF OUTPUT TO TERMINAL
          SX6    -1          PRESET ENTRY NUMBER
          SA6    DBTC 
 DBT1     SA4    DBTC 
          SX4    X4+1        INCREMENT ENTRY NUMBER 
          RJ     CLE         CHECK FOR LAST ENTRY 
          PL     X3,DBTX     IF ALL TABLE ENTRIES DUMPED
          SX6    X1+         STORE ENTRY LENGTH 
          SA6    DBTD 
          SA3    BE          GET TABLE FWA
          SX3    X3 
          IX6    X0+X3
          SA6    FW          SET ENTRY ADDRESS IN DUMP FILE 
          SX6    X4+
          SA6    DBTC        STORE ENTRY NUMBER 
          ZR     X4,DBT2     IF DUMPING FIRST ENTRY 
          SX3    0           CLEAR IF NOT FIRST CALL
 DBT2     RJ     GTE         GET TABLE ENTRY FWA IN CORE
          SB2    B0 
          SA1    DBTD        GET ENTRY LENGTH 
          SB3    X1 
 DBT3     SA1    X5+B2       GET ENTRY WORD 
          NZ     X1,DBT4     IF NONZERO ENTRY 
          SB2    B2+B1
          LT     B2,B3,DBT3  IF MORE WORDS TO CHECK 
          EQ     DBT1        CHECK NEXT ENTRY 
  
 DBT4     SB6    4
          SA1    DBTC        GET ENTRY NUMBER 
          LX1    -12
          SA2    DBTB        SET TABLE NAME ADDRESS 
          SA2    X2 
          RJ     PEN         PRINT ENTRY NUMBER 
          SA1    FW 
          IX6    X5-X1
          SB2    X6          SET DATA ADDRESS IN CORE BUFFER
          SA1    DBTA        SET FORMAT TABLE POINTERS
          SA1    X1+
          RJ     GTD         GENERATE DETAILED TABLE ENTRY DUMP 
          PRINT  (=2C  )
          EQ     DBT1        DUMP NEXT ENTRY
  
*         PROCESS DUMP OF SELECTED TABLE ENTRIES. 
  
 DBT5     SX4    X6+
          SA6    DBTC        SAVE ENTRY NUMBER
          RJ     CLE         CHECK FOR VALID ENTRY NUMBER 
          PL     X3,ERR35    IF ENTRY BEYOND END OF TABLE 
          SA3    BE 
          SX3    X3 
          IX6    X0+X3
          SA6    FW          SET ENTRY ADDRESS IN DUMP FILE 
          NZ     B6,DBT6     IF FIRST ENTRY TO BE DUMPED
          SX3    0           CLEAR IF NOT FIRST ENTRY 
 DBT6     RJ     GTE         GET TABLE ENTRY FWA IN CORE
          SB6    4
          SA1    DBTC        GET ENTRY NUMBER 
          LX1    -12
          SA2    DBTB        SET TABLE NAME ADDRESS 
          SA2    X2+
          RJ     PEN         PRINT ENTRY NUMBER 
          SA1    DBTA        GET FORMAT TABLE POINTERS
          SA3    TF 
          ZR     X3,DBT7     IF PRINTER OUTPUT
          SX1    X1+1        SET FOR TERMINAL OUTPUT
 DBT7     SA1    X1 
          SA3    FW 
          IX6    X5-X3
          SB2    X6          SET DATA ADDRESS IN CORE BUFFER
          RJ     GTD         GENERATE DETAILED TABLE ENTRY DUMP 
          PRINT  (=2C  )
          SB7    B0          ASSUME OCTAL BASE
          RJ     ASD         GET NEXT ENTRY NUMBER
          NZ     X4,ERR6     IF CONVERSION ERROR
          ZR     B6,DBTX     IF NO MORE ENTRIES TO DUMP 
          SB6    B0          SET AS NOT FIRST ENTRY DUMPED
          EQ     DBT5        DUMP NEXT ENTRY
  
 DBTA     BSS    1           FORMAT TABLE POINTERS ADDRESS
 DBTB     BSS    1           TABLE NAME ADDRESS 
 DBTC     BSS    1           ENTRY NUMBER 
 DBTD     BSS    1           ENTRY LENGTH 
 DCA      SPACE  4,9
**        DCA - DUMP JOB DAYFILE POINTERS AND BUFFER. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (CN) = CONTROL POINT NUMBER. 
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
* 
*         USES   X - 1, 2.
*                A - 1, 2.
*                B - 2. 
* 
*         CALLS  GDB, PDB, PDP. 
* 
*         MACROS PRINT. 
  
  
 DCA      SA1    CN 
          SA2    NC 
          SX2    X2+B1
          IX1    X2-X1
          ZR     X1,DCA2     IF SYSTEM CONTROL POINT
          PRINT  (=2C  )
          PRINT  (=C*          DAYFILE POINTERS AND BUFFER*)
          PRINT  (=2C  )
          RJ     GDB         GET DAYFILE BUFFERS
          NG     X1,DCA2     IF INSUFFICIENT NFL SPACE
          RJ     PDP         PRINT DAYFILE POINTERS 
          PRINT  (=2C  )
          RJ     PDB         PRINT DAYFILE BUFFER 
 DCA2     SB2    A0          GET RETURN ADDRESS 
          JP     B2          RETURN 
 DCC      SPACE  4,15 
**        DCC - DUMP FIELD LENGTH IN *C* FORMAT.
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (CN) = CONTROL POINT NUMBER. 
*                (FW) = CONTROL POINT AREA ADDRESS. 
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
* 
*         USES   X - 1, 2, 3, 6, 7. 
*         USES   X - 1, 2, 6, 7.
*                B - 2. 
* 
*         CALLS  GFL, PMD, POM, SCM, SRA. 
* 
*         MACROS PRINT. 
  
  
 DCC      SX6    0
 DCC1     SA1    CN 
          SA2    NC 
          SX2    X2+B1
          IX1    X2-X1
          ZR     X1,DCC2     IF SYSTEM CONTROL POINT
          SA6    CPRA+4      SET FORMAT CODE IN PARAMETER BLOCK 
          PRINT  (=2C  )
          PRINT  (=C*          FIELD LENGTH*) 
          PRINT  (=2C  )
          SA1    FW          CP AREA ADDRESS
          RJ     GFL         GET FL, RA 
          SB2    CPRA        SET PARAMETER BLOCK ADDRESS
          SA7    B2+B1       SET LWA+1 OF DUMP
          BX7    X7-X7
          SA7    B2+         SET FWA
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     SCM         SELECT CM DUMP 
 DCC1.1   SB2    CPRA 
          RJ     POM         POSITION DUMP FILE 
          SB2    CPRA 
          RJ     PMD         PROCESS DUMP 
 DCC2     SB2    A0 
          JP     B2          RETURN 
 DCD      SPACE  4
**        DCD - DUMP FIELD LENGTH IN *D* FORMAT.
  
  
 DCD      SX6    1           FORMAT CODE
          JP     DCC1        PROCESS DUMP 
 DCE      SPACE  4
**        DCE - DUMP FIELD LENGTH IN *E* FORMAT.
  
  
 DCE      SX6    2           FORMAT CODE
          JP     DCC1        PROCESS DUMP 
 DCF      SPACE  4,10 
**        DCF - DUMP ATTACHED FILES.
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (CN) = CONTROL POINT NUMBER. 
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
* 
*         USES   X - 1, 2, 6. 
*                A - 1, 2, 6. 
*                B - 2. 
* 
*         CALLS  CNL, GNF, PFS. 
* 
*         MACROS PRINT. 
  
  
 DCF      SA1    CN 
          SA2    NC 
          SX2    X2+B1
          IX1    X2-X1
          ZR     X1,DCF1.1   IF SYSTEM CONTROL POINT
          SX6    FNTN 
          SA6    FI          PRESET SEARCH INDEX
          PRINT  (=2C  )
          PRINT  (=C*          ATTACHED FILES*) 
          PRINT  (=2C  )
          RJ     CNL         CHECK NFL LENGTH 
          NG     X1,DCF1.1   IF INSUFFICIENT NFL SPACE
 DCF1     RJ     GNF         GET NEXT FILE
          NZ     X1,DCF2     IF FILE FOUND
 DCF1.1   SB2    A0          GET RETURN ADDRESS 
          JP     B2          RETURN 
  
 DCF2     RJ     PFS         PRINT FILE SUMMARY 
          JP     DCF1        CONTINUE 
 DCG      SPACE  4,10 
**        DCG - DUMP CONTROL POINT AREA IN *C* FORMAT.
* 
*         ENTRY  FW = CONTROL POINT AREA ADDRESS. 
*                A0 = RETURN ADDRESS. 
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  PMD,SCM,SRA,WOF. 
  
  
 DCG      SX6    0
 DCG1     SA6    DCGA+4      SET FORMAT CODE
          PRINT  (=2C  )
          PRINT  (=C*          CONTROL POINT AREA*) 
          PRINT  (=2C  )
          SA1    FW 
          SA2    F.TCMT 
          IX6    X1+X2
          BX7    X1 
          SA6    DCGA+2      CORE ADDRESS OF CP AREA DATA 
          SA7    DCGA        DUMP FWA 
          SX6    X7+CPLEN 
          SA6    DCGA+1      DUMP LWA+1 
          SX6    0
          RJ     SRA         RESET REFERENCE ADDRESS
          SB2    DCGA        DUMP PARAMETER BLOCK ADDRESS 
          RJ     SCM         SELECT CM
          RJ     PMD         PROCESS DUMP 
          SB2    A0 
          JP     B2          RETURN 
  
 DCGA     BSS    0           DUMP PARAMETER BLOCK 
          CON    0           FWA
          CON    0           LWA+1
          CON    0           CORE ADDRESS 
          CON    0           NO SUPPRESS FLAG 
          CON    0           FORMAT CODE
          CON    0           COLUMN LENGTH
          CON    0           INVERTED ADDRESS 
 DCI      SPACE  4
**        DCI - DUMP CONTROL POINT AREA IN *E* FORMAT.
  
  
 DCI      SX6    2           FORMAT CODE
          JP     DCG1        PROCESS DUMP 
 DCJ      SPACE  4
**        DCJ - DUMP CONTROL POINT AREA IN *D* FORMAT.
  
  
 DCJ      SX6    1           FORMAT CODE
          JP     DCG1        PROCESS DUMP 
 DCM      SPACE  4,20 
**        DCM - DUMP CONTROL POINT EXTENDED MEMORY (USER ECS) 
*         IN *D* FORMAT.
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (CN) = CONTROL POINT NUMBER. 
*                (FW) = CONTROL POINT AREA ADDRESS. 
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
*                (UE) = USER EXTENDED MEMORY SHIFT COUNT. 
* 
*         EXIT   (A0) = RETURN ADDRESS. 
*                TO *DCC1.1* TO PROCESS USER EXTENDED MEMORY FL DUMP. 
*                TO *DCC2* IF NO USER EXTENDED MEMORY FL TO DUMP. 
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 0, 1, 2, 3, 6, 7.
*                B - 2. 
* 
*         CALLS  SEC, SEM, SRA. 
* 
*         MACROS PRINT. 
  
  
 DCM      SA1    CN 
          SA2    NC 
          SA3    UE 
          SX2    X2+B1
          IX1    X2-X1
          ZR     X1,DCC2     IF SYSTEM CONTROL POINT
          SX6    B1          SELECT *D* FORMAT DUMP 
          SB2    X3+9 
          SA6    CPRA+4 
          SA1    F.TCMT 
          SA2    FW          CP AREA ADDRESS
          IX2    X1+X2
          MX3    -12
          SA2    X2+ECSW     GET CONTROL POINT RAE AND FLE
          BX7    -X3*X2 
          LX2    -12
          ZR     X7,DCC2     IF NO USER EXTENDED MEMORY FL
          MX6    -24
          BX6    -X6*X2      EXTENDED MEMORY RA 
          LX7    B2 
          SA7    CPRA+1      SET LWA+1 OF DUMP
          BX7    X7-X7
          LX6    B2 
          SA7    A7-B1       SET FWA OF DUMP
          SX7    A0+         SAVE RETURN ADDRESS
          SA7    DCMA 
          RJ     SRA         SET REFERENCE ADDRESS
          PRINT  (=2C  )
          PRINT  (=C*          USER EXTENDED MEMORY FIELD LENGTH*)
          PRINT  (=2C  )
          SA1    SBTL1       SAVE SUBTITLE
          BX6    X1 
          SA6    DCMB 
          RJ     SEM         SET UNIFIED EXTENDED MEMORY (UEM)
          NG     X3,DCM1     IF UEM DEFINED 
          RJ     SEC         SET EXTENDED CORE STORAGE
 DCM1     SA2    =3RUEC      SET USER EXTENDED MEMORY SUBTITLE
          SA1    DCMB 
          LX1    -6 
          MX7    -18
          BX1    X7*X1
          BX7    X1+X2
          LX7    6
          SA1    DCMA        RESTORE RETURN ADDRESS 
          SA0    X1 
          SA7    SBTL1
          EQ     DCC1.1      PROCESS DUMP 
  
  
 DCMA     CON    0           RETURN ADDRESS 
 DCMB     CON    0           CONTROL POINT SUBTITLE 
 DCN      SPACE  4,10 
**        DCN - DUMP NEGATIVE FIELD LENGTH IN *D* FORMAT. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (CN) = CONTROL POINT NUMBER. 
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
*                (DCGA - DCGA+6) = DUMP PARAMETER INFORMATION.
* 
*         USES   X - 0, 1, 2, 3, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 2. 
* 
*         CALLS  CNL, PNF, SCM, SRA.
* 
*         MACROS PRINT. 
  
  
 DCN      SA1    CN 
          SA2    NC 
          SX2    X2+B1
          IX1    X2-X1
          ZR     X1,DCN2     IF SYSTEM CONTROL POINT
* 
 DBN      BSS    0           *DBN* ENTRY POINT
* 
          SX6    B1          SET *D* FORMAT 
          SA6    DCGA+4 
          PRINT  (=2C  )
          PRINT  (=C*        NEGATIVE FIELD LENGTH*)
          PRINT  (=2C  )
          RJ     CNL         CHECK NFL LENGTH 
          NG     X1,DCN1     IF INSUFFICIENT NFL SPACE
          PRINT  (=2C  )
          PRINT  (=C* LOCAL FNT-S*) 
          PRINT  (=2C  )
          SA1    RC          GET RA OF SELECTED CONTROL POINT 
          BX6    X1 
          RJ     SRA         SET REFERENCE ADDRESS = RA OF CONTROL POINT
          RJ     SCM         SELECT CENTRAL MEMORY
          SA2    L.TNFL      GET NFL
          SX3    DAYN        SET ORDINAL OF LWA 
          BX0    X2          SET ORDINAL OF FWA 
          RJ     PNF         PRINT FNT AREA 
          PRINT  (=2C  )
          PRINT  (=C* DAYFILE BUFFER (DAYN)*) 
          PRINT  (=2C  )
          SX3    CSBN        SET ORDINAL OF LWA 
          SX0    DAYN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT DAYFILE BUFFER AREA
          PRINT  (=2C  )
          PRINT  (=C* COMMAND BUFFER (CSBN)*) 
          PRINT  (=2C  )
          SX3    QFBN        SET ORDINAL OF LWA 
          SX0    CSBN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT COMMAND BUFFER AREA
          PRINT  (=2C  )
          PRINT  (=C* QUEUED FUNCTION BUFFER (QFBN)*) 
          PRINT  (=2C  )
          SX3    SSJN        SET ORDINAL OF LWA 
          SX0    QFBN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT QUEUED FUNCTION BUFFER 
          PRINT  (=2C  )
          PRINT  (=C* SSJ= SCRATCH AREA (SSJN)*)
          PRINT  (=2C  )
          SX3    SSDN        SET ORDINAL OF LWA 
          SX0    SSJN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT SSJ= SCRATCH AREA
          PRINT  (=2C  )
          PRINT  (=C* SSJ=/DMP= SCRATCH AREA (SSDN)*) 
          PRINT  (=2C  )
          SX3    DMPN        SET ORDINAL OF LWA 
          SX0    SSDN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT SSJ=/DMP= SCRATCH AREA 
          PRINT  (=2C  )
          PRINT  (=C* DMP= SCRATCH AREA (DMPN)*)
          PRINT  (=2C  )
          SX3    TDFN        SET ORDINAL OF LWA 
          SX0    DMPN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT DMP= SCRATCH AREA
          PRINT  (=2C  )
          PRINT  (=C* JOB TAPE DEFAULTS (TDFN)*)
          PRINT  (=2C  )
          SX3    ICAN        SET ORDINAL OF LWA 
          SX0    TDFN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT JOB TAPE DEFAULTS
          PRINT  (=2C  )
          PRINT  (=C* INTER-CP COMMUNICATION (ICAN)*) 
          PRINT  (=2C  )
          SX3    PUCN        SET ORDINAL OF LWA 
          SX0    ICAN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT INTER-CP COMMUNICATION WORD
          PRINT  (=2C  )
          PRINT  (=C* PF USER NAME CACHE (PUCN)*) 
          PRINT  (=2C  )
          SX3    SCVN        SET ORDINAL OF LWA 
          SX0    PUCN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT PF USER NAME CACHE 
          PRINT  (=2C  )
          PRINT  (=C* SERVICE CLASS VALIDATION (SCVN)*) 
          PRINT  (=2C  )
          SX3    CHGN        SET ORDINAL OF LWA 
          SX0    SCVN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT SERVICE CLASS VALIDATION 
          PRINT  (=2C  )
          PRINT  (=C* CHARGE/PROJECT NUMBER (CHGN)*)
          PRINT  (=2C  )
          SX3    SHCN        SET ORDINAL OF LWA 
          SX0    CHGN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT CHARGE/PROJECT 
          PRINT  (=2C  )
          PRINT  (=C* SHELL CONTROL (SHCN)*)
          PRINT  (=2C  )
          SX3    SLMN        SET ORDINAL OF LWA 
          SX0    SHCN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT SHELL CONTROL
          PRINT  (=2C  )
          PRINT  (=C* TERMINAL WORD (SLMN)*)
          PRINT  (=2C  )
          SX3    LFCN        SET ORDINAL OF LWA 
          SX0    SLMN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT TERMINAL WORD
          PRINT  (=2C  )
          PRINT  (=C* LOCAL FILE COUNT (LFCN)*) 
          PRINT  (=2C  )
          SX3    RC1N        SET ORDINAL OF LWA 
          SX0    LFCN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT LOCAL FILE COUNT 
          PRINT  (=2C  )
          PRINT  (=C* RECOVERY WORD 1 (RC1N)*)
          PRINT  (=2C  )
          SX3    RC2N        SET ORDINAL OF LWA 
          SX0    RC1N        SET ORDINAL OF FWA 
          RJ     PNF         PRINT FIRST RECOVERY WORD
          PRINT  (=2C  )
          PRINT  (=C* RECOVERY WORD 2 (RC2N)*)
          PRINT  (=2C  )
          SX3    JPPN        SET ORDINAL OF LWA 
          SX0    RC2N        SET ORDINAL OF FWA 
          RJ     PNF         PRINT SECOND RECOVERY WORD 
          PRINT  (=2C  )
          PRINT  (=C* JOB PAGE PARAMETERS (JPPN)*)
          PRINT  (=C* TMS CONTROL (TMSN)*)
          PRINT  (=2C  )
          SX3    INSN        SET ORDINAL OF LWA 
          SX0    JPPN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT JOB PAGE PARAMETERS
          PRINT  (=2C  )
          PRINT  (=C* INSTALLATION WORDS (INSN)*) 
          PRINT  (=2C  )
          SX3    DAPN        SET ORDINAL OF LWA 
          SX0    INSN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT INSTALLATION WORDS 
          PRINT  (=2C  )
          PRINT  (=C* DAYFILE BUFFER POINTERS (DAPN)*)
          PRINT  (=2C  )
          SX3    B0          SET ORDINAL OF LWA 
          SX0    DAPN        SET ORDINAL OF FWA 
          RJ     PNF         PRINT DAYFILE BUFFER POINTERS
 DCN1     BX7    X7-X7       CLEAR INVERTED ADDRESS 
          SA7    DCGA+6 
 DCN2     SB2    A0          GET RETURN ADDRESS 
          JP     B2          RETURN 
 DCP      SPACE  4,8
**        DCP - DUMP CONTROL POINT. 
* 
*         ENTRY  CN = CONTROL POINT NUMBER. 
*                CL = LIST OPTION CHARACTER STRING LEFT JUSTIFIED.
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  PCH, RNF, SCM, SNO, SRA, LIST OPTION PROCESSORS. 
  
  
 DCP      SUBR
          RJ     PCH         PRINT CONTROL POINT HEADER 
 DCP1     RJ     SCM         SET CENTRAL MEMORY 
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          SB2    DCPA        PROCESSOR TABLE ADDRESS
          SA1    CL          OPTION STRING
          RJ     SNO         SELECT NEXT LIST OPTION
          ZR     X3,DCPX     IF NO MORE OPTIONS SELECTED
          SX6    B3          SAVE (B3)
          SA6    DCPB 
          SA1    OP 
          SA2    CN 
          RJ     RNF         READ NEGATIVE FL FOR SELECTED CP 
          SA1    DCPB        RESTORE (B3) 
          SB3    X1 
          SA0    DCP1        SET RETURN ADDRESS 
          JP     B3          EXECUTE SELECTED PROCESSOR 
  
 DCPA     BSS    0           TABLE OF LIST OPTION PROCESSORS
          VFD    36/0,6/1RA,18/DCA
          VFD    36/0,6/1RC,18/DCC
          VFD    36/0,6/1RD,18/DCD
          VFD    36/0,6/1RE,18/DCE
          VFD    36/0,6/1RF,18/DCF
          VFD    36/0,6/1RG,18/DCG
          VFD    36/0,6/1RI,18/DCI
          VFD    36/0,6/1RH,18/DCJ
          VFD    36/0,6/1RM,18/DCM
          VFD    36/0,6/1RN,18/DCN
          VFD    36/0,6/1RP,18/DCQ
          VFD    36/0,6/1RT,18/DCT
          VFD    36/0,6/1RX,18/DCX
          VFD    60/0 
 DCPB     CON    0
 DCQ      SPACE  4,9
**        DCQ - DUMP AND ANALYZE ALL ACTIVE PPUS ASSOCIATED WITH
*               CONTROL POINT.
* 
*         ENTRY  CN = CONTROL POINT NUMBER. 
*                A0 = RETURN ADDRESS. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  ASP. 
  
  
 DCQ      SA1    CN 
          LX1    36 
          BX6    X1 
          SA6    DCQA 
          SX6    DCQA 
          JP     ASP
  
 DCQA     VFD    60/0 
          VFD    60/-1       END OF PARAMETER BLOCK 
 DCT      SPACE  4,11 
**        DCT - DUMP PARAMETERS IN DETAIL.
* 
*         ENTRY  FW = CONTROL POINT AREA ADDRESS FOR DUMP.
*                A0 = RETURN ADDRESS. 
*                TFCP = FORMAT TABLE POINTERS.
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  GTD,WOF. 
  
  
 DCT      PRINT  (=2C  )
          PRINT  (=C*          CONTROL POINT AREA*) 
          PRINT  (=2C  )
          SA1    F.TCMT 
          SB2    X1+         SET CORE ADDRESS OF TABLE DATA 
          SA1    TFCP        FORMAT TABLE POINTERS
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
          SB2    A0 
          JP     B2          RETURN 
 DCX      SPACE  4,18 
**        DCX - PRINT CONTROL POINT EXCHANGE PACKAGE, 
*               PARAMETER SUMMARY, AND EJT ENTRY. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (BD) = BINARY DUMP FLAG. 
*                (CN) = CONTROL POINT NUMBER. 
*                (FW) = CONTROL POINT AREA ADDRESS. 
*                (OP) = PCPA FWA OFFSET (0 IF DUMPING CONTROL POINTS).
* 
*         USES   X - ALL. 
*                A - 1, 2, 3, 5, 6, 7.
*                B - 6, 7.
* 
*         CALLS  CPS, CTS, FDW, FPW, FXW, GEE, SDI, SSB, UPS. 
* 
*         MACROS PRINT. 
  
  
 DCX      RJ     SSB         CLEAR PRINT STRING 
          SX1    19 
          RJ     CPS         CHECK PAGE SPACE 
          SA1    F.TCMT 
          SA2    FW 
          IX3    X1+X2       CONTROL POINT AREA ADDRESS 
          SA5    X3+         READ FIRST WORD OF XP
          MX6    0
          SA6    DCXA        CLEAR LINE INDEX 
          SX7    -PRBF-1     PRESET TO PRINT ((REGISTERS))
          SA7    DCXB        SAVE PRINT STRING ADDRESS
          SB7    PRBF+9 
          MX4    24 
          SA3    A5+6 
          BX1    X3*X4
          LX1    24          MONITOR ADDRESS
          BX3    X1-X2
          ZR     X3,DCX1     IF XP BELONGS TO THIS CONTROL POINT
          SA2    BD 
          NZ     X2,DCX1     IF BINARY DUMP 
          SA2    OP 
          NZ     X2,DCX1     IF PCPA DUMP 
          SA2    =4HNOT 
          SB6    4
          RJ     UPS
          SX7    PRBF+1      INDICATE ((REGISTERS)) NOT TO BE PRINTED 
          SA7    DCXB        SAVE PRINT STRING ADDRESS
 DCX1     SA2    =2HCP
          SB6    2
          SA1    OP 
          ZR     X1,DCX2     IF NOT DUMPING PCP-S 
          SA2    =3HPCP 
          SB6    3
 DCX2     RJ     UPS         UNPACK STRING
          SA1    CN 
          LX1    -6 
          SB6    2
          RJ     CTS         CONVERT CONTROL POINT NUMBER 
          SA2    =17H EXCHANGE PACKAGE
          SB6    17 
          RJ     UPS
          PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
 DCX3     RJ     SSB         CLEAR PRINT STRING BUFFER
          SA1    DCXA        LINE INDEX 
          SA2    A1+B1       GET PRINT STRING ADDRESS 
          SB7    X2 
          SX6    X1-10B 
          ZR     X6,DCX5     IF A7 AND B7 JUST PRINTED
          NG     X6,DCX4     IF STILL DOING CONTROL REGISTERS 
          SX1    X1-1        CORRECT XP WORD INDEX
 DCX4     RJ     FXW         FORMAT EXCHANGE PACKAGE WORD 
 DCX5     PRINT  CCCH,137 
          SA1    DCXA 
          SX6    X1+B1
          SA6    A1          ADVANCE LINE INDEX 
          SX6    X6-17
          NZ     X6,DCX3     IF MORE EXCHANGE PACKAGE LINES TO DUMP 
          SA6    DCXA        CLEAR LINE INDEX 
          SA2    BD 
          NZ     X2,DCX8     IF BINARY DUMP 
          PRINT  (=2C*  *)
          PRINT  (=C*          PARAMETER SUMMARY*)
          PRINT  (=2C*  *)
 DCX6     RJ     SSB         CLEAR PRINT STRING BUFFER
          SA1    DCXA        LINE INDEX 
          RJ     FPW         FORMAT PARAMETER WORD
          PRINT  CCCH,137 
          SA1    DCXA        ADVANCE LINE INDEX 
          SX6    X1+B1
          SA6    A1 
          SX6    X6-17
          NZ     X6,DCX6     IF MORE PARAMETER LINES TO DUMP
          PRINT  (=2C  )
          PRINT  (=2C  )
          PRINT  (=C*          EJT ENTRY*)
          PRINT  (=2C  )
          RJ     GEE         GET EJT ENTRY
          SX3    0           PRESET EJT ENTRY INDEX 
 DCX7     IX1    X3+X5       FORMAT REFERENCE ADDRESS 
          LX1    -18
          SB7    PRBF 
          SB6    6
          RJ     CTS
          SA2    =4000005B   FORMAT DATA WORD 
          SA1    X3+BUF 
          SB7    B7+B1
          RJ     FDW
          SB6    10D         SET DISPLAY CODE INTERPRETATION
          SA2    X3+BUF 
          SB7    B7+2 
          RJ     SDI
          SX0    X3          SAVE EJT ENTRY INDEX 
          PRINT  CCCH,B7-CCCH 
          SX3    X0+1        INCREMENT EJT ENTRY INDEX
          SX6    X3-EJTE
          NZ     X6,DCX7     IF MORE TO DUMP
 DCX8     SX1    10 
          RJ     CPS         FORCE PAGE EJECT IF UNDER 10 LINES LEFT
          SB2    A0+
          JP     B2          RETURN 
  
 DCXA     BSS    1           LINE INDEX 
 DCXB     BSS    1           PRINT STRING ADDRESS 
 DDB      SPACE  4,15 
**        DDB - DISPLAY *DFT* BLOCK.
* 
*         ENTRY  (X5) = 0, IF ADDRESS IS SUPPLIED.
*                (X5) = 1, IF ADDRESS IS IN R-REGISTER FORMAT.
*                (X6) = SUPPLIED ADDERSS. 
*                (X7) = SUPPLIED LENGTH.
*                (X3) = ADDRESS TO CONVERT, IF (X5) = 1.
*                (X1) = ADDRESS OF TITLE. 
* 
*         USES   X - 6, 7.
*                A - 6, 7.
* 
*         CALLS  DRA, DSM.
* 
*         MACROS PRINT. 
  
  
 DDB      SUBR               ENTRY/EXIT 
          ZR     X5,DDB1     IF ADDRESS SUPPLIED
          RJ     DRA         CONVERT R-REGISTER ADDRESS 
 DDB1     LX6    3           SET STARTING BYTE ADDRESS
          LX7    3           SET LAST BYTE ADDRESS
          ZR     X7,DDBX     IF NO LENGTH 
          IX7    X6+X7
          SA6    DDBA 
          SA7    A6+B1
          PRINT  X1          WRITE TITLE
          PRINT  (=C*  *) 
          SB2    DDBA 
          RJ     DSM         DUMP 64-BIT MEMORY 
 DDB2     PRINT  (=C*  *) 
          EQ     DDBX        RETURN 
  
 DDBA     CON    0           FWA TO DUMP
          CON    0           LWA+1 TO DUMP
          CON    0           *I* FORMAT 
 DFI      SPACE  4,13 
**        DFI - DUMP FILE INFORMATION.
* 
*         ENTRY  X5 = N IF FET LENGTH IS N+5 WORDS. 
*                   .LT. 0 IF FET LENGTH IS A FUNCTION OF THE CONTENTS
*                      OF WORD 1, BITS 23-18 OF THE FET.
*                X6 = CONTROL POINT NUMBER ASSOCIATED WITH FET. 
*                X7 = ADDRESS OF FET. 
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  CRA, CTS, FDW, PCM, PFS, SDI, SSB, UPS.
* 
*         MACROS GETCM, PRINT.
  
  
 DFI      SUBR
          SA6    DFIF        SAVE CONTROL POINT NUMBER
          SA7    DFIG        SAVE FET ADDRESS 
          RJ     CRA         COMPUTE REFERENCE ADDRESS
          SA3    DFIG 
          SA6    DFIB 
          IX3    X6+X3
          RJ     PCM
          GETCM  BUF,5
          PRINT  (=2C  )
          PL     X5,DFI1     IF FET LENGTH-5 SPECIFIED
          MX0    -6 
          SA2    BUF+1
          LX2    -18
          BX5    -X0*X2      FET LENGTH-5 
 DFI1     ZR     X5,DFI2     IF ENTIRE FET IS IN BUF
          GETCM  BUF+5,X5 
 DFI2     SX6    X5+5 
          SA6    DFIA        FET LENGTH 
          SA1    BUF+4
          MX0    12 
          BX6    X0*X1
          LX6    12 
          SA1    F.TCMT 
          SB2    X1          TCMT TABLE BASE ADDRESS
          SA1    F.TNFL      POSITION TO RA IN TNFL 
          SA2    L.TNFL 
          IX1    X1+X2
          IX1    X1-X6
          SA4    X1          READ FNT ENTRY 
          SA5    A4+B1       READ FST ENTRY 
          SX7    X6 
          SA7    GNFA        SET FNT ORDINAL
          BX6    X4 
          LX7    X5 
          SA6    A7+B1       SET FNT
          SA7    A6+B1       SET FST
          SA1    A5+B1       READ FUT 
          BX6    X1 
          SA6    A7+B1       SET FUT
          SA1    B2+ESTP     EST POINTER WORD 
          AX1    36 
          AX7    48 
          R=     X6,ESTE
          SX1    X1+EQDE
          IX6    X7*X6
          IX6    X6+X1
          SA6    A6+B1       SET EST ADDRESS
          SA1    X6+B2
          BX7    X1 
          SA7    A6+1        SET EST
          RJ     PFS         PRINT FILE SUMMARY 
  
*         DUMP FET. 
  
          SX5    -1 
          RJ     SSB         CLEAR PRINT STRING 
          SA2    =5HFET - 
          SB6    5
          SB7    PRBF+24
          RJ     UPS         SET HEADER INFORMATION 
  
*         SET FET ADDRESS.
  
          SA1    DFIG 
          SB6    6
          SB7    PRBF+9 
          LX1    -18
          RJ     CTS
  
*         SET CONTROL POINT NUMBER. 
  
          SA2    =2HCP
          SB6    2
          SB7    PRBF+18
          RJ     UPS
          SA1    DFIF 
          SB6    2
          LX1    -6 
          RJ     CTS
 DFI3     SA2    DFIA 
          SX5    X5+1 
          IX3    X2-X5
          ZR     X3,DFI4     IF ENTIRE FET DUMPED 
  
*         SET FET ORDINAL.
  
          BX1    X5 
          SB7    PRBF+30
          SX6    1R+
          SA6    B7          SET RELATIVE SIGN
          SB7    B7+1 
          LX1    -9 
          SB6    3
          RJ     CTS
  
*         SET FET WORD. 
  
          SA1    BUF+X5 
          SB7    B7+2 
          SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW
          BX2    X1 
          SB6    10 
          RJ     SDI
          PRINT  CCCH,B7-CCCH 
          RJ     SSB         CLEAR PRINT STRING 
          JP     DFI3        CONTINUE 
  
*         DUMP FET EXTENDED LABELS. 
  
 DFI4     SA1    DFIA 
          SX2    X1-10
          NG     X2,DFIX     IF EXTENDED LABEL WORD IMPOSSIBLE
          SA1    BUF+1
          LX1    59-41
          PL     X1,DFIX     IF EXTENDED LABEL NOT SET
          PRINT  (=2C  )
          SA2    BUF+9
          SX6    X2+
          SA6    DFIC        SET ADDRESS OF EXTENDED LABELS 
          SX7    100
          SA7    DFID        SET MAXIMUM NUMBER OF LABELS TO DUMP 
 DFI5     RJ     SSB         CLEAR PRINT STRING 
          SA1    DFIB 
          SA2    DFIC 
          IX3    X1+X2
          RJ     PCM         POSITION TO START OF NEXT EXTENDED LABEL 
          SA2    =28HEXT LABEL CHARACTER COUNT =
          SB6    28 
          SB7    PRBF 
          RJ     UPS
          GETCM              READ HEADER
          SX4    10 
          MX0    -12
          BX1    -X0*X6      NUMBER OF CHARACTERS 
          ZR     X1,DFIX     IF NO MORE EXTENDED LABELS 
          LX1    -12
          SB6    4
          RJ     CTS         SET CHARACTER COUNT
          SB7    B7+2        SPACE TWO TIMES
          SX6    X1+         NUMBER OF CHARACTERS 
          SA6    DFIE 
          IX2    X6/X4       NUMBER OF WHOLE WORDS
          SX4    10 
          SX3    X1+
          IX0    X4*X2       NUMBER OF CHARACTERS WITHOUT REMAINDER 
          IX6    X3-X0       REMAINDER
          ZR     X6,DFI6     IF NO REMAINDER
          SX2    X2+1 
 DFI6     SA1    DFIC 
          IX4    X1+X2
          SX6    X4+B1
          SA6    A1+         SET NEXT EXTENDED LABEL ADDRESS
          GETCM  BUF,10 
          SA1    DFIE        NUMBER OF CHARACTERS 
          SX3    X1-101 
          NG     X3,DFI7     IF .LE. 100 CHARACTERS 
          SX1    101
          SX6    65B         =1R_ 
          LX6    -6          =1L_ 
          SA6    BUF+10      INDICATE OVERFLOW
  
*         SET EXTENDED LABEL. 
  
 DFI7     SB6    X1+
          SB7    PRBF+34
          SA2    BUF
          RJ     UPS
          PRINT  CCCH,B7-CCCH 
          SA1    DFID 
          SX6    X1-1 
          SA6    A1+         DECREMENT MAXIMUM NUMBER OF LABELS TO DUMP 
          NZ     X6,DFI5     IF MAXIMUM NOT DUMPED
          JP     DFIX        EXIT 
  
 DFIA     BSS    1           FET LENGTH 
 DFIB     BSS    1           CONTROL POINT REFERENCE ADDRESS
 DFIC     BSS    1           ADDRESS OF EXTENDED LABEL
 DFID     BSS    1           MAXIMUM NUMBER OF LABELS REMAINING TO DUMP 
 DFIE     BSS    1           NUMBER OF CHARACTERS IN LABEL
 DFIF     BSS    1           CONTROL POINT NUMBER 
 DFIG     BSS    1           FET ADDRESS
 DFT      SPACE  4,10 
**        DFT - PROCESS DFT MESSAGE AND DFT/OS BUFFER.
* 
*         USES   X - 0, 1, 2, 3, 5, 6, 7. 
*                A - 1, 2, 3, 6, 7. 
*                B - 2. 
* 
*         CALLS  CPS, CVB, DDB, DRA, GDA, ISM.
* 
*         MACROS SEARCH.
  
  
 DFT      SUBR               ENTRY/EXIT 
          SX1    100         FORCE NEW PAGE 
          RJ     CPS
          SA1    ED 
          ZR     X1,DFT1     IF USING *CM* RECORD 
          SA1    .DFT        GET *DFT* RECORD 
          MX0    18 
          SEARCH TDIR,X1,X0 
          ZR     X2,DFTX     IF NOT FOUND 
          SA1    A2+2 
          SX6    X1          GET LENGTH OF DFT RECORD 
          SA6    EH 
          SA2    A2+3        POSITION PAST HEADER RECORD
          BX6    X2 
          SA6    A6+B1       SAVE RANDOM INDEX
          SA6    EI          FORCE *EI* ADDRESSING
          SA1    DFTE 
          BX6    X1 
          SA2    A1+B1
          SA6    DFTF-1+/DFT/DFMD  UPDATE POINTER WORD TABLE
          BX7    X2 
          SX6    B0          SET OFFSET 
          SA7    DFTF-1+/DFT/DFRQ 
          SA6    AO 
          SX7    PBUF+20     FWA OF 60-BIT STORAGE BUFFER 
          SA7    CVBA 
          EQ     DFT2        DISPLAY BUFFER 
  
 DFT1     SA1    F.TCMT 
          SA2    X1+EIBP     READ *EICB* POINTER
          SX6    X2+/VE/DFCM+1  GET ADDRESS OF DFT MESSAGE
          SX7    3           SET LENGTH TO DUMP 
          SX1    =C* DFT MESSAGE.*
          SX5    B0+
          RJ     DDB         DISPLAY DFT BLOCK
          RJ     GDA         GET DFT/OS BUFFER ADDRESS
          ZR     X3,DFTX     IF NO DFT/OS BUFFER POINTER
          BX7    X3 
 DFT2     SA7    DFTA        SAVE ADDRESS OF DFT CONTROL WORD IN BUFFER 
          SA6    A7+B1       SAVE DFT/OS BUFFER ADDRESS 
          ERRNZ  DFTB-DFTA-1  CODE REQUIRES CONTIGUOUS WORDS
          SX5    B0 
          SX7    B1          SET LENGTH TO DUMP 
          SX1    =C* DFT CONTROL WORD.* 
          RJ     DDB         DISPLAY DFT BLOCK
          SX3    1           NUMBER OF WORDS TO CONVERT 
          RJ     CVB         CONVERT CONTROL WORD 
          SA3    DFTA        READ *DFT* CONTROL WORD
          SA3    X3+/DFT/DFCW 
          LX3    -56
          MX0    -4 
          BX3    -X0*X3      NUMBER OF POINTER WORDS
          BX7    X3          SAVE NUMBER OF POINTER WORDS 
          SA7    DFTD 
          SX7    /DFT/DFHL-1 DEFAULT NUMBER OF POINTER WORDS
          ZR     X3,DFT3     IF NUMBER NOT IN CONTROL WORD
          SX7    X3-1        SET NUMBER OF POINTER WORDS
 DFT3     SX1    =C* DFT POINTER WORDS.*
          SA3    DFTB 
          SX6    X3+B1       ADDRESS OF POINTER WORDS 
          SX5    B0 
          RJ     DDB         DISPLAY DFT BLOCK
          SA3    DFTD 
          RJ     CVB         CONVERT POINTER WORDS
          SA3    DFTA        READ *DFT* CONTROL WORD
          SA3    X3+/DFT/DFCW 
          MX0    -8 
          LX3    -16
          BX7    -X0*X3      NUMBER OF BUFFER CONTROL WORDS 
          LX3    -24
          BX3    -X0*X3      *DFT* REVISION LEVEL 
          SX3    X3-3-1      CHECK FOR *DFT* LEVEL 3
          PL     X3,DFT5     IF *DFT* VERSION 4 OR ABOVE
  
*         PROCESS *DFT* VERSION 3.
  
          SA3    DFTB 
          SX6    X3+/DFT/DFHL  ADDRESS OF M/R CONTROL WORDS 
          SX5    B0+
          SX1    =C* BUFFER CONTROL WORDS.* 
          RJ     DDB         DISPLAY DFT BLOCK
          SX1    20 
          RJ     CPS
          SA3    DFTA 
          SA3    X3+/DFT/DFMR  M/R BUFFER POINTER 
          SX1    =C* M/R BUFFERS.*
          SX5    B1+
          RJ     DDB         DISPLAY DFT BLOCK
          SX1    20 
          RJ     CPS
          SA3    DFTA 
          SA3    X3+/DFT/DFMD  MODEL DEPENDENT BUFFER POINTER 
          ZR     X3,DFT4     IF NO MODEL DEPENDENT BUFFER 
          SX5    B1+
          SX1    =C* MODEL DEPENDENT BUFFER.* 
          RJ     DDB         DISPLAY DFT BLOCK
 DFT4     SA3    DFTA 
          SA3    X3+/DFT/DFRQ  NOS REQUEST AREA POINTER 
          SX6    /DFT/RQBL   INCREMENT LENGTH FIELD 
          IX3    X3+X6
          SX5    B1 
          SX1    =C* NOS REQUEST AREA.* 
          RJ     DDB         DISPLAY *DFT* BLOCK
          EQ     DFTX        RETURN 
  
*         PROCESS *DFT* VERSION 4 OR ABOVE. 
  
 DFT5     SX6    DFTF        SET FIRST TABLE ENTRY ADDRESS
          SA6    DFTC 
          SX6    DDB2        SET ERROR RETURN ADDRESS 
          SA6    ERRC+1 
 DFT6     SA1    DFTC        GET NEXT TABLE ENTRY ADDRESS 
          SA2    X1+         GET NEXT TABLE ENTRY 
          ZR     X2,DFT8     IF END OF TABLE
          SX6    X1+B1
          SA6    A1          ADVANCE TABLE ADDRESS
          NG     X2,DFT6     IF SPECIAL ENTRY 
          SX1    X2          SET ADDRESS OF HEADER
          AX2    30          SET POINTER OFFSET 
          SB2    X2+
          SA3    DFTA        GET POINTER WORD 
          SA3    X3+B2
          SX5    B1 
          ZR     X3,DFT6     IF POINTER NOT PRESENT 
          SA2    ED 
          ZR     X2,DFT7     IF NOT *DROPVE* DUMP 
          SA2    DFTD        GET BLOCK ADDRESS WITHIN *DFT* RECORD
          SX5    B0 
          MX0    -16
          BX7    -X0*X3      GET BLOCK LENGTH 
          IX6    X7+X2
          SA6    A2          UPDATE ADDRESS FOR NEXT BLOCK
          BX6    X2          SET CONVERTED ADDRESS
 DFT7     RJ     DDB         DISPLAY *DFT* BLOCK
          SX1    20 
          RJ     CPS         CHECK PAGE SPACING 
          EQ     DFT6        PROCESS NEXT *DFT* TABLE 
  
*         DISPLAY MODEL DEPENDENT BUFFERS.
  
 DFT8     SA1    ED 
          SX1    X1-1 
          ZR     X1,DFTX     IF *DROPVE* DUMP 
          SA2    DFTA 
          SA3    X2+/DFT/DFMD  MDB POINTER ADDRESS
          SX1    =C* MODEL DEPENDENT BUFFER.* 
          RJ     DRA         CONVERT ADDRESS
          SA6    A2+B1       SAVE MDB POINTER ADDRESS 
          ERRNZ  DFTA-DFTB+1
          BX5    X5-X5
          RJ     DDB         DISPLAY MDB POINTER WORDS
          SA1    DFTB        CALCULATE MDB FWA
          SA2    F.TCMT 
          IX6    X1+X2
          SA6    A1 
          BX6    X6-X6
          SA6    A1+B1       MDB ORDINAL
          ERRNZ  DFTB-DFTC+1
 DFT9     SA3    DFTB        GET NEXT MDB POINTER 
          IX3    X3+X6
          SA3    X3 
          SX1    =C*  *      NO TITLE 
          SX5    B1+
          RJ     DDB         DISPLAY MODEL DEPENDENT BUFFER 
          SA1    DFTC        UPDATE MDB ORDINAL 
          SX6    X1+B1
          SA6    A1 
          AX1    1
          ZR     X1,DFT9     IF NOT THROUGH DISPLAYING MDB
          EQ     DFT4        DUMP NOS REQUEST AREA
  
  
 DFTA     CON    0           FWA OF DFT/OS BUFFER IN *TCMT* 
 DFTB     CON    0           FWA OF DFT/OS BUFFER 
 DFTC     CON    0           NEXT TABLE ENTRY ADDRESS 
 DFTD     CON    0           *DROPVE* DUMP BLOCK ADDRESS
 DFTE     VFD    30//DFT/DFMD,30/=C* MODEL DEPENDENT BUFFER POINTERS.*
          VFD    30//DFT/DFRQ,30/=C* NOS REQUEST AREA.* 
  
  
**        TABLE OF *DFT* TABLES TO DISPLAY. 
* 
*T        30/ OFFSET, 30/ ADDRESS 
* 
*         OFFSET = OFFSET OF POINTER IN *DFT/OS* BUFFER.
*         ADDRESS = ADDRESS OF HEADER TO DISPLAY. 
* 
*         NOTE - ENTRIES IN THE TABLE MUST BE IN *COMSDFT* ORDER. 
*                ENTRIES CONSISTING OF *-1* ARE SPECIAL ENTRIES AND 
*                ARE PROCESSED SEPARATELY.
  
  
 DFTF     BSS    0
          VFD    30//DFT/DFSI,30/=C* SECDED ID TABLE.*
          VFD    30//DFT/DFMR,30/=C* M/R BUFFERS.*
          CON    -1 
          VFD    30//DFT/DFNV,30/=C* NOS/VE BUFFER.*
          VFD    30//DFT/DFPS,30/=C* PPR SAVE AREA.*
          CON    -1 
          VFD    30//DFT/DFBC,30/=C* BUFFER CONTROL WORDS.* 
          VFD    30//DFT/DFEC,30/=C* ELEMENT COUNTER BUFFER.* 
          VFD    30//DFT/DFER,30/=C* ERROR CONTROL RECORD.* 
          VFD    30//DFT/DFSS,30/=C* SUPPORTIVE STATUS BUFFERS.*
          VFD    30//DFT/DFNR,30/=C* NON REGISTER STATUS.*
          VFD    30//DFT/DFCA,30/=C* DFT CMR AREA.* 
          VFD    30//DFT/DFPR,30/=C* PP REGISTER DATA.* 
          VFD    30//DFT/DFSD,30/=C* DFT SECONDARY BUFFER POINTER.* 
          CON    0           END OF TABLE 
          SPACE  4,10 
***       DHA - DUMP RHF DAYFILE BUFFER.
* 
*         ENTRY  (CN) = CONTROL POINT NUMBER. 
*                (A0) = RETURN ADDRESS. 
* 
*         USES   X - 1, 6.
*                A - 1, 6.
*                B - 3. 
* 
*         CALLS  DCP. 
  
  
 DHA      SA1    =1LA        SET OPTION FOR DAYFILE DUMP
 DHA1     SX6    A0          SAVE RETURN ADDRESS
          SA6    DHAA 
          BX6    X1 
          SA6    CL 
          RJ     DCP         DUMP DAYFILE BUFFERS 
          SA1    DHAA        GET RETURN ADDRESS 
          SB3    X1 
          JP     B3          RETURN 
  
  
 DHAA     DATA   0           RETURN ADDRESS 
          SPACE  4,10 
**        DHC - DUMP RHF FIELD LENGTH.
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
* 
*         EXIT   TO DHA1. 
* 
*         USES   X - 1. 
*                A - 1. 
  
  
 DHC      SA1    =1LD 
          JP     DHA1        SET TO DUMP FIELD, *D* FORMAT
          SPACE  4,10 
**        DHP - DUMP RHF PPU-S. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  ASP. 
  
  
 DHP      SX6    DHPA 
          JP     ASP         DUMP PPUS
  
 DHPA     BSS    0           PARAMETERS FOR *ASP* 
          VFD    18/3LNDR,42/0
          VFD    18/3LNLD,42/0
          VFD    18/3LRHH,42/0
          VFD    60/-1       END OF PARAMETERS
 DHR      SPACE  4,15 
**        DHR - DISPLAY HEX REGISTER. 
* 
*         ENTRY  DUMP FILE POSITIONED AT REGISTER TO DISPLAY. 
*                (B7) = OUTPUT COLUMN POINTER.
* 
*         USES   X - 1, 5.
*                B - 6, 7.
* 
*         CALLS  HTS, NXB.
* 
*         MACROS PRINT. 
  
  
 DHR      SUBR               ENTRY/EXIT 
          SX5    4
 DHR1     SB7    B7+2 
          RJ     NXB         GET NEXT 16 BITS OF REGISTER 
          SB6    4
          LX1    59-15
          RJ     HTS         DISPLAY 4 HEX DIGITS 
          SX5    X5-1 
          NZ     X5,DHR1     IF MORE DATA TO DISPLAY
          PRINT  CCCH,B7-CCCH+1 
          EQ     DHRX        RETURN 
 DMB      SPACE  4,15 
**        DMB - DISPLAY MESSAGE BUFFER. 
* 
*         ENTRY  (A2) = FWA OF MESSAGE BUFFER.
*                (B6) = CHARACTER COUNT.
*                (B7) = STRING BUFFER POSITION. 
* 
*         EXIT   MESSAGE BUFFER UNPACKED TO STRING BUFFER.
* 
*         USES   X - 0, 1, 3. 
*                A - 3. 
*                B - 4, 5, 6. 
* 
*         CALLS  UPS. 
  
  
 DMB2     SB6    B5+
          ZR     B5,DMBX     IF EMPTY BUFFER
 DMB3     RJ     UPS         UNPACK MESSAGE 
  
 DMB      SUBR               ENTRY/EXIT 
          SB5    B0          INITIALIZE CHARACTER COUNTER 
          MX0    12 
          SB4    4           INITIALIZE BYTE COUNTER
          SA3    A2+         READ FIRST WORD
 DMB1     BX1    X0*X3
          ZR     X1,DMB2     IF EOL 
          LX0    -12
          SB5    B5+2 
          GT     B5,B6,DMB3  IF END OF MESSAGE
          SB4    B4-B1
          PL     B4,DMB1     IF NOT FINISHED WITH WORD
          SA3    A3+B1
          SB4    4
          EQ     DMB1        READ NEXT WORD 
 DMP      SPACE  4,7
**        DMP - DUMP MAGNET PPUS. 
* 
*         ENTRY  A0 = RETURN ADDRESS. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  ASP. 
  
  
 DMP      SX6    DMPA 
          JP     ASP
  
 DMPA     VFD    18/3L1MT,42/0
          VFD    60/-1       END OF PARAMETER BLOCK 
 DMQ      SPACE  4,9
**        DMQ - DUMP MAGNET QUEUE TABLE.
* 
*         ENTRY  A0 = RETURN ADDRESS. 
* 
*         USES   X - 1, 2, 3, 4, 5, 6, 7. 
*                A - 1, 2, 3, 5, 6, 7.
*                B - 2. 
* 
*         CALLS  DOT, PCM, PCW. 
* 
*         MACROS PRINT. 
  
  
 DMQ      PRINT  (=2C  )
          PRINT  (=C*          MAGNET QUEUE TABLE*) 
          PRINT  (=2C  )
          SA1    SSBF+/MTX/UQUE 
          SA2    FC 
          SX6    X1+         FWA
          SA3    SSBF+/MTX/TAJP 
          ZR     X3,DMQ1     IF TAPE ALTERNATE STORAGE NOT ACTIVE 
          SA2    SSBF+/MTX/TSRP 
 DMQ1     SX7    X2          LWA+1
          ZR     X6,DMQ2     IF NO QUEUE TABLE FWA
          IX4    X6-X7
          PL     X4,DMQ2     IF LWA+1 .LE. FWA
          SA6    DMQA 
          SA7    A6+B1
          SA2    RC 
          IX3    X6+X2
          RJ     PCM         POSITION TO QUEUE TABLE
          SB2    DMQA 
          RJ     DOT         DUMP ORDINAL TABLE 
          JP     DMQ3        RETURN 
  
 DMQ2     SA5    DMQB 
          RJ     PCW         PRINT CONTENTS OF *UQUE* WORD
 DMQ3     SB2    A0 
          JP     B2          RETURN 
  
 DMQA     VFD    60/0        FWA
          VFD    60/0        LWA+1
          VFD    60/0        STARTING ORDINAL 
          VFD    60/2        ORDINAL INCREMENT
          VFD    24/0,18/4,18/5  FORMAT CONTROL 
 DMQB     VFD    36/6L*UQUE*,6/0,18//MTX/UQUE 
          DATA   40HMAGNET QUEUE TABLE FWA
          VFD    60/0 
 DMR      SPACE  4,15 
**        DMR - DUMP MAINTENANCE REGISTERS. 
* 
*         ENTRY  (X1) = RECORD ID.
*                (X7) = PARAMETER LIST POINTER. 
* 
*         USES   A - 1, 2, 4, 5, 6, 7.
*                B - 2, 3, 4, 6, 7. 
*                X - ALL. 
* 
*         CALLS  GID, HTS, LDC, RMR, SDT, SHA, SSB, UCS, UPS. 
* 
*         MACROS PRINT. 
  
  
 DMR      SUBR               ENTRY/EXIT 
          SA7    DMRB        DESCRIPTOR TABLE 
          SX7    B0 
          BX6    X1 
          SA6    DMRA        RECORD ID
          SA2    NR 
          ZR     X2,DMR1     IF FIRST RECORD
          SA7    DMRE        RESET REGISTER 31 OCCURRENCE FLAG
 DMR1     RJ     GID         GET ELEMENT ID 
          SB2    X6 
          SX1    B1 
          LX6    X1,B2       FORM BIT MASK OF MODEL NUMBER
          SA1    DMRB 
          SX1    X1-/DIRECT/IMRA
          NZ     X1,DMR1.1   IF NOT IOU REGISTER DUMP 
          SX7    X7-0#42
          NZ     X7,DMR1.1   IF NOT MODEL 42 IOU
          SX6    I4S         SET BIT MASK FOR MODEL 42 IOU
 DMR1.1   SA6    DMRF        SET MODEL NUMBER BIT MASK
          SX6    /IOU/PRDM+1 PRESET LAST REGISTER NUMBER
          RJ     SHA         SET HEX ADDRESSES
          RJ     LDC         LIST DIRECTIVE CARD
  
*         SKIP TO FIRST REGISTER TO DUMP. 
  
          SX6    -1 
          SA6    LPWA        PRESET BYTE AND WORD POSITION IN BUFFER
          SX6    X6+B1
          SA6    A6+B1
 DMR2     RJ     RMR         READ MAINTENANCE REGISTER
          ZR     X1,DMRX     IF END OF REGISTERS
          SA1    RMRB        CHECK REGISTER .LT. FIRST REGISTER 
          SA2    FW 
          IX6    X1-X2
          NG     X6,DMR2     IF REGISTER .LT. FIRST REGISTER
  
*         PRINT RADIAL MCI, HEADER. 
  
          RJ     SSB
          PRINT  (=2C  )
          SB7    PRBF 
          SA2    =13HRADIAL MCI = 
          SB6    13 
          RJ     UPS
          SA2    RDRA 
          LX2    3*6
          SB6    1
          RJ     UPS         UNPACK RADIAL MCI
          PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
          PRINT  (=C* REG       CONTENTS        DESCRIPTION*) 
          PRINT  (=2C  )
  
*         PRINT REGISTER NUMBER AND CONTENTS. 
  
 DMR3     RJ     SSB         SPACE FILL STRING BUFFER 
          SB7    PRBF+1      PRINT REGISTER NUMBER
          SA1    RMRB 
          SB6    2
          LX1    52 
          RJ     HTS
          SB7    PRBF+5      PRINT REGISTER CONTENTS
          SA1    RMRA 
          SB4    X1 
          SB3    MRBF 
 DMR4     SA1    B3 
          SB6    2
          LX1    52 
          RJ     HTS
          SB3    B3+B1
          SB4    B4-B1
          ZR     B4,DMR5     IF REGISTER CONTENTS PRINTED 
          SA1    B3 
          SB6    2
          LX1    52 
          RJ     HTS
          SB7    B7+B1
          SB3    B3+B1
          SB4    B4-B1
          NZ     B4,DMR4     IF REGISTER CONTENTS NOT PRINTED 
  
*         PRINT REGISTER DESCRIPTION. 
  
 DMR5     SA1    RMRB        REGISTER NUMBER
          SA2    /DIRECT/PMRD CHECK FOR REGISTER 31 
          SA4    DMRF        GET MODEL NUMBER BIT MASK
          RJ     SDT
          ZR     X2,DMR5.1   IF NOT REGISTER 31 
          SA2    DMRE 
          ZR     X2,DMR5.0   IF FIRST OCCURANCE OF REGISTER 31
          SA2    /DIRECT/PMRD REGISTER DESCRIPTOR 
          EQ     DMR5.2      PROCESS SECOND OCCURANCE OF REGISTER 31
  
 DMR5.0   SX6    1           SET REGISTER 31 OCCURANCE FLAG 
          SA6    DMRE 
 DMR5.1   SA1    RMRB        REGISTER NUMBER
          SA2    DMRB        DESCRIPTOR TABLE POINTER 
          SA4    DMRF        GET MODEL NUMBER BIT MASK
          SA2    X2          GET FIRST ENTRY OF TABLE 
          RJ     SDT         SEARCH DESCRIPTOR TABLE
          ZR     X2,DMR8     IF REGISTER NOT FOUND
 DMR5.2   MX0    -17
          BX6    X2 
          BX2    -X0*X2 
          AX6    17          ISOLATE SECONDARY TABLE
          BX6    -X0*X6 
          SA6    DMRD 
          SA2    X2          GET DESCRIPTOR 
          SB7    PRBF+30
          RJ     UCS
          PRINT  CCCH,B7-CCCH 
          SA1    DMRD 
          ZR     X1,DMR8     IF NO SECONDARY TABLE
  
*         PRINT BIT NUMBER AND DESCRIPTION FOR SET BITS OF INTEREST.
  
 DMR6     SA5    DMRD        FETCH SECONDARY DESCRIPTOR TABLE ENTRY 
          SA1    X5 
          ZR     X1,DMR8     IF END OF SECONDARY DESCRIPTOR TABLE 
          SX6    X5+B1       INCREMENT DESCRIPTOR TABLE POINTER 
          SA6    DMRD 
          SA4    DMRF        GET MODEL NUMBER BIT MASK
          LX4    17+17
          BX6    X1*X4
          ZR     X6,DMR6     IF INFORMATION IS NOT FOR THIS MACHINE 
          MX0    -3          DETERMINE IF SPECIFIED BIT IS SET
          BX6    X1 
          SA6    DMRC 
          AX1    -9 
          BX2    -X0*X1 
          AX1    3
          SA1    X1+MRBF
          SB2    X2+52
          LX1    B2 
          PL     X1,DMR6     IF BIT NOT SET 
          RJ     SSB         SPACE FILL STRING BUFFER 
          SB7    PRBF+18     PRINT *BIT NN* 
          SA2    =4HBIT 
          SB6    4
          RJ     UPS
          SA1    DMRC 
          AX1    -9 
          BX3    X1 
          SX2    10 
          SX6    X2 
          IX4    X1/X2       CALCULATE UPPER DIGIT
          IX1    X4*X6
          SX6    X4+1R0 
          SA6    PRBF+22     STORE UPPER DIGIT
          IX2    X3-X1       FORM REMAINDER 
          SX6    X2+1R0 
          SA6    A6+B1
          SB7    PRBF+26     PRINT DESCRIPTION
          SA1    DMRC 
          SA2    X1 
          RJ     UCS
          PRINT  CCCH,B7-CCCH 
          EQ     DMR6        CONTINUE PRINTING BIT DESCRIPTIONS 
  
*         TEST ALL REGISTERS PROCESSED. 
  
 DMR8     RJ     RMR         READ NEXT MAINTENANCE REGISTER 
          ZR     X1,DMRX     IF END OF REGISTERS
          SA1    RMRB 
          SA2    LW 
          IX6    X1-X2
          NG     X6,DMR3     IF MORE REGISTERS TO PRINT 
          EQ     DMRX        RETURN 
  
  
 DMRA     BSS    1           RECORD ID
 DMRB     BSS    1           DESCRIPTOR TABLE POINTER 
 DMRC     BSS    1           DESCRIPTOR TABLE ENTRY 
 DMRD     BSS    1           SECONDARY DESCRIPTOR TABLE ADDRESS 
 DMRE     BSSZ   1           REGISTER 31 OCCURANCE FLAG 
 DMRF     BSS    1           MODEL NUMBER BIT MASK
 DMS      SPACE  4,15 
**        DMS - DUMP MAGNET TAPE PF STAGING TABLES. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
* 
*         USES   X - 2, 3, 4, 6, 7. 
*                A - 2, 3.
*                B - 2. 
* 
*         CALLS  DST. 
* 
*         MACROS PRINT. 
  
  
 DMS      BSS    0           ENTRY
          SA3    SSBF+/MTX/TAJP 
          ZR     X3,DMS1     IF TAPE ALTERNATE STORAGE NOT ACTIVE 
          PRINT  (=2C  )
          PRINT  (=C*          ACTIVE STAGING JOB TABLE*) 
          PRINT  (=2C  )
          SA3    SSBF+/MTX/TAJP 
          SX6    X3          FWA
          AX3    24 
          SX7    X3          LWA+1
          RJ     DST         DUMP STAGING TABLE 
          PRINT  (=2C  )
          PRINT  (=C*          STAGING VSN TABLE*)
          PRINT  (=2C  )
          SA3    SSBF+/MTX/TVSP 
          SX6    X3          FWA
          AX3    24 
          SX7    X3          LWA+1
          RJ     DST         DUMP STAGING TABLE 
          PRINT  (=2C  )
          PRINT  (=C*          STAGE REQUEST TABLE*)
          PRINT  (=2C  )
          SA3    SSBF+/MTX/TSRP 
          SA2    FC 
          SX6    X3          FWA
          SX7    X2          LWA+1
          RJ     DST         DUMP STAGING TABLE 
 DMS1     SB2    A0 
          JP     B2          RETURN 
 DMU      SPACE  4,15 
**        DMU - DUMP MAGNET UNIT DESCRIPTOR TABLES. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (CN) = MAGNET CONTROL POINT NUMBER.
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
*                (RC) = MAGNET CONTROL POINT REFERENCE ADDRESS. 
* 
*         USES   X - ALL. 
*                A - 1, 2, 4, 6, 7. 
*                B - 2, 3, 6, 7.
* 
*         CALLS  CTS, DFI, GTD, PCM, UPS. 
* 
*         MACRO  GETCM, PRINT.
  
  
 DMU      PRINT  (=2C  )
          PRINT  (=C*          MAGNET UNIT DESCRIPTOR TABLES*)
          SX6    A0+         SAVE RETURN ADDRESS
          SA6    DMUC 
          SA1    SSBF+/MTX/UBUF 
          SX6    X1          FWA OF UDT 
          AX1    24 
          SX7    X1          LWA OF UDT 
          SA6    DMUA        SAVE FWA OF FIRST UDT ENTRY
          SA7    A6+B1       SAVE LWA OF UDT
 DMU1     SA1    A6+B1       GET LWA OF UDT 
          IX1    X1-X6
          ZR     X1,DMU4     IF ALL UDTS DUMPED 
          BX1    X6 
          SA2    RC 
          IX3    X1+X2
          RJ     PCM         POSITION TO NEXT UDT 
          GETCM  BUF,/MTX/UNITL  READ UDT 
          PRINT  (=2C  )
          SB7    PRBF 
          SA2    =4HEST 
          SB6    4
          RJ     UPS         STORE IN PRINT STRING
          SA1    BUF+/MTX/UST1  SET EST ORDINAL 
          LX1    27 
          SB6    3
          RJ     CTS         CONVERT EST ORDINAL
          PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
          SA1    DMUA 
          BX6    X1 
          BX2    -X1
          SB2    X2+BUF      SET CORE ADDRESS OF TABLE DATA 
          SA6    FW          SET PRINT ADDRESS
          SA1    TFMU        FORMAT TABLE POINTERS
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
          SA1    DMUA 
          SX6    X1+/MTX/UNITL
          SA6    A1          SET NEXT UDT FWA 
          JP     DMU1 
  
 DMU4     SA1    DMUC        GET RETURN ADDRESS 
          SB2    X1 
          JP     B2          RETURN 
  
  
 DMUA     BSS    2           FWA, LWA OF UDT
 DMUC     BSS    1           RETURN ADDRESS 
 DNN      SPACE  4,10 
**        DNN - PROCESS CPP-S.
* 
*         ENTRY  VIA UNCONDITIONAL JUMP.
* 
*         EXIT   TO *RBI2* IF NORMAL. 
*                TO *PPE1* IF PREMATURE EOF.
* 
*         USES   X - 1, 7.
*                A - 1, 7.
* 
*         CALLS  CRS, ERF, RBF. 
  
  
 DNN      BSS    0           ENTRY
          RJ     ERF         POSITION TO EOR ON FILE *F*
          RJ     RBF         READ FIRST PART OF RECORD
          NZ     X1,PPE1     IF PREMATURE EOF 
          SA1    ID          SHIFT RECORD ID BEFORE ENTRY INTO TABLE
          BX7    X1 
          AX7    6
          SA7    A1 
          RJ     CRS         COPY RECORD TO FILE *S*
          EQ     RBI2        EXIT TO READ NEXT RECORD FROM FILE *F* 
 DOS      SPACE  4,15 
**        DOS - DISPLAY OCTAL DIGITS WITH LEADING ZERO SUPPRESSION. 
* 
*         ENTRY  (X1) = DIGITS RIGHT-JUSTIFIED. 
*                (B4) = NUMBER OF DIGITS TO CONVERT.
*                (B7) = STRING BUFFER POINTER.
* 
*         EXIT   DIGITS CONVERTED AND UNPACKED. 
*                (B4) UNCHANGED.
*                (B7) UPDATED TO TWO SPACES PAST LAST DIGIT.
* 
*         SAVES  X - 5. 
*                A - 0, 1, 3, 5, 7. 
*                B - 0, 1, 4. 
* 
*         CALLS  COD, UPS.
  
  
 DOS1     AX2    X6,B5       ** LOGICAL SHIFT BY -((B4)*6) ** 
          SB4    A2-B1       RESTORE B4 
          RJ     UPS         UNPACK TO STRING BUFFER
  
 DOS      SUBR               ENTRY/EXIT 
          SB2    B4+B4
          MX3    1
          SB2    B2+B4       (B4)*3 
          SA2    B4+B1       SAVE B4
          SB3    B2-B1
          SB5    B2+B2       (B4)*6 
          AX3    B3          CREATE MASK
          LX3    B2 
          SB6    A2+B1       UNPACK (B4) DIGITS + 2 SPACES
          BX1    X3*X1       MASK OFF DIGITS
          RJ     COD         CONVERT OCTAL DIGITS 
          SB5    B5-60
          EQ     DOS1        UNPACK CONVERTED DIGITS
 DOT      SPACE  4,20 
**        DOT - DUMP ORDINAL TABLE. 
* 
*         ENTRY  B2 = DUMP PARAMETER BLOCK ADDRESS. 
* 
*         PARAMETER BLOCK FORMAT -
* 
*T WORD0  60/FWA OF DUMP
*T WORD1  60/LWA+1 OF DUMP
*T WORD2  60/STARTING ORDINAL 
*T WORD3  60/ORDINAL INCREMENT PER LINE OF TWO WORDS
*T WORD4  60/FORMAT CONTROL 
*         DUMP FILE IS POSITIONED.
* 
*         EXIT   INPUT PARAMETER BLOCK NOT UPDATED. 
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  CTS, FDW, SDI, SRD, SSB. 
* 
*         MACROS GETCM, MOVE, PRINT.
  
  
 DOT      SUBR
          MX6    1
          SX7    B0 
          SA6    SRDA        PRESET FIRST CALL TO *SRD* 
          SA7    SRDC+10     STOP DASHES AFTER 100 CHARACTERS 
          MOVE   5,B2,DOTA   FETCH PARAMETER BLOCK
          RJ     SSB         SPACEFILL STRING BUFFER
 DOT1     GETCM  BUF,2
          SX1    BUF         SET DATA ADDRESS 
          SB5    2           WORD COUNT 
          RJ     SRD         SENSE REPEAT DATA
          NZ     X1,DOT3     IF REPEAT SENSED 
          SA1    DOTA 
          LX1    -21
          SB6    7
          SB7    PRBF 
          RJ     CTS         CONVERT ADDRESS
          SB7    B7+4        SPACE FOUR 
          SX6    1R+
          SA6    B7          ADD RELATIVE SIGN
          SB7    B7+B1
          SA1    DOTA+2 
          LX1    -15
          SB6    5
          RJ     CTS         CONVERT ORDINAL
          SA1    BUF
          SB2    2
 DOT2     SB7    B7+4        SPACE FOUR 
          SA2    DOTA+4      FORMAT CONTROL 
          RJ     FDW         FORMAT DATA WORD 
          SA1    A1+B1
          SB2    B2-B1
          NZ     B2,DOT2     IF MORE TO DUMP
          SB7    B7+4        SPACE FOUR 
          SA2    A1-2 
          SB6    20 
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          PRINT  CCCH,B7-CCCH 
 DOT3     SA1    DOTA        FWA
          SA2    DOTA+2      ORDINAL
          SA3    A2+B1       ORDINAL INCREMENT
          SA4    A1+B1       LWA+1
          SX6    X1+2 
          IX7    X2+X3
          SA6    A1          UPDATE FWA 
          SA7    DOTA+2      UPDATE ORDINAL 
          IX3    X6-X4
          NG     X3,DOT1     IF MORE TO DUMP
          SA1    SRDC+1 
          BX6    X1 
          SA6    SRDC+10     RESET DASHES FOR 136 CHARACTERS
          JP     DOTX        EXIT 
  
 DOTA     BSS    5           DUMP PARAMETER BLOCK 
 DPB      SPACE  4,20 
**        DPB - DISPLAY PPU BYTE. 
* 
*         PRINT THE 16 BIT PPU BYTE AS EITHER FOUR HEX DIGITS OR
*         SIX OCTAL DIGITS.  IF THE BYTE IS ZERO, PRINT FOUR DASHES.  IF
*         THE BYTE IS LESS THEN 10000B AND IS TO BE DISPLAYED IN OCTAL, 
*         SUPPRESS THE UPPER TWO ZEROS. 
* 
*         ENTRY  (X5) = ZERO IF HEXADECIMAL INTERPRETATION, 
*                       NON-ZERO IF DECIMAL INTERPRETATION. 
*                (X1) = DATA TO DISPLAY.
*                (B7) = POSITION TO DISPLAY INFORMATION.
* 
*         EXIT   (B7) = UPDATED DISPLAY INFORMATION POINTER.
* 
*         USES   A - 6. 
*                B - 6, 7.
*                X - 1, 2, 6. 
* 
*         CALLS  CTS, HTS.
  
  
 DPB      SUBR               ENTRY/EXIT 
          NZ     X5,DPB2     IF OCTAL 
          SB6    4
          LX1    -16
          RJ     HTS         DISPLAY 4 HEX DIGITS 
          NZ     X1,DPBX     IF DATA NONZERO
 DPB1     SX6    1R-         DISPLAY ---- FOR A ZERO
          SA6    B7-B1
          SA6    A6-B1
          SA6    A6-B1
          SA6    A6-B1
          EQ     DPBX        RETURN 
  
 DPB2     SB6    6
          LX1    -12
          SX2    X1 
          LX1    -6 
          NZ     X2,DPB3     IF UPPER 4 BITS ARE NONZERO
          LX1    6
          SX6    1R 
          SA6    B7 
          SA6    B7+B1
          SB7    A6+B1
          SB6    4           DISPLAY 4 OCTAL DIGIT
 DPB3     RJ     CTS
          ZR     X1,DPB1     IF WORD IS ALL ZERO
          EQ     DPBX        RETURN 
 DPN      SPACE  4,10 
**        DPN - DISPLAY PROCEDURE NAME. 
* 
*         ENTRY  (X1) = ADDRESS OF STACK FRAME. 
*                (X6) = EXCHANGE PACKAGE ADDRESS. 
* 
*         USES   A - 0, 1, 2, 6, 7. 
*                X - 1, 2, 3, 5, 6, 7.
*                B - 2, 6, 7. 
* 
*         CALLS  EVA, FRV, PVM, RMB, SAI, SVA, UPS. 
* 
  
  
 DPN2     PRINT  CCCH,13
  
 DPN      SUBR               ENTRY/EXIT 
          SA6    DPNA+1      SAVE EXCHANGE PACKAGE ADDRESS
          SX2    4*8+2
          IX6    X1+X2
          SA6    DPNA        SAVE STACK FRAME ADDRESS 
          SA2    =12HSTACK FRAME
          SB6    12 
          SB7    PRBF 
          RJ     UPS         UNPACK STRING
          SA1    DPNA 
          RJ     FRV         FETCH REGISTER VALUE 
          NZ     X2,DPN2     IF NO REGISTER VALUE, RETURN 
          RJ     EVA         EXPAND VIRTUAL ADDRESS 
          ZR     X2,DPN2     IF NIL POINTER 
          SB2    DPNA 
          SX1    8+2
          IX6    X7+X1       OFFSET TO PROCEDURE NAME POINTER 
          SA6    B2 
          RJ     SVA         CONVERT TO SVA 
          SA2    STSDE       FETCH SEGMENT DESCRIPTOR 
          MX3    2
          LX2    59-15+4
          BX2    X3*X2
          BX3    X3-X2
          NZ     X3,DPN2     IF NOT A BINDING SECTION 
          RJ     FRV         FETCH REGISTER VALUE 
          NZ     X2,DPN2     IF NO REGISTER VALUE, RETURN 
          ZR     X6,DPN2     IF NO PVA GIVEN
          RJ     EVA         EXPAND VIRTUAL ADDRESS 
          ZR     X2,DPN2     IF NIL POINTER 
          SA7    DPNA 
          SB2    A7 
          RJ     SVA         CONVERT TO SVA 
          SA6    DPNA        SAVE CONVERTED SVA 
          RJ     PVM         POSITION VIRTUAL MEMORY
          NZ     X2,DPN2     IF NO REGISTER VALUE, RETURN 
          SA1    DPNA 
          SX6    32/8 
          RJ     RMB         READ MEMORY BYTES
          SA0    BUF
          SX5    32/2 
          SA1    A0+B1
          MX2    -8 
          BX6    -X2*X1 
          SX6    X6-0#24     CHECK FOR *$*
          NZ     X6,DPN2     IF NO *$*, RETURN
          SA2    =9HMODULE =
          SB6    9
          SB7    PRBF+12
          RJ     UPS         UNPACK STRING
 DPN1     SA2    A0 
          SA0    A0+B1
          LX2    59-15
          SB6    B1+B1
          RJ     SAI         SET ASCII INTERPRETATION 
          SX5    X5-1 
          NZ     X5,DPN1     IF MORE TO DECODE
          PRINT  CCCH,B7-CCCH 
          JP     DPNX        RETURN 
  
 DPNA     CON    0           PVA/SVA
          CON    0           EXCHANGE PACKAGE 
 DPO      SPACE  4,14 
**        DPO - DUMP PP OVERLAY.
* 
*         ENTRY  X3 = ABSOLUTE ADDRESS OF OVERLAY HEADER. 
*                X5 = RELATIVE ADDRESS OF OVERLAY HEADER. 
* 
*         EXIT   X6 = 0 IF ALL OVERLAYS DUMPED. 
*                   .NE. 0 IF MORE OVERLAYS TO DUMP.
*                X5 = ADDRESS OF NEXT OVERLAY HEADER. 
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  CTS, DOT, PCM, UPS.
* 
*         MACROS GETCM, PRINT.
  
  
 DPO      SUBR
          SX0    X3          SAVE ABSOLUTE ADDRESS
          RJ     PCM
          GETCM 
          ZR     X6,DPOX     IF FINISHED WITH OVERLAYS
          SA6    DPOA        SAVE OVERLAY HEADER
          SX3    X0 
          RJ     PCM         POSITION TO OVERLAY HEADER AGAIN 
          PRINT  (=2C  )
          SA2    DPOA 
          SB7    PRBF 
          SB6    3
          RJ     UPS         STORE OVERLAY NAME IN PRINT STRING 
          SA2    =14H  PP LENGTH =
          SB6    14 
          RJ     UPS         STORE IN PRINT STRING
          SA1    DPOA 
          SX3    X1          CM LENGTH
          IX6    X3+X5
          ZR     X3,ERR19    IF LENGTH EQUALS ZERO
          SX7    X5+
          SA6    DPOB+1      LWA+1
          SA7    A6-B1       FWA
          AX1    24 
          SX6    X1          PP LOAD ADDRESS
          SA6    A6+B1       STARTING ORDINAL 
          SX4    5
          IX1    X3*X4       PP LENGTH
          LX1    -12
          SB6    4
          RJ     CTS         STORE PP LENGTH IN PRINT STRING
          PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
          SB2    DPOB 
          RJ     DOT         DUMP ORDINAL TABLE 
          SA5    DPOB+1      ADDRESS OF NEXT OVERLAY HEADER 
          SX6    1           INDICATE MORE OVERLAYS TO DUMP 
          JP     DPOX        EXIT 
  
 DPOA     BSS    1           OVERLAY HEADER 
 DPOB     VFD    60/0        FWA
          VFD    60/0        LWA+1
          VFD    60/0        STARTING ORDINAL 
          VFD    60/5*2      ORDINAL INCREMENT
          VFD    24/0,18/4,18/5  FORMAT CONTROL 
 DPP      SPACE  4,12 
**        DPP - DUMP PPU/FLPP IN *P* FORMAT.
* 
*         ENTRY  PD = NUMBER OF LINES PER PAGE. 
*                DUMP FILE POSITIONED TO CORRECT PPU/FLPP RECORD. 
* 
*         USES   X - 1, 2, 5, 6.
*                A - 0, 1, 2, 6.
*                B - 6, 7.
* 
*         CALLS  CPS, CTS, FOL, RBT, UPS. 
* 
*         MACROS PRINT. 
  
  
 DPP      SUBR
          BX6    X6-X6
          SA6    NXBA        INITIALIZE *NXB* 
          SA6    A6+B1
          ERRNZ  NXBB-NXBA-1  CODE REQUIRES CONTIGUOUS LOCATIONS
          SA6    RBTA        INITIALIZE BYTE READING ROUTINE
          SA6    FW          CLEAR ADDRESS COUNTER
  
*         FORMAT 2 SIDE BY SIDE BLOCKS. 
  
 DPP1     SX1    10 
          RJ     CPS         CHECK PAGE SPACE 
          PRINT  (=2C  )
          SA2    DPPA 
          SB6    121
          SB7    PRBF 
          RJ     UPS         SET HEADER LINE
          SA1    FW          ADDRESS COUNTER
          LX1    -9 
          SB6    3
          SB7    PRBF+4 
          RJ     CTS         SET ADDRESS IN LEFT BLOCK
          SX1    X1+B1
          LX1    -9 
          SB6    3
          SB7    PRBF+68
          RJ     CTS         SET ADDRESS IN RIGHT BLOCK 
          PRINT  CCCH,122 
          SA0    200B 
          RJ     RBT         READ NEXT 200B BYTES 
          SX5    0           ROW COUNTER
          SX6    1R 
          SA6    PRBF+4      BLANK OUT ADDRESS CHARACTERS 
          SA6    A6+B1
          SA6    A6+B1
          SA6    PRBF+68
          SA6    A6+B1
          SA6    A6+B1
 DPP2     RJ     FOL         FORMAT ONE LINE
          SX5    X5+1 
          SX6    X5-10B 
          NG     X6,DPP2     IF MORE ROWS TO FORMAT 
          PRINT  (=2C  )
          SA1    FW 
          SX6    X1+2 
          SA6    A1+         ADVANCE ADDRESS COUNTER
          SA1    PS          PP MEMORY SIZE 
          AX1    6
          IX6    X6-X1
          NG     X6,DPP1     IF MORE TO FORMAT
          EQ     DPPX        EXIT 
  
  
 DPPA     BSS    0           *P* FORMAT HEADER LINE 
          DATA   50H       XX    0X    1X    2X    3X    4X    5X    6
          DATA   50HX    7X              XX    0X    1X    2X    3X 
          DATA   21C 4X    5X    6X    7X 
 DPQ      SPACE  4,12 
**        DPQ - DUMP PPU/FLPP IN *Q* FORMAT.
* 
*         ENTRY  (APPG) = PP DATA IN *PBUF*, IF NONZERO.
* 
*         USES   X - 1, 4, 6. 
*                A - 0, 4, 6. 
*                B - 2, 5, 7. 
* 
*         CALLS  DTQ, RBT, SRD, SSB.
* 
*         MACROS PRINT. 
  
  
 DPQ      SUBR
          RJ     SSB         CLEAR PRINT STRING BUFFER
          BX6    X6-X6
          SA6    NXBA        INITIALIZE *NXB* 
          SA6    A6+B1
          SA6    RBTA        INITIALIZE BYTE READING ROUTINE
          SA6    FW          CLEAR ADDRESS
          SA4    APPG 
          ZR     X4,DPQ0     IF DATA IS NOT IN *PBUF* 
          SX6    PBUF-1 
          SA6    RBTB 
 DPQ0     MX6    1
          SA6    SRDA        INITIALIZE REPEAT DATA SENSING ROUTINE 
 DPQ1     SA0    20B
          RJ     RBT         READ 20B BYTES 
          SB5    20B         WORD COUNT 
          SX1    BUF         DATA ADDRESS 
          RJ     SRD         SENSE REPEAT DATA
          NZ     X1,DPQ2     IF REPEAT DATA 
          SA4    FW          SET ADDRESS
          SB2    BUF         BYTE BUFFER ADDRESS
          SB7    PRBF        PRINT STRING ADDRESS 
          RJ     DTQ         DUMP TEN BYTES *Q* FORMAT
          SB7    B7+3        SPACE 3
          SX4    X4+10B      ADVANCE ADDRESS
          RJ     DTQ         DUMP NEXT TEN BYTES
          PRINT  CCCH,B7-CCCH 
 DPQ2     SA1    FW 
          SX6    X1+20B      ADVANCE ADDRESS
          SA6    A1 
          SA1    PS          PP MEMORY SIZE 
          IX6    X6-X1
          NG     X6,DPQ1     IF MORE TO DUMP
          SX6    B0+
          SA6    RBTB 
          JP     DPQX        EXIT 
 DRT      SPACE  4,10 
**        DRT - DETERMINE RECORD TYPE.
* 
*         ENTRY  (X1) = RECORD IDENTIFIER.
* 
*         EXIT   (B3) = ADDRESS OF ROUTINE TO PROCESS RECORD. 
* 
*         USES   X - 0, 2, 3, 4.
*                B - 3, 6.
*                A - 2. 
  
  
 DRT      SUBR               ENTRY/EXIT 
          MX0    18          SEARCH MASK
          SB6    B0          SEARCH INDEX 
 DRT1     SA2    DRTA+B6
          BX3    X2-X1
          BX3    X0*X3
          BX4    X0*X2
          SB6    B6+B1
          SB3    X2 
          ZR     X4,DRTX     IF LAST TABLE ENTRY
          NZ     X3,DRT1     IF NO MATCH
          EQ     DRTX        RETURN 
  
  
 DRTA     VFD    18/3LCCM,24/0,18/CCM 
          VFD    18/3LCCR,24/0,18/CCR 
          VFD    18/3LPSR,24/0,18/PCS 
          VFD    18/3LCM ,24/0,18/CMP 
          VFD    18/3LD00,24/0,18/DNN 
          VFD    18/3LD01,24/0,18/DNN 
          VFD    18/3LD02,24/0,18/DNN 
          VFD    18/3LD03,24/0,18/DNN 
          VFD    18/3LD04,24/0,18/DNN 
          VFD    18/3LD05,24/0,18/DNN 
          VFD    18/3LD06,24/0,18/DNN 
          VFD    18/3LD07,24/0,18/DNN 
          VFD    18/3LD10,24/0,18/DNN 
          VFD    18/3LD11,24/0,18/DNN 
          VFD    18/3LECS,24/0,18/ECS 
          VFD    18/3LEIC,24/0,18/EIC 
          VFD    18/3LESM,24/0,18/ESM 
          VFD    18/3LIMR,24/0,18/IMR 
          VFD    18/3LI00,24/0,18/INN 
          VFD    18/3LI01,24/0,18/INN 
          VFD    18/3LI02,24/0,18/INN 
          VFD    18/3LI03,24/0,18/INN 
          VFD    18/3LI04,24/0,18/INN 
          VFD    18/3LI05,24/0,18/INN 
          VFD    18/3LI06,24/0,18/INN 
          VFD    18/3LI07,24/0,18/INN 
          VFD    18/3LI10,24/0,18/INN 
          VFD    18/3LI11,24/0,18/INN 
          VFD    18/3LI20,24/0,18/INN 
          VFD    18/3LI21,24/0,18/INN 
          VFD    18/3LI22,24/0,18/INN 
          VFD    18/3LI23,24/0,18/INN 
          VFD    18/3LI24,24/0,18/INN 
          VFD    18/3LI25,24/0,18/INN 
          VFD    18/3LI26,24/0,18/INN 
          VFD    18/3LI27,24/0,18/INN 
          VFD    18/3LI30,24/0,18/INN 
          VFD    18/3LI31,24/0,18/INN 
          VFD    18/3LMMR,24/0,18/MMR 
          VFD    18/3LMEM,24/0,18/MEM 
          VFD    18/3LPMR,24/0,18/PMR 
          VFD    18/3LPRF,24/0,18/PRF 
          VFD    18/3LPCS,24/0,18/PCS 
          VFD    18/3LPCD,24/0,18/PCS 
          VFD    18/3LPSC,24/0,18/PCS 
          VFD    18/3LPDC,24/0,18/PCS 
          VFD    18/3LPBD,24/0,18/PCS 
          VFD    18/3LPIS,24/0,18/PCS 
          VFD    18/3LPCM,24/0,18/PCS 
          VFD    18/3LPCW,24/0,18/PCS 
          VFD    18/3LPOC,24/0,18/PCS 
          VFD    18/3LPPM,24/0,18/PCS 
          VFD    18/3LPRG,24/0,18/PCS 
          VFD    18/3LPRH,24/0,18/PCS 
          VFD    18/3LPSM,24/0,18/PCS 
          VFD    18/3LPXP,24/0,18/PRX 
          VFD    18/3LDSB,24/0,18/PCS 
          VFD    18/0#564F4C/1S6,24/0,18/VOL
          VFD    18/0,24/0,18/OTH 
 DSM      SPACE  4,20 
**        DSM - DUMP SIXTY-FOUR BIT MEMORY. 
* 
*         ENTRY  (B2) = ADDRESS OF PARAMETER LIST.
*                (B2+0) = FWA OF DUMP.
*                (B2+1) = LWA OF DUMP.
*                (B2+2) = DUMP FORMAT.
*                            0 = I TYPE FORMAT. 
*                            2 = W TYPE FORMAT. 
* 
*         USES   X - ALL. 
*                A - 0, 1, 2, 3, 4, 6, 7. 
*                B - 2, 4, 5, 6, 7. 
* 
*         CALLS  CPC, FBB, HTS, ISM, NXB, PBB, SAI, SFP, SRD, SSB.
* 
*         MACROS MOVE, PRINT. 
  
  
 DSM      SUBR               ENTRY/EXIT 
          MOVE   3,B2,DSMB
          RJ     SSB         SPACE FILL BUFFER
          SA1    DSMB 
          SA2    A1+B1       COMPARE ADDRESSES
          IX7    X1-X2
          PL     X7,ERR6     IF LWA .LE. FWA
          BX6    X1 
          AX6    32          POSITION ASID
          SA3    XB 
          ZR     X6,DSM1     IF NO ASID SPECIFIED 
          SB4    X6 
          NE     B4,B1,DSM2  IF ASID .NE. 1 
          MX7    -32
          BX6    -X7*X1      CLEAR ASID 
          BX7    -X7*X2 
          SA6    A1          UPDATE FWA OF DUMP 
          SA7    A2 
          BX6    X3          FORCE RELATIVE *EI* ADDRESSING 
          SX1    B0 
          SA6    EI 
 DSM1     SB2    DSMB        SET PARAMETER BLOCK ADDRESS
          IX1    X1-X3
          BX7    X3 
          NG     X1,DSM2     IF FWA BELOW MEMORY BOUNDS 
          SA7    AO 
 DSM2     RJ     ISM         INITIALIZE FOR 64-BIT DUMP 
          MX6    1
          SA6    SRDA        SET INITIAL CALL TO *SRD*
          SA3    B2+B1
          SA4    A3+B1       FETCH DUMP TYPE
          SA2    B2 
          ZR     X4,DSM3     IF I-TYPE DUMP 
          MX1    -5 
          BX2    X1*X2
          BX6    X2 
          SA6    A2          ROUND DOWN TO 32 BYTE BLOCK
 DSM3     BX6    X2 
          AX6    32 
          NZ     X6,DSM4     IF ASID SPECIFIED
          SA4    XL 
          IX4    X4-X3
          BX1    X4 
          AX1    60 
          BX4    X1*X4
          IX6    X3+X4       SET ACTUAL MEMORY SIZE IF LWA TOO LARGE
          SA6    A3 
          IX6    X6-X2
          NG     X6,ERR19.1  IF FWA BEYOND ACTUAL MEMORY SIZE 
 DSM4     ZR     X6,DSMX     IF NO MEMORY TO DUMP 
          RJ     SFP         SEARCH FOR STARTING PAGE 
          PL     X3,DSMX     IF NO MEMORY TO DUMP 
          SA1    DSMB+2      DUMP TYPE
          AX1    1
          SB2    X1 
          NZ     B2,DSM6     IF W-TYPE DUMP 
  
*         PROCESS I TYPE DUMP.
  
 DSM5     SB2    DSMB        PARAMETER BLOCK
          RJ     FBB         FILL BYTE BUFFER 
          SB2    DSMB        PARAMETER BLOCK
          RJ     PBB         PRINT BYTE BUFFER
          SA1    DSMB 
          SA2    A1+B1
          IX6    X1-X2
          PL     X6,DSMX     IF NO MORE TO DUMP 
          SB2    DSMB 
          RJ     CPC         CHECK PAGE CHANGE
          NG     X3,DSM5     IF VALID PAGE
          RJ     SFP         SEARCH FOR PAGE
          NG     X3,DSM5     IF PAGE FOUND
          JP     DSMX        RETURN 
  
*         PROCESS W TYPE DUMP.
  
 DSM6     SA0    0
          SX5    -8 
 DSM7     RJ     NXB         GET NEXT BYTE
          BX0    X1 
          LX0    16 
          RJ     NXB
          BX6    X0+X1
          SA6    A0+BUF 
          SX5    X5+B1
          SA1    DSMB        INCREMENT BYTE ADDRESS 
          SX2    4
          SA0    A0+B1       ADVANCE BUFFER POINTER 
          IX6    X2+X1
          SA6    A1 
          NG     X5,DSM7     IF MORE BYTES TO COLLECT 
          SB5    8
          SX1    BUF
          RJ     SRD         SENSE FOR REPEATED DATA
          NZ     X1,DSM9     IF REPEAT DATA 
          SA1    DSMB 
          SX2    32 
          IX1    X1-X2
          LX1    -8*4 
          SB6    8
          SB7    PRBF        STRING POSITION FOR ADDRESS
          RJ     HTS         DISPLAY HEX ADDRESS
          SA1    BUF
          SB5    PRBF+80
          SB4    4
          SB7    B7+2 
 DSM8     LX1    28 
          SB6    8
          RJ     HTS         DISPLAY FIRST HALF OF WORD 
          SA1    A1+B1
          LX1    28 
          SB6    8
          RJ     HTS         DISPLAY SECOND HALF OF WORD
          SB2    B7+2 
          SB7    B5 
          SB5    B2 
          SA2    A1-B1       PRINT ASCII REPRESENTATION OF THE WORD 
          SB6    4
          LX2    28 
          RJ     SAI         SET ASCII INTERPRETATION 
          SA2    A2+B1
          SB6    4
          LX2    28 
          RJ     SAI         SET ASCII INTERPRETATION 
          SB2    B7 
          SB7    B5 
          SB5    B2+B1
          SB4    B4-B1
          SA1    A2+B1
          NZ     B4,DSM8     IF LINE NOT COMPLETE 
          PRINT  CCCH,B5-CCCH-1 
 DSM9     SA1    DSMB 
          SA2    A1+B1
          IX3    X1-X2
          PL     X3,DSMX     IF NO MORE LINES TO FORMAT 
          SB2    DSMB 
          RJ     CPC         CHECK PAGE CHANGE
          NG     X3,DSM6     IF PAGE PRESENT
          RJ     SFP         SEARCH FOR PAGE
          PL     X3,DSMX     IF NO MORE PAGES PRESENT 
          SX6    -1 
          SA6    SRDA        RESET SRD
          EQ     DSM6        CONTINUE DUMP
  
  
 DSMB     CON    0           FWA OF DUMP
          DATA   0           LWA OF DUMP
          DATA   0           DUMP FORMAT
 DSP      SPACE  4,25 
**        DSP - DUMP 16-BIT PP. 
* 
*         ENTRY  PBUF = ENTIRE PP IMAGE.
*                (X1) = FWA TO DUMP.
*                (A1) = ADDRESS OF PARAMETER LIST AS FOLLOWS -
*                WORD 0 = FWA TO DUMP.
*                WORD 1 = LWA+1 TO DUMP.
*                WORD 2 = 0 IF NOT R-REGISTER DUMP. 
*                         NONZERO IF R-REGISTER DUMP. 
*                WORD 3 = DUMP FORMAT CODE. 
*                            0 = OCTAL BLOCK. 
*                            1 = HEX   BLOCK. 
*                            2 = OCTAL LINE DISPLAY INTERPRETATION. 
*                            3 = OCTAL LINE  ASCII  INTERPRETATION. 
*                            4 = HEX   LINE DISPLAY INTERPRETATION. 
*                            5 = HEX   LINE  ASCII  INTERPRETATION. 
* 
*         USES   X - 0, 1, 2, 3, 4, 5, 6. 
*                A - 1, 2, 3, 4, 5, 6.
*                B - 2, 6, 7. 
* 
*         CALLS  CTS, GRV, HTS, IOQ, IPO, IPX, SSB, UPS.
* 
*         MACROS MOVE, PRINT. 
  
  
 DSP      SUBR               ENTRY/EXIT 
          SB2    A1 
          MOVE   4,B2,DSPB   COPY PARAMETER BLOCK 
          SA2    DSPB+1      LWA OF DUMP
          SA4    K4          CONTROLLER TYPE
          SA3    X4+/DIRECT/TCTP
          MX0    -18
          AX3    18 
          BX3    -X0*X3 
          IX1    X3-X2
          BX3    X1 
          AX1    60 
          BX3    X1*X3
          IX6    X2+X3       LWA IS .LE. 20000B 
          SA6    A2 
          SA1    A2-B1       FWA OF DUMP
          IX6    X1-X6
          PL     X6,ERR6     IF LWA .LT. FWA
          SA1    DSPB+3      DUMP FORMAT
          SA5    X1+DSPD     CORRESPONDING ASCII/DISPLAY HEX/OCTAL FLAGS
          SA2    TF 
          SX6    8           BYTES PER LINE FOR A PRINTER FILE
          ZR     X2,DSP1     IF NOT A TERMINAL FILE 
          SX6    4           BYTES PER LINE FOR TERMINAL
 DSP1     SA6    DSPC        SET BYTES PER LINE 
          BX6    X5 
          SA6    A6+B1       SAVE ASCII/DISPLAY, HEX/OCTAL FLAGS
          SA1    A1-B1
          ZR     X1,DSP5     IF NOT TO DISPLAY THE R REGISTER 
          RJ     SSB
          SB7    PRBF 
          SA2    =C* R REGISTER = * 
          SB6    14 
          RJ     UPS         UNPACK STRING
          RJ     GRV         GET R-REGISTER VALUE 
          NZ     X5,DSP3     IF OCTAL DISPLAY 
          SB6    6           DISPLAY 6 HEX DIGITS 
          RJ     HTS
          EQ     DSP4        PRINT REGISTER 
  
 DSP3     SB6    8           DISPLAY 8 OCTAL DIGITS 
          RJ     CTS
 DSP4     PRINT  CCCH,B7-CCCH  * R REGISTER = NNNNNN* 
 DSP5     RJ     SSB
          SA1    DSPB+3      DUMP FORMAT
          SB2    X1 
          ZR     B2,IPO      IF IOU DUMP IN OCTAL BLOCK 
          EQ     B2,B1,IPX   IF IOU DUMP IN HEX BLOCK 
          MX6    1           INITIALIZE *SRD* 
          SA6    SRDA 
          RJ     IOQ         DISPLAY IOU IN LINE FORMAT 
          EQ     DSPX        RETURN 
  
  
 DSPB     BSS    4
 DSPC     DATA   0           BYTES PER LINE (IOQ) 
          DATA   0           OCTAL/HEX, ASCII/DISPLAY FLAG
 DSPD     CON    1           OCTAL FORMAT 
          CON    0           HEX FORMAT 
          CON    -1          OCTAL AND DISPLAY
          CON    1           OCTAL AND ASCII
          CON    -0          HEX AND DISPLAY
          CON    0           HEX AND ASCII
 DSS      SPACE  4,18 
**        DSS - DUMP SUB-SYSTEM.
* 
*         ENTRY  (X5) = FIRST ENTRY IN PARAMETER BLOCK. 
*                (A5) = PARAMETER BLOCK ADDRESS.
*T        60/ DEFAULT LIST OPTIONS
*T        36/ ,6/ OPT,18/ PROCESSOR ADD 
*T        36/ ,6/ OPT,18/ PROCESSOR ADD 
*          .      .           . 
*          .      .           . 
*          .      .           . 
*T        60/ ZERO WORD TERMINATES BLOCK
*                (CH) = DIRECTIVE STRING POINTER. 
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 0, 1, 2, 6, 7. 
*                B - 2. 
* 
*         CALLS  ASN, SNO, LIST OPTION PROCESSORS.
  
  
 DSS      SUBR
          BX6    X5          PRESET DEFAULT 
          SA1    CH 
          SA2    X1 
          SX3    X2-1R. 
          ZR     X3,DSS1     IF TERMINATOR ALREADY DETECTED 
          RJ     ASN         ASSEMBLE LIST OPTIONS
          SA1    CH 
          SA1    X1 
          SX2    X1-1R. 
          NZ     X2,ERR6     IF NOT END OF DIRECTIVE
 DSS1     SA6    DSSA 
          SX7    A5+1 
          SA7    DSSB 
 DSS2     SA2    DSSB 
          SB2    X2+
          SA1    DSSA 
          RJ     SNO         SELECT NEXT LIST OPTION
          ZR     X3,DSSX     IF NO MORE LIST OPTIONS SELECTED 
          SA0    DSS2        SET RETURN ADDRESS 
          JP     B3          EXECUTE SELECTED PROCESSOR 
  
 DSSA     BSS    1           OPTIONS TO PROCESS 
 DSSB     BSS    1           PROCESSOR TABLE ADDRESS
 DST      SPACE  4,15 
**        DST - DUMP STAGING TABLE. 
* 
*         ENTRY  (X6) = (FWA).
*                (X7) = (LWA+1).
* 
*         EXIT   TABLE DUMPED.
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 2. 
* 
*         CALLS  DOT, PCM.
  
  
 DST      SUBR               ENTRY/EXIT 
          IX4    X7-X6
          NG     X4,DSTX     IF (LWA+1) .LT. (FWA)
          NZ     X4,DST1     IF (LWA+1) .NE. (FWA)
          SX7    X7+1 
 DST1     SA6    DSTA 
          SA7    A6+1 
          SA1    A6 
          SA2    RC 
          IX3    X1+X2
          RJ     PCM         POSITION TO TABLE
          SB2    DSTA 
          RJ     DOT         DUMP ORDINAL TABLE 
          EQ     DSTX        RETURN 
  
  
 DSTA     VFD    60/0        FWA
          VFD    60/0        LWA+1
          VFD    60/0        STARTING ORDINAL 
          VFD    60/2        ORDINAL INCREMENT
          VFD    24/0,18/4,18/5  FORMAT CONTROL 
 DTB      SPACE  4,20 
**        DTB - DUMP TABLE. 
* 
*         ENTRY  (X4) = 0, IF READ FROM DUMP FILE.
*                     = DATA ADDRESS, IF READ FROM CORE.
*                (X5) = TABLE DESCRIPTION ADDRESS.
*                (X6) = FWA OF TABLE. 
*                (X7) = LWA+1 OF TABLE. 
*                (B3) .GE. 0, IF FORMAT CODE. 
*                     = -1, IF NOT FIRST TABLE. 
* 
*         EXIT   (CPRA - CPRA+7) SET. 
* 
*         USES   X - 6, 7.
*                A - 6, 7.
*                B - 2. 
* 
*         CALLS  LDC, PMD, POM, SCM, SRA. 
* 
*         MACROS PRINT. 
  
  
 DTB      SUBR               ENTRY/EXIT 
          SA6    CPRA        SET FWA OF TABLE 
          SA7    CPRA+1      SET LWA+1 OF TABLE 
          SX6    X4+         SET DUMP DATA LOCATION 
          SA6    CPRA+2 
          NG     B3,DTB1     IF NOT FIRST TABLE 
          RJ     SCM         SET CENTRAL MEMORY 
          SX6    B3          SET FORMAT CODE
          SA6    CPRA+4 
          BX6    X6-X6
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE CARD
 DTB1     PRINT  (=2C  )
          PRINT  X5          PRINT TABLE DESCRIPTION
          PRINT  (=2C  )
          SB2    CPRA        SET FWA OF TABLE 
          RJ     POM         POSITION DUMP FILE 
          SB2    CPRA        RESET FWA OF TABLE 
          RJ     PMD         PROCESS MEMORY DUMP
          EQ     DTBX        RETURN 
 DTC      SPACE  4,12 
**        DTC - DUMP IAF COMMAND TABLE. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (RC) = CONTROL POINT REFERENCE ADDRESS.
* 
*         USES   X - 1, 2, 3, 4, 5, 6, 7. 
*                A - 1, 2, 5, 6.
*                B - 2, 6, 7. 
* 
*         CALLS  CPS, CTS, PCM, PCW, SSB, UPS.
* 
*         MACROS GETCM, PRINT.
  
  
 DTC      PRINT  (=2C  )
          PRINT  (=C*          IAF COMMAND TABLE*)
          PRINT  (=2C  )
          SA1    SSBF+/REM/VCTP 
          SX7    X1          LWA+1
          AX1    24 
          SX6    X1          FWA
          IX5    X7-X6
          NG     X5,DTC2     IF (LWA+1) .LT. (FWA)
          SA6    DTCA        SAVE FWA OF FIRST COMMAND
          SX4    X6 
          AX5    1           NUMBER OF COMMANDS 
          SA1    RC 
          IX3    X1+X4
          RJ     PCM         POSITION TO FIRST COMMAND
          SX1    3
          RJ     CPS         CHECK PAGE SPACE 
          PRINT  DTCB        SET HEADER LINE 1
          PRINT  DTCC        SET HEADER LINE 2
          PRINT  (=2C  )
 DTC1     SX5    X5-1 
          NG     X5,DTC3     IF ALL COMMANDS DUMPED 
          GETCM  BUF,2
          RJ     SSB         CLEAR PRINT STRING 
  
*         SET ADDRESS OF COMMAND. 
  
          SA1    DTCA 
          LX1    -21
          SB6    7
          SB7    PRBF 
          RJ     CTS
  
*         SET COMMAND.
  
          SA2    BUF
          SB6    7
          SB7    PRBF+12
          RJ     UPS
  
*         SET PROCESSOR ADDRESS.
  
          BX1    X2 
          SB6    6
          SB7    PRBF+25
          RJ     CTS
  
*         SET FLAGS.
  
          SA1    BUF+1
          SB6    2
          SB7    PRBF+39
          RJ     CTS
  
*         SET NUMBER OF PARAMETERS. 
  
          SB6    2
          SB7    PRBF+52
          RJ     CTS
  
*         SET SUBSYSTEMS. 
  
          SB6    6
          SB7    PRBF+64
          LX1    12 
          RJ     CTS
  
*         SET OCCURENCES. 
  
          SB6    6
          SB7    PRBF+79
          RJ     CTS
          PRINT  CCCH,B7-CCCH 
          SA1    DTCA 
          SX6    X1+2 
          SA6    A1          UPDATE ADDRESS OF COMMAND
          JP     DTC1 
  
 DTC2     SA5    DTCD 
          RJ     PCW         PRINT CONTENTS OF *VCTP* WORD
 DTC3     SB2    A0 
          JP     B2          RETURN 
  
 DTCA     BSS    1           ADDRESS OF COMMAND 
 DTCB     BSS    0           HEADER LINE 1
          DATA   50H             COMMAND     PROCESSOR     FLAGS     N
          DATA   39CUMBER OF      SUBSYSTEMS     OCCURENCES 
 DTCC     BSS    0           HEADER LINE 2
          DATA   50H                          ADDRESS                P
          DATA   9CARAMETERS
 DTCD     VFD    36/6L*VCTP*,6/0,18//REM/VCTP 
          DATA   40HIAF COMMAND TABLE FWA, LWA+1
          VFD    60/0 
 DTE      SPACE  4,9
**        DTE - DUMP IAF REENTRY TABLE. 
* 
*         ENTRY  A0 = RETURN ADDRESS. 
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  DOT, PCM, PCW. 
* 
*         MACROS PRINT. 
  
  
 DTE      PRINT  (=2C  )
          PRINT  (=C*          IAF REENTRY TABLE*)
          PRINT  (=2C  )
          SA1    SSBF+/REM/VRAP 
          SX7    X1          LWA+1
          AX1    24 
          SX3    X1          FWA
          IX4    X7-X3
          NG     X4,DTE2     IF (LWA+1) .LT. (FWA)
          SX6    X3+B1       START WITH FWA+1 - 1ST TERMINAL NOT NEEDED 
          IX4    X7-X6
          NG     X4,DTE3     IF NOTHING TO DUMP 
          NZ     X4,DTE1     IF (LWA+1) .GT. NEW FWA
          SX7    X7+1 
 DTE1     SA6    DTEA 
          SA7    DTEA+1 
          SA1    DTEA 
          SA2    RC 
          IX3    X1+X2
          RJ     PCM         POSITION TO REENTRY TABLE
          SB2    DTEA 
          RJ     DOT         DUMP ORDINAL TABLE 
          JP     DTE3 
  
 DTE2     SA5    DTEB 
          RJ     PCW         PRINT CONTENTS OF *VRAP* WORD
 DTE3     SB2    A0 
          JP     B2          RETURN 
  
 DTEA     VFD    60/0        FWA
          VFD    60/0        LWA+1
          VFD    60/1        STARTING ORDINAL 
          VFD    60/2        ORDINAL INCREMENT
          VFD    24/0,18/4,18/5  FORMAT CONTROL 
 DTEB     VFD    36/6L*VRAP*,6/0,18//REM/VRAP  PARAMETER LIST FOR PCW 
          DATA   40HIAF REENTRY TABLE FWA, LWA+1
          VFD    60/0 
 DTI      SPACE  4,15 
**        DTI - DUMP TABLE WITH INTERPRETATION. 
* 
*         ENTRY  (B2) = TABLE POINTER.
*                (X3) = SUBTITLE.  MUST BE IN FORM *TBL 0000  *.
*                (X5) = TABLE HEADER POINTER. 
*                (X6) = DESCRIPTOR TABLE POINTER. 
*                (X7) = TABLE ENTRY LENGTH. 
* 
*         SAVES  X - NONE.
*                A - 0, 5.
*                B - NONE.
* 
*         CALLS  CEP, COD, GTD, LDC, POM, SCM, SRA, UPS.
* 
*         MACROS GETCM, PRINT.
  
  
 DTI      SUBR               ENTRY/EXIT 
          SA6    DTIB        SAVE DESCRIPTOR TABLE POINTER
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
          SA7    DTIA        SAVE ENTRY LENGTH
          SA1    F.TCMT      GET POINTER WORD 
          SA1    X1+B2
          LX1    24 
          SX6    X1          SAVE TABLE FWA 
          LX1    12 
          SA6    FW 
          MX0    -12
          BX6    -X0*X1      LAST ORDINAL + 1 
          SA6    CPRA+1 
          RJ     SCM         SET CENTRAL MEMORY 
          BX6    X3          RESET SUBTITLE 
          SA6    SBTL1
          SX6    0
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     LDC         LIST DIRECTIVE 
          SB2    FW 
          RJ     POM         POSITION TO FWA
          SA1    FW 
          SA2    DTIA        INITIALIZE ENTRY FWA FOR SEARCH
          SX6    -B1
          SA6    CPRA        INITIALIZE ORDINAL 
          IX7    X1-X2
          SA7    A1 
          PRINT  X5          PRINT HEADER 
 DTI1     SA1    CPRA        INCREMENT ORDINAL
          SX7    X1+B1
          SA7    A1 
          SA1    A1+B1
          IX1    X1-X7
          ZR     X1,DTIX     IF ENTIRE TABLE SCANNED
          SA1    FW          INCREMENT ENTRY FWA
          SA2    DTIA 
          IX6    X1+X2
          SA6    A1 
          GETCM  BUF,X2      READ NEXT ENTRY
          SA1    BUF
          AX1    12 
          ZR     X1,DTI1     IF UNUSED ENTRY
          SA1    CPRA        RESET SUBTITLE TABLE ORDINAL 
          SX1    X1+10000B   GUARANTEE LEADING ZEROS
          RJ     COD
          LX4    6-1         DISCARD LEADING DIGIT
          AX4    24-1 
          SA1    SBTL1
          AX1    36 
          LX1    36 
          BX6    X1+X4
          SA6    A1 
          BX2    X6          DISPLAY ORDINAL
          SB6    8
          SB7    PRBF 
          RJ     UPS
          PRINT  (=2C  )
          PRINT  CCCH,9 
          SA1    FW 
          BX1    -X1
          SB2    X1+BUF 
          SA1    DTIB        GET DESCRIPTOR TABLE POINTER 
          SA1    X1 
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
          EQ     DTI1        CHECK NEXT ENTRY 
  
  
 DTIA     CON    0           ENTRY LENGTH 
 DTIB     CON    0           FWA OF DESCRIPTOR TABLE
 DTL      SPACE  4,10 
**        DTL - DUMP IAF POT LINK TABLE AND POTS. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
* 
*         USES   X - 1, 2, 3, 5, 6, 7.
*                A - 1, 2, 3, 5, 6, 7.
*                B - 2, 5, 6, 7.
* 
*         CALLS  CTS, FDW, GFL, LDC, PCM, PMD, SCM, SRA, SRD, SSB, UPS. 
* 
*         MACROS GETCM, PRINT.
  
  
 DTL      BSS    0           ENTRY
          RJ     SCM         SET CENTRAL MEMORY 
          SX1    CPAS        GET IAF FL, RA 
          RJ     GFL
          SA7    DTLA        SAVE LWA+1 OF IAF FIELD LENGTH 
          RJ     SRA         SET IAF CONTROL POINT RA 
          RJ     SSB         CLEAR PRINT STRING BUFFER
          RJ     LDC         FORCE PAGE EJECT 
  
*         DUMP POT LINK TABLE.
  
          PRINT  (=2C  )
          PRINT  (=C*          POT LINK TABLE*) 
          PRINT  (=2C  )
          MX6    1           PRESET FIRST CALL TO *SRD* 
          SA6    SRDA 
          SX6    B0 
          SA6    DTLB        CLEAR PLT LINK ORDINAL 
          SA6    SRDC+4      SET DASHED LINE TO 40 CHARACTERS 
          SA5    SSBF+/REM/VPLP  GET PLT POINTER WORD 
          SA2    RC          GET IAF REFERENCE ADDRESS
          SX6    X5          SAVE LWA+1 PLT 
          SA6    LW 
          AX5    24          SAVE FWA PLT 
          SX6    X5 
          SA6    FW 
          SX3    X5 
          IX3    X2+X3
          AX5    24 
          RJ     PCM         READ PLT INTO CORE 
          GETCM  BUF,X5 
 DTL1     SA1    DTLB        CHECK FOR REPEATED DATA
          SX1    X1+BUF 
          SB5    1
          RJ     SRD
          NZ     X1,DTL2     IF REPEAT SENSED 
          SB6    6           FORMAT PLT WORD ADDRESS
          SB7    PRBF 
          SA1    FW 
          LX1    -18
          RJ     CTS
          SB7    B7+B1       FORMAT PLT LINK ORDINAL
          SX6    1R+
          SA6    B7 
          SB7    B7+B1
          SA1    DTLB 
          LX1    -10
          SB6    4
          RJ     CTS
          SB7    B7+2        FORMAT PLT WORD
          SA2    =4000005B
          AX1    2
          SA1    X1+BUF 
          RJ     FDW
          PRINT  CCCH,B7-CCCH 
 DTL2     SA1    DTLB        INCREMENT PLT INDEX
          SX7    X1+B1
          SA7    A1 
          SA1    FW          INCREMENT PLT WORD ADDRESS 
          SX6    X1+1 
          SA6    A1 
          SA1    LW          CHECK IF ALL OF PLT DUMPED 
          IX7    X6-X1
          NG     X7,DTL1     IF MORE TO DUMP
          SA1    SRDC+3      RESET DASHED LINE TO 136 CHARACTERS
          BX6    X1 
          SA6    A1+B1
  
*         DUMP POTS IN *E* FORMAT.
  
          PRINT  (=2C  )
          PRINT  (=C*          POTS*) 
          PRINT  (=2C  )
          SA3    SSBF+/REM/VBMP  GET POT STORAGE FWA
          SA2    RC          GET IAF REFERENCE ADDRESS
          SX6    X3 
          SA6    CPRA+1 
          IX3    X2+X3
          RJ     PCM         POSITION TO POT STORAGE
          SX6    2
          SA6    CPRA+3      SET NO SUPPRESSION OF REPEATED DATA
          SA6    A6+B1       SET *E* FORMAT 
          SX6    B0 
          SA6    CPRA+5      COMPUTE COLUMN LENGTH
          SA6    CPRA+6      SET NO INVERTED ADDRESS
          SA6    CPRA+2      SET TO DUMP FROM DUMP FILE 
          SX6    -1 
          SA6    DTLB        PRESET POT NUMBER
 DTL3     SB7    PRBF        PRINT POT NUMBER 
          SA2    =4LPOT 
          SB6    4
          RJ     UPS
          SB6    4
          SA1    DTLB        INCREMENT POT NUMBER 
          SX6    X1+B1
          SA6    A1 
          SX1    X6 
          LX1    -12
          RJ     CTS
          PRINT  CCCH,B7-CCCH 
          SA1    CPRA+1      SET POT FWA
          SX7    X1 
          SA7    A1-B1
          SX6    X1+8        SET POT LWA+1
          SA6    A1 
          SB2    A7 
          RJ     PMD         PROCESS MEMORY DUMP
          SA2    DTLA        LWA+1 OF IAF FL
          SA1    CPRA+1      LWA+1 OF LAST DUMPED POT 
          IX5    X1-X2
          ZR     X5,DTL4     IF ALL POTS DUMPED 
          NG     X5,DTL3     IF MORE TO DUMP
          PRINT  (=2C  )
          SB7    PRBF 
          SB6    49 
          SA2    =49L*********WARNING -  LAST POT OVERFLOWS IAF FL BY 
          RJ     UPS
          SB6    1           PRINT POT OVERFLOW 
          SX1    X5 
          LX1    -3 
          RJ     CTS
          SA2    =5LWORDS 
          SB6    5
          SB7    B7+B1
          RJ     UPS
 DTL4     SB2    A0 
          JP     B2          RETURN 
  
 DTLA     BSS    1           LWA+1 OF POT MEMORY  (LWA+1 IAF FL)
 DTLB     BSS    1           PLT INDEX AND LINK ORDINAL/POT NUMBER
 DTP      SPACE  4,7
**        DTP - DUMP IAF PPUS.
* 
*         ENTRY  A0 = RETURN ADDRESS. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  ASP. 
  
  
 DTP      SX6    DTPA 
          JP     ASP
  
 DTPA     VFD    18/3LTLX,42/0
          VFD    18/3L1TA,42/0
          VFD    18/3L1TN,42/0
          VFD    18/3L1TO,42/0
          VFD    18/3L1RO,6/0,1/1,18/0,5/TXOT,12/0
          VFD    18/3L1RI,6/0,1/1,18/0,5/TXOT,12/0
          VFD    60/-1       END OF PARAMETER BLOCK 
 DTQ      SPACE  4,13 
**        DTQ - DUMP TEN BYTES IN *Q* FORMAT. 
* 
*         ENTRY  B2 = BYTE BUFFER ADDRESS.
*                B7 = PRINT STRING ADDRESS. 
*                X4 = CURRENT PPU ADDRESS.
* 
*         EXIT   B2 AND B7 ARE UPDATED. 
* 
*         SAVES  X - 3,4,5. 
*                B - NONE.
*                A - 0,3,4,5. 
* 
*         CALLS  CTS,UPS. 
  
  
 DTQ      SUBR
          BX1    X4 
          LX1    -15
          SB6    5
          RJ     CTS         CONVERT ADDRESS
          SB7    B7+2        SPACE 2
          SB4    10B         BYTE COUNTER 
 DTQ1     SA1    B2+         READ BYTE
          SB6    4
          NZ     X1,DTQ2     IF NOT A ZERO BYTE 
          SA2    =4L----
          RJ     UPS         STORE ZERO INDICATOR 
          JP     DTQ3 
  
 DTQ2     RJ     CTS         CONVERT BYTE 
 DTQ3     SB7    B7+B1
          SB2    B2+B1
          SB4    B4-1        COUNT BYTE 
          NZ     B4,DTQ1     IF MORE TO DUMP
  
*         SET INTERPRETATION. 
  
          SB5    B2 
          MX0    -6 
          SB2    B2-10B 
          SB7    B7+1 
 DTQ4     SA1    B2+
          SB3    2
 DTQ5     LX1    6
          BX6    -X0*X1 
          ZR     X6,DTQ6     IF COLON 
          SX7    X6-60B 
          NG     X7,DTQ7     IF NOT A PRINTER SLOWER DOWNER 
 DTQ6     SX6    1R 
 DTQ7     SA6    B7          STORE CHARACTER
          SB7    B7+B1
          SB3    B3-1 
          NZ     B3,DTQ5     IF ONE MORE CHARACTER
          SB2    B2+1 
          LT     B2,B5,DTQ4  IF MORE TO INTERPRET 
          JP     DTQX        EXIT 
 DTT      SPACE  4,10 
**        DTT - DUMP IAF TERMINAL TABLES. 
* 
*         ENTRY  (A0) = RETURN ADDRESS. 
*                (RC) = CONTROL POINT REFERENCE ADDRESS.
*                (TFMT) = MESSAGE STATUS TABLE FORMAT POINTERS. 
*                (TFTT) = TERMINAL TABLE FORMAT POINTERS. 
* 
*         USES   X - ALL. 
*                A - 1, 2, 5, 6, 7. 
*                B - 2, 6, 7. 
* 
*         CALLS  CTS, GTD, PCM, PCW, UPS. 
* 
*         MACROS ALLOC, GETCM, PRINT. 
  
  
 DTT      SX6    A0          SAVE RETURN ADDRESS
          SA6    DTTF 
          PRINT  (=2C  )
          PRINT  (=C*          IAF TERMINAL TABLES*)
  
*         READ MESSAGE STATUS TABLE INTO CORE.
  
          SA2    RC          GET FWA MSG STATUS TABLE 
          SA1    SSBF+/REM/VMST 
          AX1    24 
          IX3    X1+X2
          SA5    SSBF+/REM/VNTP  GET FWA NETWORK ENTRIES
          SB2    24D
          AX0    X5,B2
          SX6    X3+         PRESET FWA NETWORK ENTRIES 
          SA6    DTTE+1 
          SX6    X6-1 
          SA6    A6-B1
          RJ     PCM         POSITION TO FIRST MST NETWORK ENTRY
          IX2    X5-X0       SET NETWORK TERMINAL TABLE ENTRY COUNT 
          SX2    X2+B1
          GETCM  BUF+/REM/VTTL,X2 
  
*         INITIALIZE DUMP OF TERMINAL TABLES. 
  
          SA1    SSBF+/REM/VTTP 
          SX2    X1          LWA+1
          AX1    24 
          SX6    X1          FWA
          IX4    X2-X6
          NG     X4,DTT2     IF (LWA+1) .LT. (FWA)
          SX6    X6-/REM/VTTL 
          SA6    DTTA        PRESET FWA OF FIRST TABLE
          SX5    /REM/VTTL
          IX7    X4/X5
          SX6    -1 
          SA7    DTTB        TOTAL TERMINAL TABLES TO DUMP
          SA6    DTTC        PRESET TERMINAL NUMBER 
          SA2    RC 
          IX3    X1+X2
          RJ     PCM         POSITION TO FIRST TERMINAL TABLE 
  
*         DUMP ONLY THOSE TERMINAL TABLES WITH IMPORTANT INFORMATION. 
  
 DTT1     SA2    DTTC        UPDATE TERMINAL NUMBER 
          SX6    X2+1 
          SA6    A2 
          SA1    DTTB 
          IX3    X6-X1
          ZR     X3,DTT3     IF ALL TABLES DUMPED 
          SA1    DTTA        SET NEXT TERMINAL FWA
          SX6    X1+/REM/VTTL 
          SA6    DTTA 
          SA1    DTTE        INCREMENT MSG STATUS TABLE INDEX 
          SX6    X1+B1
          SA6    A1 
          GETCM  BUF,/REM/VTTL  READ TERMINAL TABLE 
          SB7    /REM/VTTL   CHECK FOR EMPTY TERMINAL TABLE 
          SB6    -1 
 DTT1.1   SB6    B6+1 
          EQ     B6,B7,DTT1  IF EMPTY TABLE FOUND 
          SA1    BUF+B6      READ TABLE ENTRY 
          SB2    B6-/REM/VROT 
          NZ     B2,DTT1.2   IF NOT STATUS WORD 
          SX1    X1-1        ALLOW FOR STATUS BIT 
 DTT1.2   ZR     X1,DTT1.1   IF ONLY STATUS BIT SET 
          PRINT  (=2C  )
          SB7    PRBF 
          SA2    =5HTERM
          SB6    5
          RJ     UPS         STORE IN PRINT STRING
          SB6    4
          SA1    DTTC 
          LX1    -12
          RJ     CTS         CONVERT TERMINAL NUMBER
          PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
          SA1    DTTA 
          BX6    X1 
          BX2    -X1
          SB2    X2+BUF      SET CORE ADDRESS OF TABLE DATA 
          SA6    FW          SET PRINT ADDRESS
          SA1    TFTT        FORMAT TABLE POINTERS
          RJ     GTD         GENERATE DETAILED TABLE DUMP 
  
*         DUMP MESSAGE STATUS TABLE ENTRY, IF NETWORK TERMINAL TABLE. 
  
          SA1    SSBF+/REM/VNTP  GET FIRST NETWORK TERMINAL NUMBER
          SA2    DTTC 
          AX1    24 
          SX1    X1+
          IX1    X2-X1
          NG     X1,DTT1     IF MUX TERMINAL TABLE
          PRINT  (=2C  )
          SA1    DTTE        SET MSG STATUS TABLE ENTRY ADDRESS 
          SX6    X1+
          SA6    FW 
          SX1    BUF+/REM/VTTL  SET CORE ADDRESS OF TABLE DATA
          SA2    DTTE+1 
          IX1    X1-X2
          SB2    X1+
          SA1    TFMT        SET NETWORK FORMAT TABLE POINTERS
          RJ     GTD         GENERATE DETAILED DUMP OF MST WORD 
          EQ     DTT1        DUMP NEXT TERMINAL TABLE 
  
*         PRINT TERMINAL TABLE BOUNDARY ADDRESSES, IF NO TABLES FOUND.
  
 DTT2     SA5    DTTD 
          RJ     PCW         PRINT CONTENTS OF *VTTP* WORD
 DTT3     SA1    DTTF        RESTORE RETURN ADDRESS 
          SB2    X1+
          JP     B2          RETURN 
  
 DTTA     BSS    1           FWA OF TERMINAL TABLE
 DTTB     BSS    1           NUMBER OF TERMINALS TO DUMP
 DTTC     BSS    1           NUMBER OF TERMINALS DUMPED 
 DTTD     VFD    36/6L*VTTP*,6/0,18//REM/VTTP  PARAMETER LIST FOR PCW 
          DATA   40HIAF TERMINAL TABLE FWA, LWA+1 
          VFD    60/0 
 DTTE     BSS    1           MSG STATUS TABLE ENTRY ADDRESS 
          BSS    1           FWA MSG STATUS TABLE 
 DTTF     BSS    1           SAVED RETURN ADDRESS 
 ECS      SPACE  4,10 
**        ECS - PROCESS *ECS* RECORD. 
* 
*         ENTRY  VIA UNCONDITIONAL JUMP.
* 
*         EXIT   TO *CMP1* TO READ THE *ECS* RECORD.
* 
*         USES   X - 1, 6.
*                A - 1, 6.
  
  
 ECS      SA1    BUF+1       TRANSFER TITLE 
          BX6    X1 
          SA6    TITL2
          SA1    BUF         GET WORD COUNT 
          MX6    -12
          BX6    -X6*X1      WORD COUNT/1000B 
          SA2    ECSA        3LESM = ESM RECORD HDR 
          BX2    X2-X1       COMPARE WITH EDD RECORD HDR
          MX0    18D         MASK 3 CHARACTERS
          BX2    X2*X0       RELEVANT PART OF COMPARE 
          NZ     X2,CMP1     IF NOT *ESM* RECORD
          LX6    3           CONVERT WORD COUNT 
          EQ     CMP1        READ *ESM* RECORD
  
 ECSA     DATA   3LESM       *ESM* RECORD HEADER
 ESM      EQU    ECS
 ERF      SPACE  4,15 
**        ERF - POSITION TO EOR ON FILE F.
* 
*         EXIT   TO *PPE1* IF PREMATURE EOF.
* 
*         USES   A - 1. 
*                X - 1. 
* 
*         CALLS  RBH. 
  
  
 ERF      SUBR               ENTRY/EXIT 
 ERF1     SA1    EORF 
          NG     X1,ERFX     IF AT EOR
          RJ     RBH         READ BLOCK OR HEADER 
          ZR     X1,ERF1     IF NOT EOF 
          EQ     PPE1        PREMATURE EOF
 ERS      SPACE  4,15 
**        ERS - END RECORD ON S-FILE. 
* 
*         ENTRY  (ID)   = RECORD ID.
*                (RWCS) = RECORD LENGTH.
* 
*         EXIT   BUFFER WRITTEN TO *S*. 
*                *TDIR* DIRECTORY ENTRY MADE. 
*                (RWCS) = 0.
* 
*         USES   A - 1, 2, 5, 6, 7. 
*                X - 1, 2, 5, 6, 7. 
* 
*         MACROS ADDWORD, WRITER. 
  
  
 ERS      SUBR               ENTRY/EXIT 
          WRITER S,R         WRITE BUFFER TO FILE 
          SA1    ID 
          ADDWRD TDIR,X1     PUT RECORD ID IN DIRECTORY ENTRY 
          ADDWRD A0,X1-X1    CLEAR DIRECTORY ENTRY WORD 2 
          SA5    ERSA        RANDOM INDEX OF RECORD 
          SA2    RWCS 
          LX2    30 
          BX6    X2+X5
          SA6    A6 
          SX7    B0          RESET RECORD LENGTH
          SA7    RWCS 
          SX6    ERSA 
          SA6    S+6         GET RANDOM INDEX OF NEXT RECORD
          EQ     ERSX        RETURN 
  
  
 ERSA     DATA   1           CURRENT RANDOM INDEX 
 EVA      SPACE  4,10 
**        EVA - EXPAND VIRTUAL ADDRESS. 
* 
*         ENTRY  (X6) = PROCESS VIRTUAL ADDRESS.
* 
*         EXIT   (X6) = SEGMENT NUMBER. 
*                (X7) = BYTE OFFSET.
*                (X2) = 0, IF THE ADDRESS IN X6 IS THE NIL POINTER. 
* 
*         USES   X - 1, 2, 6, 7.
*                A - 1. 
  
  
 EVA      SUBR               ENTRY/EXIT 
          SA1    EVAA 
          BX2    X6*X1
          BX2    X2-X1
          ZR     X2,EVAX     IF NIL POINTER 
          MX2    -32-12 
          BX7    -X2*X6      ISOLATE BYTE OFFSET
          BX2    X2*X6       ISOLATE RING NUMBER
          BX6    X1*X7       ISOLATE SEGMENT NUMBER 
          BX2    X1*X2
          ZR     X2,ERR45    IF RING ZERO 
          JP     EVAX        RETURN 
  
 EVAA     DATA   0#FFFF80000000  NIL POINTER
 FAC      SPACE  4,13 
**        FAC - FIND ASSIGNED CHANNEL.
* 
*         ENTRY  (B2) = PPU NUMBER. 
*                (BUF - BUF+MXCH) = CHANNEL RESERVATION BYTES 
*                  FROM CHANNEL STATUS TABLE, ONE BYTE PER WORD,
*                  LEFT JUSTIFIED.
* 
*         EXIT   (X1) = NUMBER OF ASSIGNED CHANNEL. 
*                     .LT. 0, IF NO MORE CHANNELS ASSIGNED. 
* 
*         USES   X - 0, 1, 2, 3, 6. 
*                A - 1, 3, 6. 
*                B - 3, 5.
  
  
 FAC3     MX6    0           CLEAR RESERVATION ENTRY
          SA6    B3 
          SX1    B3-BUF      SET ASSIGNED CHANNEL NUMBER
  
 FAC      SUBR
          SX2    B2          CHANNEL NUMBER 
          MX0    -6 
          SX3    X2-20B 
          SB3    BUF         CHANNEL TABLE ADDRESS
          SB5    B3+MXCH     CHANNEL STATUS TABLE LWA+1 
          SA1    IC 
          ZR     X1,FAC0     IF NOT CPP 
          SX2    X2+24B 
          JP     FAC1        PROCESS CHANNELS FOR CPP-S 
  
 FAC0     NG     X3,FAC1     IF NOT PP 20 - 31
          SX2    X2-20B+12B  CORRECT PPU INDEX
 FAC1     SA3    B3+         READ TABLE 
          LX3    12 
          BX3    -X0*X3 
          ZR     X3,FAC2     IF CHANNEL NOT ASSIGNED
          BX3    X2-X3
          ZR     X3,FAC3     IF ASSIGNED TO THIS PPU
 FAC2     SB3    B3+B1
          LE     B3,B5,FAC1  IF MORE TABLE ENTRIES
          SX1    -B1         SET NO MORE CHANNELS ASSIGNED
          JP     FACX        EXIT 
 FBB      SPACE  4,25 
**        FBB - FILL BYTE BUFFER. 
* 
*         ENTRY  (B2) = PARAMETER BLOCK ADDRESS.
*                     +0 = FWA OF DUMP. 
*                     +1 = LWA OF DUMP. 
* 
*         BUFFER CONSISTS OF TWO WORD ENTRIES.
* 
*         EITHER -
*         28/ADDRESS,16/BYTE1,16/BYTE2
*         28/0      ,16/BYTE3,16/BYTE4
* 
*         OR FOR REPEATED WORDS - 
*         60/-0 
*         60/ 
* 
*         EXIT   (X1) = 2* WORDS IN BUFFER. 
*                (PARAMETER BLOCK+0) = NEW FWA. 
* 
*         USES   X - ALL. 
*                A - ALL. 
* 
*         CALLS  CPC, CPS, NXB. 
  
  
 FBB      SUBR               ENTRY/EXIT 
          SX1    10          CHECK FOR MINIMUM OF 10 WORDS
          RJ     CPS         CHECK PAGE SPACE 
          SX3    6
          IX2    X6*X3       MAXIMUM SIZE OF BUFFER FOR SIZE OF PAGE
          SA1    B2+B1       LWA+1 OF DUMP
          BX6    X1 
          SA6    FBBA 
          SA0    B2          SAVE PARAMETER ADDRESS 
          SX6    BUF         BUFFER POINTER 
          SA6    A6+B1
          IX7    X6+X2       MAXIMUM LWA+1 OF BUFFER
          SA7    A6+B1
 FBB1     RJ     NXB         GET UPPER PARCEL OF WORD 
          SA5    A0          CURRENT ADDRESS
          SX3    8
          MX2    -32
          IX6    X3+X5       INCREMENT ADDRESS
          BX5    -X2*X5 
          LX5    16 
          SA6    A0 
          IX5    X1+X5       COMBINE ADDRESS WITH DATA
          RJ     NXB         READ SECOND PARCEL OF WORD 
          LX5    16 
          BX0    X5+X1
          RJ     NXB         READ THIRD PARCEL OF WORD
          BX5    X1 
          RJ     NXB         READ LAST PARCEL OF WORD 
          LX5    16 
          BX7    X5+X1
          SA1    FBBD        DATA FROM LAST WORD
          SA2    A1+B1
          BX6    X0 
          MX3    -32
          SA6    A1          REFRESH FBBD 
          SA7    A2 
          BX1    X6-X1
          SA4    FBBB        BUFFER POINTER 
          BX2    X7-X2
          SA6    X4 
          SA7    A6+B1
          BX1    -X3*X1      DO NOT COMPARE ADDRESSES 
          IX3    X1+X2
          SX6    A7+B1       NEW BUFFER POINTER 
          SA6    A4 
          NZ     X3,FBB2     IF DATA NOT REPEATED 
          SX2    X4-BUF 
          ZR     X2,FBB2     IF FIRST DATA IN BUFFER
          MX7    1
          SA7    X4          STORE FLAG IN BUFFER 
          SA1    X4-2        CHECK IF FLAG ALREADY SAVED
          PL     X1,FBB3     IF NO FLAG PRESENT YET 
          SX6    A7 
          SA6    A4          RESTORE NEW BUFFER POINTER 
 FBB2     SA2    A4+B1       MAXIMUM LWA OF BUFFER
          IX3    X6-X2
          PL     X3,FBB4     IF BUFFER FULL 
 FBB3     SB2    A0 
          RJ     CPC         CHECK PAGE CHANGE
          PL     X3,FBB4     IF PAGE NOT VALID
          SA1    FBBA        LWA+1 OF DUMP
          SA5    A0          CURRENT BYTE ADDRESS 
          IX6    X5-X1
          NG     X6,FBB1     IF NOT END OF DATA 
 FBB4     SA1    FBBB 
          SA2    A1+B1
          SX1    X1-BUF      COMPUTE AMOUNT DATA IN BUFFER
          EQ     FBBX        RETURN 
  
  
 FBBA     DATA   0           LWA+1 OF DUMP
 FBBB     DATA   0           BUFFER POINTER 
 FBBC     DATA   0           MAXIMUM LWA+1 OF BUFFER
 FBBD     BSS    2           PREVIOUS WORD PRINTED
 FBP      SPACE  4,11 
**        FBP - FIND BYTE POSITION. 
* 
*         ENTRY  (RI) = RANDOM ADDRESS OF CURRENT RECORD. 
*                (X3) = DESIRED BYTE NUMBER.
* 
*         EXIT   BUFFER POSITIONED AT DESIRED 16 BIT BYTE.
* 
*         USES   X - 2, 3, 4, 5, 6. 
*                A - 6. 
*                B - 7. 
* 
*         CALLS  PDF, NXB.
  
  
 FBP      SUBR               ENTRY/EXIT 
          SX4    15 
          BX2    X3 
          IX3    X3/X4
          SX4    15 
          IX5    X3*X4
          IX5    X2-X5       BYTE POSITION WITHIN FOUR WORD GROUP 
          IX5    X4-X5
          LX3    2           WORD OFFSET OF FOUR WORD GROUP 
          RJ     PDF         POSITION DUMP FILE 
          SX6    B0 
          SA6    NXBA 
          SA6    A6+B1
          RJ     NXB
          BX6    X5          SAVE BYTE OFFSET INTO FOUR WORD STACK
          SA6    NXBB 
          EQ     FBPX        RETURN 
 FDW      SPACE  4,11 
**        FDW - FORMAT DATA WORD. 
* 
*         ENTRY  X1 = DATA WORD.
*                B7 = PRINT STRING ADDRESS. 
*                X2 = 24/0,18/DIGITS PER BYTE,18/BYTES PER WORD.
* 
*         USES   X - 0,1,2,6,7. 
*                B - 5,6,7. 
*                A - 6,7. 
* 
*         CALLS  CTS. 
  
  
 FDW      SUBR
          SB5    X2          NUMBER OF BYTES
          AX2    18 
          SX6    1R          PRESET SPACE 
 FDW1     SB6    X2+         DIGIT COUNT
          RJ     CTS         CONVERT ONE BYTE 
          SA6    B7          SPACE 1
          SB7    B7+B1
          SB5    B5-1 
          NZ     B5,FDW1     IF MORE BYTES
          JP     FDWX        EXIT 
 FEM      SPACE  4,10 
**        FEM - FORMAT ENTRY POINT MAP LINE.
* 
*         ENTRY  X5 = LINE INDEX. 
*                PPU DATA IS AT *PBUF*. 
* 
*         SAVES  X - 5. 
*                B - 1. 
*                A - 0,5. 
* 
*         CALLS  CTS,RPB,UPS. 
  
  
 FEM1     ZR     X2,FEMX     IF NO MESSAGE
          SB6    X2-3 
          PL     B6,FEMX     IF NO MESSAGE
          SA3    APPF 
          LX7    X2,B1
          IX2    X2+X7
          ZR     X3,FEMX     IF NOT DUMPING PP SAVE AREA DATA 
          SA2    FEMB-3+X2   READ MESSAGE 
          SB6    28 
          SB7    PRBF+4 
          RJ     UPS         SET NAME IN PRINT STRING 
  
 FEM      SUBR
          SX2    X5-7 
          PL     X2,FEM1     IF END OF ENTRY POINTS.
          SA2    X5+FEMA     READ ENTRY POINT NAME,ADDRESS
          SB6    3
          SB7    PRBF+10
          RJ     UPS         SET NAME IN PRINT STRING 
          BX1    X2 
          SB6    4
          SB7    B7+2 
          RJ     CTS         CONVERT LOCATION 
          MX2    -12
          BX1    -X2*X1 
          SB6    B7          SAVE B7
          RJ     RPB         READ RETURN ADDRESS FROM PPU 
          SB7    B6+2 
          SB6    4
          BX1    X6 
          RJ     CTS         CONVERT RETURN ADDRESS 
          JP     FEMX        EXIT 
  
 FEMA     BSS    0           RESIDENT ENTRY POINT TABLE 
          LOC    0
  
          VFD    18/3LFTN,12/FTN,30/0 
          VFD    18/3LDFM,12/DFM,30/0 
          VFD    18/3LEXR,12/EXR,30/0 
          VFD    18/3LSMS,12/.SMS,30/0
          VFD    18/3LRDS,12/RDS,30/0 
          VFD    18/3LWDS,12/WDS,30/0 
          VFD    18/3LEMS,12/.EMS,30/0
          LOC    *O 
  
 FEMB     DATA   28H* ENTRY POINTS AND CONSTANTS
          DATA   28H  MAY NOT HAVE BEEN SAVED.
 FFD      SPACE  4,10 
**        FFD - FIND FWA OF DISK BUFFER AREA IN EXTENDED MEMORY.
* 
*         ENTRY  (X5) = MACHINE ID, LEFT-JUSTIFIED AND ZERO-FILLED. 
* 
*         EXIT   (DA) = (X6) = FWA OF DISK BUFFER AREA. 
* 
*         ERROR  TO *ERR36*, IF INCORRECT MACHINE ID. 
* 
*         USES   X - 1, 2, 6. 
*                A - 1, 6.
*                B - 2. 
* 
*         CALLS  POM, SEC.
* 
*         MACROS GETCM. 
  
  
 FFD      SUBR               ENTRY/EXIT 
          RJ     SEC         SET EXTENDED MEMORY
          SX6    20B         SET EM SECTOR LIMIT
          SA1    EM 
          SB2    X1 
          LX6    B2 
          SX6    X6+ETLT*100B+IBDT
          SA6    CPRA 
          SB2    A6 
          RJ     POM         POSITION TO FWA *IBDT* 
          GETCM  FFDA,MXMF   READ *IBDT* INTO CORE
          SB2    MXMF        PRESET *IBDT* INDEX
 FFD1     SB2    B2-1 
          NG     B2,ERR36    IF AT END OF *IBDT*
          SA1    B2+FFDA
          BX2    X1-X5
          AX2    48 
          NZ     X2,FFD1     IF MACHINE ID NOT FOUND
          AX1    12 
          MX6    -12
          BX6    -X6*X1 
          LX6    9
          SA6    DA          STORE FWA OF DISK BUFFER AREA
          EQ     FFDX        RETURN 
  
 FFDA     BSS    MXMF        CORE BUFFER FOR *IBDT* 
 FLC      SPACE  4,9
**        FLC - FORMAT PPU LOW CORE ANALYSIS LINE.
* 
*         ENTRY  (X5) = LINE NUMBER.
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 2, 6, 7. 
* 
*         CALLS  CPN, CTS, GRV, RPB, UPS. 
  
  
 FLC7     RJ     GRV         GET R-REGISTER VALUE 
          SB7    B7+3 
          SB6    8
          RJ     CTS         CONVERT AND STORE IN PRINT LINE
          BX3    X1          SAVE ACTUAL
          SA1    FLCB+3      GET CP ADDRESS 
          ZR     X1,FLC4     IF PPU NOT ATTACHED
          SA1    FLCB+5      GET EXPECTED R-REGISTER
          MX2    24 
          LX1    12 
          BX1    X2*X1
          SB6    8
          EQ     FLC3.1      COMPARE VALUES 
  
 FLC      SUBR               ENTRY/EXIT 
          SA2    X5+FLCA
          SB6    7
          SB7    PRBF+35
          RJ     UPS         SET NAME AND LOCATION
          LX2    18 
          SX1    X2          PPU ADDRESS
          ZR     X1,FLC7     IF R-REGISTER
          SB6    B7          SAVE PRINT STRING ADDRESS
          RJ     RPB         READ LOCATION CONTENTS 
          SB7    B6+3 
          SB6    4
          BX1    X6 
          RJ     CTS         CONVERT CONTENTS 
          ZR     X5,FLC1     IF LINE 0
          SB2    X5+FLC6-1
          JP     B2          VERIFY WORD FOR LINES 1 - 9
  
*         COMPUTE EXPECTED LOW CORE VALUES. 
  
 FLC1     SA4    PC          GET PP COMMUNICATION AREA POINTER
          RJ     CPN         CONVERT PP NUMBER
          LX6    3
          IX6    X6+X4       PP INPUT REGISTER ADDRESS
          SA3    F.TCMT 
          IX4    X6+X3
          SA6    FLCB        SAVE 
          SX7    X6+B1
          SA7    A6+B1       SAVE OUTPUT REGISTER ADDRESS 
          SX6    X7+B1
          SA6    A7+B1       SAVE MESSAGE AREA ADDRESS
          SA4    X4          READ INPUT REGISTER
          MX2    -5 
          AX4    36 
          BX6    -X2*X4      CONTROL POINT NUMBER 
          LX6    7           CONTROL POINT AREA ADDRESS 
          SA6    A6+B1       SAVE 
          ZR     X6,FLC4     IF PPU NOT ASSIGNED TO CONTROL POINT 
          IX4    X6+X3
          SA2    OP          ADD PCPA OFFSET
          IX4    X2+X4
          SA2    X4+FLSW     GET RA/100 AND FL/100
          BX6    X2 
          SA6    A6+B1       SAVE RA/100 AND FL/100 
          SA3    CE 
          SA4    A2+B1       GET R-REGISTER 
          ZR     X3,FLC2.1   IF NO CM EXTENSION 
          SA2    A2+1 
 FLC2.1   LX2    -12
          BX6    X4 
          SA6    A6+1        SAVE R-REGISTER
  
*         COMPARE ACTUAL AND EXPECTED VALUES. 
  
 FLC3     BX3    X1          SAVE ACTUAL DATA 
          MX1    -12
          BX1    -X1*X2      EXPECTED DATA
          LX1    -12
          SB6    4
 FLC3.1   SB7    B7+2 
          RJ     CTS         FORMAT EXPECTED DATA 
          BX1    X1-X3
          ZR     X1,FLCX     IF ACTUAL = EXPECTED 
          SA2    =27H  *** WARNING ***
          SB6    27 
 FLC3.2   RJ     UPS         SET MESSAGE
          JP     FLCX        EXIT 
  
*         PPU NOT ATTACHED - IGNORE CL, RA AND FL.
  
 FLC4     SA2    =4L----
          SB6    4
          SB7    B7+2 
          JP     FLC3.2      SET MESSAGE
  
*         CHECK CONTROL POINT RELATED DATA. 
  
 FLC5     SA3    FLCB+3      READ CONTROL POINT AREA ADDRESS
          ZR     X3,FLC4     IF PPU NOT ATTACHED
          JP     FLC3        CHECK VALUE
  
*         SET EXPECTED VALUES.
  
 FLC6     BSS    0
  
+         SA2    FLCB+4      FL 
          JP     FLC5 
  
+         SX2    1           ON 
          JP     FLC3 
  
+         SX2    100B        HN 
          JP     FLC3 
  
+         SX2    1000B       TH 
          JP     FLC3 
  
+         SX2    3           TR 
          JP     FLC3 
  
+         SA2    FLCB+3      CP 
          JP     FLC5 
  
+         SA2    FLCB+0      IA 
          JP     FLC5 
  
+         SA2    FLCB+1      OA 
          JP     FLC5 
  
+         SA2    FLCB+2      MA 
          JP     FLC5 
  
  
 FLCA     BSS    0
          VFD    42/7LRA  55 ,18/RA 
          VFD    42/7LFL  56 ,18/FL 
          VFD    42/7LON  70 ,18/ON 
          VFD    42/7LHN  71 ,18/HN 
          VFD    42/7LTH  72 ,18/TH 
          VFD    42/7LTR  73 ,18/TR 
          VFD    42/7LCP  74 ,18/CP 
          VFD    42/7LIA  75 ,18/IA 
          VFD    42/7LOA  76 ,18/OA 
          VFD    42/7LMA  77 ,18/MA 
          VFD    42/7LR-REG  ,18/0
  
 FLCB     BSS    0           EXPECTED LOW CORE DATA 
          LOC    0
  
          BSS    1           IA 
          BSS    1           OA 
          BSS    1           MA 
          BSS    1           CP 
          BSS    1           RA/100, FL/100 
          BSS    1           R-REGISTER 
          LOC    *O 
 FOL      SPACE  4,9
**        FOL - FORMAT ONE LINE OF *P* DUMP.
* 
*         ENTRY  X5 = ROW NUMBER. 
* 
*         SAVES  X - 5. 
*                B - NONE.
*                A - 5. 
* 
*         CALLS  CTS,UPS,WOF. 
  
  
 FOL      SUBR
          BX1    X5 
          SB6    2
          LX1    -6 
          SB7    PRBF+7 
          RJ     CTS         SET ROW ADDRESS IN LEFT BLOCK
          LX1    -6 
          SB6    B1+B1
          SB7    PRBF+71
          RJ     CTS         CONVERT FOR RIGHT BLOCK
          SB2    X5+BUF 
          SB7    PRBF+11
          SB3    2
 FOL1     SB4    10B
 FOL2     SB6    4           DIGIT COUNT
          SA1    B2+         READ BYTE
          NZ     X1,FOL3     IF NOT ZERO
          SA2    =4L----
          RJ     UPS         SET ZERO INDICATOR 
          JP     FOL4 
  
 FOL3     RJ     CTS         CONVERT BYTE 
 FOL4     SB2    B2+10B      ADVANCE ADDRESS
          SB7    B7+2        SPACE 2
          SB4    B4-1        COUNT BYTE 
          NZ     B4,FOL2     IF MORE BYTES IN THIS BLOCK
          SB7    B7+16       SPACE TO RIGHT BLOCK 
          SB3    B3-1 
          NZ     B3,FOL1     IF NOT DONE WITH RIGHT BLOCK 
          PRINT  CCCH,B7-CCCH-18
          JP     FOLX        EXIT 
 FON      SPACE  4,15 
**        FON - FORMAT PPU OVERLAY NAME LINE. 
* 
*         ENTRY  B4 = LINE INDEX. 
*                PPU DATA IS AT *PBUF*. 
* 
*         USES   X - 1, 2, 6, 7.
*                A - 1, 2.
*                B - 3, 6, 7. 
* 
*         SAVES  X - 5. 
*                A - 0, 5.
*                B - 1. 
* 
*         CALLS  RPB, UPS.
  
  
 FON      SUBR               ENTRY/EXIT 
          SB3    3
          GE     B4,B3,FONX  IF NO MORE NAMES TO FORMAT 
          SB7    B7+6        SET PRINT STRING ADDRESS 
          JP     FONA+B4     PROCESS APPROPRIATE LINE 
  
*         LIST LAST MAIN PROGRAM LOADED.
  
 FON1     SA2    =27HLAST MAIN PROGRAM LOADED - 
          SB6    27 
          RJ     UPS
          SX1    IR 
          SB6    B7+         SAVE PRINT STRING ADDRESS
          RJ     RPB         READ INPUT REGISTER BYTE 
          SX1    IR+1 
          BX7    X6          SAVE (IR)
          RJ     RPB
          LX6    -12
 FON2     BX2    X6+X7       SET PROGRAM NAME 
          SB7    B6          PRINT STRING ADDRESS 
          SB6    3
          RJ     UPS         SET NAME IN PRINT STRING 
          JP     FONX        EXIT 
  
*         LIST LAST OVERLAY LOADED. 
  
 FON3     SA2    =27HLAST OVERLAY LOADED      - 
          SB6    27 
          RJ     UPS
          SB6    B7+         SAVE B7
          SX1    PLLA 
          RJ     RPB         READ OVERLAY NAME
          SX1    PLLB 
          BX7    X6 
          RJ     RPB
          MX2    6
          BX7    -X2*X7 
          LX7    6
          LX6    -6 
          JP     FON2        SET NAME IN PRINT STRING 
  
*         LIST LAST MASS STORAGE DRIVER LOADED. 
  
 FON4     SA2    =27HLAST MASS STORAGE DRIVER - 
          SB6    27 
          RJ     UPS
          SB6    B7+
          SX1    MSD
          RJ     RPB         READ DRIVER IDENTIFICATION BYTE
          SX7    B0          ASSUME NO DRIVER 
          LX6    6           POSITION MASS STORAGE DRIVER INDEX 
          BX6    X1*X6
          LX6    6
          ZR     X6,FON2     IF NO DRIVER 
          SA1    TFON-1+X6   INDEX INTO DRIVER DESIGNATOR TABLE 
          BX6    X1 
          SX7    1R6
          LX7    -6 
          JP     FON2        PROCESS DRIVER NAME
  
 FONA     BSS    0           LINE PROCESSOR JUMP TABLE
+         JP     FON1        PRINT LINE 0 
+         JP     FON3        PRINT LINE 1 
+         JP     FON4        PRINT LINE 2 
  
 TFON     BSS    0           TABLE OF MASS STORAGE DRIVER DESIGNATORS 
          LOC    1
          ERRNZ  /MSP/LA6DI-*  ADJUST TABLE IF VALUE CHANGES
          VFD    6/0,12/2RDI,42/0  *6DI*
          ERRNZ  /MSP/LA6DJ-*  ADJUST TABLE IF VALUE CHANGES
          VFD    6/0,12/2RDJ,42/0  *6DJ*
          ERRNZ  /MSP/LA6DP-*  ADJUST TABLE IF VALUE CHANGES
          VFD    6/0,12/2RDP,42/0  *6DP*
          ERRNZ  /MSP/LA6DE-*  ADJUST TABLE IF VALUE CHANGES
          VFD    6/0,12/2RDE,42/0  *6DE*
          ERRNZ  /MSP/LA6DX-*  ADJUST TABLE IF VALUE CHANGES
          VFD    6/0,12/2RDX,42/0  *6DX*
          LOC    *O 
 FPB      SPACE  4,22 
**        FPB - FILL PAGE BUFFER. 
* 
*         ENTRY  (B2) = ADDRESS OF DUMP PARAMETERS.  PARAMETER BLOCK
*                         IS DOCUMENTED IN *PMD*. 
*                (LC) = CURRENT LINE COUNTER. 
*                (PD) = NUMBER OF LINES PER PAGE. 
* 
*         EXIT   (X1) = PAGE BUFFER LENGTH. 
*                PARAMETER BLOCK IS UPDATED.  FOR EACH WORD DUMPED, 
*                *BUF* CONTAINS A TWO WORD ENTRY -
* 
*                36/0,24/ADDRESS
*                60/DATA           FOR DATA, OR 
* 
*                60/MINUS 
*                60/GARBAGE        FOR REPEAT INDICATOR.
* 
*         USES   X - 1, 2, 3, 5, 6, 7.
*                A - 1, 2, 3, 5, 6, 7.
*                B - 5, 7.
* 
*         CALLS  CPS. 
* 
*         MACROS GETCM. 
  
  
 FPB      SUBR
          SA5    B2+6        SAVE INVERTED ADDRESS FLAG 
          BX6    X5 
          SA5    B2 
          SA6    FPBA 
          SX1    1
          RJ     CPS         CHECK PAGE SPACE 
          SX7    -1          SET SKIP FLAG
          SX3    6
          IX3    X3*X6       PAGE BUFFER LENGTH = 6*LINES 
          SB5    BUF         SET BUFFER POINTER 
          SB7    B5+X3       SET LWA+1
          SA7    FPBA+1 
 FPB1     SA1    A5+2 
          ZR     X1,FPB2     IF DATA NOT IN CORE
          SA2    X1          READ DATA WORD 
          SX6    X1+B1
          SA6    A1          UPDATE CORE ADDRESS
          BX6    X2          SET DATA WORD
          EQ     FPB3        PROCESS WORD 
  
 FPB2     GETCM              READ DATA FROM DUMP FILE 
 FPB3     SA3    FPBA        CHECK IF INVERTED ADDRESS IS PRESENT 
          SA2    A5+6 
          SX1    B1+
          ZR     X3,FPB3.1   IF INVERTED ADDRESS NOT PRESENT
          IX7    X2-X1       UPDATE INVERTED ADDRESS
          SA7    A2 
 FPB3.1   SA2    A5          GET DUMP ADDRESS 
          IX7    X2+X1
          SA7    A2 
          SA1    A2+3 
          SA3    FPBA+1 
          NZ     X1,FPB5     IF NO SUPPRESS REQUESTED 
          NG     X3,FPB5     IF FIRST TIME THROUGH LOOP 
          BX1    X6-X5       COMPARE WITH PREVIOUS WORD 
          ZR     X1,FPB4     IF DATA IS SAME OR LOGICAL OPPOSITE
          EQ     FPB5        STORE NEW WORD 
  
 FPB4     NG     X1,FPB5     IF DATA IS LOGICAL OPPOSITE
          NZ     X3,FPB7     IF REPEAT ALREADY FLAGGED
          MX6    1
          SA6    B5          STORE REPEAT FLAG
          SX6    B1          SET SKIPPING FLAG
          SA6    A3 
          EQ     FPB6        CONTINUE 
  
 FPB5     BX5    X6          SAVE WORD FOR NEXT COMPARE 
          SA6    B5+B1       STORE DATA WORD
          SX2    B1 
          IX6    X7-X2
          SA1    FPBA        GET INVERTED ADDRESS FLAG
          SA6    B5 
          MX7    0           CLEAR SKIP FLAG
          SA3    A5+6 
          SA7    FPBA+1 
          ZR     X1,FPB6     IF NO INVERTED ADDRESS 
          IX6    X3+X2
          SA6    B5          STORE ADDRESS
 FPB6     SB5    B5+2        ADVANCE BUFFER ADDRESS 
          GE     B5,B7,FPB8  IF BUFFER FULL 
 FPB7     SA1    A5+B1       LWA+1
          SA2    A5          FWA
          IX1    X2-X1
          NG     X1,FPB1     IF MORE TO DUMP
 FPB8     SX1    B5-BUF      SET BUFFER LENGTH
          EQ     FPBX        RETURN 
  
 FPBA     BSS    1           INVERTED ADDRESS FLAG
          BSS    1           SKIP FLAG
 FPL      SPACE  4,15 
**        FPL - FORMAT PPU COMMUNICATION REGISTER WORD. 
* 
*         ENTRY  (A5) = ADDRESS OF REGISTER WORD. 
*                (X5) = REGISTER WORD.
*                (B2) = PPU NUMBER. 
*                (B4) = LINE INDEX. 
*                (B7) = PRINT STRING ADDRESS. 
*                (IC) = *CPP* PROCESSING FLAG.
* 
*         USES   X - 0, 1, 2, 3, 6. 
*                A - 1, 2, 6. 
*                B - 6, 7.
* 
*         CALLS  CTS, FAC, FDW, SDI, UPS. 
  
  
 FPL      SUBR
          JP     FPLA+B4     PROCESS SELECTED LINE
  
 FPLA     BSS    0
          LOC    0
+         JP     FPL0 
+         JP     FPL3 
+         JP     FPL4 
+         JP     FPL5 
+         JP     FPL5 
+         JP     FPL5 
+         JP     FPL5 
+         JP     FPL5 
          LOC    *O 
  
*         PROCESS WORD 0. 
  
 FPL0     SA2    IC 
          ZR     X2,FPL1     IF NOT PROCESSING A CPP
          SX6    1RC
          SA6    B7-1 
 FPL1     SX6    1RP
          SA6    B7          *PP* TO PRINT STRING 
          SA6    A6+B1
          SB7    A6+1 
          SX1    B2 
          LX1    -6 
          SB6    2
          RJ     CTS         CONVERT PPU NUMBER 
          SB7    B7+3        SPACE 3
          BX2    X5 
          SB6    3
          RJ     UPS         PROGRAM NAME TO PRINT STRING 
          SX6    1R 
          SA6    B7+
          SB7    B7+3 
 FPL2     BX1    X5          DATA WORD TO PRINT STRING
          SA2    =4000005B
          RJ     FDW         FORMAT DATA WORD 
          SB6    10          CHARACTER COUNT
          BX2    X5          DATA WORD
          SB7    B7+B1
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          JP     FPLX        EXIT 
  
*         PROCESS WORD 1. 
  
 FPL3     SX6    1R          BLANK OUT PPU NUMBER 
          SA6    B7-1        CLEAR *C* FOR CPP-S
          SA6    B7 
          SA6    A6+B1
          SA6    A6+B1
          SA6    A6+B1
          SB7    A6+4 
          MX0    7
          LX0    -5 
          BX1    X0*X5       EXTRACT MTR FUNCTION CODE
          LX1    12 
          SX0    X1-MXFM-1
          SB6    4
          NG     X0,FPL3.1   IF FUNCTION WITHIN TABLE 
          SX1    MXFM        SET MAXIMUM FUNCTION CODE
 FPL3.1   SA2    TFTN+X1     READ CODE NAME FROM *COMDTFN*
          RJ     UPS         MTR FUNCTION NAME TO PRINT STRING
          SB7    B7+2 
          JP     FPL2        CONVERT DATA WORD
  
*         PROCESS WORD 2. 
  
 FPL4     SX6    1RC         *CL* TO PRINT STRING 
          SA6    B7+7 
          SX6    1RP
          SA1    A5-2        READ WORD 0
          MX0    -5 
          LX1    24 
          BX1    -X0*X1      CONTROL POINT NUMBER 
 FPL4.1   SA6    A6+B1
          SB7    A6+B1
          LX1    -6 
          SB6    2
          RJ     CTS         CONVERT CONTROL POINT NUMBER ASSIGNMENT
          SB7    B7+2 
          JP     FPL2        CONVERT DATA WORD
  
*         PROCESS WORDS 3 - 7.
  
 FPL5     RJ     FAC         FIND ASSIGNED CHANNEL
          NG     X1,FPL6     IF NO MORE CHANNELS ASSIGNED 
          SX6    1RC         *CH* TO PRINT STRING 
          SX3    X1-40B 
          NG     X3,FPL5.1   IF NOT PROCESSING A *CCH*
          SA6    B7+6 
 FPL5.1   SA6    B7+7 
          SX6    1RH
          JP     FPL4.1      CONVERT DATA WORD
  
 FPL6     SX6    1R 
          SA6    B7+6 
          SA6    A6+B1
          SA6    A6+B1
          SA6    A6+B1
          SA6    A6+B1
          SB7    A6+3 
          JP     FPL2        CONVERT DATA WORD
 FPO      SPACE  4,15 
**        FPO - FORMAT PP OPERATING REGISTERS LINE. 
* 
*         ENTRY  (X5) = LINE NUMBER.
*                (B7) = FWA OF STRING BUFFER. 
*                (CPRA+3) = HEX/OCTAL FLAG. 
* 
*         EXIT   (X6) = 0 IF END OF REGISTERS.
* 
*         USES   X - 1, 2, 6. 
*                A - 1, 2, 6. 
*                B - 6, 7.
* 
*         CALLS  CTS, HTS, UPS. 
  
  
 FPO3     LX1    59-15       DISPLAY HEX REGISTERS
          SB6    4
          SB7    B7+B1
          RJ     HTS
          SA1    A1+B1       GET Q-REGISTER 
          LX1    59-15
          SB6    4
          SB7    B7+3 
          RJ     HTS
          SA1    A1+B1       GET K-REGISTER 
          LX1    59-15
          SB6    4
          SB7    B7+4 
          RJ     HTS
          SA1    A1+B1       GET A-REGISTER 
          LX1    59-19
          SB6    5
          SB7    B7+3 
          RJ     HTS
  
 FPO      SUBR               ENTRY/EXIT 
          NZ     X5,FPO1     IF NOT FIRST LINE
          SX6    B0+         INITIALIZE REGISTER POINTER
          SA6    FPOA 
 FPO1     SA2    FPOA 
          SX6    X2-4 
          ZR     X6,FPOX     IF END OF REGISTERS
          SX1    X5-2 
          ZR     X1,FPOX     IF BETWEEN REGISTER SETS 
          SX6    X2+B1
          SA6    A2          UPDATE POINTER 
          LX2    2
          SA1    X2+PPOB     GET P-REGISTER 
          NG     X1,FPO1     IF NO REGISTERS PRESENT
          LX2    -1          SET DESCRIPTOR 
          ERRNZ  FPOBE-2     CODE DEPENDS ON VALUE
          SA2    X2+FPOB
          SB6    12 
          RJ     UPS
          SB7    B7+3 
          SA2    CPRA+3      GET FORMAT CODE
          SX6    2
          ZR     X2,FPO2     IF OCTAL 
          BX2    X6*X2
          ZR     X2,FPO3     IF HEX 
 FPO2     LX1    59-14       SET P-REGISTER 
          SB6    5
          RJ     CTS
          SA1    A1+B1       GET Q-REGISTER 
          LX1    59-14
          SB6    5
          SB7    B7+2 
          RJ     CTS
          SA1    A1+B1       GET K-REGISTER 
          LX1    59-17
          SB6    6
          SB7    B7+2 
          RJ     CTS
          SA1    A1+B1       GET A-REGISTER 
          LX1    59-17
          SB6    6
          SB7    B7+2 
          RJ     CTS
          EQ     FPOX        RETURN 
  
  
 FPOA     CON    0           REGISTER SET POINTER 
 FPOB     DATA   C* BEFORE IDLE*
 FPOBE    EQU    *-FPOB      ENTRY LENGTH 
          DATA   C*  AFTER IDLE*
          DATA   C*DFT BUFFER 1*
          DATA   C*DFT BUFFER 2*
 FPP      SPACE  4,13 
**        FPP - FIND PPU PROGRAM. 
* 
*         ENTRY  X4 = PROGRAM NAME. 
*                FI = 0 IF INITIAL ENTRY. 
*                   = CURRENT SEARCH INDEX IF NOT FIRST ENTRY.
* 
*         EXIT   X6 = PPU NUMBER. 
*                FI IS UPDATED. 
*                X1=FI=0 IF NO MORE PPS EXECUTING REQUESTED PROGRAM.
* 
*         SAVES  X - 5. 
*                B - 1,5,6,7. 
*                A - 0,5. 
  
  
 FPP      SUBR
          SA1    NP          GET NUMBER OF PP-S 
          SA2    PC          GET PP COMMUNICATION AREA POINTER
          SA3    IC 
          ZR     X3,FPP1     IF NOT DUMPING CPP-S 
          LX1    3
          IX2    X1+X2       SET CPP COMMUNICATION AREA POINTER 
          SA1    C4          GET NUMBER OF CPP-S
 FPP1     LX1    3
          SB4    X2 
          SB3    X1+B4       SET LWA+1 OF SEARCH AREA 
          MX0    18 
          SA1    FI          READ SEARCH INDEX
          SA2    F.TCMT 
          SB2    X1 
          NZ     X1,FPP2     IF NOT INITIAL ENTRY 
          SB2    B4          PRESET SEARCH INDEX
 FPP2     GE     B2,B3,FPP3  IF END OF SEARCH 
          SA1    X2+B2
          BX3    X1-X4
          BX3    X0*X3
          ZR     X3,FPP4     IF PROGRAM NAME MATCH
          SB2    B2+10B      ADVANCE SEARCH 
          EQ     FPP2        CONTINUE SEARCH
  
 FPP3     SX6    0
          SA6    FI          CLEAR SEARCH INDEX 
          SX1    0           SET END OF SEARCH
          JP     FPPX        EXIT 
  
 FPP4     SX6    B2+10B 
          SA6    FI          UPDATE SEARCH INDEX
          SX6    B2-B4
          AX6    3           SET PPU NUMBER 
          SX1    1           SET PPU FOUND
          SX7    X6-12B 
          NG     X7,FPPX     IF NOT PPUS 20 - 31
          SX6    X6+20B-12B  CORRECT PPU NUMBER 
          JP     FPPX        EXIT 
 FPR      SPACE  4,20 
**        FPR - FIND PROCESSOR RECORD.
* 
*         ENTRY  (X1) = THREE CHARACTER RECORD ID.
*                (X6) = RADIAL MCI FLAG.
* 
*         EXIT   (X2) = FIRST WORD OF TABLE DIRECTORY IF FOUND. 
*                     = 0 IF RECORD NOT FOUND.
*                (RI) = RANDOM INDEX. 
*                RADIAL MCI PRINTED IF (X6) .NE. 0 ON ENTRY.
* 
*         USES   X - 0, 1, 2, 3, 5, 6.
*                A - 1, 2, 3, 6.
*                B - 6, 7.
* 
*         CALLS  SSB, UPS.
* 
*         MACROS PRINT, SEARCH. 
  
  
 FPR      SUBR               ENTRY/EXIT 
          SA6    FPRA        SAVE RADIAL MCI FLAG 
          SA3    NR          NEXT DIRECTIVE TABLE ENTRY 
          MX0    18 
          ZR     X3,FPR1     IF FIRST RECORD
          SA2    X3          GET PREVIOUS RECORD ID 
          BX3    X1-X2
          BX3    X0*X3
          ZR     X3,FPR2     IF RECORD ID MATCHES PREVIOUS RECORD ID
 FPR1     SEARCH TDIR,X1,X0 
          ZR     X2,FPRX     IF RECORD ID NOT IN DIRECTORY
 FPR2     SA1    A2+C.TDIR   CHECK NEXT *TDIR* ENTRY
          BX1    X1-X2
          BX1    X0*X1
          SX6    A1 
          ZR     X1,FPR3     IF RECORD NAMES MATCH
          SX6    B0 
 FPR3     SA6    NR 
          SA3    A2+B1       SET RANDOM INDEX 
          BX6    X3 
          SA6    RI 
          SA1    FPRA 
          ZR     X1,FPRX     IF NOT TO DISPLAY THE RADIAL MCI 
          BX5    X2          SAVE FIRST WORD OF DIRECTORY ENTRY 
          MX0    -6          SET RADIAL MCI 
          AX2    36 
          BX6    -X0*X2 
          SA6    PRBF+13
          PRINT  (=2C  )
          SB7    PRBF 
          SA2    =13HRADIAL MCI = 
          SB6    13 
          RJ     UPS         UNPACK MESSAGE 
          PRINT  CCCH,15
          RJ     SSB         CLEAR STRING BUFFER
          PRINT  (=2C  )
          BX2    X5          RESTORE FIRST WORD OF ENTRY
          EQ     FPRX        RETURN 
  
  
 FPRA     CON    0           RADIAL MCI FLAG
 FPW      SPACE  4,15 
**        FPW - FORMAT CONTROL POINT PARAMETER LINE.
* 
*         ENTRY  (X1) = LINE INDEX. 
*                (CN) = CONTROL POINT NUMBER. 
*                (FW) = CONTROL POINT AREA ADDRESS. 
*                (GDBB) = DAYFILE BUFFER LENGTH.
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
* 
*         USES   X - 0, 1, 2, 3, 4, 6, 7. 
*                A - 1, 2, 3, 4, 6, 7.
*                B - 2, 3, 4, 5, 6, 7.
* 
*         CALLS  CNL, CTS, DMB, DOS, GCS, GDB, GEE, GFL, POM, SCM, UPS. 
* 
*         MACROS GETCM. 
  
  
 FPW      SUBR
          SB7    PRBF+1      SET PRINT STRING ADDRESS 
          SA2    F.TCMT 
          SA3    FW 
          IX3    X2+X3
          SB2    X3          SET CONTROL POINT AREA ADDRESS 
          SB3    X1+FPWA     SET JUMP TABLE ADDRESS 
          JP     B3          EXECUTE SELECTED PROCESSOR 
  
*         LINE 0 - USER NAME, SENSE SWITCHES. 
  
 FPW1     SA2    =45HUSER NAME                     SENSE SWITCHES 
          SB6    45 
          RJ     UPS         STORE HEADING
          SA2    B2+UIDW     READ USER NAME 
          SB6    7
          SB7    PRBF+21
          RJ     UPS         STORE USER NAME
          SA1    B2+SNSW     READ SENSE SWITCHES
          SB6    2
          SB7    PRBF+59
          LX1    -12
          RJ     CTS         CONVERT SENSE SWITCHES 
          JP     FPWX        EXIT 
  
*         LINE 1 - PRIMARY FILE NAME, CCL R1. 
  
 FPW2     SA2    =45HPRIMARY FILE                  CCL R1 
          SB6    45 
          RJ     UPS         STORE HEADING
          SA1    B2+TFSW     READ PRIMARY FILE EST POINTER
          SA2    F.TCMT 
          MX3    -12
          AX1    36 
          BX3    -X3*X1      FST ADDRESS
          ZR     X3,FPW3     IF NO PRIMARY FILE 
          IX1    X2+X3
          SA2    X1-1        READ FNT 
          SB6    7
          SB7    PRBF+21
          RJ     UPS         SET FILE NAME
 FPW3     SA1    B2+JCRW     READ CCL REGISTERS 
          LX1    -18
 FPW3.1   SB6    6
          SB7    PRBF+55
          RJ     CTS         CONVERT REGISTER 
          JP     FPWX        EXIT 
  
*         LINE 2 - ORIGIN TYPE, CCL R2. 
  
 FPW4     SA2    =45HORIGIN TYPE                   CCL R2 
          SB6    45 
          RJ     UPS         STORE HEADING
          MX0    12          PRESET ORIGIN TYPE MASK
          SA1    B2+JOTW     GET ORIGIN TYPE
          LX0    24 
          BX1    X0*X1
          AX1    12 
          SA2    X1+FPWB     READ ORIGIN TYPE 
          SB6    4
          SB7    PRBF+24
          RJ     UPS         STORE ORIGIN TYPE
          SA1    B2+JCRW     READ CCL REGISTERS 
          LX1    -36
          JP     FPW3.1      CONVERT REGISTER 
  
*         LINE 3 - TIME USED, CCL R3. 
  
 FPW5     SA2    =45HTIME USED                     CCL R3 
          SB6    45 
          RJ     UPS         STORE HEADING
          SA1    B2+CPTW     READ CP ACCOUNTING WORD
          SX2    1000 
          AX1    22          MILLISECONDS USED
          IX1    X1/X2       SECONDS USED 
          LX1    -30
          SB6    10 
          SB7    PRBF+18
          RJ     CTS         CONVERT TIME USED
          SA1    B2+JCRW     READ CCL REGISTERS 
          LX1    6
          SB6    6
          SB7    PRBF+55
          RJ     CTS         CONVERT CCL R3 
          JP     FPWX        EXIT 
  
*         LINE 4 - TIME REMAINING, CCL ERROR FLAGS. 
  
 FPW6     SA2    =45HTIME REMAINING                CCL EF 
          SB6    45 
          RJ     UPS         STORE HEADING
          SA1    B2+CPTW     READ CP ACCOUNTING WORD
          SX2    1000 
          AX1    22          MILLISECONDS USED
          IX1    X1/X2       SECONDS USED 
          SA3    B2+CPLW     GET TIME LIMIT 
          SX2    1000 
          AX3    22          LIMIT IN MILLISECONDS
          IX3    X3/X2       LIMIT IN SECONDS 
          IX1    X3-X1       SECONDS LEFT 
          LX1    -30
          SB6    10 
          SB7    PRBF+18
          RJ     CTS         CONVERT TIME REMAINING 
          SA1    B2+JCRW     READ CCL REGISTERS 
          SB6    2
          SB7    PRBF+59
          RJ     CTS         CONVERT ERROR FLAGS
          JP     FPWX        EXIT 
  
*         LINE 5 - SUBSYSTEM ID, CPU PRIORITY.
  
 FPW7     SA2    =45HSUBSYSTEM ID                  CPU PRIORITY 
          SB6    45 
          SA1    B2+JCIW     READ SUBSYSTEM ID
          RJ     UPS         STORE HEADING
          SB6    4
          SB7    PRBF+24
          LX1    24 
          MX2    -58
          RJ     CTS         CONVERT SUBSYSTEM ID 
          SA1    B2+CWQW     READ CPU PRIORITY
          BX1    -X2*X1 
          AX1    51 
          SB7    PRBF+57
          SB4    4
          RJ     DOS         CONVERT CPU PRIORITY 
          JP     FPWX        EXIT 
  
*         LINE 6 - CPU STATUS.
  
 FPW8     SA2    =45HCPU STATUS                    SERVICE CLASS
          SB6    45 
          SX5    B2 
          RJ     UPS         STORE HEADING
          SB7    PRBF+27
          RJ     GCS         GET CPU STATUS 
          RJ     GEE         GET EJT ENTRY
          R=     A1,BUF+SCLE  GET SERVICE CLASS 
          MX0    6
          BX1    X0*X1
          LX1    6
          R=     A2,X1+SCNT-1  READ SERVICE CLASS MEMONIC 
          SB6    4
          SB7    PRBF+57
          RJ     UPS         STORE SERVICE CLASS
          EQ     FPWX        EXIT 
  
*         LINE 8 - MESSAGE 1 LINE.
  
 FPW12    SA2    =28HMESSAGE 1                 -
          SB6    28 
          RJ     UPS         STORE HEADING
          SA2    B2+MS1W
          SB6    48 
          RJ     DMB         STORE MESSAGE
          JP     FPWX        EXIT 
  
*         LINE 9 - MESSAGE 2 LINE.
  
 FPW13    SA2    =28HMESSAGE 2                 -
          SB6    28 
          RJ     UPS         STORE HEADING
          SA2    B2+MS2W
          SB6    28 
          RJ     DMB         STORE MESSAGE 2
          JP     FPWX        EXIT 
  
*         LINE 11 - CURRENT COMMAND.
  
 FPW14    SA1    CN 
          SA2    NC 
          SX2    X2+B1
          IX1    X2-X1
          ZR     X1,FPWX     IF SYSTEM CONTROL POINT
          SA2    =28HCURRENT COMMAND           -
          SB6    28 
          RJ     UPS         STORE HEADING
          RJ     CNL         CHECK NFL LENGTH 
          NG     X1,FPWX     IF INSUFFICIENT NFL SPACE
          RJ     SCM         SELECT CENTRAL MEMORY
          SA1    FW 
          RJ     GFL         GET RA OF CONTROL POINT
          SX1    CSBN        SET FWA OF COMMAND BUFFER
          IX6    X6-X1
          SX7    B2          SAVE B2
          MX1    -24
          BX6    -X1*X6 
          SA6    CPRA 
          SA7    A6+B1
          SB2    A6          POSITION DUMP FILE 
          RJ     POM
          GETCM  BUF,110B    READ COMMAND BUFFER
          SB7    PRBF+29     RESET PRINT STRING ADDRESS 
          SA1    CPRA 
          SB4    BUF         FWA OF BUFFER
          SA3    A1+B1       RESTORE B2 
          SX0    X1+CSBN     RA OF CONTROL POINT
          SB2    X3 
          SA1    B2+CSPW     READ COMMAND BUFFER INDEX
          MX2    -12
          AX1    12 
          BX1    -X2*X1 
          SB3    X1-CSBN
          SB3    B4-B3       FORM CURRENT POINTER 
          EQ     B3,B4,FPWX  IF BUFFER EMTPY
 FPW15    SB3    B3-B1       POINTER TO END OF LAST LINE
          SB5    B3          SAVE END OF LINE POINTER 
          EQ     FPW17       ENTER SEARCH LOOP
  
 FPW16    SA1    B3 
          BX1    -X2*X1 
          ZR     X1,FPW18    IF END OF PREVIOUS LINE
 FPW17    SB3    B3-1 
          GE     B3,B4,FPW16 IF NOT BEGINNING OF BUFFER 
 FPW18    SX1    10 
          SX2    B5-B3       WORD COUNT FOR LINE
          IX2    X1*X2
          SB6    X2+         CHARACTER COUNT
          GE     B3,B4,FPW19 IF NOT FIRST WORD OF BUFFER
          SX6    65B         =1R_ 
          SA6    B7 
          SB7    B7+B1
 FPW19    SA2    B3+1        READ FIRST WORD OF LINE
          RJ     UPS         STORE LINE IN PRINT STRING 
          JP     FPWX        EXIT 
  
*         LINE 13 - LAST DAYFILE MESSAGE. 
  
 FPW20    SA2    =28HLAST DAYFILE MESSAGE      -
          SB6    28 
          RJ     UPS         STORE HEADING
          SA1    CN 
          SA2    NC 
          SX2    X2+B1
          IX1    X2-X1
          ZR     X1,FPW20.0  IF SYSTEM CONTROL POINT
          RJ     CNL         CHECK NFL LENGTH 
          NG     X1,FPWX     IF INSUFFICIENT NFL SPACE
 FPW20.0  RJ     GDB         GET DAYFILE BUFFER 
          SA1    GDBD 
          NZ     X1,FPWX     IF INACCURATE DAYFILE BUFFER POINTERS
          SA1    F.TSC1      GET POINTER ADDRESS
          SA1    X1          READ POINTER WORD
          MX2    -12
          BX3    -X2*X1      DETERMINE *IN* AND *FIRST* POINTERS
          SB2    X3          RELATIVE *IN* POINTER
          SA4    F.TSCR 
          IX3    X4+X3
          SB6    X3-1        INITIALIZE POINTER FOR SEARCH LOOP 
          SA3    GDBB        GET BUFFER LENGTH
          SB7    X3 
          NZ     B2,FPW20.1  IF *IN* .NE. 0 
          SB6    X4+B7       SET POINTER AT LWA OF DATA 
          SB6    B6-B1
 FPW20.1  SB3    X4          *FIRST* POINTER
          SA1    A1+B1       DETERMINE *OUT* POINTER
          BX3    -X2*X1 
          SX6    X3+B2       RELATIVE *IN* + *OUT*
          IX3    X4+X3
          SB4    X3          *OUT* POINTER
          SA1    A1+B1       CHECK DISK ASSIGNMENT
          AX1    12 
          IX6    X1+X6       CHECK *IN* = *OUT* = 0 
          ZR     X6,FPWX     IF BUFFER NOT USED 
          SB5    B1          INITIALIZE WORD COUNTER
          SB2    B0          INITIALIZE TOP OF MESSAGE WORD COUNTER 
  
*         FIND THE START OF THE LAST MESSAGE. 
  
 FPW20.2  NE     B6,B3,FPW20.3  IF POINTER .NE. FIRST 
          SB6    B3+B7       SET POINTER = FIRST + LIMIT
          SB2    B5          SET TOP OF MESSAGE COUNT 
 FPW20.3  SB6    B6-B1       *IN* = *IN* - 1
          SA3    B6          CHECK FOR ZERO BYTE TERMINATOR 
          BX3    -X2*X3 
          ZR     X3,FPW20.5  IF START OF LAST MESSAGE FOUND 
          SB5    B5+B1       INCREMENT WORD COUNT 
          EQ     B6,B4,FPW20.4  IF *IN* = *OUT* BOTTOM OF MESSAGE 
          GT     B5,B7,FPWX  IF LAST MESSAGE CAN NOT BE DETECTED
          EQ     FPW20.2     CONTINUE SEARCH FOR START OF LAST MESSAGE
  
*         SETUP THE PRINT BUFFER WITH FIRST AND LAST PART OF THE
*         MESSAGE IN UNPACKED FORMAT. 
  
 FPW20.4  SB6    B6-B1       ADJUST POINTER TO FWA-1
 FPW20.5  SX3    B5-B2       CALCULATE WORDS IN BEGINNING OF MESSAGE
          SX1    10 
          IX3    X1*X3       NUMBER OF CHARACTERS IN FIRST OF MESSAGE 
          SB7    PRBF+29     SET PRINT STRING ADDRESS 
          GE     B6,B3,FPW20.6  IF NOT BEGINNING OF BUFFER
          SX6    65B         =1R_ 
          SA6    B7 
          SB7    B7+B1       DESTINATION OF UNPACKED CHARACTERS 
 FPW20.6  SA2    B6+B1       SOURCE OF PACKED CHARACTERS
          SB6    X3          NUMBER OF CHARACTERS TO UNPACK 
          ZR     B6,FPW20.7  IF MESSAGE WORDS CONTIGUOUS IN LAST PART 
          RJ     UPS         STORE FIRST PART OF MESSAGE
 FPW20.7  ZR     B2,FPWX     IF MESSAGE WORDS CONTIGUOUS IN FIRST PART
          SA2    F.TSCR      SOURCE OF PACKED CHARACTERS
          SX3    B2          CALCULATE NUMBER OF CHARACTERS IN LAST PART
          SA2    X2 
          IX3    X1*X3
          SB6    X3 
          RJ     UPS         STORE LAST PART OF MESSAGE 
          EQ     FPWX        EXIT 
  
*         LINE 15 - SPECIAL ENTRY POINTS. 
  
 FPW21    SA1    CN 
          SA2    NC 
          SX2    X2+B1
          IX1    X2-X1
          ZR     X1,FPWX     IF SYSTEM CONTROL POINT
          SA2    =28HSPECIAL ENTRY POINTS      -
          SB6    28 
          RJ     UPS         STORE HEADING
          SA1    B2+SEPW     READ ENTRY POINT FLAGS 
          SB3    FPWCL       SET NUMBER OF ENTRY POINTS 
          LX1    59-56       POSITION FIRST ENTRY POINT 
 FPW22    PL     X1,FPW23    IF NO SPECIAL ENTRY POINT
          SA2    B3+FPWC-1   READ ENTRY POINT NAME
          SB6    5
          RJ     UPS         STORE NAME 
 FPW23    LX1    1           CHECK NEXT BIT 
          SB3    B3-B1
          NZ     B3,FPW22    IF MORE BITS TO CHECK
          JP     FPWX        EXIT 
  
 FPWA     BSS    0           LINE PROCESSOR JUMP TABLE
          LOC    0
+         JP     FPW1 
+         JP     FPW2        PROCESS LINE 1 
+         JP     FPW4        PROCESS LINE 2 
+         JP     FPW5        PROCESS LINE 3 
+         JP     FPW6        PROCESS LINE 4 
+         JP     FPW7        PROCESS LINE 5 
+         JP     FPW8        PROCESS LINE 6 
+         JP     FPWX 
+         JP     FPW12
+         JP     FPW13
+         JP     FPWX 
+         JP     FPW14
+         JP     FPWX 
+         JP     FPW20
+         JP     FPWX 
+         JP     FPW21
+         JP     FPWX 
          LOC    *O 
 FPX      SPACE  4,20 
**        FPX - FIND AND PACK EXCHANGE PACKAGE. 
* 
*         ENTRY  (X2) = 0, IF REQUEST FOR FIRST CPU EXCHANGE PACKAGE. 
*                     = ADDRESS OF THE ADDRESS OF THE DIRECTORY TABLE 
*                       ENTRY FOR THE EXCHANGE PACKAGE FOR CPU1.
* 
*         EXIT   (X1) = 0, IF CPU1 NOT PRESENT OR NOT IN C170 MODE. 
*                     = ADDRESS OF THE ADDRESS OF THE DIRECTORY TABLE 
*                       ENTRY FOR THE EXCHANGE PACKAGE FOR CPU1.
*                EXCHANGE PACKAGE PACKED AT *BUF*.
*                TO *ERR15* IF C170 STATE XP NOT FOUND FOR CPU0.
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 0, 1, 2, 3, 4, 6, 7. 
*                B - 2, 3.
* 
*         CALLS  FPR, PCM.
* 
*         MACROS GETCM, MOVE. 
  
  
 FPX      SUBR               ENTRY/EXIT 
          BX6    X2 
          SA6    FPXA        SAVE CPU1(800)  ON/OFF 
          SX6    B0          DO NOT DISPLAY RADIAL MCI
          SA1    .PXP 
          RJ     FPR         FIND PROCESSOR RECORD
          ZR     X2,ERR15    IF PROCESSOR EXCHANGE PACKAGE NOT FOUND
          SA1    FPXA 
          SX6    BUF+20B
          NZ     X1,FPX0     IF NOT FIRST RECORD
          SA2    NR          SAVE CPU1 RECORD POINTER 
          BX6    X2 
          SA6    A1 
          SX6    BUF
 FPX0     SA6    A1+B1       SET BUFFER POINTER 
          ERRNZ  FPXB-FPXA-1
          SX3    B0 
          RJ     PCM         POSITION FOR READ
          SA4    FPXB 
          SA0    X4 
          GETCM  A0,33       READ CYBER 170-8X5 EXCHANGE PACKAGE
          SA1    A0+B1
          AX1    -4 
          SX1    X1-1 
          ZR     X1,FPX1     IF C170 VMID 
          SA3    S2JPS
          RJ     CEA         POSITION TO JOB EXCHANGE PACKAGE IN *EI* 
          SA4    FPXB 
          SA0    X4 
          GETCM  A0,33       READ JOB EXCHANGE PACKAGE
          SA1    A0+B1
          AX1    -4 
          SX1    X1-1 
          ZR     X1,FPX1     IF C170 VMID 
          SA1    FPXB 
          SX1    X1-BUF-20B 
          NZ     X1,ERR15    IF CPU0 NOT C170 VMID
          EQ     FPXX        CPU1 NOT C170 VMID 
  
 FPX1     MOVE   5,A0+4,A0+1
          SA1    A0+3 
          SA2    A0+B1
          BX6    X1 
          LX7    X2 
          SA6    A0+6        STORE MA 
          AX7    32-12
          SA7    A1          STORE MODE 
          SA1    A2-B1       CHANGE P TO A WORD ADDRESS 
          MX4    -24
          BX2    -X4*X2      EXTRACT RA 
          AX1    3
          IX6    X1-X2       FORM RELATIVE P
          SA6    A1 
          SB2    B0 
          MX6    0
          SA6    A0+7 
          SA6    A0+17
          MX3    -18
 FPX2     SA1    A0+B2       FORM UPPER 10 WORDS OF XP
          SA2    A1+9        GET A-REGISTER 
          BX6    -X4*X1 
          BX7    -X3*X2 
          SA2    A2+8        GET B-REGISTER 
          LX6    18 
          BX6    X6+X7
          BX7    -X3*X2 
          LX6    18 
          BX6    X6+X7
          SA6    A1          STORE EXCHANGE PACKAGE WORD
          SB2    B2+B1
          SB3    10B
          NE     B3,B2,FPX2  IF MORE TO PACK
          MOVE   10B,A0+25,A0+10B  MOVE X-REGISTERS 
          SA1    FPXA        GET CPU1(800) ON/OFF 
          EQ     FPXX        RETURN 
  
 FPXA     CON    0           POINTER TO CPU1 EXCHANGE PACKAGE 
 FPXB     CON    0           BUFFER ADDRESS POINTER 
 FRV      SPACE  4,10 
**        FRV - FETCH REGISTER VALUE. 
* 
*         ENTRY  (X1) = SVA OF REGISTER.
* 
*         EXIT   (X6) = 16/0, 12/SEG, 32/BYTE OFFSET. 
*                (X2) = 0, IF PAGE FOUND. 
* 
*         USES   X - 2, 5, 6. 
* 
*         CALLS  ISM, NXB, PSM. 
  
  
 FRV      SUBR               ENTRY/EXIT 
          BX6    X1 
          RJ     PVM         POSITION VIRTUAL MEMORY
          NZ     X2,FRVX     IF PAGE NOT FOUND
          RJ     NXB
          BX5    X1          EXTRACT SEGMENT NUMBER 
          RJ     NXB
          LX5    16 
          BX5    X5+X1
          RJ     NXB
          LX5    16 
          BX6    X5+X1
          SX2    0
          JP     FRVX        RETURN 
 FSC      SPACE  4,11 
**        FSC - FORMAT STATUS/CONTROL REGISTER CONTENTS.
* 
*         ENTRY  X5 = SC16 CHARACTERS STRING ADDRESS. 
*                B3 = NUMBER OF CHARACTERS. 
*                A0 = ADDRESS OF 14 CHARACTER DESCRIPTION.
*                SCPA = 0 IF SC36 TO BE PROCESSED(CHARACTER STRING
*                       WILL BE FOUND AT X5+ 100).
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  MVE=,SSB,UPS,WOF.
  
  
 FSC      SUBR
          RJ     SSB         CLEAR PRINT STRING 
          SB2    1
          SB7    PRBF+15
 FSC1     SA2    A0+
          SB6    14 
          RJ     UPS
          SB7    B7+2        SPACE TWICE
          MOVE   B3,X5,B7 
          ZR     B2,FSC2     IF DONE WITH SC36
          SA4    /DIRECT/SCPA 
          NZ     X4,FSC2     IF SC36 RECORD NOT FOUND 
          SB2    0
          SX5    X5+100      SET SC36 CHARACTER STRING ADDRESS
          SB7    PRBF+65
          JP     FSC1        CONTINUE 
  
 FSC2     PRINT  CCCH,116 
          JP     FSCX        EXIT 
 FTR      SPACE  4,15 
**        FTR - FORMAT TWO PP COMMUNICATION REGISTERS.
* 
*         ENTRY  A5 = ADDRESS OF FIRST REGISTER WORD. 
*                X5 = FIRST REGISTER WORD.
*                FW = CURRENT PPU NUMBER. 
* 
*         EXIT   A5 IS ADVANCED BY 20B. 
* 
*         USES   X - 1, 2, 5, 6.
*                A - 1, 2, 5, 6.
*                B - 2, 4, 7. 
* 
*         CALLS  FPL. 
* 
*         MACROS PRINT. 
  
  
 FTR      SUBR
          SX6    0
          SA6    FTRA        CLEAR LINE INDEX 
          PRINT  (=2C  )
 FTR1     SA1    FW 
          SA2    FTRA 
          SB2    X1          SET PPU NUMBER 
          SB4    X2          SET LINE INDEX 
          SB7    PRBF+7      PRINT STRING ADDRESS 
          RJ     FPL         FORMAT PPU REGISTER WORD 
          SB2    B2+1        ADVANCE PPU NUMBER 
          SA5    A5+10B      READ WORD FROM NEXT AREA 
          SA1    FTRB 
          NZ     X1,FTR2     IF ONLY 1 AREA TO PRINT
          SB7    PRBF+65
          RJ     FPL         FORMAT REGISTER WORD 
 FTR2     PRINT  CCCH,B7-CCCH 
          SA5    A5-7        READ NEXT WORD OF FIRST REGISTER 
          SA1    FTRA 
          SX6    X1+B1
          SA6    A1          ADVANCE LINE INDEX 
          SX6    X6-10B 
          NG     X6,FTR1     IF MORE LINES TO FORMAT
          SA5    A5+10B      UPDATE POINTER 
          SX6    B0+         CLEAR 1 AREA FLAG
          SA6    FTRB 
          JP     FTRX        EXIT 
  
 FTRA     BSS    1           LINE INDEX 
 FTRB     CON    0           PRINT ONLY 1 AREA FLAG 
 FXA      SPACE  4,10 
**        FXA - FORMAT EXCHANGE AREA. 
* 
*         ENTRY  (X1)= SVA OF EXCHANGE PACKAGE. 
*                (X6)= NUMBER OF WORDS TO FORMAT. 
* 
*         EXIT   DESIRED AMOUNT OF EXCHANGE AREA PRINTED. 
* 
*         USES   A - 0, 1, 2, 3, 5, 6, 7. 
*                X - 1, 2, 3, 5, 6, 7.
*                B - 6, 7.
* 
*         CALLS  CDD, HTS, RMB, SSB, UPS. 
* 
*         MACROS PRINT. 
  
  
 FXA      SUBR               ENTRY/EXIT 
          SA6    FXAA+1      SAVE TERMINATING CONDITION 
          SX6    51          READ FULL BUFFER 
          RJ     RMB         READ MEMORY BYTES
          SX7    0
          SA7    FXAA 
          SA1    BUF+8       FETCH FRAME DESCRIPTOR 
          SX2    0#F0 
          SA3    FXAD        DESCRIPTOR FOR FULL PACKAGE
          BX6    X3 
          BX7    X1*X2       EXTRACT POSSIBLE ENDING A-REGISTER 
          SA6    FXAA+2 
          ZR     X7,FXA1     IF EXCHANGE PACKAGE
          LX7    18-4 
          IX3    X3+X7
          LX2    4
          BX6    X1*X2       EXTRACT STARTING X REGISTER
          LX6    12-8 
          IX3    X6+X3
          LX2    -8 
          BX6    X1*X2       EXTRACT ENDING X REGISTER
          LX6    6-0
          IX6    X6+X3
          LX6    59-23
          SA6    A6          SAVE STACK FRAME DESCRIPTOR
 FXA1     RJ     SSB         SPACE FILL BUFFER
          SA1    FXAA        REGISTER TO DUMP 
          SA5    FXAB+X1     REGISTER DESCRIPTOR
          SX2    X1 
          LX2    2
          SA0    BUF+X2      POINTER TO REGISTER CONTENT
          RJ     CDD         GET DECIMAL REGISTER NUMBER
          BX2    X6 
          LX2    59-11
          SB7    PRBF 
          SB6    2
          RJ     UPS         PLACE REGISTER NUMBER IN OUTPUT LINE 
          MX2    -17
          BX6    -X2*X5      EXTRACT MESSAGE ADDRESS
          SA6    FXAC 
          AX5    17 
          BX7    -X2*X5      EXTRACT 2 CHARACTER FIELD
          SA7    A6+B1
          SB7    B7+2 
          SA2    X6          FETCH MESSAGE
          NZ     X6,FXA3     IF MESSAGE SPECIFIED 
          BX2    X7          2 CHARACTER FIELD
          LX2    59-11       LEFT JUSTIFY 
          SB7    PRBF+11
          SB6    B1+B1
          SX5    B6+B6
          RJ     UPS         DISPLAY REGISTER NAME
 FXA2     SB7    B7+2        NEW POSITION IN OUTPUT LINE
          SA1    A0 
          LX1    59-15       LEFT JUSTIFY 16 BIT DATA 
          SB6    4
          RJ     HTS         DISPLAY 4 HEX DIGITS 
          SA0    A0+1 
          SX5    X5-1 
          NZ     X5,FXA2     IF MORE 16 BIT CHUNKS TO DISPLAY 
          EQ     FXA4        PRINT LINE 
  
 FXA3     SB6    9
          RJ     UPS         UNPACK MESSAGE TO LINE 
          SA2    FXAC+1      GET REGISTER NAME
          SB6    B1+B1
          SX5    B6+B6
          ZR     X2,FXA2     IF NO REGISTER NAME
          SB7    PRBF+25
          LX2    59-11
          RJ     UPS         PLACE REGISTER NAME IN LINE
          SA1    A0 
          LX1    59-15
          SB7    PRBF+15
          SB6    4
          RJ     HTS         DISPLAY 4 HEX DIGITS 
          SA5    A0+B1
          LX5    16 
          SA1    A0+2 
          BX5    X5+X1
          LX5    16 
          SA1    A0+3 
          BX1    X5+X1
          LX1    59-47
          SB7    PRBF+29
          SB6    1
          RJ     HTS         DISPLAY RING NUMBER
          SB7    B7+B1
          SB6    3
          RJ     HTS         DISPLAY SEGMENT NUMBER 
          SB7    B7+2 
          SB6    8
          RJ     HTS         DISPLAY ADDRESS DATA 
 FXA4     PRINT  CCCH,B7-CCCH+1 
          SA1    FXAA 
          SA2    A1+B1
          SX6    X1+B1       INCREMENT REGISTER NUMBER
          SA6    A1 
          IX2    X1-X2
          ZR     X2,FXAX     IF EXCHANGE PACKAGE DUMP FINISHED
          MX2    -6 
          SA3    A2+B1
          BX6    X3 
          LX6    6
          BX3    -X2*X6      ENDING REGISTER NUMBER 
          IX1    X1-X3
          NZ     X1,FXA1     IF MORE REGISTERS TO DUMP
          LX6    6
          SA6    A3          REPLACE DESCRIPTOR 
          BX6    -X2*X6 
          SA6    A1          SET NEW STARTING REGISTER
          ZR     X6,FXAX     IF END OF DUMP 
          PRINT  (=2C  )
          EQ     FXA1        DISPLAY NEXT REGISTER
  
  
 FXAA     CON    0           REGISTER NUMBER
          CON    0           LAST REGISTER NUMBER 
          CON    0           DUMP DESCRIPTOR
  
 FXAB     BSS    0           REGISTER DESCRIPTORS 
 P        RFDSC  00,(LKEY     ) 
 A0       RFDSC  00,(VMID/UVMI) 
 A1       RFDSC  01,(FLGS/TRAP) 
 A2       RFDSC  02,(USER MASK) 
 A3       RFDSC  03,( MTR MASK) 
 A4       RFDSC  04,(USER COND) 
 A5       RFDSC  05,( MTR COND) 
 A6       RFDSC  06,(KYPC/LPID) 
 A7       RFDSC  07,(KYPT MASK) 
 A8       RFDSC  08,(KYPT CODE) 
 A9       RFDSC  09,(         ) 
 AA       RFDSC  0A,(INTV TIMR) 
 AB       RFDSC  0B,(         ) 
 AC       RFDSC  0C,(BASE CONS) 
 AD       RFDSC  0D,(         ) 
 AE       RFDSC  0E,(MODL FLGS) 
 AF       RFDSC  0F,(SEGT LENG) 
 X0       RFDSC  10 
 X1       RFDSC  11 
 X2       RFDSC  12 
 X3       RFDSC  13 
 X4       RFDSC  14 
 X5       RFDSC  15 
 X6       RFDSC  16 
 X7       RFDSC  17 
 X8       RFDSC  18 
 X9       RFDSC  19 
 XA       RFDSC  1A 
 XB       RFDSC  1B 
 XC       RFDSC  1C 
 XD       RFDSC  1D 
 XE       RFDSC  1E 
 XF       RFDSC  1F 
          RFDSC  20,(TRACE REG) 
 UP       RFDSC  21,(SEGMENT  ) 
 TP       RFDSC  22,(TBL ADDR ) 
 DP       RFDSC  23,(DB I/DB M) 
 R1       RFDSC  24,(MAX RING ) 
 R2       RFDSC  25,(         ) 
 R3       RFDSC  26,(         ) 
 R4       RFDSC  27,(         ) 
 R5       RFDSC  28,(         ) 
 R6       RFDSC  29,(         ) 
 R7       RFDSC  2A,(         ) 
 R8       RFDSC  2B,(         ) 
 R9       RFDSC  2C,(         ) 
 RA       RFDSC  2D,(         ) 
 RB       RFDSC  2E,(         ) 
 RC       RFDSC  2F,(         ) 
 RD       RFDSC  30,(         ) 
 RE       RFDSC  31,(         ) 
 RF       RFDSC  32,(         ) 
  
 FXAC     CON    0           MESSAGE ADDRESS
          CON    0           REGISTER NAME
  
 FXAD     VFD    6/16,6/17,6/32,6/33,6/51,6/0,6/1,6/17,6/17,6/0 
 FXC      SPACE  4,15 
**        FXC - FORMAT EXCHANGE PACKAGE REGISTER ADDRESS CONTENTS.
* 
*         ENTRY  (B2) = ADDRESS OF EXCHANGE PACKAGE REGISTER ADDRESS. 
*                (X5) = STRING BUFFER ADDRESS FOR CONTENTS. 
*                (FW) = ADDRESS OF CONTROL POINT AREA.
* 
*         EXIT   REGISTER AND CONTENTS PLACED IN STRING BUFFER. 
* 
*         USES   A - 1, 2, 6. 
*                B - 6, 7.
*         X - 1, 2, 6.
* 
*         CALLS  FDW, GFL, POM, SDI.
* 
*         MACROS GETCM. 
  
  
 FXC      SUBR               ENTRY/EXIT 
          SA1    FW          GET FIELD LENGTH AND REFERENCE ADDRESS 
          RJ     GFL
          SA6    BA 
          SA1    B2          CHECK ADDRESS AGAINST FL 
          IX2    X1-X7
          BX6    X6-X6       CLEAR VALUE
          PL     X2,FXC1     IF ADDRESS .GE. FL 
          RJ     POM         POSITION DUMP FILE 
          GETCM              READ WORD
 FXC1     SA2    =4000005B   CONVERT REGISTER ADDRESS CONTENTS
          SB7    X5 
          BX1    X6 
          RJ     FDW         FORMAT WORD
          BX2    X1          SET DATA WORD
          SB6    10 
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          SX6    B0+         CLEAR REFERENCE ADDRESS
          SA6    BA 
          EQ     FXCX        RETURN 
 FXW      SPACE  4,16 
**        FXW - FORMAT EXCHANGE PACKAGE WORD. 
* 
*         ENTRY  X1 = WORD INDEX. 
*                X5 = WORD. 
*                A5 = WORD ADDRESS. 
*                B7 = PRINT STRING ADDRESS. 
*                   = COMPLEMENT OF PRINT STRING ADDRESS IF CONTENTS
*                     OF REGISTER ADDRESSES TO BE DISPLAYED.
* 
*         EXIT   A5 IS ADVANCED.
* 
*         USES   X - 0, 1, 2, 3, 5, 6.
*                A - 1, 2, 3, 5, 6, 7.
*                B - 2, 4, 6, 7.
* 
*         CALLS  COD, DOS, FDW, FXC, SDI, UPS.
  
  
 FXW      SUBR
          BX6    X6-X6
          PL     B7,FXW1     IF CONTENTS OF ADDRESS NOT TO BE DISPLAYED 
          SB7    -B7         SET PRINT STRING ADDRESS 
          SX6    B1          SET DISPLAY CONTENTS FLAG
 FXW1     SA6    FXWE 
          SX2    X1-10B 
          PL     X2,FXW6     IF X-REGISTER
          SB4    B7          SAVE B7
          SA2    FXWA+X1     READ REGISTER NAME 
          SA3    CF          CHECK IF A CYBER 176 
          NZ     X3,FXW2     IF NOT CYBER 176 
          LX2    42          READ CYBER 176 REGISTER NAME 
  
*         SET REGISTER NAMES. 
  
 FXW2     SB6    3           SET CONTROL REGISTER NAME
          RJ     UPS
          NZ     X3,FXW3     IF NOT A CYBER 176 
          LX2    18          SHIFT TO NEXT A REGISTER NAME
 FXW3     SB7    B7+11       SET A-REGISTER NAME
          SB6    2
          RJ     UPS
          SB7    B7+9        SET B-REGISTER NAME
          SB6    2
          RJ     UPS
  
*         SET A AND B-REGISTER CONTENTS NAMES.
  
          SA1    FXWE 
          ZR     X1,FXW4     IF NOT TO DISPLAY ADDRESS CONTENTS 
          SA2    FXWB 
          SB7    B7+9 
          SB6    5
          RJ     UPS         UNPACK TO STRING BUFFER
          SB7    B7+37
          SB6    5
          RJ     UPS         UNPACK TO STRING BUFFER
  
*         SET REGISTERS IN STRING BUFFER. 
  
 FXW4     SB7    B4+4 
          BX1    X5 
          LX1    24          SET CONTROL REGISTER 
          SB4    8
          RJ     DOS
          MX0    -18
          BX7    -X0*X5 
          SA7    FXWD        SAVE B-REGISTER
          BX1    X5 
          LX1    -18         SET A-REGISTER 
          BX7    -X0*X1 
          SA7    A7-B1       SAVE A-REGISTER
          SB7    B7+3 
          SB4    6
          RJ     DOS
          BX1    X5          SET B-REGISTER 
          SB7    B7+3 
          SX5    PRBF+42
          RJ     DOS
  
*         FORMAT A AND B-REGISTER CONTENTS. 
  
          SA1    FXWE 
          ZR     X1,FXW5     IF NOT TO DISPLAY ADDRESS CONTENTS 
          SB2    FXWC 
          RJ     FXC
          SB2    FXWD 
          SX5    PRBF+84
          RJ     FXC
          SA1    FXWB 
          SA2    =100000000010000B
          IX6    X1+X2
          SA6    A1 
 FXW5     SA5    A5+B1       READ NEXT WORD 
          JP     FXWX        EXIT 
  
*         FORMAT X - REGISTER.
  
 FXW6     SA3    FXWB        RESET REGISTER NUMBER
          SA2    =10H(A0)=(B0)= 
          BX6    X2 
          SA6    A3 
          SA2    FXWA+X1     READ REGISTER NAME 
          BX1    X5          SET DATA WORD
          MX0    -18         SAVE ADDRESS 
          BX6    -X0*X5 
          SA6    FXWC 
          SB6    4
          RJ     UPS         STORE REGISTER NAME
          SA3    FXWE 
          ZR     X3,FXW7     IF NOT TO DISPLAY ADDRESS CONTENTS 
          SB4    B7+         SAVE STRING BUFFER ADDRESS 
          SB6    5
          SB7    B4+37
          RJ     UPS         UNPACK TO STRING BUFFER
          SB7    B4+
 FXW7     SA2    =4000005B
          RJ     FDW         CONVERT REGISTER WORD
          BX2    X1          SET DATA WORD
          SB6    10 
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          SA1    FXWE 
          ZR     X1,FXW5     IF NOT TO DISPLAY ADDRESS CONTENTS 
          SB2    FXWC        FORMAT X - REGISTER CONTENTS 
          SX5    B7+7 
          RJ     FXC
          EQ     FXW5        EXIT 
  
 FXWA     BSS    0           REGISTER NAMES 
          DATA   10LP  A0B0P
          DATA   10LRA A1B1RA 
          DATA   10LFL A2B2FL 
          DATA   10LEM A3B3PSD
          DATA   10LRAEA4B4RAE
          DATA   10LFLEA5B5FLE
          DATA   10LMA A6B6MA 
          DATA   10L   A7B7EEA
          DATA   10LX0  (X0)= 
          DATA   10LX1  (X1)= 
          DATA   10LX2  (X2)= 
          DATA   10LX3  (X3)= 
          DATA   10LX4  (X4)= 
          DATA   10LX5  (X5)= 
          DATA   10LX6  (X6)= 
          DATA   10LX7  (X7)= 
 FXWB     DATA   10L(A0)=(B0)=  REGISTER CONTENTS NAMES 
 FXWC     CON    0           BINARY A-REGISTER ADDRESS
 FXWD     CON    0           BINARY B-REGISTER ADDRESS
 FXWE     CON    0           DISPLAY REGISTER ADDRESS CONTENTS FLAG 
 GAT      SPACE  4,28 
**        GAT - GET ADDRESS TOKEN.
* 
*         ENTRY  (GATA) = 0 IF PREVIOUS SEPARATOR WAS #.
* 
*         EXIT   (B6) = 0 IF NO TOKEN OBTAINED. 
*                IF (B6) .NE. 0 
*                   (X4) = TOKEN TYPE FLAG. 
*                   IF (X4) = 0, TOKEN IS A HEX NUMBER. 
*                      (X1) = CHARACTER REPRESENTATION OF TOKEN.
*                      (X6) = BINARY REPRESENTATION OF HEX NUMBER.
*                   IF (X4) .LT. 0, TOKEN IS AN XP SYMBOL.
*                      (X1) = (X6) = ACTUAL RMA VALUE.
*                      (X2) = REGISTER LIST ENTRY POSITIONED WITH 
*                             *P.RMA* IN BIT 59.
*                      (A1) = ADDRESS IN *DSDI* OF ACTUAL VALUE IN X1.
*                   IF (X4) .GT. 0, TOKEN NOT AN XP SYMBOL, BUT IS
*                                   PROBABLY A REGISTER SYMBOL. 
*                      (X1) = CHARACTER REPRESENTATION OF TOKEN.
*                      (X2) = REGISTER LIST ENTRY POSITIONED WITH 
*                             *P.RMA* IN BIT 59.
*                      (X6) = ADDRESS WITH *DSDI* WHERE REGISTER
*                             CAN BE FOUND. 
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 3, 4, 6.
*                B - 6. 
* 
*         CALLS  ASX. 
  
  
 GAT      SUBR               ENTRY/EXIT 
          MX6    0
          SB6    B0 
          SA4    GATA        CHECK TERMINATOR 
          NZ     X4,GATX     IF INCORRECT TERMINATOR
          RJ     ASX         GET HEX NUMBER 
          SA3    CH          CHECK TERMINATOR 
          MX2    1           SET NUMBER FLAG
          SA3    X3 
          SA1    ASXA        FETCH IDENTIFIER 
          SX7    X3-1R# 
          SA7    GATA        *#* FLAG 
          CX3    X1 
          SB6    X3 
          ZR     B6,GATX     IF NULL TOKEN
          ZR     X4,GATX     IF VALID HEX NUMBER
          SA4    A7+B1
          ERRNZ  GATA+1-GATB CODE ASSUMES VALUE 
          BX6    X1 
          SA6    GATC        SAVE SEARCH TERMINATOR 
 GAT1     BX7    X4-X1       COMPARE ENTRIES
          SX2    X4 
          AX7    -24
          AX4    18 
          SX6    X4 
          SA4    A4+B1       FETCH NEXT LIST ENTRY
          NZ     X7,GAT1     IF ENTRY NOT YET FOUND 
          ZR     X2,ERR6     IF ENTRY IS INCORRECT
          LX2    59-P.RMA 
          BX4    X2 
          LX4    59-P.XCH-59+P.RMA
          PL     X4,GATX     IF NOT AN EXCHANGE PACKAGE SYMBOL
          SA1    X6 
          BX6    X1          FETCH ACTUAL RMA VALUE 
          JP     GATX        RETURN 
  
 GATA     CON    0
  
 GATB     BSS    0           SYMBOL TABLE 
  
 P.XCH    EQU    0           XCH FLAG BIT 
 V.XCH    EQU    1S0
 P.REG    EQU    1           REGISTER FLAG BIT
 V.REG    EQU    1S1
 P.RMA    EQU    3           RMA FLAG BIT 
 V.RMA    EQU    1S3
  
          VFD    24/0LPVA,18/S2PVA,18/V.REG 
  
          VFD    24/0LP,18/2/2+BUF,18/V.REG 
          VFD    24/0LRN1,18/298/2+BUF,18/V.REG 
          VFD    24/0LRN2,18/306/2+BUF,18/V.REG 
          VFD    24/0LRN3,18/314/2+BUF,18/V.REG 
          VFD    24/0LRN4,18/322/2+BUF,18/V.REG 
          VFD    24/0LRN5,18/330/2+BUF,18/V.REG 
          VFD    24/0LRN6,18/338/2+BUF,18/V.REG 
          VFD    24/0LRN7,18/346/2+BUF,18/V.REG 
          VFD    24/0LRN8,18/354/2+BUF,18/V.REG 
          VFD    24/0LRN9,18/362/2+BUF,18/V.REG 
          VFD    24/0LRN10,18/370/2+BUF,18/V.REG
          VFD    24/0LRN11,18/378/2+BUF,18/V.REG
          VFD    24/0LRN12,18/386/2+BUF,18/V.REG
          VFD    24/0LRN13,18/394/2+BUF,18/V.REG
          VFD    24/0LRN14,18/402/2+BUF,18/V.REG
          VFD    24/0LRN15,18/410/2+BUF,18/V.REG
          VFD    24/0LRA0,18/10/2+BUF,18/V.REG
          VFD    24/0LRA1,18/18/2+BUF,18/V.REG
          VFD    24/0LRA2,18/26/2+BUF,18/V.REG
          VFD    24/0LRA3,18/34/2+BUF,18/V.REG
          VFD    24/0LRA4,18/24/2+BUF,18/V.REG
          VFD    24/0LRA5,18/50/2+BUF,18/V.REG
          VFD    24/0LRA6,18/58/2+BUF,18/V.REG
          VFD    24/0LRA7,18/66/2+BUF,18/V.REG
          VFD    24/0LRA8,18/74/2+BUF,18/V.REG
          VFD    24/0LRA9,18/82/2+BUF,18/V.REG
          VFD    24/0LRAA,18/90/2+BUF,18/V.REG
          VFD    24/0LRAB,18/98/2+BUF,18/V.REG
          VFD    24/0LRAC,18/106/2+BUF,18/V.REG 
          VFD    24/0LRAD,18/114/2+BUF,18/V.REG 
          VFD    24/0LRAE,18/122/2+BUF,18/V.REG 
          VFD    24/0LRAF,18/130/2+BUF,18/V.REG 
          VFD    24/0LUTP,18/274/2+BUF,18/V.REG 
          VFD    24/0LTP,18/282/2+BUF,18/V.REG
  
          VFD    24/0LMPS,18/S2MPS,18/V.RMA+V.XCH 
          VFD    24/0LJPS,18/S2JPS,18/V.RMA+V.XCH 
          VFD    24/0LRMA,18/S2RMA,18/V.RMA+V.XCH 
          VFD    24/0LPXP,18/0,18/V.XCH 
  
 GATC     CON    0           END OF TABLE 
 GCS      SPACE  4,10 
**        GCS - GET CPU STATUS. 
* 
*         ENTRY  (X5) = FWA OF CPA IN *TCMT*. 
*                (B7) = STRING BUFFER POINTER.
* 
*         EXIT   CPU PRIORITY PLACED IN STRING BUFFER.
* 
*         USES   X - 0, 1, 2, 6.
*                A - 1, 2, 6. 
*                B - 3. 
  
  
 GCS      SUBR               ENTRY/EXIT 
          MX0    3
          SA1    X5+STSW
          BX1    X0*X1
          LX1    4           FORM STATUS*6
          SA2    GCSA 
          SB3    X1 
          LX1    1
          SB3    B3+X1
          AX2    B3,X2       SHIFT SELECTED STATUS TO BITS 5-0
          MX0    -6 
          BX6    -X0*X2 
          SA6    B7          SET IN STRING BUFFER 
          EQ     GCSX        RETURN 
  
  
 GCSA     DATA   10H   IXW BA 
 GDA      SPACE  4,10 
**        GDA - GET DFT/OS BUFFER FWA (DFT CONTROL WORD). 
* 
*         EXIT   (X3) = DFT CONTROL WORD ADDRESS WITHIN BUFFER. 
*                     = 0 IF DFT/OS BUFFER NOT FOUND. 
*                (X6) = DFT CONTROL WORD ADDRESS. 
* 
*         USES   X - 0, 1, 3. 
*                A - 1, 3.
* 
*         CALLS  DRA. 
  
  
 GDA      SUBR               ENTRY/EXIT 
          SA1    F.TCMT 
          SA3    X1+EIBP     POINTER TO *EICB*
          MX0    -32
          BX3    -X0*X3 
          ZR     X3,GDAX     IF NO *EICB* 
          IX3    X1+X3       GET DFT/OS POINTER 
          SA3    X3+/VE/DSCM+3
          ZR     X3,GDAX     IF NO DFT/OS BUFFER
          RJ     DRA         GET ADDRESS OF DFT CONTROL WORD
          IX3    X1+X6
          EQ     GDAX        RETURN 
 GDB      SPACE  4,14 
**        GDB - GET DAYFILE BUFFER. 
* 
*         ENTRY  (CN) = CONTROL POINT NUMBER. 
*                     = 0, IF SYSTEM DAYFILE. 
*                     = -1, IF ACCOUNTING DAYFILE.
*                     = -2, IF ERRLOG DAYFILE.
*                     = -3, IF BML DAYFILE. 
*                (OP) = PCPA FWA OFFSET (0 IF DUMPING CONTROL POINTS).
* 
*         EXIT   (GDBB) = DAYFILE BUFFER LENGTH.
*                (GDBC) = MEMORY ADDRESS OF POINTERS. 
*                (GDBD) = NONZERO, IF DAYFILE BUFFER POINTERS EXTEND
*                                  BEYOND MACHINE FL. 
*                DAYFILE BUFFER POINTERS STORED IN TABLE *TSC1* 
*                DAYFILE BUFFER STORED IN TABLE *TSCR*. 
* 
*         USES   X - 0, 1, 2, 3, 4, 6.
*                A - 0, 1, 2, 3, 4, 6, 7. 
*                B - 2, 5.
* 
*         CALLS  CNL, GFL, PCM, SCM.
* 
*         MACROS ALLOC, GETCM, PRINT. 
  
  
 GDB5     SX6    B1          SET POINTERS AS INACCURATE 
          SA6    GDBD 
          PRINT  (=2C  )
          PRINT  (=C+ *********WARNING -  INACCURATE DAYFILE BUFFER POIN
,TERS+) 
          PRINT  (=2C  )
 GDB6     SX1    B0          INDICATE SUFFICIENT NFL SPACE
  
 GDB      SUBR               ENTRY/EXIT 
          SX6    0
          SA6    GDBD        PRESET POINTERS AS ACCURATE
          SA1    L.TSC1      GET TABLE LENGTH 
          SX3    3           LENGTH OF DAYFILE POINTERS 
          IX1    X3-X1       CHANGE IN LENGTH 
          SB2    A0          SAVE (A0)
          ALLOC  TSC1,X1
          SA0    B2          RESTORE (A0) 
          SA4    CN          CONTROL POINT NUMBER 
          SA1    NC 
          NG     X4,GDB1     IF ACCOUNTING, ERRLOG OR BML DAYFILE 
          ZR     X4,GDB2     IF SYSTEM DAYFILE
          SX2    X1+B1
          BX3    X2-X4
          NZ     X3,GDB4     IF NOT SYSTEM CONTROL POINT
          SX4    B0 
          EQ     GDB2        PROCESS SYSTEM DAYFILE POINTERS
  
 GDB1     BX4    -X4
 GDB2     SA1    F.TCMT 
          SB5    X1          TCMT BASE ADDRESS
          SA3    B5+DFPP     LOW CORE DAYFILE BUFFER POINTERS POINTER 
          LX3    24 
          SX3    X3 
          SX2    3           CALCULATE POINTER OFFSET 
          IX4    X4*X2
          IX6    X3+X4       ADDRESS OF DAYFILE BUFFER POINTERS 
          SA6    GDBC 
          SX1    B5+X6       GET ABSOLUTE ADDRESS OF POINTERS 
          SA2    F.TSC1      MOVE POINTER WORDS TO TSC1 
          SA1    X1 
          BX6    X1 
          SA6    X2 
          SA1    A1+B1
          BX6    X1 
          SA6    A6+B1
          SA1    A1+B1
          BX6    X1 
          SA6    A6+B1
 GDB3     MX1    -12
          SA3    F.TSC1      SET FWA OF POINTERS
          SA3    X3 
          SA2    A3+B1       GET DAYFILE BUFFER LENGTH
          AX2    24 
          BX6    -X1*X2 
          MX2    -24
          SA6    GDBB        SAVE BUFFER LENGTH 
          SA1    F.TCMT      GET MACHINE FL 
          SA1    X1+MABL
          AX1    12 
          BX1    -X2*X1 
          LX1    6
          AX3    36          GET BUFFER FWA 
          IX2    X3-X1
          IX2    X2+X6
          PL     X2,GDB5     IF BUFFER LWA+1 BEYOND MACHINE FL
          ZR     X6,GDBX     IF NO BUFFER 
          RJ     SCM         SELECT CM RECORD 
          SA7    RI 
          RJ     PCM         POSITION 60 BIT MEMORY 
  
*         ALLOCATE BUFFER SPACE AND READ THE DAYFILE BUFFER.
  
          SA3    GDBB        GET BUFFER LENGTH
          SA1    L.TSCR 
          IX1    X3-X1
          SB2    A0+         SAVE A0
          ALLOC  TSCR,X1     ALLOCATE SCRATCH TABLE SPACE 
          SA0    B2          RESTORE A0 
          GETCM  X2,X3       READ BUFFER TO TABLE 
          EQ     GDB6        INDICATE SUFFICIENT NFL SPACE
  
 GDB4     RJ     CNL         CHECK NFL LENGTH 
          NG     X1,GDBX     IF INSUFFICIENT NFL SPACE
          SA2    OP          ADD PCPA OFFSET
          LX4    7
          IX1    X4+X2
          RJ     GFL         GET CONTROL POINT RA 
          SX3    DAPN 
          IX3    X6-X3       ABSOLUTE ADDRESS OF POINTER WORDS
          BX6    X3 
          SA6    GDBC 
          RJ     SCM         SELECT CM RECORD 
          SA7    RI 
          RJ     PCM         POSITION TO CM RECORD
          SA2    F.TSC1      READ POINTER WORDS TO TSC1 
          GETCM  X2,3 
          SA1    GDBC        FORM ABSOLUTE VALUE FOR *FIRST*
          SX0    DAYN-DAPN
          SA2    F.TSC1 
          IX6    X1-X0
          SA1    X2 
          LX6    36 
          BX6    X1+X6
          SA6    A1 
          EQ     GDB3        READ DAYFILE BUFFER
  
  
 GDBB     BSS    1           DAYFILE BUFFER LENGTH
 GDBC     BSS    1           MEMORY ADDRESS OF POINTERS 
 GDBD     BSS    1           INACCURATE BUFFER POINTERS FLAG
 GEE      SPACE  4,15 
**        GEE - GET EJT ENTRY.
* 
*         ENTRY  (FW) = CPA FWA.
*                (RI) = CM RANDOM INDEX.
* 
*         EXIT   (X1) = 0 IF CONTROL POINT NOT ACTIVE.
*                (X5) = FWA OF EJT ENTRY IF ACTIVE. 
*                EJT ENTRY STORED AT *BUF* IF ACTIVE. 
* 
*         USES   X - 0, 1, 2, 3, 4, 5, 6. 
*                A - 1, 2, 3, 4.
* 
*         CALLS  PCM. 
* 
*         MACROS GETCM. 
  
  
 GEE2     SX1    0           SET INACTIVE CP
  
 GEE      SUBR               ENTRY/EXIT 
          SA2    F.TCMT      SET FWA EJT ENTRY
          SA1    X2+EJTP
          SA4    FW 
          AX1    36          FWA EJT
          IX3    X4+X2       FWA CONTROL POINT AREA 
          SA3    X3+TFSW
          MX0    12 
          BX6    X0*X3
          SX3    EJTE 
          NZ     X6,GEE1     IF ACTIVE CP 
          SA2    NC          CHECK FOR SYSTEM CP
          SX2    X2+1 
          LX2    7
          IX2    X2-X4
          NZ     X2,GEE2     IF INACTIVE CP 
 GEE1     LX6    12 
          SA6    GEEA        SAVE EJT ORDINAL 
          IX3    X6*X3
          IX3    X1+X3
          SX5    X3          SAVE FWA EJT ENTRY 
          RJ     PCM         POSITION TO EJT ENTRY
          GETCM  BUF,EJTE 
          SX1    1           SET EJT ENTRY FOUND
          EQ     GEEX        RETURN 
  
  
 GEEA     CON    0           EJT ORDINAL
 GFL      SPACE  4,15 
**        GFL - GET FL AND RA.
* 
*         ENTRY  (X1) = RELATIVE CPA/PCPA ADDRESS.
* 
*         EXIT   (X1) = (X1)+(F.TCMT).
*                (X2) = *FLSW* WORD OF CPA/PCPA, RIGHT SHIFTED 12 BITS. 
*                (X6) = RA. 
*                (X7) = FL. 
* 
*         USES   X - 1, 2, 6, 7.
*                A - 2. 
  
  
 GFL      SUBR               ENTRY/EXIT 
          SA2    F.TCMT 
          IX1    X1+X2
          MX7    -12
          SA2    X1+FLSW
          BX7    -X7*X2      FL/100B
          AX2    12 
          MX6    -15
          BX6    -X6*X2      RA/100B
          LX6    6           RA 
          LX7    6           FL 
          EQ     GFLX        RETURN 
 GHA      SPACE  4,10 
**        GHA - GET HARDWARE ADDRESS. 
* 
*         ENTRY  INPUT LINE OF FORM - 
*                NNNNN.  -  REAL MEMORY ADDRESS.
*                ASID#NNNNNNNN.  -  SYSTEM VIRTUAL ADDRESS. 
*                SEG#NNNNNNNN#EXCH.  -  PVA.
*                REG#EXCH.   -  PVA FROM EXCHANGE PACKAGE.
*                NNNNNNNN#REG#EXCH.  -  SPECIFIC BYTE OFFSET. 
* 
*         EXIT   (X6) = REAL MEMORY ADDRESS/SVA.
*                (B6) = 0, IF NO ADDRESS DECODED. 
* 
*         CALLS  ASX, FRV, GXA, LTE.
  
  
 GHA      SUBR               ENTRY/EXIT 
          SA1    CHAR 
          SX2    100B 
 GHA1     SA1    A1+B1       FLAG THE *+* AND *-* CHARACTERS
          SB6    X1-1R+ 
          BX6    X2+X1
          NG     B6,GHA1     IF NOT A SEPARATOR 
          SX1    X1-1R. 
          ZR     X1,GHA2     IF LINE TERMINATOR 
          GT     B6,B1,GHA1  IF NOT A *+* OR *-*
          SA6    A1 
          JP     GHA1        CHECK NEXT CHARACTER 
  
 GHA2     SX6    0
          SA6    GATA        CLEAR GAT FLAG 
          RJ     GAT         GET ADDRESS TOKEN
          ZR     B6,GHA5     IF NO TOKEN
          MX7    -32
          SA7    GHAA        SET FLAG 
          PL     X2,GHA6     IF NOT A RMA SYMBOL OR A NUMBER
          SA6    A7 
          RJ     GAT         GET TOKEN
          ZR     B6,GHA4     IF ONLY RMA OR NUMBER
          SA1    GHAA        FETCH ASID/SEGMENT 
          LX1    32 
          PL     X2,GHA6     IF NOT A NUMBER OR RMA SYMBOL
          BX6    X1+X6       FORM SVA/PVA 
          SA6    A1 
          RJ     GXA         GET EXCHANGE ADDRESS 
          ZR     B6,GHA4     IF NO SYMBOL SPECIFIED 
          SA6    GHAB        SAVE SEGMENT TABLE LENGTH/ADDRESS
          NG     X2,GHA8     IF EXCHANGE ADDRESS SPECIFIED
          JP     ERR6        NOT GOOD AT ALL
  
 GHA3     RJ     GAT
 GHA4     NZ     B6,ERR6     IF BAD SYNTAX
          SA1    GHAA        FETCH SVA
          BX6    X1 
          SB6    B1 
 GHA5     SA1    CH          CHECK DELIMITER
          SA2    X1 
          SB2    X2-1R+-100B
          NG     B2,GHAX     IF NOT A SPECIAL CHARACTER 
          SX7    -B2
          AX7    1
          SA7    GHAB 
          RJ     ASX         GET HEX DIGIT
          ZR     B6,ERR6     IF NO NUMBER GIVEN 
          NZ     X4,ERR6     IF NOT A HEX NUMBER
          SA1    GHAA        FETCH VALUE TO INCREMENT 
          SA2    A1+B1       FETCH SIGN 
          ERRNZ  GHAA+1-GHAB
          BX6    X2-X6
          IX6    X1+X6
          SA6    A1 
          JP     GHA5        CHECK FOR END OF ADDRESS 
  
 GHA6     LX2    59-P.REG-59+P.RMA
          PL     X2,ERR6     IF NOT A REGISTER
          SA6    GHAB        SAVE REGISTER POSITION 
          RJ     GXA         GET EXCHANGE ADDRESS 
          ZR     B6,ERR6     IF NOT SPECIFIED 
          PL     X2,ERR6     IF NOT AN EXCHANGE ADDRESS 
          SA1    GHAB        FETCH REGISTER POSITION
          SA2    X1 
          SA6    A1 
          SB2    X1-BUF 
          BX6    X2 
          NG     B2,GHA7     IF PSEUDO REGISTER 
          SA1    A2+B1
          SA3    A1+B1
          LX1    16 
          LX2    32 
          BX6    X1+X3
          BX6    X2+X6
 GHA7     RJ     EVA         EXPAND VIRTUAL ADDRESS 
          SA1    GHAA        GET REPLACEMENT BYTE VALUE 
          ZR     X2,ERR44    IF NIL POINTER 
          SA7    A1          SAVE REGISTER VALUE
          NG     X1,GHA8     IF NO BYTE REPLACEMENT 
          BX7    X6+X1
          SA7    A1 
 GHA8     SB2    GHAA        (SEGMENT, EXCHANGE ADDRESS)
          RJ     SVA         DETERMINE ASID 
          SA6    GHAA 
          JP     GHA3        CHECK FOR PROPER ADDRESS TERMINATION 
  
 GHAA     DATA   0           BYTE OFFSET
 GHAB     DATA   0           EXCHANGE PACKAGE ADDRESS 
 GID      SPACE  4,10 
**        GID - GET ELEMENT IDENTIFIER. 
* 
*         ENTRY  (X1) = RECORD IDENTIFIER.
* 
*         EXIT   (X6) = ELEMENT ID/0#10.
*                (X7) = ELEMENT ID. 
* 
*         USES   X - 5, 6, 7. 
*                A - 6. 
* 
*         CALLS  RDR, SFR.
  
  
 GID      SUBR               ENTRY/EXIT 
          RJ     RDR         READ DUMP RECORD 
          ZR     X2,ERR14    IF RECORD NOT FOUND
          SX5    /IOU/EIMR   ELEMENT ID REGISTER
          RJ     SFR         SEARCH FOR REGISTER
          NG     X1,ERR14    IF REGISTER NOT FOUND
          MX5    -8 
          AX7    16 
          BX7    -X5*X7 
          BX6    X7 
          AX6    4
          EQ     GIDX        RETURN 
 GNF      SPACE  4,21 
**        GNF - GET NEXT FILE.
* 
*         ENTRY  FI = CURRENT FNT INDEX.
*                CN = CONTROL POINT NUMBER. 
*                (RC) = RA OF CURRENT CONTROL POINT.
* 
*         EXIT   X1 = 0 IF END OF FNT.
*                 .NE.0 IF FILE FOUND.
*                FI IS UPDATED. 
*                GNFA = FILE INFORMATION AS FOLLOWS - 
* 
*                +0 - FNT ORDINAL OF FILE.
*                +1 - FNT.
*                +2 - FST.
*                +3 - FUT.
*                +4 - EST ADDRESS.
*                +5 - EST.
* 
*         SAVES  X - 5. 
*                B - 1. 
*                A - 0,5. 
  
  
 GNF      SUBR
          SA1    F.TCMT 
          SB2    X1          TCMT TABLE BASE ADDRESS
          SA1    F.TNFL      FORM ADDRESS OF RA IN TNFL 
          SA2    L.TNFL 
          IX4    X1+X2
          SA2    CN 
          SA1    NC 
          SX1    X1+B1
          BX1    X1-X2
          ZR     X1,GNFX     IF SYSTEM CONTROL POINT
          SA5    FI 
          EQ     GNF3        ENTER SEARCH LOOP
  
 GNF2     IX2    X4-X5       READ NEXT FNT ENTRY
          SX5    X5+LENF     ADVANCE FNT ORDINAL
          SA1    X2 
          NZ     X1,GNF4     IF ENTRY PRESENT 
 GNF3     SA1    L.TNFL 
          IX1    X1-X5
          PL     X1,GNF2     IF NOT END OF FNT
          SX1    0
          JP     GNFX        EXIT 
  
*         SET FILE INFORMATION IN PARAMETER BLOCK.
  
 GNF4     BX6    X5          SAVE FNT ORDINAL FOR NEXT CALL 
          SA6    FI 
          IX7    X4-X2
          SA7    GNFA        SET FNT ORDINAL
          BX6    X1          SET FNT CONTENTS 
          SA6    A7+B1
          SA1    A1+B1
          BX7    X1          SET FST CONTENTS 
          SA7    A6+B1
          AX7    48 
          SX0    X7 
          SA1    A1+B1       READ FUT 
          BX6    X1          SET FUT
          SA6    A7+B1
          SA1    B2+ESTP     GET EST POINTER WORD 
          AX1    36 
          SX1    X1+EQDE
          R=     X2,ESTE
          IX0    X0*X2
          IX7    X0+X1
          SA7    A6+B1
          SA1    X7+B2       READ EST 
          BX6    X1 
          SA6    A7+B1
          SX1    B1          SET FILE FOUND 
          JP     GNFX        EXIT 
  
 GNFA     BSS    0           FILE PARAMETERS
          LOC    0
  
          CON    0           FNT ORDINAL
          CON    0           FNT
          CON    0           FST
          CON    0           FUT
          CON    0           EST ADDRESS
          CON    0           EST
          LOC    *O 
 GPS      SPACE  4,15 
**        GPS - GET PP SAVE AREA ENTRY. 
* 
*         EXIT   (X5) = 0, IF PP NOT FOUND IN PP SAVE AREA. 
* 
*         USES   X - ALL. 
*                A - ALL. 
*                B - 2, 3, 4, 5, 6, 7.
* 
*         CALLS  CPN, PCM, SCM. 
* 
*         MACROS GETCM. 
  
  
 GPS      SUBR               ENTRY/EXIT 
          SA1    F.TCMT 
          SA3    X1+PPSP     GET FWA AND NUMBER OF SAVE AREAS POSSIBLE
          MX5    -12
          BX5    -X5*X3      NUMBER OF SAVE AREA ENTRIES
          ZR     X5,GPSX     IF NO ISHARED DEVICES
          SA4    PC          FWA OF PP COMMUNICATION AREA 
          SX4    X4+B1       OUTPUT REGISTER ADDRESS FOR PP 0 
          LX3    -12
          SX6    X3-PPSA     FWA OF SAVE AREAS - *PPSA* 
          SA6    GPSB 
          RJ     CPN         GET CONVERTED PP NUMBER
          LX6    3
          IX6    X6+X4       OUTPUT REGISTER ADDRESS FOR THIS PP
          SA6    GPSC 
          SA4    SBTL1       PRESERVE SUBTITLE
          RJ     SCM
          BX6    X4          RESTORE SUBTITLE 
          SA7    RI 
          SA6    A4 
  
*         CHECK NEXT ENTRY. 
  
 GPS2     ZR     X5,GPSX     IF PP NOT FOUND
          SX7    X5-1 
          SA3    GPSB        GET PP SAVE ENTRY FWA
          SA7    GPSA        STORE INDEX
          SX7    X3+PPSA
          SA7    A3 
          SX3    X7 
          RJ     PCM         POSITION DUMP FILE 
          GETCM              GET FWA OF THIS PP BUFFER IN X6
          SA1    GPSC        GET OUTPUT REGISTER ADDRESS FOR THIS PP
          SA5    GPSA        RESTORE INDEX
          MX3    12 
          BX3    X3*X6
          LX3    12 
          BX1    X1-X3
          NZ     X1,GPS2     IF PP DATA NOT FOUND IN PP SAVE AREA 
          SA6    PSAV        SAVE THE FIRST WORD
          SA6    GPSD 
          GETCM  PSAV+1,PPSA-1  GET REST OF PP SAVE AREA
  
*         MOVE BLOCKS FROM *PSAV* TO *PBUF*.
  
          SX6    1S1         2**N-1 NUMBER OF BLOCKS TO MOVE
          SA4    PSAV+8      FWA OF PP MEMORY IN SAVE BUFFER
          SB6    PBUF+4095/5 LAST WORD OF *PBUF*
          SA6    GPSA 
 GPS3     SA2    GPSA 
          SA3    GPSD 
          SA0    60          SET CONSTANT 
          MX5    -24         INSURE EXIT CONDTION 
          AX7    X2,B1
          ZR     X2,GPSX     IF COMPLETE
          SA7    A2 
          BX6    X3 
          BX3    -X5*X3 
          LX6    12          POSITION NEXT PAIR OF BYTES
          AX3    12          FIRST BYTE ADDRESS 
          SA6    A3 
          SX7    A0 
          AX6    48          WORD COUNT OF SAVE BLOCK 
          IX6    X6*X7
          SB5    X6          NUMBER OF BITS TO MOVE IN THIS BLOCK 
          SX5    5
          IX0    X3/X5
          SX5    5
          SB7    X0+PBUF     FIRST *PBUF* WORD TO BE PARTIALLY REPLACED 
          SX3    X3+         CLEAR PACKING DONE BY *IXX/X*
          IX0    X0*X5
          IX0    X3-X0       NUMBER OF BYTES TO PRESERVE IN FIRST WORD
          SX5    12 
          IX6    X0*X5
          SB4    B0          NUMBER OF BITS MOVED 
  
*         COMPUTE SHIFT COUNTS AND MASKS. 
  
 GPS4     SB2    X6          NUMBER OF BITS TO PRESERVE 
          SB3    A0 
          BX7    X4          ALLOW SAVED BLOCK TO START AT 7777B
          BX0    X0-X0       SET UP N-BIT MASK FOR BITS TO PRESERVE 
          ZR     B2,GPS5     IF NO OFFSETTING REQUIRED
          SA2    B7          GET FIRST *PBUF* WORD TO REPLACE 
          SB3    B2-B1
          MX0    1           SET UP N-BIT MASK FOR BITS TO PRESERVE 
          AX0    B3 
          SB3    A0-B2       NUMBER OF BITS TO REPLACE
          BX7    X0*X2       BITS TO BE PRESERVED FROM *PBUF* WORD
  
*         MOVE PP BYTES FROM *PSAV* TO *PBUF*.
  
 GPS5     LX4    B3          GET REPLACEMENT BITS 
          BX1    -X0*X4 
          BX7    X7+X1
          SA7    B7 
          EQ     B7,B6,GPS6  IF LAST WORD OF *PBUF* 
          SB4    B4+A0       INCREMENT BIT COUNTER
          BX7    X0*X4       NEXT WORD-S UPPER BITS 
          SA4    A4+B1       GET NEXT WORD-S LOWER BITS FROM *PSAV* 
          SB7    B7+B1       INCR *PBUF* POINTER
          LT     B4,B5,GPS5  IF MORE BITS TO BE MOVED 
  
*         SET THE LAST BYTES FROM *PSAV* IN *PBUF*. 
  
          SA3    B7          GET THE UNREPLACED BITS FROM *PBUF*
          BX3    -X0*X3 
          BX7    X7+X3
          SA7    B7 
          NE     B7,B6,GPS3  IF NOT LAST WORD OF *PBUF* 
  
*         MOVE BYTE 7777B INTO *PBUF*.
  
 GPS6     MX2    12          STORE ONLY BYTE 7777B
          BX6    X2*X7
          LX7    12          MOVE BYTE 0 TO TOP OF WORD 
          SA6    B7 
          SB7    PBUF        RESET *PBUF* POINTER 
          NZ     B2,GPS7     IF OFFSETTING WAS REQUIRED 
          SB2    A0 
          MX0    60 
          SA4    A4+B1
          SB4    B4+A0
 GPS7     SX6    B2-12
          SA3    B7          GET ORIGINAL BYTES 0-4 
          LX4    B2          RESTORE REPLACEMENT BITS 
          ZR     X6,GPS8     IF NO OFFSETTING WILL BE REQUIRED
  
*         MOVE BYTE 0000 TO *PBUF** 
  
          BX0    -X2*X0      ADJUST MASK
          LX0    12 
          BX7    X0*X7
          BX3    -X0*X3 
          BX7    X7+X3
          SA7    B7 
 GPS8     LT     B4,B5,GPS4  IF MORE BYTES IN BLOCK 
          EQ     GPS3        CHECK NEXT BLOCK 
  
  
 GPSA     BSS    1           COUNTER
 GPSB     BSS    1           FWA OF PP SAVE AREA BUFFER 
 GPSC     BSS    1           OUTPUT REGISTER ADDRESS FOR THIS PP
 GPSD     BSS    1           SAVED DATA PARAMETERS
 GRV      SPACE  4,10 
**        GRV - GET R-REGISTER VALUE. 
* 
*         ENTRY  (PBUF) = IOU MEMORY RECORD.
* 
*         EXIT   (X1) = 24/R-REG, 36/0
* 
*         USES   A - 1, 2.
*                X - 1, 2, 3, 6.
  
  
 GRV1     SA1    PBUF+819    FIRST PART OF R-REGISTER (C170-865/875)
          SA2    A1+B1       SECOND PART
          MX3    -12
          BX1    -X3*X1 
          MX3    12 
          BX2    X3*X2
          BX1    X1+X2
          LX1    -12         POSITION R-REGISTER
  
 GRV      SUBR               ENTRY/EXIT 
          SA1    AP 
          ZR     X1,GRV1     IF NOT 180 CLASS MACHINE 
          SA1    IO 
          ZR     X1,GRV2     IF I4A OR I4S IOU
          SA1    PBUF+1092   GET R-REGISTER UPPER PART
          SA2    A1+B1       LOWER PART 
          MX3    12          PACK INTO 22 BITS
          BX1    -X3*X1 
          BX2    X3*X2
          IX6    X1+X2
          LX6    -24
          BX1    X3*X6
          LX3    -16
          BX2    X3*X6
          LX2    4
          BX1    X1+X2
          EQ     GRVX        RETURN 
  
 GRV2     SA1    PBUF+2184   GET R-REGISTER BITS (36-41)
          MX3    -6 
          BX2    -X3*X1 
          LX2    59-5 
          SA1    A1+B1       GET REMAINDER OF R-REGISTER (42-57)
          MX3    4
          BX6    X3*X1
          LX6    -6 
          BX2    X2+X6
          MX3    12 
          LX3    -8 
          BX6    X3*X1
          LX6    -2 
          BX1    X2+X6
          LX1    -2          SHIFT RESULT FOR PROPER FORMAT 
          EQ     GRVX        RETURN 
 GSR      SPACE  4,12 
**        GSR - GET SELECTED RECORD.
* 
*         ENTRY  X6 = REQUESTED RECORD NAME.
*                   = 0 IF NEXT RECORD REQUESTED. 
* 
*         EXIT   X7 = 0 IF RECORD NOT FOUND.
*                   = 1 IF NAMED RECORD.
*                   = 2 IF RECORD NAME = -*-. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  CIO=,RDO=,RDW=,WNB=. 
  
  
 GSR      SUBR
          BX5    X6          SAVE RECORD NAME 
          RECALL J
 GSR1     READ   J
          READO  X2          READ RECORD NAME 
          SX7    0           PRESET RECORD NOT FOUND
          NZ     X1,GSRX     IF EMPTY RECORD OR EOF 
  
*         REMOVE BLANKS FROM NAME.
  
          MX0    -6 
          SB2    7
 GSR2     LX6    6
          BX3    -X0*X6 
          SX2    X3-1R
          SB2    B2-B1
          NZ     X2,GSR3     IF NOT BLANK 
          BX6    X0*X6       REMOVE BLANK 
 GSR3     NZ     B2,GSR2     LOOP 
          LX6    3*6
          BX4    X6-X5
          SX7    1
          ZR     X5,GSRX     IF NEXT RECORD REQUESTED 
          SA1    =1L* 
          SX7    X7+B1
          BX1    X1-X5
          ZR     X1,GSRX     IF READ TO EOF REQUESTED 
          SX7    1
          ZR     X4,GSRX     IF NAMED RECORD FOUND
 GSR4     READW  J,BUF,BUFL  SKIP TO NEXT RECORD
          ZR     X1,GSR4     IF NOT END OF RECORD 
          JP     GSR1        CHECK NEXT RECORD
 GTD      SPACE  4,12 
**        GTD - GENERATE DETAILED TABLE DUMP. 
* 
*         ENTRY  (X1) = FORMAT TABLE POINTERS.
*                24/0,18/LEFT COLUMN FWA,18/RIGHT COLUMN FWA
*                (B2) = TABLE ADDRESS IN CORE.
*                (FW) = TABLE ADDRESS IN DUMP FILE. 
* 
*         USES   X - 1, 2, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 2, 7.
* 
*         CALLS  PTL, SSB.
* 
*         MACROS PRINT. 
  
  
 GTD      SUBR
          SX6    X1 
          SA6    GTDA        SET RIGHT COLUMN TABLE POINTER 
          SX7    B2 
          SA7    GTDC        SAVE DATA ADDRESS
          AX1    18 
          SX6    X1 
          SA6    GTDB        SET LEFT COLUMN TABLE POINTER
          RJ     SSB         CLEAR PRINT STRING 
 GTD1     SA1    GTDB 
          SA2    GTDC 
          SB2    X2+         SET DATA ADDRESS 
          SB7    PRBF 
          RJ     PTL         FORMAT LEFT COLUMN 
          SA1    GTDA 
          ZR     X1,GTD2     IF ONLY 1 COLUMN TO BE DUMPED
          NG     X2,GTDX     IF END OF DUMP 
          SB7    PRBF+69
          RJ     PTL         FORMAT RIGHT COLUMN
          PRINT  CCCH,B7-CCCH  PRINT 2 COLUMNS
          EQ     GTD1        CONTINUE 
  
 GTD2     PRINT  CCCH,B7-CCCH  PRINT ONLY 1 COLUMN
          SA1    GTDB 
          SA2    X1+
          ZR     X2,GTDX     IF END OF DUMP 
          PL     X2,GTD1     IF NOT AT END OF LEFT COLUMN 
          SX6    X1+B1       BEGIN DUMP OF RIGHT COLUMN 
          SA6    A1 
          EQ     GTD1        CONTINUE 
  
 GTDA     BSS    1           RIGHT COLUMN FORMAT TABLE POINTER
 GTDB     BSS    1           LEFT COLUMN FORMAT TABLE POINTER 
 GTDC     BSS    1           TABLE DATA ADDRESS 
 GTE      SPACE  4,10 
**        GTE - GET TABLE ENTRY.
* 
*         ENTRY  (X0) = ENTRY FWA RELATIVE TO TABLE FWA 
*                         IN DUMP FILE. 
*                (X1) = ENTRY LENGTH. 
*                (X2) = TABLE LENGTH. 
*                (X3) = TABLE FWA IN DUMP FILE. 
*                     = 0, IF CM BUFFER REQUIRES INITIAL READ.
*                (X4) = ENTRY NUMBER. 
* 
*         EXIT   (X5) = ABSOLUTE ENTRY FWA IN CM BUFFER.
* 
*                CM BUFFER CONTAINS NEW TABLE DATA, IF DESIRED
*                  ENTRY WAS NOT FOUND IN ORIGINAL DATA.
* 
*         USES   X - 2, 3, 5, 6.
*                A - 3, 6.
*                B - 2. 
* 
*         CALLS  POM. 
* 
*         MACROS GETCM. 
  
  
 GTE      SUBR               ENTRY/EXIT 
          NZ     X3,GTE1     IF FIRST ACCESS OF TABLE 
          SA3    GTEB        GET LAST ENTRY NUMBER
          IX3    X3-X4
          NG     X3,GTE2     IF ENTRY NOT IN CM BUFFER
          SA3    GTEA        GET FIRST ENTRY NUMBER 
          IX3    X4-X3
          NG     X3,GTE2     IF ENTRY NOT IN CM BUFFER
          IX3    X3*X1       SET FWA OF ENTRY IN CM BUFFER
          SX5    X3+BUF 
          EQ     GTEX        RETURN 
  
*         READ TABLE ENTRIES INTO CM BUFFER.
  
 GTE1     SX6    X3+
          SA6    GTEC        STORE FWA OF TABLE 
 GTE2     SX6    X4+
          SA6    GTEA        STORE FIRST ENTRY NUMBER 
          IX2    X2-X0
          SX3    X2-BUFL
          NG     X3,GTE3     IF CM BUFFER NOT FILLED
          SX2    BUFL        SET BUFFER LENGTH = BUFFER SIZE
 GTE3     SX5    X2          SET BUFFER LENGTH = REST OF TABLE
          IX3    X2/X1       NUMBER OF ENTRIES THAT FIT IN CM BUFFER
          IX3    X4+X3
          SX6    X3-1 
          SA6    GTEB        STORE LAST ENTRY NUMBER
          SA3    GTEC        GET FWA OF TABLE 
          IX6    X3+X0       FIND FWA OF DESIRED ENTRY
          SA6    CPRA 
          SB2    A6 
          RJ     POM         POSITION TO FWA OF ENTRY 
          GETCM  BUF,X5      READ TABLE ENTRIES 
          SX5    BUF         SET FWA OF ENTRY IN CM BUFFER
          EQ     GTEX        RETURN 
  
 GTEA     BSS    1           FIRST ENTRY NUMBER IN CM BUFFER
 GTEB     BSS    1           LAST ENTRY NUMBER IN CM BUFFER 
 GTEC     BSS    1           FWA OF TABLE BEING ACCESSED
 GXA      SPACE  4,15 
**        GXA - GET EXCHANGE PACKAGE ADDRESS. 
* 
*         CRACK EXCHANGE PACKAGE ADDRESS PARAMETER. 
* 
*         ENTRY  DIRECTIVE IN BUFFER. 
* 
*         EXIT   (B6) = 0, IF NO TOKEN OBTAINED FROM *GAT*. 
*                (X2) .LT. 0, IF EXCHANGE PACKAGE ADDRESS FOUND.
*                (X6) = 12/0, 16/STL, 32/STA. 
* 
*         USES   X - 1, 2, 3, 4, 6. 
*                B - 6. 
* 
*         CALLS  CSI, GAT, PTX, RMB.
  
  
 GXA      SUBR               ENTRY/EXIT 
          RJ     GAT         GET ADDRESS TOKEN. 
          ZR     B6,GXAX     IF NOT SPECIFIED 
          BX4    X2+X4
          SB6    A1 
          PL     X4,GXAX     IF NOT A VALID EXCHANGE PACKAGE SYMBOL 
          SX3    B0+         SET NO RADIAL MCI DISPLAY
          RJ     PTX         POSITION TO EXCHANGE PACKAGE 
          SX6    51 
          SX1    0
          RJ     RMB         READ MEMORY BLOCK
          RJ     CSI         COLLECT SEGMENT INFORMATION
          SB6    B1 
          MX2    1
          JP     GXAX        RETURN 
 HTS      SPACE  4,15 
**        HTS - HEX TO STRING BUFFER. 
* 
*         ENTRY  (X1) = HEX DIGITS LEFT JUSTIFIED.
*                (B6) = NUMBER OF DIGITS TO CONVERT.
*                (B7) = ADDRESS OF STRING BUFFER. 
* 
*         EXIT   (B7) IS UPDATED. 
*                (X1) IS LEFT SHIFTED (B6)*4 PLACES.
* 
*         USES   X - 0, 1, 2, 3, 7. 
*                A - 7. 
*                B - 6, 7.
  
  
 HTS      SUBR               ENTRY/EXIT 
          MX0    -4          DIGIT MASK 
 HTS1     LX1    4
          BX3    -X0*X1 
          SX7    X3+1R0      ASSUME DIGIT .LT. 0#A
          SX3    X3-0#A 
          NG     X3,HTS2     IF DIGIT .LT. 0#A
          SX7    X3+1RA      SET A - F
 HTS2     SA7    B7 
          SB7    B7+B1
          SB6    B6-B1
          NZ     B6,HTS1     IF MORE DIGITS 
          EQ     HTSX        RETURN 
 ICT      SPACE  4,8
**        ICT - INITIALIZE CHANNEL TABLE. 
* 
*         EXIT   (BUF - BUF+CTALL*5) = CHANNEL STATUS TABLE 
*                  RESERVATION BYTES, LEFT JUSTIFIED. 
* 
*         USES   X - 0, 1, 2, 6.
*                A - 1, 2, 6. 
*                B - 2, 3, 4, 5.
  
  
 ICT      SUBR
          SA1    F.TCMT 
          SA2    X1+CHTP     CHANNEL STATUS TABLE FWA 
          AX2    12 
          SB2    X2 
          SB2    X1+B2
          MX0    12 
          SB5    B2+CTALL    CHANNEL STATUS TABLE LWA+1 
          SB3    BUF
 ICT1     SB4    5           BYTE COUNTER 
          SA2    B2+         READ NEXT TABLE WORD 
 ICT2     BX6    X0*X2       EXTRACT RESERVATION BYTE 
          LX2    12 
          SA6    B3 
          SB4    B4-B1       COUNT BYTE 
          SB3    B3+B1
          NZ     B4,ICT2     IF MORE BYTES IN THIS WORD 
          SB2    B2+B1       ADVANCE TABLE POINTER
          LT     B2,B5,ICT1  IF MORE TABLE ENTRIES
          JP     ICTX        EXIT 
 IMR      SPACE  4,15 
**        IMR - PROCESS IOU MAINTENANCE REGISTER RECORD.
* 
*         ENTRY  VIA UNCONDITIONAL JUMP.
* 
*         EXIT   TO *RBI2* IF NORMAL. 
*                TO *PPE1* IF PREMATURE EOF.
* 
*         USES   X - 0, 1, 2, 5, 6, 7.
*                A - 1, 2, 6, 7.
* 
*         CALLS  CRS, RBF, SFR. 
  
  
 IMR      BSS    0           ENTRY
          SX6    1
          SA6    AP          DEFINE ADVANCED PROCESSOR
          SA1    ID 
          SA2    =3LDID 
          BX6    X1 
          LX7    X2 
          SA6    XI          SAVE IMR RECORD ID 
          SA7    A1          SET RECORD ID OF *DID* 
          RJ     CRS         COPY RECORD TO FILE *S*
          RJ     RBF         READ IOU MAINTENANCE REGISTERS 
          NZ     X1,PPE1     IF PREMATURE EOF 
          SA1    XI          IMR RECORD ID
          BX6    X1 
          SA6    ID 
          MX0    -18
          SX5    /IOU/IOSB   SEARCH FOR OS BOUNDS REGISTER
          RJ     SFR
          NG     X1,ERR42    IF NOT IN CURRENT BUFFER 
          BX6    -X0*X7 
          LX6    10          SET *NOS* MEMORY SIZE
          SA6    MEMB 
          RJ     CRS         COPY MAINTENANCE REGISTERS TO FILE *S* 
          EQ     RBI2        EXIT TO READ NEXT RECORD FROM FILE *F* 
 IPA      SPACE  4,15 
**        IPA - INITIALIZE FOR PPU ANALYSIS.
* 
*         ENTRY  (CH) = DIRECTIVE STRING POINTER. 
* 
*         EXIT   (IC) = *CPP* PROCESSING FLAG.
*                (PI) = 0 IF PP/CPP NUMBERS AND NAMES IN DIRECTIVE. 
*                   = PP COMMUNICATION AREA INDEX IF DUMPING ALL
*                     ACTIVE PPUS.
* 
*         USES   X - 1, 2, 6. 
*                A - 1, 2, 6. 
* 
*         CALLS  SRA. 
  
  
 IPA1     BX6    X1 
          SA6    PI          SET SEARCH INDEX 
  
 IPA      SUBR               ENTRY/EXIT 
          SA1    IC+1        GET *NPP*/*CPP* FLAG 
          BX6    X1 
          SA6    A1-B1       SET *CPP* PROCESSING FLAG
          SX6    0
          SA6    IPDA        SET PP FLAG
          SA6    PI          PRESET SEARCH INDEX
          SA6    FI          PRESET NAMED PPU SEARCH INDEX
          SA6    PP          PRESET PP NUMBER 
          RJ     SRA         SET REFERENCE ADDRESS
          SA1    CH 
          SA1    X1+
          SX1    X1-1R. 
          NZ     X1,IPAX     IF NUMBERS AND NAMES ON DIRECTIVE CARD 
          SA1    PC          GET PP COMMUNICATION AREA POINTER
          SA2    IC 
          ZR     X2,IPA1     IF NOT PROCESSING CPP-S
          SA2    NP 
          LX2    3
          IX1    X2+X1
          EQ     IPA1        SET SEARCH INDEX 
 IPD      SPACE  4,20 
**        IPD - INITIALIZE FOR PPU/FLPP DUMP. 
* 
*         ENTRY  (X6) = 0 IF PP OR CPP DUMP.
*                     = 1 IF FLPP DUMP. 
*                (CH) = CURRENT DIRECTIVE CARD STRING POINTER.
* 
*         EXIT   (IC) = *CPP* PROCESSING FLAG.
*                (PI) = 0 IF PP/CPP/FLPP NUMBERS ON DIRECTIVE CARD. 
*                     = *TDIR* TABLE POINTER FOR FIRST PP/CPP/FLPP
*                       IF DUMPING ALL. 
*                (PP) = 0.
*                (IPDA) = PPU/FLPP DUMP FLAG. 
* 
*         USES   X - 0, 1, 5, 6.
*                A - 1, 5, 6. 
* 
*         CALLS  BPN, SRA.
* 
*         MACROS SEARCH.
  
  
 IPD      SUBR               ENTRY/EXIT 
          SA6    IPDA        SAVE PPU/FLPP FLAG 
          SA1    IC+1        GET *NPP*/*CPP* FLAG 
          BX6    X1 
          SA6    A1-B1       SET *CPP* PROCESSING FLAG
          SX6    0
          SA6    PI          PRESET INDEX 
          SA6    PP 
          RJ     SRA         SET REFERENCE ADDRESS
          SA1    CH 
          SA1    X1+
          SX1    X1-1R. 
          NZ     X1,IPDX     IF NUMBERS ON DIRECTIVE CARD 
          SA5    IPDA 
          RJ     BPN
          ZR     X5,IPD1     IF NOT FLPP DUMP 
          MX0    15 
 IPD1     SEARCH TDIR,X7,X0  FIND PPU/FLPP/CPP TABLE ENTRY
          ZR     X2,ERR7     IF NOT FOUND 
          SX6    A2 
          SA6    PI          SET DIRECTORY INDEX FOR FIRST PPU/FLPP 
          EQ     IPDX        EXIT 
  
  
 IPDA     CON    0           PPU/FLPP FLAG
 IOQ      SPACE  4,20 
**        IOQ - DISPLAY IOU IN LINE FORMAT. 
* 
*         ENTRY  (DSPB  ) = FWA OF DUMP.
*                (DSPB+1) = LWA OF DUMP.
*                (DSPC  ) = LINE SIZE.
*                (DSPC+1) = HEX/OCTAL, ASCII/DISPLAY FLAGS. 
* 
*         EXIT   IOU DISPLAYED IN DESIRED LINE FORMAT.
* 
*         USES   B - 4, 5, 6, 7.
*                A - 1, 2, 4, 5, 6. 
*                X - 0, 1, 2, 3, 4, 5, 6. 
* 
*         CALLS  CTS, DPB, HTS, NXB, SAI, SDI, SRD. 
* 
*         MACROS PRINT. 
  
  
 IOQ      SUBR               ENTRY/EXIT 
          SA4    DSPC        BYTES PER LINE 
          SA5    A4+B1       HEX/OCTAL, ASCII/DISPLAY FLAGS 
 IOQ1     SB4    X4 
          SB5    X4 
          SA1    K4 
          SA1    X1+/DIRECT/TCTP
          NG     X1,IOQ1.1   IF CONTROLLER TYPE WITH 16 BIT ADDRESSES 
          LX4    B1,X4       SHIFT COUNT TO REFLECT BYTE ADDRESSING 
 IOQ1.1   SA1    DSPB 
          SA2    A1+B1
          IX3    X1-X2
          PL     X3,IOQX     IF DUMP IS FINISHED
          IX6    X1+X4
          SA6    A1          REPLACE FWA
          IX3    X2-X1
          PL     X1,IOQ2
          IX2    X3+X4
          SB4    X2 
 IOQ2     LX1    -16         POSITION ADDRESS 
          SB6    4           DISPLAY ADDRESS
          SB7    PRBF 
          SA2    K4          CONTROLLER TYPE
          SX2    X2-3 
          NZ     X2,IOQ2.1   IF NOT 63X 
          LX1    -4          SHIFT LAST DIGIT OF ADDRESS
          SB6    B6+B1       DIGIT COUNT
 IOQ2.1   SA2    K4 
          SX0    B1 
          BX2    X2-X0
          NZ     X2,IOQ2.2   IF NOT ISD 
          LX0    13-16       ADD 2000 (HEX) TO ADDRESS IF ISD 
          IX1    X1+X0
 IOQ2.2   RJ     HTS
          ZR     X5,IOQ2.4   IF HEX DUMP REQUESTED
          SB6    4
          SB7    B7-B6
          SA2    K4          CHECK CONTROLLER SIZE
          ZR     X2,IOQ2.3   IF 4K CONTROLLER 
          LX1    -3          PROCESS 8K CONTROLLER
          SB6    B6+B1
          SX2    X2-3 
          NZ     X2,IOQ2.3   IF NOT 63X 
          LX1    -3          SHIFT LAST DIGIT OF ADDRESS
          SB6    B6+B1       DIGIT COUNT
 IOQ2.3   LX1    -12
          RJ     CTS         CONVERT OCTAL ADDRESS
 IOQ2.4   SB7    B4+
          SB6    B5+
 IOQ3     RJ     NXB         COLLECT ONE BYTE 
          BX6    X1 
          SA6    BUF+B7 
          SB7    B7-B1
          NZ     B7,IOQ3     IF MORE BYTES TO COLLECT 
          SX1    BUF+1
          SB5    B6+         RESTORE B5 
          RJ     SRD
          SA4    DSPC        BYTES PER LINE 
          SA5    A4+B1
          NZ     X1,IOQ1     IF REPEATED DATA 
          SB7    PRBF+6 
          SB4    X4 
 IOQ4     SA1    B4+BUF      DISPLAY BYTES IN HEX OR OCTAL
          RJ     DPB
          SB4    B4-B1
          SB7    B7+2 
          NZ     B4,IOQ4     IF MORE DIGITS TO DISPLAY
          SB4    X4 
          SB7    B7+B1
 IOQ5     SA2    BUF+B4      PRINT CHARACTER REPRESENTATION 
          SB6    B1+B1
          SB4    B4-B1
          NG     B4,IOQ7     IF NO MORE BYTES TO INTERPRET
          NG     X5,IOQ6     IF DISPLAY CODE INTERPRETATION 
          LX2    -16
          RJ     SAI         SET ASCII INTERPRETATION 
          EQ     IOQ5        CHECK FOR MORE BYTES TO CONVERT
  
 IOQ6     SB6    B6+B1       DISPLAY 3 CHARACTERS IN DISPLAY CODE 
          LX2    -18
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          EQ     IOQ5        CHECK FOR MORE BYTES TO CONVERT
  
 IOQ7     PRINT  CCCH,B7-CCCH  DISPLAY LINE 
          SA4    DSPC 
          EQ     IOQ1        REPEAT UNTIL ALL BYTES DISPLAYED 
 IPO      SPACE  4,15 
**        IPO - INSPECT PPU OCTAL BLOCK FORMAT. 
* 
*         ENTRY  (DSPB+0) = FWA OF DUMP.
*                (DSPB+1) = LWA OF DUMP.
* 
*         EXIT   TO *DSPX*. 
* 
*         USES   B - 4, 6, 7. 
*                A - 1, 2, 6. 
*                X - 1, 2, 3, 5, 6. 
* 
*         CALLS  CPS, CTS, DPB, NXB, UPS. 
* 
*         MACROS PRINT. 
  
  
 IPO      BSS    0           ENTRY
          SX1    10          ENSURE AT LEAST TEN LINES ON THE PAGE
          RJ     CPS         CHECK PAGE SPACE 
          PRINT  (=2C  )
          SA2    IPOA 
          SB7    PRBF 
          SB6    70 
          RJ     UPS         UNPACK HEADER
          SA1    DSPB        FWA
          SB6    3
          LX1    60-15
          SB7    PRBF 
          RJ     CTS
          PRINT  CCCH,71
          SX6    1R 
          SA6    PRBF 
          SA6    A6+B1
          SA6    A6+B1
          SB7    -100B
 IPO2     RJ     NXB         GET THE NEXT 100 BYTES 
          BX6    X1 
          SA6    B7+BUF+100B
          SB7    B7+B1
          NZ     B7,IPO2     IF MORE BYTES NEEDED 
          SX5    -10B 
 IPO3     SX6    X5+1R0+10B 
          SA6    PRBF+4 
          SB7    PRBF+5 
          SB4    10B
          SA1    X5+BUF+10B 
 IPO4     SB7    B7+2        INCREMENT STRING POINTER 
          RJ     DPB         DISPLAY PPU MEMORY 
          SA1    A1+10B 
          SB4    B4-B1
          NZ     B4,IPO4     IF NOT FINISHED
          PRINT  CCCH,71
          SX5    X5+B1
          NZ     X5,IPO3     IF NOT FINISHED WITH BLOCK 
          SA1    DSPB 
          SX6    X1+100B
          SA6    A1 
          SA2    A1+B1
          IX3    X6-X2
          NG     X3,IPO      IF NOT COMPLETE
          EQ     DSPX        RETURN 
  
  
 IPOA     DATA   40H 00XX      0X      1X      2X      3X 
          DATA   30H   4X      5X      6X      7X 
          SPACE  4,15 
**        IPX - INSPECT PPU HEX BLOCK FORMAT. 
* 
*         ENTRY  (DSPB+0) = FWA OF DUMP.
*                (DSPB+1) = LWA OF DUMP.
* 
*         EXIT   TO *DSPX*. 
* 
*         USES   B - 3, 4, 6, 7.
*                A - 1, 2, 6. 
*                X - 1, 2, 3, 5, 6. 
* 
*         CALLS  CPS, DPB, HTS, NXB, UPS. 
* 
*         MACROS PRINT. 
  
  
 IPX      BSS    0           ENTRY
 IPX1     SX1    18 
          RJ     CPS         ENSURE AT LEAST 18 LINES ON PAGE 
          PRINT  (=2C  )
          SA2    IPXA        *   NXX    0X    1X ...* 
          SB6    102
          SB7    PRBF 
          RJ     UPS         UNPACK STRING
          SA1    DSPB        FWA
          LX1    -16
          SB6    B1+B1
          SB7    PRBF+1 
          RJ     HTS
          PRINT  CCCH,102 
          SB7    0#100
          SB4    BUF
 IPX3     RJ     NXB         GET 100(16) BYTES
          BX6    X1 
          SA6    B4 
          SB4    B4+B1
          SB7    B7-B1
          NZ     B7,IPX3     IF MORE BYTES TO GET 
          SX1    0
 IPX4     LX1    -4 
          SB6    B1 
          SB7    PRBF+4 
          SX6    1R 
          SA6    PRBF+1 
          SA6    A6+B1
          RJ     HTS
          SB3    0#10 
          SX6    X1+B1
          SB4    B3 
          SA1    X1+BUF 
          SA6    IPXB 
          MX5    0
 IPX5     SB7    B7+2 
          RJ     DPB         DISPLAY PPU BYTE 
          SA1    A1+B3
          SB4    B4-B1
          NZ     B4,IPX5     IF BLOCK NOT COMPLETE
          PRINT  CCCH,B7-CCCH 
          SA1    IPXB        LOOP COUNT 
          SX6    X1-0#10
          NZ     X6,IPX4
          SA1    DSPB 
          SX6    X1+0#100 
          SA6    A1 
          SA2    A1+B1
          IX3    X6-X2
          NG     X3,IPX1     IF MORE PP MEMORY TO DUMP
          EQ     DSPX        RETURN TO *DSPX* 
  
  
 IPXA     DATA   50H  LXX    0X    1X    2X    3X    4X    5X    6X 
          DATA   50H 7X    8X    9X    AX    BX    CX    DX    EX    F
          DATA   2CX
 IPXB     DATA   0
 ISD      SPACE  4,15 
**        ISM - INITIALIZE FOR SIXTY-FOUR BIT MEMORY PROCESSING.
* 
*         ENTRY  (AO) = ADDRESS OFFSET FOR *EI* ADDRESS.
*                (EI) .NE. 0 IF FORCING *EI* ADDRESSING.
* 
*         EXIT   (AO) = 0.
*                (XH) = MEMORY RECORD VALID FWA.
*                (XI) = MEMORY RECORD RANDOM INDEX. 
*                (XL) = MEMORY RECORD VALID LWA+1.
*                (XM) = MEMORY RECORD PAGE SIZE MASK. 
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 1, 2, 3, 6, 7. 
  
  
 ISM      SUBR               ENTRY/EXIT 
          SA3    AO 
          SA2    EH 
          NZ     X3,ISM1     IF *EI* ADDRESS
          SA1    EI 
          NZ     X1,ISM1     IF FORCED *EI* ADDRESSING
          SA2    MH 
 ISM1     ZR     X2,ERR14    IF MEMORY RECORD NOT ON DUMP FILE
          SX6    X2          NUMBER OF WORDS DUMPED 
          AX2    18          START OF MEMORY
          SX7    X2 
          IX6    X7+X6
          LX6    12          CONVERT TO A BYTE ADDRESS
          IX6    X3+X6       APPEND ADDRESS OFFSET
          SA6    XL 
          LX7    12 
          IX7    X3+X7       APPEND ADDRESS OFFSET
          SA7    XH 
          SA2    A2+B1       *MEM* RANDOM INDEX 
          BX6    X2 
          SA6    XI 
          SA1    S2PSM       GENERATE THE PAGE SIZE MASK
          LX1    9
          SX6    X1-1 
          BX6    -X1*X6 
          SA6    XM 
          BX6    X6-X6       CLEAR ADDRESS OFFSET 
          SA6    A3 
          EQ     ISMX        RETURN 
 ISS      SPACE  4,16 
**        ISS - INITIALIZE FOR SUB-SYSTEM DUMP. 
* 
*         ENTRY  (X5) = 24/ ,12/SUBSYSTEM ID,6/ ,18/CP NUMBER 
*                     CP NUMBER = 0 IF ANY CONTROL POINT ALLOWED. 
*                               .GT. 0, SUBSYSTEM MUST BE AT GIVEN
*                                       CONTROL POINT UNLESS
*                                       SUBSYSTEM ID = 0. 
*                (CN) = CONTROL POINT NUMBER. 
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
*                (RC) = CONTROL POINT REFERENCE ADDRESS.
* 
*         EXIT   (RI) = RANDOM ADDRESS OF DUMPED SUBSYSTEM. 
*                BINARY DUMP FILE IS POSITIONED AT CONTROL POINT RA.
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 3, 4, 6, 7. 
*                B - 2, 3, 7. 
* 
*         CALLS  LDC, PCM, RNF, SCM, SRA. 
  
  
 ISS      SUBR
          RJ     LDC         LIST DIRECTIVE 
          MX7    12          SET SUBSYSTEM ID MASK
          LX7    36 
          SX3    X5+         GET CP NUMBER
          SA4    F.TCMT 
          SB7    CPLEN       INCREMENTAL INDEX
          NZ     X3,ISS2     IF SPECIFIC CONTROL POINT REQUIRED 
          BX3    X7*X5
          SA1    NC 
          SB2    X1+
          SA1    X4+CPAS+JCIW  GET FIRST CP SUBSYSTEM ID
          BX2    X3-X1       COMPARE ENTRIES
          SB3    B0          PRESET CONTROL POINT NUMBER
 ISS1     SB3    B3+B1
          BX6    X7*X2
          GT     B3,B2,ERR10  IF CONTROL POINT NUMBER .GT. NCPL 
          SA1    A1+B7       GET NEXT CP SUBSYSTEM ID 
          BX2    X3-X1       COMPARE ENTRIES
          NZ     X6,ISS1     IF NO MATCH
          JP     ISS3 
  
 ISS2     SX1    CPAS 
          IX2    X1*X3
          SB3    X3          SET CONTROL POINT NUMBER 
          IX6    X2+X4
          SA1    X6+JCIW     GET CP SUBSYSTEM ID
          BX3    X7*X5       GET REQUESTED SUBSYSTEM ID 
          BX2    X3-X1       COMPARE ENTRIES
          ZR     X3,ISS3     IF ANY SUBSYSTEM ALLOWED 
          BX6    X7*X2
          NZ     X6,ERR10    IF NO MATCH ON ENTRIES 
 ISS3     SX6    B3 
          SA6    CN 
          BX2    X6 
          SA1    OP 
          RJ     RNF         READ NEGATIVE FL FOR SELECTED SUB-SYSTEM 
          SA1    L.TNFL      GET NFL/100
          SX6    DNFL        GET DEFAULT
          IX1    X1-X6
          NG     X1,ERR28    IF INSUFFICIENT NFL SPACE
          SA1    RC          GET RA 
          BX6    X1 
          RJ     SRA         SET REFERENCE ADDRESS
          RJ     SCM         SET CENTRAL MEMORY 
          SA7    RI 
          SA3    RC 
          RJ     PCM
          JP     ISSX        EXIT 
 LDC      SPACE  4,10 
**        LDC - LIST DIRECTIVE CARD.
* 
*         ENTRY  EF = 0 SET PAGE EJECT AND DONT LIST DIRECTIVE. 
*                   .NE. 0 LIST DIRECTIVE AND CURRENT RECORD NAME.
* 
*         SAVES  X - 0,5. 
*                B - 1. 
*                A - 0. 
* 
*         CALLS  PKS,WOF. 
  
  
 LDC      SUBR
          SA1    EF 
          NZ     X1,LDC1     IF NO EJECT SELECTED 
          SX6    100
          SA6    LC          FORCE EJECT
          JP     LDCX        EXIT 
  
*         LIST DIRECTIVE AND RECORD NAME. 
  
 LDC1     SA1    =10H 
          SA2    SBTL1
          BX6    X1 
          SA6    BUF         LEADING SPACES FOR LIST LINE 
          BX7    X2 
          SA7    A6+B1       STORE RECORD NAME
          SB2    CHAR 
          SB7    A7+B1
          SB6    78 
          RJ     PKS         PACK DIRECTIVE CARD
          PRINT  (=2C  )
          PRINT  BUF
          PRINT  (=2C  )
          JP     LDCX        EXIT 
 LDD      SPACE  4,8
**        LDD - LOAD DUMP DIRECTORY.
* 
*         EXIT   (X1) .NE. 0 IF FILE NOT IN RANDOM FORMAT.
*                     = 0  IF DIRECTORY TABLE LOADED. 
*                *S* FILE NAME IS CHANGED TO NAME OF *F* FILE.
* 
*         USES   X - 1, 3, 6. 
*                A - 1, 3, 6. 
  
  
 LDD      SUBR               ENTRY/EXIT 
          OPEN   F,READNR,R 
          SA1    X2+B1
          NG     X1,LDDX     IF NOT ON MASS STORAGE 
          SA1    RBIA 
          NZ     X1,LDDX     IF NO REWIND SET 
          SKIPEI X2          CHECK DIRECTORY RECORD 
          SKIPB  X2,2 
          READ   X2 
          READO  X2          READ FIRST WORD
          LX6    18 
          SX1    X6-770000B 
          NZ     X1,LDDX     IF NOT IDENT TABLE 
          LX6    6           SET TABLE LENGTH 
          READW  X2,BUF,X6   DISCARD IDENT TABLE
          READO  X2          READ DIRECTORY TABLE LENGTH WORD 
          MX1    42D
          SA3    =0LDUMP
          BX3    X3-X6
          BX1    X1*X3
          NZ     X1,LDDX     IF NOT EDD DUMP DIRECTORY RECORD 
          ALLOC  TDIR,X6     ALLOCATE TABLE SPACE 
          READW  F,X2,X3     READ DIRECTORY TABLE TO CORE 
          NZ     X1,ERR24    IF BAD DIRECTORY TABLE 
          RECALL X2 
          SA1    X2 
          BX6    X1 
          SA6    S           RESET SCRATCH FILE NAME
          SX1    0           SET DIRECTORY LOADED 
          JP     LDDX        EXIT 
 LPW      SPACE  4,15 
**        LPW - LOAD 12 BIT WORD. 
* 
*         ENTRY  (LPWA+0) = RELATIVE ADDRESS OF WORD IN LPWB. 
*                (LPWA+1) = ADDRESS IN BUFFER TO CONTINUE UNPACKING.
* 
*         EXIT   (LPWA) = UPDATED.
*                (X6) = 12 BIT WORD.
* 
*         USES   X - 1, 2, 3, 6.
*                A - 1, 2, 6. 
*                B - 2. 
  
  
 LPW      SUBR               ENTRY/EXIT 
          SA2    LPWA        POSITION OF NEXT 12 BIT BYTE 
          SA1    X2+LPWB
          SX6    X2-1        UPDATE LPWA
          SA6    A2 
          SX6    X1 
          PL     X2,LPWX     IF VALID BYTE
          SB2    4
          SX6    B2-B1
          SA2    A2+B1       POSITION IN BUFFER OF NEXT WORD
          SA6    A6 
          MX3    -12
          SX6    X2+B1
          SA1    X2+BUF 
          SA6    A2          UPDATE LPWA+1
 LPW1     LX1    12 
          BX6    -X3*X1      EXTRACT 12 BIT BYTE
          SA6    LPWB+B2
          SB2    B2-B1
          PL     B2,LPW1     IF MORE BYTES TO UNPACK
          SA1    LPWB+4 
          SX6    X1 
          EQ     LPWX        RETURN 
  
  
 LPWA     CON    0           NEXT BYTE IN BUFFER LPWB 
          CON    0           NEXT WORD IN BUF 
 LPWB     BSS    5
 MEM      SPACE  4,15 
**        MEM - PROCESS CENTRAL MEMORY RECORD.
* 
*         ENTRY  VIA UNCONDITIONAL JUMP.
* 
*         EXIT   TO *RBI2* IF NORMAL. 
*                TO *PPE* IF PREMATURE EOF. 
* 
*         USES   A - 1, 3, 6. 
*                X - 1, 2, 3, 6.
* 
*         CALLS  ERS, RBH, WBS. 
  
  
 MEM      SA1    BUF         GET MEMORY SIZE
          MX2    -18
          BX6    -X2*X1 
          SA3    MEMB 
          LX6    9
          SA6    A3 
          ZR     X3,MEM1     IF NO SIZE FROM OS BOUNDS REGISTER 
          IX2    X6-X3
          NO
          NG     X2,MEM1     IF SIZE FROM HEADER IS SMALLER 
          SA1    VE 
          NZ     X1,MEM1     IF *NOS V/E* MEMORY SPACE REQUIRED 
          BX6    X3 
          SA6    A3 
 MEM1     RJ     RBH         READ BLOCK OR HEADER FROM FILE *F* 
          NZ     X1,PPE      IF PREMATURE EOF 
          NG     X1,PPE      IF PREMATURE EOR 
          SA1    BWCF        SET WORD COUNT FOR FILE *S*
          BX6    X1 
          SA6    BWCS 
          RJ     WBS         WRITE BLOCK TO FILE *S*
          SA1    BWCF        INCREMENT WORD COUNT 
          SX2    15 
          IX6    X1*X2
          AX6    4
          SA1    MEMA 
          SA3    A1+B1
          IX6    X6+X1       COUNT OF 64 BIT WORDS PROCESSED
          SA6    A1 
          IX2    X6-X3       COMPARE WITH CM SIZE 
          NG     X2,MEM1     IF NOT DONE
          AX3    9
          MX2    42 
          SA1    ID          FETCH RECORD ID
          BX1    X2*X1
          BX6    X1+X3       ENSURE MEMORY SIZE CORRECT IN DIRECTORY
          SA6    A1 
          SX2    15          SIZE * 16 / 15 
          LX3    9+4
          IX6    X3/X2       FORM RECORD LENGTH 
          SA6    RWCS 
          RJ     ERS         END RECORD ON FILE *S* 
          SA1    VE 
          ZR     X1,RBI3     IF *NOS/VE* MEMORY SPACE NOT REQUIRED
          EQ     RBI2        EXIT TO READ NEXT RECORD ON FILE *F* 
  
  
 MEMA     CON    0           COUNT OF 64-BIT WORDS PROCESSED
 MEMB     CON    0           64-BIT MEMORY SIZE 
 MRT      SPACE  4,15 
**        MRT - DUMP MACHINE RECOVERY TABLE.
* 
*         ENTRY  (EQ) = *EQDE* WORD OF EST ENTRY. 
*                (BUFF) = MST AND TRT.
* 
*         EXIT   MRT DUMPED IF PRESENT. 
*                (BUFF) = MST FOLLOWED BY TRT OR MRT. 
* 
*         USES   X - 1, 2, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 2, 5, 6, 7.
* 
*         CALLS  CPS, CTS, GTD, POM, UPS. 
* 
*         MACROS GETCM, PRINT.
  
  
 MRT      SUBR
          SA1    EQ          *EQDE* WORD OF EST 
          SX2    1020B       SHARED AND ISHARED FLAGS 
          LX1    12 
          BX2    X1*X2
          ZR     X2,MRTX     IF NOT A SHARED DEVICE 
          PRINT  (=2C  )
          PRINT  (=C*          MACHINE RECOVERY TABLE*) 
          PRINT  (=2C  )
          SA1    BUF+TRLL    SET FWA OF TRT 
          SX6    X1 
          SA1    BUF+TDGL    SET TRT LENGTH 
          MX7    -12
          AX1    24 
          BX7    -X7*X1 
          IX6    X6+X7       MRT ADDRESS
          SA6    CPRA 
          SA6    FW 
          SX7    X7+7 
          AX7    3           MRT LENGTH 
          SA7    LW 
          SB2    A6 
          RJ     POM         POSITION TO MRT
          SA1    LW          MRT LENGTH 
          GETCM  BUF+MSTXL,X1  READ MRT INTO *BUF*
          MX7    1
          SA7    SRDA        PRESET FIRST CALL TO *SRD* 
          SX6    B0 
          SA6    MRTA        CLEAR LINK ORDINAL 
          SA6    MRTB        CLEAR DATA WORD ORDINAL
          SA6    SRDC+10     STOP DASHES AFTER 80 CHARACTERS
          RJ     SSB         CLEAR PRINT STRING 
 MRT1     SA1    MRTB        SET DATA ADDRESS 
          SX1    X1+BUF+MSTXL 
          SB5    1           SET WORD COUNT 
          RJ     SRD         SENSE REPEAT DATA
          NZ     X1,MRT3     IF REPEAT SENSED 
          SA1    FW          GET MRT ADDRESS
          SA2    MRTB 
          IX1    X1+X2
          LX1    -18
          SB6    6
          SB7    PRBF 
          RJ     CTS         CONVERT MRT ADDRESS
          SB7    B7+B1
          SX6    1R+
          SA6    B7 
          SB7    B7+B1
          SA1    MRTA        LINK ORDINAL 
          LX1    -12
          SB6    4
          RJ     CTS         CONVERT LINK ORDINAL 
          SB7    B7+2 
          SA2    =4000005B
          SA1    MRTB        READ MRT DATA WORD 
          SA1    X1+BUF+MSTXL 
          RJ     FDW         FORMAT DATA WORD 
          SB7    B7+B1
          LX1    28 
          SB6    8
 MRT2     SB6    B6-1 
          RJ     P4F         LIST TRACK BITS
          SB7    B7+1 
          NZ     B6,MRT2
          SA2    MRTB        RE-READ DATA WORD
          SA2    X2+BUF+MSTXL 
          SB7    B7+2 
          SB6    10 
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          PRINT  CCCH,B7-CCCH 
 MRT3     SA1    MRTA 
          SX6    X1+32
          SA6    A1+         UPDATE TRACK ORDINAL 
          SA1    MRTB 
          SX6    X1+B1
          SA6    A1+         UPDATE MRT ADDRESS 
          SA2    LW 
          IX3    X6-X2
          NG     X3,MRT1     IF MORE TO DUMP
          SA1    SRDC+1 
          BX6    X1 
          SA6    SRDC+10     RESET DASHES FOR 136 CHARACTERS
          JP     MRTX        EXIT 
  
 MRTA     BSS    1           TRACK ORDINAL
 MRTB     BSS    1           MRT DATA WORD ORDINAL
 MST      SPACE  4,15 
**        MST - DUMP MASS STORAGE TABLE.
* 
*         ENTRY  (X6) = MST ADDRESS.
*                (FI) = EST ORDINAL TO BE DUMPED. 
* 
*         EXIT   MST DUMPED.
* 
*         USES   X - 1, 2.
*                A - 1, 2, 6. 
*                B - 2, 5, 6, 7.
* 
*         CALLS  CPS, CTS, GTD, POM, UPS. 
* 
*         MACROS GETCM, PRINT.
  
  
 MST      SUBR
          SA6    FW          STORE MST ADDRESS
          SA6    CPRA 
          SB2    A6 
          RJ     POM         POSITION TO MST
          GETCM  BUF,MSTXL   READ FULL MST INTO *BUF* 
          SA2    EF 
          SX1    100         FORCE PAGE EJECT 
          ZR     X2,MST1     IF AUTO EJECT SELECTED 
          SX1    3
 MST1     RJ     CPS         CHECK PAGE SPACE 
          PRINT  (=2C  )
          SA2    =40HEQUIPMENT     - MASS STORAGE TABLE 
          SB6    34 
          SB7    PRBF 
          RJ     UPS         SET HEADING
          SB5    B7+         SAVE PRINT STRING ADDRESS
          SA1    FI          SET EST ORDINAL
          LX1    -9 
          SB6    3
          SB7    PRBF+10
          RJ     CTS         CONVERT EST ORDINAL
          PRINT  CCCH,B5-CCCH 
          PRINT  (=2C  )
          SA1    FW          SET BASE ADDRESS 
          SB2    X1-BUF 
          SB2    -B2
          SA1    TFMS        ASSUME TABLE FOR NON-819 DISK
          RJ     GTD         GENERATE DETAILED DUMP 
          EQ     MSTX        RETURN 
 NPE      SPACE  4,10 
**        NPE - NEXT PAGE ENTRY.
* 
*         ENTRY  (X4) = STARTING OFFSET INTO PAGE TABLE.
*                (X4) < 0 THEN GET NEXT CONSECUTIVE PAGE ENTRY. 
* 
*         EXIT   (X3) = (PTEVCUM ) = VALID, CONTINUE, USED, 
*                       MODIFIED BITS.
*                (X5) = (PTEPD ) = REMAINDER OF PAGE DESCRIPTOR.
*                (A3) = *PTEVCUM*.
* 
*         USES   X - 1, 2, 3, 4, 5, 6, 7. 
*                A - 2, 3, 4, 6.
*                B - 2. 
* 
*         CALLS  NXB, PSM.
  
  
 NPE      SUBR               ENTRY/EXIT 
          SA3    S2PTL       OBTAIN PAGE TABLE LENGTH 
          MX2    -12
          LX3    12 
          BX3    -X2+X3      FORM BYTE ADDRESS MASK 
          SX7    32          DEFAULT PAGE ENTRIES TO SEARCH 
          MX5    0
          SA1    NPEA        GET CURRENT PAGE ENTRY ADDRESS 
          PL     X4,NPE1     IF SETTING INITIAL PAGE ENTRY
          SX6    8
          SA2    A1+B1
          IX6    X1+X6
          SA6    A1 
          BX4    X6*X3       ISOLATE PAGE TABLE INDEX 
          SX6    X2-1 
          SA6    PTEVCUM     CLEAR VALID CONTINUE BITS
          SA6    NPEA+1 
          ZR     X6,NPE3     IF SEARCHED TOO MANY ENTRIES 
          NZ     X4,NPE2     IF WRAP AROUND HAS NOT HAPPENED
 NPE1     SA2    S2PTA       PAGE TABLE ADDRESS 
          BX4    X3*X4       ISOLATE PAGE TABLE INDEX 
          IX6    X2+X4
          SA6    A1          SAVE PAGE ENTRY ADDRESS
          SA7    A1+B1
          SB2    A6 
          RJ     PSM         POSITION TO PAGE ENTRY 
 NPE2     RJ     NXB         GET UPPER 16 BITS OF DESCRIPTOR
          MX2    4-16 
          BX5    -X2*X1 
          BX6    X2*X1
          LX6    59-15
          SA6    PTEVCUM     VALID, CONTINUE, USED, MODIFIED BITS 
          RJ     NXB         GET BITS 16-31 
          LX5    16 
          BX5    X5+X1
          RJ     NXB         GET BITS 32-47 
          LX5    16 
          BX5    X5+X1
          RJ     NXB         GET BITS 48-63 
          LX5    16 
          BX5    X5+X1
          BX6    X5 
 NPE3     SA6    PTEPD       SAVE REMAINDER OF PAGE DESCRIPTOR
          SA3    PTEVCUM     FETCH PTE BITS 
          JP     NPEX        RETURN 
  
 NPEA     DATA   0           PAGE ENTRY BYTE ADDRESS
          DATA   32          PAGE ENTRIES TO SEARCH 
 NXB      SPACE  4,15 
**        NXB - GET NEXT BYTE FROM RECORD.
* 
*         ENTRY  (NXBA) = WORDS OF DATA IN PBUF.
*                (NXBB) = OFFSET TO NEXT BYTE IN UBUF.
*                (NXBC) = NEXT WORD TO UNPACK.
* 
*         EXIT   (X1) = NEXT 16 BIT BYTE. 
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 6.
*                B - 2, 3.
* 
*         MACROS READW. 
  
  
 NXB      SUBR               ENTRY/EXIT 
          SA2    NXBB 
          SA1    X2+UBUF-1   NEXT BYTE FROM BUFFER
          SX6    X2-1 
          SA3    A2-B1
          SA6    A2          UPDATE BYTE POINTER
          PL     X6,NXBX     IF VALID BYTE
          ZR     X3,NXB3     IF PBUF IS EMPTY 
          SA2    A2+B1       NEXT WORD OF DATA
          SX6    X3-4 
          SA6    A3          DECREMENT WORD COUNT 
 NXB0     SA1    X2 
          MX2    16 
          SB2    60+16
          SB3    14 
 NXB1     BX6    X1*X2       EXTRACT BYTE 
          PL     X2,NXB2     IF BYTE CONTAINED WITHIN THIS WORD 
          SA1    A1+B1       GET REMAINING PART OF BYTE 
          MX3    30 
          SB2    B2-60
          BX6    -X3*X6 
          BX4    X3*X1
          IX7    X4+X6
          BX6    X2*X7
 NXB2     LX6    B2          POSITION BYTE TO LOWER 16 BITS OF WORD 
          SB2    B2+16
          LX2    -16
          SA6    UBUF+B3     SAVE BYTE
          SB3    B3-B1
          SX6    A1 
          PL     B3,NXB1     IF UNPACKING NOT COMPLETE
          SA1    UBUF+14     RETURN THIS BYTE 
          SA6    A2          UPDATE UBUF
          SX6    14 
          SA6    A2-B1
          EQ     NXBX        RETURN 
  
 NXB3     SX6    B7          SAVE B6 AND B7 
          SX1    B6 
          LX6    18 
          BX6    X6+X1
          SA6    A2+B1
          READW  S,PBUF,16
          SX6    12 
          SA6    NXBA        RESET NXBA 
          SA2    NXBC 
          SB6    X2          RESTORE B6 AND B7
          AX2    18 
          SB7    X2 
          SX2    PBUF-1 
          EQ     NXB0        UNPACK FIRST 4 WORDS OF BYTES
  
  
 NXBA     DATA   0           WORDS OF DATA REMAINING IN PBUF
 NXBB     DATA   0           OFFSET INTO BYTE BUFFER
 NXBC     CON    PBUF-1      ADDRESS-1 OF NEXT DATA WORD IN PBUF
 OTH      SPACE  4,10 
**        OTH - PROCESS MISCELLANEOUS RECORD. 
* 
*         ENTRY  VIA UNCONDITIONAL JUMP.
* 
*         EXIT   TO *RBI2*. 
* 
*         CALLS  CRS. 
  
  
 OTH      BSS    0
          SA1    ID 
          LX1    12 
          MX0    12 
          SA2    OTHA 
          BX0    X0*X1
          BX2    X0-X2
          ZR     X2,OTH1     IF *PP* RECORD 
          SA2    A2+B1
          BX2    X0-X2
          NZ     X2,OTH2     IF NOT *FLPP* RECORD 
 OTH1     BX7    X1 
          SA7    A1 
 OTH2     RJ     CRS         COPY RECORD TO FILE *S*
          EQ     RBI2        EXIT TO READ NEXT RECORD 
  
 OTHA     CON    2LPP 
          CON    2LFP 
 PBB      SPACE  4,16 
**        PBB - PRINT BYTE BUFFER 
* 
*         ENTRY  (X1) = NUMBER OF WORDS*2 IN BUFFER.
*                (B2) = PARAMETER BLOCK ADDRESS.
*                     +0 = FWA OF DUMP. 
*                     +1 = LWA OF DUMP. 
* 
*         EXIT   ONE PAGE WRITTEN.
* 
*         USES   B - 3, 4, 6, 7.
*                A - 1, 2, 4, 6, 7. 
*                X - 1, 2, 4, 6, 7. 
* 
*         CALLS  HTS, SAI, UPS. 
* 
*         MACROS PRINT. 
  
  
 PBB      SUBR               ENTRY/EXIT 
          SX6    BUF
          IX7    X6+X1       LWA+1 OF DATA IN BUF 
          SA6    PBBA        FWA OF DATA IN BUF 
          SX2    6           COMPUTE ROW INCREMENT = 2*(WORDS+2)/3
          SX1    X1+4 
          IX6    X1/X2
          LX6    1
          SA6    A6+B1       ROW INCREMENT
          SA7    A6+B1       PRINT BUFFER LWA+1 
          SA1    TF 
          ZR     X1,PBB1     IF NOT A TERMINAL FILE 
          SX6    X7-BUF 
          SA6    A6          SET ROW INCREMENT FOR TERMINAL FILE
 PBB1     SA1    PBBA        NEXT DATA WORD TO DUMP 
          SA4    A1+B1       ROW INCREMENT
          SA2    A4+B1       DATA LWA+1 
          SB3    X1 
          SB4    X2 
          SB7    PRBF        PRINT STRING ADDRESS 
 PBB2     GE     B3,B4,PBB4  IF NOT BEYOND END OF BUFFER
          SA1    B3+
          PL     X1,PBB3     IF DATA NOT DUPLICATED 
          SA2    =40H-----------------------------------
          SB6    40 
          RJ     UPS         STORE REPEAT INDICATOR IN PRINT LINE 
          SB3    B3+X4       ADVANCE PAGE BUFFER ADDRESS
          EQ     PBB2        PROCESS NEXT WORD
  
 PBB3     SB6    7           HEX DIGITS IN ADDRESS
          SX6    1R 
          RJ     HTS         CONVERT ADDRESS
          SA6    B7 
          SA6    A6+B1
          SB7    A6+B1       SPACE ONE
          SB6    4           UNPACK 4 DIGITS
          RJ     HTS         UNPACK FIRST BYTE
          SA6    B7          INSERT SPACE 
          SB7    B7+B1
          SB6    4
          RJ     HTS         UNPACK SECOND BYTE 
          SA1    A1+B1
          SB6    4
          SA6    B7 
          SB7    B7+B1
          LX1    28 
          RJ     HTS         UNPACK THIRD BYTE
          SA6    B7 
          SB7    B7+B1
          SB6    4
          RJ     HTS         UNPACK FOURTH BYTE 
          SB6    4
          SA6    B7 
          SB7    B7+B1
          SA2    A1-B1
          LX2    28 
          RJ     SAI         SET ASCII INTERPRETATION 
          SA2    A2+B1
          SB6    4
          LX2    28 
          RJ     SAI         SET ASCII INTERPRETATION 
          SB7    B7+3 
          SB3    B3+X4       ADVANCE PAGE BUFFER ADDRESS
          EQ     PBB2        CONTINUE PROCESSING THIS LINE
  
 PBB4     PRINT  CCCH,B7-CCCH-2 
          SA1    PBBA        ADVANCE POSITION IN DATA BUFFER
          SA2    A1+1 
          SX2    X2+BUF 
          SX6    X1+2 
          SA6    A1 
          IX6    X6-X2
          NG     X6,PBB1     IF ROOM FOR ANOTHER LINE ON PAGE 
          EQ     PBBX        RETURN 
  
  
 PBBA     DATA   0           CURRENT BUFFER POSITION
          DATA   0           ROW INCREMENT
          DATA   0           LWA+1 OF DATA IN BUFFER
 PBC      SPACE  4,15 
**        PBC - PACK BUFFER CONTROLLER. 
* 
*         ENTRY  DUMP FILE POSITIONED TO BEGINNING OF RECORD. 
* 
*         EXIT   (PBUF) CONTAINS CONTROLLER MEMORY. 
* 
*         USES   X - 0, 1, 2, 5, 6, 7.
*                A - 1, 2, 6, 7.
* 
*         CALLS  RBC. 
* 
*         DEFINE (X5) = PBUF INDEX. 
  
  
 PBC      SUBR               ENTRY/EXIT 
          SX5    0           INITIALIZE PBUF INDEX
  
*         READ 3 CM WORDS OF THE FORM- 20/0,8/B1,8/B2,8/B3,8/B4,8/B5
  
 PBC1     RJ     RBC
          NZ     X1,PBCX     IF TRANSFER NOT COMPLETE 
          SA7    PBUF+X5     SAVE WORD 1
          RJ     RBC
          NZ     X1,PBCX     IF TRANSFER NOT COMPLETE 
          SA7    PBUF+1+X5   SAVE WORD 2
          RJ     RBC
          NZ     X1,PBCX     IF TRANSFER NOT COMPLETE 
          SA1    PBUF+X5     GET WORD 1 
          SA2    A1+B1       GET WORD 2 
  
*         CONVERT 3 CM WORDS TO 2 CM WORDS WITH THE FORMAT- 
*         8/B1,8/B2,8/B3,8/B4,8/B5,8/B6,8/B7,4/B8 
*         4/B8,8/B9,8/B10,8/B11,8/B12,8/B13,8/B14,8/B15 
  
          MX0    -20         FORM WORD 1
          BX0    -X0*X2      SAVE BITS FOR WORD 2 
          LX1    20 
          AX2    20 
          BX6    X1+X2
          LX0    40          FORM WORD 2
          BX7    X0+X7
          SA6    PBUF+X5     SAVE WORD 1
          SA7    A6+1        SAVE WORD 2
          SX5    X5+2        UPDATE INDEX 
          SX6    X5-IUBUFL1-4 
          NG     X6,PBC1     IF MORE MEMORY TO PACK 
          EQ     PBCX        RETURN 
 PBD      SPACE  4,25 
***       PBD - PREPROCESS BINARY DUMP FILE.
* 
*         THIS SUBROUTINE IS USED WHEN THE *DMB* PARAMETER
*         IS PRESENT.  THE FILE PRODUCED BY THE *DMB* OR
*         *LOADBC* UTILITY IS CONVERTED TO A FORMAT THAT
*         CAN BE PROCESSED BY *DSDI*.  FOR THE FILE FROM
*         *DMB*, THE FIELD LENGTH DUMPED IS MADE TO 
*         APPEAR AS THOUGH IT RESIDED AT CONTROL POINT ONE. 
*         ONLY THE PORTION OF *CMR* NEEDED BY *DSDI*
*         IS SET UP.
* 
*         ENTRY  (BD) = BINARY DUMP FLAG. 
*                (RBIA) = REWIND FLAG.
* 
*         EXIT   (BD) = DUMP NUMBER IF IN *BD* MODE.
* 
*         USES   X - ALL. 
*                A - 1, 2, 3, 4, 5, 6, 7. 
*                B - 2, 7.
* 
*         CALLS  SFN. 
* 
*         MACROS ALLOC, MESSAGE, READ, READO, READW, RECALL,
*                RETURN, REWIND, WRITEF, WRITEO, WRITER,
*                WRITEW.
  
  
 PBD      SUBR               ENTRY/EXIT 
          SA1    BD 
          ZR     X1,PBDX     IF NOT BINARY DUMP MODE
          RECALL F
          RETURN F1,R        DROP SCRATCH FILE
          MESSAGE  (=C* REFORMATTING FILE.*),1
          SA1    RBIA 
          NZ     X1,PBD1     IF NO REWIND REQUESTED 
          REWIND F,R
 PBD1     READ   F
          ALLOC  TCMT,DMBCM  LENGTH OF *CMR* (MULTIPLE OF 100)
          SA2    L.TCMT      CLEAR WORKING SPACE
          SA1    F.TCMT 
          SB2    X2-1 
          SX7    0
 PBD2     SA7    X1+B2
          SB2    B2-B1
          PL     B2,PBD2     IF MORE TO CLEAR 
          READO  F
          NZ     X1,ERR39    IF FORMAT ERROR
          SA3    RBIB 
          BX1    X6          SAVE POSSIBLE DUMP NUMBER
          BX3    X6-X3
          NZ     X3,PBD3     IF NOT 7700 TABLE
          LX6    -36         SKIP 7700 TABLE
          SB7    X6 
          READW  X2,BUF,B7
          NZ     X1,ERR39    IF FORMAT ERROR
          READO  X2 
          NZ     X1,ERR39    IF FORMAT ERROR
          BX1    X6          DUMP NUMBER
 PBD3     RJ     SFN
          SA6    BD 
          READO  F
          NZ     X1,ERR39    IF FORMAT ERROR
          BX1    X6 
          SB7    X6 
          AX1    48 
          SX1    X1-2RID
          NZ     X1,ERR39    IF NOT *ID* TABLE
          READW  X2,BUF,B7
          NZ     X1,ERR39    IF FORMAT ERROR
  
*         BUILD NEEDED *CMR* INFORMATION. 
  
          SA5    F.TCMT 
          SA3    BUF         GET SYSTEM VERSION 
          SA4    A3+B1
          BX6    X3 
          BX7    X4 
          SA6    X5+SVNL
          SA7    A6+B1
          SA3    A4+B1       DATE 
          SA4    A3+B1       TIME 
          BX6    X3 
          BX7    X4 
          SA6    X5+DTEL
          SA7    X5+TIML
          SX6    B1+B1       NUMBER OF CONTROL POINTS 
          LX6    47-11
          SA6    X5+CFGL
          SX7    DMBCM/100B  SET CMR SIZE 
          SA7    X5+CMRL
          LX7    6           SET FWA OF JCA 
          SX7    X7-100B
          LX7    59-23
          SA7    X5+JBCP
          READO  X2 
          NZ     X1,ERR39    IF FORMAT ERROR
          BX1    X6 
          AX6    48 
          SX0    X6-2RBC
          ZR     X0,PBD3.1   IF FILE FROM *LOADBC*
          SX7    3RDMM       SET HEADER LABEL 
          SX0    X1          SAVE WORD COUNT
          LX7    -18
          SA7    PBDA 
          SX6    X6-2RXP
          NZ     X6,ERR39    IF FORMAT ERROR
          READW  X2,X5+CPAS,20B  READ EXCHANGE PACKAGE
          SX0    X0-20B 
          NG     X0,ERR39    IF FORMAT ERROR
          NZ     X1,ERR39    IF FORMAT ERROR
          MX6    6           MARK CONTROL POINT ACTIVE
          LX6    -6 
          SA6    X5+CPAS+TFSW 
          READW  X2,BUF,X0   SKIP UNUSED WORDS
          NZ     X1,ERR39    IF FORMAT ERROR
  
*         SET RA AND FL IN CP 1 *FLSW* WORD.
  
          READO  X2 
          SX0    X6          SAVE CMFL / 100B 
          AX6    48 
          SX6    X6-2RCM
          NZ     X1,ERR39    IF FORMAT ERROR
          NZ     X6,ERR39    IF FORMAT ERROR
          SA3    L.TCMT      SET RA / 100 OF CP 1 
          LX3    12-6 
          BX7    X3+X0       COMBINE RA / 100 AND FL / 100
          SA7    X5+CPAS+FLSW 
  
*         WRITE REFORMATTED FILE. 
  
 PBD3.1   WRITEW F1,PBDA,B1  WRITE HEADER ONE 
          WRITEW X2,X5+DTEL,B1
          WRITEW X2,X5+TIML,B1
          WRITEW X2,BD,B1 
          WRITER X2,R 
          SA3    L.TCMT      *CMR* LENGTH 
          LX0    6           CONVERT CM / 100B TO WORDS 
          IX1    X0+X3       MEMORY SIZE
          SX1    X1+777B     ROUND UP TO 1000B BLOCKS 
          AX1    9
          SX3    3RCM 
          LX3    59-17
          BX6    X3+X1
          LX1    9           SAVE ROUNDED FL
          BX7    X1          SET MACHINE CHARACTERISTICS
          SX3    4372B       SET 170-700 MAINFRAME
          LX7    12-6        CM SIZE / 100
          LX3    47-11
          BX7    X7+X3
          SA7    X5+MABL
          BX5    X1 
          WRITEO X2          WRITE HEADER TWO 
          SB2    77B         CLEAR BUFFER SPACE 
          SX6    0
 PBD4     SA6    BUF+B2 
          SB2    B2-1 
          PL     B2,PBD4     IF MORE TO CLEAR 
          WRITEW X2,BUF,3 
          WRITER X2,R 
          SA3    L.TCMT 
          SA1    F.TCMT 
          IX5    X5-X3       SUBTRACT *CMR* WORDS 
          WRITEW X2,X1,X3    WRITE CMR PORTION
          NZ     X5,PBD5     IF CONTROL POINT FL TO COPY
          SA1    PBDA 
          AX1    42 
          SX1    X1-3RLBC 
          NZ     X1,PBD7     IF NOT FILE FROM *LOADBC*
  
*         COPY CONTROLLER MEMORY FOR FILE FROM *LOADBC*.
  
          WRITER F1,R        WRITE EOR FOR CMR PORTION
          READW  F,BUF,100B 
          SA2    BD          ENTER CHANNEL DISPLAY IN CONTROLLER DUMP 
          MX6    24 
          BX2    X6*X2
          SA3    BUF
          LX6    -12
          BX6    -X6*X3 
          LX2    -12
          BX6    X6+X2
          SA6    A3 
          SX0    X1          SAVE READ STATUS 
 PBD4.1   SB7    B6-BUF 
          WRITEW F1,BUF,B7
          NZ     X0,PBD9     IF COPY COMPLETE 
          READW  F,BUF,100B 
          SX0    X1          SAVE READ STATUS 
          EQ     PBD4.1      CONTINUE CONTROLLER DATA TRANSFER
  
*         COPY CM DUMP FROM FILE. 
  
 PBD5     READW  F,BUF+100B,100B
          NZ     X1,ERR39    IF FORMAT ERROR
          WRITEW F1,BUF+100B,100B 
          SX0    X0-100B
          SX5    X5-100B
          NZ     X0,PBD5     IF MORE TO COPY
 PBD6     ZR     X5,PBD7     IF PAD WORDS WRITTEN 
          WRITEW F1,BUF,100B
          SX5    X5-100B
          EQ     PBD6        WRITE MORE PAD WORDS 
  
*         COPY EXTENDED MEMORY DUMP FROM FILE.
  
 PBD7     READO  F           CHECK FOR ECS DUMP RECORD
          NZ     X1,PBD9     IF NOT ECS 
          SA6    BUF
          SX1    3RECS
          SX0    X6          ECS LENGTH 
          AX6    42 
          LX0    9
          BX1    X1-X6
          NZ     X1,PBD9     IF NOT EXTENDED MEMORY 
          ZR     X0,PBD9     IF NOTHING TO TRANSFER 
          WRITER F1,R 
          WRITEW X2,BUF,4    EXTENDED MEMORY DUMP HEADER
          WRITER X2,R 
 PBD8     ZR     X0,PBD9     IF COPY COMPLETE 
          READW  F,BUF+100B,100B  COPY DUMP RECORD
          NZ     X1,ERR39    IF END OF RECORD 
          WRITEW F1,BUF+100B,100B 
          SX0    X0-100B
          EQ     PBD8        GET NEXT BLOCK 
  
 PBD9     WRITEF F1,R        TERMINATE FILE 
          RECALL F
          SA1    F1          SWAP FILE NAMES
          MX3    42 
          MX6    -2 
          BX1    X3*X1
          BX6    -X6+X1 
          SA6    F
          REWIND A6,R 
          SA1    L.TCMT      DROP TABLE SPACE 
          BX1    -X1
          ALLOC  TCMT,X1
          EQ     PBDX        RETURN 
  
  
 PBDA     CON    3LLBC
 PCH      SPACE  4,12 
**        PCH - PRINT CONTROL POINT DUMP HEADING. 
* 
*         ENTRY  (CN) = CONTROL POINT NUMBER. 
*                (OP) = PCPA FWA OFFSET (0 IF DUMPING CONTROL POINTS).
* 
*         EXIT   (FW) = CONTROL POINT AREA ADDRESS. 
*                (LW) = CONTROL POINT AREA LWA+1. 
* 
*         USES   X - 1, 2, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 6, 7.
* 
*         CALLS  CPS, CTS, UPS. 
* 
*         MACROS PRINT. 
  
  
 PCH      SUBR
          SA2    EF          CHECK AUTO EJECT FLAG
          SX1    100         PRESET FOR EJECT 
          ZR     X2,PCH1     IF AUTO EJECT SELECTED 
          SX1    3
 PCH1     RJ     CPS         CHECK PAGE SPACE 
          PRINT  (=2C  )
          SA1    CN          CONTROL POINT NUMBER 
          SA2    OP          ADD PCPA OFFSET
          LX1    7
          IX6    X1+X2
          SA6    FW          SAVE ADDRESS 
          SX7    X6+CPLEN 
          SA7    LW          SET LWA+1
          BX1    X6 
          LX1    -12
          SB6    4
          SB7    PRBF 
          RJ     CTS         CONVERT ADDRESS
          SA2    =18H - CONTROL POINT 
          SB6    17 
          SA1    OP 
          ZR     X1,PCH2     IF NOT DUMPING PCP-S 
          SA2    =25H - PSEUDO-CONTROL POINT
          SB6    24 
 PCH2     RJ     UPS         UNPACK STRING
          SA1    CN 
          LX1    -6 
          SB6    B1+B1
          RJ     CTS         CONVERT CONTROL POINT NUMBER 
          PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
          JP     PCHX        EXIT 
 PCM      SPACE  4,10 
**        PCM - POSITION CYBER MEMORY.
* 
*         ENTRY  X3 - CM ADDRESS. 
* 
*         EXIT   DUMP FILE POSITIONED FOR *GETCM* 
* 
*         USES   A - 1, 6.
*                X - 1, 2, 3, 6.
* 
*         CALLS  PDF, UPW.
  
  
 PCM      SUBR               ENTRY/EXIT 
          SA1    MT 
          NZ     X1,PCM1     IF MEMORY TYPE IS ESM
          SA1    AP 
          NZ     X1,PCM2     IF ADVANCED PROCESSOR PRESENT
 PCM1     RJ     PDF         POSITION DUMP FILE 
          EQ     PCMX        RETURN 
  
 PCM2     BX1    X3 
          SX2    15 
          IX3    X3/X2
          SX2    15 
          IX6    X2*X3
          IX2    X1-X6
          SX6    X2-15
          LX3    4
          SA6    BI          DESIRED POSITION WITHIN 15 WORD BLOCK
          RJ     PDF         POSITION DUMP FILE 
          RJ     UPW         UNPACK 64-60 BIT WORDS 
          EQ     PCMX        RETURN 
 PCS      SPACE  4,10 
**        PCS - PROCESSOR CONTROL STORE.
* 
*         ENTRY  VIA UNCONDITIONAL JUMP.
* 
*         EXIT   TO *RBI2* IF NORMAL. 
*                TO *PPE1* IF PREMATURE EOF.
* 
*         CALLS  CRS, ERF, RBF. 
  
  
 PCS      BSS    0           ENTRY
          RJ     ERF         POSITION TO EOR ON FILE *F*
          RJ     RBF         READ FIRST PART OF CONTROL STORE 
          NZ     X1,PPE1     IF PREMATURE EOF 
          RJ     CRS         COPY CONTROL STORE TO FILE *S* 
          EQ     RBI2        EXIT TO READ NEXT RECORD FROM FILE *F* 
  
 EIC      EQU    PCS         PROCESS ENVIRONMENTAL INTERFACE RECORD 
 PMR      EQU    PCS         PROCESS PROCESSOR MAINTENANCE REGISTERS
 PRF      EQU    PCS         PROCESS PROCESSOR REGISTER FILE
 MMR      EQU    PCS         PROCESS MEMORY MAINTENANCE REGISTERS 
 INN      EQU    PCS         PROCESS IOU MAINTENANCE REGISTERS
 CCR      EQU    PCS         PROCESS CCH CHANNEL REGISTER RECORD
 PRX      EQU    PCS         PROCESS PROCESSOR EXCHANGE PACKAGES. 
 PCV      SPACE  4,15 
**        PCV - PROCESS CONTROLLER DATA VERIFICATION. 
* 
*         ENTRY  (X1) = OCTAL/HEX DUMP FORMAT FLAG. 
*                (X2) = DIRECTORY ENTRY ADDRESS FOR CONTROLLER DATA.
* 
*         EXIT   CONTROLLER DUMP VERIFICATION ERROR DATA WRITTEN. 
* 
*         USES   X - ALL. 
*                A - ALL. 
*                B - 2, 3, 4, 5, 6, 7.
* 
*         CALLS  CTS, CVE, HTS, PDF, SSB, UPS.
* 
*         MACROS PRINT, READO.
  
  
 PCV      SUBR               ENTRY/EXIT 
          SA4    X2+B1       GET RANDOM INDEX OF CONTROLLER RECORD
          BX7    X1          SAVE OCTAL/HEX FORMAT FLAG 
          SA7    PCVA 
          BX6    X4 
          SA6    RI 
          BX7    X7-X7
          SA7    A7+B1
          ERRNZ  PCVB-PCVA-1 CODE DEPENDS ON CONSECUTIVE LOCATIONS
          SX3    B1+B1       POSITION TO THIRD WORD OF RECORD 
          RJ     PDF
          PRINT  (=2C  )
          PRINT  CDVH1       WRITE CONTROLLER DATA VERIFICATION HEADERS 
          PRINT  CDVH2
          PRINT  (=2C  )
          RJ     SSB         SPACE FILL LINE BUFFER 
 PCV1     SA1    PCVB        ADVANCE CONTROLLER MEMORY ADDRESS
          SX6    X1+5 
          SA6    A1 
          READO  S
          NZ     X1,PCVX     IF END OF RECORD 
          SA6    PCVC        SAVE FIRST WORD OF PAIR
          READO  S
          ZR     X1,PCV2     IF SECOND WORD TRANSFERRED 
          BX6    X6-X6
 PCV2     SA5    PCVC        GET FIRST WORD OF PAIR 
          SA3    PCVD        GET VERIFICATION ERROR MASK
          SA6    A5          SAVE SECOND WORD OF PAIR 
          BX1    X3*X6
          BX4    X3*X5
          BX1    X1+X4
          ZR     X1,PCV1     IF NO ERROR
          SA1    PCVB        GET CONTROLLER MEMORY ADDRESS
          SB7    PRBF        PRINT STRING BUFFER
          SB6    4
          LX1    -16
          RJ     HTS         CONVERT ADDRESS TO HEX DISPLAY 
          SA2    PCVA 
          SA0    PRBF+10
          SB2    10 
          NZ     X2,PCV3     IF NOT OCTAL DUMP
          SB7    PRBF 
          SB6    5
          LX1    -15
          RJ     CTS         CONVERT ADDRESS TO DISPLAY 
 PCV3     MX0    -4 
          SB3    4
          MX3    8
          LX5    4
          BX6    -X0*X5      VERIFICATION ERROR FLAG
          BX1    X3*X5       CONTROLLER DATA (FIRST HALF OF BYTE) 
          LX5    12 
          SB5    B3+B3
          RJ     CVE         CHECK FOR VERIFICATION ERROR 
          BX4    X6          SAVE FIRST HALF BYTE VERIFICATION STATUS 
          SB2    B2-2 
          NE     B2,B3,PCV4  IF NOT AT END OF FIRST WORD OF PAIR
          SA5    A5          GET SECOND WORD OF PAIR
          LX5    4
 PCV4     BX6    -X0*X5      VERIFICATION ERROR FLAG
          SB5    B0 
          RJ     CVE         CHECK FOR VERIFICATION ERROR 
          BX3    X3*X5       CONTROLLER DATA (SECOND HALF OF BYTE)
          LX3    -8 
          BX1    X1+X3
          LX5    8
          SB7    A0 
          SA2    PCVA        GET OCTAL/HEX DUMP FORMAT FLAG 
          SB6    B3 
          ZR     X2,PCV5     IF OCTAL DUMP
          RJ     HTS         CONVERT ACTUAL VALUE TO HEX DIGITS 
          SB6    B3 
          SB7    A0+52-10 
          BX2    X6*X4
          SB4    B3 
          NG     X2,PCV7     IF MULTIPLE BIT FAILURE IN BOTH HALVES 
          BX1    X1-X6       CALCULATE EXPECTED VALUE 
          BX1    X1-X4
          LX1    -16
          RJ     HTS         CONVERT EXPECTED VALUE TO HEX DIGITS 
          BX1    X4+X6       CALCULATE LOGICAL DIFFERENCE 
          LX1    -16
          SB7    A0+94-10 
          SB6    B3 
          RJ     HTS         CONVERT DIFFERENCE TO HEX DIGITS 
          SB4    B1+B1
          SB3    B1+B1
          EQ     PCV6        PROCESS MULTIPLE BIT FAILURE 
  
 PCV5     SB3    B3-1 
          SB6    B3+B3
          LX1    -2 
          RJ     CTS         CONVERT ACTUAL VALUE TO OCTAL DIGITS 
          SB7    A0+52-10 
          SB6    B3+B3
          BX2    X4*X6
          SB4    B6 
          NG     X2,PCV7     IF MULTIPLE BIT FAILURE IN BOTH HALVES 
          BX1    X1-X6       CALCULATE EXPECTED VALUE 
          BX1    X1-X4
          LX1    -18
          RJ     CTS         CONVERT EXPECTED VALUE TO OCTAL DIGITS 
          SB6    B3+B3
          BX1    X4+X6       CALCULATE LOGICAL DIFFERENCE 
          SB4    B3+B1
          LX1    -18
          SB7    A0+94-10 
          RJ     CTS         CONVERT DIFFERENCE TO OCTAL DIGITS 
 PCV6     PL     X1,PCV9     IF NO MULTIPLE BIT ERROR 
          SB7    A0+52-10 
          SB6    B4+
          NG     X4,PCV7     IF MULTIPLE BIT ERROR IN FIRST HALF
          SB6    B3 
          SB7    B7+B6
 PCV7     SA2    =6L******
          RJ     UPS         UNPACK CHARACTERS TO PRINT LINE
          SB7    A0+94-10 
          SB6    B4+
          NG     X4,PCV8     IF MULTIPLE BIT ERROR IN FIRST HALF
          SB6    B3 
          SB7    B7+B6
 PCV8     SA2    =6L******
          RJ     UPS         UNPACK CHARACTERS TO PRINT LINE
 PCV9     SA0    A0+8 
          NZ     B2,PCV3     IF MORE BYTES IN WORD PAIR 
          PRINT  CCCH,136    PRINT VERIFICATION ERROR LINE
          EQ     PCV1        CONTINUE DUMP VERIFICATION 
  
  
 PCVA     CON    0           0 = OCTAL DUMP, 1 = HEX DUMP FORMAT
 PCVB     CON    0           CONTROLLER MEMORY ADDRESS
 PCVC     CON    0           CONTROLLER DATA WORD 
 PCVD     VFD    4/17B,8/0,4/17B,8/0,4/17B,8/0,4/17B,8/0,4/17B,8/0
  
  
 CDVH1    BSS    0           CONTROLLER DATA VERIFICATION HEADER LINE 1 
          DATA   50H           ACTUAL VALUE 
          DATA   40H   EXPECTED VALUE 
          DATA   C*     LOGICAL DIFFERENCE* 
  
 CDVH2    BSS    0           CONTROLLER DATA VERIFICATION HEADER LINE 2 
          DATA   50H ADDRESS    +0      +1      +2      +3      +4
          DATA   40H    +0      +1      +2      +3      +4
          DATA   C*      +0      +1      +2      +3      +4*
 PCW      SPACE  4,17 
**        PCW - PRINT CONTENTS OF SUB-SYSTEM WORDS. 
* 
*         ENTRY  A5 = ADDRESS OF DESCRIPTOR BLOCK.
*T        24/ FIRST WORD LABEL,6/ ,18/ REL WORD ADD 
*         240/ 40 CHARACTER DESCRIPTION OF WORD 
*T        24/ SECOND WORD LABEL,6/ ,18/ REL WORD ADD
*         240/ 40 CHARACTER DESCRIPTION OF WORD 
*          .         .           .         .
*          .         .           .         .
*          .         .           .         .
*T        60/ ZERO WORD TERMINATES BLOCK
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  FDW,UPS,WOF. 
  
  
 PCW      SUBR
          PRINT  (=2C  )
          SA5    A5-5 
 PCW1     SA5    A5+5 
          ZR     X5,PCW2     IF THROUGH DESCRIPTOR BLOCK
          SB7    PRBF 
          SA2    =12HCONTENTS OF
          SB6    12 
          RJ     UPS
          SA2    A5+
          SB6    6
          RJ     UPS         STORE WORD LABEL 
          SA2    =3H =
          SB6    3
          RJ     UPS
          SA1    SSBF+X5     GET WORD TO DUMP 
          SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW         FORMAT DATA WORD 
          SX6    1R-
          SX7    1R 
          SA6    B7 
          SA7    B7+B1
          SB7    B7+2 
          SA2    A5+1 
          SB6    40 
          RJ     UPS
          PRINT  CCCH,B7-CCCH 
          JP     PCW1 
  
 PCW2     PRINT  (=2C  )
          JP     PCWX        EXIT 
 PDB      SPACE  4,10 
**        PDB - PRINT DAYFILE BUFFER. 
* 
*         ENTRY  (GDBB) = DAYFILE BUFFER LENGTH.
*                (GDBD) = INACCURATE DAYFILE BUFFER POINTERS FLAG.
*                (NC) = NUMBER OF CONTROL POINTS. 
*                (CN) = CONTROL POINT NUMBER. 
*                     = 0 OR (NC)+1 IF SYSTEM DAYFILE.
*                     = -1 IF ACCOUNT DAYFILE.
*                     = -2 IF ERRLOG DAYFILE. 
*                     = -3 IF BML DAYFILE.
*                DAYFILE BUFFER STORED IN TABLE *TSCR*. 
*                DAYFILE BUFFER POINTERS STORED IN TABLE *TSC1*.
* 
*         USES   X - ALL. 
*                A - 1, 2, 3, 4, 5, 6, 7. 
*                B - 2, 6, 7. 
* 
*         CALLS  PMD, SDI.
* 
*         MACROS PRINT. 
  
  
 PDB8     PRINT  (=2C  )
          PRINT  (=C*  DAYFILE NOT DEFINED.*) 
          PRINT  (=2C  )
  
 PDB      SUBR
          SA1    GDBD 
          NZ     X1,PDBX     IF INACCURATE DAYFILE BUFFER POINTERS
          SA1    F.TSC1      READ POINTERS ADDRESS
          SA2    GDBB        GET BUFFER LENGTH
          BX0    X2 
          ZR     X2,PDB8     IF DAYFILE NOT DEFINED 
          SA1    X1          ACCESS *FIRST* AND *IN*
          MX2    -12
          SA4    F.TSCR      FIRST OF DAYFILE BUFFER
          BX6    -X2*X1      *IN* 
  
*         SET POINTERS AND LENGTH FOR THE DAYFILE MESSAGE LIST. 
  
          IX6    X4+X6       SET CURRENT POINTER AS *IN*
          SA6    PDBB 
          IX7    X4+X0       BUFFER LWA+1 IN MANAGED TABLE
          SA7    A6+B1
          SX7    X0          WORDS REMAINING = BUFFER LENGTH
          SA7    A7+B1
  
*         RESET POINTERS AND LENGTH IF BUFFER HAS NOT BEEN USED.
  
          SA3    A1+B1       ACCESS *OUT* 
          BX7    -X2*X3 
          IX7    X7+X4       BIAS *OUT* 
          BX3    X6-X7
          SA5    A3+B1       CHECK DEVICE ASSIGNMENT
          BX7    X5 
          MX2    12 
          AX7    36 
          NZ     X7,PDB1     IF EQUIPMENT ASSIGNED
          NZ     X3,PDB1.1   IF DAYFILE USED
          SX6    B0          SET ZERO WORDS TO LIST 
          SA6    A7 
          EQ     PDB2        CONTINUE FOR BUFFER DUMP 
  
 PDB1     LX2    -12
          BX6    X2*X5
          LX2    -12
          AX6    12 
          BX7    X2*X5
          BX6    X6-X7
          NZ     X6,PDB2     IF BUFFER HAS BEEN FLUSHED 
          LX2    -12
          BX6    X2*X5
          SX6    X6-10000B
          NZ     X6,PDB2     IF BUFFER HAS BEEN FLUSHED 
 PDB1.1   BX7    X4          SET CURRENT WORD POINTER AT BASE 
          MX2    -12
          SA7    PDBB 
          BX6    -X2*X1      SET LWA+1 AS *IN*
          IX7    X7+X6
          SA7    A7+B1
          SA6    A7+B1       SET WORDS REMAINING = *IN* 
  
*         SET BUFFER MANAGE TABLE, *PDBA*, FOR MEMORY DUMP. 
  
 PDB2     MX2    -24         CALCULATE FWA OF DAYFILE BUFFER
          AX1    36 
          BX7    -X2*X1 
          IX6    X0+X7
          SA7    PDBA        SET DAYFILE BUFFER FWA 
          SA6    A7+B1       SET DAYFILE BUFFER LWA+1 
          SB2    A7 
          BX6    X4 
          SA2    CN 
          SA6    A6+B1       SET FWA DAYFILE BUFFER IN MANAGED TABLE
 PDB3     RJ     PMD         PROCESS MEMORY DUMP
          SA1    CN          CHECK FOR BINARY MAINTANENCE LOG (BML) 
          SX1    X1+3 
          ZR     X1,PDBX     IF BML DAYFILE 
          SA1    PDBB+2 
          ZR     X1,PDBX     IF NO LINES IN BUFFER
          PRINT  (=2C  )
          PRINT  (=C*          DAYFILE LINES IN BUFFER*)
          PRINT  (=2C  )
 PDB4     SA4    PDBB        GET CURRENT WORD POINTER 
          SA3    A4+B1       GET LWA+1 DAYFILE BUFFER IN MANAGED TABLE
          BX2    X2-X2
          SA5    A3+B1       GET NUMBER OF WORDS REMAINING
          MX0    -12
          ZR     X5,PDBX     IF END OF WORDS IN BUFFER
 PDB5     IX6    X4-X3
          NZ     X6,PDB6     IF NO WRAP REQUIRED
          SA4    F.TSCR 
 PDB6     SA1    X4          GET NEXT WORD IN DAYFILE BUFFER
          LX7    X1 
          SX5    X5-1 
          BX6    -X0*X1 
          SA7    BUF+X2      BUILD LINE 
          SX2    X2+B1
          ZR     X5,PDB7     IF LAST WORD PROCESSED 
          SX4    X4+B1
          NZ     X6,PDB5     IF NOT END OF LINE 
 PDB7     SX1    10          CALCULATE CHARACTERS IN LINE 
          BX6    X4 
          IX1    X2*X1
          SA6    PDBB        SAVE CURRENT WORD POINTER
          BX7    X5 
          SB6    X1 
          SA7    PDBB+2      SAVE WORDS REMAINING 
          SA2    BUF         SET LINE BUFFER ADDRESS
          SB7    PRBF        SET STRING BUFFER ADDRESS
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          PRINT  CCCH,B7-CCCH 
          EQ     PDB4        CONTINUE PRINTING DAYFILE LINES
  
  
 PDBA     BSS    0           DUMP PARAMETERS
  
          LOC    0
          CON    0           FWA
          CON    0           LWA+1
          CON    0           CORE ADDRESS 
          CON    0           NO SUPPRESS FLAG 
          CON    2           *E* FORMAT CODE
          CON    0           COLUMN LENGTH
          CON    0           INVERTED ADDRESS 
  
          LOC    *O 
  
 PDBB     BSS    0           MESSAGE PROCESSING PARAMETERS
  
          LOC    0
          CON    0           CURRENT WORD POINTER IN MANAGED TABLE
          CON    0           LWA+1 DAYFILE BUFFER IN MANAGED TABLE
          CON    0           WORDS REMAINING IN DAYFILE BUFFER
  
          LOC    *O 
 PDF      SPACE  4,12 
**        PDF - POSITION DUMP FILE. 
* 
*         ENTRY  RI = RANDOM ADDRESS OF CURRENT RECORD. 
*                X3 = DESIRED WORD ADDRESS. 
* 
*         EXIT   BINARY DUMP FILE IS POSITIONED AT DESIRED WORD.
* 
*         SAVES  X - 0,5. 
*                B - 1. 
*                A - 0,5. 
* 
*         CALLS  CIO=,RDW=,WNB=.
  
  
 PDF      SUBR
          NG     X3,ERR18    IF WORD ADDRESS INCORRECT
          RECALL S
          SA1    RI 
          BX6    X1 
          AX6    30          RECORD WORD COUNT
          IX4    X3-X6
          PL     X4,ERR18    IF WORD ADDRESS NOT IN RECORD
          BX6    X3 
          MX3    -6 
          BX3    -X3*X6      WORD OFFSET
          AX6    6           RELATIVE PRU NUMBER
          MX4    -30
          BX1    -X4*X1      RECORD RANDOM ADDRESS
          IX6    X1+X6
          SA6    S+6         SET RANDOM ADDRESS FOR READ
          SA1    X2+B1       READ FIRST 
          SX6    X1 
          SA6    A1+B1       IN = FIRST 
          SA6    A6+B1       OUT = FIRST
          READ   X2          BEGIN READ 
          ZR     X3,PDFX     IF READ BEGINS ON PRU BOUNDARY 
          READW  X2,PDFA,X3  READ TO DESIRED WORD 
          JP     PDFX        EXIT 
  
 PDFA     BSS    64          GARBAGE BUFFER 
 PDP      SPACE  4,9
**        PDP - PRINT DAYFILE POINTERS. 
* 
*         ENTRY  (GDBC) = MEMORY ADDRESS OF POINTERS. 
*                DAYFILE BUFFER POINTERS STORED IN TABLE *TSC1*.
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  PMD. 
  
  
 PDP      SUBR
          SA1    F.TSC1 
          SA2    F.TCMT 
          BX6    X1 
          SA6    PDPA+2      SET CORE ADDRESS OF POINTERS 
          SA1    GDBC        GET ADDRESS OF POINTERS
          BX6    X1 
          SX2    3
          SA6    PDPA        SET FWA
          IX6    X6+X2       FORM LWA+1 
          SA6    A6+B1
          SB2    A6-B1
          RJ     PMD         PROCESS MEMORY DUMP
          JP     PDPX        EXIT 
  
 PDPA     BSS    0           DUMP PARAMETERS
  
          CON    0           FWA
          CON    0           LWA+1
          CON    0           CORE ADDRESS 
          CON    1           NO SUPPRESS FLAG 
          CON    1           *D* FORMAT CODE
          CON    3           COLUMN LENGTH
          CON    0           INVERTED ADDRESS 
 PEC      SPACE  4,10 
**        PEC - PRINT EIGHT CONTROL POINTS. 
* 
*         ENTRY  (X5) = CONTROL POINT AREA POINTER. 
*                (LW) = LWA+1 OF CPA/PCPA.
*                (OP) = PCPA FWA OFFSET (0 IF DUMPING CONTROL POINTS).
* 
*         EXIT   (X5) = UPDATED CONTROL POINT AREA POINTER. 
* 
*         USES   X - ALL. 
*                A - 1, 2, 4, 6.
*                B - 2, 3, 4, 5, 6, 7.
* 
*         CALLS  CTS, POM, SBL, UPS.
* 
*         MACROS GETCM, PRINT.
  
  
 PEC      SUBR
          SB2    X5          CONTROL POINT AREA ADDRESS 
          SB7    PRBF        PRINT STRING ADDRESS 
          SB3    B2+8*CPLEN  LIMIT ADDRESS
          SA1    LW 
          SB4    X1          LWA+1 OF CONTROL POINT AREA
  
*         PRINT CONTROL POINT NUMBERS.
  
 PEC1     SA2    =10HCP 
          SB6    3
          SA1    OP 
          ZR     X1,PEC1.1   IF NOT DUMPING PCPA-S
          SA2    =10HPCP
 PEC1.1   RJ     UPS         UNPACK STRING
          SX1    B2 
          SA2    OP 
          IX1    X1-X2       SUBTRACT OFF PCPA OFFSET 
          LX1    -13
          SB6    2
          RJ     CTS         SET CONTROL POINT NUMBER 
          SB6    4
          RJ     SBL         SPACE 4
          SB2    B2+CPLEN    ADVANCE CONTROL POINT ADDRESS
          GE,B2,B3,PEC2      IF END OF LINE 
          LT     B2,B4,PEC1  IF MORE CONTROL POINTS TO PROCESS
 PEC2     PRINT  PRBF,B7-PRBF 
  
*         PRINT JOB SEQUENCE NUMBERS. 
  
          SB7    PRBF        PRESET PRINT STRING ADDRESS
          SB2    X5+         SET CONTROL POINT AREA ADDRESS 
          SX6    B2+8*CPLEN  SET CONTROL POINT AREA LIMIT ADDRESS 
          SA6    PECB 
          SA1    LW          SET CONTROL POINT AREA LWA+1 
          BX6    X1 
          SA6    PECA 
          SB4    X6 
 PEC3     SA4    F.TCMT      READ EJT ORDINAL 
          SX2    X4+B2
          SA2    X2+TFSW
          MX3    12          SET EJT ORDINAL MASK 
          BX2    X3*X2
          NZ     X2,PEC3.1   IF CONTROL POINT ACTIVE
          SB6    9           SPACE 9 IF CONTROL POINT NOT ACTIVE
          SB5    B2+CPLEN 
          LT     B5,B4,PEC4  IF NOT SYSTEM CONTROL POINT
 PEC3.1   SA1    X4+EJTP     GET FWA EJT
          MX0    24 
          BX1    X0*X1
          LX1    24 
          LX2    12          FIND EJT ENTRY ADDRESS 
          SX6    EJTE 
          IX2    X2*X6
          IX6    X2+X1       SET ADDRESS INTO DUMP FILE 
          SA6    CPRA 
          SA0    B2+         SAVE CONTROL POINT AREA ADDRESS
          SX0    B7          SAVE PRINT STRING ADDRESS
          SB2    A6 
          RJ     POM
          GETCM              READ FIRST WORD OF EJT ENTRY 
          SB7    X0+         RESTORE PRINT STRING ADDRESS 
          MX0    24 
          BX2    X0*X6       SET JOB SEQUENCE NUMBER
          SB6    4
          RJ     UPS
          SB2    A0+         RESTORE CONTROL POINT AREA ADDRESS 
          SB6    5           SPACE 5
 PEC4     RJ     SBL
          SB2    B2+CPLEN 
          SA4    PECB        GET CONTROL POINT AREA LIMIT ADDRESS 
          SA2    PECA        GET CONTROL POINT AREA LWA+1 
          SB4    X2 
          SB3    X4 
          GE     B2,B3,PEC5  IF END OF LINE 
          LT     B2,B4,PEC3  IF MORE CONTROL POINTS 
 PEC5     PRINT  PRBF,B7-PRBF 
  
*         PRINT CONTROL POINT AREA ADDRESS. 
  
          SB7    PRBF        RESET PRINT STRING ADDRESS 
          SA1    LW 
          SB2    X5          CONTROL POINT AREA ADDRESS 
          SB3    B2+8*CPLEN  LIMIT ADDRESS FOR THIS LINE
          SB4    X1          CONTROL POINT AREA LWA+1 
          SB5    -4          -(ADDRESS DIGIT COUNT) 
          SA2    OP 
          ZR     X2,PEC6     IF NOT DUMPING PCPA-S
          SB5    -5 
 PEC6     SX1    B2 
          SB6    B5+60
          LX1    B6          SHIFT ADDRESS
          SB2    B2+CPLEN    ADVANCE CPA/PCPA ADDRESS 
          LX1    B6 
          LX1    B6 
          SB6    -B5
          RJ     CTS         CONVERT ADDRESS
          SB6    B5+9 
          RJ     SBL         SPACE TO NEXT CPA/PCPA 
          GE     B2,B3,PEC7  IF END OF LINE 
          LT     B2,B4,PEC6  IF MORE CONTROL POINTS 
 PEC7     SX5    B2+         UPDATE CONTROL POINT AREA ADDRESS
          PRINT  PRBF,B7-PRBF 
          JP     PECX        EXIT 
  
 PECA     BSS    1           SAVED CONTROL POINT AREA ADDRESS 
 PECB     BSS    1           SAVED CONTROL POINT AREA LIMIT ADDRESS 
 PEN      SPACE  4,12 
**        PEN - PRINT BUFFERED DEVICE TABLE ENTRY NUMBER. 
* 
*         ENTRY  (X1) = ENTRY NUMBER, LEFT-JUSTIFIED. 
*                (X2) = TABLE NAME IN DISPLAY CODE, LEFT-JUSTIFIED
*                         AND SPACE-FILLED. 
*                (B6) = TABLE NAME CHARACTER COUNT. 
* 
*         USES   B - 6, 7.
* 
*         CALLS  CTS, UPS.
* 
*         MACROS PRINT. 
  
  
 PEN      SUBR               ENTRY/EXIT 
          SB7    PRBF 
          RJ     UPS         STORE TABLE NAME IN STRING BUFFER
          SB6    4
          RJ     CTS         STORE ENTRY NUMBER IN STRING BUFFER
          PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
          EQ     PENX        RETURN 
 PER      SPACE  4,7
**        PER - PROCESS ERROR EXIT. 
* 
*         ENTRY  (RPVB+7) = ERROR EXIT INFORMATION. 
* 
*         EXIT   IF AN ARITHMETIC ERROR IS ENCOUNTERED, 
*                PROCESSING IS RESUMED AT *ERR19.1*.  IF
*                ANY OTHER ERROR IS ENCOUNTERED *DSDI*
*                IS ABORTED AND THE ERROR IS REPORTED.
* 
*         USES   X - 0, 1, 2, 3, 6, 7.
*                A - 1, 2, 6, 7.
* 
*         MACROS REPRIEVE.
  
  
 PER      SA2    RPVB+7      ERROR FLAG 
          MX0    -12
          BX3    -X0*X2      EXTRACT ERROR FLAG 
          SX3    X3-ARET
          ZR     X3,PER1     IF ARITHMETIC ERROR
          REPRIEVE RPVB,RESET,001 
  
 PER1     SA1    PERA        RESTORE REPRIEVE BLOCK 
          SA2    A1+B1
          BX6    X1 
          BX7    X2 
          SA6    RPVB 
          SA7    A6+B1
          REPRIEVE  RPVB,SET,001
          EQ     ERR19.1     * BAD SYSTEM POINTER.* 
  
 PERA     VFD    36/0,12/31B,12/0 
          VFD    30/0,30/PER
 PFS      SPACE  4,9
**        PFS - PRINT FILE SUMMARY. 
* 
*         ENTRY  FILE INFORMATION IS AT *GNFA*. 
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  ATC,CTS,FDW,PTC,SDI,SSB,UPS,WOF. 
  
  
 PFS      SUBR
          RJ     SSB         CLEAR PRINT STRING 
          SA2    =10HFNT -FUT - 
          SB6    5
          SB7    PRBF+24
          RJ     UPS         SET HEADER INFORMATION 
          SB6    5
          SB7    PRBF+74
          RJ     UPS
  
*         SET FILE ORDINAL. 
  
          SA1    GNFA 
          SB6    4
          SB7    PRBF+3 
          LX1    -12
          RJ     CTS
  
*         SET FILE NAME.
  
          SA2    GNFA+1 
          SB6    7
          SB7    PRBF+9 
          RJ     UPS
  
*         SET FILE TYPE.
  
          LX2    6
          MX1    6
          BX2    X1*X2
          LX2    6           TYPE CODE
          SX3    5           CALCULATE WORD ORDINAL 
          BX4    X2 
          SX7    X3 
          IX0    X2/X3
          IX3    X0*X7
          SA1    PFSA+X0     GET WORD IN FILE TYPE MICRO
          IX4    X4-X3       CALCULATE SHIFT COUNT
          SX3    12 
          MX0    12 
          IX4    X3*X4
          SB2    X4+
          LX1    X1,B2
          BX2    X0*X1
          SB6    2
          SB7    PRBF+18
          RJ     UPS
  
*         SET FNT.
  
          SA1    GNFA+1 
          SB7    PRBF+30
          SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW
          BX2    X1 
          SB6    10 
          RJ     SDI
  
*         SET FUT.
  
          SA1    GNFA+3 
          SB7    PRBF+80
          SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW
          BX2    X1 
          SB6    10 
          RJ     SDI
          PRINT  CCCH,B7-CCCH 
  
*         LINE 2. 
  
          RJ     SSB         CLEAR PRINT STRING 
          SA2    =10HFST -EST - 
          SB6    5
          SB7    PRBF+24
          RJ     UPS
          SB6    5
          SB7    PRBF+74
          RJ     UPS
  
*         SET FST.
  
          SA1    GNFA+2 
          SB7    PRBF+30
          SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW
          BX2    X1 
          SB6    10 
          RJ     SDI
  
*         SET EST ADDRESS.
  
          SA1    GNFA+4 
          LX1    -18
          SB6    6
          SB7    PRBF+80
          RJ     CTS
  
*         SET EST.
  
          SA1    GNFA+5 
          SB7    B7+2 
          SA2    =4000005B   FORMAT CONTROL 
          RJ     FDW
          BX2    X1 
          SB6    10 
          RJ     SDI
          PRINT  CCCH,B7-CCCH 
          SA1    GNFA+5 
          PL     X1,PFS1     IF NOT MASS STORAGE
          PRINT  (=C*                         TRACK CHAIN -*) 
          RJ     ATC         ASSEMBLE TRACK CHAIN 
          RJ     PTC         PRINT TRACK CHAIN
 PFS1     PRINT  (=2C  )
          JP     PFSX        EXIT 
  
 PFSA     DATA   H*"NMFT"*   FILE TYPE NAMES
 PIO      SPACE  4,5
**        PIO - PRESET INPUT AND OUTPUT FILES.
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  CIO=,RSP,STF,WNB=. 
  
  
 PIO      SUBR
  
*         CHECK OUTPUT FILE.
  
          SX2    L
          RJ     STF         CHECK IF TERMINAL
          NZ     X6,PIO1         IF NOT A TERMINAL
          SA1    =0LOUTPUT
          BX6    X1+X2
          SA6    B1+B1       SET OUTPUT FILE FET POINTER
          SX6    15B
          BX6    X1+X6
          SA6    X2          SET NON-BUSY WRITE CODE IN FET 
          SX6    1R 
          SA6    CCCH        SET CARRIAGE CONTROL CHARACTER 
          SX6    1
          SA6    TF          SET TERMINAL OUTPUT FLAG 
          JP     PIO2        PROCESS INPUT FILE 
 PIO1     SA1    PRSB 
          RJ     RSP         RESET PRINT DENSITY
  
*         PRESET INPUT FILE.
  
 PIO2     SA1    ZF 
          NZ     X1,PIOX     IF DIRECTIVES ON COMMAND 
          SA4    I
          ZR     X4,PIOX     IF ZERO FET
          SX2    A4 
          RJ     STF         CHECK IF TERMINAL
          NZ     X6,PIO3     IF NOT A TERMINAL
          SA1    TF 
          ZR     X1,PIO3     IF OUTPUT NOT TO A TERMINAL
          PRINT  (=C*ENTER DIRECTIVES--*) 
 PIO3     RECALL I
          READ   X2          BEGIN INPUT READ 
          JP     PIOX        EXIT 
 PKS      SPACE  4,11 
**        PKS - PACK CHARACTERS FROM STRING BUFFER. 
* 
*         ENTRY  B2 = FWA OF STRING BUFFER. 
*                B6 = NUMBER OF CHARACTERS TO PACK. 
*                B7 = FWA OF PACKED BUFFER. 
* 
*         EXIT   B2 AND B7 ARE UPDATED. 
* 
*         USES   X - 1,6. 
*                B - 2,5,6,7. 
*                A - 1,6. 
  
  
 PKS      SUBR
 PKS1     SX6    0           CLEAR ASSEMBLY 
          SB5    60          LEFT JUSTIFICATION SHIFT COUNT 
 PKS2     SA1    B2          READ STRING
          LX6    6
          SB6    B6-1        COUNT CHARACTER
          SB2    B2+B1       ADVANCE STRING POINTER 
          SB5    B5-6        DECREASE SHIFT COUNT 
          BX6    X6+X1       MERGE NEW CHARACTER
          ZR     B5,PKS3     IF FULL WORD ASSEMBLED 
          NZ     B6,PKS2     IF MORE CHARACTERS TO PACK 
 PKS3     LX6    X6,B5       LEFT JUSTIFY LAST WORD 
          SA6    B7          STORE PACKED DATA
          SB7    B7+1        ADVANCE OUTPUT POINTER 
          NZ     B6,PKS1     IF MORE CHARACTERS TO PACK 
          JP     PKSX        EXIT 
 PMD      SPACE  4,36 
**        PMD - PROCESS MEMORY DUMP.
* 
*         ENTRY  B2 = DUMP PARAMETER BLOCK ADDRESS. 
* 
*         PARAMETER BLOCK FORMAT -
* 
*T WORD0  60/FWA OF DUMP
*T WORD1  60/LWA+1 OF DUMP
*T WORD2  60/CORE ADDRESS 
*T WORD3  60/NO SUPPRESS FLAG 
*T WORD4  60/FORMAT CODE
*T WORD5  60/COLUMN LENGTH
*T WORD6  60/INVERTED ADDRESS 
* 
*         WHERE - 
* 
*         CORE ADDRESS     = ADDRESS OF DATA IF DUMPING FROM MEMORY.
*                          = 0 IF DUMPING FROM DUMP FILE. 
* 
*         NO SUPPRESS FLAG = 0 TO SUPPRESS REPEAT DATA. 
*                        .NE.0 IF NO SUPPRESSION REQUESTED. 
* 
*         FORMAT CODE      = 0 FOR *C* FORMAT.
*                          = 1 FOR *D* FORMAT.
*                          = 2 FOR *E* FORMAT.
* 
*         COLUMN LENGTH    = 0 - COMPUTE COLUMN LENGTH. 
*                          = L - FORCE COLUMNS TO BE L WORDS LONG.
*         INVERTED ADDRESS   USED TO INDICATE ADDRESS ON
*                            THE DUMP SHOULD DECREMENT. 
* 
*         EXIT   INPUT PARAMETER BLOCK NOT UPDATED. 
*                B2 = ADDRESS OF UPDATED PARAMETER BLOCK. 
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  CTS, FPB, PPB, SDI, SRD, SSB.
* 
*         MACROS GETCM, MOVE, PRINT.
  
  
 PMD      SUBR
          MOVE   7,B2,PMDB   MOVE PARAMETER BLOCK 
          RJ     SSB         SPACEFILL STRING BUFFER
          MX6    1
          SA6    SRDA        PRESET FIRST CALL TO *SRD* 
          SA1    PMDB+4      FORMAT CODE
          SB2    X1+
          JP     B2+PMDA     EXECUTE SELECTED PROCESSOR 
  
 PMDA     BSS    0
          LOC    0
+         JP     PMD1        *C* FORMAT 
+         JP     PMD1        *D* FORMAT 
+         JP     PMD2        *E* FORMAT 
          LOC    *O 
  
*         PROCESS C AND D FORMAT. 
  
 PMD1     SB2    PMDB 
          RJ     FPB         FILL PAGE BUFFER 
          SB2    PMDB 
          RJ     PPB         PRINT PAGE BUFFER
          SA1    PMDB        FWA
          SA2    A1+B1       LWA+1
          IX2    X1-X2
          NG     X2,PMD1     IF MORE TO DUMP
          SB2    PMDB 
          JP     PMDX        EXIT 
  
*         PROCESS E FORMAT. 
  
 PMD2     SA1    PMDB+2 
          NZ     X1,PMD3     IF DUMPING FROM CORE 
          GETCM  BUF,4
          SX1    BUF         SET DATA ADDRESS 
 PMD3     SA2    PMDB+3 
          NZ     X2,PMD4     IF NO SUPPRESS REQUESTED 
          SB5    4           WORD COUNT 
          RJ     SRD         SENSE REPEAT DATA
          NZ     X1,PMD7     IF REPEAT SENSED 
 PMD4     SA1    PMDB+6 
          NZ     X1,PMD4.1   IF INVERTED ADDRESS TO BE USED 
          SA1    PMDB        GET NORMAL ADDRESS 
 PMD4.1   LX1    -24         LEFT JUSTIFY BINARY DIGITS 
          SB6    8           NUMBER OF DIGITS 
          SB7    PRBF 
          RJ     CTS         CONVERT ADDRESS
          SA1    PMDB+2 
          SB7    B7+1 
          NZ     X1,PMD5     IF DUMPING FROM CORE 
          SX1    BUF
 PMD5     SA1    X1+         READ FIRST DATA WORD 
          SB2    4           WORD COUNT 
 PMD6     SB6    20 
          RJ     CTS         CONVERT DATA WORD
          SB7    B7+1 
          SA1    A1+B1
          SB2    B2-B1
          NZ     B2,PMD6     IF MORE TO DUMP
          SA2    A1-4 
          SB6    40 
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          PRINT  CCCH,B7-CCCH 
 PMD7     SA1    PMDB+2 
          ZR     X1,PMD8     IF DUMPING FROM FILE 
          SX6    X1+4 
          SA6    A1+         UPDATE CORE ADDRESS
 PMD8     SA1    PMDB+6 
          SX6    4
          ZR     X1,PMD9     IF NO INVERTED ADDRESS 
          IX7    X1-X6
          SA7    A1 
 PMD9     SA1    PMDB 
          IX6    X1+X6
          SA6    A1          UPDATE ADDRESS 
          SA2    A1+B1       LWA+1
          IX6    X6-X2
          NG     X6,PMD2     IF MORE TO DUMP
          SB2    PMDB        UPDATED PARAMETER BLOCK ADDRESS
          JP     PMDX        EXIT 
  
 PMDB     BSS    7           DUMP PARAMETER BLOCK 
 PNF      SPACE  4,15 
**        PNF - PRINT NEGATIVE FL AREA. 
* 
*         ENTRY  (X3) = NEGATIVE FIELD LENGTH ORDINAL OF LWA+1. 
*                (X0) = NEGATIVE FIELD LENGTH ORDINAL OF FWA. 
*                (RC) = RA OF CONTROL POINT.
*                (L.TNFL) = NFL OF CONTROL POINT. 
*                TABLE *TNFL* CONTAINS NFL MEMORY.
* 
*         USES   DCGA - DCGA+6. 
*                X - 1, 2, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 2. 
* 
*         CALLS  PMD. 
  
  
 PNF      SUBR               ENTRY/EXIT 
          SA1    RC          GET RA 
          SA2    L.TNFL      GET NFL
          IX7    X1-X0       FORM ABSOLUTE FWA
          IX6    X1-X3       FORM ABSOLUTE LWA+1. 
          SA7    DCGA 
          SA6    A7+B1
          SA1    F.TNFL      GET BASE ADDRESS OF DATA 
          IX7    X2-X0       FORM INDEX 
          IX7    X1+X7       FORM ADDRESS OF DATA IN CORE 
          SA7    A6+B1
          SB2    A6-B1       SET BASE ADDRESS OF DUMP PARAMETERS
          BX7    X0          SAVE INVERTED ADDRESS
          SA7    DCGA+6 
          RJ     PMD         PROCESS DUMP 
          JP     PNFX        RETURN 
 POM      SPACE  4,10 
**        POM - POSITION CM/EXTENDED MEMORY.
* 
*         ENTRY  MI = MEMORY BLOCK RANDOM INDEX.
*                B2 = ADDRESS OF DUMP PARAMETER BLOCK.
* 
*         SAVES  X - 0,5. 
*                B - 1. 
*                A - 0,5. 
* 
*         CALLS  PCM. 
  
  
 POM      SUBR
          SA1    MI 
          BX6    X1 
          SA1    B2          FWA OF DUMP
          SA6    RI          SET RANDOM INDEX FOR CURRENT MEMORY BLOCK
          SA2    MB          MEMORY BASE ADDRESS
          IX3    X1+X2
          SA2    BA          RA OF DUMP 
          IX3    X3+X2
          RJ     PCM         POSITION DUMP FILE 
          JP     POMX        EXIT 
 PPB      SPACE  4,11 
**        PPB - PRINT PAGE BUFFER.
* 
*         ENTRY  X1 = BUFFER LENGTH.
*                B2 = DUMP PARAMETER BLOCK ADDRESS. 
*                PAGE BUFFER IS AT *BUF*. 
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  CTS,FDW,SDI,UPS,WOF. 
  
 PPB      SUBR
          SX6    BUF
          IX7    X6+X1
          SA6    PPBA        SAVE PAGE BUFFER FWA 
          SA4    B2+5        COLUMN LENGTH
          ZR     X4,PPB1     IF COLUMN LENGTH NOT SPECIFIED 
          LX6    X4,B1
          JP     PPB2        SET ROW INCREMENT
 PPB1     SX2    6           COMPUTE ROW INCREMENT = 2*(WORDS+2)/3
          SX1    X1+4 
          IX6    X1/X2
          LX6    1
 PPB2     SA6    A6+B1       SAVE PRINT ROW INCREMENT 
          SA7    A6+B1       SAVE PRINT BUFFER LWA+1
          SA5    B2+4        FORMAT CODE
          SA5    X5+PPBB     FORMAT CONTROL PARAMETERS
  
*         FORMAT ONE ROW. 
  
 PPB3     SA1    PPBA 
          SA3    A1+B1       ROW INCREMENT
          SA2    A3+B1
          SB3    X1          SET BUFFER POINTER 
          SB4    X2          BUFFER LWA+1 
          SX4    3           LOOP COUNT 
          SB7    PRBF        PRINT STRING ADDRESS 
  
*         PROCESS ONE WORD. 
  
 PPB4     LT     B3,B4,PPB5  IF NOT BEYOND END OF BUFFER
          SA2    =50H 
          JP     PPB6        BLANK THIS PORTION OF PRINT LINE 
  
 PPB5     SA1    B3+         READ PAGE BUFFER ENTRY 
          PL     X1,PPB7     IF VALID DATA
          SA2    =50H-------------------------------------------
 PPB6     SB6    X5+39       NUMBER OF CHARACTERS 
          RJ     UPS         STORE REPEAT DATA INDICATOR IN PRINT LINE
          JP     PPB8        PROCESS NEXT WORD
  
*         FORMAT DATA WORD. 
  
 PPB7     SB6    8           NUMBER OF DIGITS 
          LX1    -24         LEFT JUSTIFY BINARY DIGITS 
          RJ     CTS         CONVERT ADDRESS TO PRINT STRING
          SX6    1R 
          SA6    B7 
          SB7    B7+B1       SPACE ONE
          SA1    A1+B1       READ DATA WORD 
          BX2    X5          SET FORMAT CONTROL 
          RJ     FDW         FORMAT DATA WORD 
          SB6    10 
          BX2    X1          SET DATA WORD FOR *SDI*
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
 PPB8     SB3    B3+X3       ADVANCE PAGE BUFFER ADDRESS
          SB7    B7+2        SPACE 2
          SX4    X4-1 
          NZ     X4,PPB4     IF MORE TO FORMAT IN THIS ROW
          PRINT  CCCH,B7-CCCH-2 
          SA1    PPBA        ADVANCE PAGE BUFFER POINTER
          SA2    A1+1 
          SX2    X2+BUF      LWA+1 OF END OF FIRST COLUMN 
          SX6    X1+2 
          SA6    A1          UPDATE POINTER 
          IX7    X6-X2
          NG     X7,PPB3     IF MORE TO DUMP
          JP     PPBX        EXIT 
  
 PPBA     BSS    1           PAGE BUFFER POINTER
          BSS    1           PAGE ROW INCREMENT 
          BSS    1           PAGE BUFFER LWA+1
  
 PPBB     BSS    0           FORMAT CONTROL PARAMETERS
          VFD    24/0,18/5,18/4    *C* FORMAT 
          VFD    24/0,18/4,18/5    *D* FORMAT 
 PPE      SPACE  4,10 
**        PPE - PROCESS PREMATURE EOF.
* 
*         ENTRY  TO *PPE* TO END CURRENT RECORD AND ISSUE MESSAGE.
*                TO *PPE1* TO ISSUE MESSAGE ONLY. 
* 
*         EXIT   TO *RBI2*. 
* 
*         CALLS  ERS. 
* 
*         MACROS MESSAGE. 
  
  
 PPE      BSS    0           ENTRY
          RJ     ERS         END RECORD ON FILE *S* 
 PPE1     MESSAGE  MSG5,,R   * WARNING - INCOMPLETE DUMP FILE.* 
          EQ     RBI2        READ NEXT RECORD 
 PPO      SPACE  4,20 
**        PPO - PACK PP OPERATING REGISTERS.
* 
*         ENTRY  (PP) = PP NUMBER.
* 
*         EXIT   (X6) = 0 IF NO REGISTERS FOUND.
*                (PPOB - PPOB+7) = REGISTERS CAPTURED AT TIME OF DUMP,
*                BEFORE AND AFTER AN *IDLE* WAS ISSUED TO THE PP/CPP
*                (I4A OR I4S IOU ONLY). 
*                (PPOB+8 - PPOB+15) = REGISTERS CAPTURED BY *DFT*.
* 
*         USES   X - 0, 1, 2, 3, 5, 6, 7. 
*                A - 1, 2, 3, 6, 7. 
*                B - 6, 7.
* 
*         CALLS  CPN, DRA, FBP, GDA, NXB, RDR, RPB. 
* 
*         MACROS MOVE.
  
  
 PPO3     RJ     GDA         GET DFT/OS BUFFER FWA
          BX6    X5 
          ZR     X3,PPOX     IF NO DFT/OS BUFFER
          SA2    X3          GET DFT CONTROL WORD 
          MX0    4
          BX2    X0*X2       GET NUMBER OF POINTER WORDS
          SA1    CI          SET RANDOM INDEX OF CM RECORD
          BX7    X1 
          LX2    4
          SX2    X2-/DFT/DFPR-1 
          NG     X2,PPOX     IF NO PP REGISTERS POINTER WORD
          SA7    RI 
          SA3    X3+/DFT/DFPR 
          RJ     DRA         GET PP REGISTER DATA POINTER 
          SX6    X6+B1       SKIP HEADER WORD 
          SA2    PPOA        GET PP/CPP NUMBER
          LX2    2
          IX3    X6+X2       PP REGISTER DATA FWA 
          LX3    2           CONVERT TO BYTE NUMBER 
          RJ     FBP         FIND BYTE POSITION 
          SB6    PPOB+8-1 
          SB7    7
 PPO4     RJ     NXB         GET NEXT REGISTER
          LX1    16 
          BX5    X1 
          RJ     NXB
          BX7    X5+X1
          SB6    B6+B1
          SA7    B6 
          SB7    B7-B1
          PL     B7,PPO4     IF NOT THROUGH GETTING REGISTERS 
          SX6    1           SET REGISTER DATA FOUND
  
 PPO      SUBR               ENTRY/EXIT 
          SX5    0           SET NO REGISTER DATA FOUND 
          RJ     CPN         CONVERT PP/CPP NUMBER
          SA1    .PSR 
          NZ     X3,PPO1     IF DUMPING A CPP 
          SA3    TLPP+X6     CHECK FOR PP SWITCH
          SX7    X3-20B 
          BX2    X3-X2
          ZR     X2,PPO1     IF NO SWITCH 
          BX6    X3 
          NG     X7,PPO1     IF NOT UPPER BANK
          SX6    X3-20B+12B 
 PPO1     SA6    PPOA        SAVE LOGICAL PP NUMBER 
          RJ     RDR         READ DUMP RECORD 
          ZR     X2,PPO3     IF RECORD NOT FOUND
          SA1    RI          MOVE DATA TO *PBUF*
          AX1    30 
          MOVE   X1,BUF,PBUF
          SA1    PPOA        CALCULATE STARTING BYTE IN RECORD
          SX2    18D
          IX5    X1*X2
          SX0    -452452B    BIT MASK FOR NUMBER OF BYTES TO READ 
          SB6    A1 
          ERRNZ  PPOB-1-PPOA  *PPOA* AND *PPOB* MUST BE CONTIGUOUS
          SX7    B0+         CLEAR ASSEMBLY REGISTER
 PPO2     BX1    X5 
          RJ     RPB         READ REGISTER BYTE 
          LX6    4
          BX7    X7+X6
          LX7    8
          SX5    X5+B1       ADVANCE BYTE ADDRESS 
          LX0    -1 
          NG     X0,PPO2     IF NOT THROUGH READING A REGISTER
          SB6    B6+B1       STORE REGISTER 
          SA7    B6 
          BX7    X7-X7       CLEAR ASSEMBLY REGISTER
          SX0    X0+
          NZ     X0,PPO2     IF NOT THROUGH READING ALL REGISTERS 
          EQ     PPO3        CHECK FOR DFT BUFFER 
  
  
 PPOA     CON    0           LOGICAL PP NUMBER
 PPOB     BSS    0           UNPACKED REGISTERS 
          DUP    16,1 
          CON    1S59 
 PRS      SPACE  4,5
**        PRS - PRESET PROGRAM. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  ARG, ZAP.
* 
*         MACROS DATE, REPRIEVE.
  
  
 PRS      SUBR
          REPRIEVE RPVB,SET,001 
          SX6    A0+
          SX1    X6-MFL=
          PL     X1,PRS0.0   IF SUFFICIENT FIELD LENGTH 
          MEMORY CM,,R,MFL= 
          SX6    MFL=+77B    ROUND UP BY 100B 
          AX6    6
          LX6    6
 PRS0.0   SA6    FN          SAVE INITIAL FIELD LENGTH
          SA6    FM          SET CURRENT FIELD LENGTH 
          SX6    X6-10B 
          SA6    F.TEND      INITIALIZE TABLE SPACE 
          GETPP  PRSE,PRSD,PRSC  JOBS DEFAULT PRINT INFORMATION 
          SA1    =1LS 
          SA2    PRSC 
          BX2    X1-X2
          NZ     X2,PRS0     IF NOT 6 LINES PER INCH      (1LS) 
          SA1    =1L6        SET 6 LINES PER INCH 
          EQ     PRS0.1      SET JOBS DEFAULT PRINT DENSITY 
  
 PRS0     SA1    =1L8        SET 8 LINES PER INCH 
 PRS0.1   BX6    X1 
          SA6    PRSB        JOBS DEFAULT PRINT DESITY SELECTION
          SA1    ACTR 
          SB4    X1+         ARGUMENT COUNT 
          ZR     B4,PRS1     IF NO ARGUMENTS
          SB5    PRSA        ARGUMENT TABLE ADDRESS 
          SA4    ARGR        READ FIRST ARGUMENT
          RJ     ARG         PROCESS COMMAND ARGUMENTS
          NZ     X1,ERR1     IF ARGUMENT ERROR
          SA1    F
          ZR     X1,ERR1     IF F=0 SPECIFIED 
          SA1    BF 
          ZR     X1,PRS1     IF *B* NOT SPECIFIED 
          SA2    B           SET BML FILE NAME IN FET 
          MX0    -18
          BX6    -X0*X2 
          BX6    X1+X6
          SA6    A2 
          SA6    EB          SET EMPTY BML FILE FLAG
          SA1    BD 
          NZ     X1,ERR43    IF BINARY DUMP 
 PRS1     SA1    ZF 
          ZR     X1,PRS2     IF *Z* ARGUMENT NOT SELECTED 
          SX2    I           SET INPUT FET ADDRESS
          SB6    80          SET STRING BUFFER LENGTH 
          RJ     ZAP         PROCESS *Z* ARGUMENT 
 PRS2     DATE   DATE        SET DATE 
          SX6    1R.
          SA6    CHAR+80     GUARANTEE TERMINATOR ON DIRECTIVES 
          SA3    BD 
          ZR     X3,PRS3     IF NOT BINARY DUMP 
          SX6    1RX         CHANGE CPO DIRECTIVE DEFAULT 
          SA1    =10H(DMB MODE)  SET MODE IN HEADER 
          LX6    59-5 
          BX7    X1 
          SA6    CO 
          SA7    TITL2+2
 PRS3     SA1    DR 
          SA2    S
          MX3    42 
          BX6    X3*X1
          ZR     X6,PRSX     IF NO RANDOM FILE NAME SPECIFIED 
          BX2    -X3*X2 
          BX6    X6+X2
          SX7    -1 
          SA6    A2 
          SA7    A1 
          JP     PRSX        EXIT 
  
 PRSA     BSS    0           COMMAND ARGUMENT TABLE 
 I        ARG    I,I
 F        ARG    F,F
 L        ARG    L,L
 B        ARG    BF,BF
 D        ARG    =1,DR
 DMB      ARG    -=1,BD 
 NR       ARG    -=1,RBIA 
 FULL     ARG    -=1,VE 
 PD       ARG    =0L8,PRSB
 P        ARG    -=1,PF 
 Z        ARG    -=1,ZF 
          VFD    60/0 
  
 PRSB     CON    0           PRINT DESITY SELECTION 
 PRSC     CON    0           PRINT DESITY FORMAT CONTROL CHARACTER
 PRSD     CON    0           PAGE LINE LIMIT
 PRSE     CON    0,0         *GETPP* REPLY BUFFER 
 PSM      SPACE  4,10 
**        PSM - POSITION SIXTY-FOUR BIT MEMORY. 
* 
*         ENTRY  (B2) = POINTER TO 64-BIT MEMORY ADDRESS. 
* 
*         EXIT   *NXB* SET TO GET NEXT BYTE.
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 1, 2, 3, 6, 7. 
* 
*         CALLS  FBP, ISM.
  
  
 PSM      SUBR               ENTRY/EXIT 
          SA1    B2          64 BIT MEMORY BYTE ADDRESS 
          BX7    X7-X7
          SA2    XB          FETCH MEMORY BOUNDS
          IX1    X1-X2
          NG     X1,PSM1     IF NOT *EI* ADDRESS
          BX7    X2 
 PSM1     SA7    AO          DETERMINE 64-BIT MEMORY RECORD 
          RJ     ISM
          SA1    XI          SET CM RANDOM INDEX
          BX6    X1 
          SA1    B2 
          SA6    RI 
          SA3    XH 
          IX6    X1-X3       64 BIT WORD OFFSET WITHIN RECORD 
          AX3    X6,B1
          RJ     FBP         FIND BYTE POSITION 
          EQ     PSMX        RETURN 
 PTC      SPACE  4,11 
**        PTC - PRINT TRACK CHAIN.
* 
*         ENTRY  TRACK LINKS IN TABLE *TSC1* ONE PER WORD RIGHT 
*                JUSITIFIED.  A NEGATIVE TABLE ENTRY IS AN ERROR
*                MESSAGE ADDRESS. 
* 
*         USES   X - 1, 2, 3, 5.
*                A - 1, 2, 3. 
*                B - 2, 3, 4, 6, 7. 
* 
*         CALLS  CTS, SSB.
* 
*         MACROS PRINT. 
  
  
 PTC4     BX1    -X1
          PRINT  X1          PRINT ERROR MESSAGE
  
 PTC      SUBR
          SX5    0           PRESET TABLE INDEX 
          RJ     SSB         CLEAR PRINT STRING 
 PTC1     SA2    F.TSC1      LINK TABLE BASE ADDRESS
          SA3    L.TSC1 
          SB2    X5          SET CURRENT INDEX
          SB3    X3          TABLE LENGTH 
          GE     B2,B3,PTCX  IF FINISHED
          SB7    PRBF+24     PRINT STRING ADDRESS 
          SB4    21          LOOP COUNT 
 PTC2     SA1    X2+B2       READ NEXT ENTRY
          NG     X1,PTC4     IF ERROR 
          LX1    -12
          SB6    4
          RJ     CTS         CONVERT TRACK LINK 
          SB7    B7+B1
          SB2    B2+B1       ADVANCE INDEX
          SB4    B4-1        LOOP COUNT 
          GE     B2,B3,PTC3  IF END OF CHAIN REACHED
          GE     B4,B0,PTC2  IF MORE SPACE IN THIS LINE 
 PTC3     SX5    B2+         SAVE INDEX 
          PRINT  CCCH,B7-CCCH 
          JP     PTC1        CONTINUE 
 PTL      SPACE  4,16 
**        PTL - PRINT TABLE LINE. 
* 
*         ENTRY  X1 = FORMAT TABLE POINTER. 
*                A1 = ADDRESS OF FORMAT TABLE POINTER.
*                B2 = BASE ADDRESS OF TABLE DATA IN CORE. 
*                FW = BASE ADDRESS OF TABLE IN DUMP.
*                B7 = PRINT STRING ADDRESS. 
* 
*         EXIT   FORMAT TABLE POINTER IS UPDATED. 
*                X2.LT.0 IF END OF DUMP.
* 
*         SAVES  X - NONE.
*                B - 1,2. 
*                A - 0. 
* 
*         CALLS  CTS,SBL,SDI,UPS. 
  
  
 PTL      SUBR
          SA2    X1+         READ FORMAT TABLE
          NG     X2,PTLX     IF END OF DUMP 
          NZ     X2,PTL1     IF DATA TO DUMP
          SB6    68 
          RJ     SBL         BLANKFILL LINE 
          JP     PTLX        EXIT 
  
 PTL1     SX6    X1+4 
          SA6    A1          UPDATE FORMAT TABLE POINTER
          SB3    X2          WORD ORDINAL IN TABLE
          AX2    18 
          SB4    X2          FIRST DIGIT POSITION OF FIELD
          AX2    18 
          SX4    X2          NUMBER OF DIGITS IN FIELD
          AX2    18 
          ZR     X2,PTL2     IF NOT INDIRECT PROCESSING 
          SA1    B3 
          SB3    X1+         WORD ORDINAL IN TABLE
 PTL2     SA2    A2+1        READ FIRST WORD OF FIELD DESCRIPTION 
          SB6    28 
          RJ     UPS         STORE IN PRINT STRING
          NZ     B4,PTL3     IF NOT FIRST FIELD IN WORD 
          SA1    FW 
          SX1    X1+B3       FORM WORD ADDRESS
          SB6    6
          LX1    -18
          RJ     CTS         CONVERT WORD ADDRESS 
          SB7    B7+B1
          JP     PTL4        PROCESS FIELD DATA 
  
 PTL3     SB6    7
          RJ     SBL         BLANK OUT ADDRESS CHARACTERS 
 PTL4     SX5    B7+21       SAVE ADDRESS OF END OF DATA FIELD
          SA1    FW 
          SB6    B2+B3
          SA1    X1+B6       READ DATA WORD FROM TABLE
          SX6    1R 
          SB3    B4+         SAVE FIRST DIGIT NUMBER
 PTL5     ZR     B4,PTL6     IF FIRST DIGIT POSITION REACHED
          LX1    3           SHIFT DATA 
          SA6    B7          SPACEFILL TO FIRST DIGIT POSITION
          SB7    B7+B1
          SB4    B4-B1
          EQ     PTL5        CONTINUE 
  
 PTL6     SB6    X4          DIGIT COUNT FOR THIS FIELD 
          RJ     CTS         CONVERT FIELD
          SB6    X5 
          SB6    B6-B7
          RJ     SBL         SPACEFILL TO END OF DATA FIELD 
          SX2    0           PRESET FOR NO INTERPRETATION 
          SB6    10 
          NZ     B3,PTL7     IF NOT FIRST FIELD OF WORD 
          SA2    A1+         READ DATA WORD TO INTERPRET
 PTL7     RJ     SDI         STORE DISPLAY CODE INTERPRETATION FOR WORD 
          SX2    0           CLEAR END OF DUMP INDICATOR
          JP     PTLX        EXIT 
 PTX      SPACE  4,15 
**        PTX - POSITION TO EXCHANGE PACKAGE. 
* 
*         ENTRY  (B6) = LIVE EXCHANGE PACKAGE FLAG. 
*                       0 = USE LIVE EXCHANGE PACKAGE.
*                (X3) = RADIAL MCI FLAG.
*                (X6) = ADDRESS OF EXCHANGE PACKAGE.
* 
*         EXIT   (X2) = DIRECTORY ADDRESS OF LIVE EXCHANGE PACKAGE. 
*                       0 = CM RESIDENT EXCHANGE PACKAGE. 
*                *NXB* PARAMETERS SET TO READ NEXT BYTE.
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 1, 2, 3, 6, 7. 
* 
*         CALLS  FBP, FPR, PVM. 
  
  
 PTX1     SA6    PXPA        SAVE SVA 
          RJ     PVM         POSITION VIRTUAL MEMORY
          NZ     X2,ERR30    IF PAGE NOT FOUND
 PTX1.1   SA1    PTXA 
          SX2    0
  
 PTX      SUBR               ENTRY/EXIT 
          SA1    S2LPS
          ZR     B6,PTX2     IF NO ADDRESS GIVEN
          BX1    X1-X6
          NZ     X1,PTX1     IF NOT SAME AS LIVE EXCHANGE 
          SX7    B1          SET PARAMETER FLAG 
          SA7    PTXB 
          SA2    SPPB 
          BX7    X2 
          SA7    PTXC        SAVE CPU NUMBER
 PTX2     SA1    .PXP 
          BX6    X3          RADIAL MCI FLAG
          RJ     FPR         FIND PROCESSOR RECORD
          ZR     X2,ERR14    IF RECORD NOT FOUND
          SA3    PTXC 
          ZR     X3,PTX4.1   IF CPU-0 EXCHANGE PACKAGE
          SA2    NR 
          SA2    X2          CPU-1 RANDOM ADDRESS POINTER 
          BX3    X3-X3
 PTX4.1   BX6    X2 
          SA6    PTXA        SAVE DIRECTORY ENTRY 
          RJ     FBP         POSITION DUMP FILE 
          SX6    B0+
          SA3    PTXB 
          ZR     X3,PTX5     IF NO PARAMETERS 
          SA6    NR          CLEAR NEXT EXCHANGE PACKAGE ENTRY
 PTX5     SA6    PTXB        CLEAR FLAG 
          SA3    PTXC 
          SA6    PTXC        CLEAR FLAG 
          NZ     X3,PTX1.1   IF CPU-1 EXCHANGE PACKAGE
          SA2    PTXA        DIRECTORY ENTRY
          JP     PTXX        RETURN 
  
  
 PTXA     DATA   0
 PTXB     CON    0
 PTXC     CON    0
 PVM      SPACE  4,10 
**        PVM - POSITION VIRTUAL MEMORY.
* 
*         ENTRY  (X6) = SYSTEM VIRTUAL ADDRESS. 
* 
*         EXIT   (X1) = (BRMA) = BYTE REAL MEMORY ADDRESS.
*                (X2) = 0, IF PAGE FOUND. 
* 
*         USES   A - 6. 
*                X - 2. 
*                B - 2. 
* 
*         CALLS  PSM, SPT.
  
  
 PVM      SUBR               ENTRY/EXIT 
          SA6    BRMA        SAVE POSSIBLE RMA
          SB2    BRMA 
          RJ     SPT         SEARCH PAGE TABLE
          NZ     X2,PVMX     IF PAGE NOT FOUND
          SB2    BRMA 
          RJ     PSM         POSITION 64-BIT MEMORY 
          SX2    0
          JP     PVMX        RETURN 
 PXH      SPACE  4,12 
**        PXH - PRINT PPU XP HEADING. 
* 
*         EXIT   (X1) = 0 IF NO MORE XP-S TO PROCESS. 
*                (X5) = 0 IF ONLY ONE XP TO PROCESS.
* 
*         USES   X - 1, 5.
*                B - 7. 
* 
*         CALLS  CPS, SXH.
* 
*         MACROS PRINT. 
  
  
 PXH      SUBR
          SB7    PRBF        SET PRINT STRING ADDRESS 
          RJ     SXH         SET LEFT HEADING 
          ZR     X1,PXHX     IF NO MORE XPS TO PROCESS
          SX1    20 
          RJ     CPS         CHECK PAGE SPACE 
          PRINT  (=2C  )
          SB7    PRBF+45
          RJ     SXH         SET RIGHT HEADING
          NZ     X1,PXH1     IF BOTH XPS ARE PRESENT
          SX5    B0          SET ONE XP FLAG
 PXH1     PRINT  CCCH,B7-CCCH 
          PRINT  (=2C  )
          SX1    1           ENSURE X1 NON-ZERO 
          JP     PXHX        EXIT 
 PXM      SPACE  4,20 
**        PXM - PRINT MULTIPLE EXCHANGE PACKAGES. 
* 
*         PRINT A PAIR OF EXCHANGE PACKAGES WITH THE HEADER 
*         POINTED TO BY THE CONTENTS OF X1. 
* 
*         ENTRY  (X1) = EXCHANGE PACKAGE HEADER ADDRESS.
*                (PXMM) = PRINT 1 XP FLAG 
*                (B2) = DATA BUFFER OFFSET. 
*                (CPRA) = ADDRESS OF FIRST EXCHANGE PACKAGE.
*                XP DATA IS IN *BUF*. 
* 
*         EXIT   CPRA IS UPDATED. 
*                (PXMM) = 0.
*                (PXMP) = 0.
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  CPS,CTS,FXW,SSB,UPS,WOF. 
  
  
 PXM      SUBR
          SX7    X1+         SAVE HEADER ADDRESS
          SA7    PXME 
          SX6    BUF+B2 
          SA6    PXMB        SET EXCHANGE PACKAGE DATA ADDRESS
  
*         PRINT HEADINGS. 
  
          SX1    20 
          RJ     CPS         CHECK REMAINING PAGE SPACE 
          RJ     SSB         CLEAR PRINT STRING 
          SA2    PXME 
          SA2    X2+         READ FIRST WORD OF HEADER
          SB6    90 
          SB7    PRBF 
          RJ     UPS         SET HEADING
  
*         SET EXCHANGE PACKAGE ADDRESSES. 
  
          SA1    CPRA 
          LX1    -15
          SB6    5
          SB7    PRBF 
          RJ     CTS         CONVERT ADDRESS
          SA2    PXMM 
          NZ     X2,PXM0     IF ONLY 1 XP 
          SX1    X1+20B      ADVANCE FOR SECOND PACKAGE 
          LX1    -15
          SB6    5
          SB7    PRBF+45
          RJ     CTS
 PXM0     SX6    X1+20B 
          SA6    CPRA        UPDATE XP ADDRESS
          PRINT  (=2C  )
          PRINT  CCCH,90
          PRINT  (=2C  )
  
*         FORMAT TWO EXCHANGE PACKAGES. 
  
          SX6    0
          SA6    PXMA        CLEAR LINE INDEX 
          SA5    PXMB 
          SA5    X5+         READ FIRST XP WORD 
 PXM1     RJ     SSB         CLEAR PRINT STRING 
          SB7    PRBF+1 
          SA1    PXMA        LINE INDEX 
          RJ     FXW         FORMAT EXCHANGE PACKAGE WORD 
          SA2    PXMM 
          NZ     X2,PXM1.1   IF ONLY 1 XP 
          SA5    A5+17B      ADVANCE TO NEXT EXCHANGE PACKAGE 
          SA1    PXMA        LINE INDEX 
          SB7    PRBF+46
          RJ     FXW
          SA5    A5-20B 
 PXM1.1   PRINT  CCCH,B7-CCCH 
          SA1    PXMA 
          SX6    X1+B1
          SA6    A1          ADVANCE LINE INDEX 
          SX7    X6-10B 
          NZ     X7,PXM2     IF NOT END OF A AND B REGISTERS
          PRINT  (=2C  )
 PXM2     SA1    PXMA 
          SX1    X1-20B 
          NG     X1,PXM1     IF MORE LINES TO FORMAT
          BX6    X6-X6
          SA6    PXMM        CLEAR 1 XP FLAG
          JP     PXMX        EXIT 
  
 PXMA     BSS    1           EXCHANGE PACKAGE LINE INDEX
 PXMB     BSS    1           EXCHANGE PACKAGE DATA ADDRESS
 PXMM     CON    0           PRINT 1 XP FLAG
  
  
 PXMC     CON    =90H     - PP MONITOR XP 
,- BREAKPOINT / HANG XP 
 PXMN     CON    =90H     - IDLE 0 XP 
, 
 PXMO     CON    =90H     - IDLE 1 XP 
, 
 PXMD     CON    =90H     - CPU DEADSTART XP
,- REAL TIME CLOCK XP 
 PXMF     CON    =90H     - ERROR EXIT XP 
,- UNUSED XP
 PXME     CON    0           EXCHANGE PACKAGE HEADER ADDRESS
 PXMG     CON    =90H     - CHANNEL 2 INPUT XP
,- CHANNEL 2 OUTPUT XP
 PXMH     CON    =90H     - CHANNEL 3 INPUT XP
,- CHANNEL 3 OUTPUT XP
 PXMI     CON    =90H     - CHANNEL 4 INPUT XP
,- CHANNEL 4 OUTPUT XP
 PXMJ     CON    =90H     - CHANNEL 5 INPUT XP
,- CHANNEL 5 OUTPUT XP
 PXMK     CON    =90H     - CHANNEL 6 INPUT XP
,- CHANNEL 6 OUTPUT XP
 PXML     CON    =90H     - CHANNEL 7 INPUT XP
,- CHANNEL 7 OUTPUT XP
 PXP      SPACE  4,8
**        PXP - PRINT PPU EXCHANGE PACKAGES.
* 
*         ENTRY  CPRA = XP ADDRESS. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  FXW,PXH,SSB,WOF. 
  
  
 PXP      SUBR
          SX7    BUF         PRESET PP EXCHANGE PACKAGE ADDRESS 
          SA7    FW 
          SX6    1
          SA6    PP          CLEAR PPU NUMBER 
          SA5    X7+         READ FIRST EXCHANGE PACKAGE WORD 
 PXP1     RJ     PXH         PRINT XP HEADING 
          ZR     X1,PXPX     IF NO MORE TO DUMP 
          NZ     X5,PXP1.1   IF ONLY ONE XP LEFT
          BX6    X5 
          SA6    PXPB 
 PXP1.1   SX6    0
          SA6    PXPA        CLEAR XP LINE INDEX
 PXP2     SA1    PXPA 
          RJ     SSB         CLEAR PRINT STRING 
          SB7    PRBF+1 
          RJ     FXW         FORMAT LEFT XP 
          SA1    PXPB 
          ZR     X1,PXP2.1   IF AT LAST XP
          SA5    A5+20B      READ DATA FROM NEXT XP 
          SA1    PXPA 
          SB7    PRBF+46
          RJ     FXW         FORMAT RIGHT XP
          SA5    A5-21B      RESET FOR PREVIOUS XP
 PXP2.1   PRINT  CCCH,B7-CCCH 
          SA1    PXPA 
          SX6    X1+B1
          SA6    A1          ADVANCE LINE INDEX 
          SX6    X6-10B 
          NZ     X6,PXP3     IF NOT END OF A AND B REGISTERS
          PRINT  (=2C  )
 PXP3     SA1    PXPA 
          SX1    X1-20B 
          NG     X1,PXP2     IF MORE LINES
          SA5    A5+22B      ADVANCE TO NEXT XP PAIR
          JP     PXP1        CONTINUE 
  
 PXPA     BSS    1           XP LINE INDEX
 PXPB     CON    1           LAST XP FLAG 
 P4F      SPACE  4,11 
**        P4F - PRINT FOUR BIT FLAGS. 
* 
*         ENTRY  X1 = FLAG BITS LEFT JUSTIFIED. 
*                B7 = PRINT STRING ADDRESS. 
* 
*         EXIT   X1 SHIFTED LEFT FOUR PLACES. 
*                B7 IS UPDATED. 
* 
*         USES   X - 1,6. 
*                B - 5,7. 
*                A - 6. 
  
  
 P4F      SUBR
          SB5    4           LOOP COUNT 
 P4F1     PL     X1,P4F3     IF FLAG NOT SET
          SX6    1R1         *ON* INDICATOR 
 P4F2     SA6    B7          STORE INDICATOR
          SB7    B7+B1       ADVANCE PRINT STRING 
          SB5    B5-B1
          LX1    1           SHIFT FLAGS
          GT     B5,B0,P4F1  IF MORE TO PRINT 
          JP     P4FX        EXIT 
  
 P4F3     SX6    1R-         *OFF* INDICATOR
          JP     P4F2 
 RBC      SPACE  4,15 
**        RBC - READ BUFFER CONTROLLER MEMORY.
* 
*         ENTRY  DUMP FILE POSITIONED TO CORRECT WORD 
* 
*         EXIT   (X1) .EQ. 0 IF TRANSFER COMPLETE.
*                     .NE. 0 IF TRANSFER NOT COMPLETE.
*                (X7) = 20/0,8/B1,8/B2,8/B3,8/B4,8/B5.
* 
*         USES   X - 0, 1, 6, 7.
*                B - 2. 
* 
*         MACROS READO. 
* 
*         NOTES  THE X7 EXIT CONDITION WILL BE SET ONLY IF THE
*                TRANSFER COMPLETED NORMALLY (X1 .EQ. 0).  IF THE 
*                TRANSFER COMPLETED NORMALLY, THE DUMP FILE WILL BE 
*                ADVANCED TO THE NEXT WORD. 
  
  
 RBC      SUBR               ENTRY/EXIT 
          READO  S           READ NEXT WORD 
          NZ     X1,RBCX     IF TRANSFER NOT COMPLETE 
          MX0    -8 
          BX7    X7-X7       CLEAR ASSEMBLY REGISTER
          SB2    5           SET LOOP COUNT 
  
*         CONVERT 8/12 FORMAT- 4/0,8/B1,4/0,8/B2 ...
  
 RBC1     LX6    12 
          LX7    8
          BX1    -X0*X6 
          BX7    X7+X1
          SB2    B2-1 
          NZ     B2,RBC1     IF WORD NOT PACKED 
          BX1    X1-X1       INDICATE TRANSFER COMPLETE 
          EQ     RBCX        RETURN 
 RBF      SPACE  4,15 
**        RBF - READ UP TO 512 WORDS OR TO EOR FROM FILE F. 
* 
*         EXIT   (X1) = NONZERO IF EOF. 
*                (EOFF) = NONZERO IF EOF. 
*                (EORF) = NEGATIVE IF EOR.
*                (BWCF) = BLOCK WORD COUNT. 
*                (RWCF) = RECORD WORD COUNT.
* 
*         USES   A - 1, 2, 6, 7.
*                X - 0, 1, 2, 3, 5, 6, 7. 
* 
*         MACROS READW. 
  
  
 RBF      SUBR               ENTRY/EXIT 
          SA1    RBHA        CHECK FOR DEFERRED HEADER
          SX0    BUF         ADDRESS TO READ DATA 
          SA2    RBFA        FILE TO READ 
          ZR     X1,RBF1     IF NO DEFERRED HEADER
          SX6    B0+         CLEAR HEADER WORD COUNT
          BX5    X1 
          SA6    A1 
          EQ     RBF1.1      PROCESS HEADER 
  
 RBF1     READW  X2,CONW,B1  READ HEADER CONTROL WORD 
          BX6    X1          SAVE EOF INFORMATION 
          SA6    EOFF 
          NZ     X1,RBFX     IF EOF 
          SA1    CONW        COMPUTE WORD COUNT FOR PRU 
          SX6    5
          SX3    X1+4 
          IX5    X3/X6
          READW  X2,X0,X5+B1 READ DATA PLUS TRAILER CONTROL WORD
          ZR     X5,RBF1     IF ZERO LENGTH PRU 
 RBF1.1   IX0    X0+X5       INCREMENT BUFFER ADDRESS 
          SA1    CONW        CHECK FOR SHORT PRU (EOR)
          AX1    36 
          SX1    X1 
          IX6    X5-X1
          MX1    0           CLEAR EOF FLAG 
          NG     X6,RBF2     IF SHORT PRU (EOR) 
          SX6    X0-BUF-512  CHECK FOR 512 WORDS READ 
          NG     X6,RBF1     IF NOT 512 WORDS 
 RBF2     SA6    EORF        SET/CLEAR EOR
          SX7    X0-BUF      NUMBER OF WORDS IN BLOCK 
          SA7    BWCF 
          EQ     RBFX        RETURN 
  
  
 RBFA     CON    F           INITIAL FILE TO READ 
 BWCF     CON    0           BLOCK WORD COUNT 
 EOFF     CON    0           NONZERO IF EOF 
 RBH      SPACE  4,15 
**        RBH - READ BLOCK OR HEADER RECORD.
* 
*         EXIT   (X1) .EQ. +0, IF NOT EOF OR DEFERRED HEADER EOR. 
*                     .NE.  0, IF EOF.
*                     .EQ. -0, IF EOR WITH DEFERRED HEADER. 
*                (EOFF) = NONZERO IF EOF. 
*                (EORF) = NEGATIVE IF EOR.
*                       = NEGATIVE ZERO IF EOR WITH DEFERRED HEADER.
*                (BWCF) = BLOCK WORD COUNT. 
*                (RWCF) = RECORD WORD COUNT.
*                (RBHA) = WORD COUNT OF DEFERRED HEADER.
* 
*         USES   A - 1, 6, 7. 
*                X - 1, 6, 7. 
* 
*         CALLS  DRT, RBF.
  
  
 RBH      SUBR               ENTRY/EXIT 
          RJ     RBF         READ BLOCK OF UP TO 512 WORDS
          NZ     X1,RBHX     IF EOF 
          SA1    EORF 
          ZR     X1,RBHX     IF NOT EOR 
          SA1    BWCF        CHECK FOR HEADER 
          SX6    0           PRESET FOR EXIT CONDITION
          SX1    X1-4 
          NZ     X1,RBH1     IF NOT RIGHT SIZE FOR HEADER 
          SA1    BUF
          RJ     DRT         DETERMINE RECORD TYPE
          ZR     X4,RBH1     IF NO MATCH ON RECORD TYPE 
          SA1    BWCF        SAVE HEADER WORD COUNT 
          MX6    60          SET HEADER DEFERRED STATUS 
          BX7    X1 
          SA6    EORF 
          SA7    RBHA 
 RBH1     BX1    X6          SET EXIT CONDITION 
          EQ     RBHX        RETURN 
  
  
 RBHA     CON    0           DEFERRED HEADER WORD COUNT 
 RBI      SPACE  4,10 
**        RBI - RANDOMIZE BINARY INPUT FILE.
* 
*         USES   X - 0, 1, 2, 3, 5, 6, 7. 
*                A - 1, 2, 3, 5, 6, 7.
* 
*         CALLS  BPN, DRT, LDD, RBF, RDR, SFR.
* 
*         MACROS ADDWRD, MESSAGE, READ, READW, READCW, RECALL, RENAME,
*                RETURN, REWIND, SEARCH, SETFS, WRITEF, WRITEO, WRITER, 
*                WRITEW.
  
  
 RBI10    BX6    X1          PLACE DUMP NUMBER IN HEADER
          SA6    TITL2
  
 RBI      SUBR
          RJ     LDD         LOAD DUMP DIRECTORY
          ZR     X1,RBI6     IF DUMP INPUT RANDOM 
  
*         INITIALIZE FOR RANDOM FILE GENERATION.
  
          SETFET F,ERP=E
          RECALL F
          SA1    DR 
          NG     X1,RBI0     IF RANDOM FILE NAME SPECIFIED
          RETURN S,R         DELETE BINARY SCRATCH FILE 
          EQ     RBI0.1      INITIATE COPY
  
 RBI0     REWIND S,R         REWIND EXISTING SCRATCH FILE, IF PRESENT 
 RBI0.1   MESSAGE  (=C* COPYING DUMP TO RANDOM FILE.*),1,R
          SA1    RBIA 
          NZ     X1,RBI1     IF NO REWIND REQUESTED 
          REWIND F,R
 RBI1     SA2    RBFA        INITIATE READ OF INPUT FILE
          READCW X2,17B 
  
*         PROCESS INPUT FILE. 
  
 RBI2     RJ     RBF         READ UP TO 512 WORD BLOCK
          NZ     X1,RBI3     IF END OF FILE 
 RBI2.1   SA1    BUF         SET RECORD ID = 1ST WORD OF RECORD 
          BX7    X1 
          SA7    ID 
          RJ     DRT         DETERMINE RECORD TYPE
          JP     B3          BRANCH ON RECORD TYPE
  
*         PROCESS END OF FILE.
  
 RBI3     SA1    DR 
          ZR     X1,RBI3.1   IF *D* NOT SPECIFIED 
          NG     X1,RBI3.1   IF *D=FILE* SPECIFIED
          RETURN F
 RBI3.1   SX6    B0+         MAKE *PP* ENTRIES FOR ALL IOU-S
          SA6    PP 
 RBI4     RJ     BPN         BUILD PP NAME
          SA1    .IPP 
          MX0    18 
          LX3    42          FORM RECORD ID 
          SA2    PP 
          SX6    X2+B1
          SA6    A2          INCREMENT PP NUMBER
          SX2    X2-32B 
          ZR     X2,RBI5     IF END OF POSSIBLE IOU-S 
          IX6    X1+X3
          SEARCH TDIR,X6,X0 
          ZR     X2,RBI4     IF IOU NOT FOUND 
          SA1    BPNA 
          SA5    A2+B1       FETCH SECOND WORD OF ENTRY 
          ADDWRD TDIR,X1
          ADDWRD TDIR,X5
          EQ     RBI4        PROCESS NEXT IOU 
  
 RBI5     WRITEW S,RBIB,RBIBL  WRITE 7700 TABLE 
          SA1    L.TDIR 
          SA3    =0LDUMP
          BX6    X1+X3
          WRITEO X2          WRITE DIRECTORY LENGTH WORD
          SA1    F.TDIR 
          WRITEW X2,X1,X6    WRITE DIRECTORY TABLE
          WRITER X2,R 
          WRITEF X2,R        TERMINATE DUMP FILE
          SA1    DR 
          NG     X1,RBI5.1   IF *D=FILE* SPECIFIED
          ZR     X1,RBI6     IF *D* NOT SPECIFIED 
          RENAME S,F         RENAME SCRATCH FILE
 RBI5.1   SETFS  S,0
 RBI6     ADDWRD TDIR,X6-X6  TERMINATE DIRECTORY TABLE
          ADDWRD A0,X6-X6 
          SA1    .EIC        LOOK FOR *EIC* RECORD
          MX0    18 
          SEARCH TDIR,X1,X0 
          ZR     X2,RBI7     IF RECORD NOT FOUND
          BX6    X2 
          SA3    A2+B1
          SA6    EH          SAVE RECORD HEADER 
          BX7    X3          SAVE RANDOM ADDRESS
          SA7    A6+B1
 RBI7     SA1    .MEM        LOOK FOR *MEM* RECORD
          SEARCH TDIR,X1,X0 
          ZR     X2,RBI9     IF RECORD NOT FOUND
          BX6    X2 
          SA3    A2+B1
          SA6    MH          SAVE RECORD HEADER 
          BX7    X3          SAVE RANDOM ADDRESS
          SA7    A6+B1
          SA1    .MMR        LOCATE *MMR* RECORD
          RJ     RDR
          ZR     X2,ERR42    IF RECORD NOT FOUND
          SX5    /IOU/MBRG   ASSEMBLE MEMORY BOUNDS 
          RJ     SFR
          NG     X1,ERR42    IF REGISTER NOT FOUND
          MX0    -16
          BX7    -X0*X7      UPPER BOUND
          LX7    12          CONVERT TO FWA OF EI 
          SA7    XB 
 RBI9     SX6    0           CLEAR RANDOM ADDRESS IN FET
          SA6    S+6
  
*         SET EXPRESS DUMP NUMBER IN TITLE LINE.
  
          REWIND S,R
          SA1    X2+B1       RESET FET
          SX6    X1 
          SA6    A1+B1       IN = FIRST 
          SA6    A6+B1       OUT = FIRST
          READ   X2          READ FIRST LABEL BLOCK 
          READW  X2,BUF,4    READ DUMP HEADER 
          SA1    BUF+3       DUMP NUMBER FROM *EDD* 
          SA2    BD 
          NZ     X2,RBI10    IF BINARY DUMP 
          SA2    =8R   DUMP 
          MX3    12 
          BX6    X3*X1
          BX6    X6+X2
          LX6    18 
          SA6    TITL2       SET DUMP NUMBER IN HEADER
          JP     RBIX        EXIT 
  
  
 RBIA     CON    0           NO REWIND FLAG 
 RBIB     DATA   77000016000000000000B
          DATA   0LDUMP 
          BSSZ   15B
 RBIBL    EQU    *-RBIB 
 CONW     CON    0           HEADER CONTROL WORD
 EORF     VFD    1/1,59/0    EOR FLAG 
 RBT      SPACE  4,11 
**        RBT - READ DATA IN BYTE FORMAT. 
* 
*         ENTRY  (A0) = NUMBER OF BYTES TO READ.
*                (APPG) = PP DATA IN *PBUF* FLAG. 
*                (RBTA) = CURRENT BYTE NUMBER.
*                (RBTA+1) = CURRENT WORD. 
* 
*         EXIT   BYTES STORED LEFT JUSTIFIED AT *BUF*.
* 
*         USES   X - 0, 1, 5, 6, 7. 
*                A - 0, 1, 6, 7.
*                B - 3, 4, 5. 
* 
*         CALLS  NXB. 
* 
*         MACROS READO. 
  
  
 RBT9     SX7    B5 
          SA7    RBTA        SAVE BYTE COUNTER
          SA6    A7+B1       SAVE CURRENT WORD
  
 RBT      SUBR
          SA1    RBTA 
          SB5    X1          SET CURRENT BYTE COUNTER 
          SA1    A1+B1
          BX6    X1          SET CURRENT WORD 
          MX0    12 
          SB3    BUF
          SB4    B3+A0       BUFFER LIMIT 
          SA1    APPG 
          NZ     X1,RBT6     IF DATA IS IN *PBUF* 
          SA1    AP 
          NZ     X1,RBT4     IF 16-BIT PP 
          JP     RBT3        ENTER READ LOOP
  
*         GET 12-BIT BYTES FROM FILE. 
  
 RBT1     SB5    5           RESET BYTE COUNTER 
          READO  S           READ NEXT WORD 
 RBT2     BX7    X0*X6
          SA7    B3          STORE NEXT BYTE
          SB5    B5-B1       COUNT BYTE 
          LX6    12 
          SB3    B3+1        ADVANCE BUFFER ADDRESS 
          EQ     B3,B4,RBT9  IF NO MORE TO READ 
 RBT3     NZ     B5,RBT2     IF NOT END OF WORD 
          JP     RBT1        READ NEXT WORD 
  
*         GET 16-BIT BYTES FROM FILE.  BYTES STORED 4 PER 64 BITS.
  
 RBT4     SX5    A0          SAVE BYTE COUNT
          SA0    BUF         NEXT ADDRESS TO STORE
          MX0    12          PP BYTE MASK 
 RBT5     RJ     NXB         READ NEXT IOU BYTE 
          LX1    59-11
          BX6    X0*X1       EXTRACT PP BYTE
          SA6    A0 
          SA0    A0+B1
          SX5    X5-1 
          NZ     X5,RBT5     IF MORE BYTES TO READ
          EQ     RBTX        RETURN 
  
*         GET 12-BIT BYTES FROM *PBUF*. 
  
 RBT6     SA1    RBTB        GET CURRENT *PBUF* ADDRESS 
          SA1    X1+
 RBT7     NZ     B5,RBT8     IF NOT END OF WORD 
          SA1    A1+1        READ NEXT WORD 
          SB5    5           RESET BYTE COUNTER 
          BX6    X1 
 RBT8     BX7    X0*X6
          SB5    B5-B1       COUNT BYTE 
          SA7    B3          STORE NEXT BYTE
          SB3    B3+B1       ADVANCE BUFFER ADDRESS 
          LX6    12 
          LT     B3,B4,RBT7  IF MORE TO COPY
          SX7    A1 
          SA7    RBTB        SAVE CURRENT *PBUF* ADDRESS
          EQ     RBT9        RETURN 
  
  
 RBTA     BSS    2           PARAMETER SAVE 
 RBTB     CON    0           PBUF-1 OR LAST *PBUF* WORD READ
 RCM      SPACE  4,15 
**        RCM - READ 60-BIT CM. 
* 
*         ENTRY  (B6) = FWA OF BLOCK TO READ CM.
*                (B7) = LENGTH OF BLOCK.
* 
*         EXIT   60-BIT CM WORDS READ FROM FILE.
* 
*         USES   X - 1, 6.
*                A - 1, 6.
*                B - 5, 6, 7. 
* 
*         CALLS  RCW. 
* 
*         MACROS READO, READW.
  
  
 RCM      SUBR               ENTRY/EXIT 
          SA1    MT 
          NZ     X1,RCM0     IF MEMORY TYPE IS ESM
          SA1    AP 
          NZ     X1,RCM2     IF ADVANCED PROCESSOR PRESENT
 RCM0     ZR     B6,RCM1     IF READING ONE WORD
          READW  S,B6,B7
          EQ     RCMX        RETURN 
  
 RCM1     READO  S
          EQ     RCMX        RETURN 
  
 RCM2     NZ     B6,RCM3     IF MULTIPLE WORD TRANSFER
          RJ     RCW         READ CYBER WORD
          EQ     RCMX        RETURN 
  
 RCM3     SB5    B6          SAVE CM ADDRESS
          RJ     RCW         READ CYBER WORD
          NZ     X1,RCMX     IF EOR 
          SA6    B5 
          SB6    B5+B1
          SB7    B7-B1
          NZ     B7,RCM3     IF BLOCK NOT READ
          EQ     RCMX        RETURN 
 RCW      SPACE  4,15 
**        RCW  - READ CYBER WORD. 
* 
*         ENTRY  UBUF CONTAINS UNPACKED 60 BIT WORDS. 
*                BI = INDEX INTO UBUF.
* 
*         EXIT   (X6) = NEXT CM WORD. 
*                (X1) = DUMP FILE STATUS. 
*                UBUF UPDATED.
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 2, 3, 6, 7.
*                B - 5, 7.
* 
*         CALLS  UPW. 
  
  
 RCW      SUBR               ENTRY/EXIT 
          SA3    BI 
          SA2    UBUF+16+X3 
          SX7    X3+B1
          SA7    A3 
          MX1    0
          BX6    X2 
          NZ     X7,RCWX     IF NOT END OF BUFFER 
          SA6    RCWA 
          SX6    B7 
          SA6    A6+B1
          SX6    B5 
          SA6    A6+B1
          RJ     UPW         READ AND UNPACK WORDS
          SX6    -15
          SA6    BI          SET WORD INDEX 
          SA3    RCWA 
          SA2    A3+B1
          SB7    X2 
          SA2    A2+B1
          SB5    X2 
          BX6    X3 
          EQ     RCWX        RETURN 
  
  
 RCWA     BSS    3           SAVE AREA
 RDC      SPACE  4,12 
**        RDC - READ DIRECTIVE INPUT CARD.
* 
*         ENTRY  AF = 0 READ FROM REGULAR INPUT FILE. 
*                   = 1 READ FROM ALTERNATE FILE TO EOR.
*                   = 2 READ FROM ALTERNATE FILE TO EOF.
* 
*         EXIT   X1.NE.0 IF END OF DIRECTIVES SENSED. 
*                DIRECTIVE READ IN 80R1 FORMAT TO *CHAR*. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  CIO=,PKS,RDS=,RDO=.
  
  
 RDC      SUBR
          SA1    AF 
          NZ     X1,RDC3     IF READING FROM ALTERNATE INPUT
          SX1    B1+         SET END OF DIRECTIVES
          SA2    I
          ZR     X2,RDCX     IF ZERO FET
 RDC1     READS  I,CHAR,80
          NZ     X1,RDCX     IF END OF RECORD SENSED
 RDC2     SB6    50 
          SB7    TITL1
          SB2    CHAR 
          RJ     PKS         MOVE DIRECTIVE TO TITLE LINE 
          SA1    DP 
          SX6    X1+B1
          SA6    A1          ADVANCE DIRECTIVES PROCESSED COUNTER 
          MX1    0
          JP     RDCX        EXIT 
  
 RDC3     READS  J,CHAR,80   READ ALTERNATE INPUT FILE
          ZR     X1,RDC2     IF NOT END OF RECORD 
          NG     X1,RDC4     IF END OF FILE 
          SA3    AF 
          SX3    X3-2 
          NZ     X3,RDC4     IF READING ONLY 1 RECORD 
          READ   X2          READ NEXT RECORD 
          READO  X2          READ RECORD NAME 
          JP     RDC3        CONTINUE 
  
 RDC4     SX6    0
          SA6    AF          CLEAR ALTERNATE INPUT FLAG 
          JP     RDC1        RETURN TO NORMAL INPUT FILE
 RDR      SPACE  4,15 
**        RDR - READ DUMP RECORD. 
* 
*         ENTRY  (X1) = RECORD ID TO READ.
* 
*         EXIT   (X2) = FIRST WORD OF RECORD. 
*                     = 0, IF RECORD NOT FOUND. 
* 
*         USES   X - 1, 2, 3, 6.
*                A - 1, 2, 6. 
* 
*         CALLS  FPR, PDF.
* 
*         MACROS READW. 
  
  
 RDR      SUBR               ENTRY/EXIT 
          SX6    B0+         SET NO RADIAL MCI DISPLAY
          RJ     FPR         FIND RECORD
          ZR     X2,RDRX     IF RECORD NOT FOUND
          BX6    X2          SAVE FIRST WORD OF TABLE ENTRY 
          SX3    B0 
          SA6    RDRA 
          RJ     PDF         POSITION DUMP FILE 
          SA1    RI          READ MAINTENANCE REGISTERS RECORD
          AX1    30 
          BX6    X6-X6
          SA6    BUF+X1 
          SA6    BUF+1+X1 
          READW  S,BUF,X1 
          SA2    RDRA        RETURN FIRST WORD OF TABLE ENTRY 
          EQ     RDRX        RETURN 
  
  
 RDRA     DATA   0           FIRST WORD OF DIRECTORY TABLE ENTRY
 RMB      SPACE  4,10 
**        RMB - READ MEMORY BYTES.
* 
*         ENTRY  (X1) = SVA OF BYTES TO READ. 
*                (X6) = NUMBER OF WORDS OF BYTES TO READ. 
* 
*         EXIT   (BUF - BUF+X6*4-1) = 16 BIT DATA CHUNKS. 
* 
*         USES   A - 0, 2, 3, 6, 7. 
*                X - 4, 6.
*                B - 2. 
* 
*         CALLS  CPC, NXB.
  
  
 RMB      SUBR               ENTRY/EXIT 
          SA6    RMBA        SAVE NUMBER OF WORDS TO READ 
          BX6    X1 
          SA6    A6+B1       SAVE CURRENT SVA 
          SA0    BUF+1
 RMB1     SB2    RMBA+1      CHECK IF CROSSING A PAGE BOUNDARY
          RJ     CPC
          NZ     X2,ERR30    IF PAGE ENTRY NOT PRESENT
          RJ     NXB         GET NEXT 16 BITS 
          BX6    X1 
          SA6    A0-B1
          RJ     NXB         AND THE NEXT 
          BX6    X1 
          SA6    A0 
          RJ     NXB         AND THE NEXT 
          BX6    X1 
          SA6    A0+B1
          RJ     NXB         AND THE LAST 
          SA2    RMBA        FETCH SVA
          SA3    A2+B1
          BX6    X1 
          SA6    A0+2 
          SX6    X2-1 
          SX4    8
          SA0    A0+4 
          IX7    X4+X3
          SA6    A2 
          SA7    A3          INCREMENT SVA
          NZ     X2,RMB1     IF MORE WORDS TO READ
          JP     RMBX        RETURN 
  
 RMBA     BSS    2
 RMR      SPACE  4,15 
**        RMR - READ MAINTENANCE REGISTER.
* 
*         ENTRY  (LPWA+1) = WORD OFFSET.
* 
*         EXIT   (X1) = 0 IF END OF REGISTERS.
*                (RMRA) = REGISTER LENGTH.
*                (RMRB) = REGISTER NUMBER.
*                (MRBF,MRBF+7) = 1ST 64 BITS OF REGISTER. 
* 
*         USES   B - 3, 4.
*                A - 6, 7.
*                X - 1, 7.
* 
*         CALLS  LPW. 
  
  
 RMR      SUBR               ENTRY/EXIT 
          RJ     LPW         GET REGISTER LENGTH
          ZR     X1,RMRX     IF END OF REGISTERS
          SX7    X6 
          RJ     LPW         GET REGISTER NUMBER
          SA7    RMRA 
          SA6    A7+B1
          SB4    B0 
          SB3    X7 
 RMR1     RJ     LPW         GET ANOTHER 8 BITS OF REGISTER 
          SA6    MRBF+B4
          SB4    B4+B1
          MX1    1
          NE     B3,B4,RMR1  IF MORE BYTES TO GET 
          EQ     RMRX        RETURN 
  
  
 RMRA     CON    0           REGISTER LENGTH
 RMRB     CON    0           REGISTER NUMBER
 RNF      SPACE  4,20 
**        RNF - READ NEGATIVE FL OF CONTROL POINT.
* 
*         ENTRY  (X2) = CONTROL POINT NUMBER. 
*                (X1) = PCPA FWA OFFSET (0 IF DUMPING CONTROL POINTS).
* 
*         EXIT   (RC) = RA. 
*                (FC) = FL. 
*                TABLE TNFL CONTAINS NFL DATA.
* 
*         ERROR  TO *ERR8*, IF CONTROL POINT NUMBER IS ZERO.
* 
*         USES   X - 1, 2, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 2. 
* 
*         CALLS  GFL, POM.
* 
*         MACROS ALLOC, GETCM.
  
  
 RNF      SUBR               ENTRY/EXIT 
          ZR     X2,ERR8.1   IF CONTROL POINT ZERO
          LX2    7
          IX1    X1+X2
          RJ     GFL         GET FL, RA 
          SA7    FC 
          SA6    RC 
          AX2    36          GET NFL
          MX6    -12
          BX6    -X6*X2 
          LX6    6
          SA2    L.TNFL      ALLOCATE SPACE FOR NFL 
          IX1    X6-X2
          ALLOC  TNFL,X1
          SA1    RC          POSITION DUMP FILE 
          SA2    L.TNFL 
          IX7    X1-X2
          SA7    CPRA 
          SB2    A7 
          RJ     POM         POSITION TO CM WORD
          SA2    L.TNFL      LENGTH TO READ 
          SA1    F.TNFL      BUFFER ADDRESS 
          ZR     X2,RNFX     IF NO NFL TO READ
          GETCM  X1,X2
          EQ     RNFX        RETURN 
 RPB      SPACE  4,10 
**        RPB - READ PPU BYTE.
* 
*         ENTRY  X1 = PPU ADDRESS TO READ.
*                PPU DATA IS AT *PBUF*. 
* 
*         EXIT   X6 = PPU BYTE READ LEFT JUSTIFIED. 
* 
*         USES   X - 1,2,3,6. 
*                B - 7. 
*                A - 2. 
  
  
 RPB      SUBR
          BX3    X1 
          SX2    5
          IX2    X3/X2       CPU WORD ORDINAL = AD/5
          SX3    5
          IX3    X2*X3       COMPUTE BYTE POS = AD-(AD/5)*5 
          IX3    X1-X3
          SX1    12 
          IX1    X1*X3
          SB7    X1          SHIFT COUNT
          MX1    12 
          SA2    X2+PBUF     READ WORD
          LX2    X2,B7       POSITION TO BYTE 
          BX6    X1*X2       EXTRACT BYTE 
          JP     RPBX        EXIT 
 RPD      SPACE  4,12 
**        RPD - READ PPU DATA TO CORE.
* 
*         ENTRY  (PP) = PPU NUMBER. 
* 
*         EXIT   ALL OF REQUESTED PPU STORED AT *PBUF*. 
*                (BPNA) = PPU NAME. 
* 
*         USES   X - 0, 1, 2, 3, 4, 5, 6. 
*                A - 1, 2, 3, 6.
*                B - 2, 6, 7. 
* 
*         CALLS  BPN, CPD, CPN, NXB, PDF, SFN.
* 
*         MACROS READW, SEARCH. 
  
  
 RPD      SUBR
          RJ     BPN         BUILD PPU NAME 
          SA1    F.TCMT 
          SB2    X1          SET TCMT TABLE ADDRESS 
          MX4    24 
          SA1    PC          GET PP COMMUNICATION AREA POINTER
          RJ     CPN         CONVERT PP/CPP NUMBER
          ZR     X3,RPD1     IF *CPP* RECORDS NOT CHOSEN
          MX4    30 
 RPD1     LX6    3
          IX1    X1+X6
          SA2    X1+B2
          MX3    18 
          BX1    X3*X2       EXTRACT PROGRAM NAME 
          RJ     SFN         SPACEFILL NAME 
          LX6    24 
          SA1    BPNA+1 
          BX6    -X4*X6 
          BX6    X6+X1       MERGE PP AND PROGRAM NAMES 
          SA1    A1-B1       GET PP RECORD NAME 
          SA6    SBTL1       STORE IN SUBTITLE LINE 
          SEARCH TDIR,X1,X0 
          ZR     X2,ERR7     IF NO SUCH PPU 
          SA1    A2+B1
          BX6    X1 
          SA6    RI          SET RANDOM ADDRESS OF REQUESTED PPU
          SX3    0
          RJ     PDF         POSITION DUMP FILE 
          SA3    AP 
          NZ     X3,RPD2     IF IOU TO BE READ
          READW  X2,PBUF,PBUFL  READ ENTIRE PPU TO CORE 
          JP     RPDX        EXIT 
  
 RPD2     RJ     CPD         COPY PP DATA TO BUFFER 
          SB7    B0          STORING INDEX INTO PBUF
          MX0    -12
 RPD3     SB6    5
          SX5    B0+
 RPD4     RJ     NXB         GET FIRST BYTE OF DATA 
          LX5    12 
          BX2    -X0*X1 
          SB6    B6-B1
          BX5    X5+X2
          NZ     B6,RPD4     IF MORE BYTES TO COLLECT 
          SA1    PS          BYTES IN PP (4096 OR 8192) 
          BX6    X5 
          SX5    B7+B1       WORDS MOVED
          SB7    B7+B1
          LX5    2
          SA6    PBUF-1+B7   SAVE PP BYTES
          SX6    X5+B7       BYTES MOVED
          IX6    X6-X1
          NG     X6,RPD3     IF MORE TO MOVE
          EQ     RPDX        RETURN 
 RSP      SPACE  4,14 
**        RSP - RESET PRINT DENSITY SELECTION.
* 
*         ENTRY  X1 = 1L3 FOR 3 LINES PER INCH. 
*                     1L4 FOR 4 LINES PER INCH. 
*                     1L6 FOR 6 LINES PER INCH. 
*                     1L8 FOR 8 LINES PER INCH. 
* 
*         EXIT   CCCH = 1R0 FOR 3 OR 4 LINES PER INCH.
*                       1R  FOR 6 OR 8 LINES PER INCH.
*                PD = NUMBER OF LINES PER PAGE. 
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  WTO=.
  
  
 RSP      SUBR
          SB2    RSPA        OPTION TABLE ADDRESS 
          MX0    6
 RSP1     SA2    B2          READ OPTION TABLE
          SB2    B2+B1
          ZR     X2,ERR9     IF OPTION NOT IN TABLE 
          BX3    X1-X2
          BX3    X3*X0
          NZ     X3,RSP1     IF NO MATCH
          SX6    X2 
          AX2    18 
          NG     X6,ERR9     IF VALUE UNUSABLE
          ZR     X6,ERR9     IF VALUE UNUSABLE
          SA6    PD          SET NUMBER OF LINES PER PAGE 
          SX6    X2+
          SA6    CCCH        SET CARRIAGE CONTROL CHARACTER 
          SA6    CC 
          SA1    TF 
          NZ     X1,RSPX     IF TERMINAL OUTPUT 
          AX2    18 
          SX6    X2 
          LX6    -18
          SA2    OF 
          WRITEO X2          OUTPUT DENSITY SELECTION CONTROL CHAR
          JP     RSPX        EXIT 
  
 RSPA     BSS    0           PRINT DENSITY OPTION TABLE 
          VFD    6/1L3,18/1LS,18/1R0,18/RSPC
          VFD    6/1L4,18/1LT,18/1R0,18/RSPD
          VFD    6/1L6,18/1LS,18/1R ,18/RSPB
          VFD    6/1L8,18/1LT,18/1R ,18/RSPE
          VFD    60/0 
 RSPB     EQU    LINP-3      6 LINES PER INCH DENSITY 
 RSPC     EQU    RSPB/2      3 LINES PER INCH DENSITY 
 RSPD     EQU    RSPB*2/3    4 LINES PER INCH DENSITY 
 RSPE     EQU    RSPB*4/3    8 LINES PER INCH DENSITY 
 RST      SPACE  4,20 
**        RST - READ SYSTEM TABLES. 
* 
*         READS ALL TABLES THROUGH THE SECDED ID TABLE
*         FROM THE DUMP FILE TO TABLE *TCMT*. 
* 
*         ENTRY  (PF) = 0, IF TO READ LOW CORE WORDS FROM DUMP FILE.
*                       ELSE, READ LOW CORE WORDS FROM RUNNING SYSTEM.
* 
*         EXIT   (CF) = NONZERO, IF CYBER 176.
*                (ME) = NUMBER OF MEMORY CONTROL TABLE (MCT) ENTRIES. 
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
*                (NP) = NUMBER OF PPU-S IN SYSTEM.
*                (PC) = PP COMMUNICATION AREA POINTER.
* 
*         USES   X - 0, 1, 2, 3, 6, 7.
*                A - 1, 2, 3, 6, 7. 
* 
*         CALLS  GID, PCM.
* 
*         MACROS ALLOC, GETCM, SEARCH, SYSTEM.
  
  
 RST      SUBR
          ALLOC  TCMT,CPAS   ALLOCATE LOW CORE POINTER SPACE
          SA1    PF 
          NZ     X1,RST6     IF POINTERS TO COME FROM RUNNING SYSTEM
          SX3    0
          RJ     PCM
          SA1    F.TCMT 
          SA2    L.TCMT 
          GETCM  X1,X2
 RST1     SA1    F.TCMT 
          SA1    X1+JBCP     READ JOB CONTROL AREA POINTER
          LX1    24 
          SX1    X1-CPAS     LENGTH OF REMAINING CM TABLES
          SX2    X1-110000B  CHECK IF CMR SIZE REASONABLE 
          NG     X1,RST2     IF UNREASONABLE SIZE 
          NG     X2,RST3     IF SIZE WITHIN MAXIMUM 
 RST2     SX1    20000B      SELECT LOAD LENGTH IF CMR BASHED 
 RST3     ALLOC  TCMT,X1     ALLOCATE REMAINDER OF TABLE
          GETCM  X2+CPAS,X1 
          SA1    F.TCMT 
          SA2    X1+NCPL     READ NUMBER OF CONTROL POINTS FROM SYSTEM
          MX0    -12
          SA3    X1+PPCP     SET PP COMMUNICATION AREA POINTER
          BX7    -X0*X3 
          LX2    24 
          LX3    36          SET EXTENDED MEMORY SHIFT COUNTS 
          ERRNZ  MEFL-PPCP   CODE ASSUMES SAME WORD 
          SA7    PC 
          BX7    -X0*X3 
          AX7    5
          MX6    -2 
          BX6    -X6*X7 
          SA6    EM 
          AX7    4
          SA7    UE 
          BX6    -X0*X2      EXTRACT NUMBER OF CONTROL POINTS 
          SX7    X6-/DSL/NCPS 
          NG     X7,RST4     IF NOT MAXIMUM OR BAD POINTER
          SX6    /DSL/NCPS   SET MAXIMUM NUMBER OF CONTROL POINTS 
 RST4     SA6    NC 
          SA3    X1+MCTP     SET NUMBER OF MCT ENTRIES
          AX3    24 
          BX6    -X0*X3 
          SA6    ME 
          SX6    B0+
          SA6    IO          INITIALIZE *I4A OR I4S IOU* FLAG 
          SA1    BD 
          NZ     X1,RST5     IF *DMB* FILE, SKIP PP CHECKS
          SA1    .NPP 
          MX0    12 
          SEARCH TDIR,X1,X0 
          ZR     X2,ERR7     IF FIRST PP RECORD NOT FOUND 
          SX6    0
          SA3    =2LPP
          MX0    12 
 RST4.1   SX6    X6+B1
          SA2    A2+2        GET NEXT DIRECTORY ENTRY 
          BX2    X0*X2
          IX2    X3-X2
          ZR     X2,RST4.1   IF MORE PP RECORDS 
          SA6    AC          NUMBER OF PP-S ON DUMP TAPE
          SX7    X6-10D 
          ZR     X7,RST5     IF 10 PP SYSTEM
          SX6    MAXP        SET MAXIMUM NUMBER OF PPU-S
 RST5     SA6    NP          SET NUMBER OF PP COMMUNICATION AREAS 
          SA1    .CPP 
          MX0    24 
          SEARCH TDIR,X1,X0 
          SX6    0
          ZR     X2,RST5.2   IF NO *CPP* RECORDS
          MX0    12 
          SA3    .CPP 
          BX3    X0*X3
 RST5.1   SX6    X6+1 
          SA2    A2+2        CHECK NEXT RECORD
          BX2    X0*X2
          IX2    X3-X2
          ZR     X2,RST5.1   IF CPP RECORD
 RST5.2   SA6    C4          NUMBER OF CPP-S AND CPP COMM. AREAS
          SA1    F.TCMT 
          SA2    X1+MABL     GET HARDWARE OPTIONS 
          MX7    -2          SET CYBER 176 FLAG 
          LX2    0-45 
          BX6    -X7*X2 
          BX6    -X7-X6 
          SA6    CF 
          SX7    B1+
          LX2    0-47-0+45
          BX6    X7*X2
          NZ     X6,RSTX     IF NOT CYBER 8X5 
          SA7    CE          SET CM EXTENSION 
          LX2    59-42-0+47-60
          PL     X2,RSTX     IF CYBER 170-865/875 
          SA1    =3LIMR      CHECK FOR *I4* IOU 
          RJ     GID
          SX6    X6-4 
          SA6    IO          SAVE *I4A OR I4S IOU* FLAG 
          SX7    X7-0#44
          ZR     X5,ERR47    IF *I4C* IOU 
          EQ     RSTX        RETURN 
  
*         READ LOW CORE FROM RUNNING SYSTEM.
  
 RST6     SA1    F.TCMT 
          SX6    -B1
          SA6    X1          PRESET BUFFER FOR ABSOLUTE MEMORY READ 
          SA6    A6+100B
          SA2    RSTA 
          SA3    RSTB        UPDATE BUFFER ADDRESS IN *RSB* CALLS 
          IX6    X2+X1
          IX7    X3+X1
          SA6    A2 
          SA7    A3 
          SYSTEM RSB,R,RSTA 
          SYSTEM RSB,R,RSTB 
          SX3    CPAS 
          RJ     PCM         POSITION DUMP FILE PAST POINTER AREA 
          JP     RST1        READ REST OF CM TABLES 
  
 RSTA     VFD    12/0,12/100B,18/0,18/0  *RSB* CALL PARAMETERS
 RSTB     VFD    12/0,12/100B,18/100B,18/100B 
 RUC      SPACE  4,11 
**        RUC - RESET USER SELECTED CONTROLS. 
*         RESTORES REFERENCE ADDRESS, SUBTITLE AND MEMORY TYPE
*         TO THOSE SELECTED BY THE USER.
* 
*         ENTRY  UA = USER SELECTED REFERENCE ADDRESS.
*                UI = USER SELECTED MEMORY INDEX. 
*                US = SUBTITLE DISPLAY OF USER SELECTED RA. 
*                US+1 = SUBTITLE MEMORY BLOCK NAME. 
* 
*         USES   X - 1,2,6,7. 
*                A - 1,2,6,7. 
  
  
 RUC      SUBR
          SA1    UA 
          SA2    UI 
          BX6    X1 
          LX7    X2 
          SA6    BA          RESTORE REFERENCE ADDRESS
          SA7    MI          RESTORE MEMORY BLOCK RANDOM INDEX
          SA1    US 
          SA2    A1+1 
          BX6    X1 
          LX7    X2 
          SA6    SBTL        RESTORE SUBTITLE 
          SA7    SBTL1
          JP     RUCX        EXIT 
 SAI      SPACE  4,15 
**        SAI - SET ASCII INTERPRETATION. 
* 
*         ENTRY  (X2) = ASCII 8 BIT CHARACTERS. 
*                (B6) = NUMBER OF CHARACTERS TO CONVERT.
*                (B7) = POSITION TO PLACE CHARACTERS. 
* 
*         EXIT   (X1) = SHIFTED (B6)*8 BITS.
*                (B7) = UPDATED.
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 3, 7.
*                B - 6, 7.
  
  
 SAI      SUBR               ENTRY/EXIT 
          MX1    -7          STRIP PARITY BIT FROM CHARACTER
 SAI1     LX2    8
          BX6    -X1*X2      EXTRACT CHARACTER
          SA3    X6+/COMTVDT/TVXD  GET DISPLAY CODE EQUIVALENT
          SX7    X3 
          PL     X3,SAI2     IF CHARACTER IS PRINTABLE
          SX7    1R          CHANGE TO A SPACE
 SAI2     SX6    X7          CHECK FOR 74/76 ESCAPE 
          AX6    6
          SB6    B6-B1       DECREMENT CHARACTER COUNT
          LX6    6
          IX7    X7-X6       REMOVE ANY 74/76 ESCAPE
          SA7    B7 
          SB7    B7+B1
          NZ     B6,SAI1     IF MORE CHARACTERS TO UNPACK 
          EQ     SAIX        RETURN 
 SBC      SPACE  4,20 
**        SBC - SELECT NEXT BUFFER CONTROLLER CHANNEL.
* 
*         ENTRY  (BCDA) = LAST DIRECTORY ENTRY ADDRESS. 
*                (PI) = 0, IF DUMPING ALL CHANNELS. 
*                (SBCB) = OPTION SELECTION IF DUMPING ALL CHANNELS. 
* 
*         EXIT   (X1) = 0, IF NO MORE CHANNELS TO DUMP. 
*                (A2) = DIRECTORY ENTRY ADDRESS.
*                (SBCA) = CHANNEL NUMBER SELECTED.
*                (SBCB) = PARAMETERS SELECTED FOR NEXT CHANNEL. 
* 
*         USES   X - 0, 1, 2, 6.
*                A - 1, 2, 6. 
*                B - 7. 
* 
*         CALLS  ASD, ASN.
* 
*         MACROS SEARCH.
  
  
 SBC      SUBR               ENTRY/EXIT 
          SA1    PI 
          NZ     X1,SBC2     IF CHANNELS ON DIRECTIVE 
          SA1    /DIRECT/BCDA  GET ADDRESS OF LAST DIRECTORY ENTRY
          SA2    X1+2        GET NEXT ENTRY 
          SX1    2RCH        CHECK IF STILL BUFFER CONTROLLER RECORD
          LX1    -24
          MX0    12 
          LX0    -12
          BX2    X0*X2
          BX2    X1-X2
          ZR     X2,SBC1     IF BUFFER CONTROLLER CHANNEL 
          MX1    0           FLAG END OF DUMP 
          EQ     SBCX        RETURN 
  
 SBC1     SA2    A2          FORM CHANNEL NUMBER
          AX2    24 
          MX0    -6 
          BX1    -X0*X2 
          AX2    6
          BX2    -X0*X2 
          SX1    X1-1R0 
          SX2    X2-1R0 
          LX2    3
          IX6    X2+X1
          SA6    SBCA        SAVE CHANNEL NUMBER
          SX1    B1          FLAG CHANNEL FOUND 
          EQ     SBCX        RETURN 
  
*         PROCESS PARAMETERS FROM DIRECTIVE.
  
 SBC2     SB7    0           SET OCTAL BASE 
          RJ     ASD         ASSEMBLE CHANNEL NUMBER
          SX1    B6+
          ZR     X1,SBCX     IF NO MORE TO DUMP 
          NZ     X4,ERR6     IF CONVERSION ERROR
          SA6    SBCA        SAVE CHANNEL NUMBER
          SA1    CH          CHECK IF OPTIONS PRESENT 
          SA1    X1+
          SX1    X1-1R/ 
          SX6    2RHD        SET DEFAULT OPTIONS
          NZ     X1,SBC3     IF NO PARAMETERS 
          RJ     ASN         ASSEMBLE PARAMETERS
          AX6    B6 
 SBC3     SA6    SBCB        SAVE PARAMETERS
          SA1    SBCA        FORM RECORD HEADER FOR SEARCH
          MX0    -3 
          BX2    -X0*X1 
          AX1    3
          BX1    -X0*X1 
          LX1    6
          BX1    X1+X2
          SA2    .BCH 
          LX1    24 
          MX0    24 
          IX6    X2+X1
          LX0    -12
          SEARCH TDIR,X6,X0 
          ZR     X2,ERR6     IF CHANNEL NOT FOUND 
          SX1    1           FLAG CHANNEL FOUND 
          EQ     SBCX        RETURN 
  
  
 SBCA     CON    0           CHANNEL NUMBER 
 SBCB     CON    0           SELECTED PARAMETERS FOR DUMP 
 SBL      SPACE  4,10 
**        SBL - STORE BLANKS IN PRINT LINE. 
* 
*         ENTRY  B6 = NUMBER OF BLANKS DESIRED. 
*                B7 = CURRENT PRINT STRING ADDRESS. 
* 
*         EXIT   B7 IS UPDATED. 
* 
*         USES   X - 6. 
*                B - 6,7. 
*                A - 6. 
  
  
 SBL      SUBR
          SX6    1R 
 SBL1     SA6    B7 
          SB7    B7+1 
          SB6    B6-B1
          NZ     B6,SBL1     IF MORE SPACES TO STORE
          JP     SBLX        EXIT 
 SCH      SPACE  4,13 
**        SCH - SET SC DIRECTIVE HEADER.
* 
*         ENTRY  X5 = CURRENT SC DIRECTORY WORD.
*                A5 = ADDRESS OF CURRENT SC DIRECTORY WORD. 
*                A0 = ADDRESS OF WHERE TO STORE SC REGISTERS. 
*                A2 = ADDRESS OF 38 CHARACTER HEADER MESSAGE. 
*                B7 = PRINT STRING ADDRESS. 
* 
*         EXIT   A5 IS UPDATED TO RANDOM INDEX WORD.
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  PDF,RDW=,UPS.
  
  
 SCH      SUBR
          SB6    38 
          RJ     UPS
          SA5    A5+1 
          BX6    X5 
          SX3    B1 
          SA6    RI 
          RJ     PDF         POSITION TO SC REGISTERS 
          READW  S,A0,4 
          JP     SCHX        EXIT 
 SCM      SPACE  4,7
**        SCM - SET CENTRAL MEMORY. 
* 
*         EXIT   X6 = SBTL1 = CENTRAL MEMORY NAME FOR SUBTITLE. 
*                X7 = MI = CENTRAL MEMORY BLOCK RANDOM INDEX. 
* 
*         USES   X - 1, 2, 6, 7.
*                A - 1, 2, 6, 7.
  
  
 SCM1     SA2    =4R         CLEAR POSSIBLE *UEC *
          AX1    24 
          LX1    24 
          BX6    X1-X2
          SA6    A1 
  
 SCM      SUBR
          SA2    CI 
          LX7    X2 
          SX6    B0          CLEAR MEMORY BASE ADDRESS
          SA7    MI          SET RANDOM INDEX OF CM 
          SA6    MB 
          SA6    MT          SET MEMORY TYPE
          SA1    SBTL1
          MX6    12 
          BX2    X6*X1
          LX2    12 
          SX6    X2-2RCP
          ZR     X6,SCM1     IF DUMPING CONTROL POINTS
          SX6    X2-2RPC
          ZR     X6,SCM1     IF DUMPING PSEUDO-CONTROL POINTS 
          SA2    =10HCM 
          BX6    X2 
          SA6    A1          SET NAME FOR SUBTITLE
          JP     SCMX        EXIT 
 SCP      SPACE  4,21 
**        SCP - SELECT NEXT CONTROL POINT/PSEUDO-CONTROL POINT TO DUMP. 
* 
*         ENTRY  (CH) = ADDRESS OF NEXT CHARACTER IN DIRECTIVE. 
*                (CO) = DEFAULT LIST OPTIONS FOR CONTROL POINT DUMP.
*                (NC) = NUMBER OF CONTROL POINTS - 1. 
*                (OP) = PCPA FWA OFFSET (0 IF DUMPING CONTROL POINTS).
*                (PI) = 0, IF NEXT CP NUMBER TO BE FROM DIRECTIVE CARD. 
*                       ELSE, CP AREA INDEX FOR ACTIVE CP SEARCH. 
* 
*         EXIT   (X1) = 0, IF NO MORE CONTROL POINTS TO DUMP. 
*                (CL) = LIST OPTIONS SELECTED.
*                (CN) = SELECTED CONTROL POINT NUMBER.
*                (PI) = UPDATED CP SEARCH INDEX.
* 
*         ERROR  TO *ERR8*, IF INCORRECT CONTROL POINT NUMBER.
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 2, 3, 4, 7.
* 
*         CALLS  ASD, ASN.
  
  
 SCP6     SA6    SBTL1
          SX1    1           SET CONTROL POINT SELECTED FLAG
  
 SCP      SUBR
          SA1    PI 
          NZ     X1,SCP3     IF DUMPING ALL ACTIVE CONTROL POINTS 
  
*         SELECT NEXT CONTROL POINT NUMBER FROM DIRECTIVE CARD. 
  
          SB7    B0          SET OCTAL BASE 
          RJ     ASD         ASSEMBLE CP NUMBER 
          SX1    B6+
          ZR     X1,SCPX     IF END OF DIRECTIVE
          NZ     X4,ERR8     IF CONVERSION NOT OK 
          ZR     X6,ERR8.1   IF CONTROL POINT ZERO
          SA6    CN          SAVE NUMBER
          SA1    NC 
          IX7    X1-X6
          SX7    X7+B1       ALLOW FOR SYSTEM CONTROL POINT 
          SA1    OP 
          ZR     X1,SCP1     IF NOT DUMPING PSEUDO-CONTROL POINTS 
          PL     X7,ERR8.1   IF INCORRECT PCP NUMBER
          SA1    ME          NUMBER OF MCT ENTRIES
          SX7    X6+B1
          IX7    X1-X7
 SCP1     NG     X7,ERR8.1   IF INCORRECT CONTROL POINT NUMBER
          SA1    CH          CHECK SEPARATOR
          SA1    X1+
          SX1    X1-1R/ 
          SA2    CO 
          BX6    X2          SET DEFAULT LIST OPTIONS 
          NZ     X1,SCP2     IF SEPERATOR NOT */* 
          RJ     ASN         ASSEMBLE LIST OPTIONS
 SCP2     SA6    CL          SET LIST OPTIONS 
          SA1    CN          SET CP/PCP NUMBER IN SUBTITLE LINE 
          RJ     COD
          SX1    2RCP&2R
          BX6    X4-X1
          LX6    -12
          SA1    OP 
          ZR     X1,SCP6     IF NOT DUMPING PCP-S 
          SX1    1RP&1R 
          BX6    X6-X1
          LX6    -6 
          EQ     SCP6        SET SUBTITLE 
  
*         FIND NEXT ACTIVE CONTROL POINT. 
  
 SCP3     SB2    X1          SET SEARCH INDEX 
          SA2    NC          LAST CONTROL POINT NUMBER-1
          SX2    X2+B1
          MX4    12 
          SA3    OP 
          ZR     X3,SCP3.1   IF NOT DUMPING PCP-S 
          SA2    ME 
 SCP3.1   LX2    7
          IX2    X2+X3       ADD PCPA OFFSET
          SB3    X2+TFSW
          SA2    F.TCMT 
          SB4    X2          SET TCMT TABLE BASE ADDRESS
          SX1    B0          PRESET NO MORE TO DUMP FLAG
 SCP4     SB2    B2+CPLEN    ADVANCE SEARCH POINTER 
          LT     B2,B3,SCP4.1  IF NOT AT SYSTEM CP OR LAST PCP+1
          SA2    OP 
          NZ     X2,SCPX     IF ALL THROUGH DUMPING PCP-S 
          EQ     B2,B3,SCP5  IF SYSTEM CP 
          SA3    F.TCMT      CHECK FOR PCP-S TO DUMP
          SA3    X3+PCPP
          SX2    B2-TFSW     SET PCPA OFFSET
          SX3    X3 
          ZR     X3,SCPX     IF NO PCP-S TO DUMP
          IX6    X3-X2
          SA6    A2 
          SB2    B2+X6       ADVANCE SEARCH POINTER TO PCPA-S 
          SA2    ME          SET LAST PCPA+1 TO DUMP
          LX2    7
          IX2    X2+X6
          SB3    X2+TFSW
 SCP4.1   SA2    B2+B4       READ NEXT EJT ORDINAL
          BX2    X4*X2
          ZR     X2,SCP4     IF CONTROL POINT NOT ACTIVE
 SCP5     SX1    B2-TFSW
          SA2    OP          SUBTRACT OFF PCPA OFFSET 
          IX7    X1-X2
          AX7    7
          SA7    CN          SET CONTROL POINT NUMBER 
          SX6    B2 
          SA6    A1          UPDATE SEARCH POINTER
          SA1    CO          DEFAULT LIST OPTIONS 
          BX6    X1 
          EQ     SCP2        SET LIST OPTIONS 
 SDI      SPACE  4,13 
**        SDI - SET DISPLAY CODE INTERPRETATION.
*         COLONS AND DISPLAY CODE CHARACTERS ABOVE 57B ARE
*         REPLACED WITH SPACES IN ORDER NOT TO SLOW DOWN THE LINE 
*         PRINTER.
* 
*         ENTRY  A2 = ADDRESS OF FIRST DATA WORD. 
*                X2 = FIRST DATA WORD.
*                B6 = NUMBER OF CHARACTERS. 
*                B7 = STRING BUFFER ADDRESS.
* 
*         USES   X - 0,2,6,7. 
*                B - 5,6,7. 
*                A - 2,6. 
  
  
 SDI      SUBR
 SDI1     SX0    77B
          SB5    10          CHARACTER COUNT
 SDI2     LX2    6           POSITION NEXT CHARACTER
          BX6    X0*X2
          ZR     X6,SDI3     IF COLON 
          SX7    X6-60B 
          NG     X7,SDI4     IF NOT A SPECIAL CHARACTER 
 SDI3     SX6    1R 
 SDI4     SA6    B7          STORE CHARACTER IN STRING
          SB7    B7+1 
          SB6    B6-B1       COUNT CHARACTER
          ZR     B6,SDIX     IF NO MORE TO CONVERT
          SB5    B5-1 
          NZ     B5,SDI2     IF NOT END OF WORD 
          SA2    A2+1        READ NEXT WORD 
          EQ     SDI1        CONTINUE 
 SDT      SPACE  4,15 
**        SDT - SEARCH DESCRIPTOR TABLE.
* 
*         ENTRY  (X1) = SEARCH ARGUMENT (LOWER 8 BITS). 
*                (A2) = ADDRESS OF DESCRIPTOR TABLE.
*                (X2) = FIRST ENTRY IN DESCRIPTOR TABLE.
*                (X4) = MODEL NUMBER BIT MASK.
* 
*         EXIT   (X2) = 0 IF NO FIND. 
*                     = TABLE ENTRY IF FIND.
*                (A2) = ADDRESS OF DESCRIPTOR TABLE ENTRY.
* 
*         USES   X - 0, 1, 2, 3, 4. 
*                A - 2. 
  
  
 SDT      SUBR               ENTRY/EXIT 
          MX0    9
          LX1    51 
          LX4    34 
 SDT1     BX3    X0*X2
          BX3    X3-X1
          NZ     X3,SDT2     IF NO MATCH
          BX3    X2*X4
          NZ     X3,SDTX     IF VALID FOR THIS MODEL
 SDT2     SA2    A2+B1
          NZ     X2,SDT1     IF NOT END OF DESCRIPTOR TABLE 
          EQ     SDTX        RETURN 
 SEA      SPACE  4,10 
**        SEA - SET EXCHANGE ADDRESS FOR CYBER 176. 
* 
*         EXIT   (X6) = REFERENCE ADDRESS.
* 
*         USES   X - 1, 2, 3, 6.
*                A - 1. 
  
  
 SEA      SUBR               ENTRY/EXIT 
          SA1    F.TCMT      GET EST FWA AND SIZE 
          SA1    X1+ESTP
          AX1    24 
          MX6    -12
          BX2    -X6*X1 
          AX1    12          GET FWA EST
          R=     X3,ESTE
          IX3    X2*X3
          IX6    X1+X3
          SX6    X6+777B     ROUND UP TO NEXT 1000B 
          AX6    9
          LX6    9
          EQ     SEAX        RETURN 
 SEC      SPACE  4,8
**        SEC - SET EXTENDED CORE STORAGE.
* 
*         EXIT   X6 = SBTL1 = EXTENDED MEMORY NAME FOR SUBTITLE.
*                X7 = MI = EXTENDED MEMORY BLOCK RANDOM INDEX.
* 
*         USES   X - 0, 1, 2, 3, 6, 7.
*                A - 1, 2, 3, 6, 7. 
* 
*         CALLS  COD. 
* 
*         MACROS SEARCH.
  
  
 SEC      SUBR
          BX7    X7-X7       CLEAR EXTENDED MEMORY ERROR FLAG 
          SA7    EE 
          SA7    MB          CLEAR MEMORY BASE ADDRESS
          SA1    .ECS 
          MX0    18 
          SEARCH TDIR,X1,X0 
          NZ     X2,SEC0     IF ECS RECORD FOUND
          SA1    .ESM 
          MX0    18 
          SEARCH TDIR,X1,X0 
          ZR     X2,SEC2     IF NO ESM RECORD FOUND 
 SEC0     SA1    CF          CHECK IF A CYBER 176 
          SA3    =10REC          SET HEADER FOR NO FLAG REGISTER
          BX6    X3 
          ZR     X1,SEC1     IF CYBER 176 
          SA1    A2          READ FLAG REGISTER FROM TDIR ENTRY 
          SA3    =10000000B 
          MX0    -18
          LX1    -12
          BX1    -X0*X1 
          IX1    X1+X3       GUARANTEE LEADING ZEROS
          RJ     COD         CONVERT FLAG REGISTER
          SA3    =4L EC 
          MX0    -36
          BX6    -X0*X6 
          BX6    X6+X3
          LX6    6
 SEC1     SA6    SBTL1       SET NAME AND FLAG REGISTER FOR SUBTITLE
          SA2    A2+3        READ RANDOM INDEX
          ZR     X2,SEC2     IF NO EXTENDED MEMORY RECORD 
          BX7    X2 
          SA7    MT          SET MEMORY TYPE
          SA7    MI          SET RANDOM INDEX OF EXTENDED MEMORY
          JP     SECX        EXIT 
  
 SEC2     SX7    B1          SET EXTENDED MEMORY ERROR FLAG 
          SA7    EE 
          JP     ERR5        *EXTENDED MEMORY RECORD NOT FOUND* 
 SEM      SPACE  4,10 
**        SEM - SET UNIFIED EXTENDED MEMORY.
* 
*         EXIT   (X3) = *UEML* WORD SHIFTED 59-1. 
*                (X6) = (SBTL1) = UEM NAME FOR SUBTITLE.
*                (X7) = (MI) = CENTRAL MEMORY BLOCK RANDOM INDEX. 
* 
*         USES   A - 1, 2, 3, 6, 7. 
*                X - 1, 2, 3, 6, 7. 
  
  
 SEM      SUBR               ENTRY/EXIT 
          SA1    F.TCMT 
          SA3    X1+UEML
          MX6    12 
          BX7    X7-X7
          BX6    X6*X3
          LX3    59-1 
          SA7    EE          CLEAR EXTENDED MEMORY ERROR FLAG 
          SA7    MT          SET MEMORY TYPE
          LX6    12+9 
          SA6    MB          SET MEMORY BASE ADDRESS TO UEM ADDRESS 
          SA1    =10HUEM
          SA2    CI 
          BX6    X1 
          LX7    X2 
          SA6    SBTL1       SET NAME FOR SUBTITLE
          SA7    MI          SET RANDOM INDEX OF CM 
          EQ     SEMX        RETURN 
 SFP      SPACE  4,10 
**        SFP - SEARCH FOR PAGE.
* 
*         ENTRY  (DSMB, DSMB+1) = FWA, LWA OF DUMP. 
* 
*         EXIT   DSMB UPDATED.
*                (X3) < 0, IF PAGES FOUND.
* 
*         USES   A - 1, 2, 3, 6.
*                X - 2, 3, 6. 
*                B - 2, 6, 7. 
* 
*         CALLS  CPC, HTS, PSM, SPT, SSB, UPS.
  
  
 SFP      SUBR               ENTRY/EXIT 
          RJ     SSB         SPACE FILL BUFFER
          SA2    SFPA        * PAGE ENTRY IS MISSING.*
          SB7    PRBF 
          SB6    23 
          RJ     UPS         UNPACK STRING
          SB2    DSMB 
          RJ     SPT         CHECK PAGE CHANGE
          NG     X3,SFP3     IF INITIAL PAGE IS PRESENT 
          ZR     X2,SFP2     IF PAGE IS NOT REALLY MISSING
          PRINT  (=2C  )
          PRINT  CCCH,24
 SFP1     SA1    DSMB        INCREMENT TO NEXT PAGE 
          SA2    XM 
          SX2    X2+B1
          IX6    X2+X1
          SA6    A1 
          SA3    A1+B1
          IX6    X6-X3
          PL     X6,SFP4     IF NO MORE TO DUMP 
          SB2    DSMB 
          RJ     CPC         CHECK PAGE CHANGE
 SFP2     NZ     X2,SFP1     IF PAGE MISSING
          SB7    PRBF+15     FETCH UPPER 4 BITS 
          SA1    A3          FETCH VALID BITS 
          SB6    B1 
          RJ     HTS
          SA1    A1+B1
          SB6    15 
          RJ     HTS
          PRINT  (=2C  )
          PRINT  CCCH,32
          PRINT  (=2C  )
 SFP3     SB2    BRMA        BYTE RMA OF PAGE 
          RJ     PSM         POSITION DUMP FILE 
          RJ     SSB         SPACE FILL BUFFER
          MX3    1
          JP     SFPX        RETURN 
  
 SFP4     MX3    0           DEFINE MISSING PAGE/END OF DUMP
          JP     SFPX        RETURN 
  
 SFPA     DATA   H* PAGE ENTRY IS MISSING.* 
 SFR      SPACE  4,15 
**        SFR - SEARCH FOR REGISTER.
* 
*         ENTRY  (X5) = REGISTER NUMBER.
* 
*         EXIT   (X1) = REGISTER NUMBER IF FOUND. 
*                     = NEGATIVE IF NOT FOUND.
*                (X6) = UPPER 4 BITS OF REGISTER (BITS 0-3).
*                (X7) = LOWER 60 BITS OF REGISTER (BITS 4-63).
* 
*         USES   B - 2. 
*                A - 1, 2.
*                X - 1, 2, 3, 6, 7. 
*                LPWA - LPWA+1. 
* 
*         CALLS  RMR. 
  
  
 SFR      SUBR               ENTRY/EXIT 
          SX6    -1 
          SA6    LPWA        PRESET BUFFER POINTERS FOR *LPW* 
          SX6    X6+B1
          SA6    A6+B1
 SFR1     RJ     RMR         READ MAINTENANCE REGISTER
          BX2    X1 
          MX1    1
          ZR     X2,SFRX     IF END OF REGISTERS
          SA1    RMRA+1      GET REGISTER NUMBER
          IX6    X5-X1
          NZ     X6,SFR1     IF NOT SELECTED REGISTER 
          SA2    MRBF        FWA OF REGISTER VALUE
          MX3    -4 
          BX7    -X3*X2 
          AX2    4
          SX6    X2 
          SB2    7
 SFR2     SA2    A2+B1       PACK INTO 60 BIT VALUE 
          LX7    8
          BX7    X7+X2
          SB2    B2-B1
          NZ     B2,SFR2     IF MORE BYTES TO INCLUDE 
          EQ     SFRX        RETURN 
 SHA      SPACE  4,12 
**        SHA - SET HEX ADDRESSES.
* 
*         ENTRY  (X6) = MAXIMUM ADDRESS TO DUMP.
*                (NR) = NEXT RECORD FLAG. 
* 
*         EXIT   (FW) AND (LW) SET. 
* 
*         USES   X - 0, 1, 6. 
*                A - 1, 6.
* 
*         CALLS  ASX. 
  
  
 SHA2     SA1    NR 
          ZR     X1,SHAX     IF NO SECOND RECORD EXISTS 
          SA1    FW          SAVE FWA, LWA+1
          BX6    X1 
          SA1    A1+B1
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
 SHA3     SA6    SHAA 
          BX6    X1 
          SA6    A6+B1
  
 SHA      SUBR               ENTRY/EXIT 
          SA1    SHAA+1 
          ZR     X1,SHA1     IF FIRST RECORD
          SA1    SHAA        RESTORE FWA, LWA+1 
          BX6    X1 
          SA1    A1+B1
          SA6    FW 
          BX6    X1 
          SA6    A6+B1
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          SX1    B0 
          SX6    B0 
          EQ     SHA3        CLEAR SAVE AREA
  
 SHA1     SA6    LW          PRESET LWA+1 
          BX0    X6          SAVE MAXIMUM 
          SX6    B0          PRESET FWA 
          SA6    FW 
          RJ     ASX         ASSEMBLE FWA 
          NZ     X4,SHA2     IF NO ADDRESSES SPECIFIED
          SA6    FW          SET FWA
          SX6    X6+B1       RESET LWA+1
          SA6    A6+B1
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          RJ     ASX         ASSEMBLE LWA+1 
          NZ     X4,SHA2     IF NOT SPECIFIED 
          SA6    LW          SET NEW LWA+1
          IX6    X0-X6
          PL     X6,SHA2     IF LWA+1 NOT TOO LARGE 
          BX6    X0 
          SA6    A6+         RESET LWA+1
          EQ     SHA2        CHECK NEXT RECORD
  
  
 SHAA     CON    0           FWA
          CON    0           LWA+1
 SLP      SPACE  4,12 
**        SLP - SET LOGICAL PP IN MESSAGE.
* 
*         ENTRY  (A0) = MESSAGE WORD ADDRESS. 
*                (PP) = PP BEING DUMPED.
* 
*         EXIT   (X6) = 0 IF NO PP SWITCH.
* 
*         USES   X - 0, 2, 3, 4, 6, 7.
*                A - 2, 3, 7. 
* 
*         CALLS  CPN. 
  
  
 SLP1     SX6    0           SET NO PP SWITCH 
  
 SLP      SUBR               ENTRY/EXIT 
          RJ     CPN         CONVERT PP/CPP NUMBER
          NZ     X3,SLP1     IF CPP 
          SA3    TLPP+X6
          BX6    X3-X2
          ZR     X6,SLPX     IF NO PP SWITCH
          BX4    X3 
          SX2    707B        CONVERT LOGICAL NUMBER TO DISPLAY CODE 
          LX3    3
          BX3    X3+X4
          BX3    X3*X2
          SX6    X3+2R00
          SA2    A0          SET LOGICAL NUMBER IN HEADER 
          LX6    36 
          MX0    12 
          LX0    -12
          BX2    -X0*X2 
          BX7    X2+X6
          SA7    A0 
          EQ     SLPX        RETURN 
 SMT      SPACE  4,16 
**        SMT - SELECT MASS STORAGE TABLE TO DUMP.
* 
*         ENTRY  (CH) = ADDRESS OF NEXT CHARACTER IN DIRECTIVE. 
*                (PI) = EST SEARCH ORDINAL. 
*                (PI) = 0 IF MST-S ARE SPECIFIED ON THE DIRECTIVE.
* 
*         EXIT   (X6) = MST ADDRESS.
*                       0, IF NO MORE MST-S TO DUMP.
*                (EQ) = *EQDE* WORD OF EST ENTRY. 
*                (FI) = EST ORDINAL TO DUMP.
*                (PI) ADVANCED. 
* 
*         USES   X - 1, 2, 3, 4, 5, 6, 7. 
*                A - 1, 2, 3, 4, 6, 7.
*                B - 2, 7.
* 
*         CALLS  ASD, COD.
  
  
 SMT3     SA6    EQ          SAVE EST ENTRY WORD FOR *MRT*
          SA1    FI          CONVERT EST ORDINAL
          RJ     COD
          SX1    3REST&3R    CREATE SUBTITLE
          MX6    -18
          BX1    -X6*X1 
          LX1    6
          BX6    X4-X1       ADD CONVERTED ORDINAL
          LX6    -24
          SA6    SBTL1
          BX6    X5          RESTORE MST ADDRESS
          LX6    3
  
 SMT      SUBR               ENTRY/EXIT 
          SA1    PI 
          NZ     X1,SMT1     IF DUMPING ALL MSTS
  
*         READ NEXT DEVICE NUMBER FROM DIRECTIVE CARD.
  
          SB7    B0 
          RJ     ASD         ASSEMBLE NEXT EST ORDINAL
          ZR     X6,SMTX     IF END OF DIRECTIVE
          NZ     X4,ERR6     IF ERROR 
          SA1    F.TCMT      READ EST POINTERS
          SA2    X1+ESTP
          MX3    -12
          AX2    12 
          BX7    -X3*X2      SET LAST MASS STORAGE ORDINAL + 1
          AX2    24 
          IX7    X6-X7
          PL     X7,ERR6     IF INCORRECT EST ORDINAL 
          SA6    FI          SAVE EST ORDINAL 
          R=     X7,ESTE
          IX7    X6*X7
          IX2    X2+X7
          SX2    X2+EQDE
          IX2    X2+X1
          SA2    X2          READ EST ENTRY 
          PL     X2,ERR23    IF NOT MASS STORAGE
          BX5    -X3*X2      SET MST ADDRESS
          BX6    X2 
          JP     SMT3        EXIT 
  
*         SEARCH FOR NEXT MASS STORAGE DEVICE.
  
 SMT1     SA2    F.TCMT 
          SA4    X2+ESTP     READ EST POINTER WORD
          SB2    X2+
          MX6    0           PRESET MST ADDRESS 
          MX2    -12
          AX4    12 
          BX7    -X2*X4      LAST MASS STORAGE ORDINAL + 1
          AX4    12 
          BX3    -X2*X4      LAST EST ORDINAL + 1 
          AX4    12 
          SB2    B2+X4       SET (B2) = FWA OF EST IN *TCMT*
          SX4    X3          VERIFY LAST MASS STORAGE .LE. LAST EST 
          IX2    X7-X4
          PL     X2,SMT2     IF MAXIMUM MS DEVICES OR POINTERS BAD
          SX4    X7+
 SMT2     IX2    X1-X4
          PL     X2,SMTX     IF END OF MASS STORAGE EST-S 
          R=     X3,ESTE
          IX2    X1*X3
          SX2    X2+EQDE
          SA3    X2+B2       READ EST ENTRY 
          SX1    X1+B1
          PL     X3,SMT2     IF NOT A MASS STORAGE DEVICE 
          BX6    X1 
          SA6    A1          UPDATE EST POINTER 
          SX6    X1-1 
          SA6    FI          SAVE FOR *MST* 
          MX2    -12
          BX5    -X2*X3      SET MST ADDRESS
          BX6    X3 
          JP     SMT3        EXIT 
 SNO      SPACE  4,13 
**        SNO - SELECT NEXT LIST OPTION.
* 
*         ENTRY  (X1) = OPTION CHARACTER STRING LEFT JUSTIFIED. 
*                (A1) = ADDRESS OF OPTION STRING. 
*                (B2) = OPTION PROCESSOR ADDRESS TABLE. 
* 
*         EXIT   (X3) = 0 IF OPTION STRING EMPTY. 
*                (B3) = PROCESSOR ADDRESS IF FOUND. 
*                OPTION STRING IS UPDATED.
* 
*         USES   X - 1, 2, 3, 6.
*                A - 2, 6.
*                B - 2, 3.
  
  
 SNO      SUBR
          LX1    6           POSITION NEXT OPTION CHARACTER 
          MX2    -6 
          BX3    -X2*X1      EXTRACT NEXT CHARACTER 
          BX6    X2*X1
          SA6    A1+         UPDATE STRING
          ZR     X3,SNOX     IF END OF OPTIONS
 SNO1     SA2    B2          READ PROCESSOR ADDRESS 
          ZR     X2,ERR22    IF END OF TABLE
          SB3    X2          SET PROCESSOR ADDRESS
          AX2    18 
          BX2    X2-X3
          ZR     X2,SNOX     IF MATCH FOUND 
          SB2    B2+B1
          EQ     SNO1        CHECK NEXT TABLE ENTRY 
 SNP      SPACE  4,13 
**        SNP - SELECT NEXT PPU/FLPP TO DUMP. 
* 
*         ENTRY  (PI) = *TDIR* TABLE POINTER IF DUMPING ALL PPUS/FLPPS. 
*                     = 0 IF NEXT PPU/FLPP NUMBER IS ON DIRECTIVE CARD. 
* 
*         EXIT   (X1) = 0, IF NO MORE PP-S/FLPP-S TO DUMP.
*                (PI) = UPDATED.
*                DUMP FILE IS POSITIONED. 
* 
*         USES   X - 0, 1, 2, 3, 5, 6.
*                A - 1, 2, 5, 6.
*                B - 7. 
* 
*         CALLS  ASD, SPD.
  
  
 SNP      SUBR
          SA5    PI 
          ZR     X5,SNP2     IF NEXT NUMBER IS ON DIRECTIVE CARD
          SA1    BPNA 
          SA2    X5 
          MX0    12 
          BX3    X2-X1
          BX3    X0*X3
          SX1    B0+         PRESET NO MORE TO DUMP 
          NZ     X3,SNPX     IF NO MORE TO DUMP 
          SX6    X5+2 
          SA6    A5          ADVANCE TABLE POINTER
          LX2    12          SET *PP* FROM TABLE ENTRY
          BX2    X0*X2
          LX2    12 
          SX3    X2-2R00
          MX0    -3 
          BX2    -X0*X3 
          AX3    3
          BX6    X2+X3
 SNP1     RJ     SPD         SET UP PP/CPP/FLPP DUMP
          SX1    1           SET PPU/FLPP SELECTED
          EQ     SNPX        EXIT 
  
*         SELECT NEXT PPU/FLPP FROM DIRECTIVE CARD. 
  
 SNP2     SB7    0           ASSUME OCTAL BASE
          RJ     ASD         CONVERT NEXT NUMBER FROM DIRECTIVE 
          SX1    B6+
          ZR     X1,SNPX     IF NO MORE PP/FLPP NUMBERS 
          NZ     X4,ERR6     IF CONVERSION ERROR
          EQ     SNP1        SET NAME AND POSITION FILE 
 SPA      SPACE  4,17 
**        SPA - SELECT NEXT PPU TO ANALYZE. 
* 
*         ENTRY  (FI) = NAMED PP SEARCH INDEX.
*                (PI) = PP COMMUNICATION AREA SEARCH POINTER. 
*                     = 0, IF NEXT PP NUMBER IS ON DIRECTIVE. 
* 
*         EXIT   (X1) = 0, IF NO MORE PP-S TO DUMP. 
*                (PI) = UPDATED, IF DUMPING ALL ACTIVE PP-S.
*                (PP) = NUMBER OF PP SELECTED.
* 
*         USES   X - ALL. 
*                A - 1, 2, 3, 4, 5, 6, 7. 
*                B - 2, 3, 7. 
* 
*         CALLS  ASN, DXB, FPP. 
* 
*         MACROS PRINT. 
  
  
 SPA9.1   SX7    1           SET PROGRAM FOUND
          SA7    SPAA 
 SPA10    SA6    PP          SET PPU NUMBER 
          SX1    1           SET PPU SELECTED 
  
 SPA      SUBR
          SA1    PI 
          NZ     X1,SPA4     IF DUMPING ALL ACTIVE PPU-S
  
*         SELECT NEXT PPU FROM DIRECTIVE CARD.
  
          SA1    FI 
          NZ     X1,SPA2     IF SEARCHING FOR NAMED PPUS
 SPA1     SB7    0           SET OCTAL BASE 
          RJ     ASN         ASSEMBLE NEXT PP NUMBER
          SX1    B6 
          ZR     X1,SPAX     IF END OF DIRECTIVE
          BX7    X7-X7
          SA6    SPAB        STORE PP NUMBER/NAME 
          SA7    SPAA        CLEAR NAMED PPU FOUND FLAG 
          BX5    X6 
          RJ     DXB         CONVERT NUMBER TO OCTAL
          ZR     X4,SPA10    IF NO CONVERSION ERROR 
  
*         SEARCH FOR NAMED PPU. 
  
 SPA2     SA4    SPAB        READ NAME
          MX2    18 
          BX2    -X2*X4 
          NZ     X2,ERR49    IF NAME LONGER THAN 3 CHARACTERS 
          RJ     FPP         FIND PPU PROGRAM 
          NZ     X1,SPA9.1   IF PPU FOUND 
          SA2    SPAA 
          NZ     X2,SPA1     IF PROGRAM ALREADY FOUND AND DISPLAYED 
          SA1    SPAB        GET PROGRAM NAME 
          EQ     ERR50       *PROGRAM NOT FOUND - XXX*
  
*         SELECT NEXT ACTIVE PPU. 
  
 SPA4     SA3    F.TCMT 
          SA2    PC          GET PP COMMUNICATION AREA POINTER
          SA4    NP          NUMBER OF PPUS IN THE SYSTEM 
          SA5    IC 
          ZR     X5,SPA4.1   IF NOT DUMPING CPP-S 
          LX4    3           SET CPP COMMUNICATION AREA POINTER 
          IX2    X4+X2
          SA4    C4          NUMBER OF CPP COMMUNICATION AREAS
 SPA4.1   SB2    X1          SET SEARCH INDEX 
          LX4    3
          SB3    X4 
          SB3    B3+X2       LWA+1 OF COMMUNICATION AREA
          GE     B2,B3,SPA7  IF END OF SEARCH 
 SPA5     SA4    B2+X3       READ INPUT REGISTER
          MX0    18 
          BX1    X0*X4
          ZR     X1,SPA6     IF PPU NOT ACTIVE
          SA4    =3R*** 
          LX1    18          CHECK FOR UNAVAILABLE PPU
          BX6    X1-X4
          NZ     X6,SPA8     IF PPU AVAILABLE 
 SPA6     SB2    B2+10B      ADVANCE SEARCH 
          LT     B2,B3,SPA5  IF NOT END OF PPU-S
 SPA7     MX1    0           SET END OF SEARCH
          BX6    X1 
          SA6    A1+         CLEAR SEARCH INDEX 
          JP     SPAX        EXIT 
  
 SPA8     SX6    B2+         COMPUTE PPU NUMBER 
          IX6    X6-X2
          AX6    3
          SX7    X6-12B 
          NG     X7,SPA9     IF NOT PPU-S 20-31 
          SX6    X6+20B-12B  CORRECT PPU NUMBER 
 SPA9     SA6    PP          STORE PPU NUMBER 
          SX6    B2+10B 
          SA6    A1          UPDATE SEARCH INDEX
          SX1    B1          SET PPU FOUND
          JP     SPAX        EXIT 
  
  
 SPAA     CON    0           PROGRAM FOUND FLAG 
 SPAB     BSS    1           PP NUMBER OR NAME READ FROM DIRECTIVE
 SPD      SPACE  4,15 
**        SPD - SET UP PP/CPP/FLPP DUMP 
* 
*         ENTRY  (X6) = PP/CPP/FLPP NUMBER. 
* 
*         EXIT   DUMP FILE IS POSITIONED. 
*                SUBTITLE LINE PRINTED. 
*                PP OPERATING REGISTERS PRINTED, IF PRESENT.
* 
*         USES   X - 1, 2, 3, 5, 6. 
*                A - 0, 1, 2, 6.
*                B - 7. 
* 
*         CALLS  BPN, FPO, LDC, PDF, PPO, SFN, SLP, SSB.
* 
*         MACROS PRINT, SEARCH. 
  
  
 SPD      SUBR               ENTRY/EXIT 
          SA6    PP          SAVE PP/CPP/FLPP NUMBER
          RJ     PPO         PACK PP OPERATING REGISTERS
          BX5    X6          SAVE REGISTERS NOT FOUND FLAG
          RJ     BPN         BUILD PP NAME
          SEARCH TDIR,X7,X0  FIND SELECTED PP 
          ZR     X2,ERR7     IF NOT FOUND 
          SA2    A2+B1
          BX6    X2 
          SA6    RI          SET RANDOM INDEX 
          SA1    BPNA+1 
          RJ     SFN         SPACE FILL NAME
          SA6    SBTL1       SET IN SUBTITLE
          RJ     LDC         LIST DIRECTIVE CARD
          SA0    SPDA+2      SET LOGICAL PP IN MESSAGE
          RJ     SLP
          ZR     X6,SPD1     IF NO PP SWITCH
          PRINT  (=2C  )
          PRINT  SPDA        PRINT LOGICAL PP NUMBER
          PRINT  (=2C  )
 SPD1     SX3    B0+
          RJ     PDF         POSITION DUMP FILE 
          ZR     X5,SPDX     IF NO OPERATING REGISTERS FOUND
          PRINT  SPDB 
          SX5    0           INITIALIZE LINE COUNTER
 SPD2     RJ     SSB         CLEAR PRINT STRING BUFFER
          SB7    PRBF 
          RJ     FPO         FORMAT PP OPERATING REGISTERS
          ZR     X6,SPDX     IF FINISHED DISPLAYING REGISTERS 
          PRINT  CCCH,B7-CCCH 
          SX5    X5+1        INCREMENT LINE COUNTER 
          EQ     SPD2        LOOP 
  
  
 SPDA     DATA   C*           (LOGICAL PPXX)* 
 SPDB     DATA   C*                  P      Q       K       A*
 SPP      SPACE  4,10 
**        SPP - SET CYBER 170-8X5 PROCESSOR POINTERS. 
* 
*         EXIT   *S2MPS* - *S2JPS* PRESET.
* 
*         USES   X - 1, 4, 5, 6, 7. 
*                A - 1, 5, 6. 
*                B - 6. 
* 
*         CALLS  RDR, SFR.
  
  
 SPP2     SX5    0           READ PROCESSOR SUMMARY STATUS
          RJ     SFR         SEARCH FOR REGISTER
          NG     X1,SPPX     IF NOT FOUND 
          SA1    S2MPS
          BX6    X1 
          LX7    59-63+58    C180 MONITOR MODE
          SA1    A1+B1       GET JPS
          SA6    A1+B1       SET S2LPS TO (S2MPS) 
          NG     X7,SPPX     IF PROCESSOR IN MONITOR MODE 
          BX6    X1 
          SA6    A6          SET S2LPS TO (S2JPS) 
  
 SPP      SUBR               ENTRY/EXIT 
          SA1    .PMR 
          RJ     RDR         LOCATE *PMR* RECORD
          ZR     X2,SPPX     IF RECORD NOT FOUND
          SA1    SPPB        CPU NUMBER 
          ZR     X1,SPP0     IF CPU 0 
          SA1    NR 
          ZR     X1,ERR6     IF NO OTHER CPU RECORDS
          RJ     RDR         POSITION TO NEXT CPU-S *PMR* RECORD
 SPP0     SA5    SPPA        START OF TABLE 
 SPP1     SB6    X5          ADDRESS TO SAVE REGISTER VALUE 
          ZR     X5,SPP2     IF END OF REGISTER 
          AX5    30          REGISTER NUMBER
          RJ     SFR         SEARCH FOR REGISTER
          SA5    A5+B1
          NG     X1,SPP1     IF REGISTER NOT FOUND
          MX4    -30
          BX6    -X4*X7      USE LOWER 30 BITS OF REGISTER
          SA6    B6 
          JP     SPP1        SEARCH FOR NEXT REGISTER 
  
  
 SPPA     BSS    0
          VFD    30//IOU/PMPS,30/S2MPS MONITOR PROCESS POINTER
          VFD    30//IOU/PSTL,30/S2STL SEGMENT TABLE LENGTH 
          VFD    30//IOU/PSTA,30/S2STA SEGMENT TABLE ADDRESS
          VFD    30//IOU/PPTA,30/S2PTA PAGE TABLE ADDRESS 
          VFD    30//IOU/PPTL,30/S2PTL PAGE TABLE LENGTH
          VFD    30//IOU/PPSM,30/S2PSM PAGE SIZE MASK 
          VFD    30//IOU/PJPS,30/S2JPS JOB PROCESS STATE POINTER
          CON    0           END OF LIST
 SPPB     CON    0           CPU NUMBER 
 SPT      SPACE  4,15 
**        SPT - SEARCH CYBER 170-8X5 PAGE TABLE.
* 
*         ENTRY  ((B2)) = 12/0, 16/ASID, 32/BYTE OFFSET 
* 
*         EXIT   (BRMA) = REAL MEMORY ADDRESS.
*                (X2) = 0, IF PAGE ENTRY FOUND. 
*                (X3) < 0, IF PAGE ENTRY IS VALID.
*                (A3) = *PTEVCUM*.
* 
*         USES   X - 1, 2, 3, 4, 5, 6, 7. 
*                A - 1, 2, 3, 6, 7. 
*                B - 2, 3.
* 
*         CALLS  NPE. 
  
  
 SPT      SUBR               ENTRY/EXIT 
          SA2    B2          GET SVA (ASID AND BYTE OFFSET) 
          SA5    XM          PAGE SIZE MASK 
          MX3    -32
          BX6    -X3*X2      ISOLATE BYTE OFFSET
          SA6    BRMA 
          AX2    32 
          ZR     X2,SPTX     IF NO ASID SPECIFIED 
          CX7    X5 
          SB3    X7 
          AX4    X6,B3       EXTRACT INFORMATION FOR HASH 
          MX3    -6          GET RIGHTMOST SIX BITS FOR EXPANDED OFFSET 
          BX5    -X3*X4 
          BX7    -X5*X6      EXTRACT PAGE NUMBER
          AX7    9
          BX4    X2-X4
          LX2    22 
          BX7    X2+X7       CREATE SVA 
          BX6    X6*X5
          AX2    22+10       GET LEFTMOST SIX BITS OF ASID FOR OFFSET 
          SA7    SPTA        SAVE PAGE NUMBER + ASID
          SA6    A7+B1
          BX5    X5-X2
          LX5    16          POSITION EXPANDED OFFSET FIELD 
          BX4    X4+X5
          LX4    4
 SPT1     RJ     NPE         FETCH NEXT PAGE ENTRY
          SA2    SPTA        SVA OF PAGE TO FIND
          MX4    -22
          BX6    -X4*X5      EXTRACT RMA OF PAGE
          BX5    X4*X5
          LX5    -22
          BX2    X2-X5       COMPARE SVA-S
          LX6    9
          SA1    A2+B1       BYTE OFFSET INTO PAGE
          BX6    X6+X1       RMA OF PAGE
          SA6    BRMA 
          ZR     X2,SPTX     IF PAGE FOUND
          LX4    X3,B1
          SX3    B0 
          NG     X4,SPT1     IF CONTINUE BIT IS SET 
          JP     SPTX        RETURN WITH PAGE NOT FOUND 
  
 SPTA     CON    0
 SPTB     CON    0
 SRA      SPACE  4,11 
**        SRA - SET REFERENCE ADDRESS.
* 
*         ENTRY  X6 = NEW REFERENCE ADDRESS.
* 
*         EXIT   X6 = SBTL = REFERENCE ADDRESS FOR SUBTITLE.
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  COD. 
  
  
 SRA      SUBR
          SA6    BA          SET NEW REFERENCE ADDRESS
          SA1    =10000000B 
          IX1    X1+X6       GUARANTEE LEADING ZEROS
          RJ     COD         CONVERT TO DISPLAY CODE
          MX0    42 
          SA1    =3R
          LX4    6           DISCARD LEADING DIGIT
          BX6    X0*X4       EXTRACT RA 
          BX6    X1+X6       SPACEFILL
          LX6    -6 
          SA6    SBTL        STORE IN SUBTITLE
          JP     SRAX        EXIT 
 SRD      SPACE  4,16 
**        SRD - SUPPRESS REPEATED DATA. 
* 
*         ENTRY  B5 = NUMBER OF WORDS TO CHECK, MAXIMUM = 20B.
*                X1 = DATA ADDRESS. 
*                SRDA = MINUS, IF FIRST CALL. 
*                     = ZERO, PRINT DASHES IF REPEAT SENSED.
*                     = NON-ZERO IF DASHES HAVE BEEN PRINTED, 
*                            EXIT IF REPEAT SENSED. 
* 
*         EXIT   X1.NE.0 IF REPEAT SENSED.
* 
*         SAVES  X - NONE.
*                B - 1. 
*                A - 0. 
* 
*         CALLS  MVE=,WOF.
  
  
 SRD      SUBR
          SA3    SRDA 
          NG     X3,SRD3     IF FIRST CALL
  
*         COMPARE DATA WITH DATA FROM LAST CALL.
  
          SB2    0
 SRD1     SA2    X1+B2       READ DATA WORD 
          SA3    SRDB+B2
          BX3    X2-X3
          ZR     X3,SRD2     IF DATA IS SAME OR IS LOGICAL OPPOSITE 
          JP     SRD3 
  
 SRD2     NG     X3,SRD3     IF DATA IS LOGICAL OPPOSITE
          SB2    B2+1 
          NE     B2,B5,SRD1  IF MORE DATA TO CHECK
  
*         PROCESS REPEATED DATA.
  
          SA2    SRDA 
          SX1    B1 
          NZ     X2,SRDX     IF DASHES ALREADY PRINTED
          SX6    B1 
          SA6    A2+         SET REPEAT IN PROCESS FLAG 
          PRINT  SRDC        PRINT DASHES 
          SX1    B1          SET REPEAT PROCESSED 
          JP     SRDX        EXIT 
  
*         SAVE CURRENT BLOCK TO COMPARE WITH NEXT.
  
 SRD3     MX6    0
          SA6    SRDA        CLEAR REPEAT FLAG
          BX2    X1          SET DATA ADDRESS 
          MOVE   B5,X2,SRDB 
          SX1    0           SET NO REPEAT SENSED 
          JP     SRDX        EXIT 
  
 SRDA     BSS    1           REPEAT PROCESSING FLAG 
 SRDB     BSS    20B         PREVIOUS DATA BLOCK BUFFER 
 SRDC     DATA   50H -------------------------------------------------
          DATA   50H--------------------------------------------------
          DATA   36C------------------------------------
 SSB      SPACE  4,7
**        SSB - SPACEFILL STRING BUFFER.
* 
*         USES   B - 6, 7.
* 
*         CALLS  SBL. 
  
  
 SSB      SUBR
          SB6    136
          SB7    PRBF 
          RJ     SBL         STORE BLANKS 
          JP     SSBX        EXIT 
 SVA      SPACE  4,10 
**        SVA - GET ASID FROM SEGMENT TABLE OF XP.
* 
*         ENTRY  ((B2)+0) = PVA.
*                ((B2)+1) = EXCHANGE PACKAGE ADDRESS. 
* 
*         EXIT   (X6) = SVA.
*                (X1) = SVA.
* 
*         USES   A - 1, 2, 6. 
*                X - 1, 2, 6, 7.
*                B - 2. 
* 
*         CALLS  NXB, PVM.
  
  
 SVA      SUBR               ENTRY/EXIT 
          SA1    B2          GET SEGMENT NUMBER 
          SA2    B2+B1       GET EXCH PACKAGE ADDRESS 
          MX6    -32
          BX7    -X6*X2 
          BX6    -X6*X1 
          SA6    SVAA        SAVE BYTE OFFSET 
          AX2    32 
          AX1    32 
          IX6    X2-X1
          NG     X6,ERR44    IF BAD SEGMENT NUMBER
          LX1    3
          IX6    X7+X1       RMA OF SEGMENT DESCRIPTOR
          RJ     PVM         POSITION VIRTUAL MEMORY
          NZ     X2,ERR30    IF PAGE NOT FOUND
          RJ     NXB         GET NEXT BYTE
          BX6    X1 
          SA6    STSDE       SEGMENT TABLE DESCRIPTOR ENTRY 
          LX1    59-15
          PL     X1,ERR44    IF VALID BIT NOT SET FOR SEGMENT 
          RJ     NXB         GET ASID 
          SA2    SVAA        GET BYTE OFFSET
          ZR     X1,ERR44    IF ASID IS ZERO
          LX1    32 
          BX6    X1+X2       FORM SVA 
          BX1    X6 
          JP     SVAX        RETURN 
  
 SVAA     DATA   0           BYTE OFFSET
 SXH      SPACE  4,14 
**        SXH - SET PPU XP HEADING IN PRINT STRING. 
* 
*         ENTRY  (B7) = PRINT STRING ADDRESS. 
*                (PP) = NUMBER OF LAST PP PROCESSED.
*                (CPRA) = CURRENT XP ADDRESS. 
* 
*         EXIT   (X1) = 0 IF NO MORE TO PROCESS.
*                PP, CPRA, AND B7 ARE UPDATED.
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 4, 6, 7. 
*                B - 6, 7.
* 
*         CALLS  BPN, CTS, SBL, UPS.
  
  
 SXH      SUBR
          SA1    PP 
          SA2    AC 
          BX3    X2 
          SA4    C4 
          IX2    X2+X4       ADD CPP-S
          SX6    X1+B1       ADVANCE PPU NUMBER 
          IX1    X6-X2
          ZR     X1,SXHX     IF NO MORE TO PROCESS
          SX4    X6+         SAVE PPU NUMBER
          SX7    X6-10
          NG     X7,SXH4     IF NOT UPPER 10 PPUS 
          SX3    X3-11
          PL     X3,SXH1     IF 20 PPU SYSTEM 
          SX6    X6+10       ADJUST FOR 10 PPU SYSTEM 
          EQ     SXH2        PROCESS *CPP-S*
  
 SXH1     SX7    X7-12B 
          NG     X7,SXH3     IF NOT A *CPP* 
 SXH2     SX7    1
          SA7    IC 
          SX6    X6-20-6     ADJUST FOR *CPP-S* 
 SXH3     SX6    X6+6        ADJUST FOR PP 20 - 30
 SXH4     SA6    A1+         UPDATE PPU NUMBER
          RJ     BPN         BUILD PPU NAME 
          SX6    X4+         RESET PPU NUMBER 
          SA6    PP 
          SA1    CPRA 
          SB6    5
          SX6    X1+21B 
          SA6    A1          UPDATE XP ADDRESS
          LX1    -15
          RJ     CTS         CONVERT XP ADDRESS 
          SX6    1R 
          SX7    1R-
          SA6    B7 
          SB7    B7+B1
          SA7    B7 
          SB7    B7+B1
          SA6    B7 
          SB7    B7+B1
          SA2    BPNA+1      READ PP NAME 
          SB6    5
          RJ     UPS
          SA2    =10H XP
          SB6    3
          RJ     UPS
          SB6    32 
          RJ     SBL
          SX1    1
          JP     SXHX        EXIT 
 TOV      SPACE  4,14 
**        TOV - PROCESS MANAGED TABLE OVERFLOW. 
* 
*         ENTRY  (B5) = -(NUMBER OF WORDS NEEDED).
*                (B6) = RETURN ADDRESS. 
*                (FM) = CURRENT FIELD LENGTH. 
*                (F.TEND) = CURRENT END OF TABLE SPACE. 
* 
*         EXIT   FM, F.TEND ARE UPDATED.
* 
*         USES   X - 0, 1, 6, 7.
*                A - 1, 6, 7. 
* 
*         MACROS MEMORY.
  
  
 TOV      SX6    -B5         NUMBER OF WORDS NEEDED 
          SX6    X6+1010B    ROUND UP TO NEXT 1000 WORDS
          MX0    -9 
          BX6    X0*X6
          SA1    FM          READ CURRENT FIELD LENGTH
          IX7    X1+X6
          ZR     X6,ERR19    IF (B5) DESTROYED
          SX6    X7-10B 
          SA7    A1          UPDATE CURRENT FIELD LENGTH
          LX7    30 
          SA6    F.TEND      UPDATE END OF TABLE SPACE POINTER
          SA7    TOVA        SET RFL REQUEST WORD 
          MEMORY CM,TOVA,R
          JP     B6          RETURN TO TABLE ALLOCATOR
  
  
 TOVA     BSS    1           RFL PARAMETER
 TPF      SPACE  4,15 
**        TPF - CYBER 180-990 PROCESSOR FILE. 
* 
*         ENTRY  ONLY IF ON A CYBER 180-990.
* 
*         EXIT   DIRECTIVE PRORF PROCESSED; RECORDS PRF, PRG, AND 
*                PRH DISPLAYED. 
* 
*         USES   X - 0, 1, 2, 3, 5, 6, 7. 
*                A - 0, 1, 2, 3, 5, 6, 7. 
*                B - 3, 6, 7. 
* 
*         CALLS  CDD, CEP, DHR, FBP, FPR, HTS, LDC, NXB, SSB, UPS.
* 
*         MACROS PRINT. 
  
  
 TPF17    SA1    NR 
          NZ     X1,TPF1     IF MORE RECORDS TO DISPLAY 
  
 TPF      SUBR               ENTRY/EXIT 
          RJ     CEP         CHECK FOR EXTRANEOUS PARAMETERS
 TPF1     RJ     LDC         LIST DIRECTIVE CARD
          SA5    TPFA        INITIALIZE RECORD TABLE POINTER
          SX6    1           DISPLAY RADIAL MCI 
  
*         GET NEXT RECORD.
  
 TPF2     SA1    A5          SET/CLEAR RECORD POINTER 
          MX0    18 
          BX7    X1 
          SA7    NR 
          SA1    A5+TPFE-TPFA  GET RECORD ID
          BX1    X0*X1
          RJ     FPR         FIND PROCESSOR RECORD
          ZR     X2,ERR14    IF RECORD ID NOT IN DIRECTORY
          SA1    NR          SAVE POINTER TO SECOND RECORD
          BX6    X1 
          SA6    A5 
          SA5    A5+B1       ADVANCE RECORD POINTER 
          SX3    B0 
          RJ     FBP         POSITION DUMP FILE 
          PRINT  (=2C  )
          SA1    A5+TPFE-1-TPFA 
          RJ     SSB         SPACE FILL STRING BUFFER 
          SB3    X1 
          JP     B3          PROCESS RECORD 
  
*         PROCESS *PRF* RECORD. 
  
 TPF3     PRINT  (=C* IDU CURRENT INSTRUCTION REGISTER*)
          SX6    -8 
          SA6    FW 
 TPF4     SX6    X6+8+1R0    DISPLAY REGISTER NUMBER
          SA6    PRBF+5 
          SB7    PRBF+9 
          RJ     DHR         DISPLAY REGISTER 
          SA1    FW          INCREMENT REGISTER NUMBER
          SX6    X1+B1
          SA6    A1 
          NZ     X6,TPF4     IF NOT THROUGH WITH FIRST SEVEN WORDS
  
*         PRINT NEXT HEADER.
  
          RJ     SSB
          PRINT  (=2C  )
          PRINT  (=C* EXECUTING WORDS OF SOFT CONTROL MEMORIES*)
  
*         PRINT NEXT 13 WORDS FROM PRF FILE.
  
 TPF5     SA1    FW 
          SX6    X1+B1
          SA6    A1 
          SA2    TPFB+X1     GET DESCRIPTOR 
          ZR     X2,TPF6     IF AT END OF TABLE 
          SB7    PRBF 
          SB6    7+2
          RJ     UPS
          RJ     DHR         DISPLAY REGISTER 
          JP     TPF5        CHECK NEXT WORD
  
*         PRINT NEXT HEADER.
  
 TPF6     RJ     SSB
          PRINT  (=2C  )
          PRINT  (=C* ERROR INFORMATION TABLE *)
  
*         PRINT NEXT 16 WORDS FROM PRF FILE.
  
          SA0    16 
 TPF7     SX6    A0 
          BX6    -X6
          SA6    FW 
 TPF8     SB7    PRBF+4 
          SB6    2
          SX1    A0 
          IX1    X1+X6
          RJ     CDD
          BX2    X6 
          LX2    59-11
          RJ     UPS
          SB7    B7+3 
          RJ     DHR         DISPLAY REGISTER 
          SA1    FW 
          SX6    X1+B1
          SA6    A1 
          NG     X6,TPF8     IF MORE WORDS TO DISPLAY 
          EQ     TPF2        GET NEXT RECORD
  
*         PROCESS INSTRUCTION BUFFER STACK (*PIS*) RECORD.
  
 TPF9     PRINT  (=C* INSTRUCTION BUFFER STACK*)
          SA0    64 
          EQ     TPF7        DISPLAY RECORD 
  
*         PROCESS PROCESSOR REGISTER UNIT (*PRG*) RECORD. 
  
 TPF10    PRINT  (=C* REGISTER UNIT*) 
          SX6    B0 
          SA6    FW          INITIALIZE DIGIT 
          SA6    A6+B1       INITIALIZE DESCRIPTOR SHIFT COUNT
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
 TPF11    SA1    LW          GET SHIFT COUNT
          SA2    TPFC        GET DESCRIPTOR 
          SB3    X1 
          LX2    B3          POSITION DESCRIPTOR
          SB6    B1+B1
          SA1    A1-B1       GET DIGIT
          SB7    PRBF+3 
          RJ     UPS
          LX1    59-3 
          SB6    B1 
          RJ     HTS
          SB7    B7+3 
          RJ     DHR         DISPLAY REGISTER 
          SA1    FW          INCREMENT DIGIT
          SX6    X1+B1
          SA6    A1 
          SX7    X6-16
          NZ     X7,TPF11    IF LAST DIGIT .LE. F (HEX) 
          SA1    A1+B1       INCREMENT SHIFT COUNT
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          SX6    X1+12
          SA6    A1 
          SX6    X6-48
          ZR     X6,TPF2     IF END OF REGISTERS
          SX2    X6+24
          SX6    8           SET FIRST DIGIT FOR *SA* OR *SX* REGISTERS 
          SA6    FW 
          NZ     X2,TPF11    IF NOT *X* REGISTERS NEXT
          SA7    A6 
          JP     TPF11       CHECK NEXT WORD
  
*         PROCESS PROCESSOR HISTORY FILE (*PRH*) RECORD.
  
 TPF12    PRINT  (=C* HISTORY FILE*)
          SX6    B0 
          SA6    LW          REGISTER NUMBER
          SA6    A6-B1       TABLE POINTER
 TPF13    SA2    FW 
          SX7    X2-3 
          NZ     X7,TPF15    IF NOT END OF REGISTER 
          SA2    A2+B1       REGISTER NUMBER
          ERRNZ  LW-FW-1     CODE REQUIRES CONTIGUOUS WORDS 
          SX6    X2+B1       INCREMENT REGISTER NUMBER
          SX3    X2-15
          ZR     X3,TPF17    IF END OF TABLE
          SA6    A2 
          SA7    A6-B1       RESET TABLE POINTER
          SB6    6
 TPF14    RJ     NXB         SKIP 6*16 BITS OF ZEROS
          SB6    B6-B1
          NZ     B6,TPF14    IF NOT THROUGH SKIPPING
 TPF15    SA1    LW          REGISTER NUMBER
          SB7    PRBF 
          SB6    B1 
          LX1    59-3 
          RJ     HTS         HEX TO STRING
          SA1    FW          TABLE POINTER
          SA2    TPFD+X1
          SX6    X1+B1       INCREMENT POINTER
          SA6    A1 
          SB7    PRBF+3 
          SB6    5+2
          RJ     UPS
          SX5    3
          NZ     X1,TPF16    IF *A* OR *P* REGISTER 
          SX5    4
 TPF16    SB7    B7+2 
          RJ     NXB
          SB6    4
          LX1    59-15
          SX5    X5-1 
          RJ     HTS
          NZ     X5,TPF16    IF MORE REGISTER DATA TO DISPLAY 
          PRINT  CCCH,B7-CCCH+1 
          JP     TPF13       READ NEXT WORD IN TABLE
  
  
 TPFA     CON    0           SECOND *PRF* POINTER 
          CON    0           SECOND *PIS* POINTER 
          CON    0           SECOND *PRG* POINTER 
          CON    0           SECOND *PRH* POINTER 
 TPFB     DATA   C*ACU M2 * 
          DATA   C*ACU M3 * 
          DATA   C*ACU M4 * 
          DATA   C*BDP    * 
          DATA   C*       * 
          DATA   C*EPN SCM* 
          DATA   C*EPN ETM* 
          DATA   C*IDU CS * 
          DATA   C*       * 
          DATA   C*INU MAP* 
          DATA   C*INU IBS* 
          DATA   C*LSU    * 
          DATA   C*SVA BN * 
          CON    0
 TPFC     DATA   C* ASA XSX*
 TPFD     DATA   C*X-REG* 
          DATA   C*A-REG* 
          DATA   C*P, N * 
          CON    0
 TPFE     VFD    18/3LPRF,24/0,18/TPF3
          VFD    18/3LPIS,24/0,18/TPF9
          VFD    18/3LPRG,24/0,18/TPF10 
          VFD    18/3LPRH,24/0,18/TPF12 
 TRT      SPACE  4,15 
**        TRT - DUMP TRACK RESERVATION TABLE. 
* 
*         ENTRY  (BUF) = MST WORDS. 
* 
*         EXIT   BUF CONTAINS MST AND TRT.
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 1, 2, 6, 7.
*                B - 2, 5, 6, 7.
* 
*         CALLS  CTS, FDW, POM, P4F, SDI, SRD, SSB. 
* 
*         MACROS GETCM, PRINT.
  
  
 TRT      SUBR
          PRINT  (=2C  )
          PRINT  (=C*          TRACK RESERVATION TABLE*)
          PRINT  (=2C  )
          SA1    BUF+TRLL    SET FWA OF TRT 
          SX6    X1 
          SA6    CPRA 
          SA6    FW 
          SB2    A6 
          RJ     POM         POSITION TO TRT
          SA1    BUF+TDGL    SET TRT LENGTH 
          MX7    -12
          AX1    24 
          BX7    -X7*X1 
          SA7    LW          SET TRT LWA+1
          GETCM  BUF+MSTXL,X7  READ TRT INTO *BUF*
          MX7    1
          SA7    SRDA        PRESET FIRST CALL TO *SRD* 
          SX6    B0 
          SA6    TRTA        CLEAR LINK ORDINAL 
          SA6    TRTB        CLEAR DATA WORD ORDINAL
          SA6    SRDC+7      STOP DASHES AFTER 70 CHARACTERS
          RJ     SSB         CLEAR PRINT STRING 
 TRT1     SA1    TRTB        SET DATA ADDRESS 
          SX1    X1+BUF+MSTXL 
          SB5    1           SET WORD COUNT 
          RJ     SRD         SENSE REPEAT DATA
          NZ     X1,TRT2     IF REPEAT SENSED 
          SA1    FW          GET TRT ADDRESS
          SA2    TRTB 
          IX1    X1+X2
          LX1    -18
          SB6    6
          SB7    PRBF 
          RJ     CTS         CONVERT TRT ADDRESS
          SB7    B7+B1
          SX6    1R+
          SA6    B7 
          SB7    B7+B1
          SA1    TRTA        LINK ORDINAL 
          LX1    -12
          SB6    4
          RJ     CTS         CONVERT LINK ORDINAL 
          SB7    B7+2 
          SA2    =4000005B
          SA1    TRTB        READ TRT DATA WORD 
          SA1    X1+BUF+MSTXL 
          RJ     FDW         FORMAT DATA WORD 
          SB7    B7+B1
          LX1    -12
          RJ     P4F         LIST FIRST TRACK DIRECT FILE FLAGS 
          SB7    B7+1 
          RJ     P4F         LIST INTERLOCK FLAGS 
          SB7    B7+1 
          RJ     P4F         LIST RESERVATION FLAGS 
          SA2    TRTB        RE-READ DATA WORD
          SA2    X2+BUF+MSTXL 
          SB7    B7+2 
          SB6    10 
          RJ     SDI         SET DISPLAY CODE INTERPRETATION
          PRINT  CCCH,B7-CCCH 
 TRT2     SA1    TRTA 
          SX6    X1+4 
          SA6    A1+         UPDATE TRACK ORDINAL 
          SA1    TRTB 
          SX6    X1+B1
          SA6    A1+         UPDATE TRT ADDRESS 
          SA2    LW 
          IX3    X6-X2
          NG     X3,TRT1     IF MORE TO DUMP
          SA1    SRDC+1 
          BX6    X1 
          SA6    SRDC+7      PRESET DASHES FOR 136 CHARACTERS 
          JP     TRTX        EXIT 
  
 TRTA     BSS    1           TRACK LINK ORDINAL 
 TRTB     BSS    1           TRT DATA WORD ORDINAL
 UCS      SPACE  4,15 
**        UCS - UNPACK CHARACTER STRING.
*         STRING IS DELIMITED BY 00 CHARACTER.
* 
*         ENTRY  (A2) = FWA OF PACKED DATA. 
*                (X2) = FIRST WORD OF PACKED DATA.
*                (B7) = FWA OF STRING BUFFER. 
* 
*         EXIT   (A2) = UPDATED.
*                (B7) = UPDATED.
* 
*         USES   X - 0, 2, 6. 
*                B - 5, 7.
*                A - 2, 6.
  
  
 UCS      SUBR               ENTRY/EXIT 
 UCS1     SX0    77B         CHARACTER MASK 
          SB5    10          CHARACTER COUNT
 UCS2     LX2    6
          BX6    X0*X2
          ZR     X6,UCSX     IF DELIMITER 
          SB5    B5-B1
          SA6    B7          STORE CHARACTER
          SB7    B7+B1       ADVANCE OUTPUT STRING POINTER
          NZ     B5,UCS2     IF MORE CHARACTERS IN THIS WORD
          SA2    A2+1        READ NEXT WORD OF PACKED DATA
          EQ     UCS1        CONTINUE UNPACKING CHARACTER STRING
 UPS      SPACE  4,13 
**        UPS - UNPACK CHARACTERS TO STRING BUFFER. 
*         COLONS ARE REPLACED WITH SPACES.
* 
*         ENTRY  A2 = FWA OF PACKED BUFFER. 
*                X2 = FIRST WORD OF PACKED DATA.
*                B6 = NUMBER OF CHARACTERS TO UNPACK. 
*                B7 = FWA OF STRING BUFFER. 
* 
*         EXIT   A2 AND B7 ARE UPDATED. 
* 
*         USES   X - 0,2,6. 
*                B - 5,6,7. 
*                A - 2,6. 
  
  
 UPS      SUBR
 UPS1     SX0    77B         CHARACTER MASK 
          SB5    10          CHARACTER COUNTER
 UPS2     LX2    6
          BX6    X0*X2
          SB6    B6-B1       DECREASE COUNT 
          SB5    B5-B1
          NZ     X6,UPS3     IF NOT COLON CODE
          SX6    1R          REPLACE COLON WITH SPACE 
 UPS3     SA6    B7          STORE CHARACTER
          SB7    B7+B1       ADVANCE OUTPUT STRING POINTER
          ZR     B6,UPSX     IF NO MORE CHARACTERS TO UNPACK
          NZ     B5,UPS2     IF MORE CHARACTERS IN THIS WORD
          SA2    A2+1        READ NEXT WORD OF PACKED DATA
          EQ     UPS1        CONTINUE 
 UPW      SPACE  4,15 
**        UPW - UNPACK 60 BIT WORDS FROM 64 BIT WORDS.
* 
*         ENTRY  FILE POSITIONED AT NEXT 16 WORD BLOCK. 
* 
*         EXIT   UBUF FILLED WITH 60 BIT WORDS. 
*                (X1) = FILE STATUS.
* 
*         USES   X - 2, 3, 6, 7.
*                A - 3, 6.
*                B - 2. 
* 
*         MACROS READW. 
  
  
 UPW      SUBR               ENTRY/EXIT 
          READW  S,UBUF,16
          SB2    B0 
          MX2    4
          SA3    UBUF 
 UPW1     BX6    -X2*X3 
          SA3    A3+B1       GET SECOND PART OF WORD
          BX7    X2*X3
          BX6    X6+X7       FORM 60-BIT WORD 
          SB2    B2+4 
          LX6    B2 
          SA6    A3 
          ZR     X2,UPWX     IF BLOCK UNPACKED
          AX2    4
          EQ     UPW1        EXTRACT NEXT 60-BIT WORD 
 VOL      SPACE  4,10 
**        VOL - CHECK RECORD FOR TAPE VOLUME HEADER.
* 
*         ENTRY  FROM *DRT*.
* 
*         EXIT   TO *OTH* IF NOT FIRST RECORD.
*                TO ERR46 IF FIRST RECORD.
  
 VOL      BSS    0
          SA1    L.TDIR 
          NZ     X1,OTH      IF NOT FIRST RECORD
          EQ     ERR46       DISPLAY MESSAGE AND ABORT
 WBS      SPACE  4,15 
**        WBS - WRITE BLOCK TO FILE *S*.
* 
*         ENTRY  (BWCS) = NUMBER OF WORDS TO WRITE. 
* 
*         EXIT   (RWCS) = UPDATED.
* 
*         USES   A - 1, 5, 6. 
*                X - 1, 5, 6. 
* 
*         MACROS WRITEW.
  
  
 WBS      SUBR               ENTRY/EXIT 
          SA5    BWCS        WORD COUNT 
          WRITEW S,BUF,X5    WRITE BLOCK
          SA1    RWCS        UPDATE RECORD SIZE 
          IX6    X1+X5
          SA6    A1 
          EQ     WBSX        RETURN 
  
  
 BWCS     CON    0           BLOCK WORD COUNT 
 RWCS     CON    0           RECORD WORD COUNT
 WOF      SPACE  4,12 
**        WOF - WRITE LINE TO OUTPUT. 
* 
*         ENTRY  X1 = FWA OF LINE.
*                X2 = WORD COUNT IF LINE IS IN *S* FORMAT.
*                   = 0 IF LINE IS IN *C* FORMAT. 
*                CCCH = CARRIAGE CONTROL CHARACTER RIGHT JUSTIFIED. 
* 
*         SAVES  X - 0,5. 
*                B - NONE.
*                A - 0,5. 
* 
*         CALLS  CDD. 
* 
*         MACROS CLOCK, WRITEC, WRITES, WRITEW. 
  
  
 WOF      SUBR
          SA3    TF          CHECK FOR TERMINAL OUTPUT
          ZR     X3,WOF1     IF NOT TO TERMINAL 
          ZR     X2,WOF3     IF *C* FORMAT
          SB7    X2          CHARACTER COUNT
          SA2    OF 
          WRITES X2,X1,B7 
          SX6    1R 
          SA6    CCCH 
          EQ     WOFX        RETURN 
  
 WOF1     SA3    LC          ADVANCE LINE COUNT 
          SX6    X3+B1
          SA6    A3 
          SA4    PD          NUMBER OF LINES PER PAGE 
          IX7    X3-X4
          NG     X7,WOF2     IF BOTTOM OF PAGE NOT REACHED
          BX6    X1          SAVE REQUEST 
          LX7    X2 
          SA6    WOFA 
          SA7    A6+1 
          SA1    PN          ADVANCE PAGE NUMBER
          SX6    B1          RESET LINE COUNT 
          SX7    X1+B1
          SA6    A3 
          SA7    A1 
          RJ     CDD         CONVERT PAGE NUMBER
          MX1    -12
          LX6    4*6         STORE PAGE NUMBER
          BX6    X1*X6
          SA6    PAGE 
          CLOCK  TIMM 
          SA2    OF 
          WRITEW X2,TITL,TITLL
          WRITEW X2,SBTL,SBTLL
          SA1    WOFA        RESTORE REQUEST
          SA2    A1+1 
 WOF2     NZ     X2,WOF4     IF *S* FORMAT
          SA2    CCCH        CARRIAGE CONTROL CHARACTER 
          SA3    X1          READ FIRST WORD OF OUTPUT LINE 
          MX4    6
          BX6    -X4*X3 
          LX2    -6 
          BX6    X6+X2       MERGE CARRIAGE CONTROL CHARACTER 
          SA6    X1+         UPDATE OUTPUT LINE 
 WOF3     SA2    OF 
          WRITEC X2,X1
          JP     WOFX        EXIT 
  
 WOF4     SB7    X2 
          SA2    OF 
          WRITES X2,X1,B7 
          JP     WOFX        EXIT 
  
 WOFA     DATA   0,0
 XPH      SPACE  4,13 
**        XPH - SET XP DIRECTIVE HEADER.
* 
*         ENTRY  X5 = CURRENT CPU DIRECTORY WORD. 
*                A5 = ADDRESS OF CURRENT CPU DIRECTORY WORD.
*                A0 = ADDRESS OF WHERE TO STORE EXCHANGE PACKAGE. 
*                B7 = PRINT STRING ADDRESS. 
* 
*         EXIT   X6 = CPU ON/OFF FLAG.
*                A5 IS UPDATED TO RANDOM INDEX WORD.
* 
*         USES   ALL REGISTERS. 
* 
*         CALLS  PDF,RDW=,UPS.
  
  
 XPH      SUBR
          SA2    =21HHARDWARE REGISTERS - 
          SB6    21 
          RJ     UPS
          SX6    X5 
          SA5    A5+B1
          ZR     X6,XPH1     IF CPU IS ON 
          SA2    =3HOFF 
          SB6    3
          RJ     UPS
          JP     XPH2 
  
 XPH1     SA2    =2HON
          SB6    2
          RJ     UPS
          BX6    X5 
          SX3    B1 
          SA6    RI 
          RJ     PDF         POSITION TO EXCHANGE PACKAGE 
          READW  S,A0,20B 
 XPH2     SA1    A5-B1
          SX6    X1          SET CPU ON/OFF 
          JP     XPHX        EXIT 
          TITLE  TABLES.
 TLPP     SPACE  4,10 
**        TLPP - TABLE OF LOGICAL PP NUMBERS. 
* 
*         ONE WORD ENTRY FOR EACH PP CONTAINING THE CURRENT LOGICAL 
*         PP NUMBER FOR THAT PP.
  
  
 TLPP     CON    0           PP00 
          CON    1           PP01 
          CON    2           PP02 
          CON    3           PP03 
          CON    4           PP04 
          CON    5           PP05 
          CON    6           PP06 
          CON    7           PP07 
          CON    10B         PP10 
          CON    11B         PP11 
          CON    20B         PP20 
          CON    21B         PP21 
          CON    22B         PP22 
          CON    23B         PP23 
          CON    24B         PP24 
          CON    25B         PP25 
          CON    26B         PP26 
          CON    27B         PP27 
          CON    30B         PP30 
          CON    31B         PP31 
          SPACE  4
          USE    END         FORCE LITERALS 
          IDENT 
          SEG 
 END      BSS    0           END OF PROGRAM BINARY
          TITLE  BUFFERS AND TABLE SPACE. 
 BUFFERS  SPACE  4
**        MISCELLANEOUS WORKING BUFFERS.
  
  
 BUF      BSS    1002B       BINARY WORKING BUFFER
 BUFL     EQU    *-BUF
  
 USBB     BSS    0           STRING BUFFER
 CHAR     BSS    81          DIRECTIVE CARD STRING BUFFER 
  
 PBUF     BSS    10000B/5+1  PPU DATA BUFFER
 PBUFL    EQU    *-PBUF 
  
 IUBUFL1  EQU    0#1000*16/60+4  4K PRINT BUFFER LENGTH 
 IUBUFL2  EQU    0#2000*16/60+2  8K PRINT BUFFER LENGTH 
 IUBUFL3  EQU    0#10600*16/60+2
 IUBUFL4  EQU    0#4000*16/60+2  16K PRINT BUFFER LENGTH
  
          BSS    IUBUFL2-PBUFL
 MRBF     BSS    8
 PSAV     BSS    PPSA 
  
 CCCH     BSS    1           CARRIAGE CONTROL CHARACTER 
 PRBF     BSS    136         OUTPUT PRINT STRING BUFFER 
  
 SSBF     BSS    0           SUBSYSTEM LOW CORE WORKING BUFFER
 SSBFL    MAX    /BIO/BUFR+1,/MTX/TVSP+1,/REM/TXORG+1 
          BSS    SSBFL
  
 UBUF     BSS    16          UNPACK BUFFER
          SPACE  4
**        FILE BUFFERS AND TABLE SPACE. 
  
  
 IBUF     BSS    IBUFL       DIRECTIVE INPUT FILE BUFFER
 JBUF     BSS    JBUFL       ALTERNATE INPUT FILE BUFFER
 OBUF     BSS    OBUFL       LIST OUTPUT FILE BUFFER
 ABUF     BSS    ABUFL       ALTERNATE OUTPUT FILE BUFFER 
 FBUF     BSS    FBUFL       DUMP INPUT FILE BUFFER 
 SBUF     BSS    SBUFL       BINARY SCRATCH FILE BUFFER 
 BBUF     BSS    BBUFL       BML MAINTENANCE REGISTER FILE BUFFER 
  
 MEML     BSS    TMIN+10B    MANAGED TABLE SPACE
 MFL=     BSS    0           MINIMUM FL NEEDED FOR EXECUTION
  
          ORG    END
          SPACE  4
          END 
