Re: Asm source code page?

"Onestone [email protected] [msp430]" <[email protected]> Tue, 19 Jan 2016 16:28:59 +1030
Newsgroups gmane.comp.hardware.texas-instruments.msp430.discuss
Message-ID <[email protected]>
--------------020503080302010109040401
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Thanks Blakely.

Like Jon I've used lots of languages over the years, often trying out a 
new idea on the PC in C or even VB and then porting it to a micro in 
assembler. Like you I have mostly worked in assembler because it reads 
cleanly, and logically to me. There is nothing cryptic or hidden about 
it, what you see is nearly always what you get. I like to thrash things 
until they bleed before I use them in designs, and I did this to great 
lengths with the MSP. I too find porting between micros, a fairly simple 
process, and, as Jon says it is often a great way to learn new things, 
or get a different insight into something. A few years ago I thought it 
was much easier than porting between different C implementations.

In recent years I have had no constraints, other than physical ones on 
what I do. I no longer work commercially because my health has failed me 
suddenly on a couple of occasions and forced me to let people down, and 
on many occasions I believe that my situation has been taken advantage 
of, so I work for me now. Oddly I seem to have even less time, again 
partly due to health, and partly because there is almost no end to the 
depths of exploration I need  indulge in to produce what I want. I guess 
this has always been part of the excitement of design. Every design is a 
new field, or has been, so years back I had to dig out the maths and get 
acquainted with DSP, because the text books quoted formulae that weren'y 
explained, and used symbology that meant something totally different to 
me. I jumped into semiconductor manufacturing and found an affinity for 
it, so robotics design, and chemistry and physics, then GPS, underground 
mining, and communications, learning new fields all the time, (and 
trying in my old age not to forget some of the older stuff).

My latest venture is the most exciting by far. I started it in 1993, 7 
years before my own accident, but never had the time to devote to it, 
and was also highly criticised and sometimes even ridiculed by the 
'experts' of the day, so it became something I read a lot about and 
occasionally built and tested new ideas, but never took it all the way. 
A couple of years ago I was in a very bad place and needed to do 
soemthing to dig my way out of it. I had a few off the wall ideas  but 
instead I threw everything into testing my old ideas, as I didn't even 
know if they would work, I just couldn't see why not, and that, I feel 
is often as good a reason as any to pursue something new. I also felt  
that if I didn't do it then it would never happen.

The result of this is that the two people who tested my first (crude) 
system have gone from wheelchair bound C5 quadriplegics to being able to 
drive, lift themselves in and out of their chairs, feel things they 
hadn't felt for 6 years, ride a horse unaided, pass their drivers 
licence test, regain control of bladder and bowel, and generally do 
things they were told they would never do again. One has feeling back 
from her arms to her feet. I'm about to embark on the next stage of 
this, sending machines to another dozen people in the US, a guy in 
Brazil and a few people in Australia. The machines are free, as are all 
the consumables, cables and software updates (thanks in a large part to 
my first victim). I am hoping for the same slow but steady progression 
as the first 2 machines showed. Eventually I hope this will become 
commercially available to everybody, at an affordable price, but for now 
I struggle to make ends meet on a state disability pension, but I 
believe that what I am doing is the most meaningful thing I have ever done.

Now the relevance of this is that it is all done with an MSP430F2618, 
running the crap out of it. It runs round the clock for 3 days on a 
battery charge, thanks to the low power modes of the MSP, and there is 
enough grunt to not only run the core code, but wifi, BT and soon I am 
hoping it will be able to track and image spinal cord and neural 
activity in real time. I don't think this would be feasible in C on this 
processor.

Why choose the MSP430 for this job, which obviously calls for a fair bit 
of processing power, especially when you see the likes of Ti suggesting 
ARM or DSP processors for simple things like blood ox or ECG? The answer 
is boringly simple. I know the MSP430 inside and out. I had an off the 
shelf  MSP430F149 based board from 2000 with one of my early test 
designs on it that I was able to update for the 2 test systems, so no $ 
outlay. I had an MSP430F2618 EVK that I could test some new ideas for 
the latest design on, again no $outlay.. I had the tools for the MSP 
ready to hand, again no $ outlay, and, finally I had the IAR Kickstart 
program for free, so there was no cost at all in doing the core micro 
based work, which meant that the little that I could put aside each 
week, could be hoarded for more important things. Things like making the 
PCB and buying the parts, custom made batteries, (super cheap, $3.50 
each in a 100 lot for 3000mAh Li poly 3V7 cells in a foil pack  with a 
customised PCM board) custom shielded cables and a nice box from Hammond 
because they will pre drill and cut, and are very reasonably priced.

Progress has been necessarily slow, but when you are on the phone to 
somebody, who, when you first spoke to them was unable to even swap 
their position in their wheelchair, and they say "I have to hang up in a 
minute Al, I'm about to drive up a mountain and need to concentrate a 
bit". Or you receive a video in your email showing a girl sitting on her 
horse and walking it around a paddock for the first time in 6 years, 
then 2 months later I get another video of her lifting herself out of 
her chair into a Polaris quad and driving off across the fields, it 
makes you feel that you haven't wasted your time. It makes me feel 
vindicated in my beliefs.

This is why I do what I do, I cannot imagine doing anything else, and 
have always felt that I wanted to design things that made a personal 
difference to people, but like most working engineers haven't been able 
to do as I pleased as much as I would have liked. I am lucky to have 
been born into this very precise era when one person can indulge their 
inquisitive nature and do such things, because I fear that it is all 
becoming too black box, prebuilt boring stuff. We have gone from valve 
technology to billions of transistors per square cm in just just over 50 
years, a spectacular rate of advance that should continue to the point 
where the machines design other machines and all we do is give them a 
list of 'wants', a 'Wish List Converter' module.. Now if only I could 
get DOS or similar  for my PC so that I could grab all of it's potential 
for myself instead of losing it to windows and the thousand things I 
don't need to do that windows thinks I should.!

Cheers

Al


On 19/01/2016 4:48 AM, [email protected] [msp430] wrote:
>
>
> I have not visited here much of late - guess the lack of projects or 
> new processors or laziness(?).
>
> Nice to Jon and Al- both of whom have given me invaluable help over 
> the years.
>
> I use the IAR assembler tools as well. The are fast YACC based tools. 
> I use them for the MSP430, 8051, and Renesas RX family. Nice to be 
> able to work with the same tools sets.  I don't use the IAR IDE at all 
> nor their .h files. For every product, I create that defines every 
> register, every bit and uses a fair amount of ASCII graphics. The idea 
> behind this is that as an appendix, it follows the product and serves 
> to complete the documentation. The chief advantage I find is that you 
> get a great exposure to the hardware and peripheral base that each 
> processor family supports. And like much code, it becomes the template 
> for subsequent additions to that family.  The downside is that it 
> takes a long time to create.  I am working on the RX family now and 
> some members there have a huge number of configuration registers.
>
> Everything is done from command line invocation in (ALT - F9) 
> UltraEdit with the result box popping up in the editor.
>
> My fallback assembler is the X32 Universal Assembler - a table driven 
> product that allows you to define your own Mnemonics and Opcodes.  It 
> can be expanded to add new instructions.  I did this to extend their 
> H8 tables to support the H8S family - most notably the STM and LDM 
> multiple stack push/pop instructions.  And it is very useful when 
> porting code.   If I were more ambitious, I would create a 
> Meta-Assembly language and then define the Opcodes for each member 
> family.  Of course a good Macro capability in most assemblers can do 
> the same thing.
>
> The real reason I code exclusively in assembler is that it reads 
> better to me.  It matches my thinking and appears perfectly clear.  
> Maybe it is just a mental limitation of my part, but C is just too 
> ugly to read and easily gets obfuscated beyond comprehension.
>
> Blakely LaCroix
> Minneapolis, Minnesota, USA
>
> 


--------------020503080302010109040401
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit





<head>

<style type="text/css">
<!--

/* start of attachment style */
       .ygrp-photo-title{
         clear: both;
         font-size: smaller;
         height: 15px;
         overflow: hidden;
         text-align: center;
         width: 75px;
       }
       div.ygrp-photo{
         background-position: center;
         background-repeat: no-repeat;
         background-color: white;
         border: 1px solid black;
         height: 62px;
         width: 62px;
       }

       div.photo-title 
         a,
         div.photo-title a:active,
         div.photo-title a:hover,
         div.photo-title a:visited {
           text-decoration: none; 
       }

       div.attach-table div.attach-row {
         clear: both;
       }

       div.attach-table div.attach-row div {
         float: left;
         /* margin: 2px;*/
       }

       p {
         clear: both;
         padding: 15px 0 3px 0;
	 overflow: hidden;
       }

       div.ygrp-file {
         width: 30px;
         valign: middle;
       }
       div.attach-table div.attach-row div div a {
         text-decoration: none;
       }

       div.attach-table div.attach-row div div span {
         font-weight: normal;
       }

       div.ygrp-file-title {
         font-weight: bold;
       }
 /* end of attachment style */
        -->
        </style>
        </head>
<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">


<!-- |**|begin egp html banner|**| -->

<br><br>

<!-- |**|end egp html banner|**| -->



    <font size="-1">Thanks Blakely.<br>
      <br>
      Like Jon I've used lots of languages over the years, often trying
      out a new idea on the PC in C or even VB and then porting it to a
      micro in assembler. Like you I have mostly worked in assembler
      because it reads cleanly, and logically to me. There is nothing
      cryptic or hidden about it, what you see is nearly always what you
      get. I like to thrash things until they bleed before I use them in
      designs, and I did this to great lengths with the MSP. I too find
      porting between micros, a fairly simple process, and, as Jon says
      it is often a great way to learn new things, or get a different
      insight into something. A few years ago I thought it was much
      easier than porting between different C implementations.<br>
      <br>
      In recent years I have had no constraints, other than physical
      ones on what I do. I no longer work commercially because my health
      has failed me suddenly on a couple of occasions and forced me to
      let people down, and on many occasions I believe that my situation
      has been taken advantage of, so I work for me now. Oddly I seem to
      have even less time, again partly due to health, and partly
      because there is almost no end to the depths of exploration I
      need  indulge in to produce what I want. I guess this has always
      been part of the excitement of design. Every design is a new
      field, or has been, so years back I had to dig out the maths and
      get acquainted with DSP, because the text books quoted formulae
      that weren'y explained, and used symbology that meant something
      totally different to me. I jumped into semiconductor manufacturing
      and found an affinity for it, so robotics design, and chemistry
      and physics, then GPS, underground mining, and communications,
      learning new fields all the time, (and trying in my old age not to
      forget some of the older stuff). <br>
      <br>
      My latest venture is the most exciting by far. I started it in
      1993, 7 years before my own accident, but never had the time to
      devote to it, and was also highly criticised and sometimes even
      ridiculed by the 'experts' of the day, so it became something I
      read a lot about and occasionally built and tested new ideas, but
      never took it all the way. A couple of years ago I was in a very
      bad place and needed to do soemthing to dig my way out of it. I
      had a few off the wall ideas  but instead I threw everything into
      testing my old ideas, as I didn't even know if they would work, I
      just couldn't see why not, and that, I feel is often as good a
      reason as any to pursue something new. I also felt  that if I
      didn't do it then it would never happen.<br>
      <br>
      The result of this is that the two people who tested my first
      (crude) system have gone from wheelchair bound C5 quadriplegics to
      being able to drive, lift themselves in and out of their chairs,
      feel things they hadn't felt for 6 years, ride a horse unaided,
      pass their drivers licence test, regain control of bladder and
      bowel, and generally do things they were told they would never do
      again. One has feeling back from her arms to her feet. I'm about
      to embark on the next stage of this, sending machines to another
      dozen people in the US, a guy in Brazil and a few people in
      Australia. The machines are free, as are all the consumables,
      cables and software updates (thanks in a large part to my first
      victim). I am hoping for the same slow but steady progression as
      the first 2 machines showed. Eventually I hope this will become
      commercially available to everybody, at an affordable price, but
      for now I struggle to make ends meet on a state disability
      pension, but I believe that what I am doing is the most meaningful
      thing I have ever done. <br>
      <br>
      Now the relevance of this is that it is all done with an
      MSP430F2618, running the crap out of it. It runs round the clock
      for 3 days on a battery charge, thanks to the low power modes of
      the MSP, and there is enough grunt to not only run the core code,
      but wifi, BT and soon I am hoping it will be able to track and
      image spinal cord and neural activity in real time. I don't think
      this would be feasible in C on this processor.<br>
      <br>
      Why choose the MSP430 for this job, which obviously calls for a
      fair bit of processing power, especially when you see the likes of
      Ti suggesting ARM or DSP processors for simple things like blood
      ox or ECG? The answer is boringly simple. I know the MSP430 inside
      and out. I had an off the shelf  MSP430F149 based board from 2000
      with one of my early test designs on it that I was able to update
      for the 2 test systems, so no $ outlay. I had an MSP430F2618 EVK
      that I could test some new ideas for the latest design on, again
      no $outlay.. I had the tools for the MSP ready to hand, again no $
      outlay, and, finally I had the IAR Kickstart program for free, so
      there was no cost at all in doing the core micro based work, which
      meant that the little that I could put aside each week, could be
      hoarded for more important things. Things like making the PCB and
      buying the parts, custom made batteries, (super cheap, $3.50 each
      in a 100 lot for 3000mAh Li poly 3V7 cells in a foil pack  with a
      customised PCM board) custom shielded cables and a nice box from
      Hammond because they will pre drill and cut, and are very
      reasonably priced. <br>
      <br>
      Progress has been necessarily slow, but when you are on the phone
      to somebody, who, when you first spoke to them was unable to even
      swap their position in their wheelchair, and they say "I have to
      hang up in a minute Al, I'm about to drive up a mountain and need
      to concentrate a bit". Or you receive a video in your email
      showing a girl sitting on her horse and walking it around a
      paddock for the first time in 6 years, then 2 months later I get
      another video of her lifting herself out of her chair into a
      Polaris quad and driving off across the fields, it makes you feel
      that you haven't wasted your time. It makes me feel vindicated in
      my beliefs.<br>
      <br>
      This is why I do what I do, I cannot imagine doing anything else,
      and have always felt that I wanted to design things that made a
      personal difference to people, but like most working engineers
      haven't been able to do as I pleased as much as I would have
      liked. I am lucky to have been born into this very precise era
      when one person can indulge their inquisitive nature and do such
      things, because I fear that it is all becoming too black box,
      prebuilt boring stuff. We have gone from valve technology to
      billions of transistors per square cm in just just over 50 years,
      a spectacular rate of advance that should continue to the point
      where the machines design other machines and all we do is give
      them a list of 'wants', a 'Wish List Converter' module.. Now if
      only I could get DOS or similar  for my PC so that I could grab
      all of it's potential for myself instead of losing it to windows
      and the thousand things I don't need to do that windows thinks I
      should.!<br>
      <br>
      Cheers<br>
      <br>
      Al<br>
      <br>
      <br>
    </font>
    <div class="moz-cite-prefix">On 19/01/2016 4:48 AM,
      <a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a> [msp430] wrote:<br>
    </div>
    <blockquote cite="mid:[email protected]" type="cite">
      <meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
      <br>
      <br>
      I have not visited here much of late - guess the lack of projects
      or new processors or laziness(?).<br>
      <br>
      Nice to Jon and Al- both of whom have given me invaluable help
      over the years.<br>
      <br>
      I use the IAR assembler tools as well. The are fast YACC based
      tools. I use them for the MSP430, 8051, and Renesas RX family. 
      Nice to be able to work with the same tools sets.  I don't use the
      IAR IDE at all nor their .h files. For every product, I create
      that defines every register, every bit and uses a fair amount of
      ASCII graphics. The idea behind this is that as an appendix, it
      follows the product and serves to complete the documentation.  
      The chief advantage I find is that you get a great exposure to the
      hardware and peripheral base that each processor family supports. 
      And like much code, it becomes the template for subsequent
      additions to that family.  The downside is that it takes a long
      time to create.  I am working on the RX family now and some
      members there have a huge number of configuration registers.<br>
      <br>
      Everything is done from command line invocation in (ALT - F9)
      UltraEdit with the result box popping up in the editor.<br>
      <br>
      My fallback assembler is the X32 Universal Assembler - a table
      driven product that allows you to define your own Mnemonics and
      Opcodes.  It can be expanded to add new instructions.  I did this
      to extend their H8 tables to support the H8S family - most notably
      the STM and LDM multiple stack push/pop instructions.  And it is
      very useful when porting code.   If I were more ambitious, I would
      create a Meta-Assembly language and then define the Opcodes for
      each member family.  Of course a good Macro capability in most
      assemblers can do the same thing.<br>
      <br>
      The real reason I code exclusively in assembler is that it reads
      better to me.  It matches my thinking and appears perfectly
      clear.  Maybe it is just a mental limitation of my part, but C is
      just too ugly to read and easily gets obfuscated beyond
      comprehension. <br>
      <br>
      Blakely LaCroix<br>
      Minneapolis, Minnesota, USA
      <br>
      <br>
      <div width="1"></div>
    </blockquote>
    <br>
  



<!-- |**|begin egp html banner|**| -->

<br>


<br>

<!-- |**|end egp html banner|**| -->


<div width="1" style="color: white; clear: both;"/>__._,_.___</div>

      
  

    
    <div id="fromDMARC" style="clear:both; margin-top: 10px;">
         <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
         Posted by: Onestone &lt;[email protected]&gt;         <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
    </div>
<!-- Start Recommendations -->
<!-- End Recommendations -->


<!-- |**|begin egp html banner|**| -->

<br><br>
<tt>
To unsubscribe from the msp430 group, send an email to:<BR>
[email protected]<BR>
<BR>
</tt>
<br><br>

<!-- |**|end egp html banner|**| -->



<!-- |**|begin egp html banner|**| -->

  <img src="http://geo.yahoo.com/serv?s=97476590/grpId=2342629/grpspId=1705005378/msgId=52507/stime=1453183200" width="1" height="1"> <br>

<!-- |**|end egp html banner|**| -->

    
<!-- |**|begin egp html banner|**| -->

<br>



   
     
 
        <!-- |**|begin egp html banner|**| -->
        <div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

        <span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://groups.yahoo.com/neo/groups/msp430/info;_ylc=X3oDMTJlZzhnZm9wBF9TAzk3MzU5NzE0BGdycElkAzIzNDI2MjkEZ3Jwc3BJZAMxNzA1MDA1Mzc4BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQ1MzE4MzIwMA--" style="text-decoration: none;">Visit Your Group</a></span>

     <ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
                                                    </ul>
  </div>


<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
  <a href="https://groups.yahoo.com/neo;_ylc=X3oDMTJkaGMxdjlrBF9TAzk3NDc2NTkwBGdycElkAzIzNDI2MjkEZ3Jwc3BJZAMxNzA1MDA1Mzc4BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNDUzMTgzMjAw" style="float: left;"><img src="http://l.yimg.com/ru/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
  <div style="color: #747575; float: right;"> &bull; <a href="https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> &bull; <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> &bull; <a href="https://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</a> </div>
</div>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

   


  <br>

<!-- |**|end egp html banner|**| -->


<div style="color: white; clear: both;"/>__,_._,___</div>
</body>
</html>

--------------020503080302010109040401--