Re: Poll

2019-09-17 Thread M. Ray Mullins

psIII missed a chance when setting the options for this poll.

On 2019-09-16 15:45, Tony Thigpen wrote:

Pop, never Poo or poop, as both sound like doing #2.

Tony Thigpen

Phil Smith III wrote on 9/16/19 3:50 PM:
Principles of Operation-how do you refer to it? (NOT including 
case-let's not make this any more complicated than it is already!)


1) PofOp

2) POP

3) POO

4) Pops

5) other?


Just curious-there are no wrong answers, of course! (Well, I suppose 
"IntelR 64 and IA-32 Architectures Software Developer Manuals" is 
wrong.)



.phsiii






--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds.—ilvi
French is essentially German with messed-up pronunciation and spelling.—Robert 
B Wilson
English is essentially French converted to 7-bit ASCII.—Christophe Pierret [for 
Alain LaBonté]


Re: Poll

2019-09-17 Thread M. Ray Mullins

I've always referred to it by option 2.

On 2019-09-16 12:50, Phil Smith III wrote:

Principles of Operation-how do you refer to it? (NOT including case-let's not 
make this any more complicated than it is already!)

1) PofOp

2) POP

3) POO

4) Pops

5) other?

  


Just curious-there are no wrong answers, of course! (Well, I suppose "IntelR 64 and 
IA-32 Architectures Software Developer Manuals" is wrong.)

  


.phsiii

  



--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds.—ilvi
French is essentially German with messed-up pronunciation and spelling.—Robert 
B Wilson
English is essentially French converted to 7-bit ASCII.—Christophe Pierret [for 
Alain LaBonté]


Re: z15 is announced…

2019-09-13 Thread M. Ray Mullins
It wasn't there yesterday, maybe there's a day lag. Meanwhile, I 
remembered that it was available under NDA and I grabbed it.


On 2019-09-13 08:54, Dale R. Smith wrote:

On Fri, 13 Sep 2019 09:19:08 -0400, Tom Russell  
wrote:


I'm checking every few hours for SA22-7832-12.

Historically the POPs gets published on the GA date, not the announce date. So 
I think you can safely stop looking until 23 September 2019 which is the date 
in the announcement letter.

The draft Redbooks are there now though.

Tom Russell
“Stay calm. Be brave. Wait for the signs” — Jasper FriendlyBear
“… and remember to leave good news alone.” — Gracie HeavyHand

I'm not sure where everybody is looking, but it's available for download on the 
IBM Publications Center web site:
https://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss?SSN=19IMP0002353716631&FNC=SRH
Enter SA22-7832-12 in the Publication number field to see the current one, or 
enter SA22-7832 and change the number of result per page to 50 to see all 
available additions.

For some reason, the publication dates are shown in European format, even 
though I have United States selected.  All dates should be in Isodate format!




--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds.—ilvi
French is essentially German with messed-up pronunciation and spelling.—Robert 
B Wilson
English is essentially French converted to 7-bit ASCII.—Christophe Pierret [for 
Alain LaBonté]


z15 is announced…

2019-09-12 Thread M. Ray Mullins
It's been quiet here, so I thought I'd 1) see if things are still alive; 
2) state what we're all waiting to drop. :D


I'm checking every few hours for SA22-7832-12.

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds.—ilvi
French is essentially German with messed-up pronunciation and spelling.—Robert 
B Wilson
English is essentially French converted to 7-bit ASCII.—Christophe Pierret [for 
Alain LaBonté]


Re: New Metal C standalone product for z/OS

2018-07-20 Thread M. Ray Mullins

*sigh* Of course you notice the typo after send to a mailing list.

Coincidentally, I am already giving a Metal C presentation (about 
converting user exits _FROM_ assembler).


On 2018-07-20 11:57, M. Ray Mullins wrote:
Enterprise Metal C as a Separately Priced Program Product (tm) was 
announced in June. The trial was announced this week (as noted).


IBM Toronto will be presenting on this at SHARE in St. Louis (it's a 
last minute add). Coincidentally, I am already giving a Metal C 
presentation (about converting user exits to assembler) (being project 
manager has its scheduling perks ;) ). (For the record, I had no 
inkling of the creating of the Metal C SPPP when I came up with the 
idea of the presentation.)


I had a great conference call yesterday with IBM Toronto Metal C 
folks. We are working together to cross reference our presentations. 
Tuesday will be Metal C day at SHARE!


As much as I love assembler, I see the graying on the wall. The number 
of young folks interested in assembler is depressingly low. (Luckily 
my newest--well, only--project officer is the rare exception.) 
Independently, both IBM and I have concluded that there is and will be 
a need for maintaining and adding logic to specialized tasks. 
Leveraging C-language knowledge in an enterprise will help make 
management less gun-shy about "touching that assembler code". It's not 
a 100% replacement, but if it can help prevent the creep of unsuitable 
platforms into enterprise workload, I'm all for it.


Cheers,
Ray



On 2018-07-17 11:02, John McKown wrote:

On Tue, Jul 17, 2018 at 12:40 PM Gord Tomlin <
gt.ibm.li...@actionsoftware.com> wrote:


On 2018-07-17 12:45, John McKown wrote:
I don't see anything in the announcement that suggests any new
functionality has been added to Metal C.

​I think that the main push is that Metal C can be ordered as a stand 
alone
product, separate from XLC. I would hope at a substantially reduced 
price.​





--

--

Regards, Gord Tomlin
Action Software International
(a division of Mazda Computer Corporation)
Tel: (905) 470-7113, Fax: (905) 470-6507
Support: https://actionsoftware.com/support/







--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: New Metal C standalone product for z/OS

2018-07-20 Thread M. Ray Mullins
Enterprise Metal C as a Separately Priced Program Product (tm) was 
announced in June. The trial was announced this week (as noted).


IBM Toronto will be presenting on this at SHARE in St. Louis (it's a 
last minute add). Coincidentally, I am already giving a Metal C 
presentation (about converting user exits to assembler) (being project 
manager has its scheduling perks ;) ). (For the record, I had no inkling 
of the creating of the Metal C SPPP when I came up with the idea of the 
presentation.)


I had a great conference call yesterday with IBM Toronto Metal C folks. 
We are working together to cross reference our presentations. Tuesday 
will be Metal C day at SHARE!


As much as I love assembler, I see the graying on the wall. The number 
of young folks interested in assembler is depressingly low. (Luckily my 
newest--well, only--project officer is the rare exception.) 
Independently, both IBM and I have concluded that there is and will be a 
need for maintaining and adding logic to specialized tasks. Leveraging 
C-language knowledge in an enterprise will help make management less 
gun-shy about "touching that assembler code". It's not a 100% 
replacement, but if it can help prevent the creep of unsuitable 
platforms into enterprise workload, I'm all for it.


Cheers,
Ray



On 2018-07-17 11:02, John McKown wrote:

On Tue, Jul 17, 2018 at 12:40 PM Gord Tomlin <
gt.ibm.li...@actionsoftware.com> wrote:


On 2018-07-17 12:45, John McKown wrote:
I don't see anything in the announcement that suggests any new
functionality has been added to Metal C.


​I think that the main push is that Metal C can be ordered as a stand alone
product, separate from XLC. I would hope at a substantially reduced price.​




--

--

Regards, Gord Tomlin
Action Software International
(a division of Mazda Computer Corporation)
Tel: (905) 470-7113, Fax: (905) 470-6507
Support: https://actionsoftware.com/support/





--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: New Metal C standalone product for z/OS

2018-07-20 Thread M. Ray Mullins
One thing to remember about CDSECT is that it's reading ADATA, and 
conditionals tailor what's in there, just like the assembled source. 
I've been playing with it lately for a SHARE presentation (hint), and 
I've become very familiar with its output and idiosyncrasies.


On 2018-07-18 16:22, Charles Mills wrote:

Hmmm. I have not encountered that as a limitation.

CDSECT is not a macro (in the HLASM sense) converter; it is a DSECT
converter. If you had some sort of a multi-platform HLASM macro (z/OS and
VSE? 31- and 64-bit? MVS and z/OS?) it would be lovely to think it would
generate a corresponding multi-platform header with ifdef's for AIF's but it
does not. I guess it would make sense, but it does not do that. You would
indeed have to generate two structs and ifdef between them.

It generates pretty much vanilla C. If you had two platforms that both
needed headers corresponding to a Z DSECT I suspect its output could be made
to work for both. In fact, I am that audience: I generate headers and use
them in "production" on z/OS; and for compilation and very-alpha testing on
Visual Studio.

The only tweaking I have had to do is with the syntax of #pragma pack: it
generates pack(packed)/pack(reset) and Visual Studio wants
pack(push)/pack(1)/pack(pop).

It is not a perfect "automated" tool. I would not expect to push 100 DSECTs
through CDSECT and have all 100 be usable without manual intervention. But
it's a darned sight easier and more accurate than hand conversion. Believe
me -- I have tried.

One thing CDSECT does not attempt to do itself is naming. It would take some
cleverness on the user's part to create a job or script that would push a
PDS with members MYMACRO1, MYMACRO2, etc. through CDSECT and come out
automatically with mymacro1.h, mymacro2.h, etc. I always do them one at a
time. My output is always named MYUSRID.CDSECT and I manually copy that and
rename it to whatever.h.

Charles


-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of Paul Gilmartin
Sent: Wednesday, July 18, 2018 3:33 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: New Metal C standalone product for z/OS

On 2018-07-18, at 16:24:33, Charles Mills wrote:


CDSECT cares only about assembled code and labels. I believe conditional
assembly instructions are ignored (but not their effect, of course -- it's
usual input is an assembled macro such as DCBD). CDSECT does not to my
knowledge generate #ifdefs. I think #pragma packed() is its only C

macro

output.
  

Given the intense use that both C and Assembler make of conditional
compilation to support multiple target environments, this is an
onerous limitation.  I'm imagining assembling a DSECT for each
target; running CDSECT for each, then concatenating the outputs
separated by #ifdef ... #endif.

Hmmm... Doesn't diff(1) have the ability to generate such #ifdefs?

-- gil


--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Two string instruction questions

2018-03-27 Thread M. Ray Mullins
Very late to the game, but could you use one of the new vector string 
instructions? Possibly a combination of VECTOR FIND ELEMENT EQUAL and 
VECTOR STRING RANGE COMPARE. I've done nothing with this (yet), so I 
can't provide any answers or advice.


You would have to be z13 or better to open.

On 2018-03-14 08:51, Charles Mills wrote:

1.   Is there a machine instruction that will find one string within
another? That given "Now is the time" and "is" would find the "is" and
return a pointer to it? A machine instruction analog of Rexx POS?

2.   Searching the PoOp for such an instruction led me to CUSE. It does
not seem that CUSE could be used for this - is that correct? If I am reading
CUSE correctly, then given "Now is the time", "All is well" and 2 or 3 would
return the position of "is". Is my reading correct? What would that be good
for? What would be a reasonable real-world use?

  


Thanks,

  


Charles

  


--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Very sad news

2018-02-20 Thread M. Ray Mullins

It is with deep sadness that I must convey this news.

Tineke Graafland-Ehrman has announced that Dr. John Ehrman, to whom we 
owe so much for our love of IBM mainframe assembler, passed away within 
the past day. John will be cremated, and there will be a memorial 
service in Palo Alto in the future.


SHARE is working on posting a memorial page. which is why I felt it was 
OK to pass along the news.


If you were not aware, SHARE created an award, The John R. Ehrman Award 
for Sustained Excellence in Technical Education, to honor him. The first 
award is scheduled to be given at SHARE 130 in Sacramento.


Godspeed, John. May there always be plenty of resources to assemble and 
run your code.


--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Save areas (not XPLINK).

2017-05-31 Thread M. Ray Mullins
I did run into F2SA over 10 years ago. I was looking at a dump that 
occurred when a product I worked on called Unicode services (it turned 
out to be an actual bug in the service).


The fine gentleman Peter Relson answered my IBM-MAIN query here, along 
with a caveat that some components do not use publicly documented save 
area interfaces.


 https://listserv.ua.edu/cgi-bin/wa?A2=IBM-MAIN;88eeea77.0609



As I was On 2017-05-30 07:31, Steve Smith wrote:

First answer: The high-halves portion of the save areas is used by the
caller, not the callee.  I suppose for the case when calling a program that
doesn't save all 64 bits, yet uses some of them.  The Assembler Services
guide goes into great detail on linkage conventions and save area formats,
but it requires some close reading.

I see F0*, F1, F4, F5, F6, F7, & F8.  I could guess what F2 & F3 were, but
I've never seen documentation for them.  *aka classic 72-byte savearea.

sas

On Tue, May 30, 2017 at 10:11 AM, Gary Weinhold  wrote:


I have notes that indicate there can be an F1SA, which means that this
savearea may be only 8 bytes long because the hardware linkage stack was
used.  If R13 is non-zero, the F1SA savearea is a standard 72-byte
save-area.

F6SA is supposed to mean the hardware linkage stack was used and the
savearea is 144 bytes.

Since it is the called program that has to save all the registers, I think
the answer to question 2 could only be that the alet of previous savearea
is the value in AR13 at entry.

Regarding question 3: Do you have any control over what languages are
calling you?  I haven't come across any standard LE-supported languages
using anything but the historic 72-byte format, but there may be
announcements I've missed.  I figured these other save areas may be
documented for vendor software so that debugging software would be able to
forward and backward chain saveareas with some degree of confidence.

My notes for F8SA are different (question 1) so I can't comment.

I think my notes came from a Tom Conway article or presentation.


Gary Weinhold
Senior Application Architect

DATAKINETICS | Data Performance & Optimization

Phone:  +1.613.523.5500 x216
Email:  weinh...@dkl.com<mailto:weinh...@dkl.com>

[http://www.dkl.com/wp-content/uploads/2015/07/dkl_logo.png]<
http://www.dkl.com/>

Visit us online at www.DKL.com<http://www.dkl.com/>

[http://www.dkl.com/wp-content/uploads/2015/08/banner.png]

E-mail Notification: The information contained in this email and any
attachments is confidential and may be subject to copyright or other
intellectual property protection. If you are not the intended recipient,
you are not authorized to use or disclose this information, and we request
that you notify us by reply mail or telephone and delete the original
message from your mail system.



__

On 2017-05-30 09:39, John McKown wrote:

As best as I can tell, there are 5 different Save Area formats. There is
the historic 72 byte format. This saves bits 32..63 of GPR 14-12. There is
an F4SA which is 144 bytes and contains bits 0..63 of GPRs 14-12. There is
a F5SA which holds bits 0..63 of the GPRs 14-12 and bits 0..31 of GPRs
0-15. There is F7SA which holds bits 0..63 of GPRs 14-12 and ARs 14-12 plus
"alet of previous save area" (isn't this just AR13 at entry?). And finally,
there is F8SA which is bits 0..63 of GPRs 14-12, ARs 14-12, "alet of
previous savearea", bits 32..63 of GPRs 0-15.

ref:
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com
.ibm.zos.v2r2.iead200/iead200571.htm

First question: Why save the "high word" of regs 0-15 in addition to the
entire double word of regs 14-12 (all but GPR15)?

Second question: Why say "alet of previous savearea" rather than AR13? Is
there a case where this is _not_ in AR13 at entry? If so, how would I know?

Philosophy question: If I am writing a non-LE enabled HLASM subroutine,
should I check the "save area type" to ensure that my routine is properly
callable from any non-XPLINK routine? I know that the standard says that it
is the _caller's_ responsibility to do this. But I'm paranoid. And I don't
way to ASSuME that the caller is paying attention and by so doing possibly
introduce a memory overlay in the caller. Also, if I get a "bad" type of
savearea, should I "do something", such as using the linkage stack, or
should I abend or maybe return a "failed" return code?







--
M. Ray Mullins
Roseville, CA, USA

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Structured programminng macros

2017-05-31 Thread M. Ray Mullins
I've been working off and on creating a REDO macro to pair with ITERATE 
(like DOEXIT/ASMLEAVE).


I'm very close to getting it working; alas, the spare time has been 
non-existent for months.


If I get some cycles in the near future, I'll go back to work on it. I'm 
having a problem with following SPMs generating wrong branches; I know 
it's a nesting issue, it's just trying to track down where an index is 
(or not) being modified when it should not (or be).


On 2017-05-15 04:46, Pieter Wiid wrote:

On 15/05/2017 13:42, Robin Vowels wrote:

From: "Pieter Wiid" 
Sent: Monday, May 15, 2017 6:36 PM


Branch to iterate is what I would LIKE.


You could try a BCT, or BXLE etc instruction.

There is not such structure as the moment. If nobody else wants to 
play with it, I will try to work on it when done with my current 
upgrade cycle.


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


Again, I would like to see an ITERATE_IF, similar to the DOEXIT.

Thus, I would have ITERATE_IF , instead of

IF 

ITERATE

ENDIF


The BXLE / BCT / JCT / JXLE are all catered for by the DO FROM 
constructs.



--
M. Ray Mullins
Roseville, CA, USA

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: My assembler text v2.00

2016-04-14 Thread M. Ray Mullins
Adding to the thanks. We appreciate all your hard work and dedication to 
HLASM, and we hope to see you not only here but at SHARE Winter 2017.


On 04/13/2016 16:42, John Ehrman wrote:

The second edition of my Assembler Language textbook is available for
download at

http://idcp.marist.edu/enterprisesystemseducation/assemblerlanguageresources-1.html


The text is a PDF file (it's big: 1346 pages).  The simple conversion and
I/O macros decscribed in Appendix B are also available there.

I'll be retiring from IBM at the end of May, so if you have any comments
or suggestions, please send them to me at  johnehrm...@gmail.com  .

Since the text was created on z/VM using IBM's BookMaster, I doubt I'll be
able to create any further versions after retiring.  I may, however, be
able to provde occasional supplements and errata through the Marist
College web site.  (I'd like to provide a second text describing the
Conditional Assembly and Macro language, but that will depend on time,
energy, and need.)

I plan to be available for consulting on Assembler Language topics like
education, modernization, and simplification.

Regards... John
-
555 Bailey Ave, San Jose CA 95141 USA
+1-408-463-3543  ehr...@us.ibm.com




--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Assembler exercise - MAX of two or more equates

2015-06-30 Thread Ray Mullins

Arrgh, not enough coffee. Change "macros" to "techniques".

On 06/30/2015 08:07, M. Ray Mullins wrote:

Catching up on ASSEMBLER-LIST…

Where are those macros? I did come across a need for a MAX-style 
function which I solved using other means, but I love learning new 
techniques.


Thanks,
Ray

On 06/22/2015 07:26, Ed Jaffe wrote:

On 6/17/2015 2:55 PM, David Cole wrote:
Excellent! Just stuff that into an ignorable dsect, and there you 
go! I never thought of this method. Very creative.


We use the same basic technique in a robust set of macro-based math 
functions to to ensure one EQU is greater or less than another, to 
ensure a set of EQU values are all equal, to compute the max/min of 
the set, etc. Such functions come in quite handy...








--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Assembler exercise - MAX of two or more equates

2015-06-30 Thread M. Ray Mullins

Catching up on ASSEMBLER-LIST…

Where are those macros? I did come across a need for a MAX-style 
function which I solved using other means, but I love learning new 
techniques.


Thanks,
Ray

On 06/22/2015 07:26, Ed Jaffe wrote:

On 6/17/2015 2:55 PM, David Cole wrote:
Excellent! Just stuff that into an ignorable dsect, and there you go! 
I never thought of this method. Very creative.


We use the same basic technique in a robust set of macro-based math 
functions to to ensure one EQU is greater or less than another, to 
ensure a set of EQU values are all equal, to compute the max/min of 
the set, etc. Such functions come in quite handy...





--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: 8 character mnemonics

2015-01-22 Thread Ray Mullins
Of course, it would have helped if I'd provided an actual example of 
something longer than 8. SELECT -> ASM_SELECT. :)


On 2015-01-22 10:05, M. Ray Mullins wrote:
The HLASMTK SPMs have been doing this for years. Macros like IF are 
OPSYNed to ASM_IF, and the source for ASM_IF is in the copy member.


-- M. Ray Mullins Roseville, CA, USA http://www.catherdersoftware.com/ 
http://www.z390.org/ German is essentially a form of assembly language 
consisting entirely of far calls heavily accented with throaty 
guttural sounds. ---ilvi French is essentially German with messed-up 
pronunciation and spelling. --Robert B Wilson English is essentially 
French converted to 7-bit ASCII. ---Christophe Pierret [for Alain 
LaBonté]



On 2015-01-22 05:54, Tony Thigpen wrote:
I have used longer-than-8 macros for many years. Works great. I have 
one source macro that I include at the top of the member that is just 
8 characters long. Inside, it has many macro 'redefs' so that I can 
use a long macro name in the code, but it gets converted to a shorter 
8 character macro before going out to the library to get the macro.


A short example:

 MACRO
&NAMEPERFORM_ON &ADDR,&BAD_VALUE=
&NAMEPERFORMO &ADDR,BAD_VALUE=&BAD_VALUE
 MEND


Then, in my code, I use the longer PERFORM_ON.

Some of my macro names are quite long, like:
GET_FIRST_IN_CHAIN
ADD_END_OFF_CHAIN
FIND_IN_CHAIN


Tony Thigpen

John Ehrman wrote on 01/21/2015 02:02 PM:

Dave Cole noted again...
<>

I think HLASM has supported operation field entries longer than 8
characters for a long time, but resolution was possible only to source
macros. (No, I haven't tried it.)

John Ehrman





-- M. Ray Mullins Roseville, CA, USA http://www.catherdersoftware.com/ 
http://www.z390.org/ German is essentially a form of assembly language 
consisting entirely of far calls heavily accented with throaty 
guttural sounds. ---ilvi French is essentially German with messed-up 
pronunciation and spelling. --Robert B Wilson English is essentially 
French converted to 7-bit ASCII. ---Christophe Pierret [for Alain 
LaBonté]



-- M. Ray Mullins Roseville, CA, USA http://www.catherdersoftware.com/ 
http://www.z390.org/ German is essentially a form of assembly language 
consisting entirely of far calls heavily accented with throaty guttural 
sounds. ---ilvi French is essentially German with messed-up 
pronunciation and spelling. --Robert B Wilson English is essentially 
French converted to 7-bit ASCII. ---Christophe Pierret [for Alain LaBonté]


Re: 8 character mnemonics

2015-01-22 Thread M. Ray Mullins
The HLASMTK SPMs have been doing this for years. Macros like IF are 
OPSYNed to ASM_IF, and the source for ASM_IF is in the copy member.


-- M. Ray Mullins Roseville, CA, USA http://www.catherdersoftware.com/ 
http://www.z390.org/ German is essentially a form of assembly language 
consisting entirely of far calls heavily accented with throaty guttural 
sounds. ---ilvi French is essentially German with messed-up 
pronunciation and spelling. --Robert B Wilson English is essentially 
French converted to 7-bit ASCII. ---Christophe Pierret [for Alain LaBonté]



On 2015-01-22 05:54, Tony Thigpen wrote:
I have used longer-than-8 macros for many years. Works great. I have 
one source macro that I include at the top of the member that is just 
8 characters long. Inside, it has many macro 'redefs' so that I can 
use a long macro name in the code, but it gets converted to a shorter 
8 character macro before going out to the library to get the macro.


A short example:

 MACRO
&NAMEPERFORM_ON &ADDR,&BAD_VALUE=
&NAMEPERFORMO &ADDR,BAD_VALUE=&BAD_VALUE
 MEND


Then, in my code, I use the longer PERFORM_ON.

Some of my macro names are quite long, like:
GET_FIRST_IN_CHAIN
ADD_END_OFF_CHAIN
FIND_IN_CHAIN


Tony Thigpen

John Ehrman wrote on 01/21/2015 02:02 PM:

Dave Cole noted again...
<>

I think HLASM has supported operation field entries longer than 8
characters for a long time, but resolution was possible only to source
macros. (No, I haven't tried it.)

John Ehrman





-- M. Ray Mullins Roseville, CA, USA http://www.catherdersoftware.com/ 
http://www.z390.org/ German is essentially a form of assembly language 
consisting entirely of far calls heavily accented with throaty guttural 
sounds. ---ilvi French is essentially German with messed-up 
pronunciation and spelling. --Robert B Wilson English is essentially 
French converted to 7-bit ASCII. ---Christophe Pierret [for Alain LaBonté]


Re: Defunct? (Was: ASSEMBLER-LIST Digest)

2014-10-01 Thread M. Ray Mullins

On 2014-10-01 07:36, mar...@pi-sysprog.de wrote:

No.

But it sure is missing the like button


Or +1, or Pin to Pinterest, or share to YouTube or Tumblr…

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.z390.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: MHELP bug?

2014-03-11 Thread Ray Mullins

And…I'm replying to myself.

Found a possible instigator. If the macro is being pulled out of the
library, then the BRANCH entries do not show up. But COPY it into your
program, and they do show up.

Again, if anyone is bored at SHARE…:)

On 2014-03-11 09:00, Ray Mullins wrote:

It gets better. I've encountered an instance where specifying a pure decimal
term also does not issue the ++//MHELP BRANCH lines.

*sigh* PMR time.

On 2014-03-06 14:44, David P de Jongh wrote:

I misread your post - trying again with X'3F' vs 63, results are
identical, but there are no ++//MHELP BRANCH lines, only ++//MHELP CALL,
along with a whole lot of //MHELP AIF lines.
On 03/06/14, David P de Jongh wrote:
 The manual says:
/options/ is the sum of the binary or decimal options described below.
_MHELP_ _B'1'_ _or_ _MHELP_ _1,_ etc...
MHELP B'0001' works (produces a nested macro trace)
MHELP B'1'  also works, as does MHELP 1.
But - MHELP X'01' and MHELP X'37' do both work. Though I don't have time
to examine the X'37' results microscopically, there are lots of them.
This is with HLASM R5 on z/OS 1.13
David de Jongh
On 03/06/14, Ray Mullins wrote:
Hi everyone,

Since it's gotten somewhat quiet (and it's past hump day, so the camel case
thread is no longer relevant :) ), I'm looking for confirmation that I've
discovered an MHELP bug. I'm seeing that if I use an operand that is not
decimal digits, i.e., a T' on the operand would not return 'N', branch trace
(bit B'0010') is ignored. I've tested X'..', B'..', and EQUs.

If you are bored and would like to try this, it's simple to recreate. Just
wrap one macro invocation with MHELP 63/MHELP 0, and another with MHELP
X'3F'/MHELP 0. In the latter I'm not seeing any MHELP BRANCH entries, as if
I specified MHELP 61 (B'0001'). I do see MHELP CALL entries, so that
rules out entries prefixed with ++//MHELP.

I'm at z/OS 1.13 PTF UK96299.

Cheers,
Ray

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
--Robert B Wilson
English is essentially French converted to 7-bit ASCII. ---Christophe
Pierret [for Alain LaBonté]



--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
--Robert B Wilson
English is essentially French converted to 7-bit ASCII. ---Christophe
Pierret [for Alain LaBonté]



--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: MHELP bug?

2014-03-11 Thread Ray Mullins

It gets better. I've encountered an instance where specifying a pure decimal
term also does not issue the ++//MHELP BRANCH lines.

*sigh* PMR time.

On 2014-03-06 14:44, David P de Jongh wrote:

I misread your post - trying again with X'3F' vs 63, results are
identical, but there are no ++//MHELP BRANCH lines, only ++//MHELP CALL,
along with a whole lot of //MHELP AIF lines.
On 03/06/14, David P de Jongh wrote:
 The manual says:
/options/ is the sum of the binary or decimal options described below.
_MHELP_ _B'1'_ _or_ _MHELP_ _1,_ etc...
MHELP B'0001' works (produces a nested macro trace)
MHELP B'1'  also works, as does MHELP 1.
But - MHELP X'01' and MHELP X'37' do both work. Though I don't have time
to examine the X'37' results microscopically, there are lots of them.
This is with HLASM R5 on z/OS 1.13
David de Jongh
On 03/06/14, Ray Mullins wrote:
Hi everyone,

Since it's gotten somewhat quiet (and it's past hump day, so the camel case
thread is no longer relevant :) ), I'm looking for confirmation that I've
discovered an MHELP bug. I'm seeing that if I use an operand that is not
decimal digits, i.e., a T' on the operand would not return 'N', branch trace
(bit B'0010') is ignored. I've tested X'..', B'..', and EQUs.

If you are bored and would like to try this, it's simple to recreate. Just
wrap one macro invocation with MHELP 63/MHELP 0, and another with MHELP
X'3F'/MHELP 0. In the latter I'm not seeing any MHELP BRANCH entries, as if
I specified MHELP 61 (B'0001'). I do see MHELP CALL entries, so that
rules out entries prefixed with ++//MHELP.

I'm at z/OS 1.13 PTF UK96299.

Cheers,
Ray

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
--Robert B Wilson
English is essentially French converted to 7-bit ASCII. ---Christophe
Pierret [for Alain LaBonté]



--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


MHELP bug?

2014-03-06 Thread Ray Mullins

Hi everyone,

Since it's gotten somewhat quiet (and it's past hump day, so the camel case
thread is no longer relevant :)  ), I'm looking for confirmation that I've
discovered an MHELP bug.  I'm seeing that if I use an operand that is not
decimal digits, i.e., a T' on the operand would not return 'N', branch trace
(bit B'0010') is ignored. I've tested X'..', B'..', and EQUs.

If you are bored and would like to try this, it's simple to recreate. Just
wrap one macro invocation with MHELP 63/MHELP 0, and another with MHELP
X'3F'/MHELP 0. In the latter I'm not seeing any MHELP BRANCH entries, as if
I specified MHELP 61 (B'0001'). I do see MHELP CALL entries, so that
rules out entries prefixed with ++//MHELP.

I'm at z/OS 1.13 PTF UK96299.

Cheers,
Ray

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: CamelCase

2014-03-04 Thread Ray Mullins

Der Gebrauch des Majuskeln ist ein weiterer Anlass, warum ich meine, dass
unsere Deutschesprachefreunde haben eine bessere Idee.

(Yeah, the middle of that sentence might have an issue or two.)

On 2014-03-03 11:36, Ed Jaffe wrote:

On 3/3/2014 11:24 AM, Tony Thigpen wrote:

All my COBOL courses teach writing code in mixed case. Often I find
customers who tell me the shop standard is still all uppercase.

When I use the "all uppercase makes feel like I'm shouting" line,
I often get back "lowercase is like whispering".


LOL. Never heard that one until now. :)

Of course, quips - no matter how clever - don't refute studies. Citing
them might be useful...

--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/



--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: CamelCase Field Names (Was: Re: HLASM continuation...)

2014-02-24 Thread Ray Mullins

On 2014-02-22 12:09, Paul Gilmartin wrote:

On 2014-02-22, at 12:54, Peter Relson wrote:

Changing this by default or en masse is unlikely to happen. Changing
individual macros (in a forthcoming release) is much more feasible, and if
you have favorite "candidates", let me know and I will pass that along to
the developer for their consideration.


Do you appreciate how much happier the customer base would be if
the PL/x compiler were to be made a product?  Customer and IBM
developers could be reading from the same page, and IBM could be
spared the dual maintenance of source.  It has been decades since
IBM had a competitive advantage to defend by keeping PL/x
intramural.


It was a product at one time! It was made available back in (I think) the
late 1990s, although it was targeted at ISVs. But the response from ISVs was
thunderous crickets, and after a while it was withdrawn. IIRC there were a
couple of ISVs who took it on.

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: DC CA'[]'

2014-01-15 Thread Ray Mullins

*sigh*

All this talk about CP 037 and 1047. They're obsolete.

The proper CPs to use today are 1140 and  924.  Off the top of my head,
quite a few contributors to this can tell us why; my good friend Herr
Trübner is one who comes to mind immediately, although he might say that CP
1141 should be used intead of 273, and our Hursley friends might vouch for
1147 versus 285.

I like 1148, personally, replacing 500. You see 500/1148 a lot in WMQ.

On 2014-01-15 00:43, Jonathan Scott wrote:

Ref:  Your note of Tue, 14 Jan 2014 14:55:55 -0700

Constants with type CA are currently translated from EBCDIC
codepage 037 to the 7-bit displayable ASCII codes hex 20 through
7E, not to code page 819.  Anything which does not translate to a
valid ASCII character in that range is left untranslated.

(The 7E tilde character was missing until quite recently, which I
spotted and fixed when testing the changes for PM75317, which was
mainly to ensure that the HLASM source code could be stored in a
UTF-8 repository if necessary).

I do not know why this scheme was chosen historically.  It does
seem rather US-centric to me.

The ASMALTAS table used for TRANSLATE(AS) converts code page 037
to code page 819 (ISO 8859-1), using a full 256-byte mapping.

Jonathan Scott



--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: C calling 24bit assembler

2013-11-04 Thread Ray Mullins

What type of I/O? VSAM I/O can have everything above the line, including
ACBs. The only below-the-line restriction since *mumbles some long past
version of MVS* for non-VSAM is the DCB itself. Buffers can be placed above
the line if you use a DCBE with RMODE31=BUFF and associated it with the DCB.
OPENs and CLOSEs use the MODE=31 keyword to generate the SVC parm list for
executing AMODE 31.

What you have to do is obtain storage below the line for your DCBs and build
them manually, usually by having model DCBs in your source and moving them
into the below-the-line storage. Get familiar with the DCBD macro, the
mapping macro for the DCB, because you will have to probably have to store
the DCBE address manually into the DCB. (You mention threads, and that
implies reentrant code (for the most part)).

There are some other things you should be aware of since you are doing
multitasking/threading. You may want to consider translating  the assembler
routines into equivalent C run-time library calls, if possible. This can
make sharing of I/O much easier when multiple threads could be writing to
the same ACB or DCB (FILE in C-speak). There are routines for both VSAM and
non-VSAM.

Also, I believe Enterprise COBOL does have some multitasking capability or
it came in with the 5.1 compiler. I am not familiar with it, though, just
like I am not familiar with OO COBOL. :)

On 2013-11-04 10:23, Scott Ford wrote:

Guys:
I am in the process of rewriting a STC from single thread Cobol into threaded C.
I have some Assembler routines that perform disk I/O , so I assume they are 
doing I/O below 'the line'.  Can someone point me the direction how I can 
modify the Assembler routines to perform I/O above the line ?





--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: which instructions should I use?

2012-08-31 Thread Ray Mullins

On 2012-08-29 11:42, Edward Jaffe wrote:

On 8/29/2012 11:07 AM, John Ehrman wrote:


But be careful: I've seen many examples of poor coding practices that --
simply because they were familar -- were propagated from one program to
another, to the detriment of all.


When I worked for a large bank in the 1980s, and saw how "new" JCL was
constructed there, I conjectured that all batch JCL is descended from the
same
singular job stream.



There's an old joke that Adm. Grace Hopper wrote the first COBOL program,
and every COBOL program since is a derivative. But there are kernels of
truth in such jocularity, as even today I start brand-new assembler code by
copying a skeleton with the entry/exit/work area macros.

Side humour: My T-bird spelling check wants to correct "Jaffe" to "Gaffe".

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: length of DSECT

2012-08-07 Thread Ray Mullins

On 2012-08-06 11:48, John Ehrman wrote:

Worth considering; added to the HLASM "Wish List".


While we're at it, if it's not too much trouble (there's the escape clause),
the length attribute for any xSECT would be a nice touch.

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: HLASM - 20 years old

2012-06-21 Thread Ray Mullins

On 2012-06-21 07:36, Sharuff Morsa3 wrote:

Happy Birthday HLASM.



I met Dr. John several years ago when I interviewed at Santa Teresa Labs for
a DB2 Federation product. I sent him an email asking if I could meet him
after my interview was over, and he gladly accepted. He gave me the quick
tour of the machine room (the largest I had ever seen), and we spent a few
minutes chatting about HLASM, assembler, and all sorts of z/Architecture
tech-type subjects. I consider myself lucky that I was able to meet him in
person.

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time

2012-06-19 Thread Ray Mullins

On 2012-06-19 10:44, John Ehrman wrote:

The SYSATTRA internal function can retrieve the Assembler Type assigned by
an EQU,and the value is independent of the EQUated symbol (so you don't
have to parse special names).  Might that be useful?

John Ehrman


That's actually what I'm doing now.  :)

I was hoping to create logic that didn't require setting of the 5th EQU
parameter. Maybe I'll add check logic and insure that any register EQU used
as a parameter has the 5th parameter coded, and if not, fire off a nasty MNOTE.


--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time

2012-06-19 Thread Ray Mullins

LLH comes in at MACHINE(ZS-3), so the macro substitutes for LLH if assembled
with MACHINE(ZS-2) and earlier. (O' is a nice addition.)

I'm using a combination of LH and IILH (not IILL, as I wrote) to properly
reflect the operation of LLH. LH wants GR32, IILH wants GR64. I'm working
around that if the first operand is one of our register equates, but if
someone slips something like LLH MYREG,ASCBASID where MYREG is tagged as GR,
or not tagged at all, and "more restrictive" is not in effect, I'd like to
bypass the code that gets the proper GR32 and GR64 EQUs.

If "more restrictive" is in effect and they're using GR for their own
equate, then screw 'em, let them deal with the ASMA323Ws. :)

It's not a life-or-death situation. Let me just say that in what we've
currently got now in our macro set, it would be nice to know when HLASM is
in "more restrictive" mode.

On 2012-06-19 09:57, McKown, John wrote:

I'm not entirely sure exactly what you want. But one thing that I do is use the Assembler parm 
MACHINE(architecture) to indicate my "highest level" instruction set. E.g. I use 
"//ASM EXEC PGM=ASMA90,PARM='MACHINE(ZSERIES-3)' to cause an assembler error if I were to 
use EXRL other instruction which would abend with an S0C1 on my z9BC.

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asmi1020/A.2.30

Or is it that you want some macros to use which would expand to an LLH, if at the proper minimal 
MACHINE level, or to a "equivalent" set of "lower MACHINE level" instructions? If 
you want to test this, look at&SYSOPT_OPTABLE at:
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asmr1020/7.10.28

I don't understand the comments about LLH. Is is LLH vs. LLGH? And you want, 
somehow, to determine which to use? LLH should use GR32 equates and LLGH should 
use GR64 equates.

--
John McKown
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets®

9151 Boulevard 26 . N. Richland Hills . TX 76010
(817) 255-3225 phone .
john.mck...@healthmarkets.com . 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® is the brand name for products underwritten and issued by the 
insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance 
Company®, Mid-West National Life Insurance Company of TennesseeSM and The MEGA 
Life and Health Insurance Company.SM


-Original Message-
From: IBM Mainframe Assembler List
[mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On Behalf Of Ray Mullins
Sent: Tuesday, June 19, 2012 11:29 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Checking for "more restrictive" TYPECHECK(REGISTER)
at assemble time

Hi everyone,

I've been through the Fine Manual and the list archives, and
according to my
perusal this is not possible, but I'll throw it out there to
the brain trust
that is ASSEMBLER-LIST.

I'm working on some instruction substitution macros to catch
any slips of
instructions like LLH into code that for one reason or
another has to be
assembled with MACHINE(ZS-2), as well as better MACHINEs. In
one program, we
are experimenting with TYPECHECK(REGISTER) by coding two sets
of equates,
one GR32 and one GR64. Our one hitch is that one of these macros -
specifically one for LLH, uses one instruction that wants GR32 and one
instruction that wants GR64. (I can see why instructions like
IILL want GR64
- I may not agree with it, but I can see the premise.)

Our basic register equates are defined such that I can
determine the GR32
and GR64 equates from the register supplied. However, it
would helpful to
know if HLASM has gone into its "more restrictive" type
checking (their
words from Appendix N from the Programmer's Guide) to add this extra
processing, or, if not, don't bother. There's no nice
&SYSOPT_ flag for
TYPECHECK, nor one saying "more restrictive" has kicked in.
I realize that
this may be difficult, nigh impossible, depending on where in
the assembly
process that "more restrictive" kicks in.

To handle any register equates that don't conform to our
naming standard
(something like CBBASE EQU R10), the oft-requested ability to
SETA to an EQU
value inside a macro would be wonderful. But I'm not holding
my breath on
that one.

Short of putting in a formal enhancement request for a
&SYSOPT_ or other
flag (or one for TYPECHECK and one for "more restrictive"
checking), or
waving at Sharuff and asking if he thinks this is a good
idea, does anyone
have any ideas?

Cheers,
Ray

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting
entirely of far ca

Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time

2012-06-19 Thread Ray Mullins

Hi everyone,

I've been through the Fine Manual and the list archives, and according to my
perusal this is not possible, but I'll throw it out there to the brain trust
that is ASSEMBLER-LIST.

I'm working on some instruction substitution macros to catch any slips of
instructions like LLH into code that for one reason or another has to be
assembled with MACHINE(ZS-2), as well as better MACHINEs. In one program, we
are experimenting with TYPECHECK(REGISTER) by coding two sets of equates,
one GR32 and one GR64. Our one hitch is that one of these macros -
specifically one for LLH, uses one instruction that wants GR32 and one
instruction that wants GR64. (I can see why instructions like IILL want GR64
- I may not agree with it, but I can see the premise.)

Our basic register equates are defined such that I can determine the GR32
and GR64 equates from the register supplied. However, it would helpful to
know if HLASM has gone into its "more restrictive" type checking (their
words from Appendix N from the Programmer's Guide) to add this extra
processing, or, if not, don't bother. There's no nice &SYSOPT_ flag for
TYPECHECK, nor one saying "more restrictive" has kicked in.  I realize that
this may be difficult, nigh impossible, depending on where in the assembly
process that "more restrictive" kicks in.

To handle any register equates that don't conform to our naming standard
(something like CBBASE EQU R10), the oft-requested ability to SETA to an EQU
value inside a macro would be wonderful. But I'm not holding my breath on
that one.

Short of putting in a formal enhancement request for a &SYSOPT_ or other
flag (or one for TYPECHECK and one for "more restrictive" checking), or
waving at Sharuff and asking if he thinks this is a good idea, does anyone
have any ideas?

Cheers,
Ray

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: DS 0H

2012-06-18 Thread Ray Mullins

On 2012-06-13 10:21, Pesce, Andy wrote:

I was always taught:
LABELEQU*

to distinguish a label.  However, when I perform maintenance on a program
that someone else wrote with:
LABELDS  0H

I use that way.  This keeps it standardized throughout the program as not to 
confuse
the next person that does maintenance.



The second biggest problem with EQU * (after the possible branch issues) is
that if you use TEST (whether for TSO or z/XDC), no SYM card is generated
for an EQU, but one is for a DS/DC 0H. This continues today with ADATA.

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: DS 0H

2012-06-14 Thread Ray Mullins

On 2012-06-14 10:41, Tom Marchant wrote:

On Thu, 14 Jun 2012 13:19:37 -0400, J R wrote:


The whole point of such a construct would be to provide an
elegant alternative to the somewhat awkward "DS 0H" and

FSVO "elegant" and "awkward".


And haven't we all switched to DC 0H by now in code for the binder benefits?

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: MVC with 2nd operand length

2012-05-23 Thread Ray Mullins

On 2012-05-23 16:42, John Ehrman wrote:

Paul Gilmartin asked:

So, I wonder:  If I code:

 MVC X+OFFSET,=C'string'

is the implied length as:


 MVC X+OFFSET(L'X),=C'string'<-- This one!

or:

 MVC X+OFFSET(L'X-OFFSET),=C'string'

Implied lengths are always taken from the first term in the operand.  Thus,
the implied length of  (X+1) is L'X, while the implied length of (1+X) is
L'1, or 1.


This is a feature I use often when building variable WTO texts and using
EQUates for the relative positions into the TEXT= work area. Stick the
length in the second operand, something like this incredibly snipped example
with stuff not necessarily in the order where I'd code it (professionals at
work, do not attempt this at home, too lazy to invoke fixed-width fonts,
yeah I'm coding this off the top of my head so there are better ways but I
'm trying to explain the principle...):

WTOTEXT   DSAL2,CL119in a DSECT

MSG0001I DCAL2(L'MSG0001IT)
MSG0001IT DC C'Job  produced this name'
MSG0001I_JOBN EQU 2+4,L'TIOCNJOB,C'C'

 MVC   WTOTEXT(2+L'MSG0001IT),MSG0001I
 MVC   MSG0001I_JOBN+WTOTEXT,TIOCNJOB

The above can be tweaked with the MVC2 stuff to make it even better, but
it's past 5...

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: MVC with 2nd operand length

2012-05-23 Thread Ray Mullins

Try using the HLASMTK SPM SELECT on a CLC where a variable-length literal is
the first operand. A CLC:2 or CLC2 macro or whatever would use the length of
the second operand would simplify a lot of code that I have inherited.

Cheers,
Ray

On 2012-05-23 11:24, Tony Thigpen wrote:

I am actually looking at a TCP buffer to decide what function is being
executed. There is stuff in the COMMAND (which can be 64k) field after
the blank so we can't stretch the second operand. The length used must
be the length of the =C'' field This is just a short sample. I have some
programs that have to check for many more commands and branch
accordingly. (I did leave out the BE's in my sample since I figured
everyone would understand that.)

Right now, I use the first format, with the =C'' first, but it be much
more handy to use the second format with the =C'' last.

FYI, The 'how' is not as important to me as the ability. The 'CLC:2'
just seems to be the best suggestion right now. Although, I would not
have minded something like: CLC COMMAND(#),=C'OPEN '

Tony Thigpen

-Original Message -
 From: Rob van der Heij
 Sent: 05/23/2012 11:51 AM

On Wed, May 23, 2012 at 3:51 PM, Tony Thigpen  wrote:


Switch CLC operands works, but leaves the code messier.

CLC =C'OPEN ',COMMAND
CLC =C'CLOSE ',COMMAND
CLC =C'TERMINATE ',COMMAND
CLC =C'END ',COMMAND

vs:
CLC:2 COMMAND,=C'OPEN '
CLC:2 COMMAND,=C'CLOSE '
CLC:2 COMMAND,=C'TERMINATE '
CLC:2 COMMAND,=C'END '


Think you stretch it beyond where it breaks. You would not have the
CLC's without intervening tests on the CC so it does not look really
so bad...  And  I am fairly sure you normally would not want to CLC
the long field with a random section of the literal pool starting at
C'OPEN'  :-(

What I would want is CLC:2 to "stretch" the literals to the length of
the field, rather than having me to code it like
  CLC COMMAND,=CL(L'COMMAND)'OPEN'

Rob







--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: MVC with 2nd operand length

2012-05-16 Thread Ray Mullins

On 2012-05-16 12:39, John Ehrman wrote:

"Retired mainframer" noted:


I must be missing something obvious.  Why not simply

  MACRO
  &LabMVC2&Target,&Source
  &LabMVC&Target(L'&Source-1),&Source
  MEND

or avoid the macro completely with

   &Lab   MVC  Label1(L'Label2-1),Label2

The reason for the more complex macro is that the source operand may have
been encountered by the assembler for the first time in the MVC
instruction, and not yet appear in the symbol table with all attributes
assigned (particularly, length), so the L' reference might fail. (This can
happen easily with literal operands.) The purpose of the LA instruction in
the macro is to force the&Source operand into the symbol table in case
it's not there already.


See? I've been dealing with IBM assembler for over 3 decades, and HLASM
since its initial publication. And there is still much for me to learn!

Thanks for this tip, John!

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: ADATA Exit

2012-04-19 Thread Ray Mullins

On 2012-04-19 12:06, Martin Truebner wrote:

Ray,


I assume you tried // ASSGN SYSADAT,IGN?


No i did not- Why would you expect VSE to know something about that
special number ADAT?

But I did try // DLBL +EXTENT (pointing to SYS010) and assgn SYS010
IGN- This did not work (and this never worked except for very old
COBOL-programs that had logic build into them to honor it).


It was worth a shot. :)


You could try DLBLing a "dummy" 1-track SAM-ESDS file.


As long as I do not specify an exit it does produce data.


Now that sounds like a bug. I vote for firing up the HLASM Debug Tool (which I 
must correct myself - I used it rather than the IBM Debug Tool (for LE-based 
languages) back in my prior life). Or, possibly, another debugging tool that I 
think you are
familiar with. :D


I have used ADATA in the past under VSE; I created VSAM files that


It works with regular SAM as well.


I used VSAM because I didn't need to deal with EXTENTs. :)



--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: ADATA Exit

2012-04-19 Thread Ray Mullins

On 2012-04-19 06:37, Martin Truebner wrote:

I am writing an ADATA Exit for HLASM

I told the invoker (ASMA90) all possible Return-code/reason code
combinations (that is 4/0 4/4 4/8), because I want to write the records
in my format. All I get is a one line nastygram:

** ASMA418C Unable to open ADATA file

Question 1: anyone succeeded in convincing the Assembler not to attempt
open of the ADATA file - any op-sys.


Yes. I have used the sample exit for converting HLASM V5+ to HLASM V4 to use 
with the long-neglected Program Understanding Tool, under z/OS.


Question 2: I am on VSE and I do not understand this sentence (in
Programmers Guide- chapter on ADATA exit processing):
  - Suppress the associated data output by doing this:
-z/OS (okay I got this)
-CMS Issue (okay I do understand this as well)
-z/VSE Assign SYSADAT to IGN.

The last sentence is something I have problems doing.


I assume you tried // ASSGN SYSADAT,IGN? Judging from the Programmer's Guide, 
this is supported. But I agree, that seems strange; I've never known of a 
SYSADAT logical unit. There are only three hits in the z/VSE documentation for 
SYSADAT: in messages and
codes for the ASMA418C, and two in the area of the C DSECT conversion tool. 
These all reference DLBL.

You could try DLBLing a "dummy" 1-track SAM-ESDS file.

I have used ADATA in the past under VSE; I created VSAM files that were then 
fed into the appropriate utility for use in the IBM Debug Tool (since, despite 
my begging over the years, Dave Cole still hasn't ported z/XDC to z/VSE. (Yes, 
this is a joke.
There are very good economic reasons why Dave has not done it. :) ))

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Macro compound symbols

2012-04-02 Thread Ray Mullins

Hello Chuck,

Parameters on the macro prototype are not assembler variables. They have quirks 
in processing, and you've discovered one of them.

To do what you want to do, you will have to SETx the parameters to assembler 
variables, and then perform your compound variable logic.

Cheers,
Ray

On 2012-04-01 10:07, Hardee, Chuck wrote:

Hello,

Thru the IBM Mainframe list I have been able to get the assembler to accept the 
following as valid:

&VARNAM SETC  'P'.'&I'
&XVAL   SETC  '&(&VARNAM)'

&XVAL is defined as LCLC

This statement:
 MNOTE 'VARNAM=&VARNAM'
results in the following in the assembly listing:
 +VARNAM=P1
so it appears that the creation of the compound variable name is working 
(compound being defined as the building of a variable name using two or more 
parts at runtime.)

However, this statement:
&XVAL   SETC  '&(&VARNAM)'
results in the following in the assembly listing:
** ASMA003E Undeclared variable symbol; default=0, null, or type=U - TESTM/P1
** ASMA435I Record 44 in S01CH.MISC.MACLIB(TESTMAC) on volume: TECH27
(and I might add that I get the same warning for the remaining variables, P2, 
P3, P4 P5 and P6)

Which makes no sense since the macro is defined:
 MACRO
&LABEL  TESTMAC&P1=,&P2=,&P3=,&P4=,&P5=,&P6=

Which, unless I've missed something, defines P1, P2, etc.

Can anyone shed some light on why the assembler would think that the variables 
P1 thru P6 would be thought of as not defined when they are clearly defined in 
the MACRO template?

Thanks,
Chuck

Charles (Chuck) Hardee
Senior Systems Engineer
Database Administration
Information Technology Services
Thermo Fisher Scientific
chuck.har...@thermofisher.com




--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: SV: Assembler programmers wanted - Clarification

2012-03-22 Thread Ray Mullins

Less of an outcry, but I would have pointed out that you can't talk about age.

On 2012-03-22 11:40, Thomas Berg wrote:

-Ursprungligt meddelande-
Från: IBM Mainframe Assembler List [mailto:ASSEMBLER-
l...@listserv.uga.edu] För Steve Comstock
Skickat: den 22 mars 2012 15:06
Till: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Ämne: Re: Assembler programmers wanted - Clarification

On 3/22/2012 7:54 AM, Ray Mullins wrote:

I didn't think it was on behalf of Colesoft, so from my perspective

you were

already in the clear.

I agree with Elardus -- Bob's heart was in the right place, but it

didn't come

out right.


Yup. I imagine he thought he was doing the community a favor by
announcing a job possibility and I'm sure he was caught totally
by surprise by the response. I'd cut him slack: I think many of
us learned a lesson or two here.


Wonder what a response he had if he wrote "old, experienced assembler programmers 
are preferred" ?
:)




Regards,
Thomas Berg
__
Thomas Berg   Specialist   AM/DQS   SWEDBANK AB (publ)




--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Assembler programmers wanted - Clarification

2012-03-22 Thread Ray Mullins

I didn't think it was on behalf of Colesoft, so from my perspective you were 
already in the clear.

I agree with Elardus -- Bob's heart was in the right place, but it didn't come 
out right.


On 2012-03-21 14:27, David Cole wrote:

Hi All,

I just now came upon this thread, and I feel that I need to make a
few of things clear:

First, Bob is not making this appeal on behalf of ColeSoft.

Second, Bob did not consult with me before making this posting.

Third, if Bob had consulted with me, I would have told him not to do it.

And fourth, I do not know for whom he is making this appeal.



Frankly. I am embarrassed by Bob's posting, and I hope he doesn't do it again.

Dave Cole REPLY TO: dbc...@colesoft.com
ColeSoft Marketing WEB PAGE: http://www.colesoft.com
736 Fox Hollow Road VOICE: 540-456-8536
Afton, VA 22920 FAX: 540-456-6658






At 3/19/2012 12:10 PM, Robert Shimizu wrote:

Folks:

This is a community service announcement.

While at SHARE, I spoke with a friend of mine who runs a software
development house. He is looking for a couple of Assembler programmers
with strong understanding of z/OS internal architectures. And, truth be
told, he wants them to be as young as possible.

If you know of anyone who seeks such a position, please have them
respond to me directly and send me their resume. I'll see that
introductions are made and will bow out after that.

Sincerely,
Bob

--
Robert W. Shimizu
Partner
ColeSoft Marketing, Inc
bshim...@colesoft.com
www.colesoft.com
(800) 932-5150
(928) 771-2005 Fax





--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Assembler programmers wanted

2012-03-21 Thread Ray Mullins

Bob, Don is right. Although IANAL, I have taken enough recent classes in both 
HR and basic business legal stuff that if your friend stated those exact words 
in an interview, he would be violating federal law.

It is even possible that your mention below has dirtied the hiring process.

Please advise your friend that he/she needs to restate this and remove any hint of 
"looking for younger" hires.

As Paul (I think) said elsewhere, the best path is to hire young and old and 
use the accumulated knowledge of the elder to mentor the younger. I'm glad to 
see an 18-year-old want to learn z/Architecture assembler, but the 
opportunities need to be created
to allow this to happen.

Again, IANAL, but I have book learning, which is almost as dangerous. ;)

Later,
Ray

 On 2012-03-19 13:15, Don Shaw wrote:

Robert,
Why are you participating in this illegal and scurrilous practice?

On Mar 19, 2012, at 12:10 PM, Robert Shimizu wrote:


Folks:

This is a community service announcement.

While at SHARE, I spoke with a friend of mine who runs a software
development house.  He is looking for a couple of Assembler programmers
with strong understanding of z/OS internal architectures.  And, truth be
told, he wants them to be as young as possible.

If you know of anyone who seeks such a position, please have them
respond to me directly and send me their resume.  I'll see that
introductions are made and will bow out after that.

Sincerely,
Bob

--
Robert W. Shimizu
Partner
ColeSoft Marketing, Inc
bshim...@colesoft.com
www.colesoft.com
(800) 932-5150
(928) 771-2005 Fax





--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Requiring FLOWASM for CBT donations

2012-02-29 Thread Ray Mullins

On 2012-02-27 22:32, Martin Truebner wrote:

... and it is one of the few programs that compile and run on either
z/OS or z/VSE



And, I would assume, CMS under z/VM. Has anyone tried it under Linux for z?


--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: Program FLIH

2012-02-24 Thread Ray Mullins

SAG did get rid of their famous one about 17 years ago, though. :)

On 2012-02-23 17:37, Gibney, Dave wrote:

   Haven't looked, since I have Software AG, BMC, CA, SYNCSORT, LRS plus a few 
others, is it likely I will find it ? :)

Dave Gibney
Information Technology Services
Washington State University



If the address at location 1DC points to a page boundary it's most likely that
the 3rd party code is installed.

Happy hunting,
Keven





--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


Re: FLOWASM observation

2012-02-21 Thread Ray Mullins

Might have to switch from RDJFCB to SVC 99...

On 2012-02-21 10:17, Edward Jaffe wrote:

On 2/21/2012 8:52 AM, McKown, John wrote:

I keep my HLASM source in z/OS UNIX files. "Just because I want to.".
This works well for me. The only problem that I've run into is when I
edit with "vi" (yes, I get what I deserve). ISPF edit "knows" that if
I replace "ABCD" with "EF", it should only move the non-blank
characters immediately to the right of the "ABCD" left. vi doesn't do
this. This is really disruptive of continuation characters in column
72. So, looked at FLOWASM. Wonderfully, one thing it allows is
continuation of a statement without the continuation character in
column 72! So I thought it would be wonder to use and remove all the
characters from column 72. Unfortunately, FLOWASM uses RDJFCB on the
DCB which describe the input dataset. This RDJFCB gets an RC of 4 when
the input is a UNIX file.. It appears that the RDJFCB is really
only used to pass back the DSN and volume of the input dataset to the
assembler.

I'm wondering if I have an old version and a newer version supports
input from a UNIX file. Did I mention that I keep my macros in UNIX as
well? Yes, I'm weird.


I will take a look at this...

--
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/




--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: How good is the EX instruction?

2012-01-17 Thread Ray Mullins

On 2012-01-17 07:44, Edward Jaffe wrote:

On 1/17/2012 6:40 AM, Paul Gilmartin wrote:

I forget; is the target of EX treated as a data access or as an
instruction access for cacne management?


The 256-byte cache line containing the target instruction is loaded into
I-cache.


So, this would seem to point towards putting the target near the
instruction, if you can, or at least no more than 244 bytes away (worst
case, maybe a bit less), or possibly grouping frequently executed
targets together using Martin T's. favorite LOCTR assembler instruction
and hoping that the line stays in cache.

Thoughts?

Later,
Ray

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: How bad is the EX instruction? (correction)

2012-01-17 Thread Ray Mullins

I knew there were VSE folks on those boxes, which is why I chose my
models carefully.  ;)

On 2012-01-16 13:43, Tony Thigpen wrote:

 > I doubt anyone is still running ES 9000 boxes.

I have paying customers on 9672s, MP2000, MP3000, etc.
VSE, not z/OS.


Tony Thigpen

-Original Message -
From: Ray Mullins
Sent: 01/16/2012 01:48 PM

Arrgh. Correction to the below. Not enough caffeine, yet it's late in
the morning...

Tom Marchant correctly mention that SRST/CLST came in with ESA, not late
System/370, as a look at my SEARS card just confirmed. However, the
point still applies - SRST/CLST have been around for almost 25 years and
I doubt anyone is still running ES 9000 boxes.






--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: How bad is the EX instruction? (correction)

2012-01-16 Thread Ray Mullins

Arrgh. Correction to the below. Not enough caffeine, yet it's late in
the morning...

Tom Marchant correctly mention that SRST/CLST came in with ESA, not late
System/370, as a look at my SEARS card just confirmed. However, the
point still applies - SRST/CLST have been around for almost 25 years and
I doubt anyone is still running ES 9000 boxes.

On 2012-01-16 10:41, Ray Mullins wrote:

On 2012-01-13 02:18, Rob van der Heij wrote:

On Fri, Jan 13, 2012 at 8:13 AM, Martin Truebner
wrote:

Rob,

have you tried SRST?

I had a hard time getting used to SRSTs way of using/wanting the
resgisters- but then... It does an excellent job on searching for one
(and only one) character in a string.


Martin,

Haven't, and probably should for my own education. We restrict our
products to older architecture levels for a number of good reasons.


Ya-but...

SRST came in sometime during the late System/370 era. I have a yellow
book with SRST and CLST defined.

(I've been burned only once by a non-System/370 instruction (ICM), and
that was on a plug-compatible that a Brazilian customer was running in
the early 1990s. I have burned myself on using the wrong ARCH option in
a C compile when a customer was still running a z900 (ARCH(5)) and I had
accidentally left it set to ARCH(6).

Later,
Ray


--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
--Robert B Wilson
English is essentially French converted to 7-bit ASCII. ---Christophe
Pierret [for Alain LaBonté]




--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: How bad is the EX instruction?

2012-01-16 Thread Ray Mullins

On 2012-01-13 02:18, Rob van der Heij wrote:

On Fri, Jan 13, 2012 at 8:13 AM, Martin Truebner  wrote:

Rob,

have you tried SRST?

I had a hard time getting used to SRSTs way of using/wanting the
resgisters- but then... It does an excellent job on searching for one
(and only one) character in a string.


Martin,

Haven't, and probably should for my own education. We restrict our
products to older architecture levels for a number of good reasons.


Ya-but...

SRST came in sometime during the late System/370 era. I have a yellow
book with SRST and CLST defined.

(I've been burned only once by a non-System/370 instruction (ICM), and
that was on a plug-compatible that a Brazilian customer was running in
the early 1990s. I have burned myself on using the wrong ARCH option in
a C compile when a customer was still running a z900 (ARCH(5)) and I had
accidentally left it set to ARCH(6).

Later,
Ray


--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: Enhanced CALL macro?

2012-01-16 Thread Ray Mullins

And YREGS.

On 2012-01-12 21:17, Hall, Keven wrote:

Have you forgotten about SAVE and RETURN in SYS1.MACLIB?  IBM has you
covered.  Mostly covered, sort of...ish.

K3n

-Original Message-
From: IBM Mainframe Assembler List
[mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On Behalf Of Paul Gilmartin
Sent: Thursday, January 12, 2012 10:43 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Enhanced CALL macro?

On Jan 11, 2012, at 07:03, Rob Scott wrote:


IMHO the first resource needed by any assembler programmer before

writing anything non-trivial is a set of macros that enable subroutine
calling, register saving and return that cater for all environments.



Why doesn't IBM supply these and spare customers the redundant depletion
of resource?

-- gil




--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: Assembler pgm to copy a file

2011-12-09 Thread Ray Mullins

Not a bad idea. That does bring up other issues, but for the stuff I do,
that would work.

In case anyone is interested, having RSECT available would force
reentrant assembly of the section even if someone forgot to put RENT in
the ASM parms.

On 2011-12-08 17:36, David Bond wrote:

OPSYN is your friend.

On Thu, 8 Dec 2011 17:27:46 -0800, Ray Mullins wrote:

Bwahaha! Although things are better than they used to be...

I'd still like the option for CEESTART to generate RSECT instead of CSECT...





--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: Assembler pgm to copy a file

2011-12-08 Thread Ray Mullins

Bwahaha! Although things are better than they used to be...

I'd still like the option for CEESTART to generate RSECT instead of CSECT...

On 2011-12-08 11:26, Tony Harminc wrote:

On 8 December 2011 13:53, Tom Marchant  wrote:


Establishing the save area is important in the event of an abend if someone
needs to follow the save area chain.  It is difficult to determine from a
dump where he saved his registers without following the conventions as they
are documented in the Assembler Services Guide.  This is especially true if
there are multiple linkage stack entries used


Maybe someone should clue the LE group in IBM into this...

Tony H.




--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: ASM Program to copy a file

2011-12-08 Thread Ray Mullins

On 2011-12-08 09:43, Binyamin Dissen wrote:

On Thu, 8 Dec 2011 17:14:38 +0100 Martin Truebner
wrote:

:>>>   A change to MVC INOUTBUF(11),='Test record' works just fine.

:>And MVC INOUTBUF,=CL(L'INOUTBUF)='Test record' would have worked as
:>well.

Unless INOUTBUF is longer than the literal and the literal is near the end of
a page.


During my years as computer lab manager at the college, that particular
issue was the cause of many an S0C4 in assignments. The better students
would catch on immediately, the good students understood when I told
them why, the bad students made the same mistake over and over again.


--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: newer opcodes

2011-10-12 Thread Ray Mullins

On 2011-10-12 12:22, Edward Jaffe wrote:

On 10/12/2011 5:08 AM, Tony Thigpen wrote:

Our customers base is VSE. We have customers that are running (in
production) old levels back as far as VSE 2.1. We have customers running
hardware as far back as MP2000 boxes. Until last year, we actually had a
VSE 1.4 customer. When you consider the fact that some of our customers
are running non-Y2K compliant systems, it is a little scary! But, they
keep sending in the checks. :-)


We all have back-level customers. The real question is whether those
customers--who won't upgrade their hardware and/or install new releases
of the
operating system--are upgrading to the latest releases of our software.

When I looked at this a few years back, the answer was a resounding "No".
Back-level customers were back-level on everything. And, when and if
they did
upgrade, they tended to upgrade everything at the same time.

As long as we continue to support the highest release of our software
that did
not require newer instructions, the back-level customers continue to get
what
they pay for (support for their current release and access to new releases
should they ever choose to upgrade) and we can develop the latest
releases using
newer hardware facilities.


My internal rule-of-thumb (usually ignored) is to support the minimum
hardware level that supports the last z/OS level to go EOS, and likewise
the minimum supported z/OS level is the same. (If you need earlier, then
you have to pay for it, just like you're doing with IBM, and you
probably won't get a new release anyway.) This goes with both assembler
(OPTABLE) and C (ARCH/TARGET) code.

I haven't looked in about a year, but I'm pretty sure z/OS 1.8 and maybe
1.9 could still run on z800/z900. (In fact, I got a note from my former
employer about a month ago concerning an LLH that sneaked into some
assembler code in a maintenance branch.)

As new releases come out, the release notes say what the minimum
hardware and z/OS levels are, and also state that possible future
releases may not support these levels.

In the case of C, I set the TUNE parameter to one less than the current
highest level for the most recent z/OS, because that usually aligns with
the most common machine out there in The Real World ™.

IIRC, z/VSE can run on even older architecture levels than z800/z900.

I've written some assembler macros that simulate newer instructions and
are loaded in based on the OPTABLE settings. It's kind of fun, actually,
to rewrite newer instructions using only old.


[Aside: No facility in recent memory has been more liberating to our
programmers
than the relative-immediate facility.]


Amen. And when I've taught co-workers about the magic of relative
branches when they need a new base register, their gratitude is bountiful.

Later,
Ray

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: oops - heavy finger

2011-08-26 Thread Ray Mullins

Well, there is a hurricane breathing down your neck, so we'll excuse it.  :D

On 2011-08-26 11:51, Thomas David Rivers wrote:

Oops...

  Apologies for sending out my e-mail to the list, I had
  meant for it to go to Justin.

  I suppose it's "fat finger friday".

 - Dave Rivers -

--
riv...@dignus.comWork: (919) 676-0847
Get your mainframe programming tools at http://www.dignus.com




--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: z12 new instruction list

2011-07-27 Thread Ray Mullins

On 2011-07-27 00:34, robin wrote:

From: "Martin Trübner" 
Sent: Wednesday, 27 July 2011 4:43 PM



What?


z12


new box ?


instructions


maybe now we get DWIM?

=Do what I mean.


Still waiting for RSC

(=Read and shred card).



XO or XOPR (Execute Operator) is still my all-time favorite.

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: Non-LE Assembler XCTL to LE C module with PARM=

2011-07-20 Thread Ray Mullins

On 2011-07-20 06:58, Kirk Wolf wrote:

I apologize if this is a bit O.T., but the audience on this list seems to be
a little more focused than IBM-MAIN for this kind of question


What, ranting seems to distract them from the subject at hand?  :) (This
is one of the reasons I've been quiet over the past few years on lists:
the signal-to-noise ratio, and lack of spare time.)


I was curious about what would happen in the following scenario:

Suppose you have a LE enabled "main" program written in C, that is normally
invoked as a job step via "EXEC PGM=".   The program accepts parameters in
PARM=, but you can also set LE options for it (as with other LE programs) by
putting them in the PARM before the first slash, e.g.:  EXEC
PGM=CLEPROG,PARM='HEAP(12M)/arg1 arg2".

Now, suppose I have a small non-LE assembler program (call it "ASMXCTL"),
that does a "XCTL EP=CLEPROG", passing the original R1 (PARM=)..

What would happen if I did this? -

EXEC PGM=ASMXCTL,PARM='HEAP(12M)/arg1 arg2'

Does the "main" initialization of "CLEPROG" process the LE options as
before?


Yes. At a prior place of employment, there is actually C and assembler
code that does this - dynamically generating HEAP settings based on
various product options and then building the PARM that was passed to a
subtask via ATTACH.

(I inherited this code; the address space was a C main task with C and
assembler subtasks fired off by invoking an ATTACH assembler subroutine,
and those subtasks attached C and assembler subtasks. Should I mention
that some of the assembler tasks were also not LE-enabled? Talk about
the wide possibility of S0C4s. It was always on my list to convert to
threads, but you know how priorities change on a whim from outside factors.)

Later,
Ray


--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/

German is essentially a form of assembly language consisting entirely of
far calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.
 --Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe
Pierret [for Alain LaBonté]


Re: philosopy question: use LE & HLASM?

2011-07-08 Thread Ray Mullins

Paul's suggestion of LOCTR is how I solved the issue that hit me. I'd
forgotten about that when I wrote my earlier note.

I may have been absent from the list for a while, but long-timers
remember me as being particularly "gripey".  :)

On 2011-07-08 05:03, Peter Relson wrote:

However, use of RSECT in a multiple CSECT assembly
allows a temporary override of NORENT


The multiple CSECT assembly case had not come to mind. I think, while
unwieldy, in many cases each such assembly could have its own *PROCESS
RENT/NORENT. I don't claim that's better, just that until the "gripe" is
satisfied, it might be acceptable.

Peter Relson
z/OS Core Technology Design



Re: philosopy question: use LE & HLASM?

2011-07-07 Thread Ray Mullins

Your points are certainly valid, Peter. However, use of RSECT in a
multiple CSECT assembly allows a temporary override of NORENT, plus it's
one less line (piddling, I know). I've never actually done a mixed
CSECT/RSECT assembly, but I'm sure someone has...and with some of the
new PM3 and 4 split formats, could be theoretically exploited. (Again,
don't ask me why, I have no immediate idea.)

In addition, unless something has changed recently, *PROCESS RENT can't
be generated from inside a macro, but RSECT can.

I've also seen issues in poorly-coded macros (not mine) where use of
&SYSECT in CEESTART rather than the hard-coded CSECT would avoid conflicts.

Later,
Ray

On 2011-07-07 04:36, Peter Relson wrote:

This doesn't really sound like a philosophy question, it sounds like a
need question. Do you need anything that LE can provide (be that functions
or the stack or something else, even something that just makes it easier
to code what you need to code)?  If the answer is "yes" (or perhaps even
"maybe" to help with future changes), then you should use LE. If not, then
why would you? The LE stack is of course faster for an individual obtain
than getmain but if all you need is one getmain, then the LE setup that
would enable you to use that stack would be far more costly.


Gripe time: Dear IBM LE, please allow use of RSECT in CEESTART.


Perhaps I'm missing the benefit. RSECT is ignored within z/OS processing
except for modules in IEANUCxx.
So is there some assembler benefit over and above what RENT checking gets
you? Wouldn't
*PROCESS RENT
 CSECT
(or having RENT in your assembler invocation parameters) basically be
equivalent to
 RSECT


Peter Relson
z/OS Core Technology Design



Re: philosopy question: use LE & HLASM?

2011-07-06 Thread Ray Mullins

My philosophy has been to not use LE, unless LE will be around due to
C/C++, COBOL, or PL/I being in the immediate vicinity. Also, there are
times where I've had to use something in LE (like Lilian dates from an
external source) that it handles nicely.

If you are just using USS, and C will not enter the picture, then I'd
not introduce the extra level of complexity. For example, at a former
employer, I had to work with a batch program that did all sorts of BPX1
stuff (directory manipulation, spawning, etc.). It did not use LE.

Gripe time: Dear IBM LE, please allow use of RSECT in CEESTART. The
entry and exit code is pretty much reentrant already (for the most
part). Love, Me

Later,
Ray


On 2011-07-06 05:14, John McKown wrote:

I am looking into writing an HLASM program on z/OS which will use UNIX
System Services. Should I just bite the bullet and make my routine LE?

--
John McKown
Maranatha!<><



Re: ASMPUT and Windows x64

2011-05-03 Thread Ray Mullins

I finally got around to working on this. Here are some steps you need to do:

The ASMPUTW.EXE (downloaded from ASM.SASMMOD2) cannot run on an x64
Windows system. However, it is just a self-extracting archive, and can
be run on either an x86 Windows system or , even better, opened with
your favorite ZIP archive manipulation tool (I used 7-Zip) and
extraction performed.

The SETUP.EXE program will run on Windows 7 x86 or x64. I could not get
it to run on Vista x64 - it starts and hangs before presenting the
dialog box, even with Win95 compatibility. However, ASMPUT does run
under Vista x64, and with the right manual manipulations in the registry
and file associations, it could be set up to work smoothly.

As David wondered about below, you do have to run with compatibility on
in Windows 7. I was able to use Win98/ME and Win95. One problem does
crop up, however in Windows 7 - the File->Open and Open tool bar button
do not work - they do not open the dialog box. However, you can double
click on the .XAA file in Explorer and it will launch ASMPUT, opening
the file. Under Vista, interestingly, I got it to run without
compatibility. (Go figure).

If anyone else wants to try this and runs into issues, drop me a note,
and I'll try to assist.

It's a shame that this program appears to be orphaned, based on the lack
of ADATA V3 support and the lack of improvement since the Win98 era. If
I were more of a Java hack, had more round tuits, and IBM were willing
to pay me *cough*, I'd take a crack at porting and upgrading it.

Later,
Ray

On 2011-04-28 15:42, David de Jongh wrote:

I'd be interested to know if you can get that working.  According to the doc
(GC26-8711-08):



Note that, as installed, the Program Understanding Tool toolbar buttons do
not work on Windows 2000 or XP systems, and above. To resolve this,
right-click on the Program Understanding Tool icon, and select Properties>
Compatibility. Select Run this program in compatibility mode for: and select
Windows 95 from the menu. Select Apply and then OK. Now the toolbar buttons
should work.



--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.mrmullins.big-bear-city.ca.us/
http://www.the-bus-stops-here.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]


ASMPUT and Windows x64

2011-04-28 Thread Ray Mullins

Hi everyone,

It's been a long time!

I tried installing ASMPUT (the Toolkit Program Understanding Tool) on a
couple of Windows machines that are x64, and Windows did not understand
*g* the program - giving the long-winded dialog box basically saying
that this is x86-only. IBMLINK has nothing, and Google has about as much.

Compatibility mode doesn't work either on both Vista and Win7. I could
install it on an old home WinXP x86 machine, but I can't do that until
this evening.

There is one thing I could try after I install on x86, and that is copy
the installed programs over to x64. Usually the installer is the one
that has the issue with x64, not the actual installed program itself.
This is how I got the old XMIT Manager to work.

Has anyone ever gotten this working on an x64 machine?

Cheers,
Ray

--
M. Ray Mullins
Roseville, CA, USA
http://www.catherdersoftware.com/
http://www.mrmullins.big-bear-city.ca.us/
http://www.the-bus-stops-here.org/

German is essentially a form of assembly language consisting entirely of far 
calls heavily accented with throaty guttural sounds. ---ilvi
French is essentially German with messed-up pronunciation and spelling.  
--Robert B Wilson
English is essentially French converted to 7-bit ASCII.  ---Christophe Pierret 
[for Alain LaBonté]