Put the USING after the instruction that sets R10.

-- 
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר




________________________________________
From: IBM Mainframe Assembler List <[email protected]> on behalf 
of David Clark <[email protected]>
Sent: Wednesday, February 11, 2026 2:20 PM
To: [email protected] <[email protected]>
Subject: Re: [External Sender] Re: Move data to a location prior to a given 
(based) address


External Message: Use Caution


Ha!  I found another way.  I now have the following DSECT definition.

TXTINPT  DSECT
         USING TXTINPT,R10        ESTABLISH REG 10 AS BASE
TXTSREQU DS    CL1                SCRIPTING REQUEST CODE
TXTSRETN DS    CL1                SCRIPTING RETURN CODE
TXTSSTRL DS    H                  SCRIPTING INPUT/OUTPUT STRING LENGTH
TXTSSTRG DS    256CL1             SCRIPTING INPUT/OUTPUT STRING
         ORG   TXTINPT
STR_REQU EQU   *-2,1,C'C'         DYNAMIC REFERENCE TO STRING REQUEST
STR_RETN EQU   *-1,1,C'C'         DYNAMIC REFERENCE TO STRING RETCODE
TXTSTRL  DS    H                  LEGACY INPUT/OUTPUT STRING LENGTH
TXTSTRG  DS    256CL1             LEGACY INPUT/OUTPUT STRING
         ORG

So, the following now shows three ways I would possibly use it.

IF  TXTREQU,NE,C'S'      IF NOT IN SCRIPTING MODE
 MVI TXTRETN,C'B'         SIGNAL BUFFER LENGTH ERROR <==LEGACY CODE
 B  RETURN                GO RETURN TO CALLER        <==LEGACY CODE
ELSE                     ELSE--FOR SCRIPTING
 MVIY -1(R10),C'B'        SAVE AS STRING RETURN CODE
 MVIY TXTSTRL-1,C'B'      SAVE AS STRING RETURN CODE
 MVIY STR_RETN,C'B'       SAVE AS STRING RETURN CODE
 B  SCRIPTXT              TAKE THE SCRIPTING EXIT
ENDIF                    ENDIF

...and the following snippet shows that the same machine code is being
generated.

000662 EBC2 AFFF FF52FFFFFF         896             MVIY -1(R10),C'B'
000668 EBC2 AFFF FF52FFFFFF         897             MVIY TXTSTRL-1,C'B'
00066E EBC2 AFFF FF52FFFFFF         898             MVIY STR_RETN,C'B'

...and the following is from the cross-reference.  Reactions?

Symbol   Length   Value     Id    R Type Asm
TXTREQU       1 00000000 FFFFFFFF     C  C
TXTRETN       1 00000001 FFFFFFFF     C  C
TXTSREQU      1 00000000 FFFFFFFD     C  C
TXTSRETN      1 00000001 FFFFFFFD     C  C
STR_REQU      1 FFFFFFFE FFFFFFFD     C
STR_RETN      1 FFFFFFFF FFFFFFFD     C

Sincerely,
Dave Clark


Reply via email to