Discussion:
[hercules-390] Why do we have a MOVE INVERSE facility?
'\'Fish\' (David B. Trout)' david.b.trout@gmail.com [hercules-390]
2017-12-09 15:58:09 UTC
Permalink
(re-posting with corrected subject line; my keyboard is acting up)

Another question for the developers (or anyone else dabbling in Hercules development):

In the Hercules-specific area (at the end) of the archlvl.c FACTAB facilities table there exists an entry for the "MOVE_INVERSE" facility (it's the first entry in that part of the table as a matter of fact) designating the facility as being support and enabled for all architectures and level sets.

The move_inverse instruction function itself in general1.c even contains a FACILITY_CHECK statement for it (which throws an Operation Exception if the specified facility isn't enabled).

YET, the System/370, S370/XA, S370/ESA, ESA/390 and z/Architecture Principles of Operations manuals (i.e. every Principles of Operation manual I could find) *ALL* document the MOVE INVERSE (MVCIN) General Purpose instruction (and even provide usage examples in each of their Appendix A).

Why the heck is such a Hercules-specific/unique facility defined?! It makes no sense!

Can anyone shed any light on this?

Thanks.
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: ***@softdevlabs.com
Martin Truebner Martin@pi-sysprog.de [hercules-390]
2017-12-09 16:19:39 UTC
Permalink
Fish,

I do recall times when MVCIN was non available on all processors....
later it became part of 390 POPs.

what you see is the result of what IBM did to the rest of the world and
herc tried to follow.

Also there has never been a clear definition on what is ALS1, ALS2 and
any of the follow-on thingies.

Just for fun (it does not matter any more to me):

what ALS does have the TRAP-facility?

Martin
kerravon86@yahoo.com.au [hercules-390]
2017-12-09 16:30:03 UTC
Permalink
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
The move_inverse instruction function itself
in general1.c even contains a FACILITY_CHECK
statement for it (which throws an Operation
Exception if the specified facility isn't enabled).
I didn't see such a thing in Hercules 3.07+
so I took a look in the Hyperion repository
and saw what you were talking about:

https://github.com/hercules-390/hyperion/blob/master/general1.c


So I did a binary search on the Hyperion
repository and found the change that
introduced this check:


Allow non-stfl(e) conrolled features to be disabled using stfl(e) logic

Jan Jaeger committed on Sep 2, 2010

https://github.com/hercules-390/hyperion/commit/e0d05622a0c5f76f2a1af62c4a8d9d8e173939ce#diff-545c2e24c7275c9b0272e7ba97d70ae5


I don't know what that means though.

BFN. Paul.
Mike Schwab Mike.A.Schwab@gmail.com [hercules-390]
2017-12-09 22:30:12 UTC
Permalink
I believe the Move Inverse was added on the 43XX series, late S/370
early XA, then spread into all ESA/390/z + machines.

On Sat, Dec 9, 2017 at 9:58 AM, ''Fish' (David B. Trout)'
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
(re-posting with corrected subject line; my keyboard is acting up)
In the Hercules-specific area (at the end) of the archlvl.c FACTAB facilities table there exists an entry for the "MOVE_INVERSE" facility (it's the first entry in that part of the table as a matter of fact) designating the facility as being support and enabled for all architectures and level sets.
The move_inverse instruction function itself in general1.c even contains a FACILITY_CHECK statement for it (which throws an Operation Exception if the specified facility isn't enabled).
YET, the System/370, S370/XA, S370/ESA, ESA/390 and z/Architecture Principles of Operations manuals (i.e. every Principles of Operation manual I could find) *ALL* document the MOVE INVERSE (MVCIN) General Purpose instruction (and even provide usage examples in each of their Appendix A).
Why the heck is such a Hercules-specific/unique facility defined?! It makes no sense!
Can anyone shed any light on this?
Thanks.
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
------------------------------------
------------------------------------
http://groups.yahoo.com/group/hercules-390
http://www.hercules-390.org
------------------------------------
Yahoo Groups Links
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?
Ivan Warren ivan@vmfacility.fr [hercules-390]
2017-12-09 23:33:05 UTC
Permalink
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
Why the heck is such a Hercules-specific/unique facility defined?! It makes no sense!
http://bitsavers.trailing-edge.com/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf

Page 7-24 :

Program Exceptions: Access (fetch, operand 2; store, operand 1)
Operation (if the move-inverse facility is not installed)

(This clearly indicates the MVCIN instruction may or may NOT be
available on certain models/ECs).

Also indicated in various locations (for example page 7-7 indicating
'MI' is a note in instruction tables to indicate the Move Inverse
facility is installed).

--Ivan





[Non-text portions of this message have been removed]
'\'Fish\' (David B. Trout)' david.b.trout@gmail.com [hercules-390]
2017-12-10 00:55:29 UTC
Permalink
Ivan Warren wrote:

[...]
Program Exceptions: [...] Operation (if the
move-inverse facility is not installed)
[...]
Also indicated in various locations (for example page
7-7 indicating 'MI' is a note in instruction tables to
indicate the Move Inverse facility is installed).
Wow. I completely missed that. THANKS!

I guess I'll have t keep it then. :)
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: ***@softdevlabs.com
Tony Harminc tharminc@gmail.com [hercules-390]
2017-12-11 17:51:36 UTC
Permalink
Post by Mike Schwab ***@gmail.com [hercules-390]
I believe the Move Inverse was added on the 43XX series, late S/370
early XA, then spread into all ESA/390/z + machines.
It was available as an RPQ on some much older machines such as the 168
in the mid 1970s. Naturally such a thing was not documented in any
PofO until it became a "feature" or "facility".

Tony H.

Loading...