To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 13499
13498  |  13500
Subject: 
Re: Firmware file version?
Newsgroups: 
lugnet.robotics
Date: 
Sat, 16 Dec 2000 20:26:45 GMT
Viewed: 
661 times
  
Ralph Hempel <rhempel@bmts.com> wrote:
Way back when, I think I remember Dave Baum posting a note to the effect
that the firmware checksum calculation stops around 0xCC00, which is
where the firmware variables live.

I don't know what Dave Baum may or may not have said, but here is the ROM's
algorithm for computing the checksum:

         short offset = 0
         byte validstr = 0
         short sum = 0
         for (addr = 8000; addr < cc00; addr++)
            sum += byte at addr
            if (byte at addr == 44 (ascii D) && !validstr)
               validstr = offset = 1
            if (offset != 0)
               if (byte at @3f11[offset] != byte at addr)
                  validstr = 0
               if (offset == 1b)
                  offset = 0
         if (sum == firmware checksum (fd88) && ~sum == @fd8a && validstr)
            rom update function state (ef06) = 3 // send unlock ok message
         else
            call ROM 299a (r6=4004, sp0=4) [low buzz]
            rom update function state (ef06) = 2 // wait for message
            last received opcode (ef0c) = ff

The @3f11[] thing is the "Do you byte, when I knock?" string.  If you need
more context, see http://graphics.stanford.edu/~kekoa/rcx/#Rom.  The code I
quoted is from state 1 of the 070c rom_update function.

-Kekoa



Message has 1 Reply:
  Re: Firmware file version?
 
Regarding the firmware checksumming, firmdl3 did not do that correctly, nor did it support any of the latest firmware files (0325, 0328), complaining because they were too large. I made the necessary changes to fix these problems. You can grab the (...) (24 years ago, 16-Dec-00, to lugnet.robotics)

Message is in Reply To:
  RE: Firmware file version?
 
(...) Way back when, I think I remember Dave Baum posting a note to the effect that the firmware checksum calculation stops around 0xCC00, which is where the firmware variables live. The old firmware was smaller than this, but the new firmware image (...) (24 years ago, 16-Dec-00, to lugnet.robotics)

17 Messages in This Thread:









Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR