Derek, here is some Assembler code that I was working on at one time to
issue STSI for the basic machine configuration, (1.1.1). I had plans to
add code to set REXX variables for the extracted fields, but I didn't hav
e
time to complete it before I was "let go". So I will leave that part to
you! :-)> If you need help with setting REXX variables from Assembler,
I
can send you some sample code for that as well.
GETSTSI TITLE '*** Entry Linkage ***'
GETSTSI AMODE ANY Set Addressing Mode
GETSTSI RMODE ANY Set Residency Mode
SPACE 1
GETSTSI CSECT , In the Beginning...
USING GETSTSI,R15 Get Temporary Addressability
STM R14,R12,12(R13) Save Caller's Registers
B PASTID Branch Around ID Area
SPACE 1
DC CL9'GETSTSI' Module Name
DC CL9'&SYSDATC' Date Assembled
DC CL6'&SYSTIME' Time Assembled
DC C'&SYSTEM_ID' System ID
SPACE 1
PASTID DS 0H
DROP R15 Drop Temporary Addressability
LR R12,R15 Load Our Base Register and
USING GETSTSI,R12 Get Permanent Addressability
ST R13,SAVEAREA+4 Point Our S/A to Caller's (HSA)
LR R15,R13 Save Address of Caller's S/A
LA R13,SAVEAREA Point to Our Save/Area
ST R13,8(,R15) Point Caller's S/A to Ours (LSA)
TITLE '*** Code to Issue STSI ***'
CMSSTOR OBTAIN, Get a Work Area to Hold STSI Data +
BYTES=4096,
+
BNDRY=PAGE,
+
LOC=ANY
LTR R15,R15 Did We Get Storage OK ?
BNZ EXIT No, Exit
LR R10,R1 Save Address of Storage
ST R10,SSIBKA Save it in the Program Also
LM R0,R1,STSI111 Load Parms to Get STSI 1.1.1 Info
STSI 0(R10) Get Basic Machine Configuration
USING SSIBK,R10 Access STSI DSECT
... *Insert your code here*
DROP R10 Release STSI DSECT
CMSSTOR RELEASE, Release Work Area for STSI Data +
BYTES=4096,
+
ADDR=(R10)
TITLE '*** Exit Linkage ***'
EXIT DS 0H
L R13,4(,R13) Point to Caller's S/A (HSA)
L R14,12(,R13) Restore Caller's Register 14
LM R0,R12,20(R13) Restore Caller's Registers
BR R14 Return to Caller
TITLE '*** Working Storage ***'
SAVEAREA DC 18A(0) Our Register Save Area
STSI111 DC X'10000001',X'00000001' Get STSI111 Settings
SSIBKA DS A Address of STSI Storage Area
CC0 EQU 8 CC=0 means Mask=8
CC1 EQU 4 CC=1 means Mask=4
CC2 EQU 2 CC=2 means Mask=2
CC3 EQU 1 CC=3 means Mask=1
EJECT
COPY HCPSSIBK STSI Block
EJECT
*---------------------------------------------------------------------*
* REGEQU MACRO - CMS Register Equates *
*---------------------------------------------------------------------*
REGEQU , CMS Register Equate Macro
SPACE 1
END GETSTSI That's All Folks...
--
Dale R. Smith
"Answers are easy. It's asking the right questions which is hard."
- Doctor Who
On Thu, 6 Sep 2007 07:18:30 -0700, Derek Ackerman
<[EMAIL PROTECTED]> wrote:
>Does anyone have an example of obtaining basic systrm info from CMS
assembler? I have several back level VM systems so I can't use the new
REXX API. I need output from FC=1 and SEL1 & 2 = 1. My concerns a
re: does
the instruction require 64 bit mode? Does the 4K data area have to be a
REAL level 1 storage address? I didn't see that in the POPs manual.
>
>Derek Ackerman
>Capacity Planning etc.
>(201) 759-0833