Maxicode Encoder Technical and Support Information

Supported Platforms

Platform Supported Languages Available Media
OS/390, z/OS COBOL II, C XMT files (via CD-ROM, E-Mail)
OS/400 COBOL, C, RPG, PL/I Save Files (via CD-ROM, E-Mail)


  1. OS/390 and z/OS support requires C runtime libraries or LE/370
  2. Supported Unix platforms include:
    • AIX
    • HP-UX
    • Linux

    Other Unix platforms available by special arrangement. Please contact us.


(Click a link to view the PDF document in your browser – right click it to download)

Invocation Examples

Frequently-Asked Questions


  1. How does generating and printing Maxicode symbols differ from other barcodes?

    Unlike many one-dimensional barcodes (like Code 128 or Code 39), Maxicode symbols cannot be printed by simply using a special font. While we do provide a custom font for printing a Maxicode symbol, this is done to simplify the task of printing the symbol. The majority of the work is performed by the encoder, a callable library routine. The encoder is a sophisticated piece of software that performs all of the necessary formatting, data compaction, and error correction that goes into a Maxicode symbol.

  2. In general, how does the Maxicode encoder work?

    The Maxicode product consists of two components; a callable library routine, and a special Maxicode font. Your application program must call this library routine with the data you wish to “encode” in the Maxicode symbol. The library routine returns a buffer of characters (510 characters to be precise). Your application program then sends these characters to the printer, using the Maxicode font. The complexity of this final step depends on your printing environment.

MVS, OS/390, z/OS

  1. What’s the minimum version of MVS supported?

    The encoder has been tested as far back as MVS 5.2.2. The encoder may work on earlier version; however, we do not have the facilities for testing these versions. The C runtime libraries must also be present (e.g., as part of LE/370) and must be compiled in AMODE=31 (the default). Your calling program must also be running “above the line” to call the encoder directly.

  2. What’s the minimum version of OS/390 or z/OS supported?

    The encoder is currently supported by all versions of OS/390 and z/OS. The C runtime libraries must have been installed and compiled in AMODE=31 (the default). Your calling program must also be running “above the line” to call the encoder directly.

  3. What programming languages are supported?

    The Maxicode encoder is distributed as an application callable load library (written in C). COBOL II and C are directly supported. Other languages like RPG and PL/I, while not documented, should work with the encoder. Sample programs written in a variety of languages are provided.

  4. How is the Maxicode encoder linked with my application?

    Our Maxicode routine is shipped as a load library and can be linked either statically or dynamically with your application. When the library is first installed on your system it must be linked with your C runtime libraries. JCL for this step is provided.


  1. What’s the minimum version of OS/400 supported?

    The minimum version is V4R1M0.

  2. Are Original Programming Model languages (COBOL/400, RPG/400) supported?

    Yes. The Maxicode encoder is distributed as an ILE service program. However, special ILE interface programs have been provided for OPM and EPM environments that invoke the service program for the calling program. Sample COBOL/400 and RPG/400 programs are supplied which demonstrate the calling convention.

  3. Are Integrated Language Environment (ILE) languages (ILE COBOL, ILE RPG) supported?

    Yes. The Maxicode encoder is distributed as an ILE service program. The CRTPGM command is used to link the service program with your ILE modules. Sample ILE COBOL and RPG programs are supplied which demonstrate the calling convention.

  4. How do I print the Maxicode symbol from an AS/400?

    The Maxicode encoder returns 17 lines of characters, each 30 characters long, which need to be printed using our special Maxicode font. Furthermore, these lines must be printed using a line spacing of 16.5 lines per inch (0.0606 inches). The simplest way to do this on an AS/400 is to print using a DDS to an AFP capable printer. The DDS for the Maxicode record may look something like this:

    A MAXI01 30A POSITION(1.700 1.35)
    A MAXI02 30A POSITION(1.761 1.35)
    A MAXI03 30A POSITION(1.821 1.35)
    A MAXI04 30A POSITION(1.882 1.35)
    A MAXI05 30A POSITION(1.942 1.35)
    A MAXI06 30A POSITION(2.003 1.35)
    A MAXI07 30A POSITION(2.064 1.35)
    A MAXI08 30A POSITION(2.124 1.35)
    A MAXI09 30A POSITION(2.185 1.35)
    A MAXI10 30A POSITION(2.245 1.35)
    A MAXI11 30A POSITION(2.306 1.35)
    A MAXI12 30A POSITION(2.367 1.35)
    A MAXI13 30A POSITION(2.427 1.35)
    A MAXI14 30A POSITION(2.488 1.35)
    A MAXI15 30A POSITION(2.549 1.35)
    A MAXI16 30A POSITION(2.609 1.35)
    A MAXI17 30A POSITION(2.670 1.35)

Sample COBOL, C, and RPG programs are all provided for the AS/400.


  1. How is a Maxicode symbol printed?

    Normally, the Maxicode encoder uses font rendering to print the Maxicode symbol. The actual “output” of the encoder library is simply a series of characters (usually 0’s, 1’s, 2’s, 3’s, and a single 5). This data is organized as 17 lines of 30 characters each. When printed using the provided Maxicode font, the correct symbol is “rendered” by the printer. For example, the output of the encoder may look like the group of characters shown below. When rendered in the provided font, the result is the Maxicode symbol image shown to the right.

    Maxicode image

  2. Which AFP/IPDS printers are supported?

    All AFP capable IPDS printers are supported (both 240 and 300/600/1200 DPI). It is important to note though that your operating environment must have AFP support installed and operational (specifically, our software requires a PSF host). 3800 series printers are supported only if they are operating in page mode and AFP is present on the system.

  3. Which Xerox printers are supported?

    We have the ability to generate fonts for most Xerox printers. In particular, 9700-series and 5-word fonts are provided. While we can generate fonts for other printer series (e.g., 2700 and 3700) we do not have the ability to test these, nor can we necessarily deliver these fonts on the appropriate media. Call us for individual evaluation of your printer environment.

  4. Which PCL printers are supported?

    We provide soft fonts for HP PCL printers. These fonts will work on virtually any HP compatible laser printer. Furthermore, we provide some basic documentation on downloading and printing with soft fonts. However, this documentation does not address generating PCL on all possible platforms (e.g., MVS and OS/400).