Discussion:
[H390-MVS] TXTLIBs on CMS (or SYS1.FORTLIB on MVS)
Bernd Oppolzer berndoppolzer@yahoo.com [H390-MVS]
2018-02-04 08:57:16 UTC
Permalink
Hello all,

my Stanford Pascal compiler relies on some Fortran subroutines, which
are located in the FORTLIB TXTLIB on CMS or SYS1.FORTLIB on MVS.

Now some friend who wants to install it on today's z/OS has problems,
because there is no SYS1.FORTLIB.

I would like to overcome this problem by packaging the needed subfunctions
of FORTLIB in a module of my own and delivering it as part of the Pascal
distribution.

Questions:

a) is it possible to get parts of a CMS TXTLIB out of it in 80 bytes
TEXT format?
Is there a CMS command which does this? Single object at a time would be
sufficient. The linker builds load module format only, this is not what
I want.

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.
But the Pascal program gets EOF after the first TEXT deck inside the
TXTLIB.
Where does this EOF come from? The Pascal runtime uses normal QSAM
macros (DCB, OPEN, GET). How can I get around this EOF, maybe by changing
the Pascal runtime ... or is it simply a FILEDEF option?

Any other suggestions? I don't need the complete SYS1.FORTLIB, only some
functions from there (I know the names of the needed functions; I already
built a PASMATH load module on MVS using the linkage editor containing
just the relevant subset which works perfectly as a replacement for
SYS1.FORTLIB ... but it is still a load module, and I want a FB 80 TEXT
file,
because that's what I can easily transport in my installation procedure).

Thank you,
kind regards

Bernd
winkelmann@id.ethz.ch [H390-MVS]
2018-02-04 09:09:23 UTC
Permalink
Hi Bernd


why don't you simply do an XMIT370 of SYS1.FORTLIB on MVS and receive it the using the TSO/E RECEIVE command on z/OS? Then you don't need to do any repackaging at all...


Cheers
JÃŒrgen



---In H390-***@yahoogroups.com, <***@...> wrote :

Hello all,

my Stanford Pascal compiler relies on some Fortran subroutines, which
are located in the FORTLIB TXTLIB on CMS or SYS1.FORTLIB on MVS.

Now some friend who wants to install it on today's z/OS has problems,
because there is no SYS1.FORTLIB.

I would like to overcome this problem by packaging the needed subfunctions
of FORTLIB in a module of my own and delivering it as part of the Pascal
distribution.

Questions:

a) is it possible to get parts of a CMS TXTLIB out of it in 80 bytes
TEXT format?
Is there a CMS command which does this? Single object at a time would be
sufficient. The linker builds load module format only, this is not what
I want.

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.
But the Pascal program gets EOF after the first TEXT deck inside the
TXTLIB.
Where does this EOF come from? The Pascal runtime uses normal QSAM
macros (DCB, OPEN, GET). How can I get around this EOF, maybe by changing
the Pascal runtime ... or is it simply a FILEDEF option?

Any other suggestions? I don't need the complete SYS1.FORTLIB, only some
functions from there (I know the names of the needed functions; I already
built a PASMATH load module on MVS using the linkage editor containing
just the relevant subset which works perfectly as a replacement for
SYS1.FORTLIB ... but it is still a load module, and I want a FB 80 TEXT
file,
because that's what I can easily transport in my installation procedure).

Thank you,
kind regards

Bernd
Bernd Oppolzer berndoppolzer@yahoo.com [H390-MVS]
2018-02-04 09:26:46 UTC
Permalink
Hi JÃŒrgen,

yes, of course; I will have to check this out,
this will sure make my installation procedure much easier.
But I don't have experience with this until now,
and so I am bound to the procedures I know,
and that's basically transporting 80 bytes object files (binary)
without any attributes - and source code, of course.

The compiler is built on the target system from
prepared jobs and some 80 bytes object files,
which are sent to the linkage editor. IMO it should work.

I didn't recognize the dependency to SYS1.FORTLIB until now ...
no problem for VM sixpack or TK4-, but for other installations ...

@Martin TrÃŒbner: the TXTLIB command of VM/370 R6 only
supports ADD, GEN, MAP and DEL. I recall that modern VM's
TXTLIB had more options ...

Kind regards

Bernd
Post by ***@id.ethz.ch [H390-MVS]
Hi Bernd
why don't you simply do an XMIT370 of SYS1.FORTLIB on MVS and receive
it the using the TSO/E RECEIVE command on z/OS? Then you don't need to
do any repackaging at all...
Cheers
JÃŒrgen
Reply via web post
<https://groups.yahoo.com/neo/groups/H390-MVS/conversations/messages/17781;_ylc=X3oDMTJxYzYydGVqBF9TAzk3MzU5NzE0BGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BG1zZ0lkAzE3NzgxBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTUxNzczNTM3MQ--?act=reply&messageNum=17781>
• Reply to sender
• Reply to group
• Start a New Topic
<https://groups.yahoo.com/neo/groups/H390-MVS/conversations/newtopic;_ylc=X3oDMTJlcDg0bWNtBF9TAzk3MzU5NzE0BGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTUxNzczNTM3MQ-->
• Messages in this topic
<https://groups.yahoo.com/neo/groups/H390-MVS/conversations/topics/17780;_ylc=X3oDMTM2M2NkcXZpBF9TAzk3MzU5NzE0BGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BG1zZ0lkAzE3NzgxBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTUxNzczNTM3MQR0cGNJZAMxNzc4MA-->
(2)
------------------------------------------------------------------------
Have you tried the highest rated email app? <https://yho.com/1wwmgg>
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.
------------------------------------------------------------------------
Visit Your Group
<https://groups.yahoo.com/neo/groups/H390-MVS/info;_ylc=X3oDMTJlYXU4dGZqBF9TAzk3MzU5NzE0BGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTUxNzczNTM3MQ-->
Yahoo! Groups
<https://groups.yahoo.com/neo;_ylc=X3oDMTJkcXJqaHZ1BF9TAzk3NDc2NTkwBGdycElkAzI1ODc5NjYEZ3Jwc3BJZAMxNzA1MzA5NTQ4BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNTE3NzM1Mzcx>
• Privacy
<https://info.yahoo.com/privacy/us/yahoo/groups/details.html> •
Unsubscribe
Terms of Use <https://info.yahoo.com/legal/us/yahoo/utos/terms/>
.
Bernd Oppolzer berndoppolzer@yahoo.com [H390-MVS]
2018-02-04 09:14:40 UTC
Permalink
Hello again,

it seems that I solved the problem myself;
I can specify the member name of the needed object on
FILEDEF, and so the Pascal program can extract the needed objects
from the TXTLIB, one at a time.

Thank you all,
have a nice sunday

Bernd
Post by Bernd Oppolzer ***@yahoo.com [H390-MVS]
Hello all,
my Stanford Pascal compiler relies on some Fortran subroutines, which
are located in the FORTLIB TXTLIB on CMS or SYS1.FORTLIB on MVS.
Now some friend who wants to install it on today's z/OS has problems,
because there is no SYS1.FORTLIB.
I would like to overcome this problem by packaging the needed subfunctions
of FORTLIB in a module of my own and delivering it as part of the Pascal
distribution.
a) is it possible to get parts of a CMS TXTLIB out of it in 80 bytes
TEXT format?
Is there a CMS command which does this? Single object at a time would be
sufficient. The linker builds load module format only, this is not what
I want.
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.
But the Pascal program gets EOF after the first TEXT deck inside the
TXTLIB.
Where does this EOF come from? The Pascal runtime uses normal QSAM
macros (DCB, OPEN, GET). How can I get around this EOF, maybe by changing
the Pascal runtime ... or is it simply a FILEDEF option?
Any other suggestions? I don't need the complete SYS1.FORTLIB, only some
functions from there (I know the names of the needed functions; I already
built a PASMATH load module on MVS using the linkage editor containing
just the relevant subset which works perfectly as a replacement for
SYS1.FORTLIB ... but it is still a load module, and I want a FB 80 TEXT
file,
because that's what I can easily transport in my installation procedure).
Thank you,
kind regards
Bernd
Gerhard Postpischil gerhardp@charter.net [H390-MVS]
2018-02-04 09:30:31 UTC
Permalink
Post by Bernd Oppolzer ***@yahoo.com [H390-MVS]
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
Bernd Oppolzer berndoppolzer@yahoo.com [H390-MVS]
2018-02-04 10:06:38 UTC
Permalink
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
Post by Gerhard Postpischil ***@charter.net [H390-MVS]
Post by Bernd Oppolzer ***@yahoo.com [H390-MVS]
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
'Dave Wade' dave.g4ugm@gmail.com [H390-MVS]
2018-02-04 10:57:23 UTC
Permalink
Bernd,



You don’t need a Pascal Program. The CMS MOVEFILE command should extract the member.

MOVEFILE (PDS will extract all members



Dave



From: H390-***@yahoogroups.com [mailto:H390-***@yahoogroups.com]
Sent: 04 February 2018 10:07
To: H390-***@yahoogroups.com; H390-***@yahoogroups.com
Subject: Re: [H390-MVS] TXTLIBs on CMS (or SYS1.FORTLIB on MVS)








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
Post by Bernd Oppolzer ***@yahoo.com [H390-MVS]
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
Bernd Oppolzer berndoppolzer@yahoo.com [H390-MVS]
2018-02-04 11:33:49 UTC
Permalink
Thank you very much Dave, that's extremely cool :-)

FILEDEF TXTFILE DISK FORTLIB TXTLIB
FILEDEF TEXT DISK FILE TEXT
MOVEFILE TXTFILE TEXT (PDS

extracts all members from FORTLIB TXTLIB as TEXT files.

(the DD names of MOVEFILE default to INMOVE and OUTMOVE,
but can be overridden; the file name specified on the second FILEDEF
is replaced by the member names coming from the TXTLIB
which acts just like a PDS library).

Thanks again, have a nice day

Bernd



-------- Weitergeleitete Nachricht --------
Betreff: RE: [H390-MVS] TXTLIBs on CMS (or SYS1.FORTLIB on MVS)
Datum: Sun, 4 Feb 2018 10:57:23 -0000
Von: 'Dave Wade' ***@gmail.com [H390-MVS]
<H390-***@yahoogroups.com>
Antwort an: H390-***@yahoogroups.com
An: H390-***@yahoogroups.com



Bernd,

You don’t need a Pascal Program. The CMS MOVEFILE command should extract
the member.

 MOVEFILE (PDS will extract all members

Dave
Bernd Oppolzer berndoppolzer@yahoo.com [H390-MVS]
2018-02-04 11:41:18 UTC
Permalink
BTW: the original problem doesn't exist any more,
my friend has managed to copy the SYS1.FORTLIB (and my new PASMATH load
module)
to z/OS V2.3 ... the compiler runs there without problems :-)

I will now prepare the 2018.02 release of the compiler for MVS,
maybe without this SYS1.FORTLIB dependency :-)

Thank you all for your support.

Kind regards

Bernd
Post by Bernd Oppolzer ***@yahoo.com [H390-MVS]
Thank you very much Dave, that's extremely cool :-)
FILEDEF TXTFILE DISK FORTLIB TXTLIB
FILEDEF TEXT DISK FILE TEXT
MOVEFILE TXTFILE TEXT (PDS
extracts all members from FORTLIB TXTLIB as TEXT files.
(the DD names of MOVEFILE default to INMOVE and OUTMOVE,
but can be overridden; the file name specified on the second FILEDEF
is replaced by the member names coming from the TXTLIB
which acts just like a PDS library).
Thanks again, have a nice day
Bernd
-------- Weitergeleitete Nachricht --------
Betreff: RE: [H390-MVS] TXTLIBs on CMS (or SYS1.FORTLIB on MVS)
Datum: Sun, 4 Feb 2018 10:57:23 -0000
Bernd,
You don’t need a Pascal Program. The CMS MOVEFILE command should extract the member.
 MOVEFILE (PDS will extract all members
Dave
'Dave Wade' dave.g4ugm@gmail.com [H390-MVS]
2018-02-04 10:50:10 UTC
Permalink
-----Original Message-----
Sent: 04 February 2018 09:31
Subject: Re: [H390-MVS] TXTLIBs on CMS (or SYS1.FORTLIB on MVS)
MVS]
Post by Bernd Oppolzer ***@yahoo.com [H390-MVS]
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
Gerhard,
It should work on CMS for a OS load module, unless it uses unusual SVC options, but not a CMS load module. CMS load modules no longer contain the info necessary to extract the component text decks.
Dave
---
This email has been checked for viruses by AVG.
http://www.avg.com
------------------------------------
------------------------------------
------------------------------------
Yahoo Groups Links
'Dave Wade' dave.g4ugm@gmail.com [H390-MVS]
2018-02-04 10:43:40 UTC
Permalink
Bernd,
You would perhaps have got a quicker answer on the H390-VM list. Oddly the TXTLIB command only allows members to be added.
I see you have managed, but should you need to do this again I think the simplest way is use the PUNCH command. So:-

SPOOL PUN *
PUNCH xxx TXTLIB Y (MEMBER zzz
READCARD *

Will put the member on your "A" disk with a filetype of TEXT. You could also set up filedefs and use MOVEFILE..

Dave
-----Original Message-----
Sent: 04 February 2018 08:57
Subject: [H390-MVS] TXTLIBs on CMS (or SYS1.FORTLIB on MVS)
Hello all,
my Stanford Pascal compiler relies on some Fortran subroutines, which are
located in the FORTLIB TXTLIB on CMS or SYS1.FORTLIB on MVS.
Now some friend who wants to install it on today's z/OS has problems,
because there is no SYS1.FORTLIB.
I would like to overcome this problem by packaging the needed subfunctions
of FORTLIB in a module of my own and delivering it as part of the Pascal
distribution.
a) is it possible to get parts of a CMS TXTLIB out of it in 80 bytes TEXT format?
Is there a CMS command which does this? Single object at a time would be
sufficient. The linker builds load module format only, this is not what I want.
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.
But the Pascal program gets EOF after the first TEXT deck inside the TXTLIB.
Where does this EOF come from? The Pascal runtime uses normal QSAM
macros (DCB, OPEN, GET). How can I get around this EOF, maybe by changing
the Pascal runtime ... or is it simply a FILEDEF option?
Any other suggestions? I don't need the complete SYS1.FORTLIB, only some
functions from there (I know the names of the needed functions; I already
built a PASMATH load module on MVS using the linkage editor containing just
the relevant subset which works perfectly as a replacement for SYS1.FORTLIB
... but it is still a load module, and I want a FB 80 TEXT file, because that's what
I can easily transport in my installation procedure).
Thank you,
kind regards
Bernd
------------------------------------
------------------------------------
------------------------------------
Yahoo Groups Links
kerravon86@yahoo.com.au [H390-MVS]
2018-02-04 10:44:07 UTC
Permalink
Post by Bernd Oppolzer ***@yahoo.com [H390-MVS]
my Stanford Pascal compiler relies on some Fortran subroutines, which
are located in the FORTLIB TXTLIB on CMS or SYS1.FORTLIB on MVS.
I would suggest that *as well as* your other
efforts to make some sort of source code
available to end users, you also provide an
actual standalone load module(s) for your
end users.

The normal way to do that is to XMIT your
load library which produces the FB80
output file you desire.

At times I prefer to distribute IEBCOPY
unload files with RDW separators though.
It depends whether I am focused on
shipping modules or shipping an entire
package of stuff.

I think you are shipping an entire package
so you could copy how GCCMVS is shipped,
which is an XMIT of XMITs.

Note that you wrote this to Martin:

@Martin TrÃŒbner: the TXTLIB command of VM/370 R6 only
supports ADD, GEN, MAP and DEL. I recall that modern VM's
TXTLIB had more options ...

but you posted in H390-MVS while he posted
in H390-VM, and I'm not sure he reads the
MVS group.

BFN. Paul.
Loading...