Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!zaphod.mps.ohio-state.edu!magnus.ircc.ohio-state.edu!tut.cis.ohio-state.edu!ucbvax!WEIZMANN.BITNET!VSLAWR From: VSLAWR@WEIZMANN.BITNET ("Lawrence S. Kalman") Newsgroups: comp.lang.asm370 Subject: Re: HNDEXT macro Message-ID: <9102211159.AA13526@ucbvax.Berkeley.EDU> Date: 21 Feb 91 11:29:08 GMT References: Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: IBM 370 Assembly Programming Discussion List Distribution: inet Organization: The Internet Lines: 37 On Wed, 20 Feb 91 00:35:00 EST Ken Hornstein (814) 862-7007 said: >Hi. I've written some code that I'm sending to other sites, but I'm running >into a problem with my use of the HNDEXT macro. What I'm currently doing is >this: > > HNDEXT SET,(R4) > >Which works fine on our ESA system, XA systems, and some other CMS systems. >But other sites generate a P-list which looks like this: > > DC CL8'TRAP' > DC A((R4)) You have encountered the thorny problem of incompatibility between systems. The valid format of the HNDEXT macro in CMS 5 and earlier releases (I can't speak for CMS 6) is much more restrictive, as it provides only HNDEXT SET,address or HNDEXT CLR and
must be a reference to storage. (Note that it could be an external reference.) There is no provision for register specification of the address, list and execute forms, or any of the other goodies provided in CMS 5.6. Assuming that the address in R4 is dynamically obtained, you are caught between a rock and a hard place. You have to resort to what is known as "dual pathing". This can be done either at the source or execution level. If at the source level, you will want to insert conditional assembly statements which will cause the selection of the appropriate statements based on the level of CMS. If at the execution level, you can determine under which level of CMS the program is running (see the CMSLEVEL macro - the value is stored at CMSPROG in NUCON) and execute one of two paths accordingly. Of course, either choice requires access to the documentation and the ability to test on all the systems for which you want to provide support ;-(. - Lawrence