====== Modulo 43 Barcodes ====== Modulo 43, or Code 39 Mod 43, is an extension of the Code 39 barcode symbology. === How it works === * Each character of the Barcode in turn is looked up in the following string **0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%** * When the character is found the offset of that character is added to a running total * At the end of the string the subtotal is divided by 43 * The offset of the remainder of the division is then looked up in the search string and appended to the barcode |00|**0**| |11|**B**| |22|**M**| |33|**X**| |01|**1**| |12|**C**| |23|**N**| |34|**Y**| |02|**2**| |13|**D**| |24|**O**| |35|**Z**| |03|**3**| |14|**E**| |25|**P**| |36|**-**| |04|**4**| |15|**F**| |26|**Q**| |37|**.**| |05|**5**| |16|**G**| |27|**R**| |38|**space**| |06|**6**| |17|**H**| |28|**S**| |39|**$**| |07|**7**| |18|**I**| |29|**T**| |40|**/**| |08|**8**| |19|**J**| |30|**U**| |41|**+**| |09|**9**| |20|**K**| |31|**V**| |42|**%**| |10|**A**| |21|**L**| |32|**W**| === Example === * 229446L6 * Using the Barcode **229446L6**. * Substituting the characters for the positional values gives 2 + 2 + 9 + 4 + 4 + 6 + 21 + 6 = 54 * The subtotal (54) divided by 43 gives a remainder of 11. * Character 11 in the search string is **B**. * So a modulo 43 Barcode with value **229446L6** would be **229446L6B** === How TapeTrack caters for Module 43 === If your tape library consists only of media volumes that use the Modulo 43 check digit the simplest approach would be to create a Barcode definition that says (presuming all of your Barcodes have 6 digits) the volume serial portion of the Barcode is made up of digits 1-6 of what is scanned. In reality things are probably not going to be that simple. So if you have some Barcodes with Modulo 43 and some without this is how TapeTrack manages them: When the [[master:media#options-tab|Media Option]] ''Barcodes Use Modulo43'' to true, all Barcodes are treated as Modulo43 barcodes. Any barcode scanned will then confirm the Modulo43 check value is correct before removing this value and inputing the truncated barcode into TapeTrack. For example, Barcode **229446L6B** will scan, check that **B** is the correct modulo43 check value, trim the **B** off the end of the Barcode and input **229446L6** into TapeTrack. When you have a mix of standard and Modulo43 Barcodes within your inventory, expanding out the [[master:media#options-tab|Media Option]] ''Barcodes Use Modulo43'' allows barcodes of different lengths to be handled as either a standard or Modulo43 Barcode. Setting ''Barcodes Use Modulo43'' and ''Exclude Length 8'' to true will have the effect of any 8 character Barcode [[desktop:scan_window|scanned]] without being handled by Modulo43 input rules. Any other length Barcode will be treated as a Modulo43 Barcode and handled appropriately. {{:master:tapemaster_media_options_modulo43_exclude8.png}} For example, Barcode **123456L6** will [[desktop:scan_window|scan]] as **123456L6** without alteration, where as **22944L6B** will [[desktop:scan_window|scan]] in as **22944L6**. {{:master:tapemaster_modulo43_scan.png}} ===See Also=== [[barcode-processing|TapeTrack Barcode Parsing]] {{tag>technote barcode modulo43 scan update-doco}}