  TITLE  '* *  A N A L Y Z E   C P - V  C 0 0 * *'
         SYSTEM   SIG7FDP
*************************************
*                                   *
*  ANALYZE OVERLAY #3               *
*                                   *
*************************************
         REF      STACK
         REF      MSG%OUT
         REF      TRANS,TRANSSZ,OBUF,SPACE2,PUSHMSG,PTR,COLPT
         REF      GETADDR
         REF      GETHEX
         REF      QFREE
         REF      SCANNER
         REF      USER
         REF      MB
         REF      DCTSIZ
         REF      MTB
         REF      CIT1,CIT2,CIT3,CIT4,CIT5
         REF      SPACES
         REF      TITEL
         REF      MSG
         REF      BUFOUT
         DEF      GIVE:HELP
         DEF      QFREELIST
         DEF      IODISPLAY
         REF      IOQ1,IOQ2,IOQ3,IOQ4,IOQ5,IOQ6,IOQ7,IOQ8,IOQ9
         REF      IOQ10,IOQ11,IOQ12,IOQ13,IOQ14,IOQ15
         SREF     IOQ16
         REF      DCT1,DCT2,DCT3,DCT4,DCT5,DCT6,DCT7,DCT8,DCT9
         REF      DCT10,DCT11,DCT12,DCT13,DCT14,DCT15,DCT16,DCT17
         REF      DCT18,DCT19,DCT20,DCT21,DCT22,DCT23,DCT24,DCT25
         CSECT    1
PP       EQU      %
         CSECT    0
DATA     EQU      %
         USECT    PP                GENERATE PROCEDURE HERE
                PAGE
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
         REF      IODISMSG
*
*
*
         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
*
*        PUT OUT A LISTING OF ANALYZE COMMANDS / DEFINITIONS
*
*
GIVE:HELP EQU     %
         PSW,R0   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,R0   STACK             GET EXIT ADDRS
         B        *R0
         REF      EHLP:TITLE
HEMSG1 TEXTC 'COMMAND',;
 '              OPTION                 SUB/OP    OUTPUT'
#R16     DATA     X'FFFF'
        PAGE                                                                 A00
*                                                                            A00
*        ROUTINE TO DISPLAY THE CIT, DCT, AND                                A00
*        IOQ TABLES                                                          A00
*                                                                            A00
IODISPLAY EQU     %                                                          A00
         LI,1     IODISMSG          SET UP TITLE                             A00
         BAL,0    TITEL             AND SHOVE IT OUT                         A00
         LI,14    DCT2                                                       A00
         BAL,0    GETADDR         PICK UP ALL CHANNELS                       A00
         LI,2     0                                                          A00
CITLOOKUP EQU     %                                                          A00
         LB,3     *15,2                                                      A00
         CI,3     20              AN ARBITRARY MAX FOR CHANNELS              A00
         BG       CITERR                                                     A00
         STB,3    CITTAB,3        FORM BYTE TABLE OF CHNL #S                 A00
         AI,2     1                                                          A00
         CI,2     DCTSIZ          SEARCH ALL THE DCT ENTRYS                  A00
         BLE      CITLOOKUP                                                  A00
         PAGE                                                                A00
*                                                                            A00
*        HAVE ALL CHANNELS IN TABLE, NOW PROCESS                             A00
*        EACH, FIRST THE DEVICES ON THAT CHANNEL                             A00
*        THEN THE QUEUES ON THAT CHANNEL                                     A00
*                                                                            A00
         LI,R1    2                 OPTIONAL FIELD NUMBER
         BAL,R0   GETHEX
         STW,R2   USER              SAVE NUM OR ZERO
CITSPIN  LB,3     CITTAB,2        GET FIRST CHANNEL                          A00
         BEZ      CITINCR         GET NEXT                                   A00
         LI,R1    SEPERATOR
         BAL,R0   MOVESEP
         LI,R1    30
         BAL,R0   SPACES
         LI,R1    CHNLMSG           CHANNEL NUMBER HEADER
         BAL,R0   MTB               OUT...
         LI,R1    SEPERATOR         NOW ANOTHER
         BAL,R0   MOVESEP
         LI,R1    CITHDR
         BAL,R0   MB
         LW,7     3               GET CIT INDEX INTO R7                      A00
         BAL,0    CITABLES        DISPLAY CIT TABLES                         A00
         BAL,0    BUFOUT                                                     A00
         LI,1     DCTHDR          PUT OUT DCT HEADER                         A00
         BAL,R0   MB
*                                                                            A00
*                                                                            A00
         LI,4     0                                                          A00
FINDEV   EQU      %                                                          A00
         LI,14    DCT2                                                       A00
         BAL,0    GETADDR                                                    A00
 LB,5 *15,4                                          A00         A00
         CW,5     3               IS THIS DEV ON THIS CHANNEL                A00
         BE       GOTDEV          YES                                        A00
FIND1    AI,4     1               INCREMENT DEVICE INDEX                     A00
         CI,4     DCTSIZ          GOT THEM ALL                               A00
         BLE      FINDEV          NO                                         A00
         B        FINDQ           YES, GET THE QUEUES                        A00
GOTDEV   EQU      %                                                          A00
         LW,7     4               GET DCT INDEX INTO R7                      A00
         BAL,0    DCTABLES                                                   A00
         BAL,0    BUFOUT                                                     A00
         B        FIND1                                                      A00
         PAGE                                                                A00
*                                                                            A00
*                                                                            A00
FINDQ    EQU      %                                                          A00
         LI,14    CIT1            HEAD OF ASSOCIATED Q                       A00
         BAL,0    GETADDR                                                    A00
         LB,7     *15,3           GET THE HEAD                               A00
         BEZ      CITINCR         FINISHED, GET NEXT CHNL                    A00
         LI,1     IOQHDR                                                     A00
         BAL,R0   MB                PUT IT OUT
         BAL,0    IOTABLES        GET THE I/O TABLES                         A00
         BAL,0    BUFOUT                                                     A00
FINDQ1   EQU      %                                                          A00
         LI,14    IOQ2            FLINK TO NEXT IN Q                         A00
         BAL,0    GETADDR                                                    A00
         LB,7     *15,7           GET FLINK                                  A00
         BEZ      CITINCR         FNISHED, GET NEXT CHNL                     A00
         BAL,0    IOTABLES                                                   A00
         BAL,0    BUFOUT                                                     A00
         B        FINDQ1                                                     A00
*                                                                            A00
*                                                                            A00
CITINCR  EQU      %                                                          A00
         MTW,0    USER              DID WE DO ONE PARTICULAR #
         BNEZ     SCANNER           YEP - WE'RE ALL DONE HERE
         AI,2     1                                                          A00
         CI,2     20              ARBITRARY MAX                              A00
         BG       QFREELIST       LIST THE AVAILABLE QUEUES                  A00
         B        CITSPIN                                                    A00
SEPERATOR TEXTC   '-'
         PAGE
*
*        MOVE A LINE SEPERATOR INTO PLACE
*
MOVESEP  EQU      %
         LCFI     3
         PSM,R0   STACK
         LI,R2    80
         BAL,R0   MSG
         BDR,R2   %-1
         BAL,R0   BUFOUT
         LCFI     3
         PLM,R0   STACK
         B        *R0
         PAGE                                                                A00
*                                                                            A00
*                                                                            A00
QFREELIST EQU      %                                                         A00
         LI,14    QFREE           GET THE HEAD OF THE FREE LIST              A00
         BAL,0    GETADDR                                                    A00
         LB,7     *15                                                        A00
         BEZ      SCANNER                                                    A00
         LI,1     FREEQS                                                     A00
         BAL,0    TITEL             TITLE LINE OUT                           A00
         LI,1     IOQHDR                                                     A00
         BAL,R0   MSG%OUT           PUT OUT THE TITLE
         LI,14    IOQ2                                                       A00
         BAL,0    GETADDR                                                    A00
         LI,1     X'100'                                                     A00
         B        QLOOP1                                                     A00
QLOOP    EQU      %                                                          A00
         LI,14    IOQ2                                                       A00
         BAL,0    GETADDR                                                    A00
         LB,7     *15,7                                                      A00
         BEZ      SCANNER                                                    A00
         BDR,1    QLOOP1                                                     A00
         B        SCANNER                                                    A00
QLOOP1   EQU      %                                                          A00
         BAL,0    IOTABLES                                                   A00
         BAL,0    BUFOUT                                                     A00
         B        QLOOP                                                      A00
*                                                                            A00
*                                                                            A00
        PAGE                                                                 A00
*                                                                            A00
*                                                                            A00
*        SUBROUTINES FOR THE ABOVE CODE                                      A00
*                                                                            A00
*                                                                            A00
*        INDEX TO THE TABLES REFERENCED CONTAINED IN R7                      A00
*                                                                            A00
CITABLES EQU      %                                                          A00
         LCI      8                                                          A00
         PSM,14   STACK                                                      A00
         LI,2     -3                                                         A00
CITLOOP  LW,14    CITS,2          GET CORRECT TABLE                          A00
         BAL,0    GETADDR                                                    A00
         EXU      GETCIT,2        GET VALUE OF TABLE                         A00
         BAL,0    TRANSSZ         AND TRANSLATE IT                           A00
         EXU      CITSPACES,2     INSERT CORRECT SPACING                     A00
         CI,1     0                                                          A00
         BE       %+2             UNLESS LAST ENTRY                          A00
         BAL,0    SPACES                                                     A00
         BIR,2    CITLOOP                                                    A00
         LCI      8                                                          A00
         PLM,14   STACK           RESTORE THE REGS                           A00
         B        *0              RETURN                                     A00
*                                                                            A00
*                                                                            A00
CITERR  EQU       %                                                          A00
        LI,1      CITERMSG                                                   A00
         B        PUSHMSG           MSG OUT/GO TO SCANNER                    A00
*                                                                            A00
CITERMSG TEXTC    'TOO MANY CHANNELS - DCT TABLES BAD'                       A00
CHNLMSG  TEXTC    ' I/O CHANNEL # '
CITHDR   TEXTC    'CIT3 CIT4 CIT5'                                           A00
         REF      FREEQS
DCTHDR   TEXTC    'DEVICE ADDR CX  OIDTS    BPWXKCSB QX AIO      TDV'        A00
IOQHDR TEXTC 'Q1 Q2 Q3 Q4 Q5 Q6       Q7 Q8       Q9   ',;
              'Q10 Q11 Q12      Q13           Q14 Q15'
        PAGE                                                                 A00
*                                                                            A00
*                                                                            A00
*        OUTPUT THE DCT TABLES                                               A00
*                                                                            A00
DCTABLES EQU      %                                                          A00
         LCI      8                                                          A00
         PSM,14   STACK                                                      A00
         LI,2     -8              GOING TO DISPLAY A SELECT 8                A00
DCTLOOP  EQU      %                                                          A00
         LW,14    DCTS,2          GET THE TABLE                              A00
         BAL,0    GETADDR                                                    A00
         EXU      GETDCT,2        AND ITS CONTENTS                           A00
DCTLOOP1 CI,R2    -8                IS IT THE DEVICE MSG
         BNE      NOMSG           NO, CONTINUE                               A00
         AND,4    =X'FF'                                                     A00
         OR,4     =X'40400700'                                               A00
         SCD,4    16                                                         A00
         STD,R4   DEV%MSG                                                    A00
         LI,R1    DEV%MSG                                                    A00
         BAL,0    MSG             PUT OUT THE MESSAGE                        A00
         B        DCTSP                                                      A00
         PAGE                                                                A00
*                                                                            A00
*                                                                            A00
NOMSG    EQU      %                                                          A00
         CI,2     -5                IS IT ONE TO BREAK INTO BITS?            A00
         BE       DCTBITS         YES                                        A00
         CI,2     -4                ANOTHER?                                 A00
         BE       DCTBITS         YES                                        A00
         LW,3     4                                                          A00
         CI,2     -2                                                         A00
         BNE      %+3                                                        A00
         BAL,0    TRANS                                                      A00
         B        DCTSP                                                      A00
         CI,2     -1                                                         A00
         BE       %+3                                                        A00
         BAL,0    TRANSSZ                                                    A00
         B        DCTSP                                                      A00
         BAL,0    TRANS                                                      A00
         BAL,R0   SPACE2            TWO SPACES PRIOR TO DBL WORD
         LW,3     5               YES                                        A00
         BAL,R0   SPACE2            COUPLE OF SPACES BEFORE OTHER DBLW
         BAL,0    TRANS                                                      A00
         B        DCTSP                                                      A00
         PAGE                                                                A00
*                                                                            A00
*                                                                            A00
DCTBITS  EQU      %                                                          A00
         LW,3     4                                                          A00
         BAL,0    BITPUT          BREAK IT UP                                A00
*                                                                            A00
*                                                                            A00
DCTSP    EQU      %                                                          A00
         EXU      DCTSPACES,2                                                A00
         CI,1     0                                                          A00
         BE       %+2                                                        A00
         BAL,0    SPACES                                                     A00
         BIR,2    DCTLOOP         GET ALL TABLES                             A00
         LCI      8                                                          A00
         PLM,14   STACK                                                      A00
         B        *0              RETURN                                     A00
*                                                                            A00
*                                                                            A00
*                                                                            A00
        PAGE                                                                 A00
IOTABLES EQU      %                                                          A00
         LCI      8                                                          A00
         PSM,14   STACK                                                      A00
         LI,2     -15               15 TABLES                                A00
         LI,R6    0                 SPACING INDEX
IOLOOP   EQU      %                                                          A00
         LW,14    IOQS,2                                                     A00
         BAL,0    GETADDR                                                    A00
         EXU      IOLOAD,2        GET THE CONTENTS                           A00
IOLOOP0  LW,R3    R4                MOVE VALUE
         BAL,0    TRANSSZ         TRANSLATE IT                               A00
         CI,R2    -3                DOING IOQ13
         BNE      IOLOOP1           NO
         LI,R1    64
         BAL,R0   SPACES            INSERT SPACES FOR OTHER HALF
         LW,R3    R5                OTHER HALF OF DOUBLE WORD
         BAL,R0   TRANSSZ
IOLOOP1 LB,R1     IOSPACES,R6       GET NEXT SPACING
         AI,R6    1                 BUMP FOR NEXT LOOP
         BAL,R0   SPACES
         BIR,2    IOLOOP          GET ALL TABLES                             A00
         LCI      8                                                          A00
         PLM,14   STACK                                                      A00
         B        *0              RETURN                                     A00
         PAGE                                                                A00
*                                                                            A00
*                                                                            A00
*        NUMBER TO BE BROKEN IS IN R3                                        A00
*                                                                            A00
BITPUT   EQU      %                                                          A00
         LCI      5                                                          A00
         PSM,1    STACK                                                      A00
         LI,1     8                                                          A00
         AWM,1    PTR                                                        A00
         AWM,1    COLPT                                                      A00
         LW,4     PTR                                                        A00
         AI,4     -1                                                         A00
BITLOOP  EQU      %                                                          A00
         LI,R2    'X'               ASSUME BIT O`IS ON
         CI,R3    1                 IS IT
         BANZ     %+2               YEP
         LI,R2    ' '               NOPE
         STB,2    OBUF,4                                                     A00
         AI,4     -1                                                         A00
         SLS,3    -1              GET NEXT BIT                               A00
         BDR,1    BITLOOP                                                    A00
         LCI      5                                                          A00
         PLM,1    STACK                                                      A00
         B        *0                                                         A00
         PAGE                                                                A00
*                                                                            A00
*                                                                            A00
*        DATA AREA FOR ABOVE ROUTINES                                        A00
*                                                                            A00
         USECT    DATA                                                       A00
         BOUND    8                                                          A00
DEV%MSG  DATA,8   0                                                          A00
CITTAB   EQU      %                                                          A00
         DO1      5                                                          A00
         DATA     0                                                          A00
*                                                                            A00
        USECT     PP                                                         A00
CITS     EQU      %+3                                                        A00
         DATA     CIT3                                                       A00
         DATA     CIT4                                                       A00
         DATA     CIT5                                                       A00
*                                                                            A00
GETCIT   EQU      %+3                                                        A00
         LB,3     *15,7                                                      A00
         LW,3     *15,7                                                      A00
         LB,3     *15,7                                                      A00
*                                                                            A00
SPACTAB  CNAME                                                               A00
         PROC                                                                A00
B        SET      NUM(AF)                                                    A00
A        SET      B                                                          A00
         DO       NUM(AF)                                                    A00
         LI,1     AF(A-B+1)                                                  A00
B        SET      B-1                                                        A00
         FIN                                                                 A00
        PEND                                                                 A00
*                                                                            A00
CITSPACES EQU     %+3                                                        A00
         SPACTAB  6,12,0                                                     A00
         PAGE                                                                A00
*                                                                            A00
DCTS     EQU      %+8                                                        A00
         DATA     DCT16                                                      A00
         DATA     DCT1                                                       A00
         DATA     DCT2                                                       A00
         DATA     DCT3                                                       A00
         DATA     DCT5                                                       A00
         DATA     DCT6                                                       A00
         DATA     DCT12                                                      A00
         DATA     DCT13                                                      A00
*                                                                            A00
GETDCT   EQU      %+8                                                        A00
         LD,4     *15,7                                                      A00
         B        DCTSCR            GET HALF WORD / SCRUB IF OFF
         DO1      4                                                          A00
         LB,4     *15,7                                                      A00
         LW,4     *15,7                                                      A00
         LD,4     *15,7                                                      A00
*                                                                            A00
DCTSCR   LH,R4    *R15,R7           GET THE HALF WORD
         AND,R4   #R16              SCRUB IT
         B        DCTLOOP1          REJOIN MAIN PATH
DCTSPACES  EQU    %+8                                                        A00
         SPACTAB  8,13,16,24,34,37,46,63                                     A00
         PAGE                                                                A00
*                                                                            A00
IOQS    EQU       %+15                                                       A00
         DATA     IOQ1                                                       A00
         DATA     IOQ2                                                       A00
         DATA     IOQ3                                                       A00
         DATA     IOQ4                                                       A00
         DATA     IOQ5                                                       A00
         DATA     IOQ6                                                       A00
         DATA     IOQ7                                                       A00
         DATA     IOQ8                                                       A00
         DATA     IOQ9                                                       A00
         DATA     IOQ10                                                      A00
         DATA     IOQ11                                                      A00
         DATA     IOQ12                                                      A00
         DATA     IOQ13                                                      A00
         DATA     IOQ14                                                      A00
         DATA     IOQ15                                                      A00
*                                                                            A00
         PAGE                                                                A00
IOLOAD   EQU      %+15                                                       A00
         DO1      5                                                          A00
         LB,4     *15,7                                                      A00
         LW,4     *15,7                                                      A00
         LB,4     *15,7                                                      A00
         LW,4     *15,7                                                      A00
         B        IOSCR             SCRUB VALUE
         DO1      2                                                          A00
         LB,4     *15,7                                                      A00
         LW,4     *15,7                                                      A00
         LD,4     *15,7                                                      A00
         DO1      2                                                          A00
         LB,4     *15,7                                                      A00
IOSCR    LH,R4    *R15,R7
         AND,R4   #R16
         B        IOLOOP0           REJOIN MAIN PATH
*                                                                            A00
IOSPACES DATA,1 3,6,9,12,15,24,27,36,41,45,49,58,72,76,79
*                                                                            A00
         END

