Dale,
Thanks very much, I made my changes (see att) and output is:
EP AT 80010000 <--- IN CASE I NEED TO TRACE
2066-004.IBM
I couldn't find the HCPSSIBK, however.
Derek Ackerman
Capacity Planning etc.
(201) 759-0833
-----Original Message-----
From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED]
Behalf Of Dale R. Smith
Sent: Thursday, September 06, 2007 2:36 PM
To: [email protected]
Subject: Re: sample STSI CMS assmembler program
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
GETSTSI TITLE '*** ENTRY LINKAGE ***' STS00010
GETSTSI AMODE ANY SET ADDRESSING MODE STS00020
GETSTSI RMODE ANY SET RESIDENCY MODE STS00030
SPACE 1 STS00040
GETSTSI CSECT , IN THE BEGINNING... STS00050
USING GETSTSI,R15 GET TEMPORARY ADDRESSABILITY STS00060
STM R14,R12,12(R13) SAVE CALLER'S REGISTERS STS00070
B PASTID BRANCH AROUND ID AREA STS00080
SPACE 1 STS00090
DC CL9'GETSTSI' MODULE NAME STS00100
DC CL9'&SYSDATC' DATE ASSEMBLED STS00110
DC CL6'&SYSTIME' TIME ASSEMBLED STS00120
DC C'&SYSTEM_ID' SYSTEM ID STS00130
SPACE 1 STS00140
PASTID DS 0H STS00150
LR R12,R15 LOAD OUR BASE REGISTER AND STS00160
DROP R15 DROP TEMPORARY ADDRESSABILITY STS00170
USING GETSTSI,R12 GET PERMANENT ADDRESSABILITY STS00180
ST R15,BUFFER STS00190
UNPK EPDATA,BUFFER(5) STS00200
TR EPDATA,TABLE IN CASE STS00210
MVI EPDATA+8,C' ' I MUST TRACE STS00220
LINEWRT DATA=EPMSG I NEED THE E.P. STS00230
ST R13,SAVEAREA+4 POINT OUR S/A TO CALLER'S (HSA) STS00240
LR R15,R13 SAVE ADDRESS OF CALLER'S S/A STS00250
LA R13,SAVEAREA POINT TO OUR SAVE/AREA STS00260
ST R13,8(,R15) POINT CALLER'S S/A TO OURS (LSA) STS00270
TITLE '*** CODE TO ISSUE STSI ***' STS00280
CMSSTOR OBTAIN,BYTES=4096,BNDRY=PAGE,LOC=ANY STS00290
LTR R15,R15 DID WE GET STORAGE OK ? STS00300
BNZ EXIT NO, EXIT STS00310
LR R10,R1 SAVE ADDRESS OF STORAGE STS00320
ST R10,SSIBKA SAVE IT IN THE PROGRAM ALSO STS00330
LM R0,R1,STSI111 LOAD PARMS TO GET STSI 1.1.1 INFO STS00340
STSI 0(R10) GET BASIC MACHINE CONFIGURATION STS00350
* USING SSIBK,R10 ACCESS STSI DSECT STS00360
MVC LINE+1(4),48(R10) STS00370
MVI LINE+5,C'-' STS00380
MVC LINE+6(3),64(R10) STS00390
MVI LINE+9,C'.' STS00400
MVC LINE+10(4),32(R10) STS00410
LINEWRT DATA=LINE STS00420
* STS00430
* DROP R10 RELEASE STSI DSECT STS00440
CMSSTOR RELEASE,BYTES=4096,ADDR=(R10) STS00450
TITLE '*** EXIT LINKAGE ***' STS00460
EXIT DS 0H STS00470
L R13,4(,R13) POINT TO CALLER'S S/A (HSA) STS00480
L R14,12(,R13) RESTORE CALLER'S REGISTER 14 STS00490
LM R0,R12,20(R13) RESTORE CALLER'S REGISTERS STS00500
BR R14 RETURN TO CALLER STS00510
TITLE '*** WORKING STORAGE ***' STS00520
BUFFER DC F'0',X'0' STS00530
EPDATA EQU EPMSG+7,9 STS00540
EPMSG DC C'EP AT <--- IN CASE I NEED TO TRACE' STS00550
TABLE DC 240C' ' STS00560
DC C'0123456789ABCDEF' STS00570
LINE DC CL16' ' STS00580
SAVEAREA DC 18A(0) OUR REGISTER SAVE AREA STS00590
STSI111 DC X'10000001',X'00000001' GET STSI111 SETTINGS STS00600
SSIBKA DS A ADDRESS OF STSI STORAGE AREA STS00610
CC0 EQU 8 CC=0 MEANS MASK=8 STS00620
CC1 EQU 4 CC=1 MEANS MASK=4 STS00630
CC2 EQU 2 CC=2 MEANS MASK=2 STS00640
CC3 EQU 1 CC=3 MEANS MASK=1 STS00650
EJECT STS00660
* COPY HCPSSIBK STSI BLOCK (CAN'T FIND IT) STS00670
EJECT STS00680
*---------------------------------------------------------------------* STS00690
* REGEQU MACRO - CMS REGISTER EQUATES * STS00700
*---------------------------------------------------------------------* STS00710
REGEQU , CMS REGISTER EQUATE MACRO STS00720
SPACE 1 STS00730
END GETSTSI THAT'S ALL FOLKS... STS00740