Re: Last notice of Trainer's Friend training kits sale

2013-11-27 Thread Larry Lawler
Do you have any CICS kits ?

Best Regards, Larry
Larry Lawler

-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of Steve Comstock
Sent: Wednesday, November 27, 2013 9:23 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Last notice of Trainer's Friend training kits sale

This is for organizations who need 30 days to get through a requisition /
paperwork cycle, and it will be the last notice of our sale, so in the
future we will not take up any bandwidth on it.


The Trainer's Friend, Inc. is closing its [virtual] doors as of December 31,
2013.


Prior to that, we are holding a Going Out Of Business
(GOOB) sale of our training kits and a collection of my technical papers.


Tons of detail are available at:

   http://www.trainersfriend.com/SpecialSale/

but here's a quick overview...

A training kit is a collection of files that enables an instructor to teach
a course (or allows a course to be taken as self-study[-with-mentor]).
Typically a training kit from us contains:

* Presentation version of content (PDF)
* Print master for student handout version of content (PDF)
* Instructor notes (PDF)
* Lab files (XMIT)
* Instructions for installing lab files on mainframe (PDF)


Historically, we have priced training kits at USD 2000 per course day. For
this sale, we are pricing them at USD 200 per course day - a 90% discount.


Our courses are focused on z/OS application programmers, although some
courses might be useful for beginning systems programmers, operators, end
users, and so on.

The topic areas for which we have training kits include:

* Introduction to application programming (z/OS)
* ISPF, CLIST, REXX, Dialog Manager
* JCL and Utilities, DFSORT
* Assembler Language
* COBOL
* PL/I
* C
* VSAM
* DB2
* Language Environment
* Cross program communications
* DLLs
* Debug Tool
* z/OS UNIX (including building web pages and coding CGIs)


64 courses in all, totalling 192 training days.

In addition we have these special offers:

* Total package - all courses plus technical papers USD 3
* Steve package - all my courses plus technical papers USD 17000
* Hunter packate - all Hunter's courses USD 16000
* Bulk discount - if purchasing individual courses, if total is
   10 or more training days, additional 15%
   discount for training kits (so: USD 170 per
   course day)

This is spelled out here:

   http://www.trainersfriend.com/SpecialSale/SpecialDeal.html


The sale is going well so far, but we just wanted to put in a gentle
reminder before it is no longer available.

Sale ends December 30, 2013.

Kind regards,

-Steve Comstock, founder
The Trainer's Friend, Inc.
303-355-2752


Re: Making an old macro baseless

2013-08-15 Thread Larry Lawler
I thought LAY required a more recent processor?

Sent from my iPhone

On Aug 15, 2013, at 14:47, Robert Ngan rn...@csc.com wrote:

 If the label could be in the module or in a dsect, I'd use LAY instead of
 LARL.
 Of course, this assumes you currently have addressability to the dsect, and
 the label is within +/- 512K of the dsect base register (or your module
 static data base register) which in 99.9% of cases is a good assumption.
 And you don't have to worry about halfword alignment.

 Robert Ngan
 CSC Financial Services Group

 IBM Mainframe Assembler List ASSEMBLER-LIST@listserv.uga.edu wrote on
 2013/08/15 06:19:06:

 From: John P. Hrtmann jphartm...@gmail.com
 To: ASSEMBLER-LIST@listserv.uga.edu
 Date: 2013/08/15 06:21
 Subject: Making an old macro baseless
 Sent by: IBM Mainframe Assembler List ASSEMBLER-LIST@listserv.uga.edu

 CMS Pipelines ships the macro #LAL.  One would write:

   #LAL 2,'a message'

 This expands to a LA 2,=c'...' and LA 3,length.  As the constant goes
 into a literal pool I can substitute LARL for even length literals
 without adding failures (unless the literal pool is more than 4G away).

 The general case of

#LAL 2,label

 expands also to a LA.  I can change that to a LARL only when the
 reference is to a control section.  If the label is declared in a dummy
 section, there is no way around the USING and LA.  (If the label is
 undefined at the time the #LAL macro is issued, all bets are off and I
 must clearly be conservative and go LA).

 So my question is:  How to determine whether a label is in a DSECT or
 CSECT/RSECT?  I think I can determine whether the symbol is absolute
 from the type attribute, so we don't need to worry about that.

 Or is there a way to determine the name of the section a symbol is in?
 If not, would a SETC function SECTION(x) returning the appropriate name
 be useful in generl?   All it has to do is look in the symbol table and
 return a null string for undefined or absolute.  A SETA function
 returning the ESD number of the containing section would also solve my
 problem (DSECTS have negative ESD IDs internally; absolute symbols are
 in ESD 0).  SETA also gets round the problem of the symbol being in
 private code, so it is really the best.

 I guess there is the additional wrinkle that the target must be on a
 halfword boundary, but I can add a trailing blank to a literal that is
 an odd number of characters (as long as I don't mess up the length).

 Any suggestions?


Re: YREGS MACRO doc?

2013-08-02 Thread Larry Lawler
Or use the WORD keyword, in your search and replace

C R1 R2 WORD

-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of Robert A. Rosenberg
Sent: Thursday, August 01, 2013 9:54 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: YREGS MACRO doc?

At 10:48 -0400 on 08/01/2013, Tom Marchant wrote about Re: YREGS MACRO doc?:

On Wed, 31 Jul 2013 20:07:52 -0500, John McKown wrote:

I tend to use Rn_32 and Rn_64

An advantage of this over Rn, GRn and RWn is that a search for R1_32
doesn't find, e.g. R11_32.

--
Tom Marchant

You can always use R00-R15 which also does not confuse a search for register
1 with registers 10-15.


Re: YREGS MACRO doc?

2013-07-31 Thread Larry Lawler
This is what we use, and we did use RA before, but are trying to get away
from that convention, due to 64-bit registers, such as GRA, GRE, GRF which
looks too much like a field names now:

*-*
*DEFINE GENERAL PURPOSE 32-BIT REGISTER SYMBOLS
*-*
R0   EQU   0GR32   EQUATE FOR REGISTER 0
R1   EQU   1GR32   EQUATE FOR REGISTER 1
R2   EQU   2GR32   EQUATE FOR REGISTER 2
R3   EQU   3GR32   EQUATE FOR REGISTER 3
R4   EQU   4GR32   EQUATE FOR REGISTER 4
R5   EQU   5GR32   EQUATE FOR REGISTER 5
R6   EQU   6GR32   EQUATE FOR REGISTER 6
R7   EQU   7GR32   EQUATE FOR REGISTER 7
R8   EQU   8GR32   EQUATE FOR REGISTER 8
R9   EQU   9GR32   EQUATE FOR REGISTER 9
RA   EQU  10GR32   EQUATE FOR REGISTER 10
R10  EQU  10GR32   EQUATE FOR REGISTER 10
RB   EQU  11GR32   EQUATE FOR REGISTER 11
R11  EQU  11GR32   EQUATE FOR REGISTER 11
RC   EQU  12GR32   EQUATE FOR REGISTER 12
R12  EQU  12GR32   EQUATE FOR REGISTER 12
RD   EQU  13GR32   EQUATE FOR REGISTER 13
R13  EQU  13GR32   EQUATE FOR REGISTER 13
RE   EQU  14GR32   EQUATE FOR REGISTER 14
R14  EQU  14GR32   EQUATE FOR REGISTER 14
RF   EQU  15GR32   EQUATE FOR REGISTER 15
R15  EQU  15GR32   EQUATE FOR REGISTER 15
-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  1 Line(s) not Displayed
*-*
*DEFINE GENERAL PURPOSE 64-BIT REGISTER PAIR SYMBOLS
*-*
R0_R1EQU   0GR EQUATE FOR REGISTER PAIR 0/1
R2_R3EQU   2GR EQUATE FOR REGISTER PAIR 2/3
R4_R5EQU   4GR EQUATE FOR REGISTER PAIR 4/5
R6_R7EQU   6GR EQUATE FOR REGISTER PAIR 6/7
R8_R9EQU   8GR EQUATE FOR REGISTER PAIR 8/9
R10_R11  EQU  10GR EQUATE FOR REGISTER PAIR 10/11
R12_R13  EQU  12GR EQUATE FOR REGISTER PAIR 12/13
R14_R15  EQU  14GR EQUATE FOR REGISTER PAIR 14/15
-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 21 Line(s) not Displayed
*-*
*DEFINE GENERAL PURPOSE 64-BIT REGISTER SYMBOLS
*-*
GR0  EQU   0GR64   EQUATE FOR REGISTER 0
GR1  EQU   1GR64   EQUATE FOR REGISTER 1
GR2  EQU   2GR64   EQUATE FOR REGISTER 2
GR3  EQU   3GR64   EQUATE FOR REGISTER 3
GR4  EQU   4GR64   EQUATE FOR REGISTER 4
GR5  EQU   5GR64   EQUATE FOR REGISTER 5
GR6  EQU   6GR64   EQUATE FOR REGISTER 6
GR7  EQU   7GR64   EQUATE FOR REGISTER 7
GR8  EQU   8GR64   EQUATE FOR REGISTER 8
GR9  EQU   9GR64   EQUATE FOR REGISTER 9
GRA  EQU  10GR64   EQUATE FOR REGISTER 10
GR10 EQU  10GR64   EQUATE FOR REGISTER 10
GRB  EQU  11GR64   EQUATE FOR REGISTER 11
GR11 EQU  11GR64   EQUATE FOR REGISTER 11
GRC  EQU  12GR64   EQUATE FOR REGISTER 12
GR12 EQU  12GR64   EQUATE FOR REGISTER 12
GRD  EQU  13GR64   EQUATE FOR REGISTER 13
GR13 EQU  13GR64   EQUATE FOR REGISTER 13
GRE  EQU  14GR64   EQUATE FOR REGISTER 14
GR14 EQU  14GR64   EQUATE FOR REGISTER 14
GRF  EQU  15GR64   EQUATE FOR REGISTER 15
GR15 EQU  15GR64   EQUATE FOR REGISTER 15
-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  1 Line(s) not Displayed
*-*
*DEFINE GENERAL PURPOSE 128-BIT REGISTER PAIR SYMBOLS
*-*
GR0_R1   EQU   0GR EQUATE FOR REGISTER PAIR 0/1
GR2_R3   EQU   2GR EQUATE FOR REGISTER PAIR 2/3
GR4_R5   EQU   4GR EQUATE FOR REGISTER PAIR 4/5
GR6_R7   EQU   6GR EQUATE FOR REGISTER PAIR 6/7
GR8_R9   EQU   8GR EQUATE FOR REGISTER PAIR 8/9
GR10_R11 EQU  10GR EQUATE FOR REGISTER PAIR 10/11
GR12_R13 EQU  12GR EQUATE FOR REGISTER PAIR 12/13
GR14_R15 EQU  14GR 

Re: 64 bit question

2013-06-13 Thread Larry lawler
CVTV64   EQU   X'10' 64-bit virtual services are present.
*You should ensure FLCARCH (in IHAPSA) is
*non-zero before using





-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On
Behalf Of Scott Ford
Sent: Thursday, June 13, 2013 9:46 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: 64 bit question

All,

After reading through the Extended Addressability Guide/ref I have a question..
How do I tell if a machine will support 64 bit storage above the bar ? I mean
like a Assembler macro query ..I want to use 64bit storage but I don't know to
tell programmatically what the allocation is for the system.

Regards,

Scott ford
www.identityforge.com
from my IPAD

'Infinite wisdom through infinite means'


Re: Model 2827 New Instructions

2012-09-19 Thread Larry Lawler
yes, it was built for the java JVMs that use blocking techniques on non-z
platforms
but there is no reason we can't use it

Best Regards, Larry
Larry Lawler
C.T.O.
larry.law...@unicomglobal.com
Unicom Systems Intl, Inc.
15535 San Fernando Mission Blvd.
Suite 310, Unicom Plaza
Mission Hills, CA 91345
Office:  (949)-873-2225  VoIP x3883



This message (including any attachments) contains confidential information
that is PRIVILEGED,
CONFIDENTIAL and/or ATTORNEY WORK PRODUCT and is intended only for the
individual(s) named herein.
If you are not the intended recipient, you are hereby notified that any
dissemination, distribution or copying of this email is strictly prohibited.

If you have received this message in error, please notify the UNICOM
Systems, Inc. Postmaster (postmas...@unicomsi.com) of the error immediately,

do not read or use the email and any attachments in any manner, destroy all
copies, and delete it from your system if the communication was sent via
email.
UNICOM Systems, Inc. (818) 838-0606 Fax: (818) 838-0776

*


-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of Chuck Arney
Sent: Tuesday, September 18, 2012 8:02 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Model 2827 New Instructions

It seems to be an extended PLO instruction.

Chuck Arney
Arney Computer Systems

-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of McKown, John
Sent: Tuesday, September 18, 2012 1:21 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Model 2827 New Instructions

I just read up on the Transaction Execution. I now need two things: 1.
Aspirin; 2. a nap. I get the general concept, but the restrictions are
immense. I guess it is good for a *very* short routine which does not update
very much storage. The conditions under which it can abort are a multitude.
I wonder exactly what it was that made IBM decide to implement it, as
opposed to doing a CPU spin loop. I guess it is the only way to guarantee
that another CPU simply cannot observe an in flight set of updates by
*any* other code on *any* other CPU.