VOGONS


First post, by Peter Swinkels

User metadata
Rank Oldbie
Rank
Oldbie

Hi,

I have been examining the file formats for a program called Cartooners for MS-DOS (originally for the Apple IIGS) from 1988 by ITDA/Electronic Arts. Among the files in the file archives that come with its installation disk(s) are several *.lpt files all relating to printers. These files contain what appear to be printer control codes, while I have found some rather long and technical documentation for HP PCL (Printer Control Language) I am unsure of what exactly the date in these files represents. Can anyone who knows more about printers point me in the right direction as to what exactly these *.lpt files contain?

EDIT:
A link to my Google Drive folder containing a zip file with the drivers in question:
https://drive.google.com/drive/folders/1jARH2 … 5ZI?usp=sharing

Here's a summary of what little I found out. All files are of the same size and appear to have the same data at the same offsets:

[Printer Drivers]

[File Information]
Endianess: ?
Extension: *.lpt

[File Layout]
0x00 DWORD Signature.
0x04 0x27 BYTES Printer model name padded with 0x00 bytes.
0x2C BYTE Unknown.
0x2D WORD Unknown.
0x2F BYTE Null.
0x30 WORD Unknown.
0x32 WORD Unknown.
0x34 WORD Unknown.
0x36 WORD Unknown.
0x38 BYTE Unknown.
0x39 BYTE Unknown.
0x3A BYTE Unknown.
0x3B BYTE Unknown.
0x3C BYTE Unknown.
0x3D BYTE Unknown.
0x3E BYTE Unknown.
0x3F BYTE Unknown.
0x40 BYTE Unknown.
0x41 BYTE Unknown.
0x42 BYTE Unknown.
0x43 BYTE Unknown.
0x44 BYTE Unknown.
0x45 BYTE Unknown.
0x46 BYTE Unknown.
0x47 BYTE Unknown.
0x48 BYTE Unknown.
0x49 0x10 BYTES Null.
0x59 BYTE Unknown.
0x5A BYTE Always 0x1B - Probably a PCL command.
0x5B BYTE Unknown.
0x5C BYTE Unknown.
0x5D BYTE Unknown.
0x5E BYTE Unknown.
0x5F BYTE Unknown.
0x60 BYTE Unknown.
0x61 0x09 BYTES Null.
0x6A BYTE Unknown.
0x6B BYTE Always 0x1B - Probably a PCL command.
0x6C BYTE Unknown.
0x6D BYTE Unknown.
0x6E BYTE Unknown.
0x6F BYTE Unknown.
0x70 BYTE Unknown.
0x71 WORD Null.
0x73 BYTE Unknown.
0x74 BYTE Appears to be a boolean. (0x00 or 0x01 only.)
0x75 BYTE Unknown.
0x76 BYTE Unknown.
0x77 BYTE Unknown.
0x78 0x06 BYTES Null.
0x7E BYTE Unknown.
0x7F BYTE Unknown.
0x80 BYTE Unknown.
Show last 22 lines
0x81	BYTE		Unknown.
0x82 BYTE Unknown.
0x83 BYTE Unknown.
0x84 BYTE Unknown.
0x85 DWORD Null.
0x89 BYTE Unknown.
0x8A BYTE Unknown.
0x8B BYTE Unknown.
0x8C BYTE Unknown.
0x8D DWORD Null.
0x91 BYTE Unknown.
0x92 BYTE Unknown.
0x93 BYTE Unknown.
0x94 BYTE Unknown.
0x95 DWORD Null.
0x99 BYTE Unknown.
0x9A BYTE Unknown.
0x9B BYTE Unknown.
0x9C BYTE Unknown.
0x9D DWORD Null.
0xA1 BYTE Unknown.

Do not read if you don't like attention seeking self-advertisements!

Did you read it anyway? Well, you can find all sorts of stuff I made using various programming languages over here:
https://github.com/peterswinkels