Discussion:
[hercules-390] zArch POP - Assigned Storage "grey areas" x200-x0FFF
Mike Stramba mikestramba@gmail.com [hercules-390]
2018-08-01 19:16:01 UTC
Permalink
In the 12th POP SA22-7832-11 starting on page 3-87, the assigned
storage "map" has a number of "grey areas".

There is no legend / note to specify whether those areas are reserved
or just un-used (both ??).

Would the memory ever be NOT PRESENT on real iron ?

I've been using 200-FFF for small test programs without any problem on
Hercules (low address protection (default) off.

Mike
'Mark L. Gaubatz' mgaubatz@groupgw.com [hercules-390]
2018-08-01 22:40:35 UTC
Permalink
In the 12th POP SA22-7832-11 starting on page 3-87, the assigned
storage "map" has a number of "grey areas".
There is no legend / note to specify whether those areas are reserved
or just un-used (both ??).
Both. In some cases, the storage was used by past facilities, and in
others, the storage is to remain available for later use by the
architecture.
Would the memory ever be NOT PRESENT on real iron ?
No.
I've been using 200-FFF for small test programs without any problem on
Hercules (low address protection (default) off.
Not a problem with Hercules. Only consider this storage as "safe" when
writing your own SA programs and not using architectural features that
may utilize low storage.

Mark L. Gaubatz
dasdman
Mike Schwab Mike.A.Schwab@gmail.com [hercules-390]
2018-08-01 23:37:40 UTC
Permalink
The 1st 4KiB are specific to each processor. If your task is switched to
another processor your data won't be there. (8KiB for a 64 bit processor).
In the 12th POP SA22-7832-11 starting on page 3-87, the assigned
storage "map" has a number of "grey areas".
There is no legend / note to specify whether those areas are reserved
or just un-used (both ??).
Both. In some cases, the storage was used by past facilities, and in
others, the storage is to remain available for later use by the
architecture.
Would the memory ever be NOT PRESENT on real iron ?
No.
I've been using 200-FFF for small test programs without any problem on
Hercules (low address protection (default) off.
Not a problem with Hercules. Only consider this storage as "safe" when
writing your own SA programs and not using architectural features that may
utilize low storage.
Mark L. Gaubatz
dasdman
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?
Mike Stramba mikestramba@gmail.com [hercules-390]
2018-08-01 23:40:53 UTC
Permalink
Post by Mike Schwab ***@gmail.com [hercules-390]
The 1st 4KiB are specific to each processor. If your task is switched to
another processor your data won't be there. (8KiB for a 64 bit processor).
Ya, I know that.

I'm doing 'bare metal' progamming.

No "task switching" here :/

Mike
Post by Mike Schwab ***@gmail.com [hercules-390]
In the 12th POP SA22-7832-11 starting on page 3-87, the assigned
storage "map" has a number of "grey areas".
There is no legend / note to specify whether those areas are reserved
or just un-used (both ??).
Both. In some cases, the storage was used by past facilities, and in
others, the storage is to remain available for later use by the
architecture.
Would the memory ever be NOT PRESENT on real iron ?
No.
I've been using 200-FFF for small test programs without any problem on
Hercules (low address protection (default) off.
Not a problem with Hercules. Only consider this storage as "safe" when
writing your own SA programs and not using architectural features that may
utilize low storage.
Mark L. Gaubatz
dasdman
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?
'Mark L. Gaubatz' mgaubatz@groupgw.com [hercules-390]
2018-08-02 02:24:14 UTC
Permalink
The 1st 4KiB are specific to each processor.  If your task is switched
to another processor your data won't be there. (8KiB for a 64 bit
processor).
Incorrect. That is only once a prefix has been established for each
processor, causing an address swap for the given processor's reference
to page zero and the page specified by Set Prefix. ALL storage is always
addressable by ALL processors (on hardware with LPARs, one only "sees"
the assigned storage range to that LPAR, but can be readily
reconfigured). Should one desire stable operation, it is definitely a
good idea to use Set Prefix, but it is not mandated by the hardware.

An example: In testing, one might set address 400 to a loop to self, set
the PSW instruction address for each processor to address 400, and start
all processors. PSWs don't appear to advance, but "MIPs" like crazy are
burned, converting mass sums of electrons into copious quantities of heat.

Regards,

Mark L. Gaubatz
dasdman
Ivan Warren ivan@vmfacility.fr [hercules-390]
2018-08-02 14:17:07 UTC
Permalink
Le 8/2/2018 à 2:58 PM, Mark Morgan Lloyd
TFT Ivan. So would bare metal code running on a particular CPU
/automatically/ track page zero, or would it have to explicitly address
relative to that CPU's prefix register?
As an example...

Let's assume GPR 1 contains X'00008000'

 You issue the Instruction : SPX 0(1)

From THAT CPU, then accessing REAL address X'00000000' to X'00000FFF'
(and X'00001FFF' in z/architecture mode) will actually access absolute
storage address X'00008000' to X'00008FFF/X'00009FFF') and accessing
real address X'00008000' to X'00008FFF'/X'00009FFF' will access Absolute
address X'00000000'-X'00000FFF'/X'00001FFF').. Interrupts and any
function pertaining to that CPU that use the PSA will also use Real
Addresses (thus the prefix).

What is used as a Real or Absolute address is specified for each
location in the 'Assigned Storage Locations' chapter.

So you only have to be explicit when setting the Prefix Register...
Beyond that, it's all managed automatically.

If you don't set the Prefix (or multiple CPUs have the same Prefix
Register value), and you have multiple CPUs running, when interrupts
occur, the results become pretty much unpredictable (since the PSA would
be shared among multiple CPUs)...

--Ivan



[Non-text portions of this message have been removed]
stephen.orso@outlook.com [hercules-390]
2018-08-02 22:03:49 UTC
Permalink
Folks:

There is an example bare-metal program that sets prefixes and starts a total of four processors (IPL plus three). See the Hyperion repository in the Hercules-390 github project, directory tests, file name bfp-023-threads.asm (https://github.com/hercules-390/hyperion/blob/master/tests/bfp-023-threads.asm)


The program was written to validate thread safety of the binary floating point library used by Hercules, and it does correctly diagnose thread safety issues in that library.


The program has been run on virtual bare metal (Hercules) only. I haven't had the capability to run it on real bare metal.


It is assembled using ASMA from the Stand-Alone Took Kit (SATK, find it at https://github.com/s390guy/SATK https://github.com/s390guy/SATK). (Shameless plug: If you want to do interesting things with bare metal programming, r commands quickly become unmanageable. SATK is a most useful tool.)

Best Regards,
Steve Orso
'\'Fish\' (David B. Trout)' david.b.trout@gmail.com [hercules-390]
2018-08-03 02:55:02 UTC
Permalink
Steve Orso wrote:

[...]
Post by ***@outlook.com [hercules-390]
It is assembled using ASMA from the Stand-Alone Took Kit (SATK,
If you want to do interesting things with bare metal programming,
r commands quickly become unmanageable. SATK is a most useful tool.)
What Steve said!

I've been using Harold Grovesteen's most excellent SATK ASMA (SATK = Stand Alone Tool Kit, ASMA = A Small Mainframe Assembler) for a while now and simply cannot praise it enough. I use it for all of my Hercules integrity test cases now (to verify proper functioning of instructions, devices, etc). The macros he provides makes it trivially easy to perform I/O in either old parallel channel S/370 mode or new s/390 z/Arch ESA I/O mode. His code handles the details so you can concentrate on your test code.

Of course, if you want to see how the actual I/O is done, you can look at his macro expansion too. Or, if you want to do it all yourself you can do that too.

The documentation (PDF manuals) he provides are quite detailed and can admittedly be a bit overwhelming at first when you're just trying to get started with his product, but once you get past the mental barrier and it all finally "sinks in", you can get up and running and begin becoming quite productive quite quickly and easily.

It can create Hercules "r=" script files, "loadcore" files, or even "IPL"-able files. I highly recommend it.2

If anyone needs and help using it, feel free to contact me directly if you wish (or even contact Harold himself!).
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: ***@softdevlabs.com
Gregg Levine gregg.drwho8@gmail.com [hercules-390]
2018-08-02 15:17:52 UTC
Permalink
Hello!
Mike please do me a favor and explain how you're using what I consider
low areas in machine memory for your programming. Especially how your
programs are written, are you using an external programming tool to
write them? Or are they on any of the operating systems we have access
to?

Oh and what are they written in?
---
This might make sense to someone who works from underwater, it might
even make sense to someone with the same first name, who works with an
audience. It might even to someone with the same name who normally
works with a statue watching him. And it will confuse everyone else on
this thread.
-----
Gregg C Levine ***@gmail.com
"This signature fought the Time Wars, time and again."
Post by Mike Stramba ***@gmail.com [hercules-390]
In the 12th POP SA22-7832-11 starting on page 3-87, the assigned
storage "map" has a number of "grey areas".
There is no legend / note to specify whether those areas are reserved
or just un-used (both ??).
Would the memory ever be NOT PRESENT on real iron ?
I've been using 200-FFF for small test programs without any problem on
Hercules (low address protection (default) off.
Mike
------------------------------------
------------------------------------
Mike Stramba mikestramba@gmail.com [hercules-390]
2018-08-02 17:54:51 UTC
Permalink
Greg,

Just using the "handy-dandy" hercules "r" (alter real storage)
command, along with the POP / POOP / (main and reference) ;)

loadcore, savecore.

Sometimes I'll use the vmR6 assembler, and edit the listing to make a
"script" file (just stick "r"'' at the beginning of the line .. and
"=" after the address.

Only for "big" programs (>100 lines) ;)

For ~100 instructions or less, it's just as fast / faster than any
"higher level" tool.

Mainly been messing with I/O to telnet, 3270, and dasd i/o.

370 mode is pretty simple :

LA R2,MYCCW
ST R2,CAW
SIO XX
LPSW WAIT

zarch / esame, is a "bit" (ha) more complex, ORB, IRB, SCHIB, SCSW,
PMCW .... ;) ... and the "deadly" "status pending" :)

I'm futzing around with esame I/O now.

I started a "bare metal" wiki awhile ago, there's not much on it, a
"Hello World" in 370, and basic intro to the hercules console.

I messed with Harold's SATK tools a while ago, might re-visit that.

Mike
Post by Gregg Levine ***@gmail.com [hercules-390]
Hello!
Mike please do me a favor and explain how you're using what I consider
low areas in machine memory for your programming. Especially how your
programs are written, are you using an external programming tool to
write them? Or are they on any of the operating systems we have access
to?
Oh and what are they written in?
---
This might make sense to someone who works from underwater, it might
even make sense to someone with the same first name, who works with an
audience. It might even to someone with the same name who normally
works with a statue watching him. And it will confuse everyone else on
this thread.
-----
"This signature fought the Time Wars, time and again."
Post by Mike Stramba ***@gmail.com [hercules-390]
In the 12th POP SA22-7832-11 starting on page 3-87, the assigned
storage "map" has a number of "grey areas".
There is no legend / note to specify whether those areas are reserved
or just un-used (both ??).
Would the memory ever be NOT PRESENT on real iron ?
I've been using 200-FFF for small test programs without any problem on
Hercules (low address protection (default) off.
Mike
------------------------------------
------------------------------------
Gregg Levine gregg.drwho8@gmail.com [hercules-390]
2018-08-02 22:12:55 UTC
Permalink
Hello!
Okay great. I'll take it up with the group next door, the VM/370rel6
group that I try to manage.

Of course this doesn't explain why someone is trying to figure out why
the latest release he's trying to use arrived all wet.
-----
Gregg C Levine ***@gmail.com
"This signature fought the Time Wars, time and again."
Post by Mike Stramba ***@gmail.com [hercules-390]
Greg,
Just using the "handy-dandy" hercules "r" (alter real storage)
command, along with the POP / POOP / (main and reference) ;)
loadcore, savecore.
Sometimes I'll use the vmR6 assembler, and edit the listing to make a
"script" file (just stick "r"'' at the beginning of the line .. and
"=" after the address.
Only for "big" programs (>100 lines) ;)
For ~100 instructions or less, it's just as fast / faster than any
"higher level" tool.
Mainly been messing with I/O to telnet, 3270, and dasd i/o.
LA R2,MYCCW
ST R2,CAW
SIO XX
LPSW WAIT
zarch / esame, is a "bit" (ha) more complex, ORB, IRB, SCHIB, SCSW,
PMCW .... ;) ... and the "deadly" "status pending" :)
I'm futzing around with esame I/O now.
I started a "bare metal" wiki awhile ago, there's not much on it, a
"Hello World" in 370, and basic intro to the hercules console.
I messed with Harold's SATK tools a while ago, might re-visit that.
Mike
Post by Gregg Levine ***@gmail.com [hercules-390]
Hello!
Mike please do me a favor and explain how you're using what I consider
low areas in machine memory for your programming. Especially how your
programs are written, are you using an external programming tool to
write them? Or are they on any of the operating systems we have access
to?
Oh and what are they written in?
---
This might make sense to someone who works from underwater, it might
even make sense to someone with the same first name, who works with an
audience. It might even to someone with the same name who normally
works with a statue watching him. And it will confuse everyone else on
this thread.
-----
"This signature fought the Time Wars, time and again."
Post by Mike Stramba ***@gmail.com [hercules-390]
In the 12th POP SA22-7832-11 starting on page 3-87, the assigned
storage "map" has a number of "grey areas".
There is no legend / note to specify whether those areas are reserved
or just un-used (both ??).
Would the memory ever be NOT PRESENT on real iron ?
I've been using 200-FFF for small test programs without any problem on
Hercules (low address protection (default) off.
Mike
------------------------------------
------------------------------------
------------------------------------
------------------------------------
http://groups.yahoo.com/group/hercules-390
http://www.hercules-390.org
------------------------------------
Yahoo Groups Links
Loading...