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
