MSI is a barcode symbology developed by the MSI Data Corporation, based on the original Plessey Code symbology. It is a continuous symbology, not self-checking. MSI is used for inventory control, marking storage containers and shelves in warehouse environments; the MSI bar code represents only digits 0–9. Each digit is converted to 4 binary coded decimal bits. A 1 bit is prepended and two 0 bits are appended; each bit is printed as a bar/space pair totalling three modules wide. A 0 bit is represented as 1/3 bar followed by 2/3 space, while a 1 bit is represented as 2/3 bar followed by 1/3 space; each digit and guard character is represented by a binary number. To produce a barcode image from this map, one must consider the digit 1 to be a black bar and the digit 0 to be a white bar and produce an image accordingly; the MSI barcode uses one of five possible schemes for calculating a check digit: No check digit Mod 10 Mod 11 Mod 1010 Mod 1110 When using the Mod 10 check digit algorithm, a string to be encoded 1234567 will be printed with a check digit of 4: 12345674 The Mod 10 check digit algorithm uses the Luhn algorithm.
1. Reverse the string to be encoded. Let S be the reverse of the string to be encoded S = 7654321 2; the string is "weighted" using a repeating weighting factor pattern. There are two modulo 11 algorithms which use different repeated weighting factor patterns: the IBM algorithm which uses, the NCR algorithm which uses. Get the sum of the string by looping through each character and multiply it by a weight from 2 to 7 or 2 to 9 depending on its position. If the weight's value exceeds the highest number, reset the weight back to 2; this example is using the IBM modulo 11 algorithm with a weighting pattern of Let X = the final product of the string to encode. X = 7 * 2 X = 6 * 3 X = 5 * 4 X = 4 * 5 X = 3 * 6 X = 2 * 7 X = 1 * 2 X = 14 + 18 + 20 + 20 + 18 + 14 + 2 X = 106 3. Mod the sum by 11, subtract the result from 11, apply the mod 11 function again. Let C equal the check digit. C = mod 11 C = mod 11 C = mod 11 C = 4 mod 11 C = 4 The check digit is 4. Calculate the Mod 10 check digit the first time and calculate it again with the previous result and append the result of the second Mod 10 Calculation to the string to be encoded.
Same as Mod 1010 but the first calculation should be a Mod 11 Check digit. As an example, we will generate an MSI barcode for the number sequence 1234567 using the most common Mod 10 check digit methodology; the check digit for this sequence is 4. Once you have calculated your check digit map each character in the string to be encoded using the table above as a reference to get the binary map of the bar code.
Intelligent Mail barcode
The Intelligent Mail Barcode is a 65-bar barcode for use on mail in the United States. The term "Intelligent Mail" refers to services offered by the United States Postal Service for domestic mail delivery; the IM barcode is intended to provide greater information and functionality than its predecessors POSTNET and PLANET. An Intelligent Mail barcode has been referred to as a One Code Solution and a 4-State Customer Barcode, abbreviated 4CB, 4-CB or USPS4CB; the complete specification can be found in USPS Document USPS-B-3200. It incorporates the routing ZIP code and tracking information included in used postal barcode standards; the barcode is applied by the sender. Use of the barcode provides increased overall efficiency, including improved deliverability, new services; the Intelligent Mail barcode is a height-modulated barcode that encodes up to 31 decimal digits of mail-piece data into 65 vertical bars. The code is made up of four distinct symbols, why it was once referred to as the 4-State Customer Barcode.
Each bar contains the central "tracker" portion, may contain an ascender, neither, or both. The 65 bars represent 130 bits, grouped as ten 13-bit characters; each character has 5, 8, or 11 of its 13 bits set to one. The Hamming distance between characters is at least 2. Single-bit errors in a character can be detected; the characters are interleaved throughout the symbol. The number of characters can be calculated from the binomial coefficient. + + + = 78 + 1287 + 1287 + 78 = 2 ⋅ 1365 = 2730 The total number of characters is two times 1365, or 2730. Log2 is 11.41469. So the 65 bars encode a 114-bit message; the encoding includes an eleven-bit cyclic redundancy check to detect, but not correct, errors. Subtracting the 11 CRC bits from the 114-bit message leaves an information payload of 103 bits. 27 of the 130 bits are devoted to error detection. The IM barcode carries a data payload of 31 digits representing the following elements: A Barcode Identifier is assigned by the United States Postal Service to encode the presort identification, printed in human readable form on the optional endorsement line.
It is available for future United States Postal Service use. This is accomplished using two digits, with the second digit in the range of 0–4; the allowable encoding ranges are 00–04, 10–14, 20–24, 30–34, 40–44, 50–54, 60–64, 70–74, 80–84, 90–94. The list of valid field values is as follows: A three-digit value represents both the class of the mail, any services requested by the sender. Basic STIDs, for the purpose of automation only, are as follows: For a detailed list of STIDs, see Appendix A of the USPS Guide to Intelligent Mail Letters and Flats or Service Type Identifiers. A six- or nine-digit number assigned by the United States Postal Service identifies the specific business sending the mailing. Higher volume mailers are eligible to receive six-digit Mailer IDs, which have a larger range of associated sequence numbers. To make it possible to distinguish six-digit IDs from nine-digit IDs, all six-digit IDs begin with a digit between 0 and 8, while all nine-digit IDs begin with the digit 9.
A mailer-assigned six- or nine-digit ID specific to one piece of mail, to identify the specific recipient or household. The mailer must ensure that this number remains unique for a 45-day period after the mail is sent if a Full Service discount is claimed; the Sequence Number is either six or nine digits, based on the length of the Mailer ID. If the Mailer ID is six digits long the Sequence Number is nine digits long, vice versa, so that there will always be fifteen digits in total when the Mailer ID and the Sequence Number are combined; this section of the code may be omitted, but if it is present, the five-, nine-, or eleven-digit forms of the ZIP code are encoded in the Intelligent Mail barcode. The full eleven-digit form includes the standard five-digit ZIP code, the ZIP + 4 code, a two-digit code indicating the exact delivery point; this is the same information, encoded in the POSTNET barcode, which the Intelligent Mail barcode replaces. Barcodes can be printed directly on documents to display through a window envelope or onto envelopes at various points in the mailing process.
Many large companies use some or all of these approaches based on business needs, environment, as well as the unique characteristics of an application. In recent years, more companies have been applying barcodes as part of document creation, with all barcode information included in the initial data payload; this trend has been driven by other initiatives, such as transpromotional transaction documents, where the goal is to produce individualized, relevant statements. Creating barcodes at this point in the process may require some added effort, but with the proximity to databases and business
Interleaved 2 of 5
Interleaved 2 of 5 is a continuous two-width barcode symbology encoding digits. It is used commercially on 135 film, for ITF-14 barcodes, on cartons of some products, while the products inside are labeled with UPC or EAN. ITF encodes pairs of digits. Two out of every five bars or spaces are wide; the digits are encoded to "W" a wide line. The wide lines form a two-out-of-five code with consecutive values of 1, 2, 4, 7, 0, where the code 0 has a value of 11; this is similar to the POSTNET bar code. Before the actual pairs there is a start code consisting of nnnn, after all symbols there is the stop code consisting of Wnn; because digits are encoded by pairs, only an number of digits can be encoded. An odd number of digits is encoded by adding a "0" as first digit, but sometimes an odd number of digits is encoded by using five narrow spaces in the last digit. A checksum can be added as last digit, calculated in the same way as UPC checksums. There are specific constraints on the height and width of the bars and the width of the "quiet areas", the blank areas before the start and after the stop symbol.
On 135 film canisters it is used to identify the manufacturer, the film type, number of exposures and proprietary information in 6 digits. The barcode is located between the electrically read silver and black DX Camera Auto-Sensing Code and the film can exit lip, it is optically scanned by many film-processing machines when the cartridge is inserted for developing. Identcode and Leitcode are variants of interleaved 2 of 5 with check digits used by Deutsche Post. ITF-14 Two-out-of-five code Linear barcodes
PostBar known as CPC 4-State, is the black-ink barcode system used by Canada Post in its automated mail sorting and delivery operations. It is similar to other 4 State barcode systems used by Australia Post and the United Kingdom's Royal Mail, but uses an obscured structure and encoding system unique to Canada Post; this particular bar code system is used on parcels. This symbology, derived from the RM4SCC system used by the British Royal Mail, uses a series of bars, each of which can individually have one of four possible states, to encode information used in automated sortation and delivery onto each piece of mail; each bar can either be short and centred and elevated, medium and lowered, or full height. This symbology uses an element known as a Data Content Identifier, which specifies what types of information are encoded into each barcode, such as postal codes, customer information, exact delivery points; the information that goes into each barcode is obtained from the address printed on the front of the envelope it is printed on, as well as the physical dimensions of each piece of mail.
This code uses a Reed-Solomon error correction technique, so that in case a particular piece of mail is mishandled, the information encoded in the barcode can still be decoded. Four character sets known as "A", "N", "Z" and "B" characters. Three-bar A characters are used to encode letters, two-bar N characters encode only digits. Three-bar Z characters can encode either digits. A and N characters are used to encode postal codes and country codes. Z characters are used for address locators, product types, customer and service information. B characters are one bar each, are used to encode base-4 machine IDs for Canada Post's internal uses; the bars making up a character can be interpreted as base-3 digits. A full height bar encodes 0, a short lower bar encodes 1, a short upper bar encodes 2; the leftmost bar in a group is the most significant trit, may have the value 3, with both upper and lower bars short. In other words, short upper and lower bars are assigned weights of 18 & 9, 6 & 3, 2 & 1, from left to right.
Since the first bar has 4 possible values, the following bars have 3, 2 bars can encode 4×3 = 12 values, while 3 bars can encode 4×3×3 = 36. N characters are encoded as the values 0–9. Only the value 9 requires a leading 3. Z characters use the full 36 combinations representable by 3 bars; the values 0–25 encode the letters A–Z, 26–35 encode the digits 0–9. A characters have a somewhat peculiar encoding, they can be decoded as three base-3 digits, with the values 2–26 encoding A–Y. Exceptions are that 0 encodes M, 1 encodes H, 9 encodes Z, code 14 is not used. Canada Post uses nine different formats of PostBar codes—three "domestic" barcodes, used on mail within Canada, two "global" codes, used to route mail outside Canada, three "service" codes, used on customer-applied barcodes, an "internal" code, used for testing and tracking purposes by Canada Post; each barcode ends with an identical pair of bars, known as "start" and "stop" fields. These are made up of one tracker; the Data Content Identifier is always the first character after the start field.
Placeholders used to detail each PostBar format below are A, N, Z and B for the character sets described above, * for the start and stop fields, # for a space character, for the error-correction field, where nn is the number of bars used. Bold Z's indicate DCIs. See caution at bottom of article regarding use of PostBar codes. DCI's used in domestic barcodes fall within the range of A–L. PostBar. D07: * Z ANANAN * PostBar. D12: * Z ANANAN ZZZZ # * PostBar. D22: * Z ANANAN ZZZZZZZZZZZ * DCI's used in global barcodes fall within the range of 1–9. PostBar. G12: * Z NNN ZZZZZZZZ * PostBar. G22: * Z NNN ZZZZZZZZ ZZZZZZZZZZ * DCI's used in service barcodes fall within the range of M–U. PostBar. S06: * Z ZZZZZ * PostBar. S11: * Z ZZZZZZZZZZ * PostBar. S21: * Z Z ZZZZZZZZZZZZZZZZZZZ * DCI's used in internal barcodes fall within the range of V–Z. PostBar. C10: * Z ANANAN BBBB * 52 bar long 4-state barcodes are used by Canada Post for business reply mail addressing and payment; as of 2013 or earlier the previous BRM barcode, which were Code 93-type barcodes, were deemed non-machineable.
An extended 73 bar long BRM barcode'C73', scheduled for availability from 2011, was indefinitely postponed. The PostBar barcode dimensions and symbology examples in Canada Post's 4-State Bar Code Handbook and as implemented by Canada Post are different from the formats and symbology described in this article and in U. S. Patent 5,602,382. For PostBar format D12, as described in this article and shown here, the Postal Code is encoded using fifteen bars and the'A' and'N' character sets; the Address Locater encodes four alphanumerics using twelve bars and the'Z' characters set. This format includes a space character and twelve bars for Reed-Solomon error correction for a total count of forty nine bars. On the other hand, PostBar format D52.01, as described in Canada Post's 4-State Bar Code Handbook and shown here, encodes the Postal Code using only twelve bars and an unknown symbology. It encodes nine alphanumerics in the Address Locater field using twenty one bars and another unknown symbology, it does not inc
IBM 7070 was a decimal architecture intermediate data processing system, introduced by IBM in 1958. It was part of the IBM 700/7000 series, was based on discrete transistors rather than the vacuum tubes of the 1950s, it was the company's first transistorized stored-program computer. The 7070 was expected to be a "common successor to at least the 650 and the 705"; the 7070 was not designed to be instruction set compatible with the 650, as the latter had a second jump address in every instruction to allow optimal use of the drum, something unnecessary and wasteful in a computer with random-access core memory. As a result, a simulator was needed to run old programs; the 7070 was marketed as an IBM 705 upgrade, but failed miserably due to its incompatibilities, including an inability to represent the 705 character set. The 7070 series stored data in a 10 decimal digit plus sign word. Digits were encoded using a two-out-of-five code. Characters were represented by a two-digit code; the machine shipped with 5,000 to 9,990 words of core and the CPU speed was about 27KIPS.
A typical system was leased for $17,400 per month or could be purchased for $813,000. The 7070 weighed 23,150 pounds. Systems in this series were the faster IBM 7074 introduced in July 1960 and the IBM 7072, they were replaced by the System/360, announced in 1964. The 7070 was implemented using both CTDL and current mode logic on Standard Modular System cards. A total of about 30,000 alloy-junction germanium transistors and 22,000 germanium diodes are used, on 14,000 SMS cards; the IBM 7300 Disk Storage Unit had a capacity of 6 million digits. From 1961: the IBM 1301-1 Disk Storage Unit which had a capacity of 28 million characters. IBM 1414-6 Input-Output Synchronizer contains 6 buffers and can attach a variety of serial I/O devices:1009 Data Transmission Unit 1011 Paper Tape Reader 1014 Remote Enquiry Units Telegraph I/O unitsThe 1414-6 is connected to 7070/7074 via the IBM 7907 Data Channel Switch; the 7907 can execute channel programs from the main memory of the 7070. IBM 608, IBMs first all-transistor product The IBM 7070 Experiences of one user, Tom Van Vleck BIRTH OF AN UNWANTED IBM COMPUTER Computer History Vignettes by Bob Bemer IBM 7070 documentation on Bitsavers.org Dave Pitts' IBM 7090 support – Includes a cross assembler for the IBM 7070/7074 Weik, Martin H..
A Third Survey of Domestic Electronic Digital Computing Systems: IBM 7070 Section. Ballistic Research Laboratories. Report No. 1115. Contains about 10 pages of IBM 7070 survey detail: applications, customers and costs. Cover of IBM 7070 brochure at Classic Computer Brochures
Code 128 is a high-density linear barcode symbology defined in ISO/IEC 15417:2007. It is used for numeric-only barcodes, it can encode all 128 characters of ASCII and, by use of an extension symbol, the Latin-1 characters defined in ISO/IEC 8859-1. GS1-128 is a subset of Code 128 and is used extensively worldwide in shipping and packaging industries as a product identification code for the container and pallet levels in the supply chain. A Code 128 barcode has six sections: Quiet zone Start symbol Encoded data Check symbol Stop symbol Final bar Quiet zoneThe check symbol is calculated from a weighted sum of all the symbols. Code 128 includes 108 symbols: 103 data symbols, 3 start symbols, 2 stop symbols; each symbol consists of three white spaces of varying widths. All widths are multiples of a basic "module"; each bar and space is 1 to 4 modules wide, the symbols are fixed width: the sum of the widths of the three black bars and three white bars is 11 modules. The stop pattern has four bars; the stop pattern permits bidirectional scanning.
When the stop pattern is read left-to-right, the stop symbol is recognized. When the stop pattern is read right-to-left, the reverse stop symbol is recognized. A scanner seeing the reverse stop symbol knows it must skip the 2-module bar and read the rest of the barcode in reverse. Despite its name, Code 128 does not have 128 distinct symbols, so it cannot represent 128 code points directly. To represent all 128 ASCII values, it shifts among three code sets. Together, code sets B cover all 128 ASCII characters. Code set; the initial subset is selected by using the appropriate start symbol. Within each code set, some of the 103 data code points are reserved for shifting to one of the other two code sets; the shifts are done using code points 98 and 99 in code sets A and B, 100 in code sets A and C and 101 in code sets B and C to switch between them): 128A – ASCII characters 00 to 95, special characters, FNC 1–4 128B – ASCII characters 32 to 127, special characters, FNC 1–4 128C – 00–99 and FNC1 The minimum width of the Quiet Zone to the left and right of the 128 Bar Code is 10x, where x is the minimum width of a module.
It is mandatory at the left and right side of the barcode. Each symbol in the barcode is composed of three spaces; each bar or space is 1, 2, 3 or 4 units wide, the sum of the widths of bars must be the sum of the widths of the spaces must be odd, total 11 units per symbol. For instance, encoding the ASCII character "0" can be viewed as 10011101100, where a sequence of 1's is a bar and a sequence of 0's is a space. A single 1 would be the thinnest line in the bar code. Three 1's in sequence indicates a bar three times as thick as a single 1 bar. There are 108 possible 11-unit wide symbols, the code uses all possible symbols. Two of the symbols are used for stop indication and reverse stop; the two stop symbols are special because they are always followed by a 2-unit bar, forming a 13-unit long stop pattern. Reading the stop pattern left to right is the stop symbol, reading the stop pattern right to left is the reverse stop symbol; the check digit is a weighted modulo-103 checksum. It is calculated by summing the start code'value' to the products of each symbol's'value' multiplied by its position in the barcode string.
The start symbol and first encoded symbol are in position 1. The sum of the products is reduced modulo 103; the remainder is converted back to one of the 103 non-delimiter symbols and appended to the barcode before the stop symbol. For example, in the following table, the code 128 variant A checksum value is calculated for the alphanumeric string PJJ123C: For the purpose of computing the check symbol, the shift and code-switch symbols are treated the same as any other symbol in the bar code; the checksum is computed over the symbol values, without regard for which code set is active at the time. For instance the code set C value "33" and the code set B value "A" are both considered to be a Code 128 value of 33, the check digit is computed based on the value of 33 times the symbol's position within the barcode; the special symbol FNC4, present only in code sets A and B, can be used to encode all the Latin-1 characters in a Code 128 barcode. The feature is not supported and is not used in GS128.
When a single FNC4 is present in a string, the following symbol is converted to ASCII as usual, 128 is added to the ASCII value. If two FNC4s are used consecutively all following characters will be treated as such, up to the end of the string or another pair of FNC4s. Between the double FNC4s, a single FNC4 will be used to denote that the following character will be standard ASCII. Code128 specifies a combination of 6 alternating spaces for each symbol. Thus, each symbol ends with a space. In barcode fonts, the final bar is combined with the stop symbol to make a wider stop pattern; the following table details the widths associated with each space for each symbol. The width of each bar or space may be 2, 3 or 4 units. Using t
Telepen is a name of a barcode symbology designed in 1972 in the UK to express all 128 ASCII characters without using shift characters for code switching, using only two different widths for bars and spaces. Unlike most linear barcodes, Telepen does not define independent encodings for each character, but instead operates on a stream of bits, it is able to represent any bit stream containing an number of 0 bits, is applied to ASCII bytes with parity, which satisfy that rule. Bytes are encoded in little-endian bit order; the string of bits is divided into 1 bits, blocks of the form 01*0. That is, blocks beginning an ending with any number of 1 bits in between; these are encoded as follows: "1" is encoded as narrow bar-narrow space "00" is encoded as wide bar-narrow space "010" is encoded as wide bar-wide space Otherwise, the leading "01" and trailing "10" are both encoded as narrow bar-wide space, with additional 1 bits in between coded as described above. Wide elements are 3 times the width of narrow elements, so every bit occupies 2 narrow elements of space.
Bar codes always start with ASCII _. This has code 0x5F, so the bit stream is 11111010. Thus, it is represented as 5 narrow bar/narrow space pairs, followed by a wide bar/wide space. Bar codes always end with ASCII z; this has code 0xFA, so the bit stream is 01011111. This is encoded as a wide bar/wide space, followed by 5 narrow bar/narrow space pairs; each end of the bar code consists of repeated narrow elements terminated by a pair of wide elements, but the start has a wide bar first, while if the code is read in reverse, the wide space will be encountered first. In addition to per-character parity bits, a telepen symbol includes an overall modulo-127 checksum