'\" t
'\"
'\"	DO NOT EDIT! This file is generated from slxdecode.1in
'\"
.TH slxdecode 1 "Mon Mar 20 10:32:55 2023" "slxdecode 0.0"
'\"
'\"
'\"==========================================================================
'\"	STRINGS and MACROS
'\"==========================================================================
'\"
'\"	Define strings for special characters that nroff doesn't have
'\"
'\"	N.B. using .if cua to test for special characters did not work.
'\"
.if !'\*[.T]'ps' .ds ua up
.if  '\*[.T]'ps' .ds ua \(ua
.if !'\*[.T]'ps' .ds da down
.if  '\*[.T]'ps' .ds da \(da
.if !'\*[.T]'ps' .ds <- left
.if  '\*[.T]'ps' .ds <- \(<-
.if !'\*[.T]'ps' .ds -> right
.if  '\*[.T]'ps' .ds -> \(->
'\"
'\"     bx - box a Courier string for making keycaps
'\"
'\"	N.B. this mess is to make the line drawing come out only
'\"	if we are really generating postscript
'\"
.de bx
.ie !'\*[.T]'ps' \{\
.	RB [ \\$1 ]\\$2
.\}
.el \{\
.	ie !r ps4html \{\
'\" \(br\|\s\-1\f(CB\\$1\fP\s+1\|\(br\l'|0\(rn'\l'|0\(ul'
.		ft CW
.		nr par*bxw \w'\\$1'+.4m 
\Z'\v'.25m'\D'l 0 \-1m'\D'l \\n[par*bxw]u 0'\D'l 0 1m'\D'l \-\\n[par*bxw]u 0''\
\Z'\h'.2m'\s\-1\\$1\s+1'\
\h'\\n[par*bxw]u'\\$2
.		ft P
.	\}
.	el \{\
.		RB [ \\$1 ]\\$2
.	\}
.\}
..
'\"
'\" strings to set current color (null with old groff)
'\"
.if mred .ds red \m[red]
.if mgreen .ds green \m[green]
.if mblue .ds blue \m[blue]
.if mblack .ds black \m[black]
.if mblack .ds mP \mP
'\"
'\" fix for grotty + xterm. We call for orange, grotty outputs yellow,
'\" but xterm displays yellow as orange.  The cycle is complete.
'\"
.if n .defcolor orange rgb #ffff00
'\"
'\" color <color> \- set the current color (ignores request with old groff)
'\"
.de color
.if mred \m[\\$1]\c
..
'\"
'\" colorword <color> <word> \- colorize a word (ignored by old groff)
'\"
.de colorword
.ie m\\$1 \m[\\$1]\\$2\mP\c
.el \\$2\c
..
'\"
'\" colbox <fg> <bg> <word> \- colorize a word in a filled box
'\"
.de colbox
.ie mred \M[\\$2]\
\v'+.167v'\
\D'P 0 \-0.9v  \w'\\$3'u 0  0 +0.9v   \-\w'\\$3'u 0'\
\v'\-.167v'\
\m[\\$1]\\$3\mP\MP
.el \\$3\c
..
'\"
'\"	Macros for doing pdfmarks
'\"
.de specialps
.if  '\*[.T]'ps' \\k_\X'ps: \\$*'\h'|\\n_u'\c
..
'\"
'\" pdfmark PDFMARKCODE
'\"
.ds pdfmarks
.if d pdfmarks \{\
.de pdfmark
.	specialps exec [\\$1 pdfmark
..
'\"
'\" pdfdest LINKNAME
'\"
.de pdfdest
.pdfmark "/Dest /\\$1 /View [/XYZ \-5 PL null] /DEST"
..
'\"
'\" pdfbookmark COUNT LINKNAME STRING
'\"
.de pdfbookmark
.   pdfmark "/View [/XYZ 44 730 1.0] /Count \\$1 /Dest /\\$2 /Title (\\$3) /OUT"
..
'\"
'\"	Define the SH and SS macros to save pdfmark information
'\"	in "arrays" of numbers and strings.
'\"
.if !r rr_n \{\
.nr rr_n 0 1
.am SH
.	nr rr_levels!\\n+[rr_n] 2
.	ds rr_labels!\\n[rr_n] \\$*
.	pdfdest Link\\n[rr_n]
..
.am SS
.	nr rr_levels!\\n+[rr_n] 3
.	ds rr_labels!\\n[rr_n] \\$*
.	pdfdest Link\\n[rr_n]
..
.\}
'\"
'\"	Called at the end of the document to generate the pdfmark outline
'\"
.de pdf_outline
.nr rr_levels!\\n+[rr_n] 1
.nr rr_i 0 1
.while \\n+[rr_i]<\\n[rr_n] \{\
.   nr rr_ip1 \\n[rr_i]+1
.   nr rr_count 0
.   if \\n[rr_levels!\\n[rr_ip1]]>\\n[rr_levels!\\n[rr_i]] \{\
.       nr rr_j \\n[rr_i] 1
.       while \\n+[rr_j]<\\n[rr_n] \{\
.           if \\n[rr_levels!\\n[rr_j]]<=\\n[rr_levels!\\n[rr_i]] \{\
.               break
.           \}
.           if \\n[rr_levels!\\n[rr_j]]==(\\n[rr_levels!\\n[rr_i]]+1) \{\
.               nr rr_count \\n[rr_count]+1
.           \}
.       \}
.   \}
.   ds hhh \\*[rr_labels!\\n[rr_i]]
.   pdfbookmark \-\\n[rr_count] Link\\n[rr_i] "\\*[hhh]"
.\}
..
'\"
'\" Some postscript to make pdfmarks harmless on old interpreters...
'\"
.specialps "def /pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse"
'\"
'\" Force display of Bookmarks in Acrobat when document is viewed.
'\"
.pdfmark "[/PageMode /UseOutlines /Page 1 /View [/XYZ null null null] /DOCVIEW"
'\"
'\" Output the document info in pdfmarks
'\"
.pdfmark "\
	/Title (\*[an-title](\*[an-section])) \
	/Subject (\*[an-title] Manual Page) \
	/Author (Rick Richardson) \
	/Keywords (printing) \
	/Creator (groff \n(.x.\n(.y.\n(.Y \-man) \
	/CreationDate (\*[an-extra1]) \
	/ModDate (\*[an-extra1]) \
	/DOCINFO"
\}
'\"
'\" The manual page name is only 1st level mark
'\"
.nr rr_levels!\n+[rr_n] 1
.ds rr_labels!\n[rr_n] \*[an-title](\*[an-section])
.pdfdest Link\n[rr_n]
'\"
'\"==========================================================================
'\"	MANUAL PAGE SOURCE
'\"==========================================================================
.SH NAME
slxdecode \- Decode a SLX stream into human readable form.
.SH SYNOPSIS
.B slxdecode
.RI [ options "] <" slx-file
.SH DESCRIPTION
.B slxdecode
decodes a SLX stream into human readable form.
.P
A SLX stream is the printer language used by some Lexmark
printers, such as the C500.
.P
More information on the Software Imaging K.K. SLX stream can be found at:
.P
.RS
http://softwareimaging.com/products-services/sorcerer/index.asp
.RE

.SH COMMAND LINE OPTIONS
These are the options that can appear on the command line.
.TP
.BI \-d\0 basename
Basename of .pbm file for saving decompressed planes.
.TP
.BI \-r\0 basename
Basename of .jbg file for saving raw planes
.TP
.BI \-h
Print hex file offsets.
.TP
.BI \-o
Print file offsets.
.TP
.BI \-D\0 level
Set Debug level [0].

.SH EXAMPLES
Decode an SLX file created by foo2slx.

.nf
.ft CW
$ slxdecode < testpage.zm
SLX_MAGIC, 0x584c53a5 (SLX)
SLT_START_DOC, 12 items
        SLI_PAGECOUNT, 4294967295 (0xffffffff)
        SLI_DMDUPLEX, 0 (0x0)
        SLI_DMCOLLATE, 0 (0x0)
        SLI_0x3, 0 (0x0)
        SLI_DISPLAY, 0 (0x0)
        SLI_0x5, 0 (0x0)
        SLI_0x6, 0 (0x0)
        SLI_0x7, 1 (0x1)
        SLI_0x8, 0 (0x0)
        SLI_0x9, 0 (0x0)
        SLI_COUNT, 1 (0x1)
        SLI_DMCOLLATE, 0 (0x0)
SLT_START_PAGE, 16 items [Page 1]
        SLI_DMPAPER, 6 (0x6)
        SLI_CUSTOM_X, 0 (0x0)
        SLI_CUSTOM_Y, 0 (0x0)
        SLI_DMCOPIES, 1 (0x1)
        SLI_DMDEFAULTSOURCE, 0 (0x0)
        SLI_DMMEDIATYPE, 0 (0x0)
        SLI_NBIE, 0 (0x0)
        SLI_RESOLUTION_X, 600 (0x258)
        SLI_RESOLUTION_Y, 600 (0x258)
        SLI_OFFSET_X, 102 (0x66)
        SLI_OFFSET_Y, 102 (0x66)
        SLI_RASTER_X, 4896 (0x1320)
        SLI_RASTER_Y, 6392 (0x18f8)
        SLI_0x10d, 4896 (0x1320)
        SLI_0x10e, 6392 (0x18f8)
        SLI_0x10f, 1 (0x1)
SLT_JBIG_BIH, 0 items
        Data: 20 bytes
                DL = 0, D = 0, P = 1, \- = 0, XY = 4896 x 6392
                L0 = 128, MX = 0, MY = 0
                Order   = 0
                Options = 8  TPBON
                50 stripes, 0 layers, 1 planes
SLT_JBIG_BID, 0 items
        Data: 116 bytes
SLT_END_JBIG, 0 items
SLT_END_PAGE, 0 items
SLT_END_DOC, 0 items
.ft P
.fi

.SH FILES
.BR /usr/bin/slxdecode
.SH SEE ALSO
.BR foo2slx-wrapper (1),
.BR foo2slx (1),
.BR jbg2pbm (1)
.SH "AUTHOR"
Rick Richardson <rick.richardson@comcast.net>
.br
http://foo2slx.rkkda.com/
'\"
'\"
'\"
.em pdf_outline
