| | 
      |   |   
            | Subject: 
 | Re: light sensor problem? 
 |  
            | Newsgroups: 
 | lugnet.robotics.rcx.legos 
 |  
            | Date: 
 | Fri, 28 Jul 2000 15:50:05 GMT 
 |  
            | Viewed: 
 | 2920 times 
 |  |  |  
 | 
 |  | Michael Obenland <obenland@t-online.de> wrote: > Can you please tell me where to find this documentation?
 
 http://graphics.stanford.edu/~kekoa/rcx/#Rom
 
 In particular, scroll down to "notes on addresses" and "notes on routines".
 The routines for the firmware start at 0x8000.  The routines for the ROM
 start at 0x3ae.  Ultimately, both kinds of routines are important to
 figuring out how the firmware does things.
 
 The documentation is very low-level and might seem overwhelming.  It was
 written as the information was discovered, and is organized mainly by
 address, not by function.  I never got around to writing it up in a way
 that would be easy to understand.
 
 A good place to start would be at 0x8000, the firmware entry point.  Then
 you can move on to the firmware "handlers" -- routines that manage groups
 of functionality (sensors, motors, byte codes, etc.) as seen by the
 firmware.  This would be the top-down approach.
 
 Another good place to start is with the h8/300 hardware manual.  Since it
 can be hard to find at Hitachi's site (they seem to move it every so
 often), you can grab a copy as:
 
 http://graphics.stanford.edu/~kekoa/rcx/h8300_hwman.pdf.gz
 
 The manual can help you to understand the interrupt handlers in the ROM,
 which are important to understanding exactly "how the firmware does
 things".  This would be the bottom-up approach.
 
 The ROM uses a straightforward interrupt model to do all of its
 asynchronous device management.  It has short interrupt handlers for serial
 transmission and a/d completion, and does almost everything else (sounds,
 motors, start a/d conversion, etc.) in a timer interrupt that is run every
 1 ms.  This is unlike LegOS, which (if I remember correctly from the last
 time I checked) does a lot of its device management based on preemtive
 scheduling of threads, or by doing things complete in non-timer interrupt
 handlers (e.g. the a/d conversions).  It is interesting at least to think
 about the differences, as they can lead to inconsistent behavior between
 the firmware and LegOS, e.g. as we are seeing with the a/d conversions.
 
 -Kekoa
 
 |  |  |  
 
 Message is in Reply To:
 
 26 Messages in This Thread:
 
                
        
        
               
          
         
       
       
 
      Entire Thread on One Page:
      
        Nested: 
        All | Brief | Compact | Dots
        Linear: 
        All | Brief | Compact
 | 
 | 
 | 
 |