HNDEXT macro 
Author Message
 HNDEXT macro

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))

Which isn't what I want to do at all :-(  I've tried using the MF=L form,
but it seems like the sites that generate the lousy P-lists also don't
recognize MF=L as a valid parameter.  I'd hard-code the P-list myself,
except that XA uses something else to trap externals instead of TRAP, and I'd
like to use it also.

Any suggestions?   Do I just have to send people an update file with a fix,
or is there a  way to make this assemble at all sites without any changes?

Thanks!

---
Build a system that even a fool can use and only a fool will want to use it.




Sun, 08 Aug 1993 13:35:00 GMT  
 HNDEXT macro

              IF YOU WANT TO USE YOUR EXTERNAL INTERRUPT ROUTINE,
              YOU CAN USE DIRECTLY EXTOPSW AND EXTNPSW,
              THIS WAY RUNS AT ALL S/370 BASED SYSTEMS



Sun, 08 Aug 1993 16:50:40 GMT  
 HNDEXT macro
I know that this may sound dumb, but try using (4) instead of (R4);
I have found that this works with SOME of the IBM macros.


Mon, 09 Aug 1993 04:37:20 GMT  
 HNDEXT macro
On Wed, 20 Feb 91 00:35:00 EST Ken Hornstein (814) 862-7007 said:

Quote:
>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 <address> 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



Mon, 09 Aug 1993 19:29:08 GMT  
 
 [ 4 post ] 

 Relevant Pages 

1. HNDEXT macro

2. A macro involving two sub-macros - where the 2nd macro needs results from the first

3. macro -vs- macro/codeblock

4. Help with macros writing macros in Bigloo

5. syntax-rules macros with sub-macros

6. Scheme macro source: rewriter-widget, a widely applicable macro interface

7. Macros defining macros with define-syntax

8. symbol-macros and regular macros

9. Question about a macro-defining macro

10. Macro-Defining Macros

11. macro macros

12. Local macro within a macro?

 

 
Powered by phpBB® Forum Software