Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ font3812(5) — AOS 4.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cvt3812(8)

width3812(8)

FONT3812(5)  —  

NAME

font3812 − font structures for 3812 fonts

SYNOPSIS

#include <pmp/font3812.h>

DESCRIPTION

Font3812.h defines the font structures that are built by cvt3812(8) and width3812(8). Three file formats are described.  The .dat file contains the raster data for the font.  The .ndx file contains an index by IBM character name.  The codepage index file contains an index by troff(1) character name.

/∗
 ∗    Format for the .dat font files for the 3812.
 ∗
 ∗    This file contains the raster data for all the characters in the font.
 ∗    The .dat file contains the fixed length information (char_info)
 ∗    for each character followed by the variable length raster
 ∗    data for that character.  The height, width, a_space,
 ∗    c_space and offset are expressed in 240 points per inch.
 ∗
 ∗    For fixed portion of the font information:
 ∗/
typedef struct {
    short x;/∗ width of bit pattern∗/
    short y;/∗ height of bit pattern∗/
    short a_space;/∗ space before bits∗/
    short c_space;/∗ space following bits∗/
    short offset;/∗ baseline offset∗/
} char_info;
/∗
 ∗     Each character contains char_info plus raster data.
 ∗     The length of raster data is determined by:
 ∗           (x + 7 ) / 8 ∗ y
 ∗/
typedef struct {
    char_info c_data;
    char ∗r_data;       /∗pointer to raster bit pattern∗/
} ibm_fdata;
/∗
 ∗     Format for the .ndx file:
 ∗
 ∗     This file is an index into the .dat file by IBM character name.
 ∗     The .ndx file contains one index_data structure for each IBM
 ∗     character in the font.
 ∗
 ∗     Each 8 byte name corresponds to an IBM character name.
 ∗     The offset indicates the byte offset into the font data for that character.
 ∗     The length indicates the length of the font data.
 ∗/
typedef struct {
       char name[8];/∗ IBM character name∗/
       long offset;/∗ offset into .dat file∗/
       long length;/∗ length of char_info & raster data for this character ∗/
} index_data;
/∗
 ∗      Format for the codepage index into font data:
 ∗
 ∗      A codepage identifies the set of characters to be used from a font.
 ∗      An IBM font contains characters with character names.  For example:
 ∗      the letter ”a” is LA010000 and the letter beta is GB010000.
 ∗      The codepage entry would select these two characters and give
 ∗      their ASCII name. Since beta is not directly represented in ASCII
 ∗      it is given its troff coded name (∗b).
 ∗      The codepage would contain:
 ∗             a LA010000
 ∗            ∗b GB010000
 ∗
 ∗      An  offset file is built by width3812 for each font for a size
 ∗      and a particular codepage table. It is named ff.s.cpage, where
 ∗             ff= the font family name
 ∗             s        = the size
 ∗             cpage= the name of the codepage
 ∗      For example, the offset file for the Sonoran Sans Serif (named ss) font
 ∗      using the stdcp codepage and size 6 is named: ss.6.stdcp
 ∗
 ∗      The file has the following format:
 ∗        total_chars   : Integer count of characters in font.
 ∗        cp_index: One entry for each character listed in the codepage.
 ∗/
  typedef struct {
/∗ Characters are listed in same order∗/
/∗ as in the codepage table.∗/
int offset;/∗ offset into the .dat file for char∗/
int length;/∗ length of char_info and raster data for this character∗/
} cp_index;

SEE ALSO

cvt3812(8), width3812(8)

PRPQs 5799-WZQ/5799-PFF: IBM/4.3  —  30 Jun 1986

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026