🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.asm370
Article #181

(none)

#181
From: "John A. Pershing Jr."
Date: Wed, 18 Oct 1989 14:30
43 lines
2606 bytes
CMS normally runs all programs in (virtual) Supervisor State -- if you
find that you are in problem state, then there is something amiss.

However, to try to keep you from shooting yourself in the foot, CMS
protects its own storage areas with a Storage Key of x'F', and sets all
"user" pages to a Key of x'E'.  This is probably why you are having
difficulty storing into the CAW.  There are a number of ways to get
around this annoying behavior:

  -  The 'SET PROTECT OFF' command will tell CMS to stop trying to
     protect itself.

  -  Since you are running in (virtual) Supervisor State, you can simply
     change your PSW key to x'0' using, e.g., LPSW.

  -  If you are content to run below the 16M line, then the DMSKEY macro
     provides an "official" (now officially "not recommended") way to
     change your PSW key.

  -  Typically, Key Zero is only needed for single instructions -- e.g.,
     storing into the CAW.  The "safest" way to proceed is to use the
     DMSEXS macro, which takes a single machine instruction as its
     operand and runs that one instruction in Key Zero.  As with DMSKEY,
     this macro is officially "not recommended", and only works below the
     16M line.

The difference between the two PLISTs is explained adequately in the
manuals -- although this explanation has moved around a bit during the
past couple of releases.  In my Release 6 library, it is in the
"Application Development Guide for CMS" manual, in the "Program
Invocation -- Supervisor Assisted Linkage" chapter.  I believe that this
information used to be in the "CMS User's Guide" prior to Release 5, and
I don't know where it lives in the VM/XA library.  It is a bit too
involved to be explained in detail here.

The additional DIAG codes (except for x'F0') are described in "System
Facilities for Programming", SC24-5288.  This manual was new with Release
5 or 6 of VM.  VM/SP Release 5 does not have a DIAG x'F0' defined; I
don't have the sources of Release 6 handy to see if it has been added in
that release.

      John Pershing
      IBM Research, Yorktown Heights
Technical Details
Message-ID: <8910181519.AA05760@brazos.rice.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!ucbvax!YKTVMH.BITNET!PERSHNG

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!ucbvax!YKTVMH.BITNET!PERSHNG
From: PERSHNG@YKTVMH.BITNET ("John A. Pershing Jr.")
Newsgroups: comp.lang.asm370
Subject: (none)
Message-ID: <8910181519.AA05760@brazos.rice.edu>
Date: 18 Oct 89 14:30:38 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Reply-To: IBM 370 Assembly Programming Discussion List <ASM370%UCF1VM.BITNET@ricevm1.rice.edu>
Distribution: inet
Organization: The Internet
Lines: 43