% blackboard typefaces by Anthony Phan.
% file: mbbcrkup.mf (Cork roman uppercase)
% last modification: 25.10.2001.

% some new instructions (eg. begincorkchar)
% and new measures (eg. cap_accent_height#)
% are defined in the driver file `bbcrkdrv.mf'.

use_rule2;

begincorkchar("A","grave",hex"C0",cap_accent_height#,0);
italcorr cork_ic[a];
complete_grave(lshift,rshift);
endcorkchar;

begincorkchar("A","acute",hex"C1",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("A","circumflex",hex"C2",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hat(lshift,rshift);
endcorkchar;

begincorkchar("A","tilde",hex"C3",cap_accent_height#,0);
italcorr cork_ic[a];
complete_tilde(lshift,rshift);
endcorkchar;

begincorkchar("A","umlaut",hex"C4",cap_accent_height_bis#,0);
italcorr cork_ic[a];
complete_umlaut(lshift,rshift);
endcorkchar;

begincorkchar("A","circ",hex"C5",0.7cap_accent_height#,0);
italcorr cork_ic[a];
pickup circle.nib;
bot y4=tmp_h-eps; top y2=h+o; y0=y1=y3=0.5[y4,y2];
x0=x2=x4=0.5[apprl,w-apprr]; x1-x0=x0-x3;
lft x3=hround(x0-0.5max(hThick+thin,3u+thin))-eps;
draw superellipse(z1,z2,z3,z4,superness);
labels(1,2,3,4,0);
endcorkchar;

begincorkchar("A","breve",hex"80",cap_accent_height#,0);
italcorr cork_ic[a];
complete_breve(lshift,rshift);
endcorkchar;

begincorkchar("A","ogonek",hex"81",0,desc_depth#);
italcorr cork_ic[a];
complete_ogonek(w-apprr-0.5thin,0);
endcorkchar;

begincorkchar("C","acute",hex"82",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("C","hacheck",hex"83",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hacheck(lshift,rshift);
endcorkchar;

begincorkchar("C","cedilla",hex"C7",0,desc_depth#);
italcorr cork_ic[a];
pickup circle.nib; lft x0l=apprl; rt x0r=w-apprr;
complete_cedilla(0.527[x0l,x0r],-o);
endcorkchar;

begincorkchar("D","hacheck",hex"84",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hacheck(lshift,rshift);
endcorkchar;

begincorkchar("D","bar",hex"D0",0,0);
italcorr cork_ic[a];
pickup circle.nib;
lft x1=Apprl-hround 1.25u; x2=Apprl; x3=Apprl+hthick+thin;
rt x4-lft x1=slash_width; y1=y2=y3=y4=good.y 0.5h;
pickup square.nib; draw z1..z2; draw z3..z4; labels(1,2,3,4);
endcorkchar;

begincorkchar("E","grave",hex"C8",cap_accent_height#,0);
italcorr cork_ic[a];
complete_grave(lshift,rshift);
endcorkchar;

begincorkchar("E","acute",hex"C9",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("E","circumflex",hex"CA",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hat(Apprl,Apprr);
endcorkchar;

begincorkchar("E","umlaut",hex"CB",cap_accent_height_bis#,0);
italcorr cork_ic[a];
complete_umlaut(Apprl,Apprr);
endcorkchar;

begincorkchar("E","hacheck",hex"85",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hacheck(Apprl,Apprr);
endcorkchar;

begincorkchar("E","ogonek",hex"86",0,desc_depth#);
italcorr cork_ic[a];
pickup circle.nib; rt x0=w-apprr;
complete_ogonek(x0,0);
endcorkchar;

begincorkchar("I","grave",hex"CC",cap_accent_height#,0);
italcorr cork_ic[a];
complete_grave(lshift,rshift);
endcorkchar;

begincorkchar("I","acute",hex"CD",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("I","circumflex",hex"CE",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hat(lshift,rshift);
endcorkchar;

begincorkchar("I","umlaut",hex"CF",cap_accent_height_bis#,0);
italcorr cork_ic[a];
complete_umlaut(lshift,rshift);
endcorkchar;

begincorkchar("I","dot",hex"9D",cap_accent_height_bis#,0);
italcorr cork_ic[a];
complete_dot(lshift,rshift);
endcorkchar;

begincorkchar("I","J",hex"9C",0,0);
italcorr cork_ic[a+1];
currentpicture:=currentpicture+cork_picture[a+1] shifted(w,0);
correct_width_by(0,cork_wd[a+1]);
endcorkchar;

begincorkchar("G","breve",hex"87",cap_accent_height#,0);
italcorr cork_ic[a];
complete_breve(w-13u,0);
endcorkchar;

begincorkchar("L","acute",hex"88",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("L","hacheck",hex"89",0,0);
italcorr cork_ic[a];
correct_width_by(0,0.5u#);
pickup circle.nib; top y1=x_height; top y4=h;
rt x3=w-apprr; x3-x5=hthick;
lft x1=hround min(Apprl+hthick+thin+u,x5-thin);
complete_comma;
endcorkchar;

begincorkchar("L","cross",hex"8A",0,0);
italcorr cork_ic[a];
y0=x_height-eps; x1l=Apprl-hround 1.25u;
x0-hthick-0.5thin=x2l=x3l-hthick=Apprl+0.5thin; 
x4l-x1l=y4l-y1l=slash_width; z0=whatever[z1l,z4l];
y4l-y4r=thin/((1++slant)*sind angle((z4l-z1l)slanted slant));
x4l=x4r; z2l=whatever[z1l,z4l]; z3l=whatever[z1l,z4l];
z1l-z1r=z2l-z2r=z3l-z3r=z4l-z4r;
penstroke z1e..z2e; penstroke z3e..z4e;
labels(0); penlabels(1,2,3,4);
endcorkchar;

begincorkchar("N","acute",hex"8B",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("N","hacheck",hex"8C",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hacheck(lshift,rshift);
endcorkchar;

begincorkchar("N","tilde",hex"D1",cap_accent_height#,0);
italcorr cork_ic[a];
complete_tilde(lshift,rshift);
endcorkchar;

begincorkchar("O","grave",hex"D2",cap_accent_height#,0);
italcorr cork_ic[a];
complete_grave(lshift,rshift);
endcorkchar;

begincorkchar("O","acute",hex"D3",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("O","circumflex",hex"D4",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hat(lshift,rshift);
endcorkchar;

begincorkchar("O","tilde",hex"D5",cap_accent_height#,0);
italcorr cork_ic[a];
complete_tilde(lshift,rshift);
endcorkchar;

begincorkchar("O","umlaut",hex"D6",cap_accent_height_bis#,0);
italcorr cork_ic[a];
complete_umlaut(lshift,rshift);
endcorkchar;

begincorkchar("O","long umlaut",hex"8E",cap_accent_height#,0);
italcorr cork_ic[a];
complete_long_umlaut(lshift,rshift);
endcorkchar;

begincorkchar("R","acute",hex"8F",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("R","hacheck",hex"90",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hacheck(lshift,rshift);
endcorkchar;

begincorkchar("S","acute",hex"91",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("S","hacheck",hex"92",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hacheck(lshift,rshift);
endcorkchar;

begincorkchar("S","cedilla",hex"93",0,desc_depth#);
italcorr cork_ic[a];
complete_cedilla(0.5[apprl,w-apprr],-o);
endcorkchar;

begincorkchar("S","S (es-zet)",hex"DF",0,0);
italcorr cork_ic[a];
currentpicture:=currentpicture+cork_picture[a] shifted(w,0);
correct_width_by(0,charwd);
endcorkchar;

begincorkchar("T","hacheck",hex"94",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hacheck(lshift,rshift);
endcorkchar;

begincorkchar("T","cedilla",hex"95",0,desc_depth#);
italcorr cork_ic[a];
complete_cedilla(0.5[apprl,w-apprr],0);
endcorkchar;

begincorkchar("U","grave",hex"D9",cap_accent_height#,0);
italcorr cork_ic[a];
complete_grave(lshift,rshift);
endcorkchar;

begincorkchar("U","acute",hex"DA",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("U","circumflex",hex"DB",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hat(lshift,rshift);
endcorkchar;

begincorkchar("U","umlaut",hex"DC",cap_accent_height_bis#,0);
italcorr cork_ic[a];
complete_umlaut(lshift,rshift);
endcorkchar;

begincorkchar("U","long umlaut",hex"96",cap_accent_height#,0);
italcorr cork_ic[a];
complete_long_umlaut(lshift,rshift);
endcorkchar;

begincorkchar("U","circ",hex"97",0.7cap_accent_height#,0);
italcorr cork_ic[a];
pickup circle.nib;
bot y4=tmp_h-eps; top y2=h+o; y0=y1=y3=0.5[y4,y2];
x0=x2=x4=0.5[apprl,w-apprr]; x1-x0=x0-x3;
lft x3=hround(x0-0.5max(hThick+thin,3u+thin))-eps;
draw superellipse(z1,z2,z3,z4,superness);
labels(1,2,3,4,0);
endcorkchar;

begincorkchar("Y","acute",hex"DD",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("Y","umlaut",hex"98",cap_accent_height_bis#,0);
italcorr cork_ic[a];
complete_umlaut(lshift,rshift);
endcorkchar;

begincorkchar("Z","acute",hex"99",cap_accent_height#,0);
italcorr cork_ic[a];
complete_acute(lshift,rshift);
endcorkchar;

begincorkchar("Z","hacheck",hex"9A",cap_accent_height#,0);
italcorr cork_ic[a];
complete_hacheck(lshift,rshift);
endcorkchar;

begincorkchar("Z","dot",hex"9B",cap_accent_height_bis#,0);
italcorr cork_ic[a];
complete_dot(lshift,rshift);
endcorkchar;