Hello IBM BSC Experts! I am trying to figure out the CRC algorithm used by IBM BSC. I have tried a lot of different settings in crcreveng but not getting a match.
I am pretty convinced that the CRC-16 used by IBM was 16 15 2 x + x + x + 1 This would give the polynomial 8005. Anyone against this statement? But what was the initial value? I have two actual messages from equipment employing IBM BSC: 32016CD90240404070032688 and 32016CD90240C84050030D28 >From this document ( http://bitsavers.trailing-edge.com/pdf/ibm/datacomm/GA27-3004-2_General_Information_Binary_Synchronous_Communications_Oct70.pdf ) I get that the CRC calculation is reset on SOH (01h) or STX (02h) and accumulates until and including the ETX (03h). (excluding any SYN (32h) characters). I have tried crcreveng back and forth and I am not getting the CRC bytes right. I think I have tried most things, different bit order, different initial values. But nothing. I also tried the mode in crcreveng where it searches for matches but it always says "no models found". Maybe I am doing something wrong when using crcreveng? Any clues? Surely there are someone out there that has been around for some time and knows this, right? On the topic of crc reveng I tried to verify how it works by using some kind of known value: This article https://stackoverflow.com/questions/23638939/crc-16-ibm-reverse-lookup-in-c has a specific example where a certain data in (75h) with initial value 90f1h gives output 6390h. I tried to get crc reveng to do the same, but failed. There has to be some option I simply do not understand. I tried most combinations. /Mattis
