<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ASM8 and ASM11 v7.70 in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211499#M18198</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;Some more enhancements for ASM8/11 since last I wrote here.&amp;nbsp; Added the following:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;* MDO ... MLOOP for creating consecutive independent local loops inside a macro.&amp;nbsp; MLOOP allows for optional termination value.&amp;nbsp; It can be used to easily write significantly faster-executing, smaller, and better code-generating macros.&amp;nbsp; See example listing at the end.&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;* Improved MTOP now allows for optional termination value (like with MLOOP).&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;* == (instead of &lt;SPAN class="lia-unicode-emoji" title=":grinning_face_with_big_eyes:"&gt;&lt;LI-EMOJI id="lia_grinning-face-with-big-eyes" title=":grinning_face_with_big_eyes:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt; for case-sensitive macro parameter comparisons.&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;* MREQ to specify required macro parameters with optional related error message.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;* MSTR to convert parameter(s) to string (if not already a string).&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;* MERROR (combines #Error with mexit).&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;* IFB/IFNB aliases for IFNOPARM/IFPARM&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;* #EXIT any #INCLUDE file before reaching the end-of-file.&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;* New internal symbols (eg., :TEMP).&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Links: &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow noopener noreferrer" target="_blank"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow noopener noreferrer" target="_blank"&gt;ASM11&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;P.S. Keep me posted if you find any "undocumented behavior".&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Listing for MDO .. MLOOP example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;    6                Toggle macro     PinName[,PinName]*    7                       mreq      1:PinName[,PinName]*    8                       psha    9                       mdo   10                       mswap     1,:mloop   11                       lda       ~1~   12                       eor       #~1~_   13                       sta       ~1~   14                       mloop     :mloop+:{:mloop+1}   15                       pula   16                       endm   23                       @toggle   XXX,YYY   23                       mreq      1:PinName[,PinName]*   23 182C:87   [ 2]        psha   23                       mdo   23                       mswap     1,:mloop   23 182D:B600 [ 3]        lda       XXX   23 182F:A802 [ 2]        eor       #XXX_   23 1831:B700 [ 3]        sta       XXX   23                       mloop     :mloop+:2   23                       mswap     1,:mloop   23 1833:B600 [ 3]        lda       YYY   23 1835:A804 [ 2]        eor       #YYY_   23 1837:B700 [ 3]        sta       YYY   23                       mloop     :mloop+:3   23 1839:86   [ 3]        pula   23                       endm&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 02 Dec 2010 06:32:51 GMT</pubDate>
    <dc:creator>tonyp</dc:creator>
    <dc:date>2010-12-02T06:32:51Z</dc:date>
    <item>
      <title>ASM8 v1.33 &amp; ASM11 v2.10 updated available for download</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211461#M18160</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN style="font-size: 3;"&gt;Download the latest ASM8 (v1.33) here: &lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.aspisys.com%2Ffreeasm8.zip" rel="nofollow" target="_blank"&gt;http://www.aspisys.com/freeasm8.zip&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;SPAN style="font-size: 3;"&gt;&lt;BR /&gt;I have also decided to make publicly available the most recent version of ASM11 (v2.10) and whatever updates may follow. This version has many features not available on the last public release (v1.84). Read the included PDF for more. Get it here: &lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.aspisys.com%2Ffreeasm11.zip" rel="nofollow" target="_blank"&gt;http://www.aspisys.com/freeasm11.zip&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 3;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 3;"&gt;In both cases, three executables are included (DOS, Win32, and Linux i386).&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="message-edit-history"&gt;&lt;SPAN class="edit-author"&gt;Message Edited by tonyp on&lt;/SPAN&gt; &lt;SPAN class="local-date"&gt;2009-08-27&lt;/SPAN&gt; &lt;SPAN class="local-time"&gt;07:46 PM&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Aug 2009 23:45:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211461#M18160</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2009-08-27T23:45:23Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 v1.53 &amp; ASM11 v2.20 are out</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211462#M18161</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Added support for 32-bit symbols in the Win32 and Linux versions only.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Nov 2009 08:12:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211462#M18161</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2009-11-12T08:12:36Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 &amp; ASM11</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211463#M18162</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A bug fix relating to 32-bit conditional evaluation for &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_blank"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow" target="_blank"&gt;ASM11&lt;/A&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Nov 2009 21:54:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211463#M18162</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2009-11-24T21:54:42Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 &amp; ASM11</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211464#M18163</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Added option -U to define an optional output directory (Win32/Linux only).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_self"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow" target="_self"&gt;ASM11&lt;/A&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Nov 2009 17:14:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211464#M18163</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2009-11-25T17:14:35Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 &amp; ASM11 :cycles internal symbol added to be used by code</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211465#M18164</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P class="MsoBodyText2"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif;"&gt;Added the following&lt;/SPAN&gt; internal symbol to &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow noopener noreferrer" target="_blank"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow noopener noreferrer" target="_blank"&gt;ASM11&lt;/A&gt;:&lt;/P&gt;&lt;P class="MsoBodyText2"&gt;&lt;/P&gt;&lt;P class="MsoBodyText2"&gt;&lt;STRONG&gt;&lt;SPAN&gt;:CYCLES&lt;/SPAN&gt;&lt;/STRONG&gt; &lt;SPAN&gt;which returns the current value of the cycle counter.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoBodyText2"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The cycles counter is reset to zero as soon as it is accessed.&lt;SPAN&gt; &lt;/SPAN&gt; To count cycles for a section of code, you must access :cycles twice, once before the code section to reset the counter to zero, and once right after the code section to get the accumulated cycles.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;SPAN&gt;Because of the auto-reset on access, if you need to use the same value in more than one place at a time (for example, both in code and in a #Message directive), you must assign it to a label first, then use the label.&amp;nbsp; If you simply want to display it with #Message you can use it directly.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Example use for the HC08 that automatically calculates delay constant (see ASM11 manual for HC11 equivalent):&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoBodyText2"&gt;&lt;/P&gt;&lt;PRE&gt;

&lt;/PRE&gt;&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Delay1ms&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;
&lt;TD&gt;proc&lt;/TD&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;#Cycles&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;ldhx&lt;/TD&gt;
&lt;TD&gt;#DELAY@@&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;#Cycles&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Loop@@&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;
&lt;TD&gt;aix &lt;/TD&gt;
&lt;TD&gt;#-1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;cphx&lt;/TD&gt;
&lt;TD&gt;#0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;bne &lt;/TD&gt;
&lt;TD&gt;Loop@@&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;#temp :cycles&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD&gt;rts&lt;/TD&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;DELAY@@&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;
&lt;TD&gt;equ &lt;/TD&gt;
&lt;TD&gt;BUS_KHZ-:cycles-:ocycles/:temp&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The obvious advantage is that if you alter the above loop code (as needed) it will still be timed correctly without requiring a manual adjustment of the delay constant.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Dec 2009 00:40:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211465#M18164</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2009-12-01T00:40:35Z</dc:date>
    </item>
    <item>
      <title>Latest ASM8 &amp; ASM11</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211466#M18165</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Some of the latest changes (some are available only in the Win32/Linux versions) for &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_self"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow" target="_self"&gt;ASM11&lt;/A&gt;:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. Added #UNDEF (to be used with extreme caution)&lt;/P&gt;&lt;P&gt;2. Minor bug fixes (e.g., division by zero in {...} now shows ???)&lt;/P&gt;&lt;P&gt;3. Added new curly formats (6)..(9) for 32-bit labels.&lt;/P&gt;&lt;P&gt;4. Added #WARN and #NOWARN from within code (same as command line option -WRN)&lt;/P&gt;&lt;P&gt;5. #PUSH and #PULL now save/restore the active segment as well.&amp;nbsp; Useful for general-purpose include files that may relocate.&lt;/P&gt;&lt;P&gt;6. Added :AB internal symbol which returns the number of address bytes used (3 for MMU, 2 for normal).&lt;/P&gt;&lt;P&gt;7. JMP-based instructions (including extras like JEQ) will be automatically corrected for the current page (in MMU mode) if both the source and the destination addresses fall on the same page and within the page limits.&amp;nbsp; Makes it possible to use JMPs with paged code but without warnings if used within the page limits.&amp;nbsp; Warnings will still show if jumping from/to outside the page.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#6 and #7 are not found in ASM11.&amp;nbsp; #6 makes it possible to auto-adjust stack offsets for auto CALL/JSR and RTC/RTS selection based on current MMU mode.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;(See updated &lt;A href="http://www.aspisys.com/code/hc08/stkmth32.html" rel="nofollow" target="_self"&gt;stkmth32.sub&lt;/A&gt; example for how to write code to be loaded in either normal or paged memory without any source code changes.)&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 09 Jan 2010 01:22:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211466#M18165</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-01-09T01:22:55Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 adds optional auto stack offset increment by one capability</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211467#M18166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The latest version of &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow noopener noreferrer" target="_blank"&gt;ASM8&lt;/A&gt; (Win32/Linux versions only) adds the following directives:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;STRONG&gt;&lt;SPAN&gt;#SP&lt;/SPAN&gt;&lt;/STRONG&gt; &lt;SPAN&gt;and&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;#SP1&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;#SP1&lt;/SPAN&gt; &lt;SPAN&gt;automatically adds one to all SP indexed offsets.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;#SP&lt;/SPAN&gt; &lt;SPAN&gt;cancels&lt;/SPAN&gt; &lt;SPAN&gt;#SP1&lt;/SPAN&gt; &lt;SPAN&gt;(reverts to default/normal operation).&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;When enabled, all SP indexed instructions use the same offsets as their corresponding X indexed instructions right after a&lt;/SPAN&gt; &lt;SPAN&gt;TSX&lt;/SPAN&gt; &lt;SPAN&gt;instruction.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt; This allows to use the exact same offsets for both addressing modes to access the same memory location(s)!&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;#PUSH&lt;/SPAN&gt; &lt;SPAN&gt;and&lt;/SPAN&gt; &lt;SPAN&gt;#PULL&lt;/SPAN&gt; &lt;SPAN&gt;will save/restore the current setting of this option.&lt;/SPAN&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;The assembler always starts in&lt;/SPAN&gt; &lt;SPAN&gt;#SP&lt;/SPAN&gt; &lt;SPAN&gt;mode (no auto correction).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;For example, both LDA instructions in the code sample below will access the exact same memory when in #SP1 mode:&lt;/P&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;
?A                  equ       0

                    #sp1
                   
                    psha
                    tsx

                    lda       ?A,x
                    lda       ?A,sp&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jan 2010 18:04:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211467#M18166</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-01-20T18:04:00Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 adds optional expression to #SP and #SP1 directives!</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211468#M18167</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;On second look, I thought something was missing from the last update.&amp;nbsp; With this one, I hope this feature has become a bit more useful.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I added an optional expression parameter to either #SP or #SP1.&amp;nbsp; This allows automatic addition of an arbitrary number to the SP offset.&amp;nbsp; This means, you can keep your offset labels clean from messy add-on constants at any time, such as when stack size is altered within a routine or when calling subroutines that access the parent routine's stack.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Although #SP1 is effectively the same as #SP with parameter 1, the two have different purposes. #SP with offset should be used to adjust for stack changes or subroutine nesting &lt;EM&gt;whereas #SP1 is meant to take care of zero-based vs. one-based symbolic (or numeric) offsets.&amp;nbsp; So, for zero-based offsets you should be using #SP1 with whatever offset is required for taking care of stack size changes.&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For this to work even easier, an extra internal symbol was necessary (&lt;IMG alt=":smileyfrustrated:" class="emoticon emoticon-smileyfrustrated" id="smileyfrustrated" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-frustrated.gif" title="Smiley Frustrated" /&gt;P) which returns the currently effective offset (same for either #SP or #SP1 mode).&amp;nbsp; You can use it to adjust the SP processing relative to a previous condition, so you don't have to keep a mental count of where things should be.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#PUSH and #PULL will save/restore this offset, also.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;(Should you find any errors, I expect to hear from you.)&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example code follows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;
;*******************************************************************************
; Example usage for #SP and #SP1 with optional offset
;*******************************************************************************

; Use #SP for one-based offsets (normal)
; Use #SP1 for zero-based offsets (same as if with X indexed mode)
; Optional offset is separate from #SP1 offset (added on top of it)

                    org       *

?A                  equ       0                   ;zero-based offsets

                    #sp1                          ;(SP1 does not change :SP offset)

                    psha
                    tsx                           ;HX -&amp;gt; stacked data

                    lda       ?A,sp
                    lda       ?A,x

                    call      Sub                 ;near or far (MMU) subroutine

                    pula
                    bra       *

;*******************************************************************************
                    #sp1      :ab                 ;Adjust SP offset for RTS/RTC

Sub                 lda       ?A,sp               ;lda ?A+2,sp OR lda ?A+3,sp (MMU)
                    bsr       SubSub              ;yet another (local) subroutine
                    rtc

;*******************************************************************************
                    #sp1      :sp+2               ;Adjust SP offset for RTS (+2)

SubSub              lda       ?A,sp               ;lda ?A+4,sp

                    #sp1      :sp+1               ;account for stacked A (+1)

                    psha
                    inc       ?A,sp               ;inc ?A+5,sp
                    lda       ?A,sp               ;lda ?A+5,sp
                    cmpa      #3
                    blo       ?SubSub.AOK
                    lda       #3
                    sta       ?A,sp               ;sta ?A+5,sp
?SubSub.AOK         pula

                    #sp1      :sp-1

                    lsl       ?A,sp               ;lsl ?A+4,sp
                    rts

;*******************************************************************************
                    #sp                           ;restore normal SP processing
                                                  ;(no offset, no auto-increment)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jan 2010 00:07:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211468#M18167</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-01-22T00:07:24Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 adds #SPAUTO for (mostly) automatic SP adjustment.</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211469#M18168</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A natural next step was to add a method for auto-adjusting the offset based on the encountered instructions that mess with the SP.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The #SPAUTO does that.&amp;nbsp; It works together with #SP and #SP1.&amp;nbsp; &lt;SPAN&gt;More details in the manual.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example use:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;
 &lt;FONT size="1"&gt;1      F600                                     org       *
    2                          
     3      0001                 ?                   equ       1
    4      0001                 ?H                  next      ?
    5      0002                 ?X                  next      ?
    6      0003                 ?A                  next      ?
    7                          
     8 F600:8789 8B         [ 6] Sub                 push
    9                          
    10                                               #spauto
   11                          
    12 F603:A7F6            [ 2]                     ais       #-10                ;allocate some temp variables
   13                          
    14 F605:89              [ 2]                     pshx
   15 F606:9EE6 0E         [ 4]                     lda       ?A,sp
   16 F609:9EE1 01         [ 4]                     cmpa      1,asp
   17 F60C:88              [ 2]                     pulx
   18                          
    19 F60D:A705            [ 2]                     ais       #5                  ;de-allocate some variables
   20                          
    21 F60F:9EE6 08         [ 4]                     lda       ?A,sp
   22 F612:9EE1 07         [ 4]                     cmpa      ?X,sp
   23                          
    24 F615:A705            [ 2]                     ais       #5
   25                          
    26 F617:9EE6 03         [ 4]                     lda       ?A,sp
   27 F61A:9EE1 02         [ 4]                     cmpa      ?X,sp
   28                          
    29                                     #ifnz :sp
   31                                     #endif
   32                          
    33 F61D:8A88 86         [ 6]                     pull
   34 F620:81              [ 4]                     rtc
   35                          
    36                                               #sp&lt;/FONT&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&amp;nbsp;You can even use it to check for balanced stack instructions.&amp;nbsp; (The #ifnz :sp above would issue an error if there is a mismatch.)&amp;nbsp; Example:&lt;BR /&gt;&lt;PRE&gt;
          #ifnz :sp
                    #Error    Stack is unbalanced by {:sp} bytes
          #endif&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;You still need to manually fiddle with the offset (#SP like before), if the stack depth is changed in other ways.&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Feb 2010 06:31:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211469#M18168</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-02-02T06:31:28Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 v2.50</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211470#M18169</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please download the latest (&lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_blank"&gt;ASM8&lt;/A&gt;) which solves all known issues relating to the latest additions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Feb 2010 07:30:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211470#M18169</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-02-04T07:30:27Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 v3.12 and ASM11 v3.10 are out</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211471#M18170</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are several improvements for both &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow" target="_blank"&gt;ASM11&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_blank"&gt;ASM8&lt;/A&gt; assemblers (Win32/Linux versions) since last time I wrote here.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(Also, several working assembly code examples utilizing the various features have been updated and can be found starting from &lt;A href="http://www.aspisys.com/code" rel="nofollow" target="_blank"&gt;here.)&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 May 2010 17:38:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211471#M18170</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-05-04T17:38:12Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 and ASM11 add simple user-defined macro capability (BETA)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211472#M18171</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;ABOUT MACROS (THIS IS A BETA FEATURE, so expect to find errors.)&lt;BR /&gt;------------&lt;BR /&gt;&lt;BR /&gt;Macro-enabled versions of the assemblers are named ASMx (where x is 8 or 11).&lt;BR /&gt;If you wish to use the previous stable non-macro enabled version, rename the&lt;BR /&gt;files ASMx_350.EXE to ASMx.EXE [Win32] and ASMx_350 to ASMx [Linux] (where x is&lt;BR /&gt;8 or 11, depending on the assembler used).&lt;BR /&gt;(The older versions are included until the new ones are stable enough.)&lt;BR /&gt;&lt;BR /&gt;The normal documentation may not be updated to include macros until they are&lt;BR /&gt;found to work correctly in all respects.&lt;BR /&gt;&lt;BR /&gt;Macro usage description.&lt;BR /&gt;&lt;BR /&gt;To define:&lt;BR /&gt;&lt;BR /&gt;MacroLabel MACRO&amp;nbsp;&amp;nbsp;&amp;nbsp; optional parm description (parms here are ignored, actually)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; macro body [any text (normally code) - unlimited number of lines]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; macro body&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; macro body&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; macro body&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; macro body&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDM&lt;BR /&gt;&lt;BR /&gt;To use:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @MacroLabel&amp;nbsp;&amp;nbsp;&amp;nbsp; Optional Parm1&amp;nbsp; !Optional Parm2 etc.&lt;BR /&gt;&lt;BR /&gt;(@MacroLabel is located in the opcode column, and it may have a label field, if&lt;BR /&gt;needed.)&lt;BR /&gt;&lt;BR /&gt;During invocation, 2nd and following parms always begin with the ! (exclamation&lt;BR /&gt;point).&amp;nbsp; An exclamation point is normally used for decimal number definition&lt;BR /&gt;which is the default number base, so there will never be a need to use it within&lt;BR /&gt;a parm.&amp;nbsp; Why not use comma or other symbols, you may ask.&amp;nbsp; Simple answer: For&lt;BR /&gt;flexibility.&amp;nbsp; Commas can be part of the parm to be used in instructions.&lt;BR /&gt;&lt;BR /&gt;For example:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @mymacro&amp;nbsp; 1,sp!2,x&lt;BR /&gt;&lt;BR /&gt;are valid parms to be used with a macro body like this:&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp; ~1~&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp;&amp;nbsp; ~2~&lt;BR /&gt;&lt;BR /&gt;Parms are simple text replacements within the macro body.&amp;nbsp; Any part of the&lt;BR /&gt;assembly instruction can be affected by the parms, even the label and opcode&lt;BR /&gt;itself, or even string contents.&lt;BR /&gt;&lt;BR /&gt;When inside the macro definition:&lt;BR /&gt;&lt;BR /&gt;~0~ thru ~9~ are placeholders which correspond to the current macro invocation's&lt;BR /&gt;actual parameters.&lt;BR /&gt;&lt;BR /&gt;~0~ is reserved for the macro name itself.&amp;nbsp; ~1~ thru ~9~ are macro parameters.&lt;BR /&gt;&lt;BR /&gt;$$$ is a placeholder for macro-local labels.&amp;nbsp; For example:&lt;BR /&gt;&lt;BR /&gt;Loop$$$ ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bra Loop$$$&lt;BR /&gt;&lt;BR /&gt;will be correct no matter how many times the macro is invoked.&amp;nbsp; The $$$ is&lt;BR /&gt;replaced with the unique number of the current macro invocation, and a special&lt;BR /&gt;control character to prevent unwanted collisions with user-defined symbols.&lt;BR /&gt;&lt;BR /&gt;Parms can be used in labels, also.&lt;BR /&gt;&lt;BR /&gt;caseKey&amp;nbsp;&amp;nbsp; macro&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Key&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cbeqa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #~1~,Case~1~&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cbeqa&amp;nbsp;&amp;nbsp; &amp;nbsp;#~2~,Case~2~&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rts&lt;BR /&gt;&lt;BR /&gt;Case~1~&amp;nbsp;&amp;nbsp; ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rts&lt;BR /&gt;&lt;BR /&gt;Case~2~&amp;nbsp;&amp;nbsp; ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rts&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endm&lt;BR /&gt;&lt;BR /&gt;invoked as:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @caseKey ESC !DEL&lt;BR /&gt;&lt;BR /&gt;(note the ! which separates the second parm from the first.&lt;BR /&gt;Spaces in parms are copied also, but if they are trailing it usually poses no&lt;BR /&gt;problem, unless inside strings.&lt;BR /&gt;&lt;BR /&gt;You could also do: @caseKey ESC!DEL&lt;BR /&gt;(no spaces between parms).&amp;nbsp; But @caseKey ESC ! DEL&lt;BR /&gt;will make the second parm " DEL" (with a leading space) which will cause&lt;BR /&gt;problems.&lt;BR /&gt;&lt;BR /&gt;Restrictions (possibly incomplete list):&lt;BR /&gt;&lt;BR /&gt;* Macro names are always case-insensitive (just like regular language mnemonics).&lt;BR /&gt;* Macros cannot #Include files.&lt;BR /&gt;* Macros cannot define other macros.&lt;BR /&gt;* Macros cannot invoke other macros.&lt;BR /&gt;* Macro names are always visible (they cannot be made local with ?labels).&lt;BR /&gt;* While the macro is being defined (between MACRO .. ENDM), no code is parsed.&lt;BR /&gt;&amp;nbsp; (Syntax or other errors will only appear when the macro is invoked.)&lt;BR /&gt;* When using parms inside labels or as opcodes, expect to see formatting issues&lt;BR /&gt;&amp;nbsp; in the corresponding listing lines.&amp;nbsp; This is expected behavior.&lt;BR /&gt;---&lt;BR /&gt;* Macro names do not conflict with normal labels.&amp;nbsp; They have their own namespace.&lt;BR /&gt;* The @ symbol is used to invoke a macro.&amp;nbsp; No conflict with opcode names.&lt;BR /&gt;* Unlimited number of macro definitions (memory permitting).&lt;BR /&gt;* Unlimited size of each macro (memory permitting).&lt;BR /&gt;&lt;BR /&gt;Hope you like these changes, but please let me know of any issues you encounter.&lt;BR /&gt;I can't possibly attempt to solve any problems if I don't at least know about&lt;BR /&gt;them.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Links: &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_blank"&gt;ASM8&lt;/A&gt; or &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow" target="_blank"&gt;ASM11&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 22 May 2010 19:35:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211472#M18171</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-05-22T19:35:54Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 and ASM11 macro-related improvements (still BETA but getting better)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211473#M18172</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Added the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* &lt;FONT face="courier new,courier"&gt;#PARMS&lt;/FONT&gt; to allow changing or restoring the macro parameter separator.&amp;nbsp; Default separator now is comma (for compatibility with most other assemblers.)&lt;/P&gt;&lt;P&gt;* &lt;FONT face="courier new,courier"&gt;#DROP&lt;/FONT&gt; to delete one or more macros (separated by commas).&lt;/P&gt;&lt;P&gt;* File-local macros (?labels)&lt;/P&gt;&lt;P&gt;* Additional macro-relative line number display in errors when expanding macros (easier to locate errors, if macro fails.)&lt;/P&gt;&lt;P&gt;* &lt;FONT face="courier new,courier"&gt;#IFPARM&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;#IFNOPARM&lt;/FONT&gt; conditionals (only from within macros) to check for parameter presence.&amp;nbsp; Can be used to display expected macro usage, or for having macros with optional parameters.&lt;/P&gt;&lt;P&gt;* Several bug fixes related to macros.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For more details, read the macro.txt file in the related archive.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Links: &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_blank"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow" target="_blank"&gt;ASM11&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 May 2010 23:57:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211473#M18172</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-05-24T23:57:25Z</dc:date>
    </item>
    <item>
      <title>Re: More on ASM8 and ASM11 macros</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211474#M18173</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Some last minute improvements.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* Added &lt;FONT face="courier new,courier"&gt;#MLISTON&lt;/FONT&gt; or &lt;FONT face="courier new,courier"&gt;#MLIST&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;#MLISTOFF&lt;/FONT&gt; or &lt;FONT face="courier new,courier"&gt;#NOMLIST&lt;/FONT&gt; directives for turning on/off the macro expansion in listings.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also prepared some &lt;A href="http://www.aspisys.com/code/hc08/macros.html" rel="nofollow" target="_blank"&gt;example macros&lt;/A&gt; to see some of the possibilities.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Latest versions &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_blank"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow" target="_blank"&gt;ASM11&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 May 2010 00:34:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211474#M18173</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-05-28T00:34:23Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 and ASM11 bug fix and new conditional</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211475#M18174</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Fixes/Additions:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* A small bug fix introduced in 4.0x with serious consequences, ie., false error "Symbol contains Invalid characters".&lt;/P&gt;&lt;P&gt;* Added &lt;FONT face="courier new,courier"&gt;#IFMDEF&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;#IFNOMDEF&lt;/FONT&gt; for checking if a macro is defined or not.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Links: &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_blank"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow" target="_blank"&gt;ASM11&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 May 2010 16:00:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211475#M18174</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-05-28T16:00:49Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 and ASM11 adds macro chaining</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211476#M18175</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;One more (hopefully useful) update.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* A macro can now jump to another macro (this is not the same as nesting.)&amp;nbsp; Once the new macro is started it will never return to the original one.&amp;nbsp; This can be used to combine certain macros, or for creating loops (by jumping to same macro), like the example provided below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;FONT size="1"&gt;FillMem             macro     From,To,Value       ;Fill a memory range with value
          #ifnoparm ~3~
                    #Error    Usage: @~0~ From,To,Value
                    mexit
          #endif

          #if ~1~ &amp;gt; ~2~
                    mexit                         ;termination when "To" reached
          #endif
                    org       ~1~                 ;at specified location
                    fcb       ~3~                 ;place value

                    @~0~      {~1~+1(h)},~2~,~3~  ;repeat with next location
                    endm

;-------------------------------------------------------------------------------
                    @FillMem  $8000,$81FF,$AA     ;test expansion of macro
;-------------------------------------------------------------------------------
&lt;/FONT&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* Labels and macro invocation parameters now understand expressions in curly brackets (like it is with strings).&amp;nbsp; This allows creating labels dynamically.&amp;nbsp; &lt;EM&gt;(Using simply placeholders when looping will eventually make the "counter" parameter string too long and cause various syntax errors, while using expressions will always keep the size the same.)&lt;/EM&gt;&amp;nbsp; For example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;FONT size="1"&gt;     #CaseOn                       ;to use actual macro name case

Bit                 macro     number
~0~{~1~}.           equ       ~1~
~0~{~1~}_           equ       1&amp;lt;~1~
          #ifz ~1~
                    mexit
          #endif
                    @~0~      {~1~-1}
                    endm

;-------------------------------------------------------------------------------
                    @bit     31                   ;test macro expansion
;-------------------------------------------------------------------------------
&lt;/FONT&gt;&lt;/PRE&gt;&lt;P&gt;&lt;FONT size="1"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Should you find any issues, let me know.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Links for v4.51: &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow noopener noreferrer" target="_blank"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow noopener noreferrer" target="_blank"&gt;ASM11&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 May 2010 15:52:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211476#M18175</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-05-30T15:52:17Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 and ASM11 v4.60 (LOOKS STABLE)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211477#M18176</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just a couple of minor enhancements.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* &lt;SPAN&gt;Macros are invoked using the&lt;/SPAN&gt; &lt;STRONG&gt;&lt;SPAN&gt;@MacroName&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;SPAN&gt;[,parm]&lt;/SPAN&gt;&lt;/STRONG&gt; &lt;SPAN&gt;syntax.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt; The macro name may be followed by a comma and any single character.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt; If this option is found, then the character right after the comma will act as a one-time parameter delimiter (just for this macro call.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt; The&lt;/SPAN&gt; &lt;SPAN&gt;#PARMS&lt;/SPAN&gt; &lt;SPAN&gt;defined delimiter will not be affected.)&amp;nbsp; For example:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;@macro&amp;nbsp;&amp;nbsp; 1,2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;uses the default parameter separator (either a comma, or whatever you have defined with the &lt;FONT face="courier new,courier"&gt;#PARMS&lt;/FONT&gt; directive)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;@macro,&amp;nbsp; 1,sp 2,x&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;uses space as parameter separator for just this call, allowing comma to be part of the parameter.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;@macro,, a,b&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;uses comma as parameter separator (in case your default isn't comma).&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;* The number of macro invocations appears right after the number of Included files near the end of the listing.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Also, I have updated the example macros for both CPUs,&lt;/SPAN&gt; &lt;SPAN&gt;&lt;A href="http://www.aspisys.com/code/hc08/macros.html" rel="nofollow" target="_blank"&gt;HC08/9S08&lt;/A&gt;&lt;/SPAN&gt; &lt;SPAN&gt;and&lt;/SPAN&gt; &lt;SPAN&gt;&lt;A href="http://www.aspisys.com/code/hc11/macros.html" rel="nofollow" target="_blank"&gt;68HC11&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Links: &lt;A href="http://www.aspisys.com/freeasm8.zip" rel="nofollow" target="_blank"&gt;ASM8&lt;/A&gt; and &lt;A href="http://www.aspisys.com/freeasm11.zip" rel="nofollow" target="_blank"&gt;ASM11&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Jun 2010 21:40:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211477#M18176</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-06-02T21:40:47Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 and ASM11 v4.60 (LOOKS STABLE)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211478#M18177</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Could not get it to run in win7 x64, any plans to support that later?&lt;/P&gt;&lt;P&gt;Does is&amp;nbsp;support RS08?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this assembler simple to use and get you started right away?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;From the Amiga 68000 days i remmember Seka assembler.&lt;/P&gt;&lt;P&gt;And if it was not for QuickSharp (PC) for C#&amp;nbsp;I probably would not even looked in to it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Codewarrior is overkill and complex if I just&amp;nbsp;want to learn how to flash some leds with a 8bit mcu.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 00:03:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211478#M18177</guid>
      <dc:creator>tonysofla</dc:creator>
      <dc:date>2010-06-03T00:03:00Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 and ASM11 v4.60 (LOOKS STABLE)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211479#M18178</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, I have no way to test it but, maybe, you could.&amp;nbsp; I compiled it with the 64-bit version of the cross-compiler and it gave no compilation errors.&amp;nbsp; But since I can't run it, other than it compiles OK, I have no clue if it works.&amp;nbsp;&amp;nbsp; If you want to try it, and let me know if there is any luck, get the test executable &lt;A href="http://www.aspisys.com/asm8_win64.exe" rel="nofollow" target="_blank"&gt;here&lt;/A&gt; and rename it to asm8.exe&amp;nbsp; If people find that it works well, I'll include it in the distribution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regarding ease of use, well, "beauty is in the eye of the beholder".&amp;nbsp; To me, it can't get any easier.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regarding the RS08, no, sorry.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 01:30:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211479#M18178</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2010-06-03T01:30:53Z</dc:date>
    </item>
    <item>
      <title>Re: ASM8 and ASM11 v4.60 (LOOKS STABLE)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211480#M18179</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The DOS version you run from command line that I understand, but how do you run the win32 version?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It can only be run from other programs?, someone made a small gui for it yet?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 06:54:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ASM8-v1-33-ASM11-v2-10-updated-available-for-download/m-p/211480#M18179</guid>
      <dc:creator>tonysofla</dc:creator>
      <dc:date>2010-06-03T06:54:55Z</dc:date>
    </item>
  </channel>
</rss>

