Template:FUNU changes for 7.5: Difference between revisions

From m204wiki
Jump to navigation Jump to search
(Created page with "Starting with version 7.5 of <var class="product">Model 204</var>, all $functions are entered in AMODE 64. This requires you to modify the ENTER macro for each $function, and...")
 
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
Starting with version 7.5 of <var class="product">Model 204</var>, all $functions are entered in AMODE 64.  This requires you to modify the ENTER macro for each $function, and may require you to modify the code for proper addressing in AMODE 64.
Starting with version 7.5 of <var class="product">Model 204</var>, all $functions are entered in AMODE 64.  This requires you to modify the ENTER macro for each $function, and may require you to modify the code for proper addressing in AMODE 64.
<ul>
<ul>
<li>The default ENTER macro (that is, without the ZMODE= operand) will not function in AMODE 64 - it will issue a BUG message (<i>label</i> <code>Bad AMODE, expect 31</code>) and produce a snap.
<li>In order to exploit QTBL above the 2G bar, any $functions which has arguments must be in AMODE 64.  The ENTER macro should use ZMODE=GQ (the AMODE will remain as 64) and the code must be changed for proper addressing.
<li>In order to exploit QTBL above the 2G bar, any $functions which has arguments must be in AMODE 64.  The ENTER macro should use ZMODE=GQ (the AMODE will remain as 64) and the code must be changed for proper addressing.
<li>If the $function does not have any arguments or if you will not exploit QTBL above the bar, and if your $function does not access any other data structures which may be above the bar, you can use the ZMODE=31 operand on the ENTER macro. This will cause your $function to switch to AMODE 31 at entry (and restore the AMODE upon exit).
<li>For the ENTER macro, the ZMODE operand default value (for FUNU only) is ZMODE=31. So if the $function does not have any arguments or if you will not exploit QTBL above the bar, and if the $function does not access any data structures above the bar, either specify ZMODE=31 or omit the ZMODE operand. (Note that most Model 204 data structures can be above the bar, including $function arguments.) The ZMODE=31 value will be used, causing your $function to switch to AMODE 31 at entry (and restore the AMODE upon exit).
<li>In any case, the AMODE issues need to be accounted for in any routines which your $function routine does a CCALL to.
<li>In any case, the AMODE issues need to be accounted for in any routines which your $function routine does a CCALL to.
</ul>
</ul>

Latest revision as of 21:43, 5 December 2016

Starting with version 7.5 of Model 204, all $functions are entered in AMODE 64. This requires you to modify the ENTER macro for each $function, and may require you to modify the code for proper addressing in AMODE 64.

  • In order to exploit QTBL above the 2G bar, any $functions which has arguments must be in AMODE 64. The ENTER macro should use ZMODE=GQ (the AMODE will remain as 64) and the code must be changed for proper addressing.
  • For the ENTER macro, the ZMODE operand default value (for FUNU only) is ZMODE=31. So if the $function does not have any arguments or if you will not exploit QTBL above the bar, and if the $function does not access any data structures above the bar, either specify ZMODE=31 or omit the ZMODE operand. (Note that most Model 204 data structures can be above the bar, including $function arguments.) The ZMODE=31 value will be used, causing your $function to switch to AMODE 31 at entry (and restore the AMODE upon exit).
  • In any case, the AMODE issues need to be accounted for in any routines which your $function routine does a CCALL to.