You don't really need any code in the loadmodule at all, it only needs to
contain the table (preceded a header that contains things like the table
length, row length or whatever you need. Than you can do:
WORKING-STORAGE SECTION.
01 FNC-PTR FUNCTION-POINTER.
01 PTR REDEFINES FNC-PTR POINTER.
Here is a solution that works if we know we can access up to three bytes of
memory after the last length field. That is, if we can always use Load to get
the length field from memory:
L R1,(,R14) R1 = Integer plus trailing junk
LHI R15,4
S R15,0(,Rn) R15 = 4-length
Regular expressions is the most god-awful piece of clap-trap garbage I have
ever laid my eyes on. Yeah for you PC programmers! Groans of disbelief from
us mainframe programmers at the
obtuse, obfuscating gibberish that RE is and that we will be forced into
learning.
We'll have to
On Mar 12, 2015, at 18:31, Gary Weinhold weinh...@dkl.com wrote:
Tom Ross didn't explain it, but did say the compiler developer was quite
enthusiastic about it.
So we have to write a COBOL program, get the new compiler to generate
the code, get a z13 and run z/XDC to see what the
Pages 7 to 8 of this presentation:
https://share.confex.com/share/124/webprogram/Session16609.html
Evidently the code with SIMD instructions is the equivalent of what the
millicode does for SRST, but I may have misinterpreted what was said.
Using the millicoded instruction is evidently
When Dan Greiner used to present new hardware instructions at SHARE, he used
to mention some had uses in micro/millicode. He talked about instructions he
had personally pushed for because he could see performance benefits by
using them in millicode. Those of us attending couldn't think
Looks very impressive. I can't imagine how much work John put into this.
Amazing.
Fred!
-
ATTENTION:
The information in this electronic mail message is private and
confidential, and only intended for the addressee. Should you
Sorry to see you go. Feels like the end of an era...
Fred!
-
ATTENTION:
The information in this electronic mail message is private and
confidential, and only intended for the addressee. Should you
receive this message by mistake, you
I think the PoP should be split in two documents. The instructions descriptions
would form PoO Volume I, the other chapters PoO Volume II (or the other way
around). The 'other' chapters are fine just the way the are and a PDF seems a
good way to distribute the information.
The description of
format
does not work as a PDF (or similar format).
It does, if you print it.
Ok, You're probably right but is printing the pdf really the common way to
use the document..?
-
ATTENTION:
The information in this electronic mail
Could't agreement more: the two columns are a nightmare. They may have just
fine in the printed edition 20 years ago but they are no good in an electronic
version...
I'm puzzled by the strong reactions this thread evokes. To me it is so obvious
that the current format does not work as a PDF
That is my intent. I'm asking for an address in (dynamically allocated)
storage (RX-type address) and a length that the macro is allowed to use at
that
address. I want to make sure the code the macro generates does not write
beyond that area. If the area is to short, I want to inform the
The internet sites use an ASCII or UTF representation of the text string you
enter, the mainframe uses EBCDIC. The base64 result will differ because the
source string has a different binary content.
Sent from my iPhone
On 8 aug. 2014, at 15:55, Ward, Mike S mw...@ssfcu.org wrote:
Hello
Thus I agree completely with EJ. You are not overly concerned about someone
reading what command you entered (as they would likely be doing so only if
analyzing a dump or trying to figure out what command was actually
entered that did something you did not appreciate). But you should be
And in principle I much prefer the communication between invoker and macro te
be as explicit as possible. I see no value at all in
allowing the programmer to omit one or two letters (or any amount) from the
value of a keyword. The time saved by not having to
press those few keys cannot
I did a few timing test with MVCOS when it was introduced but it was so
shockingly slow that I never touched it again. Many times slower than any
construction based on MVCL or an executed MVC.
Might be worth to have another look at it to see if it is faster these days.
Fred!
Sent from my
Well, I guess your still just the first person even though you sent your address several times...Sent from my new iPadOn Jan 2, 2014, at 21:43, "Kurt LeBesco" klebe...@gmail.com wrote:It is Jan 2 not Apr 1 right?On Jan 2, 2014 3:39 PM, "Kurt LeBesco" klebe...@gmail.com wrote:AgainOn Jan 2, 2014
Anything wrong with System XML? Perfectly feasible to use from HLASM.
Cheers, Martin
Yes, and extremely efficient if you implement a String ID exit. But it's called
*z/OS* XML System Services so it might not available under zUnix?
Fred!
As we had been using the stack storage concept since the late 1970's, with a
suite of entry, exit, call and DSA macros, it was relatively easy to make all
of our assembler programs LE-compliant for our 1998 release. For most
assembler programmers, however, the thought of LE seems akin to
I understand also that unconditional branches are faster than conditional
branches. So, which is faster:
BNZ LABEL Branch most frequent
or:
BZ*+8fall through most frequent
B LABEL Unconditional
It might seem naïve but I would assume that 1 branch
The two newest processors (z196 and zEC12) do out-of-order processing. Does
that mean that we do not need to 'intermingle' instructions because the
processor will do it for us?
Fred!
Sent from my new iPad
On Apr 18, 2013, at 17:05, Phil Smith III li...@akphs.com wrote:
John Ehrman wrote:
One commentlets keep our discussions, professional and technical.
Couldn't agree more. And it is also worth remembering that not all subscribers
are native speakers. Posts that must be decoded with a dictionary aren't very
helpful.
Fred!
Binyamin Dissen bdis...@dissensoftware.com http://www.dissensoftware.com
Director, Dissen Software, Bar Grill - Israel
Dissen Software, Bar Grill?!
That *is* an unusual combination...
Fred!
-
ATTENTION:
The information in this
What about MVZ?
Sent from my new iPad
On Mar 28, 2013, at 21:23, esst...@juno.com esst...@juno.com wrote:
Hi,
does anyone have a routine, or event know an instruction
that would shift the high order bits of n bytes
either 8 bits of 4 bits to the left as a unit:
for example
X
Combined with an And-instruction to clear the zones in the last one or two
bytes (pending on the amount you want to shift)...
Sent from my new iPad
On Mar 28, 2013, at 21:54, Fred van der Windt
fred.van.der.wi...@mail.ing.nl wrote:
What about MVZ?
Sent from my new iPad
On Mar 28, 2013
All your bases are belong to us ?
For great justice.
Fred!
-
ATTENTION:
The information in this electronic mail message is private and
confidential, and only intended for the addressee. Should you
receive this message by mistake,
Having the CLC near the EX helps for cache. I also like to assemble it
in-line because the right USINGs apply. We noticed that it is
attractive to run over the CLC (with the length byte 0 as assembled)
and then EX behind your back to do the real thing. More attractive
than branch over the
No use of the TIME macro need or should figure in this operation. Any
leap-second corrections would, for example, be washed out by the
subtraction:
(T + L) - (t + L) = T + L - t - L = T - t.
Why all this pother?
And even if a leapsecond was inserted between the start- and endtime the
The first paragraph of your post comes very close to a description of a
(table-driven) Translate and Test, TRT, instruction. Use one instead
of a hand-coded loop. It will be much faster and prettier.
Use TROO: TROO can scan the string, copy it to the destination buffer and stop
at
I want to use MVI to assign the low byte of value that is larger than 255. This
results in an ASMA031E error message:
** ASMA031E Invalid immediate or mask field
I tried to use ACONTROL to circumvent this issue:
PUSH ACONTROL
ACONTROL TYPECHECK(NOMAGNITUDE)
MVI
ACONTROL TYPECHECK(NOMAGNITUDE)
As far as I understand this should instruct the assembler not to check
the magnitude of the immediate value
NOMAGNITUDE Specifies that the assembler not perform magnitude validation
of signed immediate-data fields of machine instruction
operands
MVI does
It seems that you want an option like AUTOTRUNC rather than a TYPECHECK
sub-option, which is intended to reduce confusion about what one might
expect from different forms of immediate operand in some instructions.
Whatever the name, I want to be able to code for example:
MVI
Yup,
But the last time I tried it MVCOS was (much) slower than an EXecuted MVC.
Don't remember how it compared to a MVCL(E). But it xould help out if you might
need to move more than 256 bytes but not more than 4096 bytes.
Fred!
Sent from my iPad
On Dec 10, 2011, at 21:01, Steve Comstock
The comfort or discomfort of the ASSEMBLER programmers is not significant in
this context, in my believe. Due to pipelining and cache issues,
clever compilers will sooner or later outperform hand-written ASSEMBLER
programs.
The z196 is able to 'reorder' instructions for execution. Doesn't
I need 27 instructions (maybe more because of two JO after TROT) see end of
this post.
But I am sure this code is faster than what was used before. The simple
relation 256 input bytes processed by 27 instructions to create 192 bytes -
should speed up the whole precess by a factor (even if
Thanks,
I'll run it when I'm back at work and report back the results.
Fred!
Sent from my iPhone
On 13 aug. 2011, at 20:31, Martin Trübner mar...@pi-sysprog.de wrote:
Fred,
Code is in private mail
--
Martin
Pi_cap_CPU - all you ever need around MWLC/SCRT/CMT in z/VSE
more at
This is a small part of code from a routine that decodes Base64 encoded data:
DOFROM=(R2,)
LGR0,0(,R4) Load 8 source bytes
LAR4,8(,R4) R4 past 8 source bytes
RISBG R0,R0,06,11,02aaa0ccc0ddd0eee0fff0ggg0hhh0
RISBG R0,R0,12,17,04
it took me some time to actualy get what you do (not BASE64 - but the
RISBG) my guess it is the RISBG itself which is very slow and apparently
not very pipeline-freindly (and I have no idea about the reasons).
How about using this
LR1,0(,R4) Load 4 source bytes
Ah,
It seems I mangled the code a bit while copying it from the mainframe via
notepad to Outlook (the asymmetry is a clue). The correct code is:
DOFROM=(R2,)
LMG R0,R1,0(,R4) Load 16 source bytes
LAR4,16(,R4)
RISBG R0,R0,06,11,02aaa0ccc0ddd0eee0fff0ggg0hhh0
RISBG
Smarter phising, I'd guess. They now monitor the lists and determine whose id
to spoof. Then post with that id in order to make people think it is
legit.
Not that much smarter: the mannen-tassen in the url is Dutch for Man
purses. Would anybody in this group be that interested in man purses?
I'd say it depends which part of USS you are intending to use and if you
are intending linking to anything else.
99% of the services can be straight assembler with no need for the
aggravation of LE.
We use it for message queues, shared memory and sockets without any
problems.
I finished scanning the MVS Data Areas manuals for 'serial number' and found
this:
PSA.PSAPCCAV - PCCA
PCCA.PCCACPID contains the serial number
Seems I found what I was looking for?
Fred!
-
ATTENTION:
The information in this
I finished scanning the MVS Data Areas manuals for 'serial number' and
found this:
PSA.PSAPCCAV - PCCA
PCCA.PCCACPID contains the serial number Seems I found what I was looking
for?
Ah, but WHICH serial number? How many digits?
Cheers, Martin
This field has a 12 digit CPU serial
We have a C function that creates UUIDs and it uses CSRSI.
Works without problems. No ASSEMBLER needed, and no privileged instructions.
That is kind of funny: we want to replace the C function we currently use. It's
the last bit of C we have and it doesn't even meet the UUID type I
I guess you're one step ahead of most of the inflexible ones (young and old).
They haven't made this observation yet. Many may never see it this way
Fred!
Sent from my iPad
On Jan 21, 2011, at 7:21, John Walker jwalker...@yahoo.com wrote:
IF the younguns HAVE to have it THEIR way or they
On Mon, 9 Nov 2009 16:44:12 -0600, Michael Stack li...@kcats.org wrote:
This may help: http://www.kcats.org/share/sort/slides/SortAst.pdf . At
the same SHARE meeting, Tom Harper gave a complementary session on how to
implement the instructions.
Mike
Can somebody point me to that second
Thanks to Walt, Bob and Tom for sending me the document. I appreciate it a lot.
Fred!
Sent from my iPad
On Dec 8, 2010, at 17:23, Walt Farrell wfarr...@us.ibm.com wrote:
On Wed, 8 Dec 2010 04:26:47 -0500, Fred van der Windt
fred.van.der.wi...@mail.ing.nl wrote:
On Mon, 9 Nov 2009 16:44:12
The syntax for AND and OR operators in the Strcutured Programming Macros is
differs slightly between the UNTIL= and WHILE= options of the DO macro and
every other SPM macro that supports conditions. This is not only very confusing
but I was just bitten by the fact that the DO macro may silently
:But why is this error not properly signalled?
Because it wasn't coded to do it.
Anyway, I asked the 'right person in our organization' to report it to IBM as a
bug in the HLASM Toolkit.
Fred!
-
ATTENTION:
The information in
Ouch! Otiose tokens should not be silently ignored. Would:
DO UNTIL=((CR,R1,LT,R2),AND,(CR,R3,LT,R4))
.. have produced the intended result?
Yes it does:
DO UNTIL=((CR,R1,LT,R2),AND,(CR,R3,LT,R4))
+...@lb2 DC 0H
:
:
ENDDO
+...@lb3
Trouble comes when the SPMs are used by people who do not/cannot write macro
definitions.
Ah.
So if I code a macro invocation with parameters that do not meet the documented
specification of that macro, but the macro ignores the incorrect parameters and
uses the remaining parameters to
Well
As demonstrated by this very discussion the first form will baffle just about
any programmer. And the 'missing' comma is (at least with us) a bad habit as
well.
LAR3,-4(R2) Set R3 to 4 less than R2
or:
LAR3,4092(R1,R2) Set R3 to 4 less than R2
But you can only walk 4095 meters, can't you? Way short of
the circumference of the globe.
but you forget scale. Assume circumference is 4096 units and
apply the above
In this case the circumference is 2147483648 steps. So 4095 steps isn't going
to get me very far. Unless you would want
I'm surprised that this would assemble.
R:F 0 20 USING TEST5,R15
21 *
4810 F0100001022 LHR1,=H'-4096'
R:1 FFF000 23 USING -4096,R1
0004 4120 F004
close, but no cigar. Addres arithmetic wraps.
And if you wrap nearly all the way around, you effectively
end up with an address slightly lower than the starting point.
To my mind, this is *effectively* subtraction, even when
*technicall* the processor performed addition.
If you walk forward
What if I can't sign in with my current IBM ID?
If your IBM ID is over 32 characters or contains an @
symbol, it may not give you access to certain
password-protected parts of ibm.com. This is a known,
temporary condition, where a shorter, simpler IBM ID is
required to access those areas
I was able to download it last night. I didn't know about
rapidshare; so I Googled and went to the sight and uploaded
the doc; you can find it at:
http://rapidshare.com/files/417022215/SA22-7832-08.pdf
but it can only be downloaded 10 times! I'm trying to set up
one of their free
3) The binary search from step 1 indicates where the new
entry should be inserted. To add the entry to the list,
individual entries are moved one at a time (to avoid
overlapping moves) to open a spot in the list for the new entry.
Store the list starting at the end of the memory area. That
58 matches
Mail list logo