************ File DRB0:[BELL.WEB]MF.WEB;2 7 % TeX is a trademark of the American Mathematical Society. 8 % METAFONT is a tradement of Addison-Wesley Publishing Company. 10 % Version 0 was completed on July 28, 1984. 11 % Version 1 was completed on January 4, 1986; it corresponds to "Volume D". 12 % Version 1.1 trivially corrected the punctuation in one message (June 1986). 13 % Version 1.2 corrected an arithmetic overflow problem (July 1986). 14 % Version 1.3 improved rounding when elliptical pens are made (November 1986). 15 % A few "harmless" optimizations have been made since then. 17 % A reward of $10.24 will be paid to the first finder of any remaining bug. 18 % (This amount will double again in 1988.) 20 % Although considerable effort has been expended to make the METAFONT program ****** File DRB0:[BELL.WEB]MF.WEB;1 7 % Version 0 was completed on July 28, 1984. 8 % Version 1 was completed on January 4, 1986; it corresponds to "Volume D". 10 % A reward of $5.12 will be paid to the first finder of any remaining bug. 11 % (This amount will double in 1987.) 13 % Although considerable effort has been expended to make the METAFONT program ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 42 \chardef\%=`\% 43 \let\swap=\leftrightarrow ****** File DRB0:[BELL.WEB]MF.WEB;1 35 \let\swap=\leftrightarrow ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 146 @d banner=='This is METAFONT, Version 1.3' {printed when \MF\ starts} 148 @ Different \PASCAL s have slightly different conventions, and the present ****** File DRB0:[BELL.WEB]MF.WEB;1 138 @d banner=='This is METAFONT, Version 1.0' {printed when \MF\ starts} 140 @ Different \PASCAL s have slightly different conventions, and the present ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 1019 @!str_ptr : str_number; {number of the current string being created} 1020 @!init_pool_ptr : pool_pointer; {the starting value of |pool_ptr|} ****** File DRB0:[BELL.WEB]MF.WEB;1 1011 @!str_ptr : str_number; {start of the current string being created} 1012 @!init_pool_ptr : pool_pointer; {the starting value of |pool_ptr|} ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 1617 when |get_next| is being used to delete a token, and/or if some fatal error 1618 occurs while \MF\ is trying to fix a non-fatal one. But such recursion 1619 @^recursion@> 1620 is never more than two levels deep. 1622 @= ****** File DRB0:[BELL.WEB]MF.WEB;1 1609 when |get_next| is being used to delete a token, or if some fatal error 1610 occurs while \MF\ is trying to fix a non-fatal one. But such recursion 1611 @^recursion@> 1612 is never more than one level deep. 1614 @= ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 3177 @ The |mem| array is divided into two regions that are allocated separately, ****** File DRB0:[BELL.WEB]MF.WEB;1 3169 @= 3170 @!temp_ptr:pointer; {a pointer variable for occasional emergency use} 3172 @ The |mem| array is divided into two regions that are allocated separately, ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 3314 @p function get_node(@!s:integer):pointer; {variable-size node allocation} 3315 label found,exit,restart; ****** File DRB0:[BELL.WEB]MF.WEB;1 3309 @p function get_node(@!s:integer):pointer; {variable-size node liberation} 3310 label found,exit,restart; ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 3368 if r=p then if rlink(p)<>p then 3369 @; ****** File DRB0:[BELL.WEB]MF.WEB;1 3363 if r=p then if ((rlink(p)<>rover) or (llink(p)<>rover)) then 3364 @; ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 4250 or syntactic significance, except in a few instances defined here. 4251 There's also |max_class|, which can be used as a basis for additional ****** File DRB0:[BELL.WEB]MF.WEB;1 4245 or syntactic significance, expect in a few instances defined here. 4246 There's also |max_class|, which can be used as a basis for additional ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 6061 @!s,@!t:pointer; {registers for list traversal} 6062 @!delx,@!dely:scaled; {directions where |open| meets |explicit|} ****** File DRB0:[BELL.WEB]MF.WEB;1 6056 @!r,@!s,@!t:pointer; {registers for list traversal} 6057 @!delx,@!dely:scaled; {directions where |open| meets |explicit|} ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 6164 @@; ****** File DRB0:[BELL.WEB]MF.WEB;1 6159 @!sine,@!cosine:fraction; {trig functions of various angles} 6160 @@; ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 6759 (The constant .14 is actually $(7-\sqrt{28}\,)/12$; the worst case 6760 occurs for polynomials like $B(0,28-4\sqrt{28},14-5\sqrt{28},42;t)$.) 6762 @ OK, now that a long theoretical preamble has justified the ****** File DRB0:[BELL.WEB]MF.WEB;1 6755 (The constant .14 is actually $(7-\sqrt{28}/12$; the worst case 6756 occurs for polynomials like $B(0,28-4\sqrt{28},14-5\sqrt{28},42)$.) 6758 @ OK, now that a long theoretical preamble has justified the ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 8304 The following code maintains the invariant relations 8305 $0\L|x0|<\max(|x1|,|x1|+|x2|)$, 8306 $\vert|x1|\vert<2^{30}$, $\vert|x2|\vert<2^{30}$; ****** File DRB0:[BELL.WEB]MF.WEB;1 8300 The following code maintains the invariant relations |0<=x00 then 11234 d:=d-take_fraction(internal[fillin],make_fraction(beta+beta,delta)); 11235 d:=take_fraction((d+4) div 8,delta); alpha:=alpha div half_unit; 11236 if d0 then d:=d-take_fraction(internal[fillin],beta+beta); 11230 d:=(d+4) div 8; alpha:=alpha div half_unit; 11231 if d ****** File DRB0:[BELL.WEB]MF.WEB;1 20447 ("Pretend that you're Miss Marple, examine all clues,")@/ 20448 @^Marple, Jane@> ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 20535 last gives the ``face byte.'' 20537 \yskip\hang|header[0]| is a 32-bit check sum that \MF\ will copy into ****** File DRB0:[BELL.WEB]MF.WEB;1 20533 last gives the ``face byte.'' Extensions of \TeX\ for oriental languages 20534 should be able to identify oriental fonts by means of this additional 20535 header information. 20536 @^oriental characters@>@^Chinese characters@>@^Japanese characters@> 20538 \yskip\hang|header[0]| is a 32-bit check sum that \MF\ will copy into ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 21284 print_nl("Font metrics written on "); print(metric_file_name); print_char("."); 21285 @.Font metrics written...@> ****** File DRB0:[BELL.WEB]MF.WEB;1 21285 print_nl("Font metrics written on "); print(metric_file_name); 21286 @.Font metrics written...@> ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 22487 This program doesn't bother to close the input files that may still be open. 22489 @= ****** File DRB0:[BELL.WEB]MF.WEB;1 22488 @= ************ ************ File DRB0:[BELL.WEB]MF.WEB;2 22527 internal[fontmaking]:=0; {avoid loop in case of fatal error} 22528 @; ****** File DRB0:[BELL.WEB]MF.WEB;1 22526 @; ************ Number of difference sections found: 27 Number of difference records found: 54 DIFFERENCES /IGNORE=(SPACING,TRAILING_SPACES,BLANK_LINES)/WIDTH=132/MERGED=1/OUTPUT=DRB0:[BELL.WEB]MF.DIF;1- DRB0:[BELL.WEB]MF.WEB;2- DRB0:[BELL.WEB]MF.WEB;1