*DECK C$MSGC
          IDENT  C$MSGC 
          TITLE  C$MSGC - MESSAGE PROCESSOR CAPSULE 
          MACHINE   ANY,I 
          COMMENT   MESSAGE PROCESSING CAPSULE
          SST 
          B1=1
          ENTRY  C.MSGC 
          EXT    C.MSG
          EXT    C.MSLIN
          EXT    C.MSD00
 C.MSD00A EQU    C.MSD00+1
          EXT    C.MSSV 
          EXT    C.MSLNO
          EXT    C.MSX3 
          EXT    C.MSG8 
          EXT    C.MSFE 
          EXT    C.MSCV 
* 
**        NOTE:  THE LDSET LIST MUST BE KEPT UP TO DATE AS THE CAPSULE C
*         CHANGES..OR YOUR LOADS WONT WORK... 
* 
          LDSET  OMIT=C.MSG/C.MSLIN/C.MSD00/C.MSSV/C.MSLNO/C.MSX3 
          LDSET  OMIT=C.MSG8/C.MSFE/CMM.FRF/CMM.ALF/SYS=/LOD= 
          LDSET  OMIT=C.LIBNM/C.STACK/C.DEPTH/C.MASK/C.ZEROS/MSG= 
 C.MSGC   EJECT 
* 
* 
 C.MSGC   BSS    0           NOT ENTERED BY RJ... 
          SA2    =XC.MSX3 
          NG     X2,C.MSG2A  JUMP IF SUPPRESS -SOURCE LINE    - MESSAGE 
          SA5    C.MSG       LINE NO. MAY BE LOWER HALF OF -RJ C.MSG- WD
          LX5    30 
          SA1    X2          LINE NO. MAY BE IN ADDRESS SPECIFIED IN X6 
          NZ     X2,C.MSG2   JUMP IF SO 
          SA1    X5-1 
 C.MSG2   MX0    45 
          BX1    -X0*X1      LINE NUMBER IN OCTAL 
          RJ     C.MSCV      LEFT-JUSTIFY, ZERO-FILL LINE NO. FOR 
          SA7    C.MSLIN
          MX5    2           SET UP -D00- PARAMETER WORD 1 FOR -SOURCE
          SX1    #CBMSG1      LINE    - DAYFILE MESSAGE 
          LX1    36 
          IX7    X5+X1
          SA7    C.MSD00
 C.MSG2A  BSS    0
 NOS1     IFC    EQ,/"OSNAME"/SCOPE / 
          SA5    =XC.LIBNM   GET LIBRARY WHICH CONTAINED COBOL5 
          ZR     X5,C.MSG6   JP IF NO LIBRARY GIVEN - ASSUME NUCLEUS
          SA1    =0L"COB5LIB"      SYSTEM LIBRARY NAME
          IX1    X5-X1
          ZR     X1,C.MSG6   JP IF SYSTEM LOAD
          BX6    X5 
          SA6    LIBNAME
          SA5    TXTFWA 
          NZ     X5,C.MSG5   JUMP IF NOT 1ST TIME IN -C.MSG-
*     MESSAGE TEXT OVERLAY IS IN THE USER LIBRARY SPECIFIED IN CELL 
*     -C.LIBNM-.  OBTAIN ADDITIONAL CM SPACE TO LOAD THE OVERLAY, THEN
*     THE OVERLAY INTO THAT SPACE.
          SA2    CMSTXTL     LENGTH OF MESSAGE TEXT (ESTIMATED) 
 C.MSG3   BSS    0
          MX3    0
          RJ     =XCMM.ALF   ALLOCATE A BLOCK OF CORE 
          BX6    X1          FWA
          SA6    TXTFWA      SAVE FWA 
          SA2    LIBNAME     GET LIBRARY NAME 
          MX7    42 
          BX7    X2*X7       CLAER COMPLETION BIT 
          SA7    A2 
          SA2    A2+B1       SET UP FWA AND LWA IN CALL 
          MX5    19 
          BX2    X5*X2
          SA5    CMSTXTL
          IX5    X5+X1
          LX5    18 
          IX5    X5+X1
          IX6    X2+X5
          SA6    A2 
          LOADREQ  LIBNAME,RCL,DATA  LOAD MESSAGE TEXT
          SA1    LIBNAME+1
          LX1    59-36
          PL     X1,C.MSG4   JUMP IF NO FATAL LOADING ERRORS
          SA1    A1-B1       CHECK STATUS REPLY 
          MX0    42 
          BX1    -X0*X1 
          SX1    X1-11B 
          NZ     X1,C.MSG6   JP IF NOT FOUND - GET TEXT FROM SYSTEM 
          SA1    TXTFWA      GET FWA OF BLOCK 
          RJ     =XCMM.FRF   RELEASE BLOCK
          SA1    CMSTXTL     TRY AGAIN WITH 400B MORE WORDS 
          SX6    X1+400B
          SA6    A1 
          SX2    X6          LENGTH TO X2 
          EQ     C.MSG3 
 C.MSG4   BSS    0
          SA1    TXTFWA      FWA OF MESSAGE TEXT IN CORE
          SA2    CMSTXTL     LENGTH 
          LX1    36 
          LX2    18 
          IX6    X1+X2
          SA1    C.MSD00A    ALTER -D00- PARAMETER WORD 2 TO CONTAIN
          MX0    42           MESSAGE TEXT ADDRESS AND SIZE 
          BX1    -X0*X1 
          IX6    X6+X1
          SA6    A1 
 C.MSG5   MX0    1           SET BIT (55) IN -D00- PARAMETER WORD 1 OF
          SA1    C.MSFE       -JOB ABORTED- MESSAGE TO INDICATE TEXT IN 
          LX0    56           CALLER FIELD LENGTH 
          BX6    X1+X0
          SA6    A1 
          SA1    C.MSD00     SAME FOR -SOURCE LINE    - MESSAGE 
          BX6    X1+X0
          SA6    A1 
          SA1    C.MSSV      SAME FOR CALLER"S SPECIFIED MESSAGE
          BX6    X1+X0
          SA6    A1 
 NOS1     ENDIF 
 C.MSG6   BSS    0
 C.MSG7   SA1    C.MSSV 
          BX6    X1 
          SA6    C.MSLNO
          SA1    C.MSD00A 
          BX6    X1 
          SA6    A6+B1
          SYSTEM  D00,1,C.MSLNO  REQUESTED MESSAGE TO DAYFILE 
          SA1    C.MSX3 
          SX2    TXTFWA 
          NG     X1,C.MSG8   JP IF NO LINE MESSAGE WANTED 
          RJ     =XC.PRTRC
          SX2    TXTFWA      TEXT POINTER 
          EQ     =XC.MSG8    RETURN 
 LIBNAME  DATA   0           LOADER REQUEST PARAMETER AREA
          VFD    12/0,2/1,3/0,1/1,1/1,41/0       RELEASE
          DATA   0LCB5TEXT
 CB5TEXTL EQU    2000B       ESTIMATE OF CB5TEXT-S LENGTH 
 CMSTXTL  VFD    42/0,18/CB5TEXTL 
 TXTFWA   DATA   0
          END 
