Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to tell SET COMMAND where the .EXE file is?

201 views
Skip to first unread message

alanfe...@gmail.com

unread,
Sep 24, 2022, 10:43:05 PM9/24/22
to
I'm trying to set up DIRSORT from the freeware site. Having trouble. I am not familiar with it and the manual and web fail me.

$ DIR .CLD

Directory SCRFELD:[DECUSERVE_USER.FELDMAN.NEW.LWW-DIRSORT.DIRSORT]

DIRSORT.CLD;1 8/18 2-MAY-2003 18:42:49.42 (RWED,RWED,RE,)

Total of 1 file, 8/18 blocks.
$ SET COMMAND DIRSORT
$ DIRSORT
%DCL-W-ACTIMAGE, error activating image DIRSORT
-CLI-E-IMAGEFNF, image file not found DSA0:[SYS0.SYSCOMMON.][SYSEXE]DIRSORT.EXE;
$

Well, no big surprise there, as I haven't told it where DIRSORT.EXE is. How do you tell it? What's the best way to do this? I'm working on EISNER, BTW.

Robert A. Brooks

unread,
Sep 24, 2022, 11:20:06 PM9/24/22
to
This is from EISNER::

$ type sys$update:phone.cld
!
! Version: 'V04-000'
!

define verb PHONE
image phone
parameter p1,label=token1,prompt="Command Token 1:"
parameter p2,label=token2,prompt="Command Token 2:"
parameter p3,label=token3,prompt="Command Token 3:"
parameter p4,label=token4,prompt="Command Token 4:"
qualifier SWITCH_HOOK,default,nonnegatable,value(default="%")
qualifier VIEWPORT_SIZE,default,nonnegatable,value(default="10")
qualifier SCROLL,default

I suspect that the DIRSORT utility .CLD is similarly-written.

In the above example, the line

image phone

describes the location of the image, with the default of sys$system:.exe

In your case, you can either define the logical DIRSORT to point to the
location of the image, or change the .CLD to point to the image.

--

--- Rob

Robert A. Brooks

unread,
Sep 24, 2022, 11:21:20 PM9/24/22
to
On 9/24/2022 11:20 PM, Robert A. Brooks wrote:

> In your case, you can either define the logical DIRSORT to point to the
> location of the image, or change the .CLD to point to the image.

Or move the image to SYS$SYSTEM:

--

--- Rob

Arne Vajhøj

unread,
Sep 25, 2022, 7:23:47 PM9/25/22
to
I consider it good practice only to have
DEC/CPQ/HP(E)/VSI EXE in SYS$SYSTEM.

Arne


Steven Schweda

unread,
Sep 26, 2022, 12:45:25 AM9/26/22
to
> I'm trying to set up DIRSORT from the freeware site. [...]

Thanks for the helpful link. I fetched a kit from:

https://www.digiater.nl/openvms/freeware/v80/lww-dirsort/

Perhaps it's similar to whatever you found wherever.


> I suspect that the DIRSORT utility .CLD is similarly-written.

Not really. No "IMAGE" statement (unless you count the comment). As
its .CLD file is used, none is needed.


> $ SET COMMAND DIRSORT

You're working too hard. There's no need for the user to deal with
"SET COMMAND"; the build procedure does that. All the user needs to do
is define a DCL symbol which points to the executable. (Or use
DCL$PATH? (Gack.))

The documentation is a bit sparse, but I tried the following:

ITS $ @ build.com

CC /standard=vaxc/optimize/nodebug DIRSORT.C
CC /standard=vaxc/optimize/nodebug SUPPORT.C
SET COMMAND/OBJECT=DIRSORT_CLD.OBJ DIRSORT.CLD
link /exe=DIRSORT/sysexe /nodebug/nomap/notraceback dirsort/opt, sys$load
able_images:dcldef.stb
purge /exclude=(*.c,*.h,*.cld)

End Time: 23:20:23.70
Begin Time: 23:20:20.31
Elapsed time: 0:03.39

ITS $

ITS $ dirsort == "$ ''f$environment( "default")'DIRSORT.EXE"
ITS $ dirsort

Directory ITS$DKA0:[UTILITY.SOURCE.DIRSORT.V1R2S4.DIRSORT]

2022-Sep-25 23:07:30.44 aaareadme.txt;1
2022-Sep-25 23:07:30.48 bin.DIR;1
2022-Sep-25 23:07:30.54 build.com;1
[...]
2022-Sep-25 23:20:23.38 support.OBJ;1
2022-Sep-25 23:20:23.44 DIRSORT_CLD.OBJ;1
2022-Sep-25 23:20:23.67 DIRSORT.EXE;1

Total of 18 files

ITS $


Note that the Info-ZIP Zip and UnZip "_CLI" programs work similarly.

Many improvements are possible in that kit, from eliminating
"/standard=vaxc" to using separate product directories for different
hardware architectures (including IA64 and X86_64).


> I consider it good practice [...]

I agree. I have a UTILITY directory for such add-ons.

alanfe...@gmail.com

unread,
Sep 26, 2022, 9:36:15 PM9/26/22
to
Thanks!

I did your procedure, got no error messages, but I still get an access violation (working on EISNER):

$ DIRSORT :== $SCRFELD:[DIRS1A.DIRSORT.BIN.ALPHA]DIRSORT.EXE
$ DIRSORT
%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=FFFFFFFFFFFFFFFF, PC=00000000000323E0, PS=0000001B

Improperly handled condition, image exit forced.
Signal arguments: Number = 0000000000000005
Name = 000000000000000C
0000000000000000
FFFFFFFFFFFFFFFF
00000000000323E0
000000000000001B

Register dump:
R0 = 00000000000001BD R1 = FFFFFFFFFFFFFFFF R2 = 00000000000101E0
R3 = 0000000000020098 R4 = 0000000000040230 R5 = 00000000000403A0
R6 = 00000000000402C0 R7 = 00000000000403C0 R8 = 0000000000040330
R9 = 000000007FF9DDF0 R10 = 0000000000040550 R11 = 000000007FFCDC18
R12 = 000000007FFCDA98 R13 = 000000007AF0D3D0 R14 = 0000000000000000
R15 = 000000007AF0C9E0 R16 = 000000007ADFF790 R17 = 000000007ADFF798
R18 = 0000000000000008 R19 = 000000000000017C R20 = 0000000000000000
R21 = 0000000000000FC1 R22 = 000000007ADFF820 R23 = 0000000000000001
R24 = 000000000000000C R25 = 0000000000000002 R26 = 0000000000030210
R27 = 0000000000010510 R28 = 0000000000000000 R29 = 000000007ADFF710
SP = 000000007ADFF710 PC = 00000000000323E0 PS = 100000000000001B
$

So what's wrong now?

Steven Schweda

unread,
Sep 26, 2022, 11:14:12 PM9/26/22
to
> I did your procedure, [...]

I see no evidence of that.

> $ DIRSORT :== $SCRFELD:[DIRS1A.DIRSORT.BIN.ALPHA]DIRSORT.EXE

Are you running the pre-built executable from eighteen years ago, or
the one which you built today?

> So what's wrong now?

I don't know. Just as I don't know what you found where. Are you
too lazy to write a proper problem description, or do you not know how,
or what?


> %SYSTEM-F-ACCVIO, access violation, [...]

If I got that, then I might start by removing the "/notraceback" from
"descrip.mms", perhaps adding a "/list", building the thing from source
(as shown in "[my] procedure"), and trying my freshly built executable
(not some antique).


It might be worth noting that you're working with an old,
ODS5-unaware program. For example:

ITS $ dire ITS$DKA0:[SMS.IZ.vlfn]

Directory ITS$DKA0:[SMS.IZ.vlfn]


very_long_file_name_very_long_file_name_very_long_file_name_very_long_file_name_
very_long_file_name_very_long_file_name_very_long_file_name_very_long_file_name_
very_long_file_name_very_long_file_name_very_long_file_name.txt;1

Total of 1 file.
ITS $ dirsort ITS$DKA0:[SMS.IZ.vlfn]

Directory ITS$DKA0:[SMS.IZ.VLFN]

%SYSTEM-W-BADFILENAME, bad file name syntax
ITS $

alanfe...@gmail.com

unread,
Sep 27, 2022, 12:21:10 AM9/27/22
to
On Monday, September 26, 2022 at 11:14:12 PM UTC-4, Steven Schweda wrote:
> > I did your procedure, [...]
>
> I see no evidence of that.
> > $ DIRSORT :== $SCRFELD:[DIRS1A.DIRSORT.BIN.ALPHA]DIRSORT.EXE
> Are you running the pre-built executable from eighteen years ago, or
> the one which you built today?
> > So what's wrong now?
> I don't know. Just as I don't know what you found where. Are you
> too lazy to write a proper problem description, or do you not know how,
> or what?

Alright. I should have been a little more complete. Last time I did that it was a problem with a printer, and I posted everything imaginable from the VAX (circa 1992), and no one had a clue. Turned out it was an unrelated problem. I don't want to go through the trouble of posting unrelated stuff. Yeah, still, I should have posted a little more. Sorry. No need to be so rude though!
>
>
> > %SYSTEM-F-ACCVIO, access violation, [...]
>
> If I got that, then I might start by removing the "/notraceback" from
> "descrip.mms", perhaps adding a "/list", building the thing from source
> (as shown in "[my] procedure"), and trying my freshly built executable
> (not some antique).
>
>
> It might be worth noting that you're working with an old,
> ODS5-unaware program. For example:
>
> ITS $ dire ITS$DKA0:[SMS.IZ.vlfn]
>
> Directory ITS$DKA0:[SMS.IZ.vlfn]
>
>
> very_long_file_name_very_long_file_name_very_long_file_name_very_long_file_name_
> very_long_file_name_very_long_file_name_very_long_file_name_very_long_file_name_
> very_long_file_name_very_long_file_name_very_long_file_name.txt;1
>
> Total of 1 file.
> ITS $ dirsort ITS$DKA0:[SMS.IZ.vlfn]
>
> Directory ITS$DKA0:[SMS.IZ.VLFN]
>
> %SYSTEM-W-BADFILENAME, bad file name syntax
> ITS $

Nope. Not an ODS-5 problem. I don't even have access to an ODS-5 disk except through the logical name GNV$GNU.

First of all, calm down, man. \relax. Take your shoes off. NO! You can leave 'em on. But you can sit a spell.

First time I tried various things with the kit from the VSI site. No luck. Even the build.com didn't work! Then I tried what you recommended and got the kit from the SCREEEEEEEEECH.

OK, I used the old executable. Sorry. I guess I assumed BUILD.COM would do that, since it did practically everything else. Silly me.

Hey, if you've got some serious woes (that's the polite version), please check them at the door before you come here. If I knew what I was doing, I wouldn't be asking for help in the first place! Or couldn't you figure that out? I am not, and never was, a "system programmer."

I'm just a lowly ex-physicist trying to do some fun things on OpenVMS. There are a lot of very smart people here :-| who try to help me (well, there was the Fahrenheit adventure!) and usually don't get so upset. (Well, there was Carl Lydick. A smart dude, but not very friendly!)

Anyway, the thing works! It even accepts ;*, which was critical to my needs! Doesn't seem to like a list of params, though. I can work around that.

$ dirsort to%.com;*,to-v*.com
%CLI-W-NOLIST, list of parameter values not allowed - check use of comma (,)
\TO%.COM;*,TO\
$

Or maybe something with SET COMMAND would fix that? I'll give that a shot.

One more thing: SET COMMAND DIRSORT is only three words to type. That's trying too hard?! (~_^)

alanfe...@gmail.com

unread,
Sep 27, 2022, 1:01:29 AM9/27/22
to
Uh, cancel my SET COMMAND fixing things. It just takes a single param. OK.

Steven Schweda

unread,
Oct 26, 2022, 1:01:04 AM10/26/22
to
If you're still looking for a good time with DIRSORT, then you might
look here: http://antinode.info/dec/sw/dirsort.html

Among other things:

its $ dirsort ITS$DKA0:[SMS.IZ.vlfn]

Directory ITS$DKA0:[SMS.IZ.vlfn] (ITS$DKA0:[SMS.IZ.vlfn])

2016-Nov-23 22:20:53.95 very_long_file_name_very_long_file_name_very_long_file_
name_very_long_file_name_very_long_file_name_very_long_file_name_very_long_file_
name_very_long_file_name_very_long_file_name_very_long_file_name_very_long_file_
name.txt;1

Total of 1 file.


The new installation instructions might be better, too.


> One more thing: SET COMMAND DIRSORT is only three words to type.
> That's trying too hard?! (~_^)

A nuclear-fusion bomb is just a bomb. Why all the excitement?

Defining a foreign-command DCL symbol is easier, and generally
more reliable in less-skilled hands (including mine).

> [...] Doesn't seem to like a list of params, though. [...]

That's still true.

> Anyway, the thing works! It even accepts ;*, [...]

Define "works". Try something like, say, plain-old: ; Or: ;2
(Plenty of other things didn't work as expected, either, even on ODS2.)


> [...] No need to be so rude though!

My concept of "rude" includes posting a hopelessly incomplete problem
description, and then expecting free advice. But I may be eccentric.
0 new messages