IBM introduced the Low Address Protection feature in the early 1980s shortly before they announced S/370/XA. It was first supported on S/370. They even published a very short book describing this new feature and 3 or 4 other features that were being introduced at the same time. The only other feature I remember was a microcoded assist for SETFRR ADD and SETFRR DELETE. Even a key 0 program is prevented from storing into bytes 0-511. This feature has prevented an untold number of reIPLs that would have been caused by key 0 programs that were not fully debugged, and also there were many key 0 programs in which a lazy programmer, after disabling the current CPU for interrupts, would store something "temporarily" into some reserved field in bytes 0-511. All those kinds of programs began ABENDing after LAP was installed. So the fix was to save whatever needed to be saved temporarily into some reserved field in bytes 512-4095, in which there are plenty of reserved fields, or! at least fields that cannot be used by any part of the operating system when the current CPU is running disabled.
At some time later, IBM also added a special protection feature for bytes 512-2047 of page 0. This feature, described in the Principles of Operation, and which is also both hardware and software, causes a program interrupt by any attempt for a non-key-0 program to fetch any storage in the first virtual 2K, where many register save areas are located, except for bytes 0-511, which may be fetched by a non-key-0 program. This allows the normal program to do a L instruction at location 16, which is where the address of the CVT is located. If you try to display bytes 0-511 with TSO, you should be able to, but not bytes 512-2047. And you can display bytes 2048-4095 with TSO. The 512-2047 byte protection was added to reduce hacking. LAP was added to reduce unplanned outages that were not caused by deliberate hacking. Bill Fairchild Rocket Software -----Original Message----- From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of Edward Jaffe Sent: Thursday, December 16, 2010 10:58 AM To: [email protected] Subject: Re: Batch program to update CVTUSER On 12/16/2010 8:00 AM, Bill Fairchild wrote: > When LAP is enabled, any attempt by the running program to store into virtual > addresses 0-511 of page 0 on a CPU is prevented. And I'll wager there's not a serious developer working today whose system has not been "saved" at least once by this wonderful feature! -- Edward E Jaffe Phoenix Software International, Inc 831 Parkview Drive North El Segundo, CA 90245 310-338-0400 x318 [email protected] http://www.phoenixsoftware.com/ ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

