ORCRC ;SLC/JM - standard CRC routine ;3/1/06
Source file <ORCRC.m>
| Package | Total | Caller Graph | 
|---|---|---|
| Order Entry Results Reporting | 1 | ORCMEDT8 | 
| Name | Comments | DBIA/ICR reference | 
|---|---|---|
| BIN2HEX(BIN) | ; Converts binary to hex - assumes valid input | |
| INT2HEX(INT,SIZE) | ; Converts int to hex | |
| HEX2BIN(HEX) | ; Converts hex to binary - assumes valid input | |
| XOR(BIN1,BIN2) | ; Exclusive OR of 2 binary numbers - returns binary value | |
| SHR(BIN,SHIFT) | ; Shift right SHIFT bits of binary number - returns binary value | |
| TBL | ; CRC table - DO NOT CHANGE THESE VALUES! | |
| HEX2INT(HEX) | ; Converts hex to integer | |
| AND(BIN1,BIN2) | ; AND of 2 binary numbers - returns binary value | |
| CRCTABLE(IDX) | ; Returns crc hex value from table | |
| CRC4ARRY(ARRAY) | ; Returns a CRC for an array of strings | 
| Name | Line Occurrences | 
|---|---|
| $$AND | CRC4ARRY+11, CRC4ARRY+16 | 
| $$BIN2HEX | CRC4ARRY+12, CRC4ARRY+18 | 
| $$CRCTABLE | CRC4ARRY+14 | 
| $$HEX2BIN | CRC4ARRY+4, CRC4ARRY+5, CRC4ARRY+6, CRC4ARRY+10, CRC4ARRY+14 | 
| $$HEX2INT | CRC4ARRY+12 | 
| $$INT2HEX | CRC4ARRY+10 | 
| $$SHR | CRC4ARRY+16 | 
| $$XOR | CRC4ARRY+11, CRC4ARRY+17 | 
| >> | Not killed explicitly | 
| * | Changed | 
| ! | Killed | 
| ~ | Newed | 
| Name | Field # of Occurrence | 
|---|---|
| ARRAY | CRC4ARRY~ | 
| ARRAY( | CRC4ARRY+7, CRC4ARRY+8 | 
| BIN | XOR+1~, XOR+2*, XOR+6*, XOR+7*, XOR+8*, XOR+9, AND+1~, AND+2*, AND+6*, AND+7 , SHR~, SHR+1*, SHR+2*, SHR+3, HEX2BIN+1~, HEX2BIN+2*, HEX2BIN+5*, HEX2BIN+6, BIN2HEX~, BIN2HEX+2 , BIN2HEX+3*, BIN2HEX+4, BIN2HEX+6* | 
| BIN1 | XOR~, XOR+2, XOR+4, XOR+7, AND~, AND+2, AND+5 | 
| BIN2 | XOR~, XOR+2, XOR+4, XOR+8, AND~, AND+2, AND+5 | 
| BINTBL | CRC4ARRY+1~, CRC4ARRY+2*, HEX2BIN+5, BIN2HEX+7 | 
| BIT | XOR+1~, XOR+4*, XOR+5*, XOR+6, AND+1~, AND+4*, AND+5*, AND+6 | 
| BITS | XOR+1~, XOR+4*, XOR+5 | 
| CHAR | BIN2HEX+1~, BIN2HEX+7* | 
| CHR | CRC4ARRY+1~, CRC4ARRY+10*, CRC4ARRY+11 | 
| DIGIT | BIN2HEX+1~, BIN2HEX+6*, BIN2HEX+7, INT2HEX+1~, INT2HEX+4*, INT2HEX+5, HEX2INT+1~, HEX2INT+4*, HEX2INT+5 | 
| HEX | HEX2BIN~, HEX2BIN+2, HEX2BIN+4, BIN2HEX+1~, BIN2HEX+4*, BIN2HEX+7*, BIN2HEX+8, INT2HEX+1~*, INT2HEX+5*, INT2HEX+6* , INT2HEX+7, HEX2INT~, HEX2INT+2, HEX2INT+4, HEX2INT+5* | 
| HEXTBL | CRC4ARRY+1~, CRC4ARRY+3*, HEX2BIN+4, BIN2HEX+7, INT2HEX+4, HEX2INT+4 | 
| I | CRC4ARRY+1~, CRC4ARRY+9*, CRC4ARRY+10 | 
| IDX | CRC4ARRY+1~, CRC4ARRY+6*, CRC4ARRY+7*, CRC4ARRY+8, XOR+1~, XOR+3*, AND+1~, AND+3*, HEX2BIN+1~, HEX2BIN+3* , HEX2BIN+4, BIN2HEX+1~, BIN2HEX+5*, HEX2INT+1~, CRCTABLE~, CRCTABLE+2, CRCTABLE+3, CRCTABLE+5, CRCTABLE+6*, CRCTABLE+7 | 
| IDX1 | XOR+1~, AND+1~ | 
| IDX2 | XOR+1~, AND+1~ | 
| INT | INT2HEX~, INT2HEX+3, INT2HEX+4, INT2HEX+5*, HEX2INT+1~*, HEX2INT+3*, HEX2INT+5*, HEX2INT+6 | 
| LEN | CRC4ARRY+8*, CRC4ARRY+9, XOR+1~, XOR+2*, XOR+3, AND+1~, AND+2*, AND+3, HEX2BIN+1~, HEX2BIN+2* , HEX2BIN+3, BIN2HEX+1~, BIN2HEX+2*, BIN2HEX+3, BIN2HEX+4*, BIN2HEX+5 | 
| LEN1 | XOR+1~, XOR+2*, XOR+4, XOR+6*, XOR+7, AND+1~, AND+2*, AND+5, AND+6* | 
| LEN2 | XOR+1~, XOR+2*, XOR+4, XOR+6*, XOR+8, AND+1~, AND+2*, AND+5, AND+6* | 
| LINE | CRC4ARRY+1~, CRC4ARRY+8*, CRC4ARRY+10, CRCTABLE+1~, CRCTABLE+3*, CRCTABLE+4*, CRCTABLE+7 | 
| MASK1 | CRC4ARRY+1~, CRC4ARRY+4*, CRC4ARRY+16 | 
| MASK2 | CRC4ARRY+1~, CRC4ARRY+5*, CRC4ARRY+11 | 
| OFFSET | HEX2BIN+1~, HEX2BIN+4*, HEX2BIN+5, CRCTABLE+1~, CRCTABLE+5*, CRCTABLE+6 | 
| RESULT | CRC4ARRY+1~, CRC4ARRY+6*, CRC4ARRY+11, CRC4ARRY+16*, CRC4ARRY+17*, CRC4ARRY+18*, CRC4ARRY+19*, CRC4ARRY+20 | 
| SHIFT | SHR~, SHR+1, SHR+2 | 
| SIZE | INT2HEX~, INT2HEX+2*, INT2HEX+6 | 
| TBLIDX | CRC4ARRY+1~, CRC4ARRY+11*, CRC4ARRY+12*, CRC4ARRY+13, CRC4ARRY+14 | 
| TBLVALUE | CRC4ARRY+1~, CRC4ARRY+14*, CRC4ARRY+15*, CRC4ARRY+17 | 
| VALUE | CRCTABLE+1~, CRCTABLE+7*, CRCTABLE+8 | 
| Name | Field # of Occurrence | 
|---|---|
| $T(TBL+LINE | CRCTABLE+4 |