\mode:=localfont;
screenchars;
%
% known bugs: glorp and glurp do not have the same baseline...
%
mode_setup;
em#:=33pt#; cap#:=33pt#;
thin#:=1/3pt#; thick#:=5/6pt#;
o#:=1/5pt#;
define_pixels(em,cap);
define_blacker_pixels(thin,thick);
define_corrected_pixels(o);
curve_sidebar=round 1/18em;
penangle:=45;
pickup pencircle xscaled .17cap yscaled .02cap rotated penangle;
cal_pen := savepen;
second_x := .3em;

def gak =
 numeric x[],y[];
 pickup cal_pen;
 lft x1=0; lft x3=.2em; lft x5=.3em;
 top y1=.95h; top y2=top y3=top y4=h; top y5=h;
 z2=z1+whatever*dir penangle;
 z4=z5+whatever*dir penangle;
 draw z1 .. controls z2 .. z3 .. controls z4 .. z5;
enddef;

def frep =
 numeric x[], y[];
 pickup cal_pen;
 lft x1=.15em+.04h; lft x2=lft x3=lft x4=.15em; lft x5=.15em-.05h;
 top y1=.83h; y3=.5h; bot y5=.2h;
 z2=z1+whatever*dir penangle;
 z4=z5+whatever*dir penangle;
 draw z1 .. controls z2 .. z3 .. controls z4 .. z5;
 lft x6=.02em; x8=x3;
 y7=y8=y3+.05h; y6=y3;
 z7=z6+whatever*dir penangle;
 draw z6 .. controls z7 .. z8;
enddef;

def frelt =
 numeric x[], y[],right_x;
 pair lower_left;
 pickup cal_pen;
 lft x1=second_x+.1h; lft x2=lft x3=second_x;
 top y1=h; bot y3=.15h;
 z2=z1+whatever*dir penangle;
 penpos2(.12cap, penangle);
 right_x=x2r;
 penpos3(.12cap, penangle);
 lower_left = z3l;
 draw z1 .. controls z2 .. z3;
enddef;

def glurp =
 numeric x[],y[];
 pickup cal_pen;
 lft x1=0; top rt z3=lower_left;
 bot y1=0; y2=y3;
 z2=z1+whatever*dir penangle;
 draw z1 .. controls z2 .. z3;
enddef;

def glurt =
 numeric x[],y[];
 pickup cal_pen;
 lft x1=0; top rt z3=lower_left;
 bot y1=0; y2=y3;
 z2=z1+whatever*dir penangle;
 draw z1 .. controls z2 .. z3;
enddef;

def glorp =
 numeric x[],y[];
 pickup cal_pen;
 lft x1=0; x3=.5w; rt x5=w;
 bot y1=0; bot y2=bot y3=bot y4=.05h; bot y5=.1h;
 z2=z1+whatever*dir penangle;
 z4=z5+whatever*dir penangle;
 draw z1 .. controls z2 .. z3 .. controls z4 .. z5;
enddef;

def screlt =
 numeric x[],y[],right_x;
 pair lower_left,upper_right;
 pickup cal_pen;
 lft x1=second_x+.1h; lft x2=lft x3=second_x;
 top y1=.9h; bot y3=.15h;
 top y2=.9h;
 penpos1(.12cap, penangle);
 penpos2(.12cap, penangle);
 upper_right=z2r;
 right_x=x2r;
 penpos3(.12cap, penangle);
 lower_left=z3l;
 draw z2 -- z3;
enddef;

def screeble =
 numeric x[],y[],right_x;
 pair upper_right;
 pickup cal_pen;
 lft x1=second_x-.05h; lft x2=lft x3=second_x;
 bot y1=.2h; y2=.3h;
 top y3=.9h;
 z2=z2+whatever*dir penangle;
 penpos3(.12cap, penangle);
 upper_right=z3r;
 right_x=x3r;
 draw z3 .. controls z2 .. z1;
enddef;

def scrak =
 numeric x[],y[];
 pickup cal_pen;
 bot lft z1=upper_right; rt x3=w;
 top y3=top y1+.02h; x2=.95[x1,x3];
 z2=z3+whatever*dir penangle;
 draw z1 .. z2 .. z3;
enddef;

def frop =
 numeric x[],y[];
 pickup cal_pen;
 x11=right_x; rt x12=.9w;
 y11=y12=.55h; y13=y11+.11h; y14=y11-.15h;
 penpos12(.12cap, penangle);
 rt x14=x12l;
 draw z11 -- z12;
 pickup pencircle xscaled .02cap yscaled .01cap rotated penangle;
 lft x13=rt x12+.05h;
 draw z14{curl10} .. z12l --- z12r{dir penangle} .. z13;
enddef;


beginchar("D",0.85em#,cap#,0);
 gak;
 frep;
 screeble;
 numeric x[],y[];
 pair lower_left;
 pickup cal_pen;
 bot lft z1=upper_right; top y2=1.03h; top y3=1.01h;
 z2=z1+whatever*dir penangle;
 z3=z1+whatever*dir penangle;
 x4=.8w;
 z4=z3+whatever*dir -penangle;
 rt x6=.9w; bot y6=.15h;
 penpos6(.12cap, penangle);
 lower_left=z6l;
 draw z1 -- z2 .. controls z3 .. z4 .. z6;
 glurt;
% pickup pencircle xscaled 1 yscaled 1;
% draw (0,0) -- (0,h) -- (w,h) -- (w,0) -- cycle;
endchar;

beginchar("E",0.75em#,cap#,0);
 gak;
 frep;
 screeble;
 scrak;
 glorp;
 frop;
% pickup pencircle xscaled 1 yscaled 1;
% draw (0,0) -- (0,h) -- (w,h) -- (w,0) -- cycle;
endchar;

beginchar("F",0.75em#,cap#,0);
 gak;
 frep;
 screlt;
 scrak;
 glurp;
 frop;
% pickup pencircle xscaled 1 yscaled 1;
% draw (0,0) -- (0,h) -- (w,h) -- (w,0) -- cycle;
endchar;

beginchar("I",0.5em#,cap#,0);
 gak;
 frep;
 frelt;
 glurp;
% pickup pencircle xscaled 1 yscaled 1;
% draw (0,0) -- (0,h) -- (w,h) -- (w,0) -- cycle;
endchar;

beginchar("L", 0.75em#,cap#,0);
frep;
screeble;
scrak;
glorp;
% pickup pencircle xscaled 1 yscaled 1;
% draw (0,0) -- (0,h) -- (w,h) -- (w,0) -- cycle;
endchar;


