// Structure definitions for the .KS file format. // Prepared by Lyle Ramshaw, PARC, at April 23, 1980 9:05 AM in // accord with the April 17 version of my memo defining the new // kerned Strike format. //structure KernedStrikeFile: //[ //@StrikeHdr //@BBBlock //@StrikeBody //@WidthBody //] structure StrikeHdr: [ format word = [ oneBit bit 1 // always = 1, meaning "new" style index bit 1 // =1 if StrikeIndex, else =0 fixed bit 1 // =1 if all Wx's the same, else =0 kerned bit 1 // =1 if KernedStrike, else =0 rest bit 12 // blank ] min word // minimum ASCII code max word // maximum ASCII code maxwidth word // maximum Wx of any character ] structure BBBlock: [ fbbox word // the font's FBBox fbboy word // the font's FBBoy fbbdx word // the font's FBBdx fbbdy word // the font's FBBdy ] structure StrikeBody: [ length word // total number of words in this StrikeBody ascent word // number of scan-lines above the baseline descent word // number of scan-lines below the baseline xoffset word // always = 0 raster word // number of words per scan-line in strike // bitmap word raster*height // xinsegment ↑ min, max+2 word ] //structure WidthBody: //[ //widthtable ↑ min, max+1 @WidthEntry //] structure WidthEntry: [ spacing word = [ offsett byte // = BBox-FBBox width byte // = Wx ] ] manifest [ lStrikeHdr = size StrikeHdr / 16 lBBBlock = size BBBlock / 16 lStrikeBody = size StrikeBody / 16 ]