This note describes the format of a CaseLinr 4.8 liner file.  For versions
prior to 4.8, Open and Save the file and it will be converted to this format.
All uppercase types are defined below. All lowercase types are "standard C"
types as they exist within the 16-bit DOS world.

Type        Description
--------    -----------
int         Major version number - this release would have a value of 4
int         Minor version number - this release would have a value of 8

short       Number of title lines - if 0 then the next two fields do NOT exist
UINT        Total byte length of title lines including null
char[]      Title lines - null terminated fonted text string, intermediate
            lines are separated by CR LF (x'0D' x'0A')

short       Number of side A song lines - if 0 then the next two fields do
            NOT exist
UINT        Total byte length of side A song lines including null
char[]      Side A song lines - null terminated fonted text string,
            intermediate lines are separated by CR LF (x'0D' x'0A')

short       Number of side B song lines - if 0 then the next two fields do
            NOT exist
UINT        Total byte length of side B song lines including null
char[]      Side B song lines - null terminated fonted text string,
            intermediate lines are separated by CR LF (x'0D' x'0A')

SONG_FMT    Format of title

BYTE        Split title indicator:
               0 - don't split
               1 - split

BYTE        Center title vertically within title area indicator:
               0 - don't center
               1 - center

SONG_FMT    Format of songs in Side A primary area

SONG_FMT    Format of songs in Side B primary area

SONG_FMT    Format of songs in Side A overflow area

SONG_FMT    Format of songs in Side B overflow area

int         Pen style used for border (cut) lines:
               0 - solid
               1 - dash
               2 - dot
               3 - dash-dot
               4 - dash-dot-dot
               5 - (none)
               6 - (endpoints)

int         Pen style used for interior (fold) lines, same values as border
            lines

BYTE        Invert liner indicator:
               0 - don't invert
               1 - invert

BYTE        1-up sides indicator:
               0 - not 1-up (i.e. "normal" 2-up side-by-side)
               1 - 1-up

BYTE        Bisect sides indicator:
               0 - don't bisect
               1 - bisect

MEASURE     Liner width

MEASURE     Feature flap height

MEASURE     Title area height

MEASURE     Main song area height

MEASURE     Overflow song area height

SIDE_FMT    Format of side letter for Side A Flap
UINT        Total byte length of side letter text for Side A Flap including
            null - if 0 then the next field does NOT exist
char[]      Text of side letter for Side A Flap - null terminated fonted text
            string

SIDE_FMT    Format of side letter for Side A Primary
UINT        Total byte length of side letter text for Side A Primary including
            null - if 0 then the next field does NOT exist
char[]      Text of side letter for Side A Primary - null terminated fonted
            text string

SIDE_FMT    Format of side letter for Side B Flap
UINT        Total byte length of side letter text for Side B Flap including
            null - if 0 then the next field does NOT exist
char[]      Text of side letter for Side B Flap - null terminated fonted text
            string

SIDE_FMT    Format of side letter for Side B Primary
UINT        Total byte length of side letter text for Side B Primary including
            null - if 0 then the next field does NOT exist
char[]      Text of side letter for Side B Primary - null terminated fonted
            text string

int         Number of fonts used - count of LOGFONT, DWORD pairs. There are
            always at least 5 fonts, and these are reserved as follows:
               0 - default side letter
               1 - default feature name
               2 - default feature
               3 - default title
               4 - default song
LOGFONT     Windows Logical font definition
DWORD       Color of font

int         Total number of features - count of FEATUREs that follow the
            "next" field
int         Total number of sided features
FEATURE     Feature definition(s)

int         Default measurement type
               1 - centimeter
               2 - inch
               4 - line
               5 - pica
               6 - point

UINT        Total byte length of tab stops including null - if 0 then the
            next field does NOT exist
char[]      Text of tab stops - null terminated char string

int         Total number of pictures - count of PICTUREs that follow
PICTURE     Picture definition(s)

int         Total number of song overflow areas



The type SONG_FMT is composed of the following fields:

int         Song alignment
               0 - left
               1 - centered
               2 - right
MEASURE     Song left margin
MEASURE     Song right margin
MEASURE     Song top margin
MEASURE     Song bottom margin
MEASURE     Song wrap margin
MEASURE     Song between spacing
MEASURE     Song within spacing


The type SIDE_FMT is composed of the following fields:

int         Letter style
               0 - normal
               1 - reverse video
               2 - none
MEASURE     Letter top margin
MEASURE     Letter side margin
UINT        Unused


The type FEATURE is composed of the following fields:

UINT        Total byte size of FEATURE structure
UINT        Unused
int         Feature style
               0 - centered with sides
               1 - left justified
               2 - right justified
               3 - centered
               4 - adjacent with sides
               5 - blank with sides
MEASURE     Top margin
MEASURE     Side margin
char[]      Variable number of characters as follows:
               feature text - null terminated fonted text string
               count of side 1 texts - 1 char
               index of selected side 1 text - 1 char
               side 1 text #1 - null terminated fonted text string
               ...
               side 1 text #k - null terminated fonted text string
               ...
               count of side n texts - 1 char
               index of selected side n text - 1 char
               side n text #1 - null terminated fonted text string
               ...
               side n text #m - null terminated fonted text string
               0 - 1 char


The type PICTURE is composed of the following fields:

UINT        Total byte size of PICTURE structure
UINT        Unused
MEASURE     X coordinate
MEASURE     Y coordinate
MEASURE     Width
MEASURE     Height
BYTE        Picture type
               0 - bitmap
char[]      Pathname of picture file - null terminated char string


The type MEASURE is composed of the following fields:

int         Integral portion
int         Decimal portion as an integer
int         Number of decimal places
int         Measurement type
               1 - centimeter
               2 - inch
               4 - line
               5 - pica
               6 - point
int         Numerical value in twips


The type LOGFONT is a WINDOWS structure composed of the following fields:

int         Height
int         Width
int         Escapement
int         Orientation
int         Weight
BYTE        Italic
BYTE        Underline
BYTE        StrikeOut
BYTE        CharSet
BYTE        OutPrecision
BYTE        ClipPrecision
BYTE        Quality
BYTE        PitchAndFamily
char[32]    Face name


Some basic types:

UINT     "unsigned int" and is 2 bytes long
BYTE     "unsigned char" and is 1 byte long
DWORD    "unsigned long" and is 4 bytes long
int      integer and is 2 bytes long
short    short integer and is 2 bytes long
char     1 byte long
char[]   variable length array of bytes
char[x]  a fixed length array of x bytes

A null terminated fonted text string is a null terminated char string with
embedded font indicators.  A font indicator is 2 consecutive bytes, the first
has the binary value 1 and the second is the 1-relative font number.
