Code 39 Advanced Features and Functions
Mod 43 Check Character
Standard Code 39 can be printed with a "Mod 43 Check Character". This Mod 43 check character cannot be used with Full ASCII Code 39. The check character is derived by assigning a value to each character in the data to be bar coded from the table as follows:
Char  | value  | Char  | value  | Char  | value  | Char  | value  | 
0  | 0  | B  | 11  | M  | 22  | X  | 33  | 
1  | 1  | C  | 12  | N  | 23  | Y  | 34  | 
2  | 2  | D  | 13  | O  | 24  | Z  | 35  | 
3  | 3  | E  | 14  | P  | 25  | -  | 36  | 
4  | 4  | F  | 15  | Q  | 26  | .  | 37  | 
5  | 5  | G  | 16  | R  | 27  | space  | 38  | 
6  | 6  | H  | 17  | S  | 28  | $  | 39  | 
7  | 7  | I  | 18  | T  | 29  | /  | 40  | 
8  | 8  | J  | 19  | U  | 30  | +  | 41  | 
9  | 9  | K  | 20  | V  | 31  | %  | 42  | 
A  | 10  | L  | 21  | W  | 32  | 
  | 
  | 
Table C-1.  Mod 43 Check character calculation for Code 39
Here is an example to illustrate how the check character is calculated for bar code data of 123XYZ:
1.Take the sum of the values assigned to each character:
1 + 2 + 3 + 33 + 34 + 35 = 108
1 2 3 X Y Z
2.Divide the sum by 43: (thus the name modulus 43)
108/43 = 2 with a Remainder of 22
3.Find the character corresponding with the remainder.
M (value 22) is the CHECK CHARACTER
The data becomes 123XYZM, with M added as the 
33