Subject:
|
Re: Firmware file version?
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Sat, 16 Dec 2000 20:26:45 GMT
|
Viewed:
|
841 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
|
|
|
|