Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 2ff8806b45ba9c96e77e01e6d40e440b > files > 178

libsc68_2.2.1-devel-2.2.1-11mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>sc68fordevelopers: /home/mandrake/rpm/BUILD/sc68-2.2.1/emu68/macro68.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>/home/mandrake/rpm/BUILD/sc68-2.2.1/emu68/macro68.h File Reference</h1>68K instruction emulation macro definitions.  
<a href="#_details">More...</a>
<p>
<code>#include &quot;<a class="el" href="srdef68_8h_source.html">emu68/srdef68.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="excep68_8h_source.html">emu68/excep68.h</a>&quot;</code><br>

<p>
<a href="macro68_8h_source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6854f97787c2c6fc81de10084518e83b"></a><!-- doxytag: member="macro68.h::ADDCYCLE" ref="6854f97787c2c6fc81de10084518e83b" args="(N)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#6854f97787c2c6fc81de10084518e83b">ADDCYCLE</a>(N)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dummy internal cycle counter. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7f28a46e4d01a2a3aceaa1439909a969"></a><!-- doxytag: member="macro68.h::SETCYCLE" ref="7f28a46e4d01a2a3aceaa1439909a969" args="(N)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#7f28a46e4d01a2a3aceaa1439909a969">SETCYCLE</a>(N)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dummy internal cycle counter. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Exception handling.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#20a4f9d1130f259f69dab9c2b32a78e1">EXCEPTION</a>(VECTOR, LVL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">General exception or interruption.  <a href="#20a4f9d1130f259f69dab9c2b32a78e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#50f4496a33308c2325e5c9cea9ccd9f2">ILLEGAL</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Illegal instruction.  <a href="#50f4496a33308c2325e5c9cea9ccd9f2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#be98308cc3e5190044294f4f626b4442">BUSERROR</a>(ADDR, MODE)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bus error exception.  <a href="#be98308cc3e5190044294f4f626b4442"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ecf2e1f677876da4397423d9d2bd08e2"></a><!-- doxytag: member="macro68.h::LINEA" ref="ecf2e1f677876da4397423d9d2bd08e2" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#ecf2e1f677876da4397423d9d2bd08e2">LINEA</a>&nbsp;&nbsp;&nbsp;EXCEPTION(LINEA_VECTOR,LINEA_LVL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Line A exception. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f237af18c5657f78a1bb0c8434b5cc8d"></a><!-- doxytag: member="macro68.h::LINEF" ref="f237af18c5657f78a1bb0c8434b5cc8d" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#f237af18c5657f78a1bb0c8434b5cc8d">LINEF</a>&nbsp;&nbsp;&nbsp;EXCEPTION(LINEF_VECTOR,LINEF_LVL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Line F exception. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="28d5b3accc8e77e4dbb4da615d46312f"></a><!-- doxytag: member="macro68.h::TRAPV" ref="28d5b3accc8e77e4dbb4da615d46312f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#28d5b3accc8e77e4dbb4da615d46312f">TRAPV</a>&nbsp;&nbsp;&nbsp;if(reg68.sr&amp;SR_V) EXCEPTION(TRAPV_VECTOR,TRAPV_LVL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">TRAPV exception. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b677c17b45660f2cbea68ef8784d017f"></a><!-- doxytag: member="macro68.h::TRAP" ref="b677c17b45660f2cbea68ef8784d017f" args="(TRAP_N)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#b677c17b45660f2cbea68ef8784d017f">TRAP</a>(TRAP_N)&nbsp;&nbsp;&nbsp;EXCEPTION(TRAP_VECTOR(TRAP_N),TRAP_LVL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">TRAP exception. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5ccabf1aaaf2408ff4bec6b4a27d076b"></a><!-- doxytag: member="macro68.h::CHK" ref="5ccabf1aaaf2408ff4bec6b4a27d076b" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#5ccabf1aaaf2408ff4bec6b4a27d076b">CHK</a>&nbsp;&nbsp;&nbsp;EXCEPTION(CHK_VECTOR,CHK_LVL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">CHK exception. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7fef6081b06bc5ee2638625313745c4e"></a><!-- doxytag: member="macro68.h::CHKW" ref="7fef6081b06bc5ee2638625313745c4e" args="(CHK_A, CHK_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#7fef6081b06bc5ee2638625313745c4e">CHKW</a>(CHK_A, CHK_B)&nbsp;&nbsp;&nbsp;if((CHK_B)&lt;0 || (CHK_B)&gt;(CHK_A)){ CHK; }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">CHKW exception. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Program control instructions.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="700f88377bf36711b711f69b06c52f5d"></a><!-- doxytag: member="macro68.h::NOP" ref="700f88377bf36711b711f69b06c52f5d" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#700f88377bf36711b711f69b06c52f5d">NOP</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">No Operation. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b702106cf3b3e96750b6845ded4e0299"></a><!-- doxytag: member="macro68.h::RESET" ref="b702106cf3b3e96750b6845ded4e0299" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#b702106cf3b3e96750b6845ded4e0299">RESET</a>&nbsp;&nbsp;&nbsp;EMU68_reset()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Soft reset. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#e19b6bb2940d2fbe0a79852b070eeafd">STOP</a>&nbsp;&nbsp;&nbsp;reg68.sr = (<a class="el" href="type68_8h.html#9e6c91d77e24643b888dbd1a1a590054">u16</a>)get_nextw(); reg68.status = 1</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">STOP.  <a href="#e19b6bb2940d2fbe0a79852b070eeafd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5da46cdb9a2133d1b4f0db71a332ba2e"></a><!-- doxytag: member="macro68.h::RTS" ref="5da46cdb9a2133d1b4f0db71a332ba2e" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#5da46cdb9a2133d1b4f0db71a332ba2e">RTS</a>&nbsp;&nbsp;&nbsp;reg68.pc = popl()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return from subroutine. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5807d8becfd6e182041e4ccca3eeb20a"></a><!-- doxytag: member="macro68.h::RTE" ref="5807d8becfd6e182041e4ccca3eeb20a" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#5807d8becfd6e182041e4ccca3eeb20a">RTE</a>&nbsp;&nbsp;&nbsp;reg68.sr = popw(); RTS</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return from exception. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8f14d04b8bcaf04226f4fe5c112b60aa"></a><!-- doxytag: member="macro68.h::RTR" ref="8f14d04b8bcaf04226f4fe5c112b60aa" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#8f14d04b8bcaf04226f4fe5c112b60aa">RTR</a>&nbsp;&nbsp;&nbsp;reg68.sr = (reg68.sr&amp;0xFF00) | (u8)popw(); RTS</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return from exception restore CCR only. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Miscellaneous instructions.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e57f476554857ff7dbf3925a1854c1be"></a><!-- doxytag: member="macro68.h::NBCDB" ref="e57f476554857ff7dbf3925a1854c1be" args="(NBCD_S, NBCD_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#e57f476554857ff7dbf3925a1854c1be">NBCDB</a>(NBCD_S, NBCD_A)&nbsp;&nbsp;&nbsp;(NBCD_S)=(NBCD_A)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Binary coded decimal sign change. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2028670c42d483d106c2f088c9ae7e1a"></a><!-- doxytag: member="macro68.h::EXG" ref="2028670c42d483d106c2f088c9ae7e1a" args="(A, B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#2028670c42d483d106c2f088c9ae7e1a">EXG</a>(A, B)&nbsp;&nbsp;&nbsp;(A)^=(B); (B)^=(A); (A)^=(B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register MSW/LSW exchange. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="43ba1e48ab3e4ae9e15e9b2894bd9fbe"></a><!-- doxytag: member="macro68.h::EXTW" ref="43ba1e48ab3e4ae9e15e9b2894bd9fbe" args="(D)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#43ba1e48ab3e4ae9e15e9b2894bd9fbe">EXTW</a>(D)&nbsp;&nbsp;&nbsp;(D) = ((D)&amp;0xFFFF0000) | ((u16)(s32)(s8)(D))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte to word sign extension. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4a60eb72a9bde7ad33449dcd956d8872"></a><!-- doxytag: member="macro68.h::EXTL" ref="4a60eb72a9bde7ad33449dcd956d8872" args="(D)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#4a60eb72a9bde7ad33449dcd956d8872">EXTL</a>(D)&nbsp;&nbsp;&nbsp;(D) = (<a class="el" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6">s32</a>)(<a class="el" href="type68_8h.html#5ffa4f640862b25ba6d4f635b78bdbe1">s16</a>)(D)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word to long sign extension. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1dcb91751f0ea83de1926fe31edc308b"></a><!-- doxytag: member="macro68.h::TAS" ref="1dcb91751f0ea83de1926fe31edc308b" args="(TAS_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#1dcb91751f0ea83de1926fe31edc308b">TAS</a>(TAS_A)&nbsp;&nbsp;&nbsp;{ TSTB(TAS_A,TAS_A); (TAS_A) |= 0x80000000; }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test and set (mutual exclusion). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#0cbf0b9c373ada722f2e3940a8e837a3">CLR</a>(CLR_S, CLR_A)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic clear memory or register.  <a href="#0cbf0b9c373ada722f2e3940a8e837a3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3999d24bd7bc6cd9fe716fe66a0309f3"></a><!-- doxytag: member="macro68.h::CLRB" ref="3999d24bd7bc6cd9fe716fe66a0309f3" args="(A, B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#3999d24bd7bc6cd9fe716fe66a0309f3">CLRB</a>(A, B)&nbsp;&nbsp;&nbsp;CLR(A,B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte memory or register clear. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8131676f4c04dc5ed97cb90f905d1db9"></a><!-- doxytag: member="macro68.h::CLRW" ref="8131676f4c04dc5ed97cb90f905d1db9" args="(A, B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#8131676f4c04dc5ed97cb90f905d1db9">CLRW</a>(A, B)&nbsp;&nbsp;&nbsp;CLR(A,B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word memory or register clear. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6a54e13ddc6874c7163c95c71cb661a4"></a><!-- doxytag: member="macro68.h::CLRL" ref="6a54e13ddc6874c7163c95c71cb661a4" args="(A, B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#6a54e13ddc6874c7163c95c71cb661a4">CLRL</a>(A, B)&nbsp;&nbsp;&nbsp;CLR(A,B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Long memory or register clear. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#cabdc746fdfa7e8a587104efcd13b145">LINK</a>(R_LNK)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Link (frame pointer).  <a href="#cabdc746fdfa7e8a587104efcd13b145"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#207482409eaa458a93dc02f7f89a55fe">UNLK</a>(R_LNK)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">UNLK (frame pointer).  <a href="#207482409eaa458a93dc02f7f89a55fe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#437700508dff5a665d62caed6d19962a">SWAP</a>(SWP_A)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register value swapping.  <a href="#437700508dff5a665d62caed6d19962a"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Bit instructions.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cbec8f78bfb513f8ef386bc0cb37140d"></a><!-- doxytag: member="macro68.h::BTST" ref="cbec8f78bfb513f8ef386bc0cb37140d" args="(V, BIT)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#cbec8f78bfb513f8ef386bc0cb37140d">BTST</a>(V, BIT)&nbsp;&nbsp;&nbsp;reg68.sr = (reg68.sr&amp;(~SR_Z)) | (((((V)&gt;&gt;(BIT))&amp;1)^1)&lt;&lt;SR_Z_BIT)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit test and set. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#9e3dfa1ebebfd77f10b81218e221b141">BSET</a>(V, BIT)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit set.  <a href="#9e3dfa1ebebfd77f10b81218e221b141"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#9c1e975d7c0e874a2110b6bb1c26fe1a">BCLR</a>(V, BIT)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit clear.  <a href="#9c1e975d7c0e874a2110b6bb1c26fe1a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#09f70aac938aa9c8b83269d32d347121">BCHG</a>(V, BIT)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit change.  <a href="#09f70aac938aa9c8b83269d32d347121"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Move &amp; test instructions.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>MOVE</b>(MOV_A)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b6100b809e581700b4b0c985455ed2ab"></a><!-- doxytag: member="macro68.h::TST" ref="b6100b809e581700b4b0c985455ed2ab" args="(TST_V)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TST</b>(TST_V)&nbsp;&nbsp;&nbsp;MOVE(TST_V)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="970ed42a7a736265772d327037a590aa"></a><!-- doxytag: member="macro68.h::TSTB" ref="970ed42a7a736265772d327037a590aa" args="(TST_S, TST_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TSTB</b>(TST_S, TST_A)&nbsp;&nbsp;&nbsp;{ TST_S=TST_A; TST(TST_S); }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5dfbbde8693d9c83d8fab2cca7436fe9"></a><!-- doxytag: member="macro68.h::TSTW" ref="5dfbbde8693d9c83d8fab2cca7436fe9" args="(TST_S, TST_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TSTW</b>(TST_S, TST_A)&nbsp;&nbsp;&nbsp;{ TST_S=TST_A; TST(TST_S); }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="420568b7be5592caecc4714cc2990aea"></a><!-- doxytag: member="macro68.h::TSTL" ref="420568b7be5592caecc4714cc2990aea" args="(TST_S, TST_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TSTL</b>(TST_S, TST_A)&nbsp;&nbsp;&nbsp;{ TST_S=TST_A; TST(TST_S); }</td></tr>

<tr><td colspan="2"><div class="groupHeader">Multiply &amp; Divide instructions.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dad07bc9c659173706c0e00bfdd2824c"></a><!-- doxytag: member="macro68.h::MULSW" ref="dad07bc9c659173706c0e00bfdd2824c" args="(MUL_S, MUL_A, MUL_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#dad07bc9c659173706c0e00bfdd2824c">MULSW</a>(MUL_S, MUL_A, MUL_B)&nbsp;&nbsp;&nbsp;MUL_S = muls68(MUL_A, MUL_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Signed multiplication. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="26c07b161cd6aa0439daf3d933a92697"></a><!-- doxytag: member="macro68.h::MULUW" ref="26c07b161cd6aa0439daf3d933a92697" args="(MUL_S, MUL_A, MUL_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#26c07b161cd6aa0439daf3d933a92697">MULUW</a>(MUL_S, MUL_A, MUL_B)&nbsp;&nbsp;&nbsp;MUL_S = mulu68(MUL_A, MUL_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unsigned multiplication. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ad5f7e9d536c30813ccef8826b5fcb71"></a><!-- doxytag: member="macro68.h::DIVSW" ref="ad5f7e9d536c30813ccef8826b5fcb71" args="(DIV_S, DIV_A, DIV_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#ad5f7e9d536c30813ccef8826b5fcb71">DIVSW</a>(DIV_S, DIV_A, DIV_B)&nbsp;&nbsp;&nbsp;DIV_S = divs68(DIV_A, DIV_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Signed divide. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c2f4b35c99a2948f04c62c714e682bf2"></a><!-- doxytag: member="macro68.h::DIVUW" ref="c2f4b35c99a2948f04c62c714e682bf2" args="(DIV_S, DIV_A, DIV_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#c2f4b35c99a2948f04c62c714e682bf2">DIVUW</a>(DIV_S, DIV_A, DIV_B)&nbsp;&nbsp;&nbsp;DIV_S = divu68(DIV_A, DIV_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unsigned divide. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Logical instructions.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="728e137c866ee949f69816a2ceff539a"></a><!-- doxytag: member="macro68.h::AND" ref="728e137c866ee949f69816a2ceff539a" args="(AND_S, AND_A, AND_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#728e137c866ee949f69816a2ceff539a">AND</a>(AND_S, AND_A, AND_B)&nbsp;&nbsp;&nbsp;AND_S = and68(AND_A, AND_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic bitwise AND. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d972449d7e05ae60764f4eb2620e025e"></a><!-- doxytag: member="macro68.h::ANDB" ref="d972449d7e05ae60764f4eb2620e025e" args="(AND_S, AND_A, AND_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#d972449d7e05ae60764f4eb2620e025e">ANDB</a>(AND_S, AND_A, AND_B)&nbsp;&nbsp;&nbsp;AND(AND_S, AND_A, AND_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte bitwise AND. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8d63151cdbcf39fd2fa6b240bb0bb3f0"></a><!-- doxytag: member="macro68.h::ANDW" ref="8d63151cdbcf39fd2fa6b240bb0bb3f0" args="(AND_S, AND_A, AND_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#8d63151cdbcf39fd2fa6b240bb0bb3f0">ANDW</a>(AND_S, AND_A, AND_B)&nbsp;&nbsp;&nbsp;AND(AND_S, AND_A, AND_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word bitwise AND. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="79954b6e88c6b20e566ab890fe051d9a"></a><!-- doxytag: member="macro68.h::ANDL" ref="79954b6e88c6b20e566ab890fe051d9a" args="(AND_S, AND_A, AND_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#79954b6e88c6b20e566ab890fe051d9a">ANDL</a>(AND_S, AND_A, AND_B)&nbsp;&nbsp;&nbsp;AND(AND_S, AND_A, AND_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Long bitwise AND. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="677d883d40a07fb971e3496cc99701c0"></a><!-- doxytag: member="macro68.h::ORR" ref="677d883d40a07fb971e3496cc99701c0" args="(ORR_S, ORR_A, ORR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#677d883d40a07fb971e3496cc99701c0">ORR</a>(ORR_S, ORR_A, ORR_B)&nbsp;&nbsp;&nbsp;ORR_S = orr68(ORR_A, ORR_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic bitwise OR. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c4a543252cc9b0f8f418a74444d66fa4"></a><!-- doxytag: member="macro68.h::ORB" ref="c4a543252cc9b0f8f418a74444d66fa4" args="(ORR_S, ORR_A, ORR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#c4a543252cc9b0f8f418a74444d66fa4">ORB</a>(ORR_S, ORR_A, ORR_B)&nbsp;&nbsp;&nbsp;ORR(ORR_S, ORR_A, ORR_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte bitwise OR. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c9ac7a69fad700b345e43e5481f41e31"></a><!-- doxytag: member="macro68.h::ORW" ref="c9ac7a69fad700b345e43e5481f41e31" args="(ORR_S, ORR_A, ORR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#c9ac7a69fad700b345e43e5481f41e31">ORW</a>(ORR_S, ORR_A, ORR_B)&nbsp;&nbsp;&nbsp;ORR(ORR_S, ORR_A, ORR_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word bitwise OR. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d287e8a16c1f3d00e0b4e5b19ee996c8"></a><!-- doxytag: member="macro68.h::ORL" ref="d287e8a16c1f3d00e0b4e5b19ee996c8" args="(ORR_S, ORR_A, ORR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#d287e8a16c1f3d00e0b4e5b19ee996c8">ORL</a>(ORR_S, ORR_A, ORR_B)&nbsp;&nbsp;&nbsp;ORR(ORR_S, ORR_A, ORR_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Long bitwise OR. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="44b282cbcfb2007767762a301c7a00ae"></a><!-- doxytag: member="macro68.h::EOR" ref="44b282cbcfb2007767762a301c7a00ae" args="(EOR_S, EOR_A, EOR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#44b282cbcfb2007767762a301c7a00ae">EOR</a>(EOR_S, EOR_A, EOR_B)&nbsp;&nbsp;&nbsp;EOR_S = eor68(EOR_A, EOR_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic bitwise EOR (exclusive OR). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3708773ba26e7cb77a64dc8dfa2ae4c1"></a><!-- doxytag: member="macro68.h::EORB" ref="3708773ba26e7cb77a64dc8dfa2ae4c1" args="(EOR_S, EOR_A, EOR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#3708773ba26e7cb77a64dc8dfa2ae4c1">EORB</a>(EOR_S, EOR_A, EOR_B)&nbsp;&nbsp;&nbsp;EOR(EOR_S, EOR_A, EOR_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte bitwise EOR (exclusif OR). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ea4de1f4ef50628e47a816a2c365cdbd"></a><!-- doxytag: member="macro68.h::EORW" ref="ea4de1f4ef50628e47a816a2c365cdbd" args="(EOR_S, EOR_A, EOR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#ea4de1f4ef50628e47a816a2c365cdbd">EORW</a>(EOR_S, EOR_A, EOR_B)&nbsp;&nbsp;&nbsp;EOR(EOR_S, EOR_A, EOR_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word bitwise EOR (exclusif OR). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="44bbd20b80c6bdb4d15d6029d615ac2b"></a><!-- doxytag: member="macro68.h::EORL" ref="44bbd20b80c6bdb4d15d6029d615ac2b" args="(EOR_S, EOR_A, EOR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#44bbd20b80c6bdb4d15d6029d615ac2b">EORL</a>(EOR_S, EOR_A, EOR_B)&nbsp;&nbsp;&nbsp;EOR(EOR_S, EOR_A, EOR_B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Long bitwise EOR (exclusif OR). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1eae181b74b282ebd1d358b903520433"></a><!-- doxytag: member="macro68.h::NOT" ref="1eae181b74b282ebd1d358b903520433" args="(NOT_S, NOT_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#1eae181b74b282ebd1d358b903520433">NOT</a>(NOT_S, NOT_A)&nbsp;&nbsp;&nbsp;NOT_S = not68(NOT_A)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic first complement. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3e2b11e2a5a2c48dd9ead9519b12f9f1"></a><!-- doxytag: member="macro68.h::NOTB" ref="3e2b11e2a5a2c48dd9ead9519b12f9f1" args="(A, B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#3e2b11e2a5a2c48dd9ead9519b12f9f1">NOTB</a>(A, B)&nbsp;&nbsp;&nbsp;NOT(A,B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte first complement. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7003129e40217ac4bcf15d3a8aeab0e5"></a><!-- doxytag: member="macro68.h::NOTW" ref="7003129e40217ac4bcf15d3a8aeab0e5" args="(A, B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#7003129e40217ac4bcf15d3a8aeab0e5">NOTW</a>(A, B)&nbsp;&nbsp;&nbsp;NOT(A,B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word first complement. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1afffa6abcc68afc2f0411089572e795"></a><!-- doxytag: member="macro68.h::NOTL" ref="1afffa6abcc68afc2f0411089572e795" args="(A, B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#1afffa6abcc68afc2f0411089572e795">NOTL</a>(A, B)&nbsp;&nbsp;&nbsp;NOT(A,B)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Long first complement. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Arithmetic instructions.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3df193fd54249ec0ca0e4ed0aa961629"></a><!-- doxytag: member="macro68.h::ADD" ref="3df193fd54249ec0ca0e4ed0aa961629" args="(ADD_S, ADD_A, ADD_B, ADD_X)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADD</b>(ADD_S, ADD_A, ADD_B, ADD_X)&nbsp;&nbsp;&nbsp;ADD_S=add68(ADD_A,ADD_B,ADD_X)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="875bfa167b81cb4dd7a565d063e67ef7"></a><!-- doxytag: member="macro68.h::SUB" ref="875bfa167b81cb4dd7a565d063e67ef7" args="(SUB_S, SUB_A, SUB_B, SUB_X)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUB</b>(SUB_S, SUB_A, SUB_B, SUB_X)&nbsp;&nbsp;&nbsp;SUB_S=sub68(SUB_B,SUB_A,SUB_X)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="42ee565ba811ce7c804570eff5442cbb"></a><!-- doxytag: member="macro68.h::CMP" ref="42ee565ba811ce7c804570eff5442cbb" args="(SUB_A, SUB_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMP</b>(SUB_A, SUB_B)&nbsp;&nbsp;&nbsp;sub68(SUB_B,SUB_A,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d3e10c0d8e9620d47a0d0924f81ed947"></a><!-- doxytag: member="macro68.h::ADDB" ref="d3e10c0d8e9620d47a0d0924f81ed947" args="(ADD_S, ADD_A, ADD_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADDB</b>(ADD_S, ADD_A, ADD_B)&nbsp;&nbsp;&nbsp;ADD(ADD_S, ADD_A, ADD_B,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="36e1fb54dd8acbad27547d1d25ec1660"></a><!-- doxytag: member="macro68.h::ADDW" ref="36e1fb54dd8acbad27547d1d25ec1660" args="(ADD_S, ADD_A, ADD_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADDW</b>(ADD_S, ADD_A, ADD_B)&nbsp;&nbsp;&nbsp;ADD(ADD_S, ADD_A, ADD_B,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ab21e2bf8f411b6b669ebba9511889ee"></a><!-- doxytag: member="macro68.h::ADDL" ref="ab21e2bf8f411b6b669ebba9511889ee" args="(ADD_S, ADD_A, ADD_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADDL</b>(ADD_S, ADD_A, ADD_B)&nbsp;&nbsp;&nbsp;ADD(ADD_S, ADD_A, ADD_B,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3ef284fce14f13f812f85c6d2902e74a"></a><!-- doxytag: member="macro68.h::ADDXB" ref="3ef284fce14f13f812f85c6d2902e74a" args="(ADD_S, ADD_A, ADD_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADDXB</b>(ADD_S, ADD_A, ADD_B)&nbsp;&nbsp;&nbsp;ADD(ADD_S, ADD_A, ADD_B, (reg68.sr&amp;SR_X)&lt;&lt;(24-SR_X_BIT))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="566d977d66bbefa6dd1fafad418b7a5a"></a><!-- doxytag: member="macro68.h::ADDXW" ref="566d977d66bbefa6dd1fafad418b7a5a" args="(ADD_S, ADD_A, ADD_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADDXW</b>(ADD_S, ADD_A, ADD_B)&nbsp;&nbsp;&nbsp;ADD(ADD_S, ADD_A, ADD_B, (reg68.sr&amp;SR_X)&lt;&lt;(16-SR_X_BIT))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="07ba6325a2919003e28a9a27d060e0bc"></a><!-- doxytag: member="macro68.h::ADDXL" ref="07ba6325a2919003e28a9a27d060e0bc" args="(ADD_S, ADD_A, ADD_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADDXL</b>(ADD_S, ADD_A, ADD_B)&nbsp;&nbsp;&nbsp;ADD(ADD_S, ADD_A, ADD_B, (reg68.sr&amp;SR_X)&gt;&gt;SR_X_BIT )</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="425f98fefd195e2ab2b80b433a76d5a8"></a><!-- doxytag: member="macro68.h::ADDA" ref="425f98fefd195e2ab2b80b433a76d5a8" args="(ADD_S, ADD_A, ADD_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADDA</b>(ADD_S, ADD_A, ADD_B)&nbsp;&nbsp;&nbsp;(ADD_S) = (ADD_A) + (ADD_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="74163efeb79c0fa3cb39288dd2deb6b3"></a><!-- doxytag: member="macro68.h::ADDAW" ref="74163efeb79c0fa3cb39288dd2deb6b3" args="(ADD_S, ADD_A, ADD_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADDAW</b>(ADD_S, ADD_A, ADD_B)&nbsp;&nbsp;&nbsp;ADDA(ADD_S, ADD_A&gt;&gt;16, ADD_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="69aa6ca21585c2ad4df8168f82a77c26"></a><!-- doxytag: member="macro68.h::ADDAL" ref="69aa6ca21585c2ad4df8168f82a77c26" args="(ADD_S, ADD_A, ADD_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADDAL</b>(ADD_S, ADD_A, ADD_B)&nbsp;&nbsp;&nbsp;ADDA(ADD_S, ADD_A, ADD_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3f025f9710aa6d5b385c0cfed34a07d2"></a><!-- doxytag: member="macro68.h::SUBB" ref="3f025f9710aa6d5b385c0cfed34a07d2" args="(SUB_S, SUB_A, SUB_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUBB</b>(SUB_S, SUB_A, SUB_B)&nbsp;&nbsp;&nbsp;SUB(SUB_S, SUB_A, SUB_B,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="40c5bdd0e35bf77e18cdf5f5e8e35263"></a><!-- doxytag: member="macro68.h::SUBW" ref="40c5bdd0e35bf77e18cdf5f5e8e35263" args="(SUB_S, SUB_A, SUB_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUBW</b>(SUB_S, SUB_A, SUB_B)&nbsp;&nbsp;&nbsp;SUB(SUB_S, SUB_A, SUB_B,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b7b0b91cdfc1bae1741fa785dae7152b"></a><!-- doxytag: member="macro68.h::SUBL" ref="b7b0b91cdfc1bae1741fa785dae7152b" args="(SUB_S, SUB_A, SUB_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUBL</b>(SUB_S, SUB_A, SUB_B)&nbsp;&nbsp;&nbsp;SUB(SUB_S, SUB_A, SUB_B,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="00ac1f3c194a6a769aa5b51bcba5c462"></a><!-- doxytag: member="macro68.h::SUBXB" ref="00ac1f3c194a6a769aa5b51bcba5c462" args="(SUB_S, SUB_A, SUB_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUBXB</b>(SUB_S, SUB_A, SUB_B)&nbsp;&nbsp;&nbsp;SUB(SUB_S, SUB_A, SUB_B, (reg68.sr&amp;SR_X)&lt;&lt;(24-SR_X_BIT))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0839621a70e4cf5360bf1efa76cd6317"></a><!-- doxytag: member="macro68.h::SUBXW" ref="0839621a70e4cf5360bf1efa76cd6317" args="(SUB_S, SUB_A, SUB_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUBXW</b>(SUB_S, SUB_A, SUB_B)&nbsp;&nbsp;&nbsp;SUB(SUB_S, SUB_A, SUB_B, (reg68.sr&amp;SR_X)&lt;&lt;(16-SR_X_BIT))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="48e21297874954c3d85789334a441c96"></a><!-- doxytag: member="macro68.h::SUBXL" ref="48e21297874954c3d85789334a441c96" args="(SUB_S, SUB_A, SUB_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUBXL</b>(SUB_S, SUB_A, SUB_B)&nbsp;&nbsp;&nbsp;SUB(SUB_S, SUB_A, SUB_B, (reg68.sr&amp;SR_X)&gt;&gt;SR_X_BIT)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="23303fc54fabbce445e8764af26b5bfd"></a><!-- doxytag: member="macro68.h::SUBA" ref="23303fc54fabbce445e8764af26b5bfd" args="(SUB_S, SUB_A, SUB_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUBA</b>(SUB_S, SUB_A, SUB_B)&nbsp;&nbsp;&nbsp;(SUB_S) = (SUB_B) - (SUB_A)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUBAW</b>(SUB_S, SUB_A, SUB_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b50bd545c3a957f8950634c20b2093d3"></a><!-- doxytag: member="macro68.h::SUBAL" ref="b50bd545c3a957f8950634c20b2093d3" args="(SUB_S, SUB_A, SUB_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SUBAL</b>(SUB_S, SUB_A, SUB_B)&nbsp;&nbsp;&nbsp;SUBA(SUB_S, SUB_A, SUB_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b4cd40ecd82220fa254daa475f8394ff"></a><!-- doxytag: member="macro68.h::CMPB" ref="b4cd40ecd82220fa254daa475f8394ff" args="(CMP_A, CMP_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMPB</b>(CMP_A, CMP_B)&nbsp;&nbsp;&nbsp;CMP(CMP_A, CMP_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3bec17b5a9001975fd940fb5ecea4e4d"></a><!-- doxytag: member="macro68.h::CMPW" ref="3bec17b5a9001975fd940fb5ecea4e4d" args="(CMP_A, CMP_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMPW</b>(CMP_A, CMP_B)&nbsp;&nbsp;&nbsp;CMP(CMP_A, CMP_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="64b2f9277ea3ced03bd1b67b52a06145"></a><!-- doxytag: member="macro68.h::CMPL" ref="64b2f9277ea3ced03bd1b67b52a06145" args="(CMP_A, CMP_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMPL</b>(CMP_A, CMP_B)&nbsp;&nbsp;&nbsp;CMP(CMP_A, CMP_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b3507cfed2088333a68d91c4d789bcfe"></a><!-- doxytag: member="macro68.h::CMPA" ref="b3507cfed2088333a68d91c4d789bcfe" args="(CMP_A, CMP_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMPA</b>(CMP_A, CMP_B)&nbsp;&nbsp;&nbsp;CMP(CMP_A, CMP_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMPAW</b>(CMP_A, CMP_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ba63364c6486019f23d8ac9ba210b902"></a><!-- doxytag: member="macro68.h::CMPAL" ref="ba63364c6486019f23d8ac9ba210b902" args="(CMP_A, CMP_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMPAL</b>(CMP_A, CMP_B)&nbsp;&nbsp;&nbsp;CMP(CMP_A, CMP_B)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4890b8fa730808e5f748575add55e745"></a><!-- doxytag: member="macro68.h::NEGB" ref="4890b8fa730808e5f748575add55e745" args="(NEG_S, NEG_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>NEGB</b>(NEG_S, NEG_A)&nbsp;&nbsp;&nbsp;SUBB(NEG_S,NEG_A,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7ed47fc2d27ebeaefdb97c60b51a5ca0"></a><!-- doxytag: member="macro68.h::NEGW" ref="7ed47fc2d27ebeaefdb97c60b51a5ca0" args="(NEG_S, NEG_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>NEGW</b>(NEG_S, NEG_A)&nbsp;&nbsp;&nbsp;SUBW(NEG_S,NEG_A,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2600182eaa13afd5118369b870298b61"></a><!-- doxytag: member="macro68.h::NEGL" ref="2600182eaa13afd5118369b870298b61" args="(NEG_S, NEG_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>NEGL</b>(NEG_S, NEG_A)&nbsp;&nbsp;&nbsp;SUBL(NEG_S,NEG_A,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bfdae93cbb6129d6276a5b9ca381e2fb"></a><!-- doxytag: member="macro68.h::NEGXB" ref="bfdae93cbb6129d6276a5b9ca381e2fb" args="(NEG_S, NEG_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>NEGXB</b>(NEG_S, NEG_A)&nbsp;&nbsp;&nbsp;SUBXB(NEG_S,NEG_A,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f29709278ef64b4d23db84972313b1ea"></a><!-- doxytag: member="macro68.h::NEGXW" ref="f29709278ef64b4d23db84972313b1ea" args="(NEG_S, NEG_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>NEGXW</b>(NEG_S, NEG_A)&nbsp;&nbsp;&nbsp;SUBXW(NEG_S,NEG_A,0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ee55bf295459d52e4a9a8addca312e65"></a><!-- doxytag: member="macro68.h::NEGXL" ref="ee55bf295459d52e4a9a8addca312e65" args="(NEG_S, NEG_A)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>NEGXL</b>(NEG_S, NEG_A)&nbsp;&nbsp;&nbsp;SUBXL(NEG_S,NEG_A,0)</td></tr>

<tr><td colspan="2"><div class="groupHeader">Logical &amp; Arithmetic bit shifting instructions.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#62f78dccd3f300863730f230b762b17b">LSR</a>(LSR_A, LSR_D, LSR_MSK, LSR_C)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift  <a href="#62f78dccd3f300863730f230b762b17b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="66eee939032d569aae1c9e2af2a153ae"></a><!-- doxytag: member="macro68.h::LSRB" ref="66eee939032d569aae1c9e2af2a153ae" args="(LSR_A, LSR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#66eee939032d569aae1c9e2af2a153ae">LSRB</a>(LSR_A, LSR_B)&nbsp;&nbsp;&nbsp;LSR(LSR_A,LSR_B,0xFF000000,(1&lt;&lt;24))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte logical right shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cda251ffd0e1c91d6719b77c58ef53a7"></a><!-- doxytag: member="macro68.h::LSRW" ref="cda251ffd0e1c91d6719b77c58ef53a7" args="(LSR_A, LSR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#cda251ffd0e1c91d6719b77c58ef53a7">LSRW</a>(LSR_A, LSR_B)&nbsp;&nbsp;&nbsp;LSR(LSR_A,LSR_B,0xFFFF0000,(1&lt;&lt;16))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word logical right shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="389f0f970a4b922262fca9142e81f5b8"></a><!-- doxytag: member="macro68.h::LSRL" ref="389f0f970a4b922262fca9142e81f5b8" args="(LSR_A, LSR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#389f0f970a4b922262fca9142e81f5b8">LSRL</a>(LSR_A, LSR_B)&nbsp;&nbsp;&nbsp;LSR(LSR_A,LSR_B,0xFFFFFFFF,(1&lt;&lt;0))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Long logical right shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fda032ebebb1ac2422b6294d946ffd57"></a><!-- doxytag: member="macro68.h::ASRB" ref="fda032ebebb1ac2422b6294d946ffd57" args="(LSR_A, LSR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#fda032ebebb1ac2422b6294d946ffd57">ASRB</a>(LSR_A, LSR_B)&nbsp;&nbsp;&nbsp;LSR(LSR_A,LSR_B,0xFF000000,(1&lt;&lt;24))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte arithmetic right shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="352408838f3c61c43436d81b5ccf4f55"></a><!-- doxytag: member="macro68.h::ASRW" ref="352408838f3c61c43436d81b5ccf4f55" args="(LSR_A, LSR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#352408838f3c61c43436d81b5ccf4f55">ASRW</a>(LSR_A, LSR_B)&nbsp;&nbsp;&nbsp;LSR(LSR_A,LSR_B,0xFFFF0000,(1&lt;&lt;16))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word arithmetic right shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1de7c77e7fdc80cf4d18e60b5d9de4ff"></a><!-- doxytag: member="macro68.h::ASRL" ref="1de7c77e7fdc80cf4d18e60b5d9de4ff" args="(LSR_A, LSR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#1de7c77e7fdc80cf4d18e60b5d9de4ff">ASRL</a>(LSR_A, LSR_B)&nbsp;&nbsp;&nbsp;LSR(LSR_A,LSR_B,0xFFFFFFFF,(1&lt;&lt;0))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Long arithmetic right shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#32f934a87ef94acfd506fba08a9df435">LSL</a>(LSL_A, LSL_D, LSL_MSK)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic left shift.  <a href="#32f934a87ef94acfd506fba08a9df435"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="472d1ec4b53c4722473b9c0535338cb5"></a><!-- doxytag: member="macro68.h::LSLB" ref="472d1ec4b53c4722473b9c0535338cb5" args="(LSL_A, LSL_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#472d1ec4b53c4722473b9c0535338cb5">LSLB</a>(LSL_A, LSL_B)&nbsp;&nbsp;&nbsp;LSL(LSL_A,LSL_B,0xFF000000)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte logical left shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c850ec650a19af8c36146905bebd269b"></a><!-- doxytag: member="macro68.h::LSLW" ref="c850ec650a19af8c36146905bebd269b" args="(LSL_A, LSL_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#c850ec650a19af8c36146905bebd269b">LSLW</a>(LSL_A, LSL_B)&nbsp;&nbsp;&nbsp;LSL(LSL_A,LSL_B,0xFFFF0000)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word logical left shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="956a2dcbf6030d19cd5b71ba7827727d"></a><!-- doxytag: member="macro68.h::LSLL" ref="956a2dcbf6030d19cd5b71ba7827727d" args="(LSL_A, LSL_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#956a2dcbf6030d19cd5b71ba7827727d">LSLL</a>(LSL_A, LSL_B)&nbsp;&nbsp;&nbsp;LSL(LSL_A,LSL_B,0xFFFFFFFF)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Long logical left shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1dd79a92be184f728f8334444021fff6"></a><!-- doxytag: member="macro68.h::ASLB" ref="1dd79a92be184f728f8334444021fff6" args="(LSL_A, LSL_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#1dd79a92be184f728f8334444021fff6">ASLB</a>(LSL_A, LSL_B)&nbsp;&nbsp;&nbsp;LSL(LSL_A,LSL_B,0xFF000000)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte arithmetic left shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="54ce6271abd10badaf2403522085e0e9"></a><!-- doxytag: member="macro68.h::ASLW" ref="54ce6271abd10badaf2403522085e0e9" args="(LSL_A, LSL_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#54ce6271abd10badaf2403522085e0e9">ASLW</a>(LSL_A, LSL_B)&nbsp;&nbsp;&nbsp;LSL(LSL_A,LSL_B,0xFFFF0000)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word arithmetic left shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="02ada02c27ff61f9cc45f7387df01777"></a><!-- doxytag: member="macro68.h::ASLL" ref="02ada02c27ff61f9cc45f7387df01777" args="(LSL_A, LSL_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#02ada02c27ff61f9cc45f7387df01777">ASLL</a>(LSL_A, LSL_B)&nbsp;&nbsp;&nbsp;LSL(LSL_A,LSL_B,0xFFFFFFFF)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Long arithmetic left shift. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#b68fd08adcd92db17b1105faedc53039">ROR</a>(ROR_A, ROR_D, ROR_MSK, ROR_SZ)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic right rotation.  <a href="#b68fd08adcd92db17b1105faedc53039"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#9256b88e92d07a399381ca524df5ee31">ROL</a>(ROR_A, ROR_D, ROR_MSK, ROR_SZ)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic left rotation.  <a href="#9256b88e92d07a399381ca524df5ee31"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cfbef3b4e05471e05c4596d0aa54b384"></a><!-- doxytag: member="macro68.h::RORB" ref="cfbef3b4e05471e05c4596d0aa54b384" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#cfbef3b4e05471e05c4596d0aa54b384">RORB</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROR(ROR_A,ROR_B,0xFF000000,8)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2c1f7cf90cc50e238686514c1d783be8"></a><!-- doxytag: member="macro68.h::RORW" ref="2c1f7cf90cc50e238686514c1d783be8" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#2c1f7cf90cc50e238686514c1d783be8">RORW</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROR(ROR_A,ROR_B,0xFFFF0000,16)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2e740f350e0ba80253ff697d1b909565"></a><!-- doxytag: member="macro68.h::RORL" ref="2e740f350e0ba80253ff697d1b909565" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#2e740f350e0ba80253ff697d1b909565">RORL</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROR(ROR_A,ROR_B,0xFFFFFFFF,32)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d4c0c47790b729de2c55e40f943ea7fb"></a><!-- doxytag: member="macro68.h::ROLB" ref="d4c0c47790b729de2c55e40f943ea7fb" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#d4c0c47790b729de2c55e40f943ea7fb">ROLB</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROL(ROR_A,ROR_B,0xFF000000,8)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7a7b5d18bb3967e9d43a983ba02cd0b0"></a><!-- doxytag: member="macro68.h::ROLW" ref="7a7b5d18bb3967e9d43a983ba02cd0b0" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#7a7b5d18bb3967e9d43a983ba02cd0b0">ROLW</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROL(ROR_A,ROR_B,0xFFFF0000,16)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e2c9f437b5dd44922be57fa9d4d510a6"></a><!-- doxytag: member="macro68.h::ROLL" ref="e2c9f437b5dd44922be57fa9d4d510a6" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#e2c9f437b5dd44922be57fa9d4d510a6">ROLL</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROL(ROR_A,ROR_B,0xFFFFFFFF,32)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#c345ba876fb038f47a015001da1552f5">ROXR</a>(ROR_A, ROR_D, ROR_MSK, ROR_SZ)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic right extend-bit rotation.  <a href="#c345ba876fb038f47a015001da1552f5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#fc5f222e265883f0ef3153798efa2cce">ROXL</a>(ROR_A, ROR_D, ROR_MSK, ROR_SZ)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic left extend-bit rotation.  <a href="#fc5f222e265883f0ef3153798efa2cce"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2cd8b05d04680b28e8a2270bdebb6605"></a><!-- doxytag: member="macro68.h::ROXRB" ref="2cd8b05d04680b28e8a2270bdebb6605" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#2cd8b05d04680b28e8a2270bdebb6605">ROXRB</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROXR(ROR_A,ROR_B,0xFF000000,8)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7c418e09442d42c45b6862ecee08a7dc"></a><!-- doxytag: member="macro68.h::ROXRW" ref="7c418e09442d42c45b6862ecee08a7dc" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#7c418e09442d42c45b6862ecee08a7dc">ROXRW</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROXR(ROR_A,ROR_B,0xFFFF0000,16)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7636eecc52eaa317970783b8ca5c5cf2"></a><!-- doxytag: member="macro68.h::ROXRL" ref="7636eecc52eaa317970783b8ca5c5cf2" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#7636eecc52eaa317970783b8ca5c5cf2">ROXRL</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROXR(ROR_A,ROR_B,0xFFFFFFFF,32)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7bcc76eb72635990f7d4bee3ce228527"></a><!-- doxytag: member="macro68.h::ROXLB" ref="7bcc76eb72635990f7d4bee3ce228527" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#7bcc76eb72635990f7d4bee3ce228527">ROXLB</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROXL(ROR_A,ROR_B,0xFF000000,8)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f1d291e1d8ddf7df1429b9e96a79a003"></a><!-- doxytag: member="macro68.h::ROXLW" ref="f1d291e1d8ddf7df1429b9e96a79a003" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#f1d291e1d8ddf7df1429b9e96a79a003">ROXLW</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROXL(ROR_A,ROR_B,0xFFFF0000,16)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8ea628cee254d03d08e2bc9e2d0ab159"></a><!-- doxytag: member="macro68.h::ROXLL" ref="8ea628cee254d03d08e2bc9e2d0ab159" args="(ROR_A, ROR_B)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="macro68_8h.html#8ea628cee254d03d08e2bc9e2d0ab159">ROXLL</a>(ROR_A, ROR_B)&nbsp;&nbsp;&nbsp;ROXL(ROR_A,ROR_B,0xFFFFFFFF,32)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generic right shift <br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
68K instruction emulation macro definitions. 
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Ben(jamin) Gerard &lt;<a href="mailto:ben@sashipa.com">ben@sashipa.com</a>&gt; </dd></dl>
<dl class="date" compact><dt><b>Date:</b></dt><dd>1999/13/03 </dd></dl>
<dl class="version" compact><dt><b>Version:</b></dt><dd></dd></dl>
<dl class="rcs" compact><dt><b>Id</b></dt><dd><a class="el" href="macro68_8h.html" title="68K instruction emulation macro definitions.">macro68.h</a>,v 2.1 2003/09/30 06:29:57 benjihan Exp </dd></dl>
<p>
A important part of EMU68 instruction emulation is done using macro in order to :<ul>
<li>generate decent optimized compiled code.</li><li>simplify compilation process and to avoid "C" code generation. </li></ul>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="20a4f9d1130f259f69dab9c2b32a78e1"></a><!-- doxytag: member="macro68.h::EXCEPTION" ref="20a4f9d1130f259f69dab9c2b32a78e1" args="(VECTOR, LVL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EXCEPTION          </td>
          <td>(</td>
          <td class="paramtype">VECTOR,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LVL&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
  <a class="code" href="mem68_8h.html#4eb26386c28cdc607b1fe9e6c60ca863" title="Push long.">pushl</a>(<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#efb01a3243a5348ce52c4aa4fd19fd64" title="68000 Program Counter.">pc</a>); <a class="code" href="mem68_8h.html#dd4547bb78f600d8aec1ca51f87df1b1" title="Push word.">pushw</a>(<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a>); \
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= 0x70FF; \
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= (0x2000+((LVL)&lt;&lt;<a class="code" href="srdef68_8h.html#f45c0fa5f0bf8aebf64fc0f31b18b72e" title="Internal Processor Level bit number.">SR_IPL_BIT</a>)); \
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#efb01a3243a5348ce52c4aa4fd19fd64" title="68000 Program Counter.">pc</a> = <a class="code" href="mem68_8h.html#2b23623a233ab296159535dda8b60b1b" title="Read memory long.">read_L</a>(VECTOR); \
}
</pre></div>General exception or interruption. 
<p>

</div>
</div><p>
<a class="anchor" name="50f4496a33308c2325e5c9cea9ccd9f2"></a><!-- doxytag: member="macro68.h::ILLEGAL" ref="50f4496a33308c2325e5c9cea9ccd9f2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ILLEGAL          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
        <a class="code" href="emu68_2error68_8h.html#987a74740a85d2a8ebc3e88fbef0db15" title="Push formatted error message.">EMU68error_add</a>(<span class="stringliteral">"Illegal pc:%06x"</span>,<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#efb01a3243a5348ce52c4aa4fd19fd64" title="68000 Program Counter.">pc</a>); \
        <a class="code" href="macro68_8h.html#20a4f9d1130f259f69dab9c2b32a78e1" title="General exception or interruption.">EXCEPTION</a>(<a class="code" href="excep68_8h.html#2c619e75c81653281159f0b99310fa68" title="ILLEGAL vector address.">ILLEGAL_VECTOR</a>,<a class="code" href="excep68_8h.html#c1b9999035e5a5a27842b9ad061e2925" title="ILLEGAL interruption level.">ILLEGAL_LVL</a>); \
}
</pre></div>Illegal instruction. 
<p>

</div>
</div><p>
<a class="anchor" name="be98308cc3e5190044294f4f626b4442"></a><!-- doxytag: member="macro68.h::BUSERROR" ref="be98308cc3e5190044294f4f626b4442" args="(ADDR, MODE)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BUSERROR          </td>
          <td>(</td>
          <td class="paramtype">ADDR,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">MODE&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
        <a class="code" href="emu68_2error68_8h.html#987a74740a85d2a8ebc3e88fbef0db15" title="Push formatted error message.">EMU68error_add</a>(<span class="stringliteral">"bus error pc:%06x addr:%06x (%c)"</span>,\
        <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#efb01a3243a5348ce52c4aa4fd19fd64" title="68000 Program Counter.">pc</a>,ADDR,MODE?<span class="charliteral">'W'</span>:<span class="charliteral">'R'</span>);\
        <a class="code" href="macro68_8h.html#20a4f9d1130f259f69dab9c2b32a78e1" title="General exception or interruption.">EXCEPTION</a>(<a class="code" href="excep68_8h.html#4216efa44163ab27805522fb15f8eccd" title="BUSERROR vector address.">BUSERROR_VECTOR</a>,<a class="code" href="excep68_8h.html#71337c31f4cc99de484ab7d795f399d3" title="BUSERROR interruption level.">BUSERROR_LVL</a>) \
}
</pre></div>Bus error exception. 
<p>

</div>
</div><p>
<a class="anchor" name="e19b6bb2940d2fbe0a79852b070eeafd"></a><!-- doxytag: member="macro68.h::STOP" ref="e19b6bb2940d2fbe0a79852b070eeafd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define STOP&nbsp;&nbsp;&nbsp;reg68.sr = (<a class="el" href="type68_8h.html#9e6c91d77e24643b888dbd1a1a590054">u16</a>)get_nextw(); reg68.status = 1          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
STOP. 
<p>
<dl class="warning" compact><dt><b>Warning:</b></dt><dd>: Partially hanfdled : only move val;ue to SR </dd></dl>

</div>
</div><p>
<a class="anchor" name="0cbf0b9c373ada722f2e3940a8e837a3"></a><!-- doxytag: member="macro68.h::CLR" ref="0cbf0b9c373ada722f2e3940a8e837a3" args="(CLR_S, CLR_A)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CLR          </td>
          <td>(</td>
          <td class="paramtype">CLR_S,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CLR_A&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
  (CLR_A) = (CLR_A); \
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> =(<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a>&amp;~(<a class="code" href="srdef68_8h.html#4e20b1ac95c6469063cd85ff839c6c01" title="Negative value.">SR_N</a>|<a class="code" href="srdef68_8h.html#e147775240980f758cd0152a625724fe" title="Overflow value.">SR_V</a>|<a class="code" href="srdef68_8h.html#ab737dff2860e37fbd9e08c30eaa0364" title="Carry value.">SR_C</a>)) | <a class="code" href="srdef68_8h.html#7847483f951ee91343d93a74fffb13dd" title="Zero value.">SR_Z</a>;\
  CLR_S = 0;\
}
</pre></div>Generic clear memory or register. 
<p>

</div>
</div><p>
<a class="anchor" name="cabdc746fdfa7e8a587104efcd13b145"></a><!-- doxytag: member="macro68.h::LINK" ref="cabdc746fdfa7e8a587104efcd13b145" args="(R_LNK)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LINK          </td>
          <td>(</td>
          <td class="paramtype">R_LNK&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="mem68_8h.html#4eb26386c28cdc607b1fe9e6c60ca863" title="Push long.">pushl</a>(<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#30ccf2eb74279ccceb995feb6dbd4321" title="68000 address registers.">a</a>[R_LNK]); \
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#30ccf2eb74279ccceb995feb6dbd4321" title="68000 address registers.">a</a>[R_LNK] = <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#30ccf2eb74279ccceb995feb6dbd4321" title="68000 address registers.">a</a>[7]; \
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#30ccf2eb74279ccceb995feb6dbd4321" title="68000 address registers.">a</a>[7] += <a class="code" href="mem68_8h.html#491b502d64966b1a2cbf5096eebb35f3" title="Decode word and update PC.">get_nextw</a>()
</pre></div>Link (frame pointer). 
<p>

</div>
</div><p>
<a class="anchor" name="207482409eaa458a93dc02f7f89a55fe"></a><!-- doxytag: member="macro68.h::UNLK" ref="207482409eaa458a93dc02f7f89a55fe" args="(R_LNK)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UNLK          </td>
          <td>(</td>
          <td class="paramtype">R_LNK&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#30ccf2eb74279ccceb995feb6dbd4321" title="68000 address registers.">a</a>[7]=<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#30ccf2eb74279ccceb995feb6dbd4321" title="68000 address registers.">a</a>[R_LNK]; \
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#30ccf2eb74279ccceb995feb6dbd4321" title="68000 address registers.">a</a>[R_LNK]=<a class="code" href="mem68_8h.html#25d71bd3256a69045302f1d106bac627" title="Pop long.">popl</a>()
</pre></div>UNLK (frame pointer). 
<p>

</div>
</div><p>
<a class="anchor" name="437700508dff5a665d62caed6d19962a"></a><!-- doxytag: member="macro68.h::SWAP" ref="437700508dff5a665d62caed6d19962a" args="(SWP_A)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SWAP          </td>
          <td>(</td>
          <td class="paramtype">SWP_A&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
  (SWP_A) = ((<a class="code" href="type68_8h.html#10e94b422ef0c20dcdec20d31a1f5049" title="Must be an unsigned 32 bit integer.">u32</a>)(SWP_A)&gt;&gt;16) | ((SWP_A)&lt;&lt;16); \
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> = (<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a>&amp;~(<a class="code" href="srdef68_8h.html#e147775240980f758cd0152a625724fe" title="Overflow value.">SR_V</a>|<a class="code" href="srdef68_8h.html#ab737dff2860e37fbd9e08c30eaa0364" title="Carry value.">SR_C</a>|<a class="code" href="srdef68_8h.html#7847483f951ee91343d93a74fffb13dd" title="Zero value.">SR_Z</a>|<a class="code" href="srdef68_8h.html#4e20b1ac95c6469063cd85ff839c6c01" title="Negative value.">SR_N</a>)) | \
             ((!(SWP_A))&lt;&lt;<a class="code" href="srdef68_8h.html#61358487950b723851177611ac385abf" title="Zero bit number.">SR_Z_BIT</a>) | \
             (((<a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a>)(SWP_A)&gt;&gt;31)&amp;<a class="code" href="srdef68_8h.html#4e20b1ac95c6469063cd85ff839c6c01" title="Negative value.">SR_N</a>); \
}
</pre></div>Register value swapping. 
<p>

</div>
</div><p>
<a class="anchor" name="9e3dfa1ebebfd77f10b81218e221b141"></a><!-- doxytag: member="macro68.h::BSET" ref="9e3dfa1ebebfd77f10b81218e221b141" args="(V, BIT)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BSET          </td>
          <td>(</td>
          <td class="paramtype">V,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BIT&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>( (V)&amp;(1&lt;&lt;(BIT)) ) { <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= ~<a class="code" href="srdef68_8h.html#7847483f951ee91343d93a74fffb13dd" title="Zero value.">SR_Z</a>; }\
<span class="keywordflow">else</span> { (V) |= 1&lt;&lt;(BIT); <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= <a class="code" href="srdef68_8h.html#7847483f951ee91343d93a74fffb13dd" title="Zero value.">SR_Z</a>; }
</pre></div>Bit set. 
<p>

</div>
</div><p>
<a class="anchor" name="9c1e975d7c0e874a2110b6bb1c26fe1a"></a><!-- doxytag: member="macro68.h::BCLR" ref="9c1e975d7c0e874a2110b6bb1c26fe1a" args="(V, BIT)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BCLR          </td>
          <td>(</td>
          <td class="paramtype">V,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BIT&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>( (V)&amp;(1&lt;&lt;(BIT)) ) { (V) &amp;= ~(1&lt;&lt;(BIT)); <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= ~<a class="code" href="srdef68_8h.html#7847483f951ee91343d93a74fffb13dd" title="Zero value.">SR_Z</a>; }\
<span class="keywordflow">else</span> { <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= <a class="code" href="srdef68_8h.html#7847483f951ee91343d93a74fffb13dd" title="Zero value.">SR_Z</a>; }
</pre></div>Bit clear. 
<p>

</div>
</div><p>
<a class="anchor" name="09f70aac938aa9c8b83269d32d347121"></a><!-- doxytag: member="macro68.h::BCHG" ref="09f70aac938aa9c8b83269d32d347121" args="(V, BIT)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BCHG          </td>
          <td>(</td>
          <td class="paramtype">V,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BIT&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>( (V)&amp;(1&lt;&lt;(BIT)) ) { (V) &amp;= ~(1&lt;&lt;(BIT)); <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= ~<a class="code" href="srdef68_8h.html#7847483f951ee91343d93a74fffb13dd" title="Zero value.">SR_Z</a>; }\
<span class="keywordflow">else</span> { (V) |= 1&lt;&lt;(BIT); <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= <a class="code" href="srdef68_8h.html#7847483f951ee91343d93a74fffb13dd" title="Zero value.">SR_Z</a>; }
</pre></div>Bit change. 
<p>

</div>
</div><p>
<a class="anchor" name="dc0f71c5fe123b5bb3123ff29adbf8c9"></a><!-- doxytag: member="macro68.h::MOVE" ref="dc0f71c5fe123b5bb3123ff29adbf8c9" args="(MOV_A)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MOVE          </td>
          <td>(</td>
          <td class="paramtype">MOV_A&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> = (<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a>&amp;(0xFF00 | <a class="code" href="srdef68_8h.html#2037ff64b19633dfd3b54da9d05784d9" title="eXtended carry value">SR_X</a>)) \
        | (((MOV_A)==0)&lt;&lt;<a class="code" href="srdef68_8h.html#61358487950b723851177611ac385abf" title="Zero bit number.">SR_Z_BIT</a>)  | (((<a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a>)(MOV_A)&gt;&gt;31)&amp;<a class="code" href="srdef68_8h.html#4e20b1ac95c6469063cd85ff839c6c01" title="Negative value.">SR_N</a>);
</pre></div>
</div>
</div><p>
<a class="anchor" name="79a596a6a422c8d33ede561cf1fe5666"></a><!-- doxytag: member="macro68.h::SUBAW" ref="79a596a6a422c8d33ede561cf1fe5666" args="(SUB_S, SUB_A, SUB_B)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SUBAW          </td>
          <td>(</td>
          <td class="paramtype">SUB_S,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SUB_A,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SUB_B&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
          <a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a> ZOB = (SUB_A)&gt;&gt;16;\
          SUBA(SUB_S, ZOB, SUB_B);\
        }
</pre></div>
</div>
</div><p>
<a class="anchor" name="e13bda8d99705b03baf6a1b8b6036839"></a><!-- doxytag: member="macro68.h::CMPAW" ref="e13bda8d99705b03baf6a1b8b6036839" args="(CMP_A, CMP_B)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CMPAW          </td>
          <td>(</td>
          <td class="paramtype">CMP_A,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CMP_B&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
          <a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a> ZOB = (CMP_A)&gt;&gt;16;\
          CMPA( ZOB, CMP_B);\
        }
</pre></div>
</div>
</div><p>
<a class="anchor" name="62f78dccd3f300863730f230b762b17b"></a><!-- doxytag: member="macro68.h::LSR" ref="62f78dccd3f300863730f230b762b17b" args="(LSR_A, LSR_D, LSR_MSK, LSR_C)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LSR          </td>
          <td>(</td>
          <td class="paramtype">LSR_A,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LSR_D,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LSR_MSK,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LSR_C&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= 0xFF00;\
  <span class="keywordflow">if</span>((LSR_D)!=0) \
  {\
    <a class="code" href="macro68_8h.html#6854f97787c2c6fc81de10084518e83b" title="Dummy internal cycle counter.">ADDCYCLE</a>(2*(LSR_D));\
    (LSR_A) &gt;&gt;= (LSR_D)-1;\
    <span class="keywordflow">if</span>((LSR_A)&amp;(LSR_C)) <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= <a class="code" href="srdef68_8h.html#2037ff64b19633dfd3b54da9d05784d9" title="eXtended carry value">SR_X</a> | <a class="code" href="srdef68_8h.html#ab737dff2860e37fbd9e08c30eaa0364" title="Carry value.">SR_C</a>;\
    (LSR_A)&gt;&gt;=1;\
  }\
  (LSR_A) &amp;= (LSR_MSK);\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= (((LSR_A)==0)&lt;&lt;<a class="code" href="srdef68_8h.html#61358487950b723851177611ac385abf" title="Zero bit number.">SR_Z_BIT</a>) | (((<a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a>)(LSR_A)&lt;0)&lt;&lt;<a class="code" href="srdef68_8h.html#5af5c659d4673612805983337d980478" title="Negative bit number.">SR_N_BIT</a>);\
}
</pre></div>generic right shift 
<p>

</div>
</div><p>
<a class="anchor" name="32f934a87ef94acfd506fba08a9df435"></a><!-- doxytag: member="macro68.h::LSL" ref="32f934a87ef94acfd506fba08a9df435" args="(LSL_A, LSL_D, LSL_MSK)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LSL          </td>
          <td>(</td>
          <td class="paramtype">LSL_A,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LSL_D,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LSL_MSK&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= 0xFF00;\
  <span class="keywordflow">if</span>((LSL_D)!=0) \
  {\
    <a class="code" href="macro68_8h.html#6854f97787c2c6fc81de10084518e83b" title="Dummy internal cycle counter.">ADDCYCLE</a>(2*(LSL_D));\
    (LSL_A) &lt;&lt;= (LSL_D)-1;\
    <span class="keywordflow">if</span>((LSL_A)&amp;0x80000000) <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= <a class="code" href="srdef68_8h.html#2037ff64b19633dfd3b54da9d05784d9" title="eXtended carry value">SR_X</a> | <a class="code" href="srdef68_8h.html#ab737dff2860e37fbd9e08c30eaa0364" title="Carry value.">SR_C</a>;\
    (LSL_A)&lt;&lt;=1;\
  }\
  (LSL_A) &amp;= (LSL_MSK);\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= (((LSL_A)==0)&lt;&lt;<a class="code" href="srdef68_8h.html#61358487950b723851177611ac385abf" title="Zero bit number.">SR_Z_BIT</a>) | (((<a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a>)(LSL_A)&lt;0)&lt;&lt;<a class="code" href="srdef68_8h.html#5af5c659d4673612805983337d980478" title="Negative bit number.">SR_N_BIT</a>);\
}
</pre></div>Generic left shift. 
<p>

</div>
</div><p>
<a class="anchor" name="b68fd08adcd92db17b1105faedc53039"></a><!-- doxytag: member="macro68.h::ROR" ref="b68fd08adcd92db17b1105faedc53039" args="(ROR_A, ROR_D, ROR_MSK, ROR_SZ)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ROR          </td>
          <td>(</td>
          <td class="paramtype">ROR_A,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_D,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_MSK,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_SZ&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= 0xFF00 | <a class="code" href="srdef68_8h.html#2037ff64b19633dfd3b54da9d05784d9" title="eXtended carry value">SR_X</a>;\
  <span class="keywordflow">if</span>((ROR_D)!=0) \
  {\
    <a class="code" href="macro68_8h.html#6854f97787c2c6fc81de10084518e83b" title="Dummy internal cycle counter.">ADDCYCLE</a>(2*(ROR_D));\
    ROR_D &amp;= (ROR_SZ)-1;\
    <span class="keywordflow">if</span>((ROR_A)&amp;(1&lt;&lt;((ROR_D)-1+32-(ROR_SZ)))) <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= <a class="code" href="srdef68_8h.html#ab737dff2860e37fbd9e08c30eaa0364" title="Carry value.">SR_C</a>;\
    (ROR_A) &amp;= (ROR_MSK);\
    (ROR_A) = ((ROR_A)&gt;&gt;(ROR_D)) + ((ROR_A)&lt;&lt;((ROR_SZ)-(ROR_D)));\
  }\
  (ROR_A) &amp;= (ROR_MSK);\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= (((ROR_A)==0)&lt;&lt;<a class="code" href="srdef68_8h.html#61358487950b723851177611ac385abf" title="Zero bit number.">SR_Z_BIT</a>) | (((<a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a>)(ROR_A)&lt;0)&lt;&lt;<a class="code" href="srdef68_8h.html#5af5c659d4673612805983337d980478" title="Negative bit number.">SR_N_BIT</a>);\
}
</pre></div>Generic right rotation. 
<p>

</div>
</div><p>
<a class="anchor" name="9256b88e92d07a399381ca524df5ee31"></a><!-- doxytag: member="macro68.h::ROL" ref="9256b88e92d07a399381ca524df5ee31" args="(ROR_A, ROR_D, ROR_MSK, ROR_SZ)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ROL          </td>
          <td>(</td>
          <td class="paramtype">ROR_A,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_D,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_MSK,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_SZ&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= 0xFF00 | <a class="code" href="srdef68_8h.html#2037ff64b19633dfd3b54da9d05784d9" title="eXtended carry value">SR_X</a>;\
  <span class="keywordflow">if</span>((ROR_D)!=0) \
  {\
    <a class="code" href="macro68_8h.html#6854f97787c2c6fc81de10084518e83b" title="Dummy internal cycle counter.">ADDCYCLE</a>(2*(ROR_D));\
    ROR_D &amp;= (ROR_SZ)-1;\
    <span class="keywordflow">if</span>((ROR_A)&amp;(1&lt;&lt;(32-(ROR_D)))) <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= <a class="code" href="srdef68_8h.html#ab737dff2860e37fbd9e08c30eaa0364" title="Carry value.">SR_C</a>;\
    (ROR_A) &amp;= (ROR_MSK);\
    (ROR_A) = ((ROR_A)&lt;&lt;(ROR_D)) + ((ROR_A)&gt;&gt;((ROR_SZ)-(ROR_D)));\
  }\
  (ROR_A) &amp;= (ROR_MSK);\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= (((ROR_A)==0)&lt;&lt;<a class="code" href="srdef68_8h.html#61358487950b723851177611ac385abf" title="Zero bit number.">SR_Z_BIT</a>) | (((<a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a>)(ROR_A)&lt;0)&lt;&lt;<a class="code" href="srdef68_8h.html#5af5c659d4673612805983337d980478" title="Negative bit number.">SR_N_BIT</a>);\
}
</pre></div>Generic left rotation. 
<p>

</div>
</div><p>
<a class="anchor" name="c345ba876fb038f47a015001da1552f5"></a><!-- doxytag: member="macro68.h::ROXR" ref="c345ba876fb038f47a015001da1552f5" args="(ROR_A, ROR_D, ROR_MSK, ROR_SZ)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ROXR          </td>
          <td>(</td>
          <td class="paramtype">ROR_A,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_D,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_MSK,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_SZ&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
  <a class="code" href="type68_8h.html#10e94b422ef0c20dcdec20d31a1f5049" title="Must be an unsigned 32 bit integer.">u32</a> ROR_X = (<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a>&gt;&gt;<a class="code" href="srdef68_8h.html#1bdabe3e9a0a2adffdce5ab1b48c8e30" title="eXtended carry bit number">SR_X_BIT</a>)&amp;1;\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= 0xFF00;\
  <span class="keywordflow">if</span>((ROR_D)!=0) \
  {\
    <a class="code" href="macro68_8h.html#6854f97787c2c6fc81de10084518e83b" title="Dummy internal cycle counter.">ADDCYCLE</a>(2*(ROR_D));\
    ROR_D &amp;= (ROR_SZ)-1;\
    <span class="keywordflow">if</span>((ROR_A)&amp;(1&lt;&lt;((ROR_D)-1+32-(ROR_SZ)))) <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= <a class="code" href="srdef68_8h.html#ab737dff2860e37fbd9e08c30eaa0364" title="Carry value.">SR_C</a> | <a class="code" href="srdef68_8h.html#2037ff64b19633dfd3b54da9d05784d9" title="eXtended carry value">SR_X</a>;\
    (ROR_A) &amp;= (ROR_MSK);\
    (ROR_A) = ((ROR_A)&gt;&gt;(ROR_D)) + ((ROR_A)&lt;&lt;((ROR_SZ)-(ROR_D)+1));\
    (ROR_A) |= (ROR_X)&lt;&lt;(32-(ROR_D));\
  }\
  (ROR_A) &amp;= (ROR_MSK);\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= (((ROR_A)==0)&lt;&lt;<a class="code" href="srdef68_8h.html#61358487950b723851177611ac385abf" title="Zero bit number.">SR_Z_BIT</a>) | (((<a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a>)(ROR_A)&lt;0)&lt;&lt;<a class="code" href="srdef68_8h.html#5af5c659d4673612805983337d980478" title="Negative bit number.">SR_N_BIT</a>);\
}
</pre></div>Generic right extend-bit rotation. 
<p>

</div>
</div><p>
<a class="anchor" name="fc5f222e265883f0ef3153798efa2cce"></a><!-- doxytag: member="macro68.h::ROXL" ref="fc5f222e265883f0ef3153798efa2cce" args="(ROR_A, ROR_D, ROR_MSK, ROR_SZ)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ROXL          </td>
          <td>(</td>
          <td class="paramtype">ROR_A,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_D,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_MSK,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ROR_SZ&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{\
  <a class="code" href="type68_8h.html#10e94b422ef0c20dcdec20d31a1f5049" title="Must be an unsigned 32 bit integer.">u32</a> ROR_X = (<a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a>&gt;&gt;<a class="code" href="srdef68_8h.html#1bdabe3e9a0a2adffdce5ab1b48c8e30" title="eXtended carry bit number">SR_X_BIT</a>)&amp;1;\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> &amp;= 0xFF00;\
  <span class="keywordflow">if</span>((ROR_D)!=0) \
  {\
    <a class="code" href="macro68_8h.html#6854f97787c2c6fc81de10084518e83b" title="Dummy internal cycle counter.">ADDCYCLE</a>(2*(ROR_D));\
    ROR_D &amp;= (ROR_SZ)-1;\
    <span class="keywordflow">if</span>((ROR_A)&amp;(1&lt;&lt;(32-(ROR_D)))) <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= <a class="code" href="srdef68_8h.html#ab737dff2860e37fbd9e08c30eaa0364" title="Carry value.">SR_C</a> | <a class="code" href="srdef68_8h.html#2037ff64b19633dfd3b54da9d05784d9" title="eXtended carry value">SR_X</a> ;\
    (ROR_A) &amp;= (ROR_MSK);\
    (ROR_A) = ((ROR_A)&lt;&lt;(ROR_D)) + ((ROR_A)&gt;&gt;((ROR_SZ)-(ROR_D)+1));\
    (ROR_A) |= (ROR_X)&lt;&lt;((ROR_D)-1+(32-(ROR_SZ)));\
  }\
  (ROR_A) &amp;= (ROR_MSK);\
  <a class="code" href="emu68_8h.html#f7cf07d04cacbed7604dbf6b432bed3c" title="EMU68 internal 68K register set structure.">reg68</a>.<a class="code" href="structreg68__t.html#b1fe12b1ee7fa5e52077801c5618f20d" title="68000 Status Register.">sr</a> |= (((ROR_A)==0)&lt;&lt;<a class="code" href="srdef68_8h.html#61358487950b723851177611ac385abf" title="Zero bit number.">SR_Z_BIT</a>) | (((<a class="code" href="type68_8h.html#0ce6887c26c1c49ad3be5710dd42bfd6" title="Must be an signed 32 bit integer.">s32</a>)(ROR_A)&lt;0)&lt;&lt;<a class="code" href="srdef68_8h.html#5af5c659d4673612805983337d980478" title="Negative bit number.">SR_N_BIT</a>);\
}
</pre></div>Generic left extend-bit rotation. 
<p>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Sep 15 03:58:05 2009 for sc68fordevelopers by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>