% ==================================================================
% Saxon Runes,                      23.07.93 Jobst-Hartmut Lueddecke
%
% Email: lueddecke@rzbt.fh-hamburg.d400.de
%        lueddeck@rzbt.fh-hamburg.de
%
% This font is designed on historic sources. The uppercase runes are
% the same as the lowercase runes. The Ligatures "a, "A, "o, "O, "u,
% "U, "s, "S are compatible to german.sty. So it's easy to write
% normal Text and print it with runes. The numbers are normal Runes.
% (see Faulmann: Das Buch der Schrift) e.g 1 = F, 2 = U .....
%
% The Saxon Runes are the old Futharc
% f u th a r c g w h n i j ee(=eh) p z s t b e m l ng d o
% plus k (=viking and anglosaxon) q (=markomannic) v (=anglosaxon)
% x (=anglosaxon and markomannic) y (=anglosaxon) aa(=ah) (=viking)
% ae ck ea eo (=anglosaxon) ge gg (=anglosaxon) io rr (=viking)
% st (=anglosaxon) ts (=anglosaxon) ue (=anglosaxon)
%
% The Viking Runes are a subset of this Font. (see Laur: Runendenkm"aler
% in Schleswig-Holstein). The Viking Runes are f u th a r k h(=io)
% n i aa s t b l m(=z) rr
%
% Enjoy it and use it with fantasy role playing. It is real fun to
% give a Player a scroll written with this font, or you can use it
% as a reference to read old (Viking) rune stones.
%
% If you write articles about runes (futhark or viking Runes), pay attention
% you get the propper subset (viking h = saxon io and viking m =
% saxon z !).
%
% Ligature AA, 16.04.92, Jobst-Hartmut Lueddecke
% and Characters s, S modified, 15.06.92 Jobst-Hartmut Lueddecke
%
% Ligatures ge, ts,  28.09.92, Jobst-Hartmut Lueddecke
%
% Numbers, 20.07.93, Jobst-Hartmut Lueddecke
% ==================================================================
%
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 := "srune";
font_size 10pt#;
u# := 1pt#;
pw# := 2u#;
runew# := 3pw#/2;
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;

% Saxon + Viking Runes, 30.09.92 Jobst-Hartmut Lueddecke
% ======================================================

%=============================================
% Character A               21.07.93 Lueddecke
%=============================================
beginchar("A",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 2h/3);
z4 = (0, 2h/3);
z5 = (w, h/3);
draw z1--z2--z3;
draw z4--z5;
endchar;

%=============================================
% Character a = A           21.07.93 Lueddecke
%=============================================
beginchar("a",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 2h/3);
z4 = (0, 2h/3);
z5 = (w, h/3);
draw z1--z2--z3;
draw z4--z5;
endchar;

%=============================================
% Number 4 = Character A    21.07.93 Lueddecke
%=============================================
beginchar("4",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 2h/3);
z4 = (0, 2h/3);
z5 = (w, h/3);
draw z1--z2--z3;
draw z4--z5;
endchar;

beginchar("B",runew#,runeh#,0);
x1 = x2 = x4 = 0;
x3 = x5      = w;
y1 = 0;
y2 = h;
y3 = .5[y2, y4];
y4 = .5[y1, y2];
y5 = .5[y4, y1];
draw z1--z2--z3--z4--z5--z1;
endchar;

beginchar("b",runew#,runeh#,0);
x1 = x2 = x4 = 0;
x3 = x5      = w;
y1 = 0;
y2 = h;
y3 = .5[y2, y4];
y4 = .5[y1, y2];
y5 = .5[y4, y1];
draw z1--z2--z3--z4--z5--z1;
endchar;

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

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

beginchar("D",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, h);
z4 = (w, 0);
draw z1--z2--z4--z3--z1;
endchar;

beginchar("d",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, h);
z4 = (w, 0);
draw z1--z2--z4--z3--z1;
endchar;

beginchar("E",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w/2, .66h);
z4 = (w, h);
z5 = (w, 0);
draw z1--z2--z3--z4--z5;
endchar;

beginchar("e",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w/2, .66h);
z4 = (w, h);
z5 = (w, 0);
draw z1--z2--z3--z4--z5;
endchar;

%=============================================
% Character F               21.07.93 Lueddecke
%=============================================
beginchar("F",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (0, 2h/3);
z4 = (w/2, h);
z5 = (0, h/3);
z6 = (w, h);
draw z1--z2;
draw z3--z4;
draw z5--z6;
endchar;

%=============================================
% Character f = F           21.07.93 Lueddecke
%=============================================
beginchar("f",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (0, 2h/3);
z4 = (w/2, h);
z5 = (0, h/3);
z6 = (w, h);
draw z1--z2;
draw z3--z4;
draw z5--z6;
endchar;

%=============================================
% Number 1 = Character F    21.07.93 Lueddecke
%=============================================
beginchar("1",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (0, 2h/3);
z4 = (w/2, h);
z5 = (0, h/3);
z6 = (w, h);
draw z1--z2;
draw z3--z4;
draw z5--z6;
endchar;

beginchar("G",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, h);
z4 = (w, 0);
draw z1--z3;
draw z2--z4;
endchar;

% ==========================================================
% Rune g like in the german word Wagen or english word wagon
% ==========================================================
beginchar("g",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, h);
z4 = (w, 0);
draw z1--z3;
draw z2--z4;
endchar;

beginchar("H",2runew#,runeh#,0);
% ok, 15.06.92, jhl
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 0);
z4 = (w, h);
z5 = (0, 2h/3);
z6 = (w, h/3);
draw z1--z2;
draw z3--z4; 
draw z5--z6; 
endchar;

beginchar("h",2runew#,runeh#,0);
% ok, 15.06.92, jhl
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 0);
z4 = (w, h);
z5 = (0, 2h/3);
z6 = (w, h/3);
draw z1--z2;
draw z3--z4; 
draw z5--z6; 
endchar;

%=============================================
% Character I               21.07.93 Lueddecke
%=============================================
beginchar("I",runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
draw z1--z2;
endchar;

%=============================================
% Character i = I           21.07.93 Lueddecke
%=============================================
beginchar("i",runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
draw z1--z2;
endchar;

%=============================================
% Number 9 = Character I    21.07.93 Lueddecke
%=============================================
beginchar("9",runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
draw z1--z2;
endchar;

beginchar("J",2runew#,runeh#,0);
% 30.09.92, jhl
z1 = (2w/3, h);
z2 = (0, h/2);
z3 = (w/3, h/3);
z4 = (w/3, 0);
z5 = (w, h/2);
z6 = (2w/3, 2h/3);
draw z1--z2--z3;
draw z4--z5--z6;
endchar;

beginchar("j",2runew#,runeh#,0);
% ok, 14.04.92, jhl
z1 = (.66w, h);
z2 = (0, .5h);
z3 = (.3w,.33h);
z4 = (.33w, 0);
z5 = (w, .5h);
z6 = (.66w, .66h);
draw z1--z2--z3;
draw z4--z5--z6;
endchar;

%=============================================
% Character K               14.04.92 Lueddecke
%=============================================
beginchar("K",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (0, h/2);
z4 = (w, 0);
draw z1--z2;
draw z3--z4;
endchar;

%=============================================
% Character k = K           14.04.92 Lueddecke
%=============================================
beginchar("k",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (0, h/2);
z4 = (w, 0);
draw z1--z2;
draw z3--z4;
endchar;

%=============================================
% Number 6 = Character K    21.07.93 Lueddecke
%=============================================
beginchar("6",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (0, h/2);
z4 = (w, 0);
draw z1--z2;
draw z3--z4;
endchar;

beginchar("L",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, .66h);
draw z1--z2--z3;
endchar;

beginchar("l",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, .66h);
draw z1--z2--z3;
endchar;

beginchar("M",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, .5h);
z4 = (w, 0);
z5 = (w, h);
z6 = (0, .5h);
draw z1--z2--z3;
draw z4--z5--z6;
endchar;

beginchar("m",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, .5h);
z4 = (w, 0);
z5 = (w, h);
z6 = (0, .5h);
draw z1--z2--z3;
draw z4--z5--z6;
endchar;

%=============================================
% Character N               21.07.93 Lueddecke
%=============================================
beginchar("N",runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z4 = (0, 2h/3);
z5 = (w, h/3);
draw z1--z2;
draw z4--z5;
endchar;

%=============================================
% Character n = N           21.07.93 Lueddecke
%=============================================
beginchar("n",runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z4 = (0, 2h/3);
z5 = (w, h/3);
draw z1--z2;
draw z4--z5;
endchar;

%=============================================
% Number 8 = Character N    21.07.93 Lueddecke
%=============================================
beginchar("8",runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z4 = (0, 2h/3);
z5 = (w, h/3);
draw z1--z2;
draw z4--z5;
endchar;

beginchar("O",2runew#,runeh#,0);
% ok, 14.04.92 jhl
z1 = (0, 0);
z2 = (w, .66h);
z3 = (w/2, h);
z4 = (0, .66h);
z5 = (w, 0);
draw z1--z2--z3--z4--z5;
endchar;

beginchar("o",2runew#,runeh#,0);
% ok, 14.04.92 jhl
z1 = (0, 0);
z2 = (w, .66h);
z3 = (w/2, h);
z4 = (0, .66h);
z5 = (w, 0);
draw z1--z2--z3--z4--z5;
endchar;

beginchar("P",2runew#,runeh#,0);
%  ok, 14.04.92, jhl
z1 = (0, 0);
z2 = (0, h);
z3 = (w/2, .66h);
z4 = (w, h);
z5 = (w, 0);
z6 = (w/2, .33h);
draw z4--z3--z2--z1--z6--z5;
endchar;

beginchar("p",2runew#,runeh#,0);
%  ok, 14.04.92, jhl
z1 = (0, 0);
z2 = (0, h);
z3 = (w/2, .66h);
z4 = (w, h);
z5 = (w, 0);
z6 = (w/2, .33h);
draw z4--z3--z2--z1--z6--z5;
endchar;

beginchar("Q",runew#,runeh#,0);
% 30.09.92, jhl
z1 = (w, h);
z2 = (w, 0);
z3 = (0, h);
z4 = (0, h/2);
z5 = (w, h/2);
draw z1--z2;
draw z3--z4--z5;
endchar;

beginchar("q",runew#,runeh#,0);
% 30.09.92, jhl
z1 = (w, h);
z2 = (w, 0);
z3 = (0, h);
z4 = (0, h/2);
z5 = (w, h/2);
draw z1--z2;
draw z3--z4--z5;
endchar;

%=============================================
% Character R               14.04.92 Lueddecke
%=============================================
beginchar("R",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 2h/3);
z4 = (0, h/3);
z5 = (w, 0);
draw z1--z2--z3--z4--z5;
endchar;

%=============================================
% Character r = R           14.04.92 Lueddecke
%=============================================
beginchar("r",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 2h/3);
z4 = (0, h/3);
z5 = (w, 0);
draw z1--z2--z3--z4--z5;
endchar;

%=============================================
% Number 5 = Character R    21.07.93 Lueddecke
%=============================================
beginchar("5",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 2h/3);
z4 = (0, h/3);
z5 = (w, 0);
draw z1--z2--z3--z4--z5;
endchar;


beginchar("S",runew#,runeh#,0);
% 15.06.92 jhl
z1 = (w, h);
z2 = (0, h/2);
z3 = (w, h/2);
z4 = (0, 0);
draw z1--z2--z3--z4;
endchar;

beginchar("s",runew#,runeh#,0);
% 15.06.92 jhl
z1 = (w, h);
z2 = (0, h/2);
z3 = (w, h/2);
z4 = (0, 0);
draw z1--z2--z3--z4;
endchar;

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

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

%=============================================
% Character U               15.06.92 Lueddecke
%=============================================
beginchar("U",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 3h/4);
z4 = (w, 0);
draw z1--z2--z3--z4;
endchar;

%=============================================
% Character u = U           15.06.92 Lueddecke
%=============================================
beginchar("u",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 3h/4);
z4 = (w, 0);
draw z1--z2--z3--z4;
endchar;

%=============================================
% Number 2 = Character U    15.06.92 Lueddecke
%=============================================
beginchar("2",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 3h/4);
z4 = (w, 0);
draw z1--z2--z3--z4;
endchar;

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

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

beginchar("W",runew#,runeh#,0);
% ok, 14.04.92 jhl
z1 = (0, 0);
z2 = (0, h);
z3 = (w, .75h);
z4 = (0, .5h);
draw z1--z2--z3--z4;
endchar;

beginchar("w",runew#,runeh#,0);
% ok, 14.04.92 jhl
z1 = (0, 0);
z2 = (0, h);
z3 = (w, .75h);
z4 = (0, .5h);
draw z1--z2--z3--z4;
endchar;

beginchar("X",2runew#,runeh#,0);
% 30.09.92, jhl
z1 = (w/2, h);
z2 = (w/2, 0);
z3 = (0, h);
z4 = (0, h/2);
z5 = (w, h/2);
z6 = (w, h);
draw z1--z2;
draw z3--z4--z1--z5--z6;
endchar;

beginchar("x",2runew#,runeh#,0);
% 30.09.92, jhl
z1 = (w/2, h);
z2 = (w/2, 0);
z3 = (0, h);
z4 = (0, h/2);
z5 = (w, h/2);
z6 = (w, h);
draw z1--z2;
draw z3--z4--z1--z5--z6;
endchar;

beginchar("Y",2runew#,runeh#,0);
% Character Y, or ligatures UE, Ue, "U, 15.06.92 jhl
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 3h/4);
z4 = (w, 0);
z5 = (0, h/3);
z6 = (w, h/3);
z7 = (w/2, h/3);
z8 = (w/2, 0);
draw z1--z2--z3--z4;
draw z5--z6;
draw z7--z8;
endchar;

beginchar("y",2runew#,runeh#,0);
% Character y, or ligatures ue, "u, 15.06.92 jhl
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 3h/4);
z4 = (w, 0);
z5 = (0, h/3);
z6 = (w, h/3);
z7 = (w/2, h/3);
z8 = (w/2, 0);
draw z1--z2--z3--z4;
draw z5--z6;
draw z7--z8;
endchar;

beginchar("Z",2runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z3 = (0, h);
z4 = (w/2, .66h);
z5 = (w, h);
draw z1--z2;
draw z3--z4--z5;
endchar;

beginchar("z",2runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z3 = (0, h);
z4 = (w/2, .66h);
z5 = (w, h);
draw z1--z2;
draw z3--z4--z5;
endchar;

beginchar(".",pw#,runeh#,0);
% full stop
z1 = (w/2, 0);
drawdot z1;
endchar;

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

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

% ============================================
% the ligature ee,          14.04.92 Lueddecke
% ============================================
beginchar(hex"01",2runew#,runeh#,0);
z1 = (w/2, h);
z2 = (w/2, 0);
z3 = (0, 2h/3);
z4 = (w, h/3);
draw z1--z2;
draw z3--z1;
draw z2--z4;
endchar;

% ============================================
% the ligature th,          14.04.92 Lueddecke
% ============================================
beginchar(hex"02",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (0, 3h/4);
z4 = (w, h/2);
z5 = (0, h/4);
draw z1--z2;
draw z3--z4--z5;
endchar;

%=============================================
% Number 3 = Character th   21.07.93 Lueddecke
%=============================================
beginchar("3",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (0, 3h/4);
z4 = (w, h/2);
z5 = (0, h/4);
draw z1--z2;
draw z3--z4--z5;
endchar;

%=============================================
% the ligature ng,          30.09.92 Lueddecke
%=============================================
beginchar(hex"03",2runew#,runeh#,0);
z1 = (w/2, h);
z2 = (w, h/2);
z3 = (w/2, 0);
z4 = (0, h/2);
draw z1--z2--z3--z4--z1;
endchar;

%=============================================
% the ligature ck,          14.04.92 Lueddecke
%=============================================
beginchar(hex"04",2runew#,runeh#,0);
z1 = (w/2, h);
z2 = (w/2, 0);
z3 = (0, 0);
z4 = (0, h/3);
z5 = (w/2, h/2);
z6 = (w, h/3);
z7 = (w, 0);
draw z1--z2;
draw z3--z4--z5--z6--z7;
endchar;

% =============================
% the ligature st, 14.04.92 jhl
% =============================
beginchar(hex"05",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w/2, 2h/3);
z4 = (w, h);
z5 = (w, 0);
z6 = (w/2, h/3);
draw z1--z2--z3--z4--z5--z6--z1;
endchar;

% ==============================
% the ligature gg, 14.04.92, jhl
% ==============================
beginchar(hex"06",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, h);
z4 = (w, 0);
z5 = (.2w, .5h);
z6 = (.5w, .8h);
z7 = (.8w, .5h);
z8 = (.5w, .2h);
draw z1--z3;
draw z2--z4;
draw z5--z6--z7--z8--z5;
endchar;

%=============================================
% the ligature io,          15.06.92 Lueddecke
%=============================================
beginchar(hex"07",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, h);
z4 = (w, 0);
z5 = (w/2, h);
z6 = (w/2, 0);
draw z1--z3;
draw z2--z4;
draw z5--z6;
endchar;

%=============================================
% Number 7 = Character io   21.07.93 Lueddecke
%=============================================
beginchar("7",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, h);
z4 = (w, 0);
z5 = (w/2, h);
z6 = (w/2, 0);
draw z1--z3;
draw z2--z4;
draw z5--z6;
endchar;

% ==============================
% the ligature eo, 15.06.92, jhl
% ==============================
beginchar(hex"08",2runew#,runeh#,0);
z1 = (0, h);
z2 = (w, h);
z3 = (0, 0);
z4 = (w, 0);
draw z1--z2--z3--z4;
endchar;

% ==========================================
% the ligature ae and a-Umlaut, 15.06.92 jhl
% ==========================================
beginchar(hex"09",runew#,runeh#,0);
z1 = (0, 0);
z2 = (0, h);
z3 = (w, 2h/3);
z4 = (0, 2h/3);
z5 = (w, h/3);
z6 = (w, h);
draw z1--z2--z3--z6;
draw z4--z5;
endchar;

% =============================
% the ligature ea, 14.04.92 jhl
% =============================
beginchar(hex"0A",2runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z3 = (0, h);
z4 = (.5[x2, x3], .75h);
z5 = (.5[x2, x6], .75h);
z6 = (w, h);
draw z1--z2;
draw z3--z4--z2--z5--z6;
endchar;

% ============================================
% ligature aa, ah, 30.09.92 jhl
% long a like in the german words Jahr or Haar 
% ============================================
beginchar(hex"0B",runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z4 = (0, h/3);
z5 = (w, 2h/3);
draw z1--z2;
draw z4--z5;
endchar;

% =============================
% the ligature ss, 15.06.92 jhl
% =============================
beginchar(hex"0C",5runew#/2,runeh#,0);
z1 = (2w/5, h);
z2 = (0, h/2);
z3 = (2w/5, h/2);
z4 = (0, 0);
z5 = (w, h);
z6 = (3w/5, h/2);
z7 = (w, h/2);
z8 = (3w/5, 0);
draw z1--z2--z3--z4;
draw z5--z6--z7--z8;
endchar;

% =============================
% the ligature oe, 14.04.92 jhl
% =============================
beginchar(hex"0D",9runew#/2,runeh#,0);
z1 = (0, 0);
z2 = (4w/9, 2h/3);
z3 = (2w/9, h);
z4 = (0, 2h/3);
z5 = (4w/9, 0);

z6 = (5w/9, 0);
z7 = (5w/9, h);
z8 = (7w/9, 2h/3);
z9 = (w, h);
z10 = (w, 0);

draw z1--z2--z3--z4--z5;
draw z6--z7--z8--z9--z10;
endchar;

% =============================
% the ligature ge, 28.09.92 jhl
% =============================
beginchar(hex"0E",runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z4 = (0, h/2);
z5 = (w/2, 3h/4);
z6 = (w, h/2);
z7 = (w/2, h/4);
draw z1--z2;
draw z4--z5--z6--z7--z4;
endchar;

% ==============================
% the ligature ts, 28.09.92, jhl
% ==============================
beginchar(hex"0F",2runew#,runeh#,0);
z1 = (0, 0);
z2 = (w, h/2);
z3 = (0, h);
z4 = (w, 0);
z5 = (0, h/2);
z6 = (w, h);
draw z1--z2--z3;
draw z4--z5--z6;
draw z1--z3;
draw z4--z6;
endchar;

% ===================================
% the ligature rr, 30.09.92, jhl
% Rune r like in the german word Herr
% ===================================
beginchar(hex"10",2runew#,runeh#,0);
z1 = (w/2, 0);
z2 = (w/2, h);
z3 = (0, 0);
z4 = (w/2, h/3);
z5 = (w, 0);
draw z1--z2;
draw z3--z4--z5;
endchar;

% the ligatures
ligtable     "1": "0" =: hex"0B",
                  "1" =: "S",
                  "2" =: "T",
                  "3" =: "B",
                  "4" =: "L",
                  "5" =: "Z",
                  "6" =: hex"10";
ligtable     "A": "E" =: hex"09",
                  "e" =: hex"09",
                  "A" =: hex"0B",
                  "a" =: hex"0B",
                  "H" =: hex"0B",
                  "h" =: hex"0B";
ligtable     "a": "e" =: hex"09",
                  "a" =: hex"0B",
                  "h" =: hex"0B";
ligtable     "C": "K" =: hex"04",
                  "k" =: hex"04";
ligtable     "c": "k" =: hex"04";
ligtable     "E": "A" =: hex"0A",
                  "E" =: hex"01",
                  "H" =: hex"01",
                  "O" =: hex"08",
                  "a" =: hex"0A",
                  "e" =: hex"01",
                  "h" =: hex"01",
                  "o" =: hex"08";
ligtable     "e": "a" =: hex"0A",
                  "e" =: hex"01",
                  "h" =: hex"01",
                  "o" =: hex"08";
ligtable     "G": "E" =: hex"0E",
                  "e" =: hex"0E",
                  "G" =: hex"06",
                  "g" =: hex"06";
ligtable     "g": "e" =: hex"0E",
                  "g" =: hex"06";
ligtable     "I": "O" =: hex"07",
                  "o" =: hex"07";
ligtable     "i": "o" =: hex"07";
ligtable     "N": "G" =: hex"03",
                  "g" =: hex"03";
ligtable     "n": "g" =: hex"03";
ligtable     "R": "R" =: hex"10",
                  "r" =: hex"10";
ligtable     "r": "r" =: hex"10";
ligtable     "S": "T" =: hex"05",
                  "t" =: hex"05";
ligtable     "s": "t" =: hex"05";
ligtable     "T": "H" =: hex"02",
                  "h" =: hex"02",
                  "S" =: hex"0F",
                  "s" =: hex"0F";
ligtable     "t": "h" =: hex"02",
                  "s" =: hex"0F";
ligtable     "U": "E" =: "Y",
                  "e" =: "Y";
ligtable     "u": "e" =: "y";
ligtable hex"22": "a" =: hex"09",
                  "A" =: hex"09",
                  "o" =: hex"0D",
                  "O" =: hex"0D",
                  "u" =: "y",
                  "U" =: "Y",
                  "s" =: hex"0C",
                  "S" =: hex"0C";

end;
