[comp.lang.asm370] Long Programs

david@COSMIC1.COSMIC.UGA.EDU (11/06/90)

Okay, simple question for those of you who do this sort of thing all the time:

I am writing a program that has gotten a little long...long enough to lose
touch with the variables and literals.  I have used the multiple base-registers
to offset this problem some, but it is still getting at me.  One reason is
that I manipulate a matrix that is 4k long.  Can anyone make the concept of
Control Sections and the method of dividing up a task so that each section
can reference the variables it needs in a common block make sense to me?

AIIIGH!  I hate being born in the age of Pascal and C....I happen to like
370 ASM....

SWH@NASVM.BITNET ("Steven W. Huggins") (11/06/90)

On Mon, 5 Nov 90 13:42:08 EST <david@COSMIC1.COSMIC.UGA.EDU> said:
>Okay, simple question for those of you who do this sort of thing all the time:
>
>I am writing a program that has gotten a little long...long enough to lose
>touch with the variables and literals.  I have used the multiple base-registers
>to offset this problem some, but it is still getting at me.  One reason is
>that I manipulate a matrix that is 4k long.  Can anyone make the concept of
>Control Sections and the method of dividing up a task so that each section
>can reference the variables it needs in a common block make sense to me?
>
>AIIIGH!  I hate being born in the age of Pascal and C....I happen to like
>370 ASM....
Hi David,
  First thing to do is to move the matrix to the end of the program,
after the literal pool, if you don't have a "LTORG ," statement add one
before the matrix.  Next change the way you address the matrix, use
"L Rxx,=A(MATRIX)" instead of "LA Rxx,MATRIX", the LA might work for a
while if the first byte of matrix is addressable.  Control sections
isn't really needed here.  If you want more info on control sections
give me a call, I hate typing.

VSE, the stories of our demise are greatly exaggerated, VSE/ESA,

Steven W. Huggins
B I Moyle Associates, Inc.
<SWH@NASVM.BITNET>
703-803-8686 Office
612-933-2885 Home Office
202-334-3592 NAS Client(Mon & Wed)

eyal@ECHO.CANBERRA.EDU.AU (Eyal Lebedinsky) (11/06/90)

In comp.lang.asm370 you write:

>Okay, simple question for those of you who do this sort of thing all the time:

>I am writing a program that has gotten a little long...long enough to lose
>touch with the variables and literals.  I have used the multiple base-registers
>to offset this problem some, but it is still getting at me.  One reason is
>that I manipulate a matrix that is 4k long.  Can anyone make the concept of
>Control Sections and the method of dividing up a task so that each section
>can reference the variables it needs in a common block make sense to me?
To start with, move the BIG data areas to AFTER thr LTORG, then address
those blicks using A(@#$@$#). No need to break the program into multiple
CSECTS. If the code itself is too large then if makes sense to break the
programs into logical parts, each with its own base register (you say
USING at the start of a part, then DROP at the end, and make sure the
base is correct before each USING). Again, no need for multiple CSECTS in
this case.
>AIIIGH!  I hate being born in the age of Pascal and C....I happen to like
>370 ASM....
Nothing wrong with that, every language has a place and asm will still be
with us when most other langs fade away.

SYSSERV@DB0ADW11.BITNET (Lutz Hamann) (11/30/90)

On Mon, 5 Nov 90 13:42:08 EST <david@COSMIC1.COSMIC.UGA.EDU> said:
>I am writing a program that has gotten a little long...long enough to lose
>touch with the variables and literals.  I have used the multiple base-registers
>to offset this problem some, but it is still getting at me.  One reason is
>that I manipulate a matrix that is 4k long.  Can anyone make the concept of
>Control Sections and the method of dividing up a task so that each section
>can reference the variables it needs in a common block make sense to me?
>
What about this: Order your 4K via GETMAIN or DMSFREE (in CMS), remember the
address and use this address in a base-register.

                              Lutz