On Fri, 22 Nov 2019 15:14:13 +0000, Dougie Lawson wrote: >ABEND0C4 PIC38 is the fun one. You can't step into any 32-bit address as >the 32nd bit was reserved by the MVS to MVS/XA change to mark whether we >were in 24-bit or 31-bit. > >So the 64-bit guys decided that the easiest fix was to completely disallow >any address from 8000000 through to 8FFFFFFF, which is an extremely good >idea to avoid breaking 31-bit code.
Yes, that was true initially for MVS. Some people have erroneously thought that meant that a valid 64-bit address could not have bit 32 on. I have seen code that tested bit 32 as part of a test to determine whether a 64-bit address was valid. Later, the area from 2G to 32G, and still later 2G to 64G was reserved for Java. IIRC the first of these was documented in an announcement letter. > >They added PIC3A and PIC3B for the 64-bit page and segment exceptions (and >we've seen a few of those with Db2). More precisely, PIC 39, 3A and 3B are region translation exceptions. >You'll soon learn you're in the wrong addressing mode with a PIC38. Reset >the 32nd bit before mode switching to 64 and you won't fail that way. That won't help you much. If you are referencing addresses below the bar while running AMODE 64, you need to clear bits 0-32 of your base registers. -- Tom Marchant
