"IBM Mainframe Assembler List" <ASSEMBLER-LIST@LISTSERV.UGA.EDU> wrote on 02/24/2022 11:49:34 AM: > Why not dispense with MODCB and just modify the RPL yourself using > IFGRPL DSECT?
Well, it turns out that modifying the IKQRPL DSECT directly saved 2,224 bytes on my program size -- and my program still works (at least, as much of it as I have tested up to this point). What I previously posted was replaced by the following, which is 42 source lines shorter. Feel free to point out any additional improvements that might be made. Thanks, all. L R8,FILERPL GET RPL ADDRESS USING IKQRPL,R8 TEMPORARY ADDRESSABILITY IF RQARG2,EQ,C'N',OR,RQARG2,EQ,C'P' IF NEXT/PREV OI RPLOPT1,RPLSEQ SET SEQUENTIAL PROCESSING NI RPLOPT1,X'FF'-RPLDIR NOT DIRECT PROCESSING IF RQARG2,EQ,C'P' IF PREV OI RPLOPT2,RPLBWD SET BACKWARD PROCESSING ELSE ELSE NEXT NI RPLOPT2,X'FF'-RPLBWD SET FORWARD PROCESSING ENDIF ENDIF ELSE BY KEY/RBA NI RPLOPT2,X'FF'-RPLBWD SET FORWARD PROCESSING IF RQARG2,EQ,C'R' BY RBA NI RPLOPT1,X'FF'-RPLKEY NOT KEY PROCESSING OI RPLOPT1,RPLADR SET ADR PROCESSING ELSE BY KEY OI RPLOPT1,RPLKEY SET KEY PROCESSING NI RPLOPT1,X'FF'-RPLADR NOT ADR PROCESSING IF RQARG3,EQ,C'G' IF GTEQ OI RPLOPT2,RPLKGE SET KGE PROCESSING NI RPLOPT2,X'FF'-RPLGEN NOT GENERIC PROCESSING ELSE ELSE EQUAL NI RPLOPT2,X'FF'-RPLKGE NOT KGE PROCESSING NI RPLOPT2,X'FF'-RPLGEN NOT GENERIC PROCESSING ENDIF ENDIF ENDIF ENDIF IF FILEOPT,(ON,TM),FILESEQU IF ACCESS IS SEQUENTIAL OI RPLOPT1,RPLSEQ SET SEQ PROCESSING NI RPLOPT1,X'FF'-RPLDIR NOT DIR PROCESSING ELSE ACCESS IS DIRECT NI RPLOPT1,X'FF'-RPLSEQ NOT SEQ PROCESSING OI RPLOPT1,RPLDIR SET DIR PROCESSING ENDIF ENDIF ENDIF ENDIF IF FILEOPT,(ON,TM),FILEUPDT IF OPENED FOR UPDATE OI RPLOPT1,RPLUPD SET UPD PROCESSING NI RPLOPT2,X'FF'-RPLNSP NOT NSP PROCESSING NI RPLOPT2,X'FF'-RPLNUP NOT NUP PROCESSING ELSE ELSE NOT UPDATE NI RPLOPT1,X'FF'-RPLUPD NOT UPD PROCESSING IF FILEOPT,(ON,TM),FILESEQU IF ACCESS IS SEQUENTIAL NI RPLOPT2,X'FF'-RPLNSP NOT NSP PROCESSING OI RPLOPT2,RPLNUP SET NUP PROCESSING ELSE ELSE ACCESS IS DIRECT OI RPLOPT2,RPLNSP SET NSP PROCESSING NI RPLOPT2,X'FF'-RPLNUP NOT NUP PROCESSING ENDIF ENDIF ENDIF ENDIF DROP R8 REMOVE ADDRESSABILITY Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 ********************************************************************************************* This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *********************************************************************************************