Page 203 - The Unofficial Guide to Lego Mindstorms Robots
P. 203

192


          firmware downloader. This piece of software uses the IR tower to transfer firmware to your RCX.

          Two firmware downloaders  are readily available. Dave  Baum's  nqc.  described in Chapter 4,  Not Quite  C,  is capable  of
          downloading firmware files to the RCX, using the -firmware option. Another option is Kekoa Proudfoot's firmdl, which
          is available as a C source file.

                                   An Innovative Alternative

          If  the complexity of setting up tools for legOS is making you sad, there's a creative
          solution. Two kind individuals have set up web-based legOS compilers. All you do is
          submit your source code. Across the Internet, a machine compiles the code and sends
          y ou the result, which you can then download to your RCX. This completely sidesteps
           the whole problem of obtaining a cr oss compiler. This solution is useful even for
          p latforms that don't support the GNU tools. As long as you have a web browser, you
          can compile legOS programs.

          The web-based cross co mpilers are here:

              http://www.dwarfrune.c om/web-legOS.html

              https://vheissu.mersenne.com/~dbm/com pile-legOS.html

          There are some downsides to this approach, as well:

          1. You have to fit your program into a single source file.

          2. You have to depend on someone else to keep the compiler running.

          3. You can't apply patches and tweak other things yourself.

          H ello, legOS

          Let's begin with something simple. This will allow you to verify that your too ls are working and give you a first taste of
          p rogramming with legOS. The following program displays "Hello" on the RCX's  display briefly:

              #include "conio.h"

              int main(void) {
                  cputs("Hello") ;
                  lcd_refresh() ;
                  delay(1000) ;
                  return 0;
              }

          To run this example, first compile it. If you have the cross compiler installed locally, you just need to edit the legOS Makefile
          so that the TARGET line points to
   198   199   200   201   202   203   204   205   206   207   208