Exception Table Entry Format
Each exception table entry consists of five words. The first two words contain the first eight characters of the transit number by packing the low order nibble of the numeric transit number characters. For Canadian checks, eliminate the dash and store the eight numerics. The next three words are used as six individual bytes to tell the firmware how to interpret the MICR characters that fall to the right of the rightmost transit symbol. Each of the six bytes is positional and consists of two parts: character type and number.
The three high order bits of each byte mark the character type. The characters can be marked in three ways: check serial # character, account # character, or “skip this character or symbol.”
The five low order bits of each byte contain the number of characters of that type to extract. Most exceptions will not need to use all six bytes; in that case clear the unused bytes to zero.
Bits within Byte |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
---|---|---|---|---|---|---|---|---|
check serial # character string |
0 |
0 |
1 |
n |
n |
n |
n |
n |
account # character string |
0 |
1 |
0 |
n |
n |
n |
n |
n |
character string to ignore |
1 |
0 |
0 |
n |
n |
n |
n |
n |
Example:
t123456780t12349876543210o 1234 is the check serial #
9876543210 is the account #
To load the second table entry, which starts at word 25, the transit number 123456780 would be stored in the first two words of its table entry using this string of commands:
0x1B 0x73 0x12 0x34 25
0x1B 0x73 0x56 0x78 26
After the right transit symbol are immediately the four characters of the check serial #, followed immediately by the ten characters of the account number. These would be bitwise encoded as:
0 0 1 0 0 1 0 0 (check #, four characters)
and 0 1 0 0 1 0 1 0 (account #, 10 characters)
then stored in the other three words of the table entry using:
0x1B 0x73 0x24 0x4A 27
0x1B 0x73 0x00 0x00 28
0x1B 0x73 0x00 0x00 29
Example:
t22137-632t001 6042202o927540 2754 is the check serial #
6042202 is the account #
To load the third table entry, which starts at word 30, the transit number 2137-632 would be stored in the first two words of its table entry using this string of commands:
0x1B 0x73 0x22 0x13 30
0x1B 0x73 0x76 0x32 31
After the right transit symbol are four characters to skip, a seven digit account number, two characters to skip, and finally a four digit check serial #. The final character to skip need not be encoded. These would be bitwise encoded as:
1 0 0 0 0 1 0 0 (skip four characters)
0 1 0 0 0 1 1 1 (account #, seven characters)
1 0 0 0 0 0 1 0 (skip two characters)
0 0 1 0 0 1 0 0 (check #, four characters)
then stored in the other three words of the table entry using:
0x1B 0x73 0x84 0x47 32
0x1B 0x73 0x82 0x24 33
0x1B 0x73 0x00 0x00 34.