Re: finding DU-AL in a dump

2023-03-31 Thread Glen Garrison
Hmm Sounds like you are trying to say,  "I know 'that task' (not the one I 
am currently running under) has stuff aleserv'ed on it's access list and I want 
to be able to look at it's data."  I'd say this is a security issue the 
system probably wants to prohibit.   
   
   Essentially you want an aleserv extract that will work against any TCB 
you point it to.  I know of no such feature.  For security purposes it would be 
up to the owning task to communicate the stokens to your task so you can 
aleserv it onto your own access list.   Since it's your app, maybe you can 
locate the stokens and aleserv them under the task your test is running under?? 
  Beyond that, I think you would have to (knowing what the alets are) do the 
translations manually from that task's du-al.  


-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Joseph Reichman
Sent: Thursday, March 30, 2023 6:30 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: finding DU-AL in a dump

I’m not interested in the PASN 

You want me to be specfic ok 

I have to Alets that I ALESERV ed

To WORKUNIT=AL

One is the Alet of another address space the other is a dataspace that I 
created in a SRB scope=all 

I put data into it running under TESTAUTH I cannt display it 

What I would like to is write a customized TESTAUTH subcommand that would go 
into the debugged TCB which I can get from the TCOMTAB get any Alets associated 
with it And display the Data in this dataspace 

> On Mar 30, 2023, at 6:09 PM, Glen Garrison  wrote:
> 
>   So you are trying to determine, at any given point in time, if a task or 
> srb has anything at all aleserv'ed?   From a task perspective, you can find 
> the du-al as we have walked through.   But if someone running under that task 
> has aleserv'ed to the pasn I know of no way you can identify that.The 
> du-al is unique to a task but there is nothing in the pasn side that is task 
> related that you would be able to locate and associate with a specific task, 
> that I know of.
>   I can't say I know the cross memory services task termination/supervisor 
> functionality or programming requirements for owning a dataspace (for 
> example) and having added it to the pasn.   So I don't really know how they 
> clean up an in-use pasn ale, made in use by a task that may be going away.  
> (I say going away because that would require them to identify a specific ale 
> by task.)I support real storage manager so my knowledge is on the 
> dataspace and dat translation side.  
> 
> -Original Message-
> From: IBM Mainframe Discussion List  On 
> Behalf Of Joseph Reichman
> Sent: Thursday, March 30, 2023 5:03 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: [EXTERNAL] Re: finding DU-AL in a dump
> 
> Chapter 5 in the pops book is program execution on page 5-46 is access 
> register introduction being an ALET is loaded onto an access register 
> would reading up on that give me a better understanding of doing what 
> I want to do
> 
> I mean finding/if there are any alets for that TASK/SRB
> 
> thanks   
> 
> -Original Message-
> From: IBM Mainframe Discussion List  On 
> Behalf Of Glen Garrison
> Sent: Thursday, March 30, 2023 4:11 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: finding DU-AL in a dump
> 
> The du-al, as well as the pasn are access LISTS.  Tables used to translate an 
> alet to the correct DAT structures for the "space" you have aleserv'ed onto 
> the list.  Aleserv add obtains an entry in the list for your request and 
> assigns it to your request and builds the alet based on the index of the 
> entry chosen.You have to know the alet to get to the correct ale and then 
> aste for the 'space' you are trying to translate to.Since there can be 
> multiple valid entries in the access list, to get to the correct one you must 
> know the index in the alet.   If you're lucky, yours is the only one on the 
> list and you can scan to see it but that's by chance. 
> 
> -Original Message-
> From: IBM Mainframe Discussion List  On 
> Behalf Of Joseph Reichman
> Sent: Thursday, March 30, 2023 3:53 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: [EXTERNAL] Re: finding DU-AL in a dump
> 
> How did you come up with that  ? I’ll Look
> 
> Is there anyway figuring it out with our knowing the alet
> 
> I mean maybe by starting at the bottom And looking for a non zero 
> entry
> 
>> On Mar 30, 2023, at 3:41 PM, Glen Garrison  wrote:
>> 
>> Take the last 2 bytes of your alet, multiply by x'10' and add to the 
>> value of stcbalov. (index into the du-al).  That gets you to the ALE
>> 
>> -Original Message-
>> From: IBM Mainframe Discussion List  On 
>> Behalf Of Joseph Reichman
>>

Re: finding DU-AL in a dump

2023-03-30 Thread Glen Garrison
  So you are trying to determine, at any given point in time, if a task or srb 
has anything at all aleserv'ed?   From a task perspective, you can find the 
du-al as we have walked through.   But if someone running under that task has 
aleserv'ed to the pasn I know of no way you can identify that.The du-al is 
unique to a task but there is nothing in the pasn side that is task related 
that you would be able to locate and associate with a specific task, that I 
know of.
   I can't say I know the cross memory services task termination/supervisor 
functionality or programming requirements for owning a dataspace (for example) 
and having added it to the pasn.   So I don't really know how they clean up an 
in-use pasn ale, made in use by a task that may be going away.  (I say going 
away because that would require them to identify a specific ale by task.)I 
support real storage manager so my knowledge is on the dataspace and dat 
translation side.  

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Joseph Reichman
Sent: Thursday, March 30, 2023 5:03 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: finding DU-AL in a dump

Chapter 5 in the pops book is program execution on page 5-46 is access register 
introduction being an ALET is loaded onto an access register would reading up 
on that give me a better understanding of doing what I want to do 

I mean finding/if there are any alets for that TASK/SRB

thanks   

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Glen Garrison
Sent: Thursday, March 30, 2023 4:11 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: finding DU-AL in a dump

The du-al, as well as the pasn are access LISTS.  Tables used to translate an 
alet to the correct DAT structures for the "space" you have aleserv'ed onto the 
list.  Aleserv add obtains an entry in the list for your request and assigns it 
to your request and builds the alet based on the index of the entry chosen.
You have to know the alet to get to the correct ale and then aste for the 
'space' you are trying to translate to.Since there can be multiple valid 
entries in the access list, to get to the correct one you must know the index 
in the alet.   If you're lucky, yours is the only one on the list and you can 
scan to see it but that's by chance. 

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Joseph Reichman
Sent: Thursday, March 30, 2023 3:53 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: finding DU-AL in a dump

How did you come up with that  ? I’ll Look

Is there anyway figuring it out with our knowing the alet 

I mean maybe by starting at the bottom
And looking for a non zero entry 

> On Mar 30, 2023, at 3:41 PM, Glen Garrison  wrote:
> 
> Take the last 2 bytes of your alet, multiply by x'10' and add to the 
> value of stcbalov. (index into the du-al).  That gets you to the ALE
> 
> -Original Message-
> From: IBM Mainframe Discussion List  On 
> Behalf Of Joseph Reichman
> Sent: Thursday, March 30, 2023 8:44 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: [EXTERNAL] finding DU-AL in a dump
> 
> Hi
> 
> v
> 
> I have two  ALETS one from an address space one from a dataspace they 
> are both on DU-AL I put them there via ALESERV AL=WORKUNIT
> 
> 
> 
> I am looking for them in a dump
> 
> 
> 
> I know the acronym ALE: in a dump stands for Access list element
> 
> 
> 
> I also know that STCBALOV offset X'20 from the STCB for the TCB I am 
> running under points to it
> 
> 
> 
> At that are all I see is X'8... not my two alets
> 
> 
> 
> I see the same in a dump. 
> 
> 
> 
> Under the ALE: heading.
> 
> 
> 
> Just wondering where I would find them. 
> 
> 
> 
> Thanks
> 
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions, send 
> email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions, send 
> email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message

Re: finding DU-AL in a dump

2023-03-30 Thread Glen Garrison
The du-al, as well as the pasn are access LISTS.  Tables used to translate an 
alet to the correct DAT structures for the "space" you have aleserv'ed onto the 
list.  Aleserv add obtains an entry in the list for your request and assigns it 
to your request and builds the alet based on the index of the entry chosen.
You have to know the alet to get to the correct ale and then aste for the 
'space' you are trying to translate to.Since there can be multiple valid 
entries in the access list, to get to the correct one you must know the index 
in the alet.   If you're lucky, yours is the only one on the list and you can 
scan to see it but that's by chance. 

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Joseph Reichman
Sent: Thursday, March 30, 2023 3:53 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: finding DU-AL in a dump

How did you come up with that  ? I’ll Look

Is there anyway figuring it out with our knowing the alet 

I mean maybe by starting at the bottom
And looking for a non zero entry 

> On Mar 30, 2023, at 3:41 PM, Glen Garrison  wrote:
> 
> Take the last 2 bytes of your alet, multiply by x'10' and add to the 
> value of stcbalov. (index into the du-al).  That gets you to the ALE
> 
> -Original Message-
> From: IBM Mainframe Discussion List  On 
> Behalf Of Joseph Reichman
> Sent: Thursday, March 30, 2023 8:44 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: [EXTERNAL] finding DU-AL in a dump
> 
> Hi
> 
> v
> 
> I have two  ALETS one from an address space one from a dataspace they 
> are both on DU-AL I put them there via ALESERV AL=WORKUNIT
> 
> 
> 
> I am looking for them in a dump
> 
> 
> 
> I know the acronym ALE: in a dump stands for Access list element
> 
> 
> 
> I also know that STCBALOV offset X'20 from the STCB for the TCB I am 
> running under points to it
> 
> 
> 
> At that are all I see is X'8... not my two alets
> 
> 
> 
> I see the same in a dump. 
> 
> 
> 
> Under the ALE: heading.
> 
> 
> 
> Just wondering where I would find them. 
> 
> 
> 
> Thanks
> 
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions, send 
> email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions, send 
> email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: finding DU-AL in a dump

2023-03-30 Thread Glen Garrison
Take the last 2 bytes of your alet, multiply by x'10' and add to the value of 
stcbalov. (index into the du-al).  That gets you to the ALE

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Joseph Reichman
Sent: Thursday, March 30, 2023 8:44 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] finding DU-AL in a dump

Hi

v

I have two  ALETS one from an address space one from a dataspace they are both 
on DU-AL I put them there via ALESERV AL=WORKUNIT

 

I am looking for them in a dump 

 

I know the acronym ALE: in a dump stands for Access list element

 

I also know that STCBALOV offset X'20 from the STCB for the TCB I am running 
under points to it

 

At that are all I see is X'8... not my two alets 

 

I see the same in a dump. 

 

Under the ALE: heading.

 

Just wondering where I would find them. 

 

Thanks


--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: GETMAIN LOC=32

2018-05-11 Thread Glen
As far as I know, IBM did produce a mainframe with 32 bit virtual 
addressing.


There might not be many around, and I don't think Hercules has this 
mode, but the 360/67 has 32 bit virtual addressing, along with BAS and 
BASR to use it.


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Change in GETMAIN behavior

2015-11-25 Thread glen herrmannsfeldt
> From: "Tony Harminc" <t...@harminc.com>
 
> On 19 November 2015 at 10:14, Gary Weinhold <weinh...@dkl.com> wrote:
> > But you have a valid concern about vendors' assembler code.  We should be
> > asked whether we know about this.
 
(snip)
 
> One slighly related point: It has been the case from day 1 of MVS
> (OS/VS2 R2) that even though GETMAIN can give out non-zeroed storage,
> that storage will never contain data left over from another address
> space, or from a fetch protected subpool in the current or common
> space. This would be a violation of the MVS statement of system
> integrity, and if found would be fixed very quickly.

As far as I know, OS/360 didn't zero GETMAIN storage, and didn't
guarantee that it didn't have anything left over from another job,
or other task of your program.

OS/VS2 R1.x was mostly MVT with VS added, though there likely were
changed to GETMAIN.  (As well as I know it, MVT uses GETMAIN to
allocate partitions for jobs, in addition to its usual use.)

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: NFS Client implementation query

2015-09-17 Thread glen herrmannsfeldt
In article 

Re: V constants

2015-08-26 Thread Glen Hermannsfeldt (Contractor)
-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Elardus Engelbrecht
Sent: Wednesday, August 26, 2015 5:05 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: V constants

Glen Hermannsfeldt wrote:

I assembled:

*  test V constants
 EXTRN  XXX
XXX  DC V(XXX+4)
 END

with Z390.  It assembled the 4 into the constant without any error or warning 
message.  Same with the EXTRN removed, or replaced by an ENTRY statement.

Can you please post the result of XREF and LIST? It would be interesting to see 
the resultant assembly and their offsets.

A different question, is what does the linker do in this case?  
For A constants, the linker adds the value assembled into the constant (the 
offset).

Where? I'm not sure what offset in what sections are you referring?

I would like to compare that with Peter Relson's reply.

Groete / Greetings
Elardus Engelbrecht

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


V constants

2015-08-25 Thread Glen Hermannsfeldt (Contractor)
I assembled:

*  test V constants
 EXTRN  XXX
XXX  DC V(XXX+4)
 END

with Z390.  It assembled the 4 into the constant without any 
error or warning message.  Same with the EXTRN removed, or replaced
by an ENTRY statement.

A different question, is what does the linker do in this case?  
For A constants, the linker adds the value assembled into the constant (the 
offset).

-- glen

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of John Ehrman
Sent: Tuesday, August 25, 2015 10:32 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IBM-MAIN Digest - 23 Aug 2015 to 24 Aug 2015 (#2015-236)

On 
Sun, 23 Aug 2015 23:25:53 -0500
Paul Gilmartin paulgboul...@aim.com
asked regarding 8-byte V-cons

   EXTRN EXTERNAL
   DCV(EXTERNAL+4) points at EXTERNAL
   DCA(EXTERNAL+4) points 4 bytes past EXTERNAL

Why isn't the former code reported as a syntax error?  (If not 
assembled as coded.)

Has anyone tried assembling it?  8-)
John Ehrman

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Ideas for hash of a sequential data set

2015-08-20 Thread Glen Hermannsfeldt (Contractor)
Is this the relative or absolute TTR? The MBBCCTTR will change for an exact 
copy. 

Which DSCB fields won't change for a block for block copy of the data set?

-- glen

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Charles Mills
Sent: Thursday, August 20, 2015 10:53 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Ideas for hash of a sequential data set

I did misunderstand you and yes, you are right, one very common change would be 
an append, and that would change the last TTR field and thus the DSCB hash -- 
as would any total rewrite that did not happen to be the same length. 

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Kirk Wolf
Sent: Thursday, August 20, 2015 10:46 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Ideas for hash of a sequential data set

Charles,

I think that you misunderstood me.
I'm suggesting that the cheap first hash (used to rule out common changes) 
would be over a combination of:

- the first n bytes of the data set (just like you suggested)
- the F1/F8 DSCB  (which has stuff like DS1LSTAR and DS1TRBAL which helps to 
detect common changes to the end

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3380 was actually FBA?

2015-08-12 Thread Glen Hermannsfeldt (Contractor)
The important distinction of FBA is that block headers aren't rewritten when 
the data is changed.
(Not counting when a low-level format is done, normally for the whole drive.)

I don't know the low-level details of the 3380 to know.  It might be that the 
32 byte
blocks are related to ECC, and are not FBA-like blocks.  If block headers are 
not 
rewritten, then I would call it FBA-32 under the hood.

-- glen

-Original Message-
(snip)

 Was that the first (and/or last?) IBM SLED to be inherently FBA under the 
 hood? Where were the smarts for that implemented, in the control unit, or the 
 drive itself?


The count, key, and data field data on a native 3380 were written in 32-byte 
increments, but since a physical data block could be an arbitrary number of 
32-byte chunks and unused 32-byte chunks at varying positions around the track 
had to be wasted between physical blocks for inter-block gaps, I wouldn't call 
this FBA-under-the-hood.  The physical block size (up to 31-bytes larger than 
known to the Operating System) definitely wasn't Fixed, just restricted to a 
multiple of 32 bytes.
The only fixed part of the track architecture was the 32-byte increment size.

Perhaps at the actual device hardware level a 3380 could have been given the 
capability to randomly address, read, and write individual 32-byte track 
increments while using all possible 32-byte increments on the track for data, 
but I would expect that would have been a much more expensive design than was 
required to support CKD architecture.  My strong impression was that the erased 
IBG  between physical blocks was a requirement for proper sensing of beginning 
of a block.  The requirement that some 32-byte increments must be left unused 
for IBGs indicates these 32-byte groupings do not play the same role as fixed 
data blocks in FBA architecture devices.


-- 
Joel C. Ewing,Bentonville, AR   jcew...@acm.org 

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Limit number of frames of real storage per job

2015-08-07 Thread Glen Hermannsfeldt (Contractor)
 Anne  Lynn Wheeler wrote

 apl\360 would allocate new storage for every assignment statement,
 quickly using every available location in workspace ... and then it would 
 collect
 everything in contiguous storage (garbage collect) and then start all over 
 again..
 This wasn't too bad with apl\360 typically 16kbyte (sometimes 32kbyte)
  workspaces there were swapped as integral unit. the initial port of apl\360 
 to
 cp67/cms for cms\apl was something of a problem because it allowed
 workspaces that were the size of virtual memory ... and strategy would quickly
 result in page thrashing (repeatedly touching every virtual page regardless
 of actual programdata size).

One that I have always wondered about, PL/I (F) at the end of a compile run,
tells how much memory it used out of the total available.  Does it find out
how much is available without paging in all those pages?

Seems to be something that MVT would not notice, but could be very
Important on VS systems.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Limit number of frames of real storage per job

2015-08-07 Thread Glen Hermannsfeldt (Contractor)
 The usual C malloc() keeps track of allocated memory with data just 
 before each allocated block.

 As well as I understand it, GETMAIN works similarly.

(snip)
 
 I believe that there have been some improvements along the way, but 
 don't know about them.

  At least since MVS/XA (circa 1982), VSM control information is kept in 
 cell pool extents located in ELSQA. 

In the OS/VS2 days, I had the manuals describing the way OS/360
does things like GETMAIN.   Back when you could almost understand
them without a lot of studying.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: z/OS stack vs heap storage

2015-08-07 Thread Glen Hermannsfeldt (Contractor)
In languages where the default is automatic (PL/I and C, for example), 
it is usual for variables in MAIN to be automatic. The compiler compiles MAIN 
the
same way, with a special routine that does some setup before calling actual 
MAIN.

In the case of PL/I with multitasking, it is possible for MAIN to be reentrant.
(I don't know all the details now, but pseudo-registers are used to keep track
of data that is different for different tasks, and isn't on a stack or linked 
list.)
To answer the question, in the case of multitasking you have to be careful with
static variables in main.

The usual implementation on OS/360 descendants is a linked list with dynamically
allocated list entries as save areas, logically, but not physically, a stack.  
Static variables are
generated using an appropriately named CSECT. 

Hope this helps.

--glen

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Frank Swarbrick
Sent: Friday, August 7, 2015 2:26 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: z/OS stack vs heap storage

Don't want to work on a Friday afternoon, so a question for you all...

I come from the VSE world where COBOL still does not have a LOCAL-STORAGE 
SECTION, so our code doesn't use that new feature (new within the last 20 
years, I guess!).  I know generally for a subroutine when you would want to use 
WORKING-STORAGE (heap/static) vs. LOCAL-STORAGE (automatic/stack).  I am 
curious is there any reason you'd ever want to use LOCAL-STORAGE in a MAIN 
program.  

It looks like for PL/I the default is AUTOMATIC.  I don't know if this 
implies anything with regard to COBOL storage types.

Thanks,
Frank

  
--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Limit number of frames of real storage per job

2015-08-07 Thread Glen Hermannsfeldt (Contractor)
The usual C malloc() keeps track of allocated memory with data just before each 
allocated block. 

As well as I understand it, GETMAIN works similarly.

As with the note about garbage collection, that tends to cause a lot of page-in 
references going
through the linked-list of memory blocks.  

I believe that there have been some improvements along the way, but don't know 
about them.

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Staller, Allan
Sent: Friday, August 7, 2015 5:15 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Limit number of frames of real storage per job

Would'nt the garbage collection cause page-in references as objects are 
collected and co-located?
Thus negatively affecting performance on page sensitive (e.g. CICS) 
middleware/applications.

Seems the advice to avoid garbage collection is sound to me (from a performance 
perspective).

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: useless but amusing: largest known prime

2015-08-05 Thread Glen Hermannsfeldt (Contractor)
Instead of a file with 57885161  C'1', I tried a file of 57885161 X'FF'.

BEGIN {
   for(i=0;i57885161;i+=8) printf %c,255;
}

08/05/2015  02:02 PM 7,235,646 prime.out
08/05/2015  02:03 PM 7,046 prime.out.gz
08/05/2015  02:04 PM90 prime.out.gz.gz

and as noted, two passes through gzip.

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Paul Gilmartin
Sent: Wednesday, August 5, 2015 12:57 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: useless but amusing: largest known prime

On 2015-08-05 12:50, Gibney, David Allen,Jr wrote:
 Taking 7M to store. I wonder how well that will compress :)
 
I decided to try something practical:

506 $
506 $ time awk 'BEGIN { for ( I = 0; I57885161; I++ ) printf( 1 )
 print }' | gzip | wc
  1   5   56203

real0m18.422s
user0m11.265s
sys 0m6.188s
507 $
507 $ uname -a
Linux Gil-CrunchBang-Lenovo 3.2.0-4-686-pae #1 SMP Debian 3.2.68-1+deb7u2 i686 
GNU/Linux

Dismaying; barely a factor of 1000.  And dumping shows obvious redundancy.
So I compressed it again (which rarely helps) and gained another factor of 200:

  0   8 255

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: useless but amusing: largest known prime

2015-08-05 Thread Glen Hermannsfeldt (Contractor)
8 bits per byte, all ones.

To do it right, the first should have 57885161%8 ones, but that probably doesn't
change the compression much.  But okay:

BEGIN {
   n=57885161;
   printf %c, rshift(255,8-n%8);
   for(i=1;in;i+=8) printf %c,255;
}

08/05/2015  04:01 PM 7,235,646 prime.out
08/05/2015  04:01 PM 7,047 prime.out.gz
08/05/2015  04:01 PM93 prime.out.gz.gz

Oh, yes, it should have said 7235646 bytes of X'FF',
Now it is X'01',723646X'FF'

(and the third compression increased the original from 90 to 110 bytes.)

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Bob Rutledge
Sent: Wednesday, August 5, 2015 2:54 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: useless but amusing: largest known prime

Why i+=8?

Bob

On 8/5/2015 5:11 PM, Glen Hermannsfeldt (Contractor) wrote:
 Instead of a file with 57885161  C'1', I tried a file of 57885161 X'FF'.

 BEGIN {
 for(i=0;i57885161;i+=8) printf %c,255; }

 08/05/2015  02:02 PM 7,235,646 prime.out
 08/05/2015  02:03 PM 7,046 prime.out.gz
 08/05/2015  02:04 PM90 prime.out.gz.gz



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


replacement CRTs for 3278s

2015-08-03 Thread glen herrmannsfeldt
Shmuel Metz  , Seymour J. shmuel+ibm-m...@patriot.net wrote:
 In 20150730231354.cffa74874...@lara.ugcs.caltech.edu, on 07/30/2015
   at 04:13 PM, glen herrmannsfeldt g...@ugcs.caltech.edu said:
 
Does anyone know where to get replacement, either new or with lots of
life left, CRTs for 3729
 
 3279?

It was supposed to say 3278 like in the subject.

I thought they would have been popular enough that there
would be some around.

Otherwise, we haven't tried CRT rejuvenation yet.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


replacement CRTs for 3278s

2015-07-30 Thread glen herrmannsfeldt
Does anyone know where to get replacement, either new or
with lots of life left, CRTs for 3729s?

thanks.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 1403 at 60Hz

2015-07-29 Thread glen herrmannsfeldt
(snip, I wrote)
  From one 1403 manual, I see some gears that are specified for 50Hz
 and for 60Hz, but I am not sure what they do. As far as I can tell,
 the train is powered by a synchronous motor (or close enough).
 I presume you don't want the train running 1.2 times as fast.

(snip, John Eells wrote)

 The print train (or chain, depending on model) in 1403s was direct 
 driven.  The vertical motor shaft was keyed to the print train.
 If the motor speed were to change, the hammer flight timing set in the 
 2821 control unit would be far off, resulting in the printing of partial 
 characters at best.  Whether they compensated for this with motor 
 wiring, a different motor, or different flight timing settings, I have 
 no idea.  (The factory took care of that stuff!)

 I don't recall any gears in the 1403, so it would be interesting to know 
 where any were that got changed for operation at 50Hz.  Are you sure 
 they are gears and not hydraulic unit drive belt pulleys?

https://ia601603.us.archive.org/35/items/bitsavers_ibm140xSY2nd3MaintManualDec71_21919776/SY24-3395-3_1403_Models_N1_and_3_Maint_Manual_Dec71.pdf

See page 31 (or 1-26). 

Induction motors run slightly slower (they aren't perfectly synchronous)
than some integer fraction of the line frequency. At 60Hz, one might
run at 3500 RPM or 1750RPM or 1150RPM (a little slip below 3600, 1800,
and 1200).  A 50Hz motor might run at 2900 RPM or 1450RPM or 950RPM.

But it isn't hard to change the gear coupling the motor to the chain
or train, such that the speed is right. 

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 1403 at 60Hz

2015-07-29 Thread glen herrmannsfeldt
(snip, someone wrote)
 I don't know power consuption, but nowadays it's not hard 
 to get semiconductor-based power supply which generater 60Hz 
 or 50Hz or any value you want (within some range).

(snip, someone else wrote)
(sorry for losing the attributions, I am copying from usenet)
 I suppose a 1403 requires a couple kW.  That shouldn't be an obstacle:

Yes, but an added complication. 

From one 1403 manual, I see some gears that are specified for 50Hz
and for 60Hz, but I am not sure what they do. As far as I can tell,
the train is powered by a synchronous motor (or close enough).
I presume you don't want the train running 1.2 times as fast.

I suspect that only synchronous motors need to run off a power
converter, which would allow for a smaller converter, but more
complication in wiring.

https://en.wikipedia.org/wiki/High-voltage_direct_current

 CDC equipment circa 1970 used 400 Hz with rotating mechanical 
 converters.

As I understood it at the time, larger S/360 and S/370 also
used motor-generator power supplies, though I don't know the
output frequency.  The higher frequency means less filtering.

But yes, you can run a CDC machine off an electronic converter.

 Provided considerable immunity to power surges.  Flywheels?

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


1403 at 60Hz

2015-07-28 Thread glen herrmannsfeldt
I wonder if anyone knows what has to change to move a 1403
from 50Hz to 60Hz?

If they use synchronous motors, then some belts or gears
would be different. 

For transformers, you need more iron in the core for 50Hz,
so 50Hz transformers should be fine at 60Hz, but not always
the other way around. That might also be true for motors,
but synchronous motors will run faster.

thanks,

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Strange 047 abend

2015-07-26 Thread glen herrmannsfeldt
 Is the EXECUTE instruction broken on your machine?

 With what you are doing, you could possibly cause ABEND047 
 (or all sorts of other abends) not on the STC instruction, 
 but on the AP instruction, if you had set a breakpoint on 
 the AP under TSO TEST. That could happen because you would 
 be changing the SVC number in the SVC instruction that replaces 
 the first two bytes of the AP for the breakpoint. 
 That could certainly cause some head-scratching.

And what does TSO TEST do if you EXecute a breakpoint SVC?

It would seem an interesting case for it to get right.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3705

2015-07-22 Thread glen herrmannsfeldt
William Jones bjo...@followup-to-newsgroup.com wrote:

(snip, I wrote)
 I am hoping to run Wylbur, Milten, and Orvyl,
 but TSO or VM/CMS are also possibilities.

 Is Wylbur or SuperWylbur available? I saw discussion on this years ago
 from Gerhard when he mentioned he was working on it but then nothing.

 I am not particularly interested in the source code unless that is how it
 was distributed. A plain IEBCOPY install would be wonderful.

Yes, Stanford Wylbur and Orvyl (and all the rest) are available
as open source on the Stanford web site.

It will probably take a little work to get running.  For one,
the terminal interface might be different for different systems.

Also, I believe Stanford moved away from the Susan SVC for communication
between the subsystems, but that might be needed again for MVS3.8.

Also, the job submission, hold, fetch, and release might be JES
dependent in some way.  For submission, I presume just write to
an internal reader. The rest require closer interaction with JES.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3705

2015-07-22 Thread glen herrmannsfeldt
William Jones bjo...@followup-to-newsgroup.com wrote:
On 2015-07-22, glen herrmannsfeldt g...@ugcs.caltech.edu wrote:
 William Jones bjo...@followup-to-newsgroup.com wrote:

(snip, I wrote)
 I am hoping to run Wylbur, Milten, and Orvyl,
 but TSO or VM/CMS are also possibilities.

 Is Wylbur or SuperWylbur available? I saw discussion on this years ago
 from Gerhard when he mentioned he was working on it but then nothing.

Wylbur originated at Stanford, then to NIH, then to some other
places, including SLAC. Later, SLAC ran the later versions
of Stanford Wylbur/370 and Orvyl/370.

I believe SuperWylbur is a commercial product, derived from one
of the others.

(snip)
 Yes, Stanford Wylbur and Orvyl (and all the rest) are available
 as open source on the Stanford web site.

 I used SuperWylbur in the 1970s but did not realize it came from 
 Stanford or perhaps I simply forgot. I thought it was 
 a proprietary product. This is very good news. I wonder if 
 Gerhard is aware of it. I follow most of the IBM lists but 
 very seldom post. I believe his comments about this were on one 
 of the Hercules lists a few years ago.

 Also, I believe Stanford moved away from the Susan SVC for communication
 between the subsystems, but that might be needed again for MVS3.8.

 I am not familiar with that but thanks for noting it. If I try to get this
 going I'll have to look it up. If the source isn't available it should be
 possible to reconstruct the SVC as long as the specs are available 
 somewhere.

I believe the source is there, just put all the parts together.

 Also, the job submission, hold, fetch, and release might be JES
 dependent in some way.  For submission, I presume just write to
 an internal reader. The rest require closer interaction with JES.

 Yes. My recollection is so hazy to the point I remember little aside from
 the name and the fact it allowed us to use terminals to edit and submit jobs
 before ISPF was available. But more than that I cannot recall. I suspect you
 would be right about the JES or possibly HASP interface. Yet, I believe it
 was running on something very close to the 3.8J system so perhaps it will
 just work.

SLAC had Wylbur running with ASP, which became JES3. 
I believe the Stanford campus ran with HASP and/or JES2.

I don't know at all how that works, but hopefully the code is
there and the manuals are available.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3705

2015-07-22 Thread glen herrmannsfeldt
http://www.livingcomputermuseum.org/About-Us/What-is-Living-Computer-Museum.aspx

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3705

2015-07-22 Thread glen herrmannsfeldt
Shmuel Metz  , Seymour J. shmuel+ibm-m...@patriot.net wrote:

(snip, I wrote)

To connect terminals to a 3705.
 
 That's *WHAT*, not *WHY*. Why real terminals and why through a 3705?

Probably some real terminals, and a terminal server for people
not close enough.

https://en.wikipedia.org/wiki/George_Mallory

  Mallory is famously quoted as having replied to the 
   question Why do you want to climb Mount Everest? with 
   the retort Because it's there,

I think that is as close as I know to the reason to run 
a real 3705.  Because it is there. 

Yes one can run emulated programs on an emulated host with
emulated terminals connected to an emulated 3705.

But it isn't the same.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3705

2015-07-21 Thread glen herrmannsfeldt
Shmuel Metz  , Seymour J. shmuel+ibm-m...@patriot.net wrote:
 In 20150721061350.bb5994874...@lara.ugcs.caltech.edu, on 07/20/2015

(snip, I wrote)
OK, I forgot that the Usenet gateway doesn't work anymore.

I am wondering what software one needs for a 3705 to connect up
ordinary ASCII terminals.

 NTO. Why?

To connect terminals to a 3705.

Well, maybe a terminal server instead of terminals.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3705

2015-07-21 Thread glen herrmannsfeldt
(snip, I wrote)
 To connect terminals to a 3705.

 Well, maybe a terminal server instead of terminals.

 I'm posting to Usenet.
 (Can't be bothered.)

That is where I read it, so fine with me.

 A display?  Do you intend to use ISPF, CMS?
 You need to provide better info.

I am hoping to run Wylbur, Milten, and Orvyl,
but TSO or VM/CMS are also possibilities.

We might also be interested in RJE, if the 3705
can do that.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


3705

2015-07-21 Thread glen herrmannsfeldt
OK, I forgot that the Usenet gateway doesn't work anymore.

I am wondering what software one needs for a 3705 to connect
up ordinary ASCII terminals.

For example, what would be needed to use TSO or Wylbur on
ASCII terminals?  I know this is what was done 35 years
ago, but I don't know now who knows how to do it.

I do remember that for dial-up lines it would allow for 300
baud or 110 baud, or even for 2741s, depending on the first
character you typed. Hardwired lines were fixed speed, and
could be higher than 300.  (I believe O for 300 baud, and 
S for 110 baud.)

Faster lines might only be at a fixed baud rate.

thanks,

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: RPG for the 360/20

2015-06-16 Thread glen herrmannsfeldt
In article 
of4a881d2e.1388e6c9-on48257e66.00179ed9-48257e66.001c4...@sg.ibm.com you 
wrote:
(snip)

 As for where you'd obtain any of these compilers (except obviously
 5740-RG1), I'm not sure. You could try the roughly five organizations that
 have actual Model 20 machines in their collections. They include the Living
 Computer Museum in Seattle, the Computer History Museum in Mountain View
 (California), and the Deutsches Museum in Munich, as examples. IBM Research
 in Boeblingen, Germany, also apparently has a Model 20 on display, and
 (allegedly) it's a working model -- though I have no direct knowledge of
 that. You could also try asking W. Van Snyder at NASA's JPL who (it seems)
 has also been trying to track down these older compilers.

I am at the Living Computer Museum, which is why I am interested in one.

I asked Boeblingen people, and they don't have it.  I think they would
also be interested if I found one.  Definitely their machine runs,
at least some of the time. 

Many compilers require disk or tape, which we don't have. 

I am wondering about someone with card trays left over from years ago.

thanks,

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


RPG for the 360/20

2015-06-15 Thread glen herrmannsfeldt
Just wondering, does anyone know where a copy of the RPG compiler
for the 360/20 is?  Presumably on cards, but maybe some other form.

Other 360/20 software could also be useful, but mostly if it
doesn't need disk or tape.

thanks,

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Mysterious U4088-63 from RPTSTG(ON)

2015-05-27 Thread glen herrmannsfeldt
In article 09a301d098e6$0607d120$12177360$@mcn.org you wrote:

(snip)

 I have isolated the ABEND to a call to a self-written assembler function
 called ISAUTH. I execute a printf() immediately before the call but not a
 printf() after. I am posting below the entire code of ISAUTH. CDSALEN has a
 value of x'60C'. I think other than that the code snippet is self-contained.
 
(snip)
 It used to work. What changed? I added some functions and the module grew to
 have addressability problems, so I added an IEABRCX DEFINE. I have eyeballed
 the code generated by EDCPRLG and it appears correct -- now with a BRC 15
 instead of a B. It would be inconvenient to get the IEABRCX back out of
 there as a test.

Can you post the expansions of EDCPRLG and EDCEPIL?

I presume they do save and restoring of registers, and appropriate
save area linkage, but it would be nice to see the expansion.
 
 The function is declared in C++ as extern OS {bool ISAUTH();}. The other
 functions are declared similarly.
 
 AMODE 31/XPLINK(NO)
 
 Does anyone have any clues?
 
 ISAUTH   EDCPRLG DSALEN=CDSALEN,BASEREG=NONE
 LARL  R12,CZAMISC
 USING CZAMISC,R12
 *
 *  ***   USING CDSASTOR,R13 Use R13 as base for reentrant store
 *
 *  Issue the TESTAUTH
 TESTAUTH FCTN=1
 *
 *  TESTAUTH returns 0 = yes, 4 = no
 *  We return 1 = yes, 0 = no
 SRL   R15,2   Convert 4 into 1
 LCR   R15,R15 Convert 1 into -1
 AHI   R15,1   Convert 1 into 0 and 0 into 1
 *
 *  ***   J Ret_R15Return whatever is in R15
 EDCEPIL ,

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Odd directory in /SYSTEM/var/

2014-11-03 Thread Glen Gasior
Directory name contains string .Ýd What does it mean?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Odd directory in /SYSTEM/var/

2014-11-03 Thread Glen Gasior
EUID=0   /SYSTEM/var/.ÝD.ÝD.ÝD.ÝD.ÝD.ÝD.ÝC.ÝC.ÝC.ÝC.ÝC.ÝC.ÝC.ÝC.ÝC.ÝC.ÝD.ÝD.ÝD
  Type  Perm  Changed-CST6CDT   --Size  Filename   Row 1 of 5 
_ Dir755  2014-11-02 12:298192  . 
_ Dir777  2014-11-02 13:588192  ..
_ Dir755  2014-11-02 12:298192  clientmqueue  
_ Dir755  2014-11-02 12:298192  cron  
_ Dir755  2014-11-02 12:298192  mqueue   

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: IBM C compiler substituting for macros inside literals?

2014-09-01 Thread glen herrmannsfeldt
Charles Mills write:



 #define V 5
 #define STRINGZ(a,b,c,d) printf(%d %s %s %s %s\n, V, #a, #b, #c, #d)
STRINGZ(The, quick, brown, fox);

 the compiler is making of it

 printf(%fox %s %s %s %s\n, 5, The, quick, brown, fox);

As I understand it, this is usual for the pre-ANSI preprocessor.

Well, not quite as pre-ANSI the # stringizing operator didn't
exist, but since it did substitute inside quotes, you didn't
always need it.

Newer compilers will do this with the -traditional option.

Many compilers now do the preprocessing as part of the compilation,
instead of as a separate step with intemediate file, as was done
traditionally.

Also, the traditional (not ANSI) preprocessor is often used
with Fortran, and some other languages (such as make) that
don't work with the ANSI version.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: OPEN not filling in DCBBLKSI for RECFM=U data set

2014-07-18 Thread glen herrmannsfeldt
Paul wrote: 

 IBM designers a half century ago are not to be forgiven for the 
 continuing anguish they inflicted on programmers in order to save 
 two bytes in the DCB.  There should have been two separate fields, 
 one for the label block size; the other for the size of the 
 block currently being processed.

As explained in Mythical Man Month, programmers had byte budgets
when writing OS/360. It had to be able to fit, even on the smaller
systems.

 For example, I learned, painfully, that to write a short block with 
 BSAM at the end of a RECFM=FB data set, I need to set DCBBLKSI 
 to the length of that block.  I did, and my data set was unreadable.  
 I was astonished and dismayed to learn that value was copied to 
 the DSCB on CLOSE.  I needed to save and restore it, wasting 
 far more storage than a distinct halfword in the DCB would 
 have spent.

OK, but the code for doing OPEN and CLOSE can easily be in an
overlay, and so doesn't take up space during normal processing.

Even more, on the smaller systems I/O was unblocked (because you
couldn't afford the memory for a larger buffer) and so there was
no need to change DCBBLKSI as it was always DCBLRECL even on the
last block. The overhead to save and restore only occurs on 
larger systems.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: XR vs SR

2014-06-04 Thread glen herrmannsfeldt
David Bond wrote:
 
 Anyone who thinks that the S/360 instruction timings have any relevance to
 how machines work today has no understanding of the last several decades of
 processor design. Yes, simple instructions generally execute faster than
 more complex instructions. But even that rule of thumb is overshadowed by
 pipeline stalls caused by register dependencies, Address Generation
 Interlock, address translation, cache effects, branch prediction and other
 things.

Yes, but the S/360 timings are the only ones we have.
 
 In the specific case or XR vs SR, both are the same speed on probably any
 machine since 1975. But neither can be faster than LHI because XR and SR set
 the condition code and LHI does not. Setting the condition code is a
 separate suboperation. 

I used to know how the 360/91 did some of this. I am not sure by now
how it did register renaming, and the condition code complicates it,
but I think if the condition code is set soon after, before any
instruction that tests it, the processor can avoid that problem.

The 91 could be much more aggressive in reordering instructions,
is it didn't have to worry about page faults. 

 The difference in the length of XR and SR vs LHI does
 not make up for the fact that XR and SR are more complex than LHI.
 Furthermore if i-cache has any measurable effect, then alignment or
 misalignment of blocks of instructions to i-cache boundaries will almost
 always have a bigger effect than individual instruction length.

(big snip)

If someone really wanted to know the specifics of some instruction
use timing, one could take a complex benchmark, such as some 
of the SPEC programs, Carefully compile it twice, such that one,
for example used XR and the other SR to clear registers, then time
the difference. Do it a few times to make sure that the difference
was reasonably statistically significant.  

With enough different runs of different programs, one could compute
the statistical average execution time for each instruction in
actual programs. Hopefully it would average over cache misses.
Pipeline stalls probably shouldn't average out, as you want the
proper statistical cost in actual use.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


XR vs SR

2014-06-02 Thread glen herrmannsfeldt
Robin wrote:

 XR Rn,Rn is faster than SR.
 But does it matter?

Who says that XR is faster than SR?

I know the IBM OS/360 software and compilers generate SR
instead of XR.

From: 

http://bitsavers.trailing-edge.com/pdf/ibm/360/A22_6825-1_360instrTiming.pdf

on many S/360 models SR was much faster than XR, equal on the 2040,
and not slower on any.

Do you have any timings for high-end S/370 or later models?

(With instruction overlap, it is pretty much impossible to give
single instruction timings on many models.)

Since IBM software assumes SR is faster, they would have a reason
to special-case it on any later models, but maybe not XR.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


BCT or BCTR

2014-06-02 Thread glen herrmannsfeldt
Someone wrote:

 And you can use BCTR to save a few µS.

 Why do you think BCTR would save such a large amount of time? Perhaps
 you're again talking about old machines. Surely BRCT/JCT would be the
 time saver on a current machine if there is one for this case.

Yes, he must have been thinking about an old machine, specifically
the 360/40. It is about 5 microseconds on the 360/30.

Interestingly, BCT is faster than BCTR on the 360/50 and up.

Newer machines with branch prediction will normally predict the
branch as taken, and the time will be independent of which form
is used, except possibly for the first time.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Data flow for 1403-N1?

2014-05-31 Thread glen herrmannsfeldt
From GA24-3073-8_1403_printer.pdf on bitsavers, in figure 4, it
looks like 48 train characters align with 132 print positions, 
and gcd(132,48) = 12 chain characters, or every 11th print position,
can be aligned at once. (Chain printers are all except 3 and N1.)

The formula on page 27 indicate that it takes 
about 240*0.000729s, or 0.175s for the train to go around in the N1, 
and 240*0.001665s, or 0.400s on the chain printers.

With 240 characters, those are 729us and 1665us for the chain/train
to move one chain/train character position, or to move 132/48 print
character positions. As noted above, every 11th print position is
aligned at once, so 1/11 of that between hammer firing positions.
So, for the non-N1 1665us*48/132/11 or 55us, and, assuming the
other numbers are the same, 729us*48/132/11 or 24us for the N1.

The character print speed on the N1 and 3 is about twice as fast as
the other models.

I don't see anything saying that the spacing of the characters on
the train and chain printers is different.

Every 11th print position for simultaneous firing sounds closer to
what I remembered, and makes it easier to build power supplies
(which have to supply peak current).  It only takes a small shift
in the spacing, though, for a very different value.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: IBM Hijacking User SVC ABEND code S048

2013-04-03 Thread glen herrmannsfeldt
Someone wrote:

  An abend from SVC 248 would be FF8, not 0F8, user or not.  I used 
   to see FFE abends from time to time in a prior shop, and it was 
   from one of our IMS or ISV SVCs (can't remember which now), which 
   happened to be 254 (FE).

  0F8 is an abend in Supervisor control, IEAVESVC, and is for 
   the reason documented in System Codes, as Tom Marchant 
   included in a prior response.

As well as I remember, the SFxx codes are when an SVC is issued and
no SVC routine is there to service it. I believe that is true for IBM
range and User range, but at least user range. 

Now, what is SVC X'22' where the ABEND codes like 322 come from?

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: COBOL packed decimal

2012-07-15 Thread glen herrmannsfeldt
(John Gilmore wrote)
 
 A little presumptuously perhaps, I shall reply for 'someone'  He or
 she would appear to be a soul mate.
 
 The remark about floating-point that Mr Hermannsfeldt attributes to
 Knuth are relevant to HFP and, perhaps, BFP.  Their timing moots any
 relevance to Cowlishaw's DFP.

Well, the remark, as far as I know, was intended to be general,
and at the time there were many different floating point systems
in use. 
 
 Moreover, they arev not relevant to it: it uses decimal digits, 
 sand Mr Hermamnnsfeldt's post does not petray any acquaintance 
 with it.

I have followed it since before 2008, a few times posted (maybe in
other groups) that I believe it is a good idea. It should reduce,
for example, the number if people who find that (1./3.)*3. is not 1.0,
and in fact truncates to zero.
 
 The rest of Mr Hermannsfeldt's is also less than confidence-inspiring.
 Consider,

 begin extract
 The period of the earth's orbit is 365.256363004 days, or known to
 about 1 part in ten to the 11th.
 /end extract
 
 Now there are many measurements and calendrical definitions of the
 period of the earth's orbit.  The measurements most widely used are
 those for the mean tropical year, the time between successive vernal
 equinoxes.  Its current value is 365.2421_9668, but its precision is
 an elusive notion because its value is known to be dropping.

That is true, but the point being that once one does define an
appropriate year it is possible to measure it with an amazing
degree of precision. Even so, smaller times, such as the period
of optical frequencies, can be measured with a much smaller absolute
uncertainty, though similar relative uncertainty.

There are many physical quantities that can be measured with
approximately the same relative uncertainty over a wide range
of magnitudes. For those quantities, floating point is especially
useful, as it allows for computations of quantities derived
from those, giving reasonable relative uncertainties.

For example, if one measures a length and time with 1e-8 
relative uncertainty, then one can compute a velocity with
about 1.4e-8 relative uncertainty. (That is, sqrt(2)*1e-8.)
That is true for nm to Mm scale, maybe fm to Em.

Actually, time can be measured with an absolute uncertainty
over a fairly wide range, but often only a relative uncertainty
is needed. 
 
 Now one of the major differences between the old Julian calendar,
 which has a mean year length during its four-year cycles of 365.25
 days, and the 'new' Gregorian calendar, which has a mean year length
 of 365.2425 days during its 400-year cycles, is just their very
 different leap-year rules, which give rise to these differences.
 
 Mr Hermannsfeldt's number suggests that the Julian calendar is better
 at handling precession than the Gregorian one, but this is not the
 professional consensus.

There was no such intention. It was meant as one example of a 
quantity that could be measured with an amazingly small relative
uncertainty.

Now, TeX does all its typesetting calculations in 32 bit with
16 bits after the binary point. (That is, the unit is 1/65536
of a US printers point, which is 1/72.27 of on inch.) 
That allows for resolution smaller than the wavelength of visible
light, up to about 37 feet or 11.5m. (If you need something bigger,
you can just scale it during printing.) Typesetting tends to have
an absolute error based on printing device resolution. Floating
point at 32 bits would not be so useful. One could go to 64 bit
float (in any base), but would still have to watch rounding.

More important, no rounding problems occur. Fixed point division
always truncates (at least for positive quantities) and a remainder
is supplied (when needed). 

Now, it is true that DFP helps with some of those problems, but
when programming in a high-level language one generally doesn't
know what kind of floating point will be used. Some, like HFP,
give a truncated quotient on divide (except on the 360/91), others
a rounded result. If you want identical results on all systems,
you have to be very careful with rounding modes. (Even if you
know its DFP, you might not be able to set the rounding mode.)

Note also that one is not so likely to use typesetting at the fm
(femtometer) or EM (exameter) scale. (The atomic nucleus is about
one femtometer, also called the Fermi, in diameter.)

Others can comment on financial calculations better than I can.
 
 E. B. White said long ago that people who like the word 'personalize'
 should of course be free to use it but not perhaps to teach others to
 do so.  My view of Mr Hermannsfeldt's views on floating-point
 arithmetic is of a piece.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Decimal arithmetic

2012-07-14 Thread glen herrmannsfeldt
(someone wrote)
 Some years ago this situation changed dramatically.  Mike
 Cowlishaw---he who designed REXX---devised what is now ANSI decimal
 floating point  (DFP).  DFP behaves consistently in ways that do not
 surprise accountants.  (All three floating-point formats are supported
 by zArchitecture hardware.)

According to D.E.Knuth, there are two things that should not be
done in floating point: financial calculations and typesetting.

Floating point is great for quantities with a relative error.
That is, where the uncertainty in measurement scales with the value.
One can measure lengths in nanometers or gigameters to about
one part in 100 million or so at best(*)

For quantities where the uncertainty does not depend on the 
magnitude, fixed point is a better choice. I expect my bank to
keep my balance to the cent, when I have either $1.00 or 
(rarely) $1,000,000.00 in my account.

Digital typesetting needs to be able to position glyphs on the
page consistently. The eye is amazingly sensitive to some types
of positioning errors. Knuth has an example of a typesetting
machine that was thought to have 5333 dot/inch resolution, but
turned out to be 5333 and a third dpi. The difference was visible
in printed output. TeX and Metafont use only fixed point arithmetic
for any calculation that affects the printed page. Some messages
to the user use floating point arithmetic.
 
 Although there has been ample tIme to do so, IBM COBOL does not yet
 support DFP.  It should.   When IBM COBOL does support DFP, it will be
 possible to eliminate packed-decimal (except as a transitional data
 type in certain conversion operations) from COBOL routines; and doing
 so will confer large performance advantages.

I suppose if one is careful in how it is used. Still, the 15 
decimal digits from S/360 packed decimal should be enough for
most uses. (31 digits for add/subtract.) 

--

(*)

(The lattice constant for crystalline Silicon is
 543.102 0504 x 10^-12 m with a relative error of 1.6 
in 100,000,000.)

The radius of the earth is about 6371km. Because the earth isn't
a perfect sphere it is hard to give it much more accurately, though
one could measure the distance between two points on the earth
more accurately. The semi-major axis of the earth's orbit 
is 149598261km, so again to about one part in 100,000,000.

The period of the earth's orbit is 365.256363004 days, or known
to about 1 part in ten to the 11th. Optical spectra lines can
also be measured to a similar relative uncertainty.

-- glen

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN