Submitter: Mike Andrew

This source code provides an SCS->OEM printer emulation.

All IBM SCS printer models are covered, but they essentially revolve around the 5225 dot matrix and 3812 laser printer.

A large number of OEM printer drivers are supplied. They all subscribe to either HP PCL5 and HPGL or EPSON FX.

Variations on the above themes of EPSON FX cover such printers as Lexmark and Proprinter variants. The drivers have been tested on:

The source code originates from Apollo/Anzac V2(scs) and V8(ipds) embedded micro-controllers. The main engine, the scs emulation itself, is derived wholly from these engines.

Magnum, Acom, AAPF, and Fax output streams are NOT supplied in this source.

Background

The construct of the source is:

Front end -> scs engine -> virtual printer -> actual printer

The front end, in the source supplied, is raw EBCDIC data captured from the Twinax cable. Two 'test' files are provided. 5225 and 3812 are 'copies' of the test files provided by AS/400 System 36.

Front Ends

Front ends for hardware such as the com5250 integrated circuit or Motorola CPU family have been stubbed. The functionality of the front end driver forthese devices has been emulated to run in a pipe coming from stdin. It is relatively easy to add front end real hardware devices to this code as the source would represent no more than 1% of the entire code.

Virutal printer

All scs commands are converted by the engine to an internal 'virtual' printer interface that masks the differences between the two major technologies of laser versus matrix (bubble jet).

Actual printer

This is the supplied driver for the specific printer, e.g. HP LaserJet 5. The driver itself is a header file that #defines the virtual printer commands into those necessary for the actual printer. It is a relatively easy construct to add additional drivers, using the templates provided in the 'drivers' directory.

Linux emulation

The emulation is terminal based. It recieves its EBCDIC data from stdin and pumps it to a file in the print language of the specific printer and produces output on the screen in ASCII. There are various command line switches for interpreting incoming data, the most important of which is 'voyeur' which provides a decoded output of the actual scs commands received from the interface.

Code Crusader

The source code has been made compatible with Linux GCC via Code Crusader. I essence, simply type 'make' to compile. To change the print driver, edit config.h appropriately.

Barcode Library

A full barcode library is supplied for 20 different major barcode types. It is a common library for both SCS and IPDS, and in scs is utilized by the AAPF and Magnum command sets.

IPDS IPDS source code is available, but has not currently been converted for use under Linux.

If you would like further information on hardware development work required for either of these engines, please contact me.
searchSearch Index