DCLPATCH 02-002 Copyright © 1993 by MadGoat Software. All rights reserved. Written by Hunter Goatley 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