summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-03-09 22:47:18 +0000
committerKarl Berry <karl@freefriends.org>2018-03-09 22:47:18 +0000
commitede48fa402ed1c37b836d56fc860a137fd0d2e11 (patch)
treeabaeee82bcd19128a983e237d8d1010c29b41210 /Master/texmf-dist/fonts/source
parent3a66104a35750e51768c735cc4b634e4ecc7dfa3 (diff)
ascmac (9mar18)
git-svn-id: svn://tug.org/texlive/trunk@46904 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source')
-rw-r--r--Master/texmf-dist/fonts/source/public/ascmac/ascgrp.mf372
-rw-r--r--Master/texmf-dist/fonts/source/public/ascmac/ascii.mf291
-rw-r--r--Master/texmf-dist/fonts/source/public/ascmac/ascii10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/ascmac/ascii36.mf3
4 files changed, 669 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/ascmac/ascgrp.mf b/Master/texmf-dist/fonts/source/public/ascmac/ascgrp.mf
new file mode 100644
index 00000000000..77afb96441a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ascmac/ascgrp.mf
@@ -0,0 +1,372 @@
+%mode=ascii;
+
+designsize:=10;
+mode_setup;
+%openit;
+
+font_family "ASCII SPECIAL";
+coding_scheme "SPECIAL GRAPHIC FONT";
+
+def clear =
+ clearx;
+ currentpicture:=nullpicture;
+enddef;
+def clearx =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[],pw;
+enddef;
+
+def drawpix expr p =
+ addto pix doublepath p.t_ withpen currentpen enddef;
+def curve(suffix $,$$,$$$) =
+ fill z$l
+ if known dz$: {dz$} fi
+ .. z$$l{if known dz$$: dz$$ else: z$$$l-z$l fi}
+ .. z$$$l
+ if known dz$$$: {dz$$$} fi
+ & z$$$l..z$$$r
+ & z$$$r
+ if known dz$$$: {-dz$$$} fi
+ .. z$$r{if known dz$$: -dz$$ else: z$r-z$$$r fi}
+ .. z$r
+ if known dz$: {-dz$} fi
+ & z$r..z$l & cycle;
+enddef;
+
+vardef setpos@#(expr a,b) =
+ z@#=.5[z@#l,z@#r] enddef;
+
+def setwidth (expr x) =
+ chardx:=x;
+ numeric w; w=chardx;
+ if proofing>1:
+ for n:=0 step 2bs until chardx-1:
+ proofrule((n,-ydepth),(n,hheight)); endfor
+ proofrule((chardx,-ydepth),(chardx,hheight));
+ proofrule((0,-ydepth),(chardx,-ydepth));
+ proofrule((0,0),(chardx,0));
+ proofrule((0,xheight),(chardx,xheight));
+ proofrule((0,capheight),(chardx,capheight));
+ proofrule((0,hheight),(chardx,hheight));
+ fi
+enddef;
+
+%def labelpos(text t) =
+% if proofing>1:
+% forsuffixes $$=l,,r: forsuffixes $=t:
+% makelabel(str $.$$, z$.$$); endfor endfor fi enddef;
+
+def mask(expr mx,my) =
+ cullit;
+ pix:=nullpicture;
+ unfill (0,0)..(round(mx+1)*pt,round(my+1)*pt)..cycle;
+ for r=1 step 1 until mx*pt/2: addto pix also PIX shifted (2*r*sqsize,0);
+ endfor
+ cull pix including (1,9);
+ for i:=0 step pxsize until my*pt:
+ addto currentpicture also pix shifted(0,i);
+ endfor
+ picture pix;
+enddef;
+
+ show designsize;
+ numeric s,pw,char_w,hheight,ydepth,bss,bs,f,us,uus,usx,uusx,dd;
+ 180f = designsize;
+ hheight=140f ; ydepth=40f;
+ bss = 140f/17.3;
+ bs = bss*pt;
+ 10us = designsize;
+ uus = us*pt;
+ 10usx = .7227designsize;
+ uusx = usx*pt;
+ dd:=pixels_per_inch/120;
+ s = .5uusx;
+
+%
+% special
+%
+
+lw:=3.6*designsize/10*.3pt;
+vardef char.b(expr char_w, hheight) =
+ pickup pencircle scaled(lw + blacker);
+ y1=y2=-lw/2;
+ x1=0bs; x2:=5bs*3.6;
+ draw z1--z2;
+ penlabels(1,2);
+enddef;
+
+vardef char.a(expr char_w, hheight) =
+ pickup pencircle scaled(lw + blacker);
+ y1=y2=y5=y6=-lw/2;
+ y7:=-10bs*3.6;
+ x1:=0bs; x2:=3bs*3.6; x3:=4bs*3.6; x6:=10bs*3.6;
+ y3=y4;
+ (y1+y7)*2/5=y3;
+ (x1+x6)/2=(x2+x5)/2=(x3+x4)/2=x7;
+ draw z1--z2--z3..z7..z4--z5--z6;
+ penlabels(1,2,3,4,5,6,7);
+enddef;
+
+def drawsq(expr dx, dy)=
+ draw z1 shifted (dx, dy)--z2 shifted (dx, dy);
+ draw z3 shifted (dx, dy)--z4 shifted (dx, dy);
+ draw z5 shifted (dx, dy)--z6 shifted (dx, dy);
+ draw z7 shifted (dx, dy)--z8 shifted (dx, dy);
+enddef;
+vardef char.A(expr char_w, hheight) =
+ pickup pencircle scaled(.15uus + blacker);
+ uux:=char_w/8; uuy:=hheight/8;
+ x1:=.5uux; x2:=1.5uux; x8:=2.5uux; x7:=3.5uux;
+ y1:=3.5uuy; y2:=2.5uuy; y4:=1.5uuy; y3:=.5uuy;
+ x1=x3; x2=x4; x8=x6; x7=x5;
+ y1=y7; y2=y8; y4=y6; y3=y5;
+ drawsq(0, 0);
+ drawsq(0,4uuy);
+ drawsq(4uux,0);
+ drawsq(4uux,4uuy);
+enddef;
+
+vardef char.B(expr char_w, hheight) =
+ pickup pencircle scaled(.15uus + blacker);
+ uux:=char_w/4; uuy:=hheight/4;
+ x1:=.5uux; x2:=1.5uux; x8:=2.5uux; x7:=3.5uux;
+ y1:=3.5uuy; y2:=2.5uuy; y4:=1.5uuy; y3:=.5uuy;
+ x1=x3; x2=x4; x8=x6; x7=x5;
+ y1=y7; y2=y8; y4=y6; y3=y5;
+ drawsq(0, 0);
+enddef;
+
+vardef char.C(expr char_w, hheight) =
+ numeric d,s;
+ d:=3; s:=1; if pixels_per_inch>=300:d:=d*dd; s:=s*dd; fi;
+ for y=0 step 2d until hheight-d:
+ for x=0 step 2d until char_w-d:
+ fill (x,y)--(x,y+s)--(x+s,y+s)--(x+s,y)--cycle;
+ endfor;
+ endfor;
+ for y=d step 2d until hheight-d:
+ for x=d step 2d until char_w-d:
+ fill (x,y)--(x,y+s)--(x+s,y+s)--(x+s,y)--cycle;
+ endfor;
+ endfor;
+enddef;
+
+vardef char.D(expr char_w, hheight) =
+ char.C(char_w, hheight);
+enddef;
+
+vardef char.E(expr char_w, hheight) =
+ numeric d;
+ d:=2; s:=1; if pixels_per_inch>300:d:=d*dd; s:=s*dd; fi;
+ for y=0 step 2d until hheight-d:
+ for x=0 step 2d until char_w-d:
+ fill (x,y)--(x,y+s)--(x+s,y+s)--(x+s,y)--cycle;
+ endfor;
+ endfor;
+ for y=d step 2d until hheight-d:
+ for x=d step 2d until char_w-d:
+ fill (x,y)--(x,y+s)--(x+s,y+s)--(x+s,y)--cycle;
+ endfor;
+ endfor;
+enddef;
+
+vardef char.F(expr char_w, hheight) =
+ char.E(char_w, hheight);
+enddef;
+
+def drawweb(expr dx, dy) =
+ draw z1 shifted (dx, dy)--z11 shifted (dx, dy);
+ draw z2 shifted (dx, dy)--z12 shifted (dx, dy);
+ draw z3 shifted (dx, dy)--z4 shifted (dx, dy);
+ draw z7 shifted (dx, dy)--z8 shifted (dx, dy);
+ draw z5 shifted (dx, dy)--z6 shifted (dx, dy);
+ draw z9 shifted (dx, dy)--z10 shifted (dx, dy);
+enddef;
+def drawwebx(expr dx, dy) =
+ draw z1 shifted (dx, dy)--z4 shifted (dx, dy);
+ draw z2 shifted (dx, dy)--z5 shifted (dx, dy);
+ draw z8 shifted (dx, dy)--z11 shifted (dx, dy);
+ draw z9 shifted (dx, dy)--z12 shifted (dx, dy);
+ draw z3 shifted (dx, dy)--z6 shifted (dx, dy);
+ draw z7 shifted (dx, dy)--z10 shifted (dx, dy);
+enddef;
+
+vardef char.G(expr char_w, hheight) =
+ pickup pencircle scaled(.15uus + blacker);
+ uux:=char_w/16; uuy:=hheight/16;
+ x1=x4=x8=x11=1uux;
+ x2=x5=x9=x12=3uux;
+ x3=x7=0uux; x6=x10=4uux;
+ y1=y2=4uuy; y11=y12=0uuy;
+ y3=y4=y5=y6=3uuy;
+ y7=y8=y9=y10=1uuy;
+ drawweb (0uux,12uuy); drawweb (8uux,12uuy);
+ drawweb (0uux,4uuy); drawweb (8uux,4uuy);
+ drawweb (4uux,8uuy); drawweb (12uux,8uuy);
+ drawweb (4uux,0uuy); drawweb (12uux,0uuy);
+ drawwebx(4uux,12uuy); drawwebx(12uux,12uuy);
+ drawwebx(4uux,4uuy); drawwebx(12uux,4uuy);
+ drawwebx(0uux,8uuy); drawwebx(8uux,8uuy);
+ drawwebx(0uux,0uuy); drawwebx(8uux,0uuy);
+enddef;
+
+vardef char.H(expr char_w, hheight) =
+ pickup pencircle scaled(.15uus + blacker);
+ uux:=char_w/8; uuy:=hheight/8;
+ x1=x4=x8=x11=1uux;
+ x2=x5=x9=x12=3uux;
+ x3=x7=0uux; x6=x10=4uux;
+ y1=y2=4uuy; y11=y12=0uuy;
+ y3=y4=y5=y6=3uuy;
+ y7=y8=y9=y10=1uuy;
+ drawweb(0uux,4uuy);
+ drawweb(4uux,0uuy);
+ drawwebx(4uux,4uuy);
+ drawwebx(0uux,0uuy);
+enddef;
+
+def drawwebs(expr dx, dy) =
+ draw z1 shifted (dx, dy)--z2 shifted (dx, dy);
+ draw z3 shifted (dx, dy)--z4 shifted (dx, dy);
+ draw z5 shifted (dx, dy)--z6 shifted (dx, dy);
+ draw z7 shifted (dx, dy)--z8 shifted (dx, dy);
+ draw z1 shifted (dx, dy)--z9 shifted (dx, dy);
+ draw z7 shifted (dx, dy)--z12 shifted (dx, dy);
+ draw z3 shifted (dx, dy)--z10 shifted (dx, dy);
+ draw z5 shifted (dx, dy)--z11 shifted (dx, dy);
+enddef;
+
+vardef char.I(expr char_w, hheight) =
+ pickup pencircle scaled(.15uus + blacker);
+ uux:=char_w/8; uuy:=hheight/8;
+ x2:=3uux; x4:=2uux; x6:=1uux; x8:=x4;
+ y2:=2uuy; y4:=3uuy; y6:=y2; y8:=1uuy;
+ y1:=4uuy; x3:=0uux; y5:=0uuy; x7:=4uux;
+ (y2-y1)=-(x2-x1); (y5-y6)=-(x5-x6);
+ (y7-y8)=(x7-x8); (y4-y3)=(x4-x3);
+ x9=x3; y10=y5; x11=x7; y12=y1;
+ (y7-y12)=-(x7-x12); (y10-y3)=-(x10-x3);
+ (y1-y9)=(x1-x9); (y11-y5)=(x11-x5);
+ drawwebs(0uux, 0uuy);
+ drawwebs(4uux,0uuy);
+ drawwebs(0uux,4uuy);
+ drawwebs(4uux,4uuy);
+ labels(1,2,3,4,5,6,7,8,9,10,11,12);
+enddef;
+
+vardef char.J(expr char_w, hheight) =
+ pickup pencircle scaled(.15uus + blacker);
+ uux:=char_w/4; uuy:=hheight/4;
+ x2:=3uux; x4:=2uux; x6:=1uux; x8:=x4;
+ y2:=2uuy; y4:=3uuy; y6:=y2; y8:=1uuy;
+ y1:=4uuy; x3:=0uux; y5:=0uuy; x7:=4uux;
+ (y2-y1)=-(x2-x1); (y5-y6)=-(x5-x6);
+ (y7-y8)=(x7-x8); (y4-y3)=(x4-x3);
+ x9=x3; y10=y5; x11=x7; y12=y1;
+ (y7-y12)=-(x7-x12); (y10-y3)=-(x10-x3);
+ (y1-y9)=(x1-x9); (y11-y5)=(x11-x5);
+ drawwebs(0uux, 0uuy);
+enddef;
+
+vardef char.K(expr char_w, hheight) =
+ pickup pencircle scaled(.15uus + blacker);
+ uux:=char_w/8; uuy:=hheight/8;
+ x1=x4=x8=x11=1uux;
+ x2=x5=x9=x12=3uux;
+ x3=x7=0uux; x6=x10=4uux;
+ y1=y2=4uuy; y11=y12=0uuy;
+ y3=y4=y5=y6=3uuy;
+ y7=y8=y9=y10=1uuy;
+ drawweb(0uux,4uuy);
+ drawweb(4uux,0uuy);
+ drawwebx(4uux,4uuy);
+ drawwebx(0uux,0uuy);
+enddef;
+
+vardef char.rtriangle(expr char_w, hheight) =
+ x1 = x2 = char_w - x3 = s;
+ y3 = .5hheight;
+ z1 - z2 = (z3 - z2) rotated 60;
+ fill z1--z2--z3--cycle;
+ labels(1,2,3);
+enddef;
+
+vardef char.ltriangle(expr char_w, hheight) =
+ char_w - x1 = char_w - x2 = x3 = s;
+ y3 = .5hheight;
+ z1 - z2 = (z3 - z2) rotated -60;
+ fill z1--z2--z3--cycle;
+ labels(1,2,3);
+enddef;
+
+vardef char.ttriangle(expr char_w, hheight) =
+ y1 = y2 = hheight - y3 = s;
+ x3 = .5char_w;
+ z1 - z2 = (z3 - z2) rotated 60;
+ fill z1--z2--z3--cycle;
+ labels(1,2,3);
+enddef;
+
+vardef char.btriangle(expr char_w, hheight) =
+ hheight - y1 = hheight - y2 = y3 = s;
+ x3 = .5char_w;
+ z1 - z2 = (z3 - z2) rotated -60;
+ fill z1--z2--z3--cycle;
+ labels(1,2,3);
+enddef;
+
+vardef char.cr(expr char_w, hheight) =
+ x1 = s; x2 = x3 = .4char_w;
+ y2 = -.2(y3-y2);
+ z1 - z2 = (z1 - z3) rotated -90;
+ fill z1--z2--z3--cycle;
+ pw := .4(y3-y2);
+ y4 = hheight - s; x4 = x5 = char_w - .5pw - s;
+ y5 = y6 = y1; x6 = x3;
+ z7 = (x4, y5+.7pw); z8 = (x5-.7pw, y6);
+ penpos4(pw, 0); penpos6(pw, -90);
+ penpos7(pw, 0); penpos8(pw, -90);
+ %penstroke z4--z7..z8--z6;
+ fill z4l--z7l{z5-z7}..{z8-z5}z8l--z6l--z6r--z8r{z5-z8}..{z7-z5}z7r--z4r--cycle;
+ labels(1,2,3,4,5,6,7,8,4l,4r,7l,7r,8l,8r,6l,6r);
+enddef;
+
+vardef char.CR(expr char_w, hheight) =
+ char.cr(char_w, hheight);
+enddef;
+
+vardef make@#(expr char_w,hheight,ydepth)=
+ begingroup beginchar(str@#,char_w,hheight,ydepth);
+ "the character "&str @#; char@#(char_w*pt,hheight*pt);
+% if (fontsize#*mag>30) and (proofing=0): mask(char_w,hheight); fi
+ endchar;
+endgroup enddef;
+
+vardef Make@#(expr code, char_w,hheight,ydepth)=
+ begingroup beginchar(code,char_w,hheight,ydepth);
+ "the character "&code ; char@#(char_w*pt,hheight*pt);
+ endchar;
+endgroup enddef;
+
+
+smoothing:=10;
+Make.rtriangle("0", 9usx, 10usx, 0us);
+Make.ltriangle("1", 9usx, 10usx, 0us);
+Make.ttriangle("2", 10usx, 9usx, 0us);
+Make.btriangle("3", 10usx, 9usx, 0us);
+Make.cr(" ", 12usx, 9usx, 2usx);
+Make.CR("@", 24usx, 18usx, 4usx);
+make.A(10usx,10usx,0us);
+make.B(5usx,5usx,0us);
+make.C(10usx,10usx,0us);
+make.D(5usx,5usx,0us);
+make.E(10usx,10usx,0us);
+make.F(5usx,5usx,0us);
+make.G(10us,10us,0us);
+make.H(5us,5us,0us);
+make.I(10us,10us,0us);
+make.J(5us,5us,0us);
+make.K(10us,10us,0us);
+make.a(36bss,0bss,36bss);
+make.b(18bss,0bss,36bss);
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/ascmac/ascii.mf b/Master/texmf-dist/fonts/source/public/ascmac/ascii.mf
new file mode 100644
index 00000000000..20526cde8d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ascmac/ascii.mf
@@ -0,0 +1,291 @@
+%mode=ascii;
+
+if unknown fontsize#:
+ fontsize#=10;
+fi
+designsize:=fontsize#;
+mode_setup;
+openit;
+
+if known Xerox_world:
+ font_family "ASCII LOGO";
+ coding_scheme "ASCII LETTERS ONLY";
+fi
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ currentpicture:=nullpicture;
+enddef;
+
+def curve(suffix $,$$,$$$) =
+ fill z$l
+ if known dz$: {dz$} fi
+ .. z$$l{if known dz$$: dz$$ else: z$$$l-z$l fi}
+ .. z$$$l
+ if known dz$$$: {dz$$$} fi
+ & z$$$l..z$$$r
+ & z$$$r
+ if known dz$$$: {-dz$$$} fi
+ .. z$$r{if known dz$$: -dz$$ else: z$r-z$$$r fi}
+ .. z$r
+ if known dz$: {-dz$} fi
+ & z$r..z$l & cycle;
+enddef;
+
+vardef setpos@#(expr a,b) =
+ z@#=.5[z@#l,z@#r] enddef;
+
+def setwidth (expr x) =
+ chardx:=x;
+ numeric w; w=chardx;
+ if proofing>1:
+ for n:=0 step 2bs until chardx-1:
+ proofrule((n,-ydepth),(n,hheight)); endfor
+ proofrule((chardx,-ydepth),(chardx,hheight));
+ proofrule((0,-ydepth),(chardx,-ydepth));
+ proofrule((0,0),(chardx,0));
+ proofrule((0,xheight),(chardx,xheight));
+ proofrule((0,capheight),(chardx,capheight));
+ proofrule((0,hheight),(chardx,hheight));
+ fi
+enddef;
+
+%def labelpos(text t) =
+% if proofing>1:
+% forsuffixes $$=l,,r: forsuffixes $=t:
+% makelabel(str $.$$, z$.$$); endfor endfor fi enddef;
+
+def mask(expr mx,my) =
+ cullit;
+ pix:=nullpicture;
+ unfill (0,0)..(round(mx+1)*pt,round(my+1)*pt)..cycle;
+ for r=1 step 1 until mx*pt/2: addto pix also PIX shifted (2*r*sqsize,0);
+ endfor
+ cull pix including (1,9);
+ for i:=0 step pxsize until my*pt:
+ addto currentpicture also pix shifted(0,i);
+ endfor
+ picture pix;
+enddef;
+
+ show designsize;
+ numeric hheight,ydepth,bss,bs,f;
+ 180f = designsize;
+ hheight=140f ; ydepth=40f;
+ bss = 140f/17.3;
+ bs = bss*pt;
+maxx=16bs;
+maxy=17.3bs;
+
+% make mask paturn
+%if designsize*mag > 30:
+% pxsize=4;
+% rep=round(maxx/2+1);
+% sqsize=1;
+% picture pix,px,PIX;
+% px=pix=nullpicture;
+% addto px contour unitsquare scaled sqsize;
+% addto pix also px shifted (0,0);
+% addto pix also px shifted (sqsize,sqsize);
+% addto pix also px shifted (0,2sqsize);
+% addto pix also px shifted (sqsize,3sqsize);
+% cull pix excluding (0,0);
+% PIX=pix;
+% picture px,pix;
+%fi;
+
+vardef char.A =
+% setwidth (15bs);
+ x1r:=16bs;
+ y1:=0;
+ x2r:=16bs;
+ y2:=17.3bs;
+ x3r:=6bs;
+ y3:=0;
+ x4:=12bs;
+ y4:=3.5bs;
+ x5:=7bs;
+ y5:=3.5bs;
+ penpos1(4.2bs,0);
+ penpos2(4.2bs,0);
+ penpos3(4.9bs,0);
+ penpos4(2.4bs,90);
+ penpos5(2.4bs,90);
+ penstroke z1e..z2e;
+ penstroke z2e..z3e;
+ penstroke z4e..z5e;
+ penlabels(1,2,3,4,5);
+enddef;
+
+vardef char.S =
+% setwidth (13bs);
+ x1l:=1bs;
+ y1l:=5.5bs;
+ x2l:=1bs;
+ y2l:=3bs;
+ x3l:=1.6bs;
+ y3l:=1bs;
+ x4l:=3.7bs;
+ y4l:=0;
+ x5l:=11bs;
+ y5l:=0;
+ x6l:=13.4bs;
+ y6l:=1bs;
+ x7l:=14bs;
+ y7l:=3bs;
+ x8l:=14bs;
+ y8l:=5.6bs;
+ x9l:=13.6bs;
+ y9l:=6.6bs;
+ x10l:=13bs;
+ y10l:=7.2bs;
+ x11r:=2.2bs;
+ y11r:=10.1bs;
+% x11l:=5.4bs;
+% y11l:=13bs;
+ penpos1(4.25bs,0);
+ penpos2(4.3bs,7);
+ penpos3(4.4bs,28);
+ penpos4(3.7bs,48);
+ penpos5(3.4bs,126);
+ penpos6(4.4bs,152);
+ penpos7(4.25bs,174);
+ penpos8(4.5bs,200);
+ penpos9(4.55bs,208);
+ penpos10(4.4bs,215);
+ penpos11(4.2bs,215);
+% penpos11(4.4bs,215);
+ x12r:=14bs;
+ y12r:=11.8bs;
+ x13r:=14bs;
+ y13r:=14.3bs;
+ x14r:=13.4bs;
+ y14r:=16.3bs;
+ x15r:=11.3bs;
+ y15r:=17.3bs;
+ x16r:=4bs;
+ y16r:=17.3bs;
+ x17r:=1.6bs;
+ y17r:=16.3bs;
+ x18r:=1bs;
+ y18r:=14.3bs;
+ x19r:=1bs;
+ y19r:=11.7bs;
+ x20r:=1.4bs;
+ y20r:=10.7bs;
+ x21r:=2.2bs;
+ y21r:=10.1bs;
+ x22l:=13bs;
+ y22l:=7.2bs;
+ penpos12(4.25bs,0);
+ penpos13(4.3bs,7);
+ penpos14(4.4bs,28);
+ penpos15(3.7bs,48);
+ penpos16(3.4bs,126);
+ penpos17(4.4bs,152);
+ penpos18(4.25bs,174);
+ penpos19(4.5bs,200);
+ penpos20(4.5bs,208);
+ penpos21(4.2bs,215);
+ penpos22(4.4bs,215);
+ % penstroke z1e--z2e{z2-z1}..{z5-z4}z4e--z5e{z5-z4}..{z8-z7}z7e--z8e{z8-z7}..{z11-z10}z10e--z11e;
+ penstroke z1e--z2e{z2-z1}..{z5-z4}z4e--z5e{z5-z4}..{z8-z7}z7e--z8e{z8-z7}..{z11-z10}z10e--z11e;
+ penstroke z12e--z13e{z13-z12}..{z16-z15}z15e--z16e{z16-z15}..{z19-z18}z18e--z19e{z19-z18}..{z22-z21}z21e--z22e;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
+enddef;
+
+
+vardef char.C =
+% setwidth (13bs);
+ x1l:=1bs;
+ y1l:=5.5bs;
+ x2l:=1bs;
+ y2l:=3bs;
+ x3l:=1.6bs;
+ y3l:=1bs;
+ x4l:=3.7bs;
+ y4l:=0;
+ x5l:=11bs;
+ y5l:=0;
+ x6l:=13.4bs;
+ y6l:=1bs;
+ x7l:=14bs;
+ y7l:=3bs;
+ x8l:=14bs;
+ y8l:=5.5bs;
+
+ penpos1(4.3bs,0);
+ penpos2(4.3bs,7);
+ penpos3(4.4bs,28);
+ penpos4(3.7bs,48);
+ penpos5(3.4bs,126);
+ penpos6(4.4bs,152);
+ penpos7(4.3bs,174);
+ penpos8(4.3bs,180);
+
+ penstroke z1e---z2e{z2-z1}..{z5-z4}z4e---z5e{z5-z4}..{z8-z7}z7e---z8e;
+
+ x12r:=14bs;
+ y12r:=11.8bs;
+ x13r:=14bs;
+ y13r:=14.3bs;
+ x14r:=13.4bs;
+ y14r:=16.3bs;
+ x15r:=11.3bs;
+ y15r:=17.3bs;
+ x16r:=4bs;
+ y16r:=17.3bs;
+ x17r:=1.6bs;
+ y17r:=16.3bs;
+ x18r:=1bs;
+ y18r:=14.3bs;
+ x19r:=1bs;
+ y19r:=5.5bs;
+ penpos12(4.25bs,0);
+ penpos13(4.3bs,7);
+ penpos14(4.4bs,28);
+ penpos15(3.7bs,48);
+ penpos16(3.4bs,126);
+ penpos17(4.4bs,152);
+ penpos18(4.3bs,174);
+ penpos19(4.25bs,180);
+
+ penstroke z12e---z13e{z13-z12}..{z16-z15}z15e---z16e{z16-z15}..{z19-z18}z18e---z19e;
+ penlabels(1,2,3,4,5,6,7,8,12,13,14,15,16,17,18,19);
+enddef;
+
+vardef char.I =
+% setwidth (6bs);
+ x1l:=1bs;
+ y1l:=0;
+ x2l:=1bs;
+ y2l:=17.3bs;
+ penpos1(4.2bs,0);
+ penpos2(4.2bs,0);
+ penstroke z1e..z2e;
+ penlabels(1,2);
+enddef;
+
+%vardef char.a = char.A enddef;
+%vardef char.s = char.S enddef;
+%vardef char.c = char.C enddef;
+%vardef char.i = char.I enddef;
+
+vardef make@#(expr char_w)=
+ begingroup beginchar(str@#,char_w,hheight,ydepth);
+ "the character "&str @#; char@#;
+% if (fontsize#*mag>30) and (proofing=0): mask(char_w,hheight); fi
+ endchar;
+endgroup enddef;
+
+%vardef make@#(expr char_w)=
+% begingroup beginchar(str@#,char_w,hheight,ydepth);
+% "the character "&str @#; char@#; endchar;
+%endgroup enddef;
+
+smoothing:=10;
+
+make.S(14bss);
+make.C(14bss);
+make.A(16bss);
+make.I(5.5bss);
diff --git a/Master/texmf-dist/fonts/source/public/ascmac/ascii10.mf b/Master/texmf-dist/fonts/source/public/ascmac/ascii10.mf
new file mode 100644
index 00000000000..0ec5a453348
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ascmac/ascii10.mf
@@ -0,0 +1,3 @@
+fontsize#=10;
+input ascii;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/ascmac/ascii36.mf b/Master/texmf-dist/fonts/source/public/ascmac/ascii36.mf
new file mode 100644
index 00000000000..06a19cb0122
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ascmac/ascii36.mf
@@ -0,0 +1,3 @@
+fontsize#=36;
+input ascii;
+end;