Skip to content

Instantly share code, notes, and snippets.

@soundstorm
Created February 2, 2017 14:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save soundstorm/f255b0ac1491c2b42be1f52c29c015fe to your computer and use it in GitHub Desktop.
Save soundstorm/f255b0ac1491c2b42be1f52c29c015fe to your computer and use it in GitHub Desktop.
Reverse engineering of RD Works cmd checksum generation
EXAMPLE for MOVE CMD
CMD PAYLOAD
vvvvvvv vvvvvvvvv
89 1a d900020 001010100
^^ ^^
|| Checksum
\_ 0x80 toggles with checksum 0x01
D9 1101 1001
+ 02 0000 0010
--------------
1B 0001 1011
+ 01 0000 0001
--------------
1A 0001 1010
1B 0001 1011
+ 01 0000 0001
+ 01 0000 0001
+ 01 0000 0001
--------------
1A 0001 1010
1B 0001 1011
+ 02 0000 0010
01X0
--------------
1D 0001 1101
1B 0001 1011
+ 03 0000 0011
01X0
--------------
1C 0001 1100
1B 0001 1011
+ 04 0000 0100
00X0
--------------
1F 0001 1111
1B 0001 1011
+ 05 0000 0101
00X0
--------------
1E 0001 1110
1B 0001 1011
+ 06 0000 0110
11X0
--------------
11 0001 0001
1B 0001 1011
+ 07 0000 0101
00X0
--------------
10 0001 0000
1B 0001 1011
+ 08 0000 1000
0000
--------------
03 0000 0011
1B 0001 1011
+ 09 0000 1001
0110
--------------
02 0000 0010
1B 0001 1011
+ 0A 0000 1010
0100
--------------
05 0000 0101
1B 0001 1011
+ 0B 0000 1011
0110
--------------
04 0000 0100
1B 0001 1011
+ 0C 0000 1100
0000
--------------
05 0000 0101
1B 0001 1011
+ 0D 0000 1101
1110
--------------
06 0000 0110
1B 0001 1011
+ 0E 0000 1110
1100
--------------
19 0001 1001
1B 0001 1011
+ 02 0000 0010
+ 02 0000 0010
+ 02 0000 0010
--------------
19 0001 1001
1B 0001 1011
+ 0F 0000 1111
1110
--------------
18 0001 1000
1B 0001 1011
+ 10 0001 0000
0010
--------------
2B 0010 1011
1B 0001 1011
+ 20 0010 0000
0000
--------------
3B 0011 1011
1B 0001 1011
+ 30 0011 0000
0010
--------------
4B 0100 1011
1B 0001 1011
+ 40 0100 0000
0000
--------------
5B 0101 1011
1B 0001 1011
+ 50 0001 0000
0010
--------------
6B 0010 1011
1B 0001 1011
+ 60 0110 0000
0000
--------------
7B 0111 1011
1B 0001 1011
+ 70 0111 0000
1110 1 -- OVERFLOW
--------------
0A 0000 1010
Another CMD, another checksum?
89 2c da 00 00 36
DA 1101 1010
+ 36 0011 0110
--------------
2C 0010 1100
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment