HP3000-L Archives

May 2010, Week 4

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Roy Brown <[log in to unmask]>
Reply To:
Roy Brown <[log in to unmask]>
Date:
Thu, 27 May 2010 22:13:08 +0100
Content-Type:
text/plain
Parts/Attachments:
text/plain (137 lines)
In message <[log in to unmask]>, Olav Kappert 
<[log in to unmask]> writes
>Roy:
>
>An issue that has not been addressed, other than what you just wrote, 
>is how the program was set up.
>
>In the past, I have seen programs which set SETMSG off because they 
>don't want messages to appear on their screen (in block or character 
>mode).  There are even software packages which routinely do this.  So 
>checking for HPQUIET can provide false information.
>
>If you are concerned about the amount of time (money) doing this job 
>properly, then by all means do it quick and dirty.  Otherwise, invest 
>in doing the job right and make the changes to all the programs and 
>TEST them before putting them in production.
>
>Olav Kappert

Uh, you hit me where I live... :-)

Recommending that the determination should be made in the subprogram 
wasn't intended to be a 'quick and dirty' solution - it was intended to 
be the best possible solution, by any yardstick you could name - cost, 
reliability, whatever.

And then you need test only the subprogram, though perhaps when called 
from each program that invokes it; you don't need to test that each and 
every calling program can accurately keep track of what mode it is in.

Even if it could - I'm currently on a project where the programs would 
quite possibly not *know* which mode they were in when calling any given 
subprogram, so they would have to do whatever it is that this subprogram 
is going to have to do to determine that. So why do it in tens, maybe 
hundreds of places, when you can do it once in the subprogram that 
actually cares about this?

Though having said all that, I do agree with you that HPQUIET is not 
quite as definitive as I'd be comfortable with, so using that is maybe 
'q a d'.....

Roy


>Roy Brown wrote:
>
>> I like this technique, and will take note of it for the future.
>>
>> But is it just me who tries to go for the super-generalisation?
>>
>> Imagine a big, established suite of programs, already calling this 
>>subprogram from more than a few places, but a new requirement means it 
>>suddenly has to know if it was called while the program calling it had 
>>the terminal in block mode or character mode.
>>
>> Linkage, External or whatever, you are going to fight very shy of 
>>making all those calling places have to keep track of which mode they 
>>are in, in a variable, a JCW or VAR, or even an Image dataset, so that 
>>the subprogram can read this.
>>
>> Easier, more reliable, and safer by far, to have the subprogram 
>>figure this out for itself if it wants to know which mode the terminal 
>>is in,  and leave the rest of the suite absolutely unchanged.
>>
>> Seeing a problem like this, I tend to make the jump from 'how do I 
>>tell the subprogram which mode?' (as Walter says, possibly in many 
>>places) to 'how does the subprogram figure this out?' almost without 
>>thinking about it.
>>
>> And only go back to disturbing the established system to provide this 
>>new information if, with my tail between my legs, I conclude that it's 
>>something the subprogram just logically *cannot* figure out for 
>>itself.
>>
>> Roy
>>
>>
>> In message <000001cafd4e$8991a360$6601a8c0@DJFJQK21>, Walter J. 
>>Murray  <[log in to unmask]> writing at 20:41:48 in his/her local 
>>time opines:-
>>
>>> Mike asks how to pass data to a subprogram without using a Linkage
>>> section.
>>>
>>> Assuming the main program and subprogram are both COBOL, here's a handy
>>> technique I have used to pass data between them without using parameters
>>> and a Linkage Section.
>>>
>>> Define data items in the Working-Storage Section of both the main
>>> program and the subprogram.  Give them both the same name (important!)
>>> and the same Picture clause, and declare them both as EXTERNAL.  A value
>>> stored in such a data item by one program will be "seen" by the other.
>>>
>>> It's a handy way to pass additional data between a program and a
>>> subprogram, without having to change the calling sequences (in possibly
>>> many programs).
>>>
>>> Walter
>>>
>>> Walter J. Murray
>>>
>>>
>>> -----Original Message-----
>>> From: HP-3000 Systems Discussion [mailto:[log in to unmask]] On
>>> Behalf Of Michael Caplin
>>> Sent: Wednesday, May 26, 2010 8:20 AM
>>> To: [log in to unmask]
>>> Subject: [HP3000-L] BLOCK MODE VARIABLE
>>>
>>> I have a subprogram that can be called from a block or character mode
>>> main
>>> program and I want the sub to know which called it without anything
>>> being
>>> passed in linkage.  I can think of some ugly ways to do it.  Does anyone
>>> know
>>> of an easy/simple way.
>>> TIA,
>>> mike
>>>
>>> * To join/leave the list, search archives, change list settings, *
>>> * etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
>>>
>>> * To join/leave the list, search archives, change list settings, *
>>> * etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
>>
>>
>
>* To join/leave the list, search archives, change list settings, *
>* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

-- 
Roy Brown        'Have nothing in your houses that you do not know to be
Kelmscott Ltd     useful, or believe to be beautiful'  William Morris

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2