Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!umich!samsung!brutus.cs.uiuc.edu!psuvax1!psuvm!NASAGISS!SYKLB From: SYKLB@NASAGISS.BITNET (Ken Bell) Newsgroups: bit.listserv.ibm-main Subject: Base Registers Message-ID: Date: 9 Feb 90 14:42:24 GMT Sender: IBM Mainframe Discussion list Reply-To: IBM Mainframe Discussion list Lines: 34 Approved: NETNEWS@PSUVM Gateway Comments: Resent-From: Ken Bell Comments: Originally-From: Ken Bell Please forgive the cross posting (ASM370 and IBM-MAIN), but there's been only silence so far from ASM370... ----------------------------Original message---------------------------- I'm new to 370, so go easy please :-) I've been selected to carry forward some local mods to VM, since we are trying to "go uplevel" from SL 509 (VM/SP). Now I found the following block of code in a mod that is currently working, and has been for about three years, thus I'm confident (well..) that the code is correct and that it's just my knowledge of 370 that is lacking. So much for disclaimers, eh? The question is this: I thought that once a base register was declared, its contents could not be changed (at least so long as any address references still depended on that base register). Am I wrong? Can the base actually "move" so long as it's contents still lie within 4095 bytes of the addresses it is being used to reference? Here's a fragment of the code I'm asking about (it's part of a "user" diagnose added to correct an accounting problem for an MVS guest running under VM): MVSPROBT EQU * USING MVSTIME,R2 <= Set base reg R2 LA R2,MVSPTT-MVSSIZE*8 <= Change base reg R2 (?) MVSPTL1 LA R2,MVSSIZE*8(R2) <= MVSSIZE needs base reg R2 (?) CLI 0(R2),X'FF' BE MVSPTL3 CLC MVSUSER,VMUSER <= MVSUSER needs base reg R2 (?) ... ... MVSUSER DS 1D MVSVTIME DS 1D MVSACUM DS 1D MVSSIZE EQU (*-MVSTIME+7)/8