*COMDECK COMNCES
 CPS      SPACE  4,10 
**        CPS - PRESET COMMON MAINTENANCE LOG ENTRIES.
* 
*         ENTRY - CHANNEL IS RESERVED.
* 
*         EXIT  - CHANNEL IS RESERVED.
*                 IF NOS, FIRST THREE WORDS OF BML (WORDS 2-4) SETUP. 
*                 IF NBE, FIRST WORD OF CERFILE (WORD 3) IS SET UP. 
*                 (A) < 0, IF CONTROLWARE LOAD NEEDED SET IN EST. 
  
  
 CPS      ENM    X
          LDK    P.ZERO 
          CRM    CERMSG,ONE 
 NOS      IF     DEF,NOS
          SBN    1
          CRM    CERB,ONE 
          SBN    1
          CRM    CERE,ONE 
          ERRNZ  CERMSGH-3*5       CODE DEPENDS ON VALUE
          LDK    T.MID
          CRD    D.T0              READ MAINFRAME ID WORD 
          LDD    D.T0+C.MID 
          STM    CERI              STORE MAINFRAME ID 
          LDC    300B 
          STM    CERY              INITIALIZE MESSAGE ID
          LDC    2100B
 NOS      ELSE
          ERRNZ  CERMSGH-1*5       CODE DEPENDS ON VALUE
          LDC    3500B
 NOS      ENDIF 
  
          ADD    ERROR
          STM    CERA              SET ERROR CODE IN MESSAGE
          LCN    0
          STM    CERD              SET HUI UNDEFINED
          LDK    P.PCOM 
          CRD    D.T0              READ PPCOM POINTER WORD
          LDD    D.PPIR            CALCULATE PP NUMBER
          SBD    D.T0+C.PCOM
          SHN    -3                DIVIDE BY 8 (LE.PCOM)
          IF     -DEF,NOS,1 
          ADN    1                 NOS/BE STARTS WITH PP01
  
 NDR      IF     DEF,NDR
          SHN    12 
          LMD    D.REQ1+C.CH
          SHN    -6 
          STM    CERC              SET PP NUMBER AND CHANNEL
          LDD    D.REQ1+C.ESTORD
          LPK    777B 
 NDR      ENDIF 
  
 NLD      IF     DEF,NLD
          SHN    6
          LMD    CHAN 
          STM    CERC              SET PP NUMBER AND CHANNEL
          LDD    ESTO 
 NLD      ENDIF 
  
 CVL      IF     DEF,CVL
          SHN    6
          LMD    CHAN 
          STM    CERC              SET PP NUMBER AND CHANNEL
          LDM    NADEST 
 CVL      ENDIF 
  
          STM    CERB              SET EST ORDINAL
          ZJN    CPS2              IF EST ORDINAL NOT DEFINED 
  
 NOS      IF     DEF,NOS
*         LDM    CERB 
          RJM    .EST              CONVERT EST ORDINAL TO EST ADDRESS 
          ADK    EQDE 
          CRD    D.T0              READ EST ENTRY 
          LDD    D.T0+C.ESTHUI
          STM    CERD              SET HUI
          LDD    D.T0+C.CWNL
          SHN    17-S.CWNL         (A) < 0, IFF CONTROLWARE LOAD NEEDED 
 NOS      ELSE
          LDK    P.EST
          CRD    D.T0              READ EST POINTER WORD
          LDD    D.T0+C.EST 
          ADM    CERB 
          CRD    D.T0              READ EST ENTRY 
          LDD    D.T0+C.ESTHUI
          STM    CERD              SET HUI
          LDD    D.T0+C.ESTAT 
          SHN    17-S.EDN          (A) < 0, IFF DOWN (LOAD NEEDED)
 NOS      ENDIF 
  
 CPS2     UJK    CPSX 
 GLN      SPACE  4,10 
**        GLN - GET LOCAL NAD ADDRESS.
* 
*         ENTRY - CHANNEL RESERVED. 
* 
*         EXIT  - (A) = LOCAL NAD ADDRESS (OR 0 IF ERROR).
  
  
 GLN      ENM    X
          LDK    FCGS              GET CONTROLWARE DETAILED STATUS
          RJM    FFN
          MJN    GLN1              IF ERROR 
          LDK    FCBM 
          RJM    FFN               SELECT BINARY
          NJN    GLN1              IF ERROR 
          RJM    WFP               WAIT FOR PRIMED
          MJN    GLN1              IF ERROR 
          LDK    FCI8 
          RJM    FAN               INPUT 8/12 
          PJN    GLN3              IF NO ERROR
 GLN1     LDN    0                 ADDRESS NOT AVAILABLE
 GLN2     UJN    GLNX              RETURN 
  
 GLN3     LDC    CERBUFF
          STM    INPA 
 GLNA     EQU    O=DSTLNA/2+1      NUMBER OF NAD WORDS TO READ
          LDK    GLNA*4            NUMBER OF BYTES TO READ
          RJM    INP               INPUT DETAILED STATUS TABLE
          MJN    GLN1              IF ERROR 
          SBK    GLNA*4 
          NJN    GLN1              IF INPUT ERROR 
          LDM    CERBUFF+O=DSTLNA  LOCAL NAD ADDRESS OFFSET 
          UJN    GLN2              RETURN 
 IML      SPACE  4,10 
**        IML - ISSUE MAINTENANCE LOG.
* 
*         IF NOS
*           WRITE BML ENTRY.
*         IF NOS/BE 
*           COPY CERFILE ENTRY TO PP MESSAGE BUFFER 
*           ZERO UNUSED WORDS 
*           ISSUE M.DFM FUNCTION. 
* 
*         ENTRY - (A) = LENGTH OF MESSAGE IN CM WORDS (6 OR LESS).
* 
*         EXIT  - NONE, MESSAGE ISSUED. 
  
  
 IML      ENM    X
  
 NOS      IF     DEF,NOS
          STD    D.T0+1            LENGTH OF MESSAGE IN WORDS 
          SHN    2                 WORDS*4
          RAD    D.T0+1            WORDS*5
          LDC    CERMSG+BMLN       SEND MESSAGE TO BML
          RJM    R.DFM             DAYFILE MESSAGE
 NOS      ELSE
          STD    D.Z7 
          LDK    P.ZERO            SET UP WORD OF ZERO
          CRD    D.T0 
          LDD    D.PPMES1 
          ADN    6
          STD    D.T5              LWA+1 OF MESSAGE 
          LDD    D.PPMES1 
          CWM    CERMSG,D.Z7       WRITE FIRST WORDS OF CERFILE 
 IMLA     EQU    *-1
 IML1     LMD    D.T5              COMPARE TO LWA+1 (A.XOR.B) 
          ZJN    IML2              IF END OF MESSAGE BUFFER REACHED 
          LMD    D.T5              RESTORE ADDRESS (A.XOR.B).XOR.B = A
          CWM    D.T0,ONE          ZERO NEXT WORD OF CERFILE
          UJN    IML1              TEST IF END REACHED YET
  
 IML2     LDD    D.T5              LWA+1 OF MESSAGE 
          STD    D.T2 
          LDN    20B
          STD    D.T1              SET CERFILE ENTRY FLAG 
          LDN    M.DFM
          RJM    R.MTR             LOG CERFILE MESSAGE
 NOS      ENDIF 
  
          UJK    IMLX              RETURN 
  
 CGSLN    EQU    4                 LENGTH OF GS TABLE NEEDED
 CPSLN    EQU    14B               LENGTH OF PS TABLE NEEDED
 CERBUFF  BSSZ   CPSLN
 CERMSG   SPACE  4,10 
**        CERMSG - NAD MAINTENANCE LOG MESSAGE FORMATS. 
  
 CERMSG   BSS    0
  
 NOS      IF     DEF,NOS
  
*         BML WORD 2. 
  
 CERY     VFD    12/0              MESSAGE ID 
 CERA     VFD    6/0,6/0           ERROR TYPE, ERROR CODE 
 CERC     VFD    6/0,6/0           PPU NUMBER, CHANNEL NUMBER 
          VFD    12/**             UNUSED 
          VFD    12/**             UNUSED 
          ERRNZ  *-CERY-5          TEST ASSUMPTION BML WORD 2 
  
*         BML WORD 3. 
  
 CERB     VFD    12/0              EST ORDINAL
 CERH     VFD    6/0,6/0           RETRY COUNT, FLAGS 
 S.CERHU  EQU    0                 UNRECOVERED ERROR IF SET 
 T.CERHU  BIT    S.CERHU           MASK FOR UNRECOVERED ERROR 
 M.CERHU  EQU    T.CERHU
 S.CERHV  EQU    1                 NAD MEMORY FIELDS VALID IF SET 
 T.CERHV  BIT    S.CERHV           MASK FOR NAD MEMORY FIELDS VALID 
 M.CERHV  EQU    T.CERHV
          VFD    12/**             UNUSED 
 CERI     VFD    12/0              MAINFRAME ID 
 CERD     VFD    12/0              HARDWARE UNIQUE IDENTIFIER 
          ERRNZ  *-CERB-5          TEST ASSUMPTION BML WORD 3 
  
*         BML WORD 4. 
  
 CERE     VFD    12/0              INITIAL FUNCTION 
 CERF     VFD    12/0              INITIAL CONTROLWARE STATUS 
 CERG     VFD    12/0              INITIAL HARDWARE STATUS
 CERL     VFD    8/0,4/0           LNAD ADDRESS, LTRUNK ENABLES 
 CERM     VFD    4/**,8/0          RNAD ADDRESS 
          ERRNZ  *-CERE-5          TEST ASSUMPTION BML WORD 4 
  
  
 CERMSGH  EQU    *-CERMSG          LENGTH OF COMMON HEADER
  
 NOS      ELSE
  
*         CERFILE WORD 3. 
  
 CERA     VFD    6/35B,6/0         RECORD TYPE, ERROR CODE
 CERB     VFD    12/0              EST ORDINAL
 CERC     VFD    6/0,6/0           PP NUMBER, CHANNEL 
          VFD    12/0              UNUSED 
 CERD     VFD    12/0              HARDWARE UNIQUE IDENTIFIER 
          ERRNZ  *-CERA-5          TEST ASSUMPTION CERFILE WORD 3 
  
  
 CERMSGH  EQU    *-CERMSG          LENGTH OF COMMON HEADER
  
 NOS      ENDIF 
  
 RPM      IF     -DEF,RPM 
  
 NOS      IF     DEF,NOS
  
*         NOS BML MESSAGE FORMATS - LOCAL NAD ERROR/PATH ERROR. 
  
*         BML WORD 5. 
  
 CERJ     VFD    12/0              FLAG FUNCTION HISTORY 1
          VFD    12/0              FLAG FUNCTION HISTORY 2
          VFD    12/0              FLAG FUNCTION HISTORY 3
          VFD    12/0              FLAG FUNCTION HISTORY 4
          VFD    12/**             UNUSED 
          ERRNZ  *-CERJ-5          TEST ASSUMPTION BML WORD 5 
  
 CERLR    EQU    *-CERMSG          LENGTH OF REMOTE NAD ERROR ENTRY 
  
*         BML WORD 6 (LOCAL NAD ERRORS ONLY). 
  
 CERN     VFD    12/0              DEVICE INTERFACE STATUS (0-11) 
 CERO     VFD    4/0,8/0           DISTAT (12-15), TCI STATUS I (0-7) 
 CERP     VFD    8/0,4/0           TCI STAT I (8-15), TCI STAT II (0-3) 
 CERQ     VFD    12/0              TCI STAT II (4-15) 
          VFD    12/**             UNUSED 
          ERRNZ  *-CERN-5          TEST ASSUMPTION BML WORD 6 
  
*         BML WORD 7 (LOCAL NAD ERRORS ONLY). 
  
 CERS     VFD    12/0              CONTROLWARE DEAD CODE (0-11) 
 CERT     VFD    4/0,8/**          CONTROLWARE DEAD CODE (12-15)
          VFD    12/**             UNUSED 
          VFD    12/**             UNUSED 
          VFD    12/**             UNUSED 
          ERRNZ  *-CERS-5          TEST ASSUMPTION BML WORD 7 
  
 CERLL    EQU    *-CERMSG          LENGTH OF LOCAL NAD ERROR ENTRY
  
 NOS      ELSE
  
*         NOS/BE CERFILE FORMATS - LOCAL NAD ERROR/PATH ERROR.
  
  
*         CERFILE WORD 4. 
  
 CERE     VFD    12/0              INITIAL FUNCTION 
 CERF     VFD    12/0              INITIAL CONTROLWARE STATUS 
 CERG     VFD    12/0              INITIAL HARDWARE STATUS
 CERH     VFD    6/0,6/0           RETRY COUNT, FLAGS 
 S.CERHU  EQU    0                 UNRECOVERED ERROR IF SET 
 T.CERHU  BIT    S.CERHU           MASK FOR UNRECOVERED ERROR 
 M.CERHU  EQU    T.CERHU
 S.CERHV  EQU    1                 NAD MEMORY FIELDS VALID IF SET 
 T.CERHV  BIT    S.CERHV           MASK FOR NAD MEMORY FIELDS VALID 
 M.CERHV  EQU    T.CERHV
 CERJ     VFD    12/0              FLAG FUNCTION HISTORY 1
          ERRNZ  *-CERE-5          TEST ASSUMPTION CERFILE WORD 4 
  
*         CERFILE WORD 5. 
  
          VFD    12/0              FLAG FUNCTION HISTORY 2
          VFD    12/0              FLAG FUNCTION HISTORY 3
          VFD    12/0              FLAG FUNCTION HISTORY 4
 CERL     VFD    8/0,4/0           LNAD ADDRESS, LTRUNK ENABLES 
 CERM     VFD    4/**,8/0          RNAD ADDRESS 
          ERRNZ  *-CERJ-1-5        TEST ASSUMPTION CERFILE WORD 5 
  
 CERLR    EQU    *-CERMSG          LENGTH OF REMOTE NAD ERROR ENTRY 
  
*         CERFILE WORD 6 (LOCAL NAD ERRORS ONLY). 
  
 CERN     VFD    12/0              DEVICE INTERFACE STATUS (0-11) 
 CERO     VFD    4/0,8/0           DISTAT (12-15), TCI STATUS I (0-7) 
 CERP     VFD    8/0,4/0           TCI STAT I (8-15), TCI STAT II (0-3) 
 CERQ     VFD    12/0              TCI STAT II (4-15) 
          VFD    12/**             UNUSED 
          ERRNZ  *-CERN-5          TEST ASSUMPTION CERFILE WORD 6 
  
*         CERFILE WORD 7 (LOCAL NAD ERRORS ONLY). 
  
 CERS     VFD    12/0              CONTROLWARE DEAD CODE (0-11) 
 CERT     VFD    4/0,8/**          CONTROLWARE DEAD CODE (12-15)
          VFD    12/**             UNUSED 
          VFD    12/**             UNUSED 
          VFD    12/**             UNUSED 
          ERRNZ  *-CERS-5          TEST ASSUMPTION CERFILE WORD 7 
  
 CERLL    EQU    *-CERMSG          LENGTH OF LOCAL NAD ERROR ENTRY
  
 NOS      ENDIF 
  
 RPM      ELSE
  
*         CONNECTION FAILED MAINTENANCE LOG, PART 1.
*         BML WORDS 5 - 7.
*         CERFILE WORDS 4 - 7.
  
 CFLA     VFD    16/0              WORD 0 OF PATH CONTROL TABLE 
          VFD    16/0                   1 
          VFD    16/0                   2 
          VFD    12/0                   3 (BITS 00 - 11)
  
          VFD    04/0              WORD 3 (BITS 11 - 15)
          VFD    16/0                   4 
          VFD    16/0                   5 
          VFD    16/0                   6 
          VFD    08/0                   7 (BITS 00 - 07)
  
          VFD    08/0              WORD 7 (BITS 08 - 15)
          VFD    16/0                   8 
          VFD    16/0                   9 
          VFD    16/0                  10 
          VFD    04/0                  11 (BITS 00 - 03)
  
          IF     DEF,NOS,1
 CFLAL    EQU    *-CERMSG          LENGTH OF PART 1 
  
 CFLB     EQU    *-CERMSGH         HEADER FOR PART 2 (OVERWRITES CFLA)
          ERRMI  CFLB-CFLA         CODE DEPENDS ON VALUE
  
          VFD    12/0              WORD 11 (BITS 04 -15)
          VFD    16/0                   12
          VFD    16/0                   13
          VFD    16/0                   14
  
          IF     -DEF,NOS,1 
 CFLAL    EQU    *-CERMSG          LENGTH OF PART 1 
  
          VFD    16/0              WORD 15
          VFD    16/0                   16
          VFD    16/0                   17
          VFD    12/0                   18 (BITS 00 - 11) 
  
          VFD    04/0              WORD 18 (BITS 12 - 15) 
          VFD    16/0                   19
          VFD    16/0                   20
          VFD    16/0                   21
          VFD    08/0                   22 (BITS 00 - 07) 
  
          VFD    08/0              WORD 22 (BITS 08 - 15) 
          VFD    52/**             UNUSED 
  
 CFLBL    EQU    *-CFLB            LENGTH OF PART 2 MESSAGE 
  
 RPM      ENDIF 
