Article 130316 of comp.os.vms:
Newsgroups: comp.os.vms,vmsnet.tpu
Path: nntpd.lkg.dec.com!crl.dec.com!crl.dec.com!caen!hookup!solaris.cc.vt.edu!news.mathworks.com!gatech!howland.reston.ans.net!ix.netcom.com!netcom.com!deleyd
From: deleyd@netcom.com (deleyd@netcom.com)
Subject: EDX & other free programs now via FTP
Message-ID: <deleydDFKDw0.A5v@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
Date: Wed, 27 Sep 1995 12:40:48 GMT
Lines: 398
Sender: deleyd@netcom21.netcom.com
Xref: nntpd.lkg.dec.com comp.os.vms:130316 vmsnet.tpu:1607

The following free programs including the EDX editor are now available
via anonymous FTP at my new site:

        ftp.netcom.com /pub/de/deleyd/

-David Deley
deleyd@netcom.com

ftp.netcom.com /pub/de/deleyd/vms/edx.zip        (VAX/VMS & AXP/OpenVMS)

                             _The EDX text editor_

        EDX is a powerful EDT-style TPU based text editor which supports
        all the major functions of the EDT editor plus many other
        advanced features not available in the EDT editor or the newer
        EVE editor.  It is intended for users familiar with the EDT
        editor who would like to switch to a faster, more powerful
        editor without having to learn a new editor all over again.  EDX
        also supports a WPS-style keypad mode for users who prefer the
        WPS-style keypad.

        Following are some of the advanced features of the EDX editor
        which are not available in EDT or EVE:

        * Built in spelling checker with 90,000 word dictionary.  Spell
              check a buffer, range, word, or display the dictionary and
              browse.  Includes guessing algorithms and personal
              supplemental dictionary support.
        * Edit modules within VMS text libraries.  (Fixed).
        * Obtain a directory listing
              Include optional /SIZE and /DATE qualifiers.
              Read in a selected file from the directory listing,
              delete a selected file, or lock a selected file.
        * Wildcard search and replace mode, with optional string to
              exclude as a match, case sensitive or insensitive.
        * List all lines containing a specified string or wildcard
              pattern along with the corresponding line number.
              (The EDT 'TYPE ALL' command)
        * Search for and highlight matching parenthesis.
        * Lock files, preventing others from editing them while you do.
        * Sort a buffer, range, or columnar range.
        * Columnar cut and paste in insert or overstrike mode.
        * Translate a buffer from EBCDIC to ASCII, and vice versa.
        * Compare two buffers line by line.
        * Translate DCL symbols and logical names.
        * Create DCL symbols and logical names.

        Note that all of the above features are performed within the
        editor without spawning a subprocess.

        EDX is built on the VAX Text Processing Utility (VAXTPU).  Users
        familiar with VAXTPU can dynamically extend the editor's
        abilities by adding new functions which perform complex tasks.
        EDX makes this job easier by defining over 50 general purpose
        functions not available in VAXTPU itself.

-----------------------------------------------------------------------
random_numbers.doc

        A paper on computer random number generators, with analysis of
        several commonly found random number generators including
        MTH$RANDOM (used by VAX FORTRAN and BASIC) and the standard ANSI
        C rand() function.  Anyone using random number generators will
        find the research done here most interesting and enlightening.

        Also contains a number of paradoxes in probability to thoroughly
        amuse and confuse you.

random_numbers_test.for

        Code for performing the chi-square and KS tests on a sequence
        of 'random' numbers to see if they appear random or not.

-----------------------------------------------------------------------
pentium_bug.doc
        Explains the pentium floating point division bug.  Describes the
        Radix-4 SRT division algorithm.  Analyses which numbers the old
        Pentium will divide incorrectly.  (Unfished, send inquiry to
        deleyd@netcom.com)

-----------------------------------------------------------------------
minfunc.zip          (OS independent.  Code should be easily transportable
                                       to other systems.)

         Given a scalar function F, which is a function of several scalar
         variables {x(1),x(2),...,x(n)}, find the values of
         {x(1),x(2),...,x(n)} which MINIMIZES (or maximizes) the value of
         function F.  File OPTI2.FOR provides a choice of the Conjugate
         Direction Method of Fletcher and Reeves (CDM), or POWELL's method.

------------------------------------------------------------------------
prime_numbers        (OS independent.  Code should be easily transportable
                                       to other systems.)

         Routines for generating prime numbers and for finding the prime
         factors of a given number:

           factor.c     - Routine for finding the prime factors of a
                          given number.

           nextprime.c  - Function to round a number up to the next
                          prime.  See file NEXTPRIME.DOC for further
                          details.

           makeprimes.c - Routine which generates all primes up to a
                          specified number of primes.  This uses a
                          modified version of NEXTPRIME.FOR to generate
                          all primes up to a given number of primes and
                          print them out.  Change parameter NUMPRIMES to
                          the number of primes you wish to generate.

========================================================================
VMS SPECIFIC

autologin.zip                      (VAX/VMS. Concept has not been tested
                                                  on AXP/OpenVMS systems)

        An example program which causes a terminal to be logged in
        automatically as if a user had entered their username and
        password at the terminal.  The terminal "jumps to life" by
        itself.

------------------------------------------------------------------------
bookreader.zip                                   (VAX/VMS & AXP/OpenVMS)

        BOOKREADER_TO_ASCII reads a BOOKREADER file (such as one of
        the *.DECW$BOOK files on the VMS documentation CDs) and
        extracts the text, tables, and examples into an ASCII text
        file.  [Designed and coded by Claude Barbe - Schlumberger -
        SDR Ridgefield, CT, USA  12-Jan-1990  (barbe@sdr.slb.com)
        (Internet).]

------------------------------------------------------------------------
calc2.zip                                        (VAX/VMS & AXP/OpenVMS)

        CALC2 is an emulation of a Hewlett-Packard reverse polish
        calculator for video terminals.

------------------------------------------------------------------------
force_deallocate.zip                     (VAX/VMS only.  There are substantial
                                          differences in how this would need
                                          to be coded for AXP/OpenVMS)

        An example program which queues an AST to a target process
        causing the target process to deallocate a device it has
        allocated.  Requires CHMDKRNL

------------------------------------------------------------------------
miscdoc.zip
                       _Micellaneous Documentation_
      
        Miscellaneous possibly useful documentation:

        ANALYZE_CRASH.DOC
        An example analysis of a VAX/VMS system crash using the
        Symbolic Dump Analyzer (SDA).

        ANALYZE_PROCESS.DOC
        An example of how to analyze any process on a running system
        using the Symbolic Dump Analyzer.

        DCL_TO_SYS.DOC
        It is not always necessary to spawn a subprocess to execute
        a DCL command from within a program.  Often the same result
        can be achieved much more quickly by using the appropriate
        system service routines.  DCL_TO_SYS.DOC matches DCL
        commands with the equivalent VMS operating system provided
        routines.

        FORTRAN_ARRAY_ADDRESSING.DOC
        The correct way to traverse multi-dimensional arrays in FORTRAN.

        ITEMLIST.DOC
        Explanation of using itemlists in system service calls.

        MODEM_INTERFACE.DOC
        Useful information on interfacing modems to VAX computer ports.

        PAGE_FAULTS_AND_ARRAY_ADDRESSING.DOC
	Understanding what a page fault is can sometimes be crucial
        to writing efficient code.  An overview of virtual memory,
        page faults, and array addressing in code is presented.

        XMODEM_CRC.DOC
        Article describing how Cyclic Redundancy Codes work.

                         _And Miscellaneous Programs_

   chkexpr                                      (VAX/VMS & AXP/OpenVMS)
      CHKEXPR is a program which will warn a user if his account is
      about to expire.  If a user's account is about to expire, the
      program will print a warning message, otherwise the program prints
      nothing.  If included as a part of the system wide login
      procedure, this program will warn a user that his account is about
      to expire the same way VMS warns a user if his password is about
      to expire.

   clrscreen                                     (VAX/VMS & AXP/OpenVMS)
      CLRSCREEN.FOR is a simple example of using the VAX screen
      management services to obtain an escape sequence which when sent
      to the terminal will perform a certain desired function.

   big_batch_job.com                              (VAX/VMS & AXP/OpenVMS)
   control.com
   convert.com
      This is an example .COM file of how to get a batch job which may
      take more than a day to complete to run at night and suspend
      itself during the day.

   disktotal.com                             (VAX/VMS & AXP/OpenVMS)
      Handy when a disk gets full.  Makes a list of all the directories
      and the total number of files in each directory.  Scan the list
      with an editor and find the offensive directories which have
      humongous blocks.  Helps you quickly find where all the blocks
      have gone.  Run it and give it the name of the disk.

   finddir.com                                   (VAX/VMS & AXP/OpenVMS)
      Handy when you don't know which disk somebody's directory is on. 
      Give it the top level directory name and it searches all the disks
      and tells you which ones the directory exists on and what files
      are in that directory.

   fragment.for                                  (VAX/VMS & AXP/OpenVMS)
   defrag.for
      FRAGMENT and DEFRAG are programs which assist in transferring very
      large files over flaky telephone lines.  The idea is to create a
      backup save set of the files you want to transfer, run FRAGMENT to
      break the big backup save set file into many little files,
      transfer all the little files using kermit set to FILE TYPE FIXED
      with a wildcard filename, run DEFRAG to reconstruct the backup
      save set file from all the little files, and recover all the files
      you wanted to transfer from the backup save set.  This way if the
      phone line flakes out during one of the file transfers, you
      haven't lost everything you've achieved up to that point.

   setprocname.for                               (VAX/VMS & AXP/OpenVMS)
      SETPROCNAME is an executable image that will set your process to a
      specified name, and make the name unique by appending a 2 or 3
      etc. as needed.  You may also specify what character (or
      characters) you want between the name you specify and the number
      2,3, or whatever.

   smgvt220fix.doc                               (VAX/VMS & AXP/OpenVMS)
      This explains how to get around the "}z" glitches which sometimes
      show up on non-DIGITAL brand VT200 terminals.  True DIGITAL VT200
      terminals accept a few extra escape sequences which show up as
      "}z" glitches on other VT200 terminals.  The fix is to tell SMG
      that we're a VT100.  If we're a VT200 terminal we switch to a
      VT100 terminal, initialize SMG, and switch back to a VT200
      terminal.  This switch is sandwiched around the call to
      SMG$CREATE_VIRTUAL_KEYBOARD (for technical reasons.)  An example
      is illustrated in file smgvt220fix.c

------------------------------------------------------------------------
rmsdoc.zip
                          _RMS file organizations_

        Explanation of all the RMS internal file organizations
        and how files are stored on disks.

------------------------------------------------------------------------
srchque.zip                                      (VAX/VMS & AXP/OpenVMS)

        SRCHQUE is a program which searches a specified batch queue for
        a specified job name.  If it finds the job in the specified
        queue it returns with a status of success.  If it does not find
        the job in the specified queue it returns with a warning status.
        This program is handy if you wish to submit a job only if the
        job does not already exist in the queue.  Jobs retained in the
        queue on error are not counted.

------------------------------------------------------------------------
swing.zip                                        (VAX/VMS & AXP/OpenVMS)

        SWING is an interactive directory tree editor.  It displays the
        current directory structure on the screen and allows the user to
        SET DEFAULT graphically by traveling through the tree.  SWING
        can add, rename and move directory trees and it can delete
        directory trees (visually doing what the DELTREE type command
        procedures do).  SWING also creates hardcopy listings of a
        directory structure.

------------------------------------------------------------------------
tail.zip                                         (VAX/VMS & AXP/OpenVMS)

        TAIL dumps the last few lines of a file.
        It does NOT read the entire file so it is VERY fast.
        Example:

             Tail/Last=30 filename

        will display the last 30 lines of "filename".

        [Original author: Peter A. Portante.  Modified to include
        support for VFC, Fixed, and Stream record formats.  All record
        formats except 'Undefined' are now supported.]
               
------------------------------------------------------------------------
terminator.zip                                   (VAX/VMS & AXP/OpenVMS)

        TERMINATOR is "Yet Another Idle Terminal Killer" program.
        The only difference is this one is ours.  Read the AAAREADME.DOC
        file for more information.

------------------------------------------------------------------------
usage_monitor.zip                                (VAX/VMS & AXP/OpenVMS)

        Plots a histogram of CPU utilization and compute queue
        length throughout the day.  This gives a general idea of
        how heavily utilized the computer is and when peek
        usage times are.  Takes as input the record file
        generated by the VMS MONITOR utility.  A similar program
        plots a histogram of disk I/O queue length throughout
        the day.  This can help determine if disk I/O
        bottlenecks are occurring and when.

------------------------------------------------------------------------
zeroacc.zip                              (VAX/VMS only.  There are substantial
                                          differences in how this would need
                                          to be coded for AXP/OpenVMS)

        We like to give our users a substantial discount for using the
        computers during non prime time hours.  Unfortunately the VMS
        accounting facility does not provide a convenient way of doing
        this.  It only records the time a user logged in and what his
        total usage was.  It doesn't say what his usage was during a
        particular rate period.

        If a user logged in during one rate period, and then stayed
        logged in after the rates changed, we had no way of determining
        how much usage the user had acquired up to that point.  What we
        needed was a way to effectively logout a user when the rates
        changed and log him back in again under the new rates, and thus
        was born this program.

        ZEROACC writes an accounting record for each process on the
        system and resets the accounting data fields of each process
        back to zero.  From an accounting viewpoint it appears as if the
        user logged out and then logged back in again.  The user himself
        is left undisturbed unaware that anything has happened.  Any
        program he was running at the time continues to run.

========================================================================
The following programs are available upon special request.
Send request to deleyd@netcom.com

BANNER
      BANNER is a security banner and page marking program.  It creates
      leading and trailing flag pages as well as top and bottom page
      marks for security marking your line printer output.  If you are
      tired of hand stamping documents - this is the answer.  BANNER is
      a complete tool with a command language definition, help file and
      manual.  [VAX86C]

EXCEPTION_INTERCEPTOR
      Allows programs written in ADA to handle exceptions as they are
      intended to be handled under VMS using the VMS Condition Handling
      Facility.  Exceptions are part of the ADA language, but ADA does
      not have nearly the power of VMS's Condition Handling Facility. 
      [VAX90B1]

GREP                                             (VAX/VMS & AXP/OpenVMS)
      This is a VMS version of the UNIX GREP tool.  It has been written
      to behave just like the SEARCH command - output, qualifiers and
      parameters are similar - but is able to search for patterns.  It
      is a complete tool and has a command language definition and
      online help.  It is a nice addition to VMS.

HYPHENATION
      This is subroutine Hyphenate, an implementation of the TeX82
      hyphenation algorithm.  Sources and objects are given.  [VAX88B2]

MODOBJ
      MODOBJ is a program which modifies object files (modules). 
      Reasons for wanting to modify object files, the exact
      modifications performed, and usage instructions can all be found
      in the source file MODOBJ.C.  [VAX87C]

TIMER
      TIMER.MAR accurately times machine instructions on a VAX 11/780 or
      equivalent architecture.  Instructions can be found in the source. 
      [VAX87C]

WEAVE
      Weave is a program for reorganizing and duplicating text within
      files.  It was inspired by WEB, a Pascal-based language designed
      by Knuth.  [VAX88B2]

David Deley
General Research Corporation
Applied Sciences Division
P.O. Box 6770
5383 Hollister Avenue
Santa Barbara, CA 93160-6770

(805)964-7724
(805)967-7094  [fax]
Internet:  deleyd@netcom.com