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: IBMVM@LISTSERV.UARK.EDU 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