<?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>8-bit Microcontrollers中的主题 Re: Table lookups (HC08)</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148393#M7700</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Mike,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Prior to using any&amp;nbsp;indexed addressing, I think it is a good idea to &lt;U&gt;always&lt;/U&gt; initialize the&amp;nbsp;H register, and not assume any previous value.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Of course there would still be problems if an ISR is corrupting the H-value, assuming&amp;nbsp;the interrupt can occur immediately prior to&amp;nbsp;any indexed instruction.&amp;nbsp; As you have found the hard way,&amp;nbsp;this type of problem can be particularly difficult to diagnose as it may&amp;nbsp;occur only infrequently.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;BTW, I first implemented a POCSAG encoder within&amp;nbsp;some HC05 devices, about 15 years ago.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Sep 2007 09:17:38 GMT</pubDate>
    <dc:creator>bigmac</dc:creator>
    <dc:date>2007-09-24T09:17:38Z</dc:date>
    <item>
      <title>Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148381#M7688</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi All,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am a little stuck on perhaps the correct syntax to do a simple table lookup (see code below).&lt;/DIV&gt;&lt;DIV&gt;Ignoring any&amp;nbsp;additional instructions&amp;nbsp;that would increment the Table pointer, what I have found is if I use the code below, the values from the Table are not getting stored in to T1MODH, instead the address location value of Table is being stored.&lt;/DIV&gt;&lt;DIV&gt;What is the correct syntax to use so I can point to a table location and get the value from the table to store in to T1MODH.&lt;/DIV&gt;&lt;DIV&gt;I also tried using -&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: 'Courier New';"&gt;ldhx&amp;nbsp; Table&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;Figuring that that is not an immediate load, but, the compiler complains I can't use that addressing mode for that command.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks,&lt;/DIV&gt;&lt;DIV&gt;Ross&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: 'Courier New';"&gt;ldhx&amp;nbsp; #Table&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: 'Courier New';"&gt;sthx&amp;nbsp; T1MODH&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: 'Courier New';"&gt;Table:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: 'Courier New';"&gt;&amp;nbsp;fdb&amp;nbsp;&amp;nbsp; 2000&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: 'Courier New';"&gt;&amp;nbsp;fdb&amp;nbsp;&amp;nbsp; 3000&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: 'Courier New';"&gt;&amp;nbsp;fdb&amp;nbsp;&amp;nbsp; 4000&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Sep 2007 22:33:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148381#M7688</guid>
      <dc:creator>Bloodhound</dc:creator>
      <dc:date>2007-09-20T22:33:30Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148382#M7689</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Can you give the exact error message ? ldhx Table is the correct version but there is no reason why you should get an error. If you are usign an HC08 (not an HCS08) you might get a warning if Table is not located in the direct page.&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Sep 2007 22:55:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148382#M7689</guid>
      <dc:creator>Navidad</dc:creator>
      <dc:date>2007-09-20T22:55:58Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148383#M7690</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hallo.&lt;/DIV&gt;&lt;DIV&gt;That's right: your code dumps the double byte address of "Table" to T1MODH/T1MODL, which isn't surely what you want.&lt;/DIV&gt;&lt;DIV&gt;Assumed that you want to dump a double byte, there are many ways to do that. A&amp;nbsp;possible code may be:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;; limited to 8 bit offset but very powerful because the&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;; offset pointer may be a constant (#pointer) or a variable&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;; (pointer) and is not lost in the x register after load&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;; i.e. it may be further incremented or processed here&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;clrh&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; assures h=0&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;ldx #pointer&amp;nbsp;&amp;nbsp; &amp;nbsp;; pointer is an 8 bit offset&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;lda table,x&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;sta T1MODH&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;lda table+1,x&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;sta T1MODH+1&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;or&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;;&amp;nbsp;with&amp;nbsp;16 bit offset.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;; apparently smaller code, but #pointer is mainly&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;; a constant&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;and is not easy to process in the program.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;; If you want to use a 16bit variable you must process it&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;;&amp;nbsp;elsewhere in ram and load it from there.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;; The pointer is lost in H:X register and replaced by the&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;; table value&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;ldhx #pointer&amp;nbsp;&amp;nbsp; &amp;nbsp;; pointer is a&amp;nbsp;16 bit offset&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;ldhx table,x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; table+pointer -&amp;gt; H:X&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;sthx T1MODH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; H:X -&amp;gt; T1MODH:T1MODL&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I hope it is what you want.&lt;/DIV&gt;&lt;DIV&gt;Encoder&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;P.s.: Take care that default numeric declaration in CodeWarrior is decimal, so&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;fdb 2000&amp;nbsp;&amp;nbsp;&amp;nbsp; ; decimal&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;is not exactly&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;fdb $2000&amp;nbsp;&amp;nbsp;&amp;nbsp;; hex&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by Encoder on &lt;SPAN class="date_text"&gt;2007-09-20&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;07:45 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Sep 2007 01:42:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148383#M7690</guid>
      <dc:creator>Encoder</dc:creator>
      <dc:date>2007-09-21T01:42:03Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148384#M7691</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Just to clarify a litte:&lt;BR /&gt;&lt;BR /&gt;The # prefix indicates an immediate load and will result in the address of Table into the a or hx registers.&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="Courier New"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Load Address of Table&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp; #Table&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldhx&amp;nbsp;&amp;nbsp; #Table&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Load contents of memory location(s) pointed to by Table&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp; Table&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldhx&amp;nbsp;&amp;nbsp; Table&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Immediate Hex value into a or hx&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp; #$0F&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldhx&amp;nbsp;&amp;nbsp; #$7FEC&lt;BR /&gt;&lt;/FONT&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Peter House&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Sep 2007 01:54:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148384#M7691</guid>
      <dc:creator>PeterHouse</dc:creator>
      <dc:date>2007-09-21T01:54:04Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148385#M7692</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks for the answers.&lt;/DIV&gt;&lt;DIV&gt;From what I can see I don't think I am doing anything wrong yet I am getting the error.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;As was mentioned, if I have -&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldhx&amp;nbsp; #Table&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;Then hx is loaded with the address of the table, not what I want.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If I change this command to -&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT face="Courier New"&gt;ldhx&amp;nbsp; Table&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;The error I am seeing in CodeWarrior says -&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;"&lt;EM&gt;Error A13001: Invalid Addressing Mode. not allowed for LDHX&lt;/EM&gt;"&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I get the very same error if I use the line of code that 'Encoder' posted up -&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;ldhx table,x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; table+pointer -&amp;gt; H:X&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;However, the other code you posted works fine with no compile error -&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;clrh&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; assures h=0&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;ldx #pointer&amp;nbsp;&amp;nbsp; &amp;nbsp;; pointer is an 8 bit offset&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;lda table,x&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;sta T1MODH&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;lda table+1,x&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;sta T1MODH+1&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks,&lt;/DIV&gt;&lt;DIV&gt;Ross&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by Bloodhound on &lt;SPAN class="date_text"&gt;2007-09-21&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;08:56 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Sep 2007 05:50:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148385#M7692</guid>
      <dc:creator>Bloodhound</dc:creator>
      <dc:date>2007-09-21T05:50:45Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148386#M7693</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Ross,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;The reason for the assembly error is that Table would be located at an extended address (within flash).&amp;nbsp; For the HC08, the LDHX instruction does not have an extended addressing mode.&amp;nbsp; In contrast, the LDHX Table instruction would work for a HCS08 device since this has additional addressing modes.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;A further&amp;nbsp;approach using zero offset indexing, which I think is what you were originally aiming for.&amp;nbsp; This would work for either type of device&amp;nbsp;-&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; ldhx #Table&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; lda&amp;nbsp; ,x&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; sta&amp;nbsp; T1MODH&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; aix&amp;nbsp; #1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Increment H:X&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; lda&amp;nbsp; ,x&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; sta&amp;nbsp; T1MODL&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;For the HCS08 only, the following should also work -&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; ldhx&amp;nbsp; #Table&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; ldhx&amp;nbsp; ,x&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; sthx&amp;nbsp; T1MOD&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2007-09-21&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;11:40 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Sep 2007 08:33:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148386#M7693</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2007-09-21T08:33:55Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148387#M7694</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks Mac, that certainly makes sense.&lt;/DIV&gt;&lt;DIV&gt;Thanks to everyone who responded, very helpful board this one (and kind to HC08 newbies!)&lt;/DIV&gt;&lt;DIV&gt;I remember looking at the HCS devices but there was none with&amp;nbsp;a CAN controller &lt;IMG alt=":smileysad:" class="emoticon emoticon-smileysad" id="smileysad" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-sad.gif" title="Smiley Sad" /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Cheers,&lt;/DIV&gt;&lt;DIV&gt;Ross&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by Bloodhound on &lt;SPAN class="date_text"&gt;2007-09-21&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;11:50 AM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by Bloodhound on &lt;SPAN class="date_text"&gt;2007-09-21&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;11:53 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Sep 2007 08:44:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148387#M7694</guid>
      <dc:creator>Bloodhound</dc:creator>
      <dc:date>2007-09-21T08:44:09Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148388#M7695</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Ross,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Both the 9S08DVxx series and the 9S08DZxx series include a CAN module.&amp;nbsp; These are relatively new devices, so I am not sure whether currently available.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Sep 2007 13:38:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148388#M7695</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2007-09-21T13:38:13Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148389#M7696</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Sorry for coming in the middle. I am having a problem regarding Flash in case of MC68HC908EY16. After some sucessful Erase &amp;amp; Program conditions, at one state the flash getting completely corrupted. No operation is been able to perform. can u tell me reasons for this type of problems.&lt;BR /&gt;&lt;BR /&gt;Thanks &amp;amp; Regarding&lt;BR /&gt;Sekhar&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Sep 2007 16:02:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148389#M7696</guid>
      <dc:creator>sekhar</dc:creator>
      <dc:date>2007-09-21T16:02:56Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148390#M7697</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I use tables in my code for a POCSAG encoder. Here's a real short example from my code:&lt;BR /&gt;&lt;BR /&gt;ldhx #instrings ; Get location of start&lt;BR /&gt;find_end_instr&lt;BR /&gt;lda 0,x ; byte of text message&lt;BR /&gt;beq put_eom ; If a zero, put an EOM&lt;BR /&gt;incx ; Point to next&lt;BR /&gt;&lt;BR /&gt;and then loop around to do what needs to me done when processing a text message that was received to a buffer in RAM. I point HX to the ADDRESS of the table. Be aware that X is 256byte wraparound if you use it the way I use it!&lt;BR /&gt;&lt;BR /&gt;Also, one thing I discovered... Be careful about interupts. What happens to 'H'? That caught me off-guard for a while!&lt;BR /&gt;&lt;BR /&gt;Message Edited by mke_et on &lt;SPAN class="date_text"&gt;2007-09-21&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;08:36 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Sep 2007 19:32:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148390#M7697</guid>
      <dc:creator>mke_et</dc:creator>
      <dc:date>2007-09-21T19:32:07Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148391#M7698</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Mike,&lt;BR /&gt;&lt;BR /&gt;The H is indeed to be pushed/pulled manually.&lt;BR /&gt;This is for code to be backwards-compatible to HC05.&lt;BR /&gt;&lt;BR /&gt;CodeWarrior is always adding a the PUSH and PULL when compiling. Unless told otherwise.&lt;BR /&gt;&lt;BR /&gt;Cheers,&lt;BR /&gt;Alban.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 23 Sep 2007 03:04:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148391#M7698</guid>
      <dc:creator>Alban</dc:creator>
      <dc:date>2007-09-23T03:04:54Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148392#M7699</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I got bit on the H issue with my POCSAG code. I used HX as an index and sometimes would pull stuff out of FLASH with it and sometimes out of RAM. I got bit when I used some of my 'generic' routines from an ISR and H wasn't left pointing in foreground where I thought it was. I thought it was something stupid I did (it was) so I just 'initialed' H whenever I needed to use it. It mostly fixed things. Then I realized it was the ISR that was clobbering H. One of those things that when you find it you feel good about yourself at first, then realize how stupid you were once you think about it for a while...&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 23 Sep 2007 17:09:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148392#M7699</guid>
      <dc:creator>mke_et</dc:creator>
      <dc:date>2007-09-23T17:09:00Z</dc:date>
    </item>
    <item>
      <title>Re: Table lookups (HC08)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148393#M7700</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Mike,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Prior to using any&amp;nbsp;indexed addressing, I think it is a good idea to &lt;U&gt;always&lt;/U&gt; initialize the&amp;nbsp;H register, and not assume any previous value.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Of course there would still be problems if an ISR is corrupting the H-value, assuming&amp;nbsp;the interrupt can occur immediately prior to&amp;nbsp;any indexed instruction.&amp;nbsp; As you have found the hard way,&amp;nbsp;this type of problem can be particularly difficult to diagnose as it may&amp;nbsp;occur only infrequently.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;BTW, I first implemented a POCSAG encoder within&amp;nbsp;some HC05 devices, about 15 years ago.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 09:17:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Table-lookups-HC08/m-p/148393#M7700</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2007-09-24T09:17:38Z</dc:date>
    </item>
  </channel>
</rss>

