*M*      ANALZO3  THIRD OVERLAY OF THE ANLZ LOAD MODULE
*
*        POSITION IN TREE STRUCTURE IS NOT CRITICAL
*
 TITLE '*** A N A L Y Z E   O V E R L A Y   T H R E E ***'
         PAGE
*
*P*      THIS MODULE EXISTS SOLELY TO MOVE ROUTINES OUT OF THE
*P*      ROOT THAT DO NOT REQUIRE CONSTANT CORE RESIDENCY.
*P*      THE FOLLOWING ROUTINES MAY BE FOUND IN THIS MODULE;
*P*
*P*      ROUTINE                  DESCRIPTION
*P*      -------------            ----------------------------------
*P*
*P*      GIVE:HELP                PRINTS OUT THE HELP LISTING
*P*      BLKPRT                   BLOCK PRINTS THE ANLZ BANNER
*P*
*
         PAGE
*
*        ANALYZE INTERNAL REFERENCES
*
         REF      BLANK1          * PUT OUT A BLANK LINE ROUTINE
         REF      BUFOUT          * ROUTINE TO PRINT THE PRINT BUF
         REF      EHLP:TITLE      * TITLE LINE FOR HELP LISTING
         REF      JITBUF            * A 512 WORD BUFFER
         REF      M:LO            * PRINTING DCB
         REF      MSG             * ROUTINE TO MOVE A TEXTC MSG TO OBUF
         REF      MSG%OUT         * BLANK/MSG/BUFOUT/BLANK ROUTINE
         REF      STACK           * ANLZ'S TEMP STACK
         REF      TITEL           * NEW PAGE/TITLE LINE OUT ROUTINE
         PAGE
*
*        OVERLAY EXTERNAL DEFINITIONS
*
         DEF      BLKPRT            BLOCK PRINTER FOR BANNER
         DEF      GIVE:HELP         PRINTS LIST OF COMMANDS / OPTIONS
*
         PAGE
*
*        DECLARE DATA AND PROCEDURE NAMES FOR CONTROL SECTION
*        SECTION SWITCHING.
*
PP       CSECT    1                 GENERATE PROCEDURE SYMBOL
BLANKS   TEXT     '  '
DATA     CSECT    0                 GENERATE DATA SYMBOL
         USECT    PP                GENERATE PROCEDURE AGAIN
       SYSTEM  SIG7FDP
         PAGE
*
*        EQUATES TO DRIVE THE BLOCK PRINT CHARACTER BUILDER
*
BPERL    EQU      140               # OF BYTES PER LINE
ORIGIN   EQU      3                 ORIGINAL BYTE OFFSET
WIDTH    EQU      17                TOTAL WIDTH
ACTWID   EQU      13                CHAR WIDTH
HIGH     EQU      12                CHAR HEIGHT
LNTOLN   EQU      BPERL-ACTWID      # TO ADD TO NEXT LINE
         PAGE
*
*        DECLARE REGISTER CONVENTIONS
*
*
R0     EQU     0
R1     EQU     1
R2     EQU     2
R3     EQU     3
R4     EQU     4
R5     EQU     5
R6     EQU     6
R7     EQU     7
R8       EQU      8
R9       EQU      9
R10      EQU      10
R11      EQU      11
R12      EQU      12
R13      EQU      13
R14      EQU      14
R15      EQU      15
         PAGE
*
*        ANALYZE OPTIONS AND COMMAND STRUCTURE
*
HEMSG0 TEXTC 'ISYMS  ',;
 '              NONE                   NONE      INIT SYMBOL TABLE'
HEMSG2 TEXTC 'DISPLAY',;
 '              REGISTERS              NONE      MONITORS REGISTERS'
HEMSG3 TEXTC '       ',;
 '              NONE                   NONE      TRAP ADDRESS PAGE'
*
HEMSG4 TEXTC '       ',;
 '              PFILE                  NONE      PATCH FILE'
*
HEMSG5 TEXTC '       ',;
 '              AJITS                  NONE      ALL USER JITS'
*
HEMSG6 TEXTC '       ',;
 '              OJITS                  NONE      OUT OF CORE USERS'
*
HEMSG7 TEXTC '       ',;
 '              TRAPS                  NONE      TRAP LOCATIONS'
*
HEMSG8 TEXTC '       ',;
 '              USER                   (S),(#)   USER TABLES'
*
HEMSG9 TEXTC '       ',;
 '              ID                     (S),(#)   USER NAME/ACCOUNT'
*
HEMSG10 TEXTC '       ',;
 '              PP                     PAGE#     DUMP PHYSICAL PAGE'
HEMSGAA TEXTC '       ',;
 '              VP                     PAGE#     DUMP VIRTUAL PAGE'
HEMSG11 TEXTC '       ',;
 '              FQ                     NONE      FREE IOQ ENTRIES'
*
HEMSG12 TEXTC '       ',;
 '              PM                     NONE      PHYSICAL PAGE MATRIX'
*
HEMSG13 TEXTC '       ',;
 '              JIT                    #,M       SPECIFIED JIT'
*
HEMSG14 TEXTC '       ',;
 '              PROCESSOR              (S),(#)   PROCESSOR TABLES'
*
HEMSG15 TEXTC '       ',;
 '              COC                    (S),(#)   COC TABLES'
*
HEMSG16 TEXTC '       ',;
 '              SWAP                   NONE      SWAPPER TABLES'
*
HEMSG17 TEXTC '       ',;
 '              IOQ                    NONE      IOQ TABLES'
*
HEMSG18 TEXTC '       ',;
 '              PARTITION              (S),(#)   BATCH TABLES'
*
HEMSG19 TEXTC '       ',;
 '              SYMBIONTS              NONE      RBBAT RECOVERY FILE'
*
HEMSG20 TEXTC '       ',;
 '              IQ                     NONE      IOQ ENTRIES'
*
HEMSG21 TEXTC '       ',;
 '              DCTS                   NONE      DEVICE CONTROL TABLES'
*
HEMSG22 TEXTC '       ',;
 '              MR                     NONE      RESIDENT MONITOR'
*
HEMSG23 TEXTC '       ',;
 '              CITS                   NONE      CHANNEL INFO TABLES'
*
HEMSG24 TEXTC '       ',;
 '              CUN                    NONE      CURRENT USER DUMP'
*
HEMSG25 TEXTC '       ',;
 '              RCXT                   NONE      RECOVERY PROCEDURE'
*
HEMSG26 TEXTC '       ',;
 '              TSTACK                 (#)       CONTENTS OF THAT STACK'
*
HEMSG27 TEXTC '       ',;
 '              RAT                    NONE      RESOURCE TABLES'
*
HEMSG28 TEXTC '       ',;
 '              AVR                    NONE      VOLUMN TABLES'
*
HEMSG29 TEXTC '       ',;
 '              ST                     NONE      OUTPUT SYMBIONT TABLES'
*
HEMSG30 TEXTC '       ',;
 '              AT                     NONE      ALLYCATS TABLES'
*
HEMSG31 TEXTC '       ',;
 '              ADAM                   NONE      DUMP OUT ADAMS MEMORY'
*
HEMSG32 TEXTC '       ',;
 '              ELOG                   NONE      DUMP ERROR LOG'
*
HEMSG33 TEXTC 'RUN    ',;
 '              USER                   (#),(S)   PAGE CHAINS'
*
HEMSG34 TEXTC '       ',;
 '              PROCESSOR              (#),(S)   PAGE CHAINS'
*
HEMSG35 TEXTC '       ',;
 '              MONITOR                S,#       PAGE CHAINS'
*
HEMSG36 TEXTC '       ',;
 '              STATE                  (S),(#)   USER STATE CHAIN'
*
HEMSG37 TEXTC 'ALL    ',;
 '              NONE                   NONE      DO ALL OPTIONS'
*
HEMSG38 TEXTC 'SEARCH ',;
 '              VALUE,START,STOP       NONE      FIND VALUE IN AREA'
*
HEMSG39 TEXTC 'SMASK  ',;
 '              MASK                   MASK      SET THAT VALUE MASK'
*
HEMSG40 TEXTC 'LP     ',;
 '              1-12                   NONE      SEND LO TO LP'
*
HEMSG41 TEXTC 'UC     ',;
 '              1-4                    NONE      LO TO TERMINAL'
*
HEMSG42 TEXTC 'ROWS   ',;
 '              1-12                   NONE      SET DUMP COLUMNS'
*
HEMSG43 TEXTC 'CLOSE  ',;
 '              NONE                   NONE      CLOSE DUMP FILE'
*
HEMSG44 TEXTC 'MAP    ',;
 '              NONE                   USER#     USE THAT MAP'
*
HEMSG45 TEXTC 'UNMAP  ',;
 '              NONE                   NONE      USE REAL TRANSLATION'
*
HEMSG46 TEXTC 'DUMP   ',;
 '              START,STOP             NONE      DUMP SPECIFIED AREA'
*
HEMSG47 TEXTC 'END    ',;
 '              NONE                   NONE      EXIT TO CP-V'
*
HEMSG48 TEXTC 'INPUT  ',;
 '              LAST                   NONE      LAST DUMP FILE'
*
HEMSG49 TEXTC '       ',;
 '              0 THRU 7               NONE      SPECIFIED MONDUMP FILE'
*
HEMSG50 TEXTC '       ',;
 '              TAPE                   NONE      RECOVERY BUILT TAPE'
*
HEMSG51 TEXTC 'COMPARE',;
 '              START,STOP             NONE      COMPARE DUMP TO CORE'
*
HEMSG52 TEXTC 'MONITOR',;
 '              NONE                   NONE      DISPLAY MODE OFF'
*
HEMSG53 TEXTC '       ',;
 '              DISPLAY                NONE      SET DISPLAY CORE MODE'
*
HEMSG54 TEXTC 'PRINT  ',;
 '              NONE                   NONE      CLOSE PRINTER FILE'
*
HEMSG55 TEXTC 'SYMBOLS',;
 '              NAME.ACCOUNT.PASSWORD  NONE      BUILD SYMBOL MAP'
*
HEMSG56 TEXTC 'SYMBOLS',;
 '              NONE                   NONE      USE MONSTK FOR SYMBOL'
*
HEMSG57 TEXTC 'BF     ',;
 '              NAME.ACN#.PASSWORD     NONE      SYMBOLS FOR DELTA  '
*
HEMSG58 TEXTC 'DELTA  ',;
 '              NONE                   NONE      ASSOCIATE DELTA'
*
HEMSG59 TEXTC 'NO     ',;
 '              NONE                   NONE      DISENAGE DELTA'
*
HEMSG60 TEXTC '^      ',;
 '              NONE                   NONE      DISPLAY LAST CELL'
*
HEMSG61 TEXTC 'LINE FEED      ',;
         '      NONE                   NONE      DISPLAY NEXT CELL'       '
*
HEMSG62 TEXTC 'LOC,LOC        ',;
                    '      NONE                   NONE',;
                    '      DUMP SPECIFIED AREA'
*
HEMSG63 TEXTC 'LOC+LOC,LOC+LOC',;
                    '      NONE                   NONE',;
                    '      DUMP SPECIFIED AREA'
*
HEMSG64 TEXTC 'LOC+LOC,LOC-LOC',;
                    '      NONE                   NONE',;
                    '      DUMP SPECIFIED AREA'
*
HEMSG65 TEXTC 'LOC-LOC,LOC+LOC',;
                    '      NONE                   NONE',;
                    '      DUMP SPECIFIED AREA'
*
HEMSG66 TEXTC '*                    ',;
                  'NONE                   NONE',;
                  '      DUMP * CURRENT CELL'
HEMSG67 TEXTC 'LOC=VALUE',;
                  '            NONE                   NONE',;
                 '      CHANGE LOC TO VALUE'
HEMSG68 TEXTC 'HELP',;
                  '                 NONE                   NONE',;
                 '      LIST COMMANDS/OPTIONS'
         PAGE
*
*F*      NAME:    GIVE:HELP
*F*      PURPOSE: TO PRODUCE A FORMATTED LISTING OF ALL ANLZ
*F*               COMMANDS AND THEIR STRUCTURE UPON DEMAND.
*
*        COMMAND FORMAT.
*
*        HE(LP)
*
GIVE:HELP EQU     %
         PSW,R1   STACK             SAVE RETURN LINK
         LI,R1    EHLP:TITLE
         BAL,R0   TITEL
         LI,R1    HEMSG1
         BAL,R0   MSG%OUT
         LI,R7    69                # OF STRINGS
         LI,R1    HEMSG0            FIRST ONE
HELPOP   BAL,R0   MSG
         BAL,R0   BUFOUT
         LB,R6    *R1               GET BYTE CNT
         AI,R6    4                 ROUND UP
         SLS,R6   -2                # OF WORDS
         AW,R1    R6                NEXT ADDRS
         BDR,R7   HELPOP
         PLW,R1   STACK
         B        0,R1              RETURN TO CALLER
HEMSG1 TEXTC 'COMMAND',;
 '              OPTION                 SUB/OP    OUTPUT'
         PAGE
*
*F*      NAME:    BLKPRT
*F*      PURPOSE: TO PRODUCE BLOCK PRINTED CHARACTER STRINGS (ALA CCI)
*F*               SO THAT THE ANLZ PRODUCED CORE DUMP HAS A UNIQUE
*F*               BANNER ON THE LINE PRINTER.
*
BLKPRT   EQU      %                 BLOCK PRINT ROUTINE
         PSW,R1   STACK             SAVE THE RETURN LINK
         LI,R2    9
         BAL,R0   BLANK1
         BDR,R2   %-1
         LI,R4    8                 GOING TO PRINT SEVEN CHARS
         LI,R2    -512
         LW,R1    JITBUF            GET A BUFFER ADDRESS
         STW,R1   BLKBUF            AND SAVE IT
         AI,R1    512               BUMP TO CLEAR IT TO BLANKS
         LW,R3    BLANKS            GET SOME BLANKS
         STW,R3   *R1,R2            AND SET BUFFER UP TO ALL BLANKS
         BIR,R2   %-1
         LI,R3    ORIGIN            SET STARTING BYTE DISP
BLKPRT0  EQU      %
         LB,R8    R12               GET CHAR TO PRINT
         LI,R9    ' '               LOAD ALTERNATE CHARACTER
         LI,R2    TABSIZE
         CB,R8    TAB,R2            FIND PROPER CONVERSION TABLE
         BE       %+2
         BDR,R2   %-2
         LW,R14   R3                REMEMBER STARTING WORD
         LW,R2    TABADS,R2         GET ADDRESS OF TABLE
         LI,R7    1                 GET 1ST OFFSET
         LB,0     *2                GET # BYTES IN TABLE
         LI,R10   ACTWID            GET # CHARS PER LINE
BLKPRT1  LB,R15   *2,R7             GET # CHARS THE SAME
         BEZ      BLKPRT4           BLKPRT4  CHARACTER
BLKPRT2  EQU      %
         STB,R8   *BLKBUF,R3        STORE A CHARACTER
         AI,R3    1                 INCR DISP
         BDR,R10  BLKPRT3           LOOP FOR 1 LINE
         AI,R3    LNTOLN            BLKPRT4  TO NEXT LINE OF THIS CHAR
         LI,R10   ACTWID            RE-INIT COUNTER
BLKPRT3  BDR,R15  BLKPRT2           LOOP ON # CHARS THE SAME
BLKPRT4  XW,R8    R9                BLKPRT4  CHARACTERS
         AI,R7    1
         BDR,R0   BLKPRT1           GET NEXT CONTROL BYTE
         LW,R3    R14               RESET START
         AI,R3    WIDTH             SKIP TO NEXT CHAR
         SLD,R12  8                 SHIFT NEXT CHAR INTO PLACE
         BDR,R4   BLKPRT0           LOOP ON # CHARS TO PRINT
         LI,R8    HIGH              # LINES TO PRINT
         LW,R2    BLKBUF            GET THE BUFFER ADDRESS
BLKPRT5  EQU      %
         CAL1,1   WRITBUF           WRITE THE BUFFER
         AI,R2    BPERL/4           INCREMENT BUFFER
         BDR,R8   BLKPRT5
         PLW,R1   STACK             RETRIEVE THE LINK
         B        0,R1
         PAGE
*
*
WRITBUF  GEN,8,24 17,M:LO
         GEN,4,28 3,0
         PZE      *R2               BUFFER ADDRESS IN R2
         DATA     133
*
*
*        BLOCK PRINT DATA
* * * * * * *
A        DATA,1   21,0,1,11,1,15,9,4,9,4,9,30,9,4,9,4,9,4,9,4,9,2
         BOUND    4
B        DATA,1   19,12,1,15,9,4,9,4,9,14,1,12,1,2,9,4,9,4,9,27
         BOUND    4
C        DATA,1   23,0,1,11,1,15,9,4,11,2,11,2,11,2,11,2,11,2,11,2,9,15;
                  ,1,11
         BOUND    4
D        DATA,1   23,11,2,12,1,2,9,4,9,4,9,4,9,4,9,4,9,4,9,4,9,14,1,11
         BOUND    4
E        DATA,1   17,28,11,2,11,2,11,8,5,8,5,2,11,2,11,2,11,26
         BOUND    4
F        DATA,1   19,28,11,2,11,2,11,8,5,8,5,2,11,2,11,2,11,2,11,2
         BOUND    4
G        DATA,1   27,0,1,11,1,15,9,4,9,4,11,2,11,2,6,4,1,2,6,7,9,;
                  4,8,16,1,9,1,2
         BOUND    4
H        DATA,1   21,2,9,4,9,4,9,4,9,4,9,30,9,4,9,4,9,4,9,4,9,2
         BOUND    4
I        DATA,1   25,0,2,8,5,8,8,2,11,2,11,2,11,2,11,2,11,2,11,2,11,;
                  2,8,8,5,8
         BOUND    4
J        DATA,1   23,0,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,4,9,4,9,;
                  15,1,11
         BOUND    4
K        DATA,1   41,2,9,4,8,2,1,2,6,2,3,2,4,2,5,2,2,2,7,4,9,4,9,2,2,2,;
                  7,2,4,2,5,2,6,2,3,2,8,2,1,2,9,2
         BOUND    4
L        DATA,1   21,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,9,28
         BOUND    4
M        DATA,1   37,2,9,5,7,7,5,6,1,2,3,2,1,4,2,2,1,2,2,4,3,3,3,4,4,1,;
                  4,4,9,4,9,4,9,4,9,4,9,2
         BOUND    4
N        DATA,1   37,2,9,5,8,6,7,4,1,2,6,4,2,2,5,4,3,2,4,4,4,2,3,4,5,2,;
                  2,4,6,2,1,4,7,6,8,5,9,2
         BOUND    4
O        DATA,1   23,0,1,11,1,15,9,4,9,4,9,4,9,4,9,4,9,4,9,4,9,15,1,11
         BOUND    4
P        DATA,1   19,12,1,15,9,4,9,4,9,27,1,2,11,2,11,2,11,2,11,2
         BOUND    4
Q        DATA,1   27,0,1,11,1,15,9,4,9,4,9,4,9,4,9,4,9,4,4,2,3,4,5,2,2,;
                  15,1,11
         BOUND    4
R        DATA,1   29,12,1,15,9,4,9,4,9,27,1,2,6,2,3,2,7,2,2,2,8,2,1,2,8;
                  ,2,1,2,8,2
         BOUND    4
S        DATA,1   21,0,1,11,1,15,9,4,11,2,11,12,2,12,11,2,11,4,9,15,1,11
         BOUND    4
T        DATA,1   23,12,1,12,6,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,;
                  2,11,2
         BOUND    4
U        DATA,1   23,2,9,4,9,4,9,4,9,4,9,4,9,4,9,4,9,4,9,4,9,15,1,11
         BOUND    4
V        DATA,1   41,2,9,4,9,2,1,2,7,2,2,2,7,2,3,2,5,2,4,2,5,2,5,2,3,2,;
                  6,2,3,2,7,2,1,2,8,2,1,2,9,3,11,1
         BOUND    4
W        DATA,1   35,2,9,4,9,4,9,4,9,4,9,4,9,4,3,3,3,4,2,2,1,2,2,4,1,2,;
                3,2,1,6,5,7,7,5,9,2
         BOUND    4
X        DATA,1   43,2,9,2,1,2,7,2,3,2,5,2,5,2,3,2,7,2,1,2,9,3,10,3,9,;
                  2,1,2,7,2,3,2,5,2,5,2,3,2,7,2,1,2,9,2
         BOUND    4
Y        DATA,1   31,2,8,2,2,2,6,2,4,2,4,2,6,2,2,2,8,4,10,2,11,2,11,2,;
                  11,2,11,2,11,2,11,2
         BOUND    4
Z        DATA,1   23,25,1,2,7,2,10,2,10,2,10,2,10,2,10,2,10,2,10,2,7,2,;
                  1,25
         BOUND    4
#0       DATA,1   31,0,3,7,5,9,3,2,7,2,1,2,9,4,9,4,9,4,9,4,9,4,9,2,1,2,;
                  7,2,3,9,5,7
         BOUND    4
#1       DATA,1   25,0,5,2,10,3,9,4,11,2,11,2,11,2,11,2,11,2,11,2,11,2,;
                  11,2,11,2
         BOUND    4
#2       DATA,1   23,0,1,11,1,15,9,2,11,2,11,2,10,2,9,2,9,2,9,2,9,2,9,26
         BOUND    4
#3       DATA,1   23,0,1,11,1,15,9,2,11,2,11,2,8,4,9,4,12,2,11,2,11,15,;
                  1,11
         BOUND    4
#4       DATA,1   31,0,7,2,10,3,9,4,8,2,1,2,7,2,2,2,6,2,3,2,5,2,4,2,4,;
                  26,7,2,11,2,11,2
         BOUND    4
#5       DATA,1   17,28,11,2,11,2,11,12,1,13,11,2,11,4,9,15,1,11
         BOUND    4
#6       DATA,1   19,0,1,27,11,2,11,2,11,12,1,15,9,4,9,4,9,15,1,11
         BOUND    4
#7       DATA,1   23,25,1,2,7,2,10,2,10,2,10,2,11,2,10,2,11,2,10,2,11,2;
                  ,11,2
         BOUND    4
#8       DATA,1   25,0,1,11,1,15,9,4,9,4,9,2,1,11,2,11,1,2,9,4,9,4,9,15;
                  ,1,11
         BOUND    4
#9       DATA,1   19,0,1,11,1,15,9,4,9,4,9,15,1,12,11,2,11,2,11,27
         BOUND    4
COLON    DATA,1   13,0,18,3,10,3,10,3,62,3,10,3,10,3
         BOUND    4
MONEY    DATA,1   45,0,1,11,1,15,2,2,1,2,2,4,2,2,1,2,4,2,2,2,1,2,4,12,2;
                 ,12,4,2,1,2,2,2,4,2,1,2,2,4,2,2,1,2,2,15,1,11
         BOUND    4
EQUAL    DATA,1    5,0,39,26,26,26
         BOUND    4
ULINE    DATA,1   3,0,130,26
         BOUND    4
ASTERISK DATA,1   41,2,9,2,1,2,7,2,3,2,5,2,5,2,3,2,7,2,1,2,4,26,4,2,1,;
                  2,7,2,3,2,5,2,5,2,3,2,7,2,1,2,9,2
         BOUND    4
NUMBER   DATA,1   33,0,9,2,1,1,8,2,1,2,7,2,1,2,1,26,4,2,1,2,7,2,1,2,5,;
                  28,1,2,8,1,1,2,10,2
         BOUND    4
AT       DATA,1   44,0,3,7,5,9,3,2,7,2,1,2,2,5,2,4,1,7,1,4,1,2,3,2,1,4,;
                  1,2,3,4,1,2,1,8,2,2,2,6,4,2,12,9,5,7,3
         BOUND    4
DASH     DATA,1   3,0,65,26
         BOUND    4
TAB      TEXT     'ZYXWVUTSRQPONMLKJHGFECBA9876543210:%ID= ž*#@-'
TABSIZE  EQU      (4*(ABSVAL(%)-ABSVAL(TAB)))-4
TABADS   DATA     Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,H,G,F,E,C,B,A,#9,#8
         DATA     #7,#6,#5,#4,#3,#2,#1,#0,COLON,MONEY,I,D,EQUAL,BLKS
         DATA     ULINE,ASTERISK,NUMBER,AT,DASH
BLKS     DATA     0
         PAGE
*
*        BLOCK PRINT BUFFER
*
         USECT    DATA
BLKBUF   DATA     0                 POINTS TO SAME ADDRESS AS 'JITBUF'
         USECT    PP                RETURN TO PROCEDURE FOR LITERALS
         END

