UVSGXOR

From Prevue Guide Wiki
Revision as of 01:51, 30 November 2010 by AriX (talk | contribs) (Created page with 'This code simply returns the initial checksum of a UVSG command, provided you give it a sample command that ends in $00 and then the checksum and strip off the 55 AA at the begin…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This code simply returns the initial checksum of a UVSG command, provided you give it a sample command that ends in $00 and then the checksum and strip off the 55 AA at the beginning. It's probably poorly written, but it works.


#import <stdio.h>

int main(int argc, char *argv[]) {

   int i=0, j, checksum;
   char *buf = "<PUT AN EXAMPLE COMMAND HERE>";
   char *hexPtr = buf;
   
   unsigned int *result = calloc(strlen(buf)/2 + 1, sizeof *result);
   while (sscanf(hexPtr, "%02x", &result[i++])) {
       hexPtr += 2;
       if (hexPtr >= buf + strlen(buf)) break;
   }
   
   for (j = i; j > -1; j--) {
       if (j == (i-1)) {
           checksum = (int)result[j];
       }
       if (j < (i-1)) {
           checksum = checksum ^ (int)result[j];            
       }
   }
   
   printf("\n%02x\n", checksum);

}