DECUS Essential Tools Collection, 1996 for OpenVMS Alpha and OpenVMS VAX (VS0174)


       Copyright © 1993 by MadGoat Software.  All rights reserved.
          Written by Hunter Goatley <goathunter@WKUVX1.BITNET>
                              June 17, 1993

BUILDING DCLPATCH

To build DCLPATCH.EXE (either as-is or customized), simply use the
following DCL commands:

   $ MACRO DCLPATCH
   $ LINK DCLPATCH

Under OpenVMS AXP, you'd have to use the MACRO/MIGRATE command:

   $ MACRO/MIGRATE/OBJ=DCLPATCH SYS$LIBRARY:ARCH_DEFS.MAR+SYS$DISK:[]DCLPATCH
   $ LINK DCLPATCH

Here is a sample run under OpenVMS AXP V1.5:

  $ macro/migrate/obj=dclpatch sys$library:arch_defs.mar+sys$disk:[]dclpatch
  $ link/notrace dclpatch
  $ run dclpatch
  Extending recall capability of SYS$SYSTEM:DCL.EXE....
  Special ALPHA Version!!!
  Replacing "CMPB WRK_B_RECALLCNT(R10),#WRK_C_RECALLMAX+1" (3 occurrences)....
  Patching at image address 0001E0D0
  Patching at image address 0001DFB8
  Patching at image address 0001E028
  Replacing "CMPL R1,#WRK_C_RECALLMAX" (1 occurrence)....
  Patching at image address 0001F3B0
  Replacing "MOVL #WRK_C_RECALLMAX,R6" (1 occurrence)....
  Patching at image address 0001F450
  Replacing "MOVL #WRK_C_RECALLMAX,R9" (1 occurrence)....
  Patching at image address 0001F49C
  Replacing RECALL output code comparison (1 occurrence)...
  Patching at image address 0001F680
  Replacing RECALL output code increment (1 occurrence)...
  Patching at image address 0001F688
  Replacing RECALL output code insertion (1 occurrence)...
  Patching at image address 0001F75C
  Creating file DCL_RECALL.EXE
  Extended DCL RECALL image DCL_RECALL.EXE created
  $

Once the patch has been made, you can test it by copying DCL_RECALL.EXE to
SYS$SYSTEM: and installing it. Once it has been installed, an account can
be set up to use it by running AUTHORIZE and specifying the DCL_RECALL as
the CLI the user is to use:

   $ INSTALL ADD DCL_RECALL/OPEN/HEADER/SHARED
   $ SET DEFAULT SYS$SYSTEM:
   $ RUN AUTHORIZE
   UAF>  MODIFY HUNTER/CLI=DCL_RECALL
   User record(s) updated
   UAF>  EXIT

Now when someone logs in under username HUNTER, he/she will be using the
patched version of DCL.  You can test the patches by entering more than
twenty commands and then using RECALL/ALL and the arrow keys.  To access
the command numbered 56, simply give the following command:

   $ RECALL 56

Once you are confident that the patch works, you can rename it as DCL.EXE
and reinstall DCL so that all users will get it by default (I suggest
keeping a copy of the original around, "just in case...."):

   $ INSTALL REMOVE DCL_RECALL
   $ COPY SYS$SYSTEM:DCL.EXE SYS$SYSTEM:DCL_ORIGINAL.EXE
   $ COPY SYS$SYSTEM:DCL_RECALL.EXE SYS$SYSTEM:DCL.EXE
   $ INSTALL REPLACE DCL

As usual, you use this program at your own risk.  If you don't feel
comfortable using the patches, then don't apply them.  I've been using the
patches since VMS version 4.2 without ever having a problem.

Hunter
------
Hunter Goatley, VMS Systems Programmer, Western Kentucky University
goathunter@WKUVX1.BITNET (or goathunter%wkuvx1.bitnet@ULKYVM.LOUISVILLE.EDU)
Voice: 502-745-5251   FAX: 502-745-6569

Click on FTP to download from the FTP archives.
[FTP]