开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Re: jcl input

 

Rene,

Thank you, downloading the manual and looking on google for the book.

Hope you are?doing well.

cheers
/tom c


On Thu, Oct 13, 2022 at 1:08 PM René Ferland <ferland.rene@...> wrote:
Hello Tom,
?
If you go further this way, that PDF might be useful (it was to me):
?
?
And here's a book that you might consider buying (I did):
?
?
Among other things, it explains in simple terms how to perform I/O in DOS/VS assembler with files, whether they are SAM, ISAM, DAM or VSAM.
?
Cheers,
?
Rene FERLAND, Montreal


Re: jcl input

 

Hello Tom,
?
If you go further this way, that PDF might be useful (it was to me):
?
http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/370/DOS_VS/Rel_29_Nov73/GC33-5373-2_DOS_VS_Supervisor_and_IO_Macros_Rel_29_Nov73.pdf
?
And here's a book that you might consider buying (I did):
?
https://www.amazon.com/Dos-Assembler-Language-Kevin-McQuillen/dp/0911625313/
?
Among other things, it explains in simple terms how to perform I/O in DOS/VS assembler with files, whether they are SAM, ISAM, DAM or VSAM.
?
Cheers,
?
Rene FERLAND, Montreal


Re: jcl input

 

Joe,
Thank you very much for the info.? Just coded up a test program
and it works GREAT!!!!

You are right, very simple, but first time for me.?

Again, Thank You very much.

cheers
/tom c


On Thu, Oct 13, 2022 at 11:32 AM Joe Monk <joemonk64@...> wrote:
IIRC, this is pretty simple ..

you need a // ASSGN?SYSIPT,00C to assign the card reader?logical?to POWER...

Then in the assembler program, I think you have to have a DTFCD DEVADDR=SYSIPT to define the card reader. Open it and read the cards from SYSIPT.

Joe?

On Thu, Oct 13, 2022 at 9:10 AM Tom Chandler <tchandler48@...> wrote:
Thank you to all who helped me on my nested subroutine issue.? Made
a ton of progress on it.

New issue.... I want to include the data that my program uses in the JCL
job stream and my program will read this data for use.? I have been
trying to find information/examples of how to do it.

ex:
* $$ JOB JNM=TEST,CLASS=0,DISP=D????????????????????????????????????????
* $$ LST LST=00E,JSEP=1,CLASS=A,DISP=D????????????????????????????????
// JOB TEST?????????????????????????????????????????????????????????????
// EXEC TEST
DATA LINE ONE
DATA LINE TWO
DATA LINE THREE
/*
/&
* $$ EOJ

What I would like is for TEST to read the DATA LINE xxxx from the JCL.

The program is written in DOS/VS REL 34 ASM.

Any suggestions or comments will be welcome.

/cheers
/tom c


Re: jcl input

 

IIRC, this is pretty simple ..

you need a // ASSGN?SYSIPT,00C to assign the card reader?logical?to POWER...

Then in the assembler program, I think you have to have a DTFCD DEVADDR=SYSIPT to define the card reader. Open it and read the cards from SYSIPT.

Joe?

On Thu, Oct 13, 2022 at 9:10 AM Tom Chandler <tchandler48@...> wrote:
Thank you to all who helped me on my nested subroutine issue.? Made
a ton of progress on it.

New issue.... I want to include the data that my program uses in the JCL
job stream and my program will read this data for use.? I have been
trying to find information/examples of how to do it.

ex:
* $$ JOB JNM=TEST,CLASS=0,DISP=D????????????????????????????????????????
* $$ LST LST=00E,JSEP=1,CLASS=A,DISP=D????????????????????????????????
// JOB TEST?????????????????????????????????????????????????????????????
// EXEC TEST
DATA LINE ONE
DATA LINE TWO
DATA LINE THREE
/*
/&
* $$ EOJ

What I would like is for TEST to read the DATA LINE xxxx from the JCL.

The program is written in DOS/VS REL 34 ASM.

Any suggestions or comments will be welcome.

/cheers
/tom c


jcl input

 

Thank you to all who helped me on my nested subroutine issue.? Made
a ton of progress on it.

New issue.... I want to include the data that my program uses in the JCL
job stream and my program will read this data for use.? I have been
trying to find information/examples of how to do it.

ex:
* $$ JOB JNM=TEST,CLASS=0,DISP=D????????????????????????????????????????
* $$ LST LST=00E,JSEP=1,CLASS=A,DISP=D????????????????????????????????
// JOB TEST?????????????????????????????????????????????????????????????
// EXEC TEST
DATA LINE ONE
DATA LINE TWO
DATA LINE THREE
/*
/&
* $$ EOJ

What I would like is for TEST to read the DATA LINE xxxx from the JCL.

The program is written in DOS/VS REL 34 ASM.

Any suggestions or comments will be welcome.

/cheers
/tom c


Re: NESTED SUBROUTINES

 

Tom,?

Here is ?a little advice that might help:

image.png
image.png

Joe

On Wed, Oct 12, 2022 at 1:38 PM Tom Chandler <tchandler48@...> wrote:
Thank you for the book reference.? I am going to see if I an find it,as
I am trying to learn DOS/VS asm.

/cheers
/tom c


On Wed, Oct 12, 2022 at 1:36 PM gdblodgett <gdblodgett@...> wrote:
Tom,

Peter Abel authored a book called, Programming Assembler Language (not to be confused with his book for PC Assembler) that covers what you are looking to do.? The book is primarily oriented towards DOS/VS but has a few MVS topics.

There is a chapter called "Subprograms and Overlays" that addresses what you are attempting to perform.? It discusses the usage of R13 and save areas as well as the linkage editor statements necessary.?

I have the 2nd edition that was published in 1984, the first edition was published in 1979.

Regards,
Gary?



Sent from whatever device I am using.


Re: NESTED SUBROUTINES

 

开云体育

Fish,

Most technical authors tend to include the newer enhancements into their next edition and their was a lot of improvements to DOS (VSE) between the first and the third editions, some of which would not be relevant.??

So, the suggestion was made to err to the side of caution given that Tom stated that he was learning the DOS version of Assembler.

I worked at a college for nearly 10 years so I learned the value of trying to minimize the number of fatal tripping hazards in the early stages of the learning process.

Regards,
Gary

Sent from whatever device I am using.


-------- Original message --------
From: Fish Fish <david.b.trout@...>
Date: 10/12/22 4:19 PM (GMT-05:00)
Subject: Re: [H390-DOSVS] NESTED SUBROUTINES

Gary wrote:

> Fish, Tom,
> Actually this one is closer to the age of DOS/VS R 34
> than the 3rd edition.
>
> https://www.thriftbooks.com/w/programming-assembler-language_peter-
> abel/1208200/item/28565289/?gclid=Cj0KCQjwy5maBhDdARIsAMxrkw0FFealcct8BEKS
> K0MapNUB0kY9w5Ba66sD7U_Q1i0hHaBoZy_-
> sMgaAiJQEALw_wcB#idiq=28565289&edition=2958176

I'm sure it is. But isn't S/370 Assembler S/370 Assembler? Wouldn't a third edition be just as good or even BETTER than an older first or second edition? (as long as you're not a book collector of course!)

--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: fish@...










Re: NESTED SUBROUTINES

 

I taught myself IBM DOS/VS Assembler using the famous "Sharon K Tuggle" book and a whole IBM 370 to myself ;-) We didn't have energy problems back then.

That book has a whole section on saving registers and the save area with differences between DOS and OS in Chapter 15. I'm not going to re-read it right now as I'm far too tired.

Interestingly the index says "subroutine (see routine)" so the idea of multi-level calling hadn't really established itself I guess;-)

Steve


Re: NESTED SUBROUTINES

 



Here's a link to the book. Note you have to "borrow" it to look in it, but this is the link to the page.

Regards,
Bob

On Wed, Oct 12, 2022 at 2:38 PM Tom Chandler <tchandler48@...> wrote:
Thank you for the book reference.? I am going to see if I an find it,as
I am trying to learn DOS/VS asm.

/cheers
/tom c


On Wed, Oct 12, 2022 at 1:36 PM gdblodgett <gdblodgett@...> wrote:
Tom,

Peter Abel authored a book called, Programming Assembler Language (not to be confused with his book for PC Assembler) that covers what you are looking to do.? The book is primarily oriented towards DOS/VS but has a few MVS topics.

There is a chapter called "Subprograms and Overlays" that addresses what you are attempting to perform.? It discusses the usage of R13 and save areas as well as the linkage editor statements necessary.?

I have the 2nd edition that was published in 1984, the first edition was published in 1979.

Regards,
Gary?



Sent from whatever device I am using.


Re: NESTED SUBROUTINES

 

Gary wrote:

Fish, Tom,
Actually this one is closer to the age of DOS/VS R 34
than the 3rd edition.


abel/1208200/item/28565289/?gclid=Cj0KCQjwy5maBhDdARIsAMxrkw0FFealcct8BEKS
K0MapNUB0kY9w5Ba66sD7U_Q1i0hHaBoZy_-
sMgaAiJQEALw_wcB#idiq=28565289&edition=2958176
I'm sure it is. But isn't S/370 Assembler S/370 Assembler? Wouldn't a third edition be just as good or even BETTER than an older first or second edition? (as long as you're not a book collector of course!)

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


Re: NESTED SUBROUTINES

 

Tom Chandler wrote:
Fish wrote:
Tom Chandler wrote:

Fish,
Thank you for comments. You confirmed what I thought was
the issue. Looking through the fish-macros, I noticed you
have a modified save macro. Should I be using that version?
Eh? What "fish-macros" are you referring to?
It was a zip file in the OLD DOS/VS files area. That was the
name of the file. along with a file that had $b transits also.

I guessed it was you, but could be wrong.
Ah. Yes. Those. You're right: that was me.

But unfortunately I don't see any macros in either .zip file that would provide the functionality you need.

But it looks like you got it working anyway. Well done!

Since you said you were interested in learning Assembler, you might also be interested in joining the following Hercules-related support group too:

hercules-s370asm: Forum discussing use of S/370 assembler
with the Hercules emulator

/g/hercules-s370asm


The folks there might not be able to help you with any specific DOS/VS questions (for questions such as those, you should continue to ask them here, in this forum), but they can certainly help you with general S/370 assembler questions/issues.

Hercules has many different support forums providing support on a wide variety of topics and operating systems. For the complete list, refer to our "Technical Support" web page:

*

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


Re: NESTED SUBROUTINES

 

开云体育

Fish, Tom,
Actually this one is closer to the age of DOS/VS R 34 than the 3rd edition.

https://www.thriftbooks.com/w/programming-assembler-language_peter-abel/1208200/item/28565289/?gclid=Cj0KCQjwy5maBhDdARIsAMxrkw0FFealcct8BEKSK0MapNUB0kY9w5Ba66sD7U_Q1i0hHaBoZy_-sMgaAiJQEALw_wcB#idiq=28565289&edition=2958176

Gary



Sent from whatever device I am using.


-------- Original message --------
From: Fish Fish <david.b.trout@...>
Date: 10/12/22 3:59 PM (GMT-05:00)
Subject: Re: [H390-DOSVS] NESTED SUBROUTINES

Additional related books:

http://planetmvs.com/hlasm/books.html

--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: fish@...








Re: NESTED SUBROUTINES

 

Additional related books:



--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


Re: NESTED SUBROUTINES

 

Thank you for the book reference. I am going to see if I can
find it, as I am trying to learn DOS/VS asm.


--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


Re: NESTED SUBROUTINES

 

Thank you for the book reference.? I am going to see if I an find it,as
I am trying to learn DOS/VS asm.

/cheers
/tom c


On Wed, Oct 12, 2022 at 1:36 PM gdblodgett <gdblodgett@...> wrote:
Tom,

Peter Abel authored a book called, Programming Assembler Language (not to be confused with his book for PC Assembler) that covers what you are looking to do.? The book is primarily oriented towards DOS/VS but has a few MVS topics.

There is a chapter called "Subprograms and Overlays" that addresses what you are attempting to perform.? It discusses the usage of R13 and save areas as well as the linkage editor statements necessary.?

I have the 2nd edition that was published in 1984, the first edition was published in 1979.

Regards,
Gary?



Sent from whatever device I am using.


Re: NESTED SUBROUTINES

 

开云体育

Tom,

Peter Abel authored a book called, Programming Assembler Language (not to be confused with his book for PC Assembler) that covers what you are looking to do.? The book is primarily oriented towards DOS/VS but has a few MVS topics.

There is a chapter called "Subprograms and Overlays" that addresses what you are attempting to perform.? It discusses the usage of R13 and save areas as well as the linkage editor statements necessary.?

I have the 2nd edition that was published in 1984, the first edition was published in 1979.

Regards,
Gary?



Sent from whatever device I am using.


Re: NESTED SUBROUTINES

 

Thank you to all who responded.? Each response gave me more information.

I now can nest up to 4 levels and I have getting the results that I expect.

I removed the SAVE and RETURN, replaced with storing and loading
registers.? This seem to work.? The code is not pretty, but being
self taught I am sure it could be improved.


Re: NESTED SUBROUTINES

 

It was a zip file in the OLD DOS/VS files area.? That was the name of the file.
along with a file that had $b transits also.

I guessed it was you, but could be wrong.

Sorry
/cheers
tom c.


On Wed, Oct 12, 2022 at 12:00 PM Fish Fish <david.b.trout@...> wrote:
Tom Chandler wrote:

> Fish,
> Thank you for comments.? You confirmed what I thought was
> the issue. Looking through the fish-macros, I noticed you
> have a modified save macro.? Should I be using that version?

Eh? What "fish-macros" are you referring to?

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...









Re: NESTED SUBROUTINES

 

Tom Chandler wrote:

Fish,
Thank you for comments. You confirmed what I thought was
the issue. Looking through the fish-macros, I noticed you
have a modified save macro. Should I be using that version?
Eh? What "fish-macros" are you referring to?

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


Re: NESTED SUBROUTINES

 

page 118 talks about reentrant modules.?
also discusses reentrancy.?

The thing is, I could see nothing about memory allocation. In old DOS you ran in a partition that had a fixed size. I assume all the memory in the partition was yours while the program ran. There was no "memory management" as such, just allocate what you need in your?program.?

You probably need to write a module that starts with a "lot" of memory and manages allocation. Remember that in DOS, you don't need to be truly reentrant, just recursive. (No multi-CPU's) Each call should get a "new" save area from the routine that you write to manage memory.

Bob

On Wed, Oct 12, 2022 at 11:57 AM Joe Monk <joemonk64@...> wrote:
Not only that, but DOS/VS r 34 didnt?follow the OS calling conventions.?

Joe

On Wed, Oct 12, 2022 at 10:11 AM Richard Cornwell <rich@...> wrote:
Hi Tom,

? ?You are going to have to implement your own routines. Perhaps check
?out how Algol or PL/1 handle subroutine calls. But standard call
?routines do not support re-entrant calls.

Rich

>
> Thank you for the info.? I need to figure out how to implement your
> suggestion.? I found in the documentation on SAVE an option
>? ? ? ? ? ? SAVE? (14,12),,xxxxxxx
> where xxxx is a ds 18f area to save the regs.? I am trying to figure
> out if the change will work on DOS/VS rel 34.
>
> Cheers
> /tom c
>
>
> On Wed, Oct 12, 2022 at 9:59 AM Richard Cornwell
> <rich@...> wrote:
>
> > Hi Tom,
> >
> >? ? Typically 360/370 subroutine calls are done with a what is
> > called a save area. This is 18 words allocated within the
> > subroutine. On entry the registers are saved into the previous
> > routines save area. Then the base register is set up and the save
> > pointer is pointed to the current save area. On exit the registers
> > are restore, this will include the previous save area.
> >
> >? This means that if you call a subroutine again it will wipe out the
> >? previous calls information. To do this properly you will either
> > need to allocate a bunch of memory to save all the registers in and
> > advance the save pointer for each call. The other option is to
> > allocate and free save areas at each call.
> >
> >? Basically you will need to implement some sort of stack to handle
> >? function calls if you want true recursive calls.
> >
> > Rich
> >
> >
> >
> >
> >
> >
> >
> >
> >?
>
>
>
>
>
>