Re: Edit Masks

2022-03-10 Thread Hobart Spitz
That would work.  However, unless you're planning to have decimal positions
later or change between leading zeros and leading blanks, you can drop ED
and the mask and just use UNPK.  Using ED in your case is just making more
work for yourself.


OREXXMan
Q: What do you call the residence of the ungulate with the largest antlers?
A: A moose pad.
:-D
Would you rather pass data in move mode (*nix piping) or locate mode
(Pipes) or via disk (JCL)?  Why do you think you rarely see *nix commands
with more than a dozen filters, while Pipelines specifications are commonly
over 100s of stages, and 1000s of stages are not uncommon.
REXX is the new C.


On Thu, Mar 10, 2022 at 8:47 AM Dave Clark  wrote:

> If I have a 3-byte packed decimal field (and let's say 0 decimals
> for simplicity), I might normally go with the following edit mask if I
> didn't want to retain leading zeros but leave one zero for a value of
> zero.
>
> x'40202020212060'
>
> But if I wanted to retain leading zeros, would you simply change
> the fill byte to x'F0'?  ...or would you do something else?
>
> Sincerely,
>
> Dave Clark
> --
> int.ext: 91078
> direct: (937) 531-6378
> home: (937) 751-3300
>
> Winsupply Group Services
> 3110 Kettering Boulevard
> Dayton, Ohio  45439  USA
> (937) 294-5331
>
>
>
>
> *
> This email message and any attachments is for use only by the named
> addressee(s) and may contain confidential, privileged and/or proprietary
> information. If you have received this message in error, please
> immediately notify the sender and delete and destroy the message and all
> copies. All unauthorized direct or indirect use or disclosure of this
> message is strictly prohibited. No right to confidentiality or privilege
> is waived or lost by any error in transmission.
>
> *
>


Re: Base-less macros

2021-11-12 Thread Hobart Spitz
This draft document, entitled Register Constraint Relief 2021,
coincidentally addresses the subject of Base-less/Base-free Macros.  See
references to Base Address Register (BAR) 15 and relative addressing for
all base/displacement operands..

https://docs.google.com/document/d/19O8Z-H3XcgiDWOI_zO4NM8JnRHllGn91sFTDtgQ39bc/edit?usp=sharing


OREXXMan
Would you rather pass data in move mode (*nix piping) or locate mode
(Pipes) or via disk (JCL)?  Why do you think you rarely see *nix commands
with more than a dozen filters, while Pipelines specifications are commonly
over 100s of stages, and 1000s of stages are not uncommon.
REXX is the new C.


On Wed, Nov 10, 2021 at 3:02 AM Jonathan Scott 
wrote:

> The documentation update for APAR PH34824, for the alignment of
> literals referenced by relative address, has now been completed.
>
> https://www.ibm.com/docs/en/hla-and-tf/1.6?topic=instruction-literal-pool
>
> It seems it was overlooked after being transferred from our old
> request tool to the new - a case of "falling between two tools".
>
> Jonathan Scott, HLASM
> IBM Hursley, UK
>


Re: EQU * considered harmful

2018-08-02 Thread Hobart Spitz
I think we are missing some points here.  If you put a label on an
instruction, the symbol is defined with the correct length (2, 4, or 6),
and a type of C'I'.  Unless and until there is a MACRO that does this, I
can't endorse either DS 0H or EQU *; use structured macros instead.


OREXXMan
JCL is the buggy whip of 21st century computing.  Stabilize it.
Put Pipelines in the z/OS base.  Would you rather process data one
character at a time (Unix/C style), or one record at a time?
IBM has been looking for an HLL for program products; REXX is that language.


On Thu, Aug 2, 2018 at 4:29 PM Steve Thompson  wrote:

> On 08/02/2018 04:09 PM, Paul Gilmartin wrote:
> > On 2018-08-02, at 14:00:37, Steve Thompson wrote:
> >>
> >> I haven't touched a Univac since 1979. So I forgot a few things. But
> still, the 36 bit words made it a pain for communicating with a DEC. I was
> asked how to get them to talk to each other... It was interesting --
> thankfully I kept doing FORTRAN-77 and someone else built the interface box.
> >>
> > "If you don't have 36-bit words, you're not playing with a full DEC!"
> >
> > PDP-6, decsystem-10 and decsystem-20 had 36 bits.  Vax broke the mold.
> >
> > -- gil
> >
> It was NASA. They were using old equipment. I don't remember
> which DEC boxes they had, I was told that the I/O interface was
> 16bits wide.
>
> But, the Space Shuttle flew in spite of the fun we had writing
> the ground support software. -- Goddard Space Flight, Beltsville MD
>
> Regards,
> Steve Thompson
>


Re: An idea I got when researching a bug - warnings when a specific register is changed

2018-06-28 Thread Hobart Spitz
Phil.

I went to Cornell, where PL/C was developed.  In my freshman class, anyone
who already knew a programming language (I knew 3 then) was given work in
PL/1 (as then called), using PL/C, instead of in FORTRAN.  I think we were
one of the first classes, if not the very first, to beta test it.  Being
skeptical of compiler output has been a helpful skill ever since.

Where did you use PL/C?


OREXXMan
JCL is the buggy whip of 21st century computing.  Stabilize it.
Put Pipelines in the z/OS base.  Would you rather process data one
character at a time (Unix/C style), or one record at a time?
IBM has been looking for an HLL for program products; REXX is that language.

On Thu, Jun 28, 2018 at 4:23 PM, Phil Smith III  wrote:

> Hobart Spitz wrote:
> >the latter..., or something even milder, I just don't know what.  Getting
> >into the habit of ignoring warnings is not a great idea, and it means
> >questions for the next person that has to look at your code.
>
> Thanks for taking my point as intended, sir. Always risky these days...!
>
> Absolutely, ignoring warnings is a Very Bad Habit. My first official
> (computing) language was PL/I (well, PL/C): I sat in on my dad's university
> course the summer of 1975, after my 8th grade. He taught me to examine and
> hopefully eliminate any warnings. At the time, I thought PL/I was anal
> about such things; now that I have to deal with C, I long for PL/I. I feel
> like in C there are lots of warnings that "everybody ignores" (often by
> telling the compiler not to issue them), whereas in PL/I I don't recall
> being unable to eliminate every one of them legitimately.
>
> I like the idea of PROTECT/UNPROT instructions*. Seems like the cleanest
> way to do it to me.
>
> So, we'll have this later this year, right? :)
>
> ...phsiii
>
> *I wasn't sure of the right term for "a thing that the assembler looks at
> but doesn't actually generate code"; Google found me IBM pages that refer
> to USING as an "instruction", so I would take PROTECT/UNPROT to be in the
> same category. Happy to be corrected, as ever.
>


Re: An idea I got when researching a bug - warnings when a specific register is changed

2018-06-28 Thread Hobart Spitz
Phil,

> Seriously, not picking a fight, just don't understand whether you're
saying "This doesn't work because" or "Note that in cases like this,
there'd be some tinkering"?

the latter..., or something even milder, I just don't know what.  Getting
into the habit of ignoring warnings is not a great idea, and it means
questions for the next person that has to look at your code.

I like the general idea.  AKAIK, there is an EQU feature that checks that
you are using the right size register (32 or 64 bit) with the right
instruction.  Perhaps something similar would do the trick.

Or maybe just a macro, like:

  macro

lbase  ,   Load a USING base reg

  unprot 

l  ,

  protect 

  mend



OREXXMan
JCL is the buggy whip of 21st century computing.  Stabilize it.
Put Pipelines in the z/OS base.  Would you rather process data one
character at a time (Unix/C style), or one record at a time?
IBM has been looking for an HLL for program products; REXX is that language.

On Thu, Jun 28, 2018 at 10:22 AM, Phil Smith III  wrote:

> Hobart Spitz wrote:
> >If you are traversing a linked-list of control blocks (e.g.), you might
> >validly modify a USING register that points to a DSECT of that control
> >block.
>
> Sure, but...so? You'd explicitly unprotect, change, reprotect. That's the
> whole point. (Or not protect at all; this is optional, after all.)
>
> Seriously, not picking a fight, just don't understand whether you're
> saying "This doesn't work because" or "Note that in cases like this,
> there'd be some tinkering"?
>


Re: An idea I got when researching a bug - warnings when a specific register is changed

2018-06-27 Thread Hobart Spitz
On 25 June 2018 at 21:49, Phil Smith III  wrote:

>
> Seriously, l like it and would use it. I'd prefer it not be tied to USING
> because there are other reasons to not use a register (I think; can't come
> up with any offhand, but I feel like there are?). Maybe:

If you are traversing a linked-list of control blocks (e.g.), you might
validly modify a USING register that points to a DSECT of that control
block.


OREXXMan
JCL is the buggy whip of 21st century computing.  Stabilize it.
Put Pipelines in the z/OS base.  Would you rather process data one
character at a time (Unix/C style), or one record at a time?
IBM has been looking for an HLL for program products; REXX is that language.

On Mon, Jun 25, 2018 at 4:11 PM, Rob van der Heij  wrote:

> On 25 June 2018 at 21:49, Phil Smith III  wrote:
>
> >
> > Seriously, l like it and would use it. I'd prefer it not be tied to USING
> > because there are other reasons to not use a register (I think; can't
> come
> > up with any offhand, but I feel like there are?). Maybe:
> >
> > I suppose there are plenty of cases outside the USING where it is harmful
> to modify a register. Don't forget the base register, for those who don't
> write baseless yet. And reading the value from the wrong register can also
> keep you entertained for a while. I find these bugs mostly get in when I go
> back and change the original choice of registers because it appears handy
> to pick another one.
>
> Quite often the USING remains valid but the register points to another
> object. I can see how you would put the USING and DROP within the loop when
> the pointer is incremented. When you're picking up the next pointer from a
> chain, you end up having to quality the field outside the USING scope
> again. If anything, I would want tie this to the static nesting scope or
> block structure rather than manually having to free up the protection.
>
> Instead of having this done during assembly, you could also have it as a
> post-processing on the LISTING or ADATA. I inherited something that goes
> through the assembly listing and frowns at known concerns.Personally, I
> don't think this one is highest on my facepalm list.
>
> Rob
>


Re: CamelCase (was: ASSEMBLER-LIST Digest ...)

2014-02-28 Thread Hobart Spitz
I think this discussion needs to distinguish clearly between case-sensitive
(treating caps and lower case the same) and case-insensitive (treating the
upper and lower case of the same character as different).  Mixed-case
could mean either, and is therefore unclear.

IMHO, case-insensitivity is not human-friendly.  I can't think of any
reason to use it, but no doubt someone has,


On Fri, Feb 28, 2014 at 9:52 AM, Paul Gilmartin paulgboul...@aim.comwrote:

 On 2014-02-25, at 10:00, John Walker wrote:

  So, to respond to the one comment, it was ok for the Science guys to
 want mixed case things because that was what they were used to.  Ok, I can
 buy that.  Same rationale can be applied to the C programmers.  Now, let's
 be fair, using the very same reasoning, I can then justify MY perception
 that mixed case shouldn't be used on the mainframe, because I am used to
 it.  Now, if you say they can justify their actions out of their
 preferrences and I can NOT do the same thing, then you surely can see how
 that is not fair for everyone, right?
 
 Let's see.  The monocase enthusiasts have JCL as they like it.
 The mixed case enthuiasts have C as they like it.  All within
 the z/OS environment.  Something for everyone.  Sounds like a
 compromise; everyone should be happy.

 You sound bitter; intolerant.  Would you stop the science guys
 at the border because they speak a different language?

 Why did you write your messave in mixed case?  It's probably OK
 as long as you didn't compose it on a mainframe.

 -- gil




--
OREXXMan


Re: Use of sequence numbering in current HLASM source?

2012-11-07 Thread Hobart Spitz
There are some reasons, albeit llittle known, to keep line numbers:

   1. With STATS and NUM on, ISPF edit stores the edit session number in
   79-80.  It's the same as the MM of VV.MM column in the ISPF member
   list.  This information is useful in edit, browse, and compiler/assembly
   listings.
   2. With the default increment, listings (whether printed or on DASD) are
   still useful even after modest changes.

Anything that preserves information and/or promotes productivity is a good
thing.

On the down-side, the ISPF edit locate (L) command can't be used with the
line numbers in messages.  So I use an edit macro that I call LL. This is a
bare-bones version:

/* REXX */
address isredit
macro (LinCount)
up max
down LinCount
return 0

Also on the down-side, you loose some potential source code real estate.
Unless you are using a 3278-5 (132x27emulation configuration), and have the
right ISPF terminal settings, this is no big loss.  Most people choose not
to scroll left and right to use that area on 80 column emulation.



On Wed, Nov 7, 2012 at 2:15 PM, McKown, John
john.mck...@healthmarkets.comwrote:

 So, in summary, use them or not as the individual or company dictates. I
 don't really lose any capability by keeping my source as I do, without
 sequence numbers.

 Thanks to all. It was interesting to read that some still do have a use
 for these.

 --
 John McKown
 Systems Engineer IV
 IT

 Administrative Services Group

 HealthMarkets(r)

 9151 Boulevard 26 * N. Richland Hills * TX 76010
 (817) 255-3225 phone *
 john.mck...@healthmarkets.com * 
 www.HealthMarkets.comhttp://www.healthmarkets.com/

 Confidentiality Notice: This e-mail message may contain confidential or
 proprietary information. If you are not the intended recipient, please
 contact the sender by reply e-mail and destroy all copies of the original
 message. HealthMarkets(r) is the brand name for products underwritten and
 issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake
 Life Insurance Company(r), Mid-West National Life Insurance Company of
 TennesseeSM and The MEGA Life and Health Insurance Company.SM




--
OREXXMan


Re: Detecting RMODE at assembly time

2012-07-02 Thread Hobart Spitz
For one thing, if a page has not been modified since it was paged in, and
it's slot on backing store has not been reused, it can be assigned to
another address space without first writing it to disk.  I believe this is
called page-stealing.

On Mon, Jul 2, 2012 at 10:14 AM, Edward Jaffe
edja...@phoenixsoftware.comwrote:

 On 7/1/2012 7:03 PM, Alex Kodat wrote:

 Sorry but I don't understand what re-entrancy has to do with how storage
 is
 backed.
 Care to explain?


 I was referring to the practice of using GETMAIN to acquire working storage
 areas. This technique is most often employed by RENT programs.



 Also, I assume by have no control over the backing of storage you meant
 that
 most older programs don't specify the required backing for their GETMAIN?


 No. I meant that programs don't have control over where the storage, into
 which
 they are loaded by the contents supervisor, is backed.


 --
 Edward E Jaffe
 Phoenix Software International, Inc
 831 Parkview Drive North
 El Segundo, CA 90245
 310-338-0400 x318
 edja...@phoenixsoftware.com
 http://www.phoenixsoftware.**com/ http://www.phoenixsoftware.com/




--
OREXXMan


Re: Detecting RMODE at assembly time

2012-07-02 Thread Hobart Spitz
Thanks for the corrections.

On Mon, Jul 2, 2012 at 2:29 PM, John Gilmore jwgli...@gmail.com wrote:

 As Tom Marchant has already pointed out, Hobart Spitz's view of page
 stealing is mistaken.

 Perhaps even more important his view of how the ASM [Auxiliary Storage
 Manager] works is also mistaken.  No page that has not been modified
 is paged out.  (One of the minor but important merits of reentrant
 coding is/was that by segregating never paged-out code pages and
 frequently paged-out data pages it reduces paging overheads
 significantly.)

 His post did have the virtue of reviving the [predominantly British]
 term 'backing store' which has always seemed to be to be a very good,
 self-descriptive one, the wider of which is now unfortunately all but
 precluded by other, different and preemptive, uses of the too similar
 term 'backing storage'.

 John Gilmore, Ashland, MA 01721 - USA




--
OREXXMan


Re: Base registers

2012-06-17 Thread Hobart Spitz
Just my two cents:

   1. There are architectures which have always had relative addressing,
   and use that term.
   2. Some day, relative braches will be the norm and not the exception.
   As time goes on, any term with base as the root (e.g. unbased, baseless,
   etc.) is likely to need increasingly superfluous explanations to novices.

Thus, I suggest relative branch and/or jump should suffice.  For the
exclusive case (non-base register branching) perhaps relative-only
branching and/or jump-only program[ming].

On Sun, Jun 17, 2012 at 5:38 PM, J R jayare...@hotmail.com wrote:

 Sorry Steve.  I didn't see your post until after I posted mine.

 ===

   Date: Sun, 17 Jun 2012 17:35:36 -0400
  From: jayare...@hotmail.com
   Subject: Re: Base registers
  To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
 
  The problem is that all addresses are relative to something.
  Some are relative to a base register, some are relative
  to the current instruction.  Even absolute addresses are
  relative to zero.  ;-)
 
  How about base-free code?  That sounds like a positive thing.
 
  (I avoided the temptation to to suggest freebase lest that
  be considered to have a negative connotation.)
 
  ===
 
Date: Sun, 17 Jun 2012 17:13:30 -0400
   From: gt.ibm.li...@actionsoftware.com
   Subject: Re: Base registers
   To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
  
   Why don't we jump to the underlying notion of the jump
 instructions,
   or more accurately branch relative instructions, which is relative
   addressing: relative address oriented programming.
  
   I'll admit that it's not concise, but I'm optimistic we won't have a
   religious war about the resulting acronym.
  
   --
  
   Regards, Gord Tomlin
   Action Software International
   (a division of Mazda Computer Corporation)
   Tel: (905) 470-7113, Fax: (905) 470-6507
  
  
   On 2012-06-17 09:05, John Gilmore wrote:
Words can of course have different specialized meanings in different
contexts, but there is ordinarily an evolutionary path between these
meanings.
   
Physicians, for example, talk of senile changes, meaning those
associated with aging, in a way that is entirely devoid of pejorative
intent.  Or again, Chaucer and his contemporaries used the word
 lewd
to mean lay, not in holy orders; but there is a path between this
meaning and the modern one: the clergy did not often make what we
 call
lewd gestures in public.
   
I myself find 'baseless' very unsatisfactory, in part because it is
not at all transparent.  Thus, while I have no emotional investment
 in
the term jump-based, I do believe a new one is needed;  'baseless'
can scarcely avoid connotations of dispensability when in fact it is
the base registers that are largely dispensable.
   
We need to look forward to a time when the use of base registers,
multiple ones in particular, and the arbitrary segmentation of code
into 4096-byte pieces will be perceived as a quaint, historically
interesting but obsolete practices; and a new contrasting term will
 be
helpful in changing the current vulgar mind set.   (Mr Gilmartin's
use of vulgar, which evolved from the Latin phrase mobile vulgus,
 is
open to criticism; but that is a subject for another time and place.)
   
Alternative suggestions?
   
John Gilmore, Ashland, MA 01721 - USA
   
   
 





--
OREXXMan


Re: Assembler info needed

2012-03-16 Thread Hobart Spitz
I wouldn't even bother with S/370.  Start at S/360.  You don't care about
paging or vitual storage, yet.  Once you have the S/360 down, most
architectural extensions generalize easily from there.  PoOps is way too
much for a beginner, both in volume and prerequisite knowledge.

In the '60s, Tim Tomaselli of Stevens gave me an IBM publication.  Little
did he know how valuable it would turn out to be.  Thank you, Tim!!  It was
excellent.  You can find it here:

http://www.bitsavers.org/pdf/ibm/360/training/C20-1646-1_A_Programmers_Introduction_To_IBM_System360_Assembler_Language_May66.pdf



On Fri, Mar 16, 2012 at 2:47 PM, Tony Harminc t...@harminc.com wrote:

 On 16 March 2012 11:49, Farley, Peter x23353
 peter.far...@broadridge.com wrote:

  The other prerequisite to learning assembler is understanding the basic
 architecture of the machine.  For this knowledge you will eventually need
 to read at least parts of the z/Architecture Principles of Operations
 manual (available on the IBM website).  This is a very large and imposing
 manual that can seem overwhelming at first (and still is even when you are
 an expert).  Chapters 1 through 6 would enable you to gain a serious
 understanding of the z/Architecture machines, but they do contain very
 dense material to absorb all at once.  Alternatively, you can use chapter 7
 in conjunction with reviewing the COBOL listing output I mentioned above to
 see what each instruction does.  This may provide a simpler introduction
 for you.

 Another less overwhelming approach to the Principles of Operation is
 to look at a much older one, such as the S/370 version GA22-7000 (but
 not the -00 version!) available on bitsavers.org and many other sites.
 There is nothing in the discussion of general instructions in such an
 old book that is obsolete; they will all work nicely on the latest
 hardware.

 Tony H.




--
OREXXMan


Re: alternatives

2012-02-16 Thread Hobart Spitz
Just my two cents:

Preface:  A change control/configuration management system usually
automates existing policies and procedures for software deployment.  They
tend to vary wildly from installation to installation.  Off the shelf
products have difficulty handling all the specific needs of a
particular site:  Cost-effective compromises have to be made.

My experiences:  I have been in five sites where they wrote their own
systems.  In all cases, the results were satisfactory,
full-functioned, right-sized, cost-effective and still in use last I
heard.  In two cases, I participated in the initial design, implementation,
and on-going support; in two others, in enhancement, maintenance and
support.  At one site, it took the team 1 day to define the requirements
and design the command-level interface, a second day to code the core
functions, and a week to implement the basic
web-based developer interface.  Subsequent enhancement, support and
maintenance took about a staff-week per year.

Conclusions:

   - Consider the costs and benefits of designing and writing your own
   change control/configuration management system.
   - Use an open ended design, with a command line accessible core.
   - Use a release methodology (per Gartner Group and my experiences):
   Piecemeal (AKA emergency) deployments mean untested configurations in
   production .

YMMV


On Thu, Feb 16, 2012 at 12:53 PM, Ron Wells ron.we...@slfs.com wrote:


  Looking for alternatives to CHANGEMAN any suggestions to Look at..??
  Pro's/Con's

 --
 Email Disclaimer
 This  E-mail  contains  confidential  information  belonging to the
 sender, which  may be legally privileged information.  This information is
 intended only  for  the use of the individual or entity addressed above.
  If you are not  the  intended  recipient, or  an  employee  or  agent
 responsible for delivering it to the intended recipient, you are hereby
 notified that any disclosure,  copying, distribution, or the taking of any
 action in reliance on the contents of the E-mail or attached files is
 strictly prohibited.




--
OREXXMan


Re: Assistive Technology

2011-12-09 Thread Hobart Spitz
Stan;

Thanks for bringing this up.  I'm sure that those who are in a position to
address this will do so promptly.  We can expect no less.

- Hobart

On Fri, Dec 9, 2011 at 8:05 AM, Gowin, Stan stan.go...@softwareag.comwrote:

 Hi,

 I know your remark was intended to be mildly humorous and it was.

 However, as a long-time blind assembler programmer I must point out that
 assistive technology is key to my ability to do my job.

 Most of the time this means software on my PC that magnifies or speaks
 items on the screen in an intelligent manner so that I can program and
 debug those programs.

 Where this intersects with the assembler list is the accessibility of
 the documentation provided by IBM and vendors to support coding and
 products running on the mainframe.

 I'm afraid as the proliferation of the web and the use of PDF files has
 come to dominate the way technical documentation is distributed, the
 accessibility of said documentation has suffered.

 The old 16-bit Book Manager Read product for Windows was the most
 efficient and best organized way for me to use IBM documentation. The
 new Java version of the Book manager product is virtually inaccessible
 to the blind and using PDF files or the web is acceptable but I very
 much wish that IBM would make an accessible version of the Book manager
 Read product that can run on a Windows 7 64-bit PC.

 So, there are still challenges for the blind or otherwise disabled
 mainframe computer programmer which is a shame in this modern era where
 so many opportunities exist for persons with accessibility needs to
 acquire and use information needed to work productively.


 Regards,
 Stan Gowin
 Software Ag




--
OREXXMan