const maxletters = 150;
type currentletter = array [0..64] of char;
     C             = (x,y);
     XandYval      = array [x..y] of real;
var new , fillexist : boolean;
    lastfill        : char;    { marks last kind of filling stroke, fill or erase }
    ans             : char;
    dict            : 0..1;    { 1 ==> creating dictionary }
    direction       : char;    { for optimization of connected ( horizontals, verticals ) lines. }
    lastwasline     : boolean; { true if last line in the beffer}
    erasein         : boolean; { marks existing of path to be erased }
    fout            : packed array [1..15] of char; { output file name }
    curletter       : currentletter;
    all_letters     : array [1..maxletters] of currentletter;
    all_ascii       : array [1..maxletters] of integer;
    all_metrics     : array [1..maxletters] of integer;  { holds the width of each letter }
    no_of_letter    : integer;
    name_length     : integer;
    minbox,maxbox   : XandYval;
    lmin_x,lmax_x   : real; { local min and max for each letter }
    doscale         : XandYval;
    dotranslate     : XandYval;
    needtransform   : boolean; { true if cur_box <> 0,1000 }

procedure send_p_s(x0,y0,x1,y1,x2,y2,x3,y3:integer);external;
