Re: TXTLIBs on CMS (or SYS1.FORTLIB on MVS)

"Bernd Oppolzer berndoppolzer-/[email protected] [H390-MVS]" <[email protected]> Sun, 4 Feb 2018 11:06:38 +0100
Newsgroups gmane.comp.emulators.hercules390.mvs,gmane.comp.emulators.hercules390.vm
Message-ID <[email protected]>
--------------2C6B8F859D4D83827E451D48
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Thank you Gerhard,

just for your info: the Pascal program that does the unload of the
TEXT member from the CMS TXTLIB looks like this:


program MODTXTL ( TXTLIB , TXTOUT ) ;

var TXTLIB : TEXT ;
     TXTOUT : TEXT ;
     LINE : CHAR ( 80 ) ;
     FLAG : CHAR ( 3 ) ;

begin (* HAUPTPROGRAMM *)
   RESET ( TXTLIB ) ;
   REWRITE ( TXTOUT ) ;
   while not EOF ( TXTLIB ) do
     begin
       READLN ( TXTLIB , LINE ) ;

   //*************************************
   // not yet possible on the mainframe:
   // flag := substr (line, 2, 3);
   //*************************************

       MEMCPY ( ADDR ( FLAG ) , ADDR ( LINE [ 2 ] ) , 3 ) ;
       if ( FLAG = 'ESD' ) or
          ( FLAG = 'RLD' ) or
          ( FLAG = 'TXT' ) or
          ( FLAG = 'END' ) then
         WRITELN ( TXTOUT , LINE )
     end (* while *)
end (* HAUPTPROGRAMM *) .


very simple; the SUBSTR notation will work in the next release (Pascal 
strings
are available in the non-mainframe versions starting from the 02.2018 
release).

The necessary FILEDEF command specifying the desired member name is
done in an EXEC called HOLTEXT:


type holtext exec

FILEDEF * CLEAR
FILEDEF TXTLIB DISK &1 TXTLIB (MEMBER &2
FILEDEF TXTOUT DISK &2 TEXT (RECFM F LRECL 80
MODTXTL

Ready; T=0.01/0.01 12:03:56


it is called like this:

HOLTEXT FORTLIB DCOS

and then DCOS TEXT is extracted from FORTLIB TXTLIB.

Kind regards

Bernd




Am 04.02.2018 um 10:30 schrieb Gerhard Postpischil [email protected] 
[H390-MVS]:
>
> On 2/4/2018 3:57 AM, Bernd Oppolzer berndoppolzer-/[email protected] [H390-MVS]
> wrote:
> > b) I tried to do it myself using a Pascal program, simply by omitting
> > all records
> > from the TXTLIB, which don't have ESD, RLD, TXT or END in columns 2 
> to 4.
> I'm glad you solved your problem, but for the record there is an IBM
> type 3 program called DELINK0 that takes a load module and produces an
> object deck for a specific CSECT from it. It runs on anything from PCP
> to OS/390 for pre-binder modules. It probaby won't work under CMS though.
>
> Gerhard Postpischil
> Bradford, VT
>
> ---
> This email has been checked for viruses by AVG.
> http://www.avg.com
>
> 


--------------2C6B8F859D4D83827E451D48
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>






 
<body style="background-color: #fff;">
<span style="display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
  <div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id="ygrp-text" >
      
      
      <p>
  
  
    <p>Thank you Gerhard, <br>
    </p>
    <p>just for your info: the Pascal program that does the unload of
      the <br>
      TEXT member from the CMS TXTLIB looks like this: <br>
    </p>
    <p><br>
    </p>
    <p><tt>program MODTXTL ( TXTLIB , TXTOUT ) ;</tt><tt><br>
      </tt><tt><br>
      </tt><tt>var TXTLIB : TEXT ;</tt><tt><br>
      </tt><tt>    TXTOUT : TEXT ;</tt><tt><br>
      </tt><tt>    LINE : CHAR ( 80 ) ;</tt><tt><br>
      </tt><tt>    FLAG : CHAR ( 3 ) ;</tt><tt><br>
      </tt><tt><br>
      </tt><tt>begin (* HAUPTPROGRAMM *)</tt><tt><br>
      </tt><tt>  RESET ( TXTLIB ) ;</tt><tt><br>
      </tt><tt>  REWRITE ( TXTOUT ) ;</tt><tt><br>
      </tt><tt>  while not EOF ( TXTLIB ) do</tt><tt><br>
      </tt><tt>    begin</tt><tt><br>
      </tt><tt>      READLN ( TXTLIB , LINE ) ;</tt><tt><br>
      </tt><tt><br>
      </tt><tt>  //*************************************</tt><tt><br>
      </tt><tt>  // not yet possible on the mainframe:</tt><tt><br>
      </tt><tt>  // flag := substr (line, 2, 3);</tt><tt><br>
      </tt><tt>  //*************************************</tt><tt><br>
      </tt><tt><br>
      </tt><tt>      MEMCPY ( ADDR ( FLAG ) , ADDR ( LINE [ 2 ] ) , 3 )
        ;</tt><tt><br>
      </tt><tt>      if ( FLAG = 'ESD' ) or</tt><tt><br>
      </tt><tt>         ( FLAG = 'RLD' ) or</tt><tt><br>
      </tt><tt>         ( FLAG = 'TXT' ) or</tt><tt><br>
      </tt><tt>         ( FLAG = 'END' ) then</tt><tt><br>
      </tt><tt>        WRITELN ( TXTOUT , LINE )</tt><tt><br>
      </tt><tt>    end (* while *)</tt><tt><br>
      </tt><tt>end (* HAUPTPROGRAMM *) .</tt><tt><br>
      </tt></p>
    <p><br>
    </p>
    <p>very simple; the SUBSTR notation will work in the next release
      (Pascal strings<br>
      are available in the non-mainframe versions starting from the
      02.2018 release). <br>
    </p>
    <p>The necessary FILEDEF command specifying the desired member name
      is <br>
      done in an EXEC called HOLTEXT: <br>
    </p>
    <p><br>
    </p>
    <p><tt>type holtext exec</tt><tt><br>
      </tt><tt><br>
      </tt><tt>FILEDEF * CLEAR</tt><tt><br>
      </tt><tt>FILEDEF TXTLIB DISK &amp;1 TXTLIB (MEMBER &amp;2</tt><tt><br>
      </tt><tt>FILEDEF TXTOUT DISK &amp;2 TEXT (RECFM F LRECL 80</tt><tt><br>
      </tt><tt>MODTXTL</tt><tt><br>
      </tt><tt><br>
      </tt><tt>Ready; T=0.01/0.01 12:03:56</tt><tt><br>
      </tt></p>
    <p><br>
    </p>
    <p>it is called like this: <br>
    </p>
    <p>HOLTEXT FORTLIB DCOS <br>
    </p>
    <p>and then DCOS TEXT is extracted from FORTLIB TXTLIB. <br>
    </p>
    <p>Kind regards</p>
    <p>Bernd <br>
    </p>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 04.02.2018 um 10:30 schrieb Gerhard
      Postpischil <a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a> [H390-MVS]:<br>
    </div>
    <blockquote type="cite" cite="mid:80e9e17d-42be-4b76-75d3-1e3189d43959-xwVYE8SWAR3R7s880joybQ@public.gmane.org"> <span> </span>
      
          <div id="ygrp-text">
            <p>On 2/4/2018 3:57 AM, Bernd Oppolzer
              <a class="moz-txt-link-abbreviated" href="mailto:berndoppolzer-/[email protected]">berndoppolzer-/[email protected]</a> [H390-MVS] <br>
              wrote:<br>
              &gt; b) I tried to do it myself using a Pascal program,
              simply by omitting<br>
              &gt; all records<br>
              &gt; from the TXTLIB, which don't have ESD, RLD, TXT or
              END in columns 2 to 4.<br>
              I'm glad you solved your problem, but for the record there
              is an IBM <br>
              type 3 program called DELINK0 that takes a load module and
              produces an <br>
              object deck for a specific CSECT from it. It runs on
              anything from PCP <br>
              to OS/390 for pre-binder modules. It probaby won't work
              under CMS though.<br>
              <br>
              Gerhard Postpischil<br>
              Bradford, VT<br>
              <br>
              ---<br>
              This email has been checked for viruses by AVG.<br>
              <a class="moz-txt-link-freetext" href="http://www.avg.com">http://www.avg.com</a><br>
              <br>
            </p>
          </div>
          
      
      <!-- end group email -->
    </blockquote>
    <br>
  

</p>

    </div>
     

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <div style="color: #fff; height: 0;">__._,_.___</div>

          
  
 

    
    <div style="clear:both"> </div>

    <div id="fromDMARC" style="margin-top: 10px;">
        <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
        Posted by: Bernd Oppolzer &lt;berndoppolzer-/[email protected]&gt;        <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
     </div>
    <div style="clear:both"> </div>

    <table cellspacing=4px style="margin-top: 10px; margin-bottom: 10px; color: #2D50FD;">
      <tbody>
        <tr>
          <td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px;"  >
                          <a style="text-decoration: none; color: #2D50FD" href="https://groups.yahoo.com/neo/groups/H390-MVS/conversations/messages/17785;_ylc=X3oDMTJxbTBxNzVoBF9TAzk3MzU5NzE0BGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BG1zZ0lkAzE3Nzg1BHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTUxNzczODgwOA--?act=reply&messageNum=17785">Reply via web post</a>
                      </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
            <a href="mailto:berndoppolzer-/[email protected]?subject=Re%3A%20%5BH390-MVS%5D%20TXTLIBs%20on%20CMS%20%28or%20SYS1%2EFORTLIB%20on%20MVS%29" style="text-decoration: none; color: #2D50FD;">
               Reply to sender            </a>
          </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;">
            <a href="mailto:[email protected]?subject=Re%3A%20%5BH390-MVS%5D%20TXTLIBs%20on%20CMS%20%28or%20SYS1%2EFORTLIB%20on%20MVS%29" style="text-decoration: none; color: #2D50FD">
              Reply to group            </a>
          </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
            <a href="https://groups.yahoo.com/neo/groups/H390-MVS/conversations/newtopic;_ylc=X3oDMTJlMnQ4NXFjBF9TAzk3MzU5NzE0BGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTUxNzczODgwOA--" style="text-decoration: none; color: #2D50FD">Start a New Topic</a>
          </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;color: #2D50FD;" >
                            <a href="https://groups.yahoo.com/neo/groups/H390-MVS/conversations/topics/17780;_ylc=X3oDMTM2azU2aThyBF9TAzk3MzU5NzE0BGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BG1zZ0lkAzE3Nzg1BHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTUxNzczODgwOAR0cGNJZAMxNzc4MA--" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a>
                (6)
                      </td>
        </tr>
      </tbody>
    </table>

        
<div id="megaphoneModule">
            <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
        <div>
	     <div class="stream" style="margin-bottom:10px;">
        <div style="background-color:white;">
            <div class="sn-img" style="display:inline;"><img name="tn_file" style="padding:0px 10px;vertical-align:top;margin-top:5px;" src="https://s.yimg.com/ru/static/images/yg/img/megaphone/1464031581_phpFA8bON" height="82" width="82"></div>
            <div class="mod-txt" style="display:inline-block;">
                <a rel="nofollow" name="sub_url" target="_blank" href="https://yho.com/1wwmgg" style="color:#0000FF;display:block;margin-left:5px;text-decoration:none;"><span style="font-size:15px;">Have you tried the highest rated email app?</span></a>
                <div style="max-width:530px;padding:2px 5px;">With 4.5 stars in iTunes, the Yahoo Mail app is the highest rated email app on the market. What are you waiting for? Now you can access all your inboxes (Gmail, Outlook, AOL and more) in one place. Never delete an email again with 1000GB of free cloud storage.</div>
            </div>
        </div>
    </div>        </div>  
     
    <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>

<!------- Start Nav Bar ------>




 

<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

    <span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://groups.yahoo.com/neo/groups/H390-MVS/info;_ylc=X3oDMTJlZm01ZnJvBF9TAzk3MzU5NzE0BGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTUxNzczODgwOA--" style="text-decoration: none;">Visit Your Group</a></span>

     <ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
                                                    </ul>
  </div>


<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
  <a href="https://groups.yahoo.com/neo;_ylc=X3oDMTJka2k2NXN2BF9TAzk3NDc2NTkwBGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNTE3NzM4ODA4" style="float: left;"><img src="http://l.yimg.com/ru/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
  <div style="color: #747575; float: right;"> &bull; <a href="https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> &bull; <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> &bull; <a href="https://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</a> </div>
</div>
<br>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

 
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id="ygrp-reco">
     </div>
<!-- End Recommendations -->



  </div>   <!-- |**|end egp html banner|**| -->

  <div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>

  <img src="http://geo.yahoo.com/serv?s=97359714/grpId=2587966/grpspId=1705309548/msgId=17785/stime=1517738808" width="1" height="1"> <br>

<img src="http://y.analytics.yahoo.com/fpc.pl?ywarid=515FB27823A7407E&a=10001310322279&js=no&resp=img&cf12=CP" width="1" height="1"> 

<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
  <style type="text/css">
  <!--
  #ygrp-mkp {
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 10px 0;
  padding: 0 10px;
}

#ygrp-mkp hr {
  border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
  color: #628c2a;
  font-size: 85%;
  font-weight: 700;
  line-height: 122%;
  margin: 10px 0;
}

#ygrp-mkp #ads {
  margin-bottom: 10px;
}

#ygrp-mkp .ad {
  padding: 0 0;
}

#ygrp-mkp .ad p {
  margin: 0;
}

#ygrp-mkp .ad a {
  color: #0000ff;
  text-decoration: none;
}
  #ygrp-sponsor #ygrp-lc {
  font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
  margin: 10px 0px;
  font-weight: 700;
  font-size: 78%;
  line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
  margin-bottom: 10px;
  padding: 0 0;
}

  #actions {
    font-family: Verdana;
    font-size: 11px;
    padding: 10px 0;
  }

  #activity {
    background-color: #e0ecee;
    float: left;
    font-family: Verdana;
    font-size: 10px;
    padding: 10px;
  }

  #activity span {
    font-weight: 700;
  }

  #activity span:first-child {
    text-transform: uppercase;
  }

  #activity span a {
    color: #5085b6;
    text-decoration: none;
  }

  #activity span span {
    color: #ff7900;
  }

  #activity span .underline {
    text-decoration: underline;
  }

  .attach {
    clear: both;
    display: table;
    font-family: Arial;
    font-size: 12px;
    padding: 10px 0;
    width: 400px;
  }

  .attach div a {
    text-decoration: none;
  }

  .attach img {
    border: none;
    padding-right: 5px;
  }

  .attach label {
    display: block;
    margin-bottom: 5px;
  }

  .attach label a {
    text-decoration: none;
  }
  
  blockquote {
    margin: 0 0 0 4px;
  }

  .bold {
    font-family: Arial;
    font-size: 13px;
    font-weight: 700;
  }

  .bold a {
    text-decoration: none;
  }

  dd.last p a {
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span {
    margin-right: 10px;
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span.yshortcuts {
    margin-right: 0;
  }

  div.attach-table div div a {
    text-decoration: none;
  }

  div.attach-table {
    width: 400px;
  }

  div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
    text-decoration: none;
  }

  div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
    text-decoration: none;
  }

  div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
    font-family: Verdana;
    font-size: 10px;
    font-weight: normal;
  }

  .green {
    color: #628c2a;
  }

  .MsoNormal {
    margin: 0 0 0 0;
  }

  o {
    font-size: 0;
  }

  #photos div {
    float: left;
    width: 72px;
  }

  #photos div div {
    border: 1px solid #666666;
    height: 62px;
    overflow: hidden;
    width: 62px;
  }

  #photos div label {
    color: #666666;
    font-size: 10px;
    overflow: hidden;
    text-align: center;
    white-space: nowrap;
    width: 64px;
  }

  #reco-category {
    font-size: 77%;
  }

  #reco-desc {
    font-size: 77%;
  }

  .replbq {
    margin: 4px;
  }

  #ygrp-actbar div a:first-child {
   /* border-right: 0px solid #000;*/
    margin-right: 2px;
    padding-right: 5px;
  }

  #ygrp-mlmsg {
    font-size: 13px;
    font-family: Arial, helvetica,clean, sans-serif;
    *font-size: small;
    *font: x-small;
  }

  #ygrp-mlmsg table {
    font-size: inherit;
    font: 100%;
  }

  #ygrp-mlmsg select, input, textarea {
    font: 99% Arial, Helvetica, clean, sans-serif;
  }

  #ygrp-mlmsg pre, code {
    font:115% monospace;
    *font-size:100%;
  }

  #ygrp-mlmsg * {
    line-height: 1.22em;
  }

  #ygrp-mlmsg #logo {
    padding-bottom: 10px;
  }


  #ygrp-msg p a {
    font-family: Verdana;
  }

  #ygrp-msg p#attach-count span {
    color: #1E66AE;
    font-weight: 700;
  }

  #ygrp-reco #reco-head {
    color: #ff7900;
    font-weight: 700;
  }

  #ygrp-reco {
    margin-bottom: 20px;
    padding: 0px;
  }

  #ygrp-sponsor #ov li a {
    font-size: 130%;
    text-decoration: none;
  }

  #ygrp-sponsor #ov li {
    font-size: 77%;
    list-style-type: square;
    padding: 6px 0;
  } 

  #ygrp-sponsor #ov ul {
    margin: 0;
    padding: 0 0 0 8px;
  }

  #ygrp-text {
    font-family: Georgia;
  }

  #ygrp-text p {
    margin: 0 0 1em 0;
  }

  #ygrp-text tt {
    font-size: 120%;
  }

  #ygrp-vital ul li:last-child {
    border-right: none !important; 
  } 
  -->
  </style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->


--------------2C6B8F859D4D83827E451D48--