// PLMakerData.bcpl

// written by Ramshaw  December 14, 1980  5:04 PM build instruction table
//  Ramshaw  February 12, 1982  10:58 AM change Laurel to scalable

get "plmaker.d"; 
get "ix.dfs";

external
	[
	//outgoing Procedure
	InitTables

	//incoming Procedures
	Allocate
	MakeStringCopy

	//incoming statics
	names
	flags
	tnames
	tflags
	nt
	cwvec
	z
	]

manifest 
	[
	maxnames=256	//max number of name IX entries in dictionary
	]


let InitTables() be
[
// make space for names array
names=Allocate(z, maxnames);
flags=Allocate(z, maxnames);
for i=0 to maxnames-1 do [ names!i=0; flags!i=0 ];

// make space for tnames & tflags
manifest maxnt=60;
tnames=Allocate(z, maxnt);
tflags=Allocate(z, maxnt);
for i=0 to maxnt-1 do [ tnames!i=0; tflags!i=0 ];

// set up table of family names of fonts to be considered
let n=0; let ptr=tflags
tnames!n=MakeStringCopy("APL");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("ARROWS");
	ptr>>ptsize=10;
	ptr>>s40=0; ptr>>CS=CSgraphic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("ARROWSTWO");
	ptr>>ptsize=10;
	ptr>>s40=0; ptr>>CS=CSgraphic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("BRAVOX");
	ptr>>ptsize=12;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("CARDSTWO");
	ptr>>ptsize=12;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("MODERN");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("MODERNPIONE");
	ptr>>ptsize=10;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("CMULOGO");
	ptr>>ptsize=18;
	ptr>>s40=1; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("CREAM");
	ptr>>ptsize=0;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("CYRILLIC");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSxeroxcyrillic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("DANATEN");
	ptr>>ptsize=0;
	ptr>>s40=1; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("DANATWELVE");
	ptr>>ptsize=0;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("ELITE");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("FLEUR");
	ptr>>ptsize=28;
	ptr>>s40=1; ptr>>CS=CSgraphic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("GACHA");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("GATES");
	ptr>>ptsize=32;
	ptr>>s40=0; ptr>>CS=CSgraphic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("HELVETICA");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSxeroxtext;
	ptr>>fligs=1; ptr>>dligs=1;
	ptr>>mquad=1; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("HELVETICAD");
	ptr>>ptsize=24;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=1; ptr>>dligs=1;
	ptr>>mquad=1; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("HIPPO");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSxeroxgreek;
	ptr>>fligs=0; ptr>>dligs=1;
	ptr>>mquad=1; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("IFIP");
	ptr>>ptsize=0;
	ptr>>s40=1; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("KEYHOLE");
	ptr>>ptsize=20;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("LAUREL");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("LETTERGOTHIC");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("LOGO");
	ptr>>ptsize=24;
	ptr>>s40=1; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("MALEFEMALE");
	ptr>>ptsize=10;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("MATH");
	ptr>>ptsize=10;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("MAZE");
	ptr>>ptsize=16;
	ptr>>s40=0; ptr>>CS=CSgraphic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("OHELVETICA");
	ptr>>ptsize=0;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=1;
	ptr>>mquad=1; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("OLDENGLISH");
	ptr>>ptsize=18;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=1;
	ptr>>mquad=1; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("PHONETICTR");
	ptr>>ptsize=12;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("ROMANPS");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("SAIL");
	ptr>>ptsize=8;
	ptr>>s40=1; ptr>>CS=CSsail;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("SIGMA");
	ptr>>ptsize=20;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("SNAIL");
	ptr>>ptsize=8;
	ptr>>s40=1; ptr>>CS=CSsanitizedsail;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("SPLUNK");
	ptr>>ptsize=24;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("STAN");
	ptr>>ptsize=70;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("SYMBOL");
	ptr>>ptsize=0;
	ptr>>s40=1; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("TCLOGO");
	ptr>>ptsize=18;
	ptr>>s40=1; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("TEMPLATE");
	ptr>>ptsize=64;
	ptr>>s40=0; ptr>>CS=CSgraphic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("TESTFONT");
	ptr>>ptsize=0;
	ptr>>s40=0; ptr>>CS=CSpi;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("TIMESROMAN");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSxeroxtext;
	ptr>>fligs=1; ptr>>dligs=1;
	ptr>>mquad=1; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("TIMESROMAND");
	ptr>>ptsize=24;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=1; ptr>>dligs=1;
	ptr>>mquad=1; ptr>>fixed=0; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("TITAN");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("TITANLEGAL");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
tnames!n=MakeStringCopy("XEROXBOOK");
	ptr>>ptsize=10;
	ptr>>s40=1; ptr>>CS=CSalphabetic;
	ptr>>fligs=0; ptr>>dligs=0;
	ptr>>mquad=0; ptr>>fixed=1; n=n+1; ptr=ptr+1
nt=n;

cwvec=Allocate(z, 256*CharWidthsize); // space for charwidth array
];