file: GFType.changes
Last changed by Pavel on October 18, 1985 11:10:12 am PDT
002568: Change the banner line.
@x
@d banner=='This is GFtype, Version 2.2' {printed when the program starts}
@y
@d banner=='This is GFType 2.2 for Cedar 6.0' {printed when the program starts}
@z
003438: Change write←ln to writeln, read←ln to readln, and max←int to maxint.
@x
@d print←ln(#)==write←ln(#)
@d print←nl==write←ln
@y
@d write←ln==writeln
@d read←ln==readln
@d print←ln(#)==write←ln(#)
@d print←nl==write←ln
@d max←int==maxint
@z
003644: Allow for external procedure and function declarations for things implemented directly in Cedar, rather than in Pascal.
@x
var @<Globals in the outer block@>@/
procedure initialize; {this procedure gets things started properly}
@y
var @<Globals in the outer block@>@/
@<External procedure declarations for things implemented directly in Cedar@>@/
procedure initialize; {this procedure gets things started properly}
@z
004010: Change max←row and max𡤌ol into numeric macros because the Cedar compiler can't handle a PascalInteger (INT) as an array bound.
@x
@ The following parameters can be changed at compile time to extend or
reduce \.{GFtype}'s capacity.

The total number of bits in the main |image𡤊rray| will be
$$\hbox{$|max←row|+1\;\times\;|max𡤌ol|+1$}.$$
(\MF's full pixel range is rarely implemented, because it would require
8~megabytes of memory.)

@<Constants...@>=
@!terminal←line←length=150; {maximum number of characters input in a single
line of input from the terminal}
@!line←length=79; {\\{xxx} strings will not produce lines longer than this}
@!max←row=79; {vertical extent of pixel image array}
@!max𡤌ol=79; {horizontal extent of pixel image array}
@y
@ The following parameters can be changed at compile time to extend or
reduce \.{GFtype}'s capacity.

The total number of bits in the main |image𡤊rray| will be
$$\hbox{$|max←row|+1\;\times\;|max𡤌ol|+1$}.$$
(\MF's full pixel range is rarely implemented, because it would require
8~megabytes of memory.)

@d max←row==79 {vertical extent of pixel image array}
@d max𡤌ol==79 {horizontal extent of pixel image array}

@<Constants...@>=
@!terminal←line←length=150; {maximum number of characters input in a single
line of input from the terminal}
@!line←length=79; {\\{xxx} strings will not produce lines longer than this}
@z
007429: Change last←text𡤌har to 255.
@x
@d last←text𡤌har=127 {ordinal number of the largest element of |text𡤌har|}
@y
@d last←text𡤌har=255 {ordinal number of the largest element of |text𡤌har|}
@z
027192: Hook up open call to Cedar.
@x
begin reset(gf𡤏ile);
@y
begin byte𡤏ile←reset(gf𡤏ile, 'gf ');
@z
031163: Do a reset on the TTY for input.
@x
begin update←terminal; reset(term←in);
@y
begin update←terminal; tty←reset(term←in);
@z
031762: And a rewrite of the TTY for input.
@x
begin rewrite(term←out); {prepare the terminal for output}
@y
begin tty←rewrite(term←out); {prepare the terminal for output}
@z
048331: Set up output file.
@x
@p begin initialize; {get all variables initialized}
@y
@p begin file←rewrite(output, 'typ '); initialize; {get all variables initialized}
@z
048641: Close files.
@x
final𡤎nd:end.
@y
final𡤎nd:
file𡤌lose(output);
byte𡤏ile𡤌lose(gf𡤏ile);
end.
@z
052082: Define the externals.
@x
@* System-dependent changes.
This section should be replaced, if necessary, by changes to the program
that are necessary to make \.{GFtype} work at a particular installation.
It is usually best to design your change file so that all changes to
previous sections preserve the section numbering; then everybody's version
will be consistent with the printed program. More extensive changes,
which introduce new sections, can be inserted here; then only the index
itself will get a new section number.
@^system dependencies@>
@y
@* Externals for things in Cedar.
Here they are:

@<External procedure declarations for things implemented directly in Cedar@>=
procedure tty←reset(var f: text); external; {set up for input from terminal}
procedure tty←rewrite(var f: text); external; {set up for output to terminal}
procedure byte𡤏ile←reset(var f: byte𡤏ile; ext: alfa); external;
{set up for input from byte file}
procedure file←rewrite(var f: text; ext: alfa); external; {set up for output to file}
procedure file𡤌lose(var f: text); external; {close a text file}
procedure byte𡤏ile𡤌lose(var f: byte𡤏ile); external; {close a byte file}

@ @<Glob...@>=
output: text𡤏ile;
@z