dhosek@sif.claremont.edu (Don Hosek) (08/31/90)
The latest versions of TeX and MF for VMS are now available from
ymir.claremont.edu.
A few bug fixes and minor enhancements have been made to the TeX
change file bringing it to 3.0/3.2 (the latter number is the
change file version). The upgrade of this change file is not
necessary if you have 3.0/3.1a, but is worthwhile. Files are in
[anonymous.tex.sources.tex3_0].
MF 2.0/2.1a is now officially available for VMS. There is an
increase in the speed of the system through some assembly
routines contributed by John Lavagnino and all on-line displays
are accessed through VMS sharable libraries. At present only one
library, the GraphOn-140 1.0a library is available, although
others are under development (contact Don Hosek,
dhosek@ymir.claremont.edu if you intend to create a library to
find out if anyone else is working on one and for advice in
creating the library). Files are in [anonymous.tex.sources.mf2_0].
The files 00readme.txt in each directory indicate what the files
are. Below are vms_tex_notes.txt and vms_mf_notes.txt from those
directories. Help files are under development and will be
announced shortly.
Those without FTP access can obtain the files from
mailserv@ymir.claremont.edu. Directory specifications are
identical, but without the :anonymous" at the beginning. The
command to retrieve a file is "send", e.g.,
send [sources.tex3_0]00readme.txt
Binary files are not currently available via mailserv. Nothing
can be done about this deficiency at this time. These versions of
TeX and MF will be available on tape from DECUS and Stanford by
mid-September (I think).
------
Some notes on the version of TeX for VMS located in this
directory:
- The version number on the change file is currently 3.2
- Note that a larger version of TANGLE is necessary to Tangle
this code. I used max_names=5000 and max_toks=52000 to get it
compiled.
- The Pascal code generated by TANGLEing TEX.WEB will not
compile properly with Pascal versions prior to 4.0.
- TeX is now called through the CLI. You should install the file
TEX.CLD in the system DCL tables. The following options are
provided:
/BATCH Run TeX in batch mode sending no output to the
terminal and ending with a fatal error if input
is necessary. The default is /NOBATCH.
/CONTINUE Indicate that TeX is to continue execution after
the editor is invoked with an 'E' response at an
error prompt. The default is /NOCONTINUE
/DIAGNOSTICS Indicate that an LSE Diagnostics file be
written. A file name can be specified using
/DIAGNOSTICS=fn. The default is /NODIAGNOSTICS.
/DVI_FILE= Indicate the name of the DVI file to write.
The default is to use the name of the TeX job
for the DVI file name. This qualifier is
negatable.
/EDITOR= Indicate the name of the editor to be used
at the 'E' response. The options are:
+ Callable_EDT
+ Callable_LSE
+ Callable_TECO
+ Callable_TPU
+ The name of a command to be run in a
subprocess which will take three arguments:
'p1 is the name of the file to edit, 'p2 is
the line number with the error and 'p3 is
the column number of the error.
If the value given with /EDITOR ends in a
colon, TeX will assume that it's a logical
name and attempt to translate it. The default
is /EDITOR=TEX_EDIT:. This qualifier is
negatable.
/FORMAT= Indicate the name of a format to pre-load when
running. The default varies depending on the
specific verb used. This qualifier is
negatable.
/INIT Run IniTeX rather than TeX. The default is
/NOINIT. INITEX should be set equivalent to
TEX/INIT/NOFORMAT.
/JOBNAME_SYMBOL= Indicate the name of a DCL symbol to which
the TeX jobname is to be written. The default
is /JOBNAME_SYMBOL=TEX_JOBNAME. This qualifier
is negatable. Negation causes the symbol to not
be written.
/LOG_FILE= Indicate the name of the LOG file to write.
The default is to use the name of the TeX job
for the LOG file name. This qualifier is
negatable.
/TEXFONTS= These qualifiers are not intended to be used
/TEXFORMATS= by the end-user; they specify the names of the
/TEXINPUTS= logicals to be used for the locations of TFMs,
format and pool files, and input files
respectively. They are provided to allow sites
to customize these values without recompiling
TeX.
- INITEX is part of the main TeX module. Thus, there is only one
change file and one executable. The price that we pay is
trivial: three if statements operating on a boolean variable
and an executable 25K larger. The three if statements are all
out of the inner loop so other than a slightly increased
startup time, TeX will not be slower.
- This is 64bit TeX. If memory is really a problem, you can
reduce the main memory array and recompile. Personally, I
think that it's inconvenient to try and run TeX at two memory
sizes so I don't recommend it.
- In previous versions of VMS TeX with an editor interface, TeX
continued after leaving the editor. This behavior is incorrect
and has been changed.
-----
Some notes on the version of MF for VMS located in this
directory:
- The version number on the change file is currently 2.1a
- Note that a larger version of TANGLE is necessary to Tangle
this code. I used max_names=5000 and max_toks=54000 to get it
compiled.
- MF is now called through the CLI. You should install the file
MF.CLD in the system DCL tables. The following options are
provided:
/BASE= Indicates the base file to be "preloaded" by
MF. The default varies depending on the
version of MF being used. The default CLD uses
/BASE=plain for MF and /NOBASE for INIMF.
/BATCH Run MF in batch mode sending no output to the
terminal and ending with a fatal error if input
is necessary. The default is /NOBATCH.
/CONTINUE Indicates that MF should continue after
editing a file. The default is /NOCONTINUE
/DIAGNOSTICS= Indicate that an LSE Diagnostics file be
written. A file name can be specified using
/DIAGNOSTICS=fn. The default is /NODIAGNOSTICS.
/DISPLAY= Indicates the name of the display for on-line
graphics. The default is /DISPLAY=MFTERM:
/EDITOR= Indicate the name of the editor to be used
at the 'E' response. The options are:
+ Callable_EDT
+ Callable_LSE
+ Callable_TECO
+ Callable_TPU
+ The name of a command to be run in a
subprocess which will take three arguments:
'p1 is the name of the file to edit, 'p2 is
the line number with the error and 'p3 is
the column number of the error.
If the value given with /EDITOR ends in a
colon, TeX will assume that it's a logical
name and attempt to translate it. The default
is /EDITOR=TEX_EDIT:. This qualifier is
negatable.
/GF_FILE The GF file to which output should be written.
The default is to write to a file with file
name equivalent to the MF jobname and
extension given by the resolution *
magnification of the MF run. This qualifier is
not negatable.
/GLIB_INDEX= Indicates the name of the index file for
displays.
/INIT Run IniMF rather than MF. The default is
/NOINIT. The INIMF verb automatically selects
/NOBASE
/JOBNAME_SYMBOL= Indicates the name of a symbol in which MF
should store the name of the GF file it
writes. The default is /JOBNAME_SYMBOL=MF_JOBNAME
This qualifier is negatable. If either it or
/JOBSIZE_SYMBOL is negated, no symbols are written.
/JOBSIZE_SYMBOL= Indicates the name of a symbol in which MF
should store the numeric portion of the GF
file which it writes. The default is
/JOBSIZE_SYMBOL=MF_JOBSIZE. If either it or
/JOBNAME_SYMBOL is negated, no symbols are written.
/LOG_FILE= Indicate the name of the LOG file to write.
The default is to use the name of the TeX job
for the LOG file name. This qualifier is
negatable.
/MFBASES= These qualifiers are not intended to be used
/MFINPUTS= by the end-user; they specify the names of the
logicals to be used for the locations of base
input files respectively. They are provided to
allow sites to customize these values without
recompiling MF.
- INIMF is part of the main MF module. Thus, there is only one
change file and one executable.
- In previous versions of VMS MF with an editor interface, MF
continued after leaving the editor. This feature is now
controlled by the switch /CONTINUE.
- On-line displays are now stored in separate sharable
libraries. Each library intended to be used with MF must
contain the following routines. (Note: C protocols are
untested and may be wrong for libdrrow.)
+ LIBINITSC: Handles whatever initializations are necessary
to use the display and prints a banner line on the
display. This routine is always called, even if no
graphics are used, so it may be wise to hold off
initializations of the display itself until LIBSTARTS is
called and only initialize static variables etc. This
routine is passed the addresses of two integer variables
whose values should be set to the horizontal and vertical
sizes of the display.
PROTOCOL:
Pascal
procedure LIBINITSC(var x_size, y_size : integer);
C
void LIBINITSC(x_size, y_size)
int *x_size, *y_size;
+ LIBSTARTS: Called before the first write to the screen.
should handle any screen initializations and leave the
graphics screen blank and ready-to-write. Upon
completion, the terminal should be in text mode, if
possible.
PROTOCOL:
Pascal
procedure LIBSTARTS;
C
void LIBSTARTS()
+ LIBBLRECT: Erases a rectangle whose boundaries are given
as arguments to the procedure in integer quantities. Upon
completion, the terminal should be in text mode, if
possible.
PROTOCOL:
Pascal
procedure LIBBLRECT(left_col,right_col,top_row,bot_row:integer);
C
void LIBBLRECT(left_col, right_col, top_row, bot_row)
int left_col, right_col, top_row, bot_row;
+ LIBDRWROW: Draws a row of alternatingly black and white
pixels which alternate between black and white between
columns a[i] on row r for n columns. With initial color b.
See the MF source or a sample library for details. Should
leave the terminal in TEXT mode if at all possible.
PROTOCOL:
Pascal
type trans_spec= array[0..65536] of integer;
procedure LIBDRWROW(r: integer; b:0..1; a:trans_spec;
n: integer);
C
void LIBDRROW(r, b, a, n)
int r, b, n;
int a[65536];
+ LIBUPDTSC: Makes sure that everything on the display is
up-to-date. This is particularly valuable for those
displays which cannot easily erase portions of the
screen. Should leave the terminal in TEXT mode if at all
possible.
PROTOCOL:
Pascal
procedure LIBUPDTSC;
C
void LIBUPDTSC()
+ LIBCLOSSC: Restores the terminal back to a normal state.
It is not necessary to clear the graphics screen unless
not doing so would interfere with use of the terminal's
text mode.
PROTOCOL:
Pascal
procedure LIBCLOSSC;
C
void LIBCLOSSC()
+ LIBLEVEL: A function which returns 0. This is meant for
future expansion of the graphics library functionality.
PROTOCOL:
Pascal
function LIBLEVEL: integer;
C
int LIBLEVEL()
---
Don Hosek TeX, LaTeX, and Metafont support, consulting
dhosek@ymir.claremont.edu installation and production work.
dhosek@ymir.bitnet Free Estimates.
uunet!jarthur!ymir Phone: 714-625-0147
finger dhosek@ymir.claremont.edu for more info