From: CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 31-AUG-1990 02:27:49.91 To: MRGATE::"ARISIA::EVERHART" CC: Subj: Latest versions of TeX and MF available for VMS. Received: by crdgw1.ge.com (5.57/GE 1.70) id AA12006; Fri, 31 Aug 90 02:00:29 EDT Received: From UCBVAX.BERKELEY.EDU by CRVAX.SRI.COM with TCP; Thu, 30 AUG 90 18:49:42 PDT Received: by ucbvax.Berkeley.EDU (5.63/1.42) id AA29481; Thu, 30 Aug 90 18:31:51 -0700 Received: from USENET by ucbvax.Berkeley.EDU with netnews for info-vax@kl.sri.com (info-vax@kl.sri.com) (contact usenet@ucbvax.Berkeley.EDU if you have questions) Date: 31 Aug 90 01:18:03 GMT From: sdd.hp.com!elroy.jpl.nasa.gov!jarthur!sif.claremont.edu@ucsd.edu (Don Hosek) Organization: Quixote Subject: Latest versions of TeX and MF available for VMS. Message-Id: <8239@jarthur.Claremont.EDU> Sender: info-vax-request@kl.sri.com To: info-vax@kl.sri.com 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