BR 14 will work as well as J RESUME and is shorter. Clearing R1 works as well as a separate flag, if you only need to test it in one place.
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר ________________________________________ From: IBM Mainframe Assembler List <[email protected]> on behalf of Martin Trübner <[email protected]> Sent: Thursday, May 9, 2024 8:37 AM To: [email protected] Subject: Re: Does the GET macro indicate EOF? set the bit as suggested in a separate EOF routine.... if you use the BR 14 to end your EOF handling, you have a bit to test after the GET. so it looks like this GET_LOOP DS 0H GET DCB RESUME DS 0H TM FLAG,BIT JO REAL_EOF SET_FLAG DS 0H OI FLAG,BIT J RESUME DCB .... EODAD=SET_FLAG that way you should be able to work with just one break point at label RESUME . It comes there with FLAG set once EOF is reached, but also every time after GET On 09.05.24 14:18, David Eisenberg wrote: >> What are you trying to do?< > I'm trying to overcome a limitation in ASMIDF involving single-stepping > through code while debugging. That's the only reason I'm asking about this. > > As per the IBM documentation, ASMIDF's single-stepping process involves the > automatic placement and removal of breakpoints. To do accomplish that, ASMIDF > must predict the next executable instruction, so that it can set a breakpoint > on it. When the current instruction is a GET macro, ASMIDF doesn't have the > logic to dig out the EODAD and set a temporary breakpoint on that > instruction; it only sets the temporary breakpoint on the instruction > immediately following the GET. > > My GET code is in an external subroutine that is called by other > applications. Any developer who single-steps into that subroutine never gets > control back from ASMIDF, because the GET loop reads to EOF, and (because > there is no automatic breakpoint set on the EODAD) the program runs to > completion without stopping. > > The entire problem disappears if the EODAD is immediately after the GET, > because then the breakpoint will be set and honored in all cases. But if I do > it that way, then I have to know whether I reached that instruction because > it really is the EOF, or whether the GET returned a record. > > I just don't know how to dig what I need out of any control blocks, or > whether that information is available. Does the GET return anything I can > use? Maybe via R1? Or is there something in the DCB to tell me if I've > reached the EOF? > > David
