Porting VAX macro – 2

The idea doesn’t work either – for the very same reason.
lib$get_curr_invo_context carries one parameter – and that again, overwrites R16 and R17: (In the invo-context structure I defined, IREG is an a1-based array, so the index is one up from the registernumber, so R16 is store in IREG(17). But the principle stayes teh same):

Retstat = lib$get_curr_invo_context (invo_context)

and again, R16 and R17 are gone:

NUMARG\SCS_NUMARG\INVO_CONTEXT.IREG(17): 196736
DBG%gt; exa invo_context.IREG(18)
SCS_NUMARG\NUMARG\INVO_CONTEXT.IREG(18): 196984
DBG%gt; exa @invo_context.IREG(17)
SCS_NUMARG\NUMARG\INVO_CONTEXT.CONTEXT_LENGTH: 544
DBG%gt; exa @invo_context.IREG(18)
SCS_NUMARG\NUMARG\INVO_CONTEXT.IREG(28): 1240184
DBG%gt;

It’s only R18 that holds the value I’m interested in:

DBG%gt; exa @invo_context.IREG(19)
A\A\XXX: 3
DBG%gt;

Examaning the regsiters on routine entry show the right values:

DBG%gt; exa @R16
A\A\X: 1
DBG%gt; exa @R17
A\A\XX: 2
DBG%gt; exa @R18
A\A\XXX: 3
DBG%gt; exa @R19
A\A\XXXX: 4
DBG%gt; exa @R20
%DEBUG-E-NOACCESSR, no read access to address 0000000000000004
DBG%gt;

I think I;ll have to adapt my code….It’s easier that way

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.