************************************************************************
*        SUBROUTINE-ID:  PROCLINK
*        AUTHOR:  C DEPNER
*        MODIFIED: FEBRUARY 1979 - FOR FILESCAN BY
*                                   RUTH DROZIN &
*                                   JON ESCHINGER
*        DATE-WRITTEN:  SEPTEMBER, 1976
*        PURPOSE:  LINK TO ANOTHER PROCESSOR FROM FORTRAN
*                  OR COBOL PROGRAM
*        CALL SEQUENCE:
*                 CALL PROCLINK (WHICH,COMMAND)
************************************************************************
         SYSTEM   SIG7FDP
         SYSTEM   BPM
         REF      J:JIT
         DEF      PROCLINK
PROCLINK EQU      $
         LCFI     15              SAVE REGISTERS 0-14
         STM,R0   SAVEREG
         LW,R6    *R15            GET WHICH PROCESS
         AND,R6   7FFFF
         LW,R6    *R6             R6 POINTS TO WHICH ONE
         CW,R6    PROCLIM
         BG       ABORT
         CI,R6    0
         BLE      ABORT
         AI,R15   1
         LW,R10   *R15
         LB,R7    R10
         AI,R15   1
         AND,R10  7FFFF
         CI,R7    X'50'           IS IT BYTE ADDRESS
         BE       $+2
         SLS,R10  2               MAKE IT BYTE ADDRESS
         LW,R11   MBSCOM
         LW,R8    SPACE
         STW,R8   CMD
         LB,R8    J:JIT           IS IT ONLINE
         SLS,R8   -6
         CI,R8    0               0=BATCH
         BNE      BRANCH1
         AI,R11   1               DISPLACE 1 BYTE IF BYTE
BRANCH1  EQU      $
         AI,R11   1
FILLCALL EQU      $
         LW,R10   PROCLIST,R6     PUT PROCESSOR IN FPT
         LB,R4    R10
         SLD,R4   -4              R4 IS THE SIZE OF THE PROC ENTRY
         SLS,R5   -28             R5 IS THE EXSAP MASK
         OR,R5    FPT
         STW,R5   FPT             STORE EXSAP IN FPT
         LI,R5    CMD             STORE THE COMMAND ADDR IN FPT
         STW,R5   FPT+1,R4
         AND,R10  6F              CLEAN UP R10
         AI,R10   -1
         LW,R5    *R10,R4         MOVE PROCESSOR NAME TO FPT
         STW,R5   FPT,R4
         BDR,R4   $-2
         STW,R15  SAVE15
         CAL1,R8  FPT
         LW,R15   SAVE15
         LCFI     15
         LM,R0    SAVEREG         RESTORE REGISTERS
         B        *R15
ABORT    EQU      $
         M:PRINT  (MESS,ABEND)
         M:XXX
FPT      GEN,8,24 2,0
         RES      7
CMD      RES      21
ABEND    TEXTC    ' PROCESSOR # OUT OF RANGE - JOB ABORT BY PROCLINK'
7FFFF    DATA     X'7FFFF'
SAVE15   RES      1
6F       DATA     X'FFFFFF'
SPACE    TEXT     '    '
MBSCOM   GEN,8,24 80,BA(CMD)
SAVEREG  RES      15
PROCLIM  DATA     6               CHANGE THIS WHEN PROC ADDED
PROCLIST DATA     0
         GEN,4,4,24 4,14,WA(BATCH)
         GEN,4,4,24 3,14,WA(PCL)
         GEN,4,4,24 4,14,WA(EDIT)
         GEN,4,4,24 4,14,WA(SAVEJCL)
         GEN,4,4,24 4,14,WA(LDEV)
         GEN,4,4,24 5,14,WA(FILETEMP)
BATCH    TEXTC    'BATCH'
         TEXT     ':SYS    '
PCL      TEXTC    'PCL'
         TEXT     ':SYS    '
EDIT     TEXTC    'EDIT'
         TEXT     ':SYS    '
SAVEJCL  TEXTC    'SAVEJCL'
         TEXT     '17903   '
8
LDEV     TEXTC    'LDEV'
         TEXT     ':SYS    '
FILETEMP TEXTC    'FILETEMP'
         TEXT     ':SYS    '
R6       EQU      6
R15      EQU      15
R10      EQU      10
R7       EQU      7
R11      EQU      11
R8       EQU      8
R5       EQU      5
R0       EQU      0
R4       EQU      4
         END

