We encode machine words in bar codes quite similar to the way punched cards work. These were used back in the early days of computing as input medium for computers.
We use A4 paper for our cards, so the height is always the same. The width of the card depends on how many bars per line we have.
Given a 12-bit code line, the dimensions of a card are 102 mm x 297 mm (WxH).
By default, each card can contain a maximum of 10 lines of code.
Total line height: 25 mm
Distance between lines: 10 mm
A bar and its following whitespace are called a block. Each line can contain a maximum of 12 blocks with a bar been set (= black) or left out (= white).
Total block dimension: 8 mm x 15 mm (WxH)
Bar dimension: 4 mm x 15 mm (WxH)
Whitespace width: 4 mm
The first position is not part of the channel code but is a SYN bit (marked red). It is always set and should be used for calibration and alignment.
Following, from most significant bit (MSB) to least significant bit (LSB), is a 11 bit channel codeword that encodes an operand, letter or one of the available instructions, i.e. a machine word.
We have created a tool called Card Generator which can be used to generate bar code cards for printing.
The tool expects an input file or a list of files containing encoded 11-bit machine words (length is configurable) in order of execution line-wise. You can add comments or annotations to input files by appending a leading "#" to the respective line.
When printing bar code cards, ensure to disable any scaling in order to achieve precise dimensions that match our specifications.