Ah yes. Brings back memories of encountering that usage and then being introduced to Bill Collier and his technical report "OS360 Coding Notes". Bill had discovered that special behavior of both BXLE and BXH.

My second project out of programming school in POK was a process intended to determine if OS/360 test cases had exercised the code paths that eventually resulted in bugs (or if those paths had been missed and never tested). The method was to trap execution of all branch instructions in system code when running the test buckets and then map the paths executed against the assembler listings of the modules. The project, called MEMMAP, consisted of a modified assembler that replaced all branch instructions with specific invalid op codes and also produced a bit map file representing the module's code. The second piece was an extension to the program check interrupt handler that would register the execution of the branch instruction and replace the invalid op code with its valid equivalent, once all possible conditions had been met. It also marked the code paths in the module's bit map as having been executed by the test case.

The PC FLIH also had to correctly simulate the execution of each of the invalid branch instructions. The problem was that the bit shifting procedure was not obvious to me from the execution descriptions in the PoP, so IEFSD095 failed to operate as designed when run in MEMMAP. Fortunately, the author had been kind enough to heavily comment that section of the code and refer to Collier's technical report.

I later used the method in the Paging Services Interface module of RSM in the first release of MVS and left a full page of comments explaining the intended behavior. I often wonder if that is still in the code being shipped today.

Mike Myers
Mentor Services Corporation

On 03/04/2013 01:38 PM, Gerhard Postpischil wrote:
On 3/4/2013 11:46 AM, Tony Harminc wrote:
Perhaps they were early RISC programmers...

Possibly, but IEFSD095 also uses BXH (for the non-obvious function of shifting a bit, testing it, and conditional branching).

Gerhard Postpischil
Bradford, Vermont

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to