************
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   @<Error handling...@>=
******
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   @<Error handling...@>=
************
************
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   @<Glob...@>=
 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    @<Allocate entire node |p| and |goto found|@>;
******
File DRB0:[BELL.WEB]MF.WEB;1
 3363   if r=p then if ((rlink(p)<>rover) or (llink(p)<>rover)) then
 3364    @<Allocate entire node |p| and |goto found|@>;
************
************
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   @<Other local variables for |solve_choices|@>@;
******
File DRB0:[BELL.WEB]MF.WEB;1
 6159   @!sine,@!cosine:fraction; {trig functions of various angles}
 6160   @<Other local variables for |solve_choices|@>@;
************
************
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<=x0<max(x1,x1+x2)|,
 8301   $\vert|x1|\vert<2^{30}$, $\vert|x2|\vert<2^{30}$;
************
************
File DRB0:[BELL.WEB]MF.WEB;2
10380   while max_coef<fraction_half do
10381    begin double(max_coef);
******
File DRB0:[BELL.WEB]MF.WEB;1
10375   while max_coef<fraction_one do
10376    begin double(max_coef);
************
************
File DRB0:[BELL.WEB]MF.WEB;2
10404   var @!ww:pointer; {for list manipulation}
10405   @!du,@!dv:scaled; {for slope calculation}
******
File DRB0:[BELL.WEB]MF.WEB;1
10399   var @!q,@!ww:pointer; {for list manipulation}
10400   @!du,@!dv:scaled; {for slope calculation}
************
************
File DRB0:[BELL.WEB]MF.WEB;2
10411    begin right_type(p):=k;
10412    if rising then
******
File DRB0:[BELL.WEB]MF.WEB;1
10406    begin q:=link(p); right_type(p):=k;
10407    if rising then
************
************
File DRB0:[BELL.WEB]MF.WEB;2
11228   alpha:=abs(u); beta:=abs(v);
11229   if alpha<beta then
11230    begin alpha:=abs(v); beta:=abs(u);
11231    end; {now $\alpha=\max(\vert u\vert,\vert v\vert)$,
11232    $\beta=\min(\vert u\vert,\vert v\vert)$}
11233   if internal[fillin]<>0 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 d<alpha then d:=alpha
******
File DRB0:[BELL.WEB]MF.WEB;1
11223   d:=take_fraction(d,delta);
11224   alpha:=abs(u); beta:=abs(v);
11225   if alpha<beta then
11226    begin delta:=alpha; alpha:=beta; beta:=delta;
11227    end; {now $\alpha=\max(\vert u\vert,\vert v\vert)$,
11228    $\beta=\min(\vert u\vert,\vert v\vert)$}
11229   if internal[fillin]<>0 then d:=d-take_fraction(internal[fillin],beta+beta);
11230   d:=(d+4) div 8; alpha:=alpha div half_unit;
11231   if d<alpha then d:=alpha
************
************
File DRB0:[BELL.WEB]MF.WEB;2
12126   weight in |cur_edges| will be shown as |black| in the window; all other
12127   pixels will be shown as |white|.
******
File DRB0:[BELL.WEB]MF.WEB;1
12121   weight in |cur_edges|will be shown as |black| in the window; all other
12122   pixels will be shown as |white|.
************
************
File DRB0:[BELL.WEB]MF.WEB;2
13545   begin p:=cur_tok;
******
File DRB0:[BELL.WEB]MF.WEB;1
13540   @!s:0..param_size; {value of |param_start| on the current level}
13541   begin p:=cur_tok;
************
************
File DRB0:[BELL.WEB]MF.WEB;2
16989   var @!p:pointer; {for list manipulation}
16990   @!c,@!d:halfword; {operation codes or modifiers}
******
File DRB0:[BELL.WEB]MF.WEB;1
16985   var @!p,@!q,@!r:pointer; {for list manipulation}
16986   @!c,@!d:halfword; {operation codes or modifiers}
************
************
File DRB0:[BELL.WEB]MF.WEB;2
19051   @!q:pointer; {successor of |p|}
19052   begin p:=cur_exp;@/
19053   if left_type(p)=endpoint then n:=-unity@+else n:=0;
******
File DRB0:[BELL.WEB]MF.WEB;1
19047   @!vv:scaled; {initial value of |v|}
19048   @!q:pointer; {successor of |p|}
19049   begin vv:=v; p:=cur_exp;@/
19050   if left_type(p)=endpoint then n:=-unity@+else n:=0;
************
************
File DRB0:[BELL.WEB]MF.WEB;2
20107   @!w:integer; {tentative weight}
******
File DRB0:[BELL.WEB]MF.WEB;1
20104   @!t:small_number; {variant of |with_option|}
20105   @!w:integer; {tentative weight}
************
************
File DRB0:[BELL.WEB]MF.WEB;2
20449    ("Pretend that you're Miss Marple: Examine all clues,")@/
20450   @^Marple, Jane@>
******
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   @<Last-minute...@>=
******
File DRB0:[BELL.WEB]MF.WEB;1
22488   @<Last-minute...@>=
************
************
File DRB0:[BELL.WEB]MF.WEB;2
22527    internal[fontmaking]:=0; {avoid loop in case of fatal error}
22528    @<Finish the \.{TFM} file@>;
******
File DRB0:[BELL.WEB]MF.WEB;1
22526    @<Finish the \.{TFM} file@>;
************

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