-- Strike.mesa -- Last changed by Doug Wyatt, August 28, 1980 12:01 AM Strike: DEFINITIONS = BEGIN Header: TYPE = MACHINE DEPENDENT RECORD[ format(0): Format, min(1),max(2): CARDINAL, -- minimum, maximum character codes maxwidth(3): CARDINAL -- maximum spacing width of any character ]; NoYes: TYPE = MACHINE DEPENDENT {No(0), Yes(1)}; Format: TYPE = MACHINE DEPENDENT RECORD[ oneBit: NoYes, -- always Yes index: NoYes, -- No for simple strike, Yes for strike index fixed: NoYes, -- Yes if all characters have same width kerned: NoYes, -- Yes if Kerned, No if Plain unused: [0..7777B] -- should be 0 ]; BoundingBoxBlock: TYPE = MACHINE DEPENDENT RECORD [ fbbox(0), fbboy(1): INTEGER, fbbdx(2), fbbdy(3): CARDINAL ]; Body: TYPE = MACHINE DEPENDENT RECORD [ length(0): CARDINAL, -- number of words in strike body ascent(1),descent(2): INTEGER, -- scanlines above and below the baseline xoffset(3): INTEGER, -- always 0 (obsolete) raster(4): CARDINAL -- number of words per scanline in the strike -- followed by bitmap (BitmapSize[body] words) -- followed by xinsegment table ]; WidthEntry: TYPE = MACHINE DEPENDENT RECORD[offset,width: [0..377B]]; nullWidthEntry: WidthEntry = [377B,377B]; PlainStrike: TYPE = MACHINE DEPENDENT RECORD [ header: Header, -- common to all strike fonts body: Body ]; KernedStrike: TYPE = MACHINE DEPENDENT RECORD [ header: Header, -- common to all strike fonts box: BoundingBoxBlock, -- the font bounding box body: Body -- the actual strike -- followed by table of width data ]; END.(600)