mode_def testing=
         pixels_per_inch:=300*4;
         blacker:=.1;
         o_correction:=1;
         fillin:=.01;
         proofing:=2;
         fontmaking:=0;
         tracingtitles:=1;
enddef;
if unknown mode:
mode:=testing; fi
mode_setup;
turningcheck := 0;

if mode=testing: screenstrokes; fi

% parameters that control what a wedge looks like.
font_identifier := "bard";
font_size 10pt#;
u# := 1pt#;
pw# := 2u#;
runew# := 2pw#;
runeh# := 4pw#;
letter_fit# := 2pw#/3;
font_normal_space := 2runew#;
font_normal_stretch := 2runew#/3;
font_normal_shrink := 4runew#/3;

pen_thick# := u#/3;

define_pixels(pw, runew, runeh, pen_thick, letter_fit)

def penoct = makepen((.866,.5)--(.5,.866)--(-.5,.866)--(-.866,.5)
    --(-.866,-.5)--(-.5,-.866)--(.5,-.866)--(.866,-.5)--cycle)
enddef;

def runepen = pickup penoct scaled pen_thick rotated 45; enddef;

def adjust_fit(expr left_adj, right_adj) =
    l := -hround(left_adj*hppp)-letter_fit;
    interim xoffset := -l;
    charwd := charwd+2letter_fit# + left_adj + right_adj;
    r := l+hround(charwd*hppp);
    w := r-hround(right_adj*hppp) - letter_fit;
enddef;

extra_beginchar := extra_beginchar & "runepen;adjust_fit(0,0);";

def makebox(text r) =
    r((-letter_fit,0), (w+letter_fit,0));
    r((-letter_fit,h), (w+letter_fit,h));
    r((-letter_fit,0), (-letter_fit,h));
    r((w+letter_fit,0), (w+letter_fit,h));
    r((0,0), (0,h));
    r((w,0), (w,h));
    if charic<>0:
       r((w+charic*hppp,h.o_),(w+charic*hppp,.5h.o_)); 
    fi
enddef;

% ============================================
% Number 0,                       19.07.93 jhl
% ============================================
beginchar("T",pw#,runeh#,0);
z3 = (w/2, 0);        %z3 = (w, 0);
z1 = (w/7, h/4);      %z1 = (0, h/2);
z2 = (w/2, h/2);      %z2 = (w, h);
z4 = (6w/7, h/4);     %z4 = (2w, h/2);
z6 = (0, 7h/10);      %z6 = (-w/5, 4h/5);
z7 = (w, 7h/10);      %z7 = (11w/5, 4h/5);
z5 = (w/2, h);        %z5 = (w, 11h/6);
draw z1--z2--z4--z3--z1;
draw z2--z5--z6;
draw z5--z7;
endchar;

beginchar("A",pw#,runeh#,0);
z1 = (0, h/5);     %z1 = (0, h/3);
z2 = (w/2, 0);     %z2 = (w, 0);
z3 = (w/2, h);     %z3 = (w, 11h/6);
z4 = (w, 4h/5);    %z4 = (2w, 3h/2);
draw z1--z2--z3--z4;
endchar;

beginchar("B",pw#,runeh#,0);
z1 = (0, 0);       %z1 = (w/4, 0);
z2 = (w, 0);       %z2 = (3w/4, 0);
z3 = (-w/4, h/3);  %z3 = (0, h/2);
z7 = (5w/4, h/3);  %z7 = (w, h/2);
z5 = (w/2, h);     %z5 = (w/2, h);
z4 =.5[z3,z5];     %z4 =.5[z3,z5];
z6 =.5[z5,z7];     %z6 =.5[z5,z7];
draw z1--z6;
draw z2--z4;
draw z3--z5--z7;
endchar;

beginchar("G",pw#,runeh#,0);
z1 = (w/2, 0);
z2 = (-w/3, 3h/4);
z3 = (5w/6, 3h/10);
z4 = (w, h);
z5 = (4w/3, 7h/12);   
draw z1..z2..z4;
draw z2{down}..{right}z3;
draw z4{down}..z5;
endchar;

beginchar("d",pw#,runeh#,0);
z1 = (-w/3, 0);
z2 = (4w/3, h);
z3 = (-w/3, h);
z4 = (4w/3, 0);
draw z1--z2;
draw z3--z4;
endchar;

beginchar("D",pw#,runeh#,0);
z1 = (0, 0);
z2 = (w/3, h/4);
z3 = (0, h/2);
z4 = (w/3, 3h/4);
z5 = (0, h);
z6 = (w/2, -h/20);
z7 = (w, h/4);
z8 = (2w/3, h/2);
z9 = (w, 3h/4);
z10 = (w/2, 20h/19);
draw z1--z2--z3--z4--z5;
draw z6--z7--z8--z9--z10;
endchar;

beginchar("U",pw#,runeh#,0);
z1 = (0, 0);
z2 = (w, h/2);
z3 = (0, h);
draw z1..z2;
draw z2..z3;
endchar;

beginchar("O",pw#,runeh#,0);
z1 = (0, 0);
z2 = (w, h/2);
z3 = (0, h);
draw z1{up}..{right}z2;
draw z2{left}..{up}z3;
endchar;

beginchar("o",pw#,runeh#,0);
z1 = (0, 0);
z2 = (0, 19h/20);
z3 = (w, h/2);
z4 = (w, h);
draw z1--z2--z3--z4;
endchar;

beginchar("Z",pw#,runeh#,0);
z1 = (-w/7, 0);
z2 = (-w/7, h/2);
z3 = (8w/7, h/2);
z4 = (8w/7, h);
z5 = (w/2, 0);
z6 = (w/2, h);
draw z1--z2--z3--z4;
draw z5--z6;
endchar;

beginchar("t",pw#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 7h/10);
z4 = (8w/7, 0);
z5 = (0, h/2);
z6 = (3w/4, h/4);
draw z1--z2;
draw z5--z3;
draw z3..z6..z4;
endchar;


beginchar("Y",pw#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (9w/10, h/2);
draw z1--z2;
draw z1..z3..z2;
endchar;

beginchar("y",pw#,runeh#,0);
z1 = (w/2, h);
z2 = (-w/6, 6h/7);
z3 = (w/2, h/2);
z4 = (7w/6, 6h/7);
z5 = (9w/16, h/4);
z6 = (30w/29, 0);
z7 = (w, 12h/21);
draw z1..z2..z3..z4..z1;
draw z7..z5..z6;
endchar;


beginchar("l",pw#,runeh#,0);
z1 = (0, h/5); 
z2 = (w/2, 0); 
z3 = (w/2, h); 
draw z1--z2--z3;
endchar;

beginchar("L",pw#,runeh#,0);
z1 = (w/2, 0);
z2 = (-w/5, h); 
z3 = (6w/5, h); 
z4 = (w/2, h/2);
draw z1--z4--z2;
draw z4--z3;
endchar;


beginchar("M",pw#,runeh#,0);
z1 = (-w/3, 0);
z2 = (-w/3, h); 
z7 = (7w/4, h/2); 
z3 = (w, 3h/4); 
z4 = (w, h/4); 
z5 = (w/2, -h/9); 
z6 = (w/2, 10h/9);
z8 = (w/6, 5h/8); 
z9 = (w/6, 3h/8); 
draw z1..z9..z3;
draw z2..z8..z4;
draw z6..z3..z7;
draw z5..z4..z7;
endchar;


beginchar("N",pw#,runeh#,0);
z1 = (-w/3, 0);
z2 = (-w/3, h/2);
z3 = (w/2, 3h/8);
z4 = (w/2, 0);
z5 = (w/2, h);
z6 = (w/2, 5h/8);
z7 = (4w/3, h/2);
z8 = (4w/3, h);
draw z1--z2--z3;
draw z4--z5;
draw z6--z7--z8;
endchar;

beginchar("n",pw#,runeh#,0);
z1 = (0, 0);
z2 = (4w/3, h/2);
z3 = (0, h);
draw z1..z2..z3;
endchar;

beginchar("s",pw#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
draw z1--z2;
endchar;

beginchar("S",pw#,runeh#,0);
z1 = (0, 0);
z2 = (w/2, h/2);
z3 = (0, h);
z4 = (6w/5, h);
z5 = (5w/6, h/2);
draw z1..{left}z2{left}..{right}z3;
draw z5{left}..{right}z4;
endchar;

beginchar("P",pw#,runeh#,0);
z1 = (3w/4, 0); 
z2 = (3w/4, h); 
z3 = (0, 4h/5);
draw z1--z2--z3;
endchar;

beginchar("C",pw#,runeh#,0);
z1 = (-w/3, 0);
z2 = (w/2, 2h/5);
z3 = (w/2, h);
z4 = (4w/3, 0);
draw z1--z2--z3;
draw z2--z4;
endchar;

beginchar("k",pw#,runeh#,0);
z1 = (w/2, 0);
z2 = (-w/4, h/4);
z3 = (5w/4, h/4);
z4 = (w/2, h);
draw z1--z2;
draw z1--z4;
draw z1--z3;
endchar;

beginchar("K",pw#,runeh#,0);
z1 = (-w/4, 0);
z2 = (-w/4, h);
z3 = (-w/4, 3h/8);
z4 = (-w/4, 7h/8);
z5 = (3w/4, 7h/8);
z6 = (3w/4, 3h/8);
z7 = (5w/4, h/2);
z8 = (5w/4, 0);
draw z1--z2;
draw z4--z5;
draw z3--z6;
draw z5{down}..{right}z7;
draw z6{down}..{right}z8;
endchar;

beginchar("r",pw#,runeh#,0);
z1 = (w/2, 0);     %z1 = (w/2, 0);
z2 = (w/2, 5h/8);  %z2 = (w/2, 3h/4);
z3 = (0, h);       %z3 = (w/8, h);
z4 = (-w/2, 3h/4); %z4 = (-w/4, 3h/4);
z5 = (w, h);       %z5 = (7w/8, h);
z6 = (3w/2, 3h/4); %z6 = (5w/4, 3h/4);
draw z1--z2;
draw z2--z3--z4;
draw z2--z5--z6;
endchar;

beginchar("R",pw#,runeh#,0);
z1 = (w, 0);
z2 = (w, h);
z3 = .5[z1,z2];
z4 = (-w/8, 3h/8);
z5 = (-w/2, h);
z6 = (w/8, 3h/4);
draw z1--z2;
draw z3--z4;
draw z4..z6..z5;
%draw z4{up}..{left}z5;
endchar;

beginchar("v",pw#,runeh#,0);
z1 = (w/2, 0);
z2 = (-w/5, h); 
z3 = (6w/5, h); 
z4 = (w/2, h/2);
z5 = (w/5, 5h/12);
z6 = (4w/5, 5h/12);
draw z1--z4--z2;
draw z4--z3;
draw z5--z6;
endchar;

beginchar(":",pw#,runeh#,0);
z1 = (w/2, h/8);
z2 = (w/2, 7h/8);
pickup pencircle scaled 10;
drawdot z1;
drawdot z2;
endchar;

beginchar("m",pw#,runeh#,0);
z1 = (-w/4, 0);
z2 = (-w/4, h);
z3 = (w/2, 5h/8);
z4 = (5w/4, h);
z5 = (5w/4, 0);
draw z1--z2--z3--z4--z5;
endchar;

beginchar("c",pw#,runeh#,0);
z1 = (w/4, 0);
z2 = (3w/4, h/4);
z3 = (w/4, h/2);
z4 = (3w/4, 3h/4);
z5 = (w/4, h);
draw z1--z2--z3--z4--z5;
endchar;

beginchar("Q",pw#,runeh#,0);
z1 = (w/4, h/4);
z2 = (3w/4, h/4);
z3 = (3w/4, 3h/4);
z4 = (w/4, 3h/4);
z5 = (w/2, h/2);
draw z1..z2..z3..z4..cycle;
pickup pencircle scaled 10;
drawdot z5;
endchar;

beginchar("z",pw#,runeh#,0);
z1 = (19w/20, 0);
z2 = (19w/20, h);
z3 = .3[z1, z2];
z4 = (w/20, 7h/8);
draw z1--z2;
draw z3--z4;
endchar;

beginchar("V",pw#,runeh#,0);
z1 = (0, 0);
z2 = (w, h/4);
z3 = (0, 3h/4);
z4 = (0, h/4);
z5 = (w, 3h/4);
z6 = (0, h);
draw z1..z2..z3;
draw z4..z5..z6;
endchar;

beginchar("e",pw#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z3 = (w, 4h/5);
draw z1--z2--z3;
endchar;

beginchar("a",pw#,runeh#,0);
z1 = (0, h/12);
z2 = (w/6, h/4);
z3 = (w/4, 2h/3);
z4 = (w, h/2);
z5 = (w, 0);
z6 = (w, h);
draw z1..z2..z3;
draw z3--z4;
draw z5--z6;
endchar;

beginchar("w",pw#,runeh#,0);
z1 = (0, h/2);
z2 = (w, 0);
z3 = (w, h);
draw z1--z2--z3--z1;
endchar; 

beginchar("g",pw#,runeh#,0);
z1 = (0, h/2);
z2 = (w/3, 3h/4);
z3 = (0, h);
z4 = (2w/3, 3h/4);
z5 = (w, h/2);
z6 = (w, h);
z7 = (w/2, 0);
z8 = (w/2, 5h/12);
draw z1..z2..z3;
draw z5..z4..z6;
pickup pencircle scaled 9;
draw z7--z8;
endchar; 

beginchar("i",pw#,runeh#,0);
z1 = (w, 0);
z2 = (7w/8, 7h/8);
z3 = (0, h);
z4 = (0, 5h/8);
z5 = (w, h/2);
draw z1--z2;
draw z2--z3;
draw z4--z5;
endchar; 

beginchar("b",pw#,runeh#,0);
z1 = (w/5, 5h/12);
z2 = (w/4, h/12);
z3 = (3w/4, h/6);
z4 = (w/8, h);
draw z1..z2..z3..z4;
endchar; 

beginchar("I",pw#,runeh#,0);
z1 = (w/2, 0);
z2 = (-w/8, h); 
z3 = (9w/8, h); 
z4 = (w/2, h/2);
z5 = (w/2, h);
draw z4--z2;
draw z4--z3;
draw z4--z5;
pickup pencircle scaled 7;
draw z1--z4;
endchar;


end





beginchar(":",pw#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
drawdot z1;
drawdot z2;
endchar;