summaryrefslogtreecommitdiff
path: root/systems/knuth/dist/lib/waits.mf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /systems/knuth/dist/lib/waits.mf
Initial commit
Diffstat (limited to 'systems/knuth/dist/lib/waits.mf')
-rw-r--r--systems/knuth/dist/lib/waits.mf168
1 files changed, 168 insertions, 0 deletions
diff --git a/systems/knuth/dist/lib/waits.mf b/systems/knuth/dist/lib/waits.mf
new file mode 100644
index 0000000000..4d23e0a00d
--- /dev/null
+++ b/systems/knuth/dist/lib/waits.mf
@@ -0,0 +1,168 @@
+% This file can be loaded after PLAIN.MF.
+% It introduces conventions that are commonly used at WAITS.
+base_version:=base_version&"/WAITS";
+
+% The WAITS implementation allows an extended character set;
+% characters :=, <=, <>, and >= are put into the class with <, =, >, :, and |;
+% character ^^L (form feed) is in a class by itself, and is like an "outer" \.
+% Files containing these special characters should not be expected to work
+% elsewhere unless the following replacements are made:
+ let <= = <=;
+ let <> = <>;
+ let >= = >=;
+ let := = :=;
+
+% Say "boise_proof" on the command line, to get proofmode on boise
+def boise_proof = lcode_:=" /";
+ extra_setup:=extra_setup&"grayfont grbois;" enddef;
+
+screen_rows:=400; screen_cols:=480;
+
+% Here are conventions for local output devices:
+
+mode_def dover = % dover mode: for the Xerox Dover
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=384;
+ blacker:=1.2; % make pens somewhat blacker
+ fillin:=0; % no compensation for fillin
+ o_correction:=.6; % but don't overshoot as much
+ enddef;
+
+mode_def imagen = % imagen mode: for the Imagen 8/300 (Canon engine)
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=300;
+ blacker:=0; % Canon engine is black enough
+ fillin:=.2; % and it tends to fill in diagonals
+ o_correction:=.6; %
+ enddef;
+
+mode_def qms = % qms mode: for the QMS (Xerox engine)
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=300;
+ blacker:=.75; % (this value is conjectural)
+ fillin:=0; % (ditto)
+ o_correction:=.5; % (ditto)
+ enddef;
+
+mode_def aps = % aps mode: for the Autologic APS-Micro5
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=1; % yes, show titles online
+ pixels_per_inch:=722.909; % that's roughly 10 per pt
+ blacker:=.2; % make pens a teeny bit blacker
+ fillin:=.2; % but compensate for diagonal fillin
+ o_correction:=1; % and keep the full overshoot
+ enddef;
+
+mode_def crs = % crs mode: for the Alphatype CRS
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=1; % yes, show titles online
+ begingroup interim warningcheck:=0; % (we need to go past 4096)
+ pixels_per_inch:=4000+4000/3 endgroup; % HIGH res
+ blacker:=4; % make pens a lot blacker
+ fillin:=0; % but don't compensate for fillin
+ o_correction:=1; % and keep the full overshoot
+ enddef;
+
+mode_def boise = % boise mode: for the HP 2680A
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=180;
+ blacker:=.55; % make pens a bit blacker
+ fillin:=.1; % and compensate for diagonal fillin
+ o_correction:=.3; % but don't overshoot much
+ enddef;
+
+mode_def DD = % DD mode: for the DataDisc (usually with mag=magstep 2=1.44)
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=70; % really lowres
+ blacker:=0; % don't make the pens any blacker
+ fillin:=0; % and don't compensate for fillin
+ o_correction:=.2; % but suppress most overshoots
+ enddef;
+
+mode_def canon = % canon mode: for the old Imagen (Canon LBP10)
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=240;
+ blacker:=.2; % make pens a wee bit blacker
+ fillin:=.2; % and compensate for fillin
+ o_correction:=.4; % but don't overshoot as much
+ enddef;
+
+mode_def newDD = % newDD mode: for DataDisc with special aspect ratio
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=70; % really lowres
+ blacker:=0; % don't make the pens any blacker
+ fillin:=0; % and don't compensate for fillin
+ o_correction:=.2; % but suppress most overshoots
+ aspect_ratio:=4/3; % this is the new feature...
+ enddef;
+
+mode_def cg = % cg mode: for the Compugraphic 8600
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=1; % yes, show titles online
+ pixels_per_inch:=1301.5; % a bit less than 20 per pt
+ blacker:=.2; % make pens a teeny bit blacker
+ fillin:=.2; % but compensate for diagonal fillin
+ o_correction:=1; % and keep the full overshoot
+ aspect_ratio:=1569/1301.5; % strange, no?
+ enddef;
+
+mode_def epson = % Epson
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=240; % lowres
+ blacker:=0; % don't make the pens any blacker
+ fillin:=0; % and don't compensate for fillin
+ o_correction:=.2; % but suppress most overshoots
+ aspect_ratio:=9/10; % 216 dots/inch vertical
+ enddef;
+
+
+localfont:=imagen;
+
+% Finally, here are macros for Xerox-world font info:
+
+def font_family expr s = % string s names the font family, e.g., "CMR"
+ headerbyte 49: BCPL_string(s,20);
+ special "identifier "&s enddef;
+def coding_scheme expr s = % string s names the scheme, e.g. "TEX TEXT"
+ headerbyte 9: BCPL_string(s,40);
+ special "codingscheme "&s enddef;
+def font_face_byte expr x = % integer x gives the family member number,
+ headerbyte 72: x; % which should be between 0 and 255
+ special "fontfacebyte"; numspecial x enddef;
+
+def BCPL_string(expr s,n)= % string s becomes an n-byte BCPL string
+ for l:=if length(s)>=n: n-1 else: length(s) fi: l
+ for k:=1 upto l: , substring (k-1,k) of s endfor
+ for k:=l+2 upto n: , 0 endfor endfor enddef;
+
+Xerox_world:=1; % users can say `if known Xerox_world:...fi'
+
+inner end;
+def bye=
+ if fontmaking>0: font_family font_identifier_;
+ coding_scheme font_coding_scheme_;
+ font_face_byte max(0,254-round 2designsize); fi
+ tracingstats:=1; % at least for now we want this
+ end
+ enddef;
+
+outer bye,end;