This issue of The DECUServe Journal should be pretty interesting. I
have included articles about Intel chips, Vax4000/VLC crashes, map software,
and virus protection for Pathworks. There is also an article on many items that
people would like to be added to DCL.
After you've read the high-brow stuff, then you can dig into the
really deep, technical article entitled "Gator Bait". But, seriously, this is
a hilarious, true story posted on DECUServe by Don Vickers.
Enjoy!
Sharon Frey
DECUServe Journal Editor
fr...@eisner.decus.org
Table of Contents
-----------------
Editor's Comments ........................................ 1
Technical Information .................................... 43
Articles
Intel Overdrive Processors ............................ 2
My favorite DCL wish-list items ....................... 9
Mysterious Vax4000/VLC crashes ........................ 30
Wanted: Software to present statistics in map form .... 34
Gator bait ............................................ 35
Virus Protection/Pathworks ............................ 42
October, 1993 The DECUServe Journal Page 2
Intel Overdrive Processors
--------------------------
The following article is an extract of the DECUServe
Hardware_Help conference topic 1507. The conversation
occurred between August 31, 1993 and September 14, 1993.
This article was submitted for publication by Jeff Killeen
and Bruce Guthrie, DECUServe Contributing Editors. Ed.
By Jeff Killeen, Stuart Renes, Jamie Hanrahan, Carl Friedberg, Dan Wing,
Terry Kennedy, Frank Nagy, Bill Mayhew, Bill Wood, Larry Kilgallen, Dale Coy,
Charlie Luce Jr., Jean-Francois Mezei, Mike Depriest, John Burnet
(08/31/93 Killeen)
------------------
What do Intel overdrive processors actually do?
(08/31/93 Renes: Here's what I think.)
---------------------------------------
I believe the term "Overdrive" is somewhat marketing hype. I think these
processors actually "replace" the existing Intel processor (by disabling it).
The "Overdrive" processor is just a faster, clock doubled, full-blown 486 cpu.
(08/31/93 Hanrahan)
-------------------
Correct (as far as I know). Each transition of the clock input (high to
low and low to high) becomes a clock cycle...
(08/31/93 Friedberg: I can think of a better use for the 2nd socket)
---------------------------------------------------------------------
I just can't wait until the "overdrive" is a 2nd processor (you would need 2
new processors, of course, and a smart motherboard... -) ) and then I can run
WIN NT in multi-processing mode on a PC! It's pretty bad to have to disable that
2nd CPU.
(08/31/93 Wing: CSCPAT+1 )
---------------------------
Yeah, 'cept what I've seen from the press, W/NT on a dual-CPU box isn't much
faster than a single-CPU box.
... maybe it is spending all its time in a big spinlock loop, and you need a
patch to fix it? What is CSCPAT+1?
(08/31/93 Kennedy: The scoop on Intel parts)
---------------------------------------------
Perhaps I should subtitle this "what Intel doesn't want you to know"...
October, 1993 The DECUServe Journal Page 3
In the beginning (well, perhaps a bit later 8-) there was the 386DX. It was
good, solid, and expensive. Part of the problem was that it fetched 32 bits at a
time (having a 32-bit internal data path). This meant that you needed 4 SIMMs,
extra latches to deal with the 16-bit expansion bus, etc. Intel decided to put
the latches inside the part and call it a 386SX. It was offered in a PLCC
package instead of ceramic PGA and was an immediate hit.
The 486DX then came out. It has internal cache and other improvements which
meant that a 16-bit external bus version wouldn't suffer as much of a
performance hit as a 386SX did (compared to the 386DX). However, rather than
make the 486SX a sensible part like that, Intel found they had a lot of 486
chips with bad floating point units (remember, this was early in the production
cycle). Since the 486 was the first CPU with a built-in FP, they figured some
users wouldn't mind. The 486 also has an FP disable line, which is used when an
external FPA is present. So, Intel introduced the 486SX as a regular 486 without
FP (the disable line was internally wired).
So far, so good. Later, the 486SX proved so popular that 486's with good
FP units were getting put into SX packages with the FP disabled by the wire
(some folks proved this by doing microsurgery on the chip and enabling the FP).
Later, Intel changed the mask to erase the FP from the part.
Of course, some people who bought 486SX systems wanted floating point,
so Intel was glad to sell them a "487", which is, in fact, a fully functional
486DX. However, you need to keep the old 486 in its socket for this to work.
This is important to Intel's strategy (and to Overdrive parts) - they want to
keep "surplus" 486 parts out of the market as long as possible.
The next step is the 486DX2 part. This part uses an internal PLL to run the
chip at twice the external clock rate (except for the interface, which still
obeys the 1x clock). This is an OEM part and isn't supposed to be available in
the retail channel except as part of a complete system.
Next is the Overdrive. These are actually a variant of the DX2. There are
two types of Overdrive parts - one has one more pin than the other. The version
with 1 less pin is a perfectly normal DX2 part with a heat sink put on it by
Intel. Otherwise they're identical. The version with the extra pin goes (you
guessed it!) in the 487 or "Overdrive" socket so you have to leave your old chip
in place.
IBM has a 3x clock doubler CPU and is working on 4x. I don't know if Intel's
licensing agreement with IBM gives Intel rights to these parts, but I doubt it.
Intel is unhappy with IBM because their agreement said that IBM wouldn't sell
loose chips - only "board-mounted" parts. However, IBM will build boards for
just about anybody with any of the IBM-designed/built 486 parts. Look a the ads
for IBM motherboards in various magazines, or Kingston's speed-up kits for older
PS2's that use a tiny daughterboard with the IBM chip on it.
(08/31/93 Killeen: Hmmmmm....)
-------------------------------
> Next is the Overdrive. These are actually a variant of the DX2. There are
> two types of Overdrive parts - one has one more pin than the other. The
Why wouldn't everyone just go with the 1 less pin version and just replace
the old processor?
October, 1993 The DECUServe Journal Page 4
(08/31/93 Hanrahan)
-------------------
> Yeah, 'cept what I've seen from the press, W/NT on a dual-CPU box isn't
> much faster than a single-CPU box.
It depends on what you're running. So far, all of the published reports
showing NT to be slow are (a) using single-threaded benchmarks (this includes
multiple Win 3.1 apps running under the same Virtual Dos Machine), and/or (b)
are including the time it takes to write to the video display. In case (a)
since there is only one thread the system can't very well hand much work to a
second CPU. In case (b) there is only one video display, and the display
interface itself is a bottleneck that requires CPU time to manipulate, so adding
CPUs won't help.
OTOH, if you have a bunch of compute-bound threads they most certainly WILL
take advantage of additional CPU(s), with about the same utilization curve as
VMS SMP (each CPU adds about 0.8 to 0.9 CPU of user-mode horsepower, until you
get to about six or seven... and in some applications you can use twice that
many effectively).
Note, some of the above is from experience -- I'm not just quoting Microsoft
propaganda.
The above leads to the question, why should the video display be that much
slower than with the same hardware under DOS and Win 3.1? Simple -- lots more
layers of software, enough so that the modern video "accelerator" cards don't
get taken advantage of very often. I assume that MS and the video card
manufacturers will keep working on this.
(08/31/93 Kennedy: It's part of the plot)
------------------------------------------
> Why wouldn't everyone just go with the 1 less pin version and just replace the
> old processor?
Intel tells them they need the +1 pin version for the empty socket. You see,
there's a method to all of their "Vacancy" ads!
Personally, I would just pop the existing 486DX or SX and put in a DX2 part
(they can be had for about $450 for the DX2/66 part under the right rocks, or
$486 [cute, huh?] from the usual places).
(09/01/93 Nagy: I'll never understand...)
------------------------------------------
This thread is giving me quite a chuckle... remember that we are talking
about the "Industry Standard" CPU now. Why is it that Intel (x86 CPU) and IBM
(Netware/6000) proprietary products are "industry standards" demanded by users
but Digital's products (VMS, VAX, AXP, etc.) are to be shunned as dirty
"proprietary" items?
(09/01/93 Kennedy: Because it isn't a monopoly?)
-------------------------------------------------
Perhaps because, despite intense (and sometimes vicious) litigation by
Intel, there is a thriving industry making compatible parts and forcing prices
down?
October, 1993 The DECUServe Journal Page 5
(09/01/93 Mayhew)
-----------------
Is that more, or less, intense/vicious than Digital's litigation?
People claim that Digital's litigation history "enforces" its proprietary
status. (Naturally, that's what the portions of Digital that do the litigation
HOPE is true.) But if it can be resisted (evidently with enough success to make
the market think it's a non-proprietary world) in the Intel arena, can't it be
similarly resisted in the Digital arena?
(09/01/93 Wood)
---------------
There doesn't appear to have been anyone with enough money/talent/guts to
create a VAX PCM. I kept hoping someone like Data General would give it a try.
It would have made it much easier to use VAXs here if there had been an
alternative CPU supplier.
(09/01/93 Kilgallen: Supposedly there was a patent on VAX)
-----------------------------------------------------------
Tradition has it one would have been impossible because the VAX instruction
set involved a patent. As the story goes, the patent is on the concept of an
instruction set where one does not know the length of an instruction by simply
reading the beginning of it (all those operand specifiers). I heard this before
RISC was a big deal, so it does seem interesting if the patent which gave DEC a
monopoly on VAX was the very thing which slows it down for pipelined
implementation.
Not that this is all bad. The horrible handstands we heard about with the
announcement of the 8600 and subsequent large VAXen to make pipelineing work
mean that DEC has gotten a _lot_ of experience pipelining under adverse
constraints. This should give them great opportunities for building future
Alpha chips.
(09/01/93 Luce: IBM licensed the NetView technology from HP)
-------------------------------------------------------------
>This thread is giving me quite a chuckle... remember that we are talking
>about the "Industry Standard" CPU now. Why is it that Intel (x86 CPU)
>and IBM (Netware/6000) proprietary products are "industry standards"
(09/01/93 Wing: wrong?)
------------------------
All of Intel's current popular chips are built on the 8080, Z80, and 8086,
which had several common suppliers (other than Intel), if I remember correctly.
Then MS-DOS took over CP/M's market share because MS-DOS apps were more or
less binary compatible, IBM did the IBM PC, there were PC clones (running Flight
Simulator to prove their compatibility with IBM PC's), multiple suppliers of
good, compatible, PCs and 286 chips.
At least, that's my partial version of history.
Terry, thanks for the overview of the 486 marketing stuff. Your brain is
full of all sorts of stuff!! :-)
October, 1993 The DECUServe Journal Page 6
(09/02/93 Kennedy: More comparisons)
-------------------------------------
>HOPE is true.) But if it can be resisted evidently with enough success to make
>the market think it's a non-proprietary world) in the Intel arena, can't it be
>similarly resisted in the Digital arena?
Probably. But the rewards are so small, compared with the PC market. Also,
in the case of the x86, Intel only "owns" the silicon - you can buy the OS from
anybody, and you don't have to pay anybody a royalty to use the bus structure
(well, unless you use MCA, but then you have other problems).
Even if someone built a functional VAX CPU chip, you'd still need an OS,
and a compatible bus would help (although the VAXstations have proved that a bus
isn't necessary all the time).
There were people who wanted to build systems from raw parts in the past,
but DEC waffled on the J11 so they all went away. The same thing happened later
on, when a vendor wanted to co-develop a VAX CPU in cooperation with DEC - DEC
thought about it and declined (quite probably because the vendor wanted to be
able to sell the chips). That was when DEC started the MicroVAX II development
(snarfing the FPJ11 design for the MVII FPA, by the way). Later on, a company
wanted to buy the RTVAX 300 (or whatever it was called), the VAX + Ethernet +
other stuff in a potted module. But DEC got queasy and said no.
(09/02/93 Mayhew: Not thinking of CPUs particularly)
-----------------------------------------------------
I guess I wasn't really clear. I wasn't really talking about cloning
VAXes; I was talking about the *generic* issue of using litigation to enforce
proprietariness. I was thinking about all the stuff that happens in the
DEC-compatible storage arena.
Is Intel, in its market space, more, or less, litigious than Digital is in
the storage space? (And no, don't ask me how to measure it, just give me an
impression if you're familiar with both companies' behavior ;-) )
(09/02/93 Mezei: A bit of history as I saw it)
-----------------------------------------------
Back in the early days of the IBM personal computers, I clearly remember the
first clones that came out had to have slightly different ROMS so as to not
impede on IBM's copyrights. (Remember that back then, IBM owned the PC from head
to toe).
This is why the "Flight simulator" test was so cruicial because it was felt
that if your slightly different clone could run the simulator, then it had close
enough ROMS to run your real software.
And IBM did sue certain clone manufacturers because of copyright
infringements. In those days, most of the clones were locally made and locally
sold, there were no real corporate clone makers.
Then came the IBM ATs , which, in some configurations, failed the Flight
simulator test. And then came some clones that would have the AT chip but who
worked well with Flight Simulator.
Meanwhile, IBM was no longer the "MAKER OF THE PC", it slowly became the
maker of teh hardware and pulled out of teh PC software market almost totally.
that is when Microsoft started to assume its ownership of DOS and started to
drive it to improve it.
October, 1993 The DECUServe Journal Page 7
So, we went from an extremely proprietary system owned by IBM (and IBM did
sue), to a proprietary operating system owned by MICROSOFT who didn't care
about who made the hardware. The Compaqs of the world then became real
corporations and gained the respect of the industry by providing more performant
machines than IBMs.
I think that as long as the "clone maker" sells something at a high enough
price, then the original maker won't mind so much. But when a clone maker starts
to undercut the original maker by quite a bit, and starts to gain market share,
then the original maker starts to worry.
(09/02/93 Coy: One opinion)
----------------------------
> Is Intel, in its market space, more, or less, litigious than Digital is
I would say "about the same". Certainly the same rough order of magnitude.
[And it will be interesting to see if Terry agrees with me].
(09/02/93 Kennedy: Brief thoughts)
-----------------------------------
Hmmm. They (Intel and DEC) both litigate a lot. However, they've litigated
different things. Intel has litigated over vendors calling compatible chips
"386" or "486" (and lost), has litigated to try to get out of (by changing the
interpretation) of a second-source agreement with AMD (and lost) and a suit to
prevent other vendors from using Intel microcode (I believe they won that one).
So, with the exception of trying to get out of the second-source agreement,
Intel's litigation has been more of a "you can't use our name or steal our
code", while DEC's has been more of a "it's our sandbox and you're not wanted".
Neither has enhanced their image (IMHO) by litigating.
(09/03/93 DePriest: There's proprietary, then there's PROPRIETARY)
-------------------------------------------------------------------
> So, we went from an extremely proprietary system owned by IBM (and IBM
> did sue), to a proprietary operatying system owned by MICROSOFT
Point of order...
While Microsoft does indeed 'control' the feature set and other aspects
of _new_ versions of _MS_-DOS, there are at least two other suppliers (namely
IBM and Novell/Digital Research) who provide alternative 'DOS' software that is
not 'controlled' by Microsoft, and there are numerous others who hold valid OEM
licenses for 'enhanced' versions of 'DOS' (like Compaq and Toshiba). The
alternative DOS vendors compete by offering what they consider to be a 'mo
better' (yet compatible) DOS than Microsoft offers.
In my book that makes DOS a more open operating system than, say, OpenVMS.
Consider also that one of the alternative DOS owners now 'owns' Unix...
(09/14/93 Burnet: Intel, the Evil Empire)
------------------------------------------
> suit to prevent other vendors from using Intel microcode (I believe they won
> that one).
October, 1993 The DECUServe Journal Page 8
Wasn't there one such case where Intel lost because they forgot to put
copyright notices on their chips?
> Intel's litigation has been more of a "you can't use our name or
> steal our code", while DEC's has been more of a "it's our sandbox and you're
> not wanted". Neither has enhanced their image (IMHO) by litigating.
I agree, but the sad thing is that in Intel's case the millions of PC
weenies in the world have not changed their buying habits as a result (partly,
IMO, because they believe that Intel can do no wrong, and partly because most of
them simply don't know about Intel's business practices), while bad publicity
seems to hurt DEC a lot more. That probably says something about the relative
level of sophistication of DEC customers vs. Intel customers.
(09/14/93 Kennedy)
------------------
At one time this was out-and-out legal. Consider that Chips & Technologies
got started by sawing the tops of the IBM custom chips on the original EGA card
and [essentially] sticking same in a silicon Xerox machine.
Wasn't DEC the first company to register a chip (MV II?) under the then-new
semiconductor artwork protection act?
I just looked at a 486DX, and the chip says "INTEL (M) (C) 1989", which I
believe means that only the mask is copyrighed. There is other wording for
microcode (not found on this chip).
> I agree, but the sad thing is that in Intel's case the millions of
> PC weenies in the world have not changed their buying habits as a result
> (partly, IMO, because they believe that Intel can do no wrong, and partly
Well, I buy Intel parts where it's warranted (I avoid things like the 486SX
and the keep-the-SX-in OverDrive scam). On the other hand, recent 386SX and DX
purchases have been equipped with AMD parts. Despite the cost of the law- suits
and the payouts to vendors for that wacked "Intel Inside" sticker (which uses
non-removable adhesive, BTW), Intel seems to be cost-competitive with the
competition (within, say, 25%). Even if I never bought a non-Intel part, the
competition serves that purpose.
It seems the DEC situation is a bit different. Even with "competitive
pricing", DEC prices are still unreasonable on many items. Competition doesn't
seem to have brought out the best in DEC...
October, 1993 The DECUServe Journal Page 9
My favorite DCL wish-list items
-------------------------------
The following article is an extract of the DECUServe
VMS conference topic 2102. The conversation occurred
between June 28, 1993 and August 20, 1993.
(By Jamie Hanrahan, John Burnet, Bart Lederman, Herb Mattord, Billy Youdelman,
Patrick Stair, Jay Thomas, Bob Graham, Pat Scopelliti, Gerardo Razumney,
Frank Nagy, Brian Tillman, Rick Carter, Matt Holdrege, Chuck McMichael,
Bret Coningham, Lyndon Bartels, Joe Crum, Ray Whitmer, Dave Mores,
Bob McFarland, Bob Hassinger, Dale Coy, Bruce Bowler, Mark Katz, Tim Gardner,
Rob Brown, Malcolm Dunnett, John Briggs, Nick Donovan, John McMahon,
Tony Arnold, Don Vickers, Bret Wortman, Tom McIntyre, Ken Akerboom,
Petri Backstrom, John Osudar, John Saunders, Larry Kilgallen, Curtis Reid,
Jean-Francois Mezei, Duncan Brown, Dan Wing, Bill Wood, George Merriman,
Hunter Goatley, Mark Schuster
(06/28/93 Hanrahan)
-------------------
There doesn't seem to be a thread on DCL "wish-list" items, so let's start
one. (Even if there is an old one -- let's start a current one.)
(Anyone requesting a DCL compiler will be sentenced to three years writing
OS JCL. With a keypunch. No, make that mark-sense cards or porta-punch
cards.)
(06/28/93 Hanrahan: New and improved lexicals)
-----------------------------------------------
Lexical functions (names for suggested new functions are optional, it's
the functionality that's important):
new:
f$substring_exists(little, big [,match_options])
returns .T. if little is a substring of big, .F. if not.
match_options is a string, a comma-separated list containing
one or more of
CASE_SENSITIVE
NOCASE_SENSITIVE (default!)
COMPRESS, TRIM, ... , from f$edit (ie it would be
nice if I didn't have to edit first and then compare)
why: Testing for a substring happens a lot, and I am SICK AND TIRED
of typing
if f$locate(little,big) .ne. f$length(big) ...
when
if f$substr(little,big)
would work.
October, 1993 The DECUServe Journal Page 10
enhancement:
f$extract(position, length, string)
the semantics of position should be enhanced so that negative
numbers count from the end of the string. ie the last char of
the string is -1, the next to last is -2, etc.
f$element(element-number,...)
same as above - negative element numbers should count from
the end.
why: These two simple fixes would get rid of a LOT of messy DCL
code.
e.g. in
$ ! did user supply a trailing : ?
$ if f$extract(f$length(p1)-1, 1, p1) .nes. ":" then p1 = p1 + ":"
$ directory 'p1'[000000]
...
the middle line becomes
$ if f$extract(-1, 1, p1) .nes. ":" then p1 = p1 + ":"
Isn't that much nicer?
New:
f$call(shareable_image_name, entry_point_name, param1, param2, ...)
Uses LIB$FIND_IMAGE_SYMBOL (obviously). Routine is called with the
indicated parameters, either integers passed by value or strings passed
by descriptor, and three extra arguments. The first of these is an
array of argument type indicators (missing, string,logical, or numeric).
The second is a pointer to a pointer to the routine's return value, and
the third is a pointer to a location in which the routine stores the
returned value data type.
(06/28/93 Burnet: Here are mine)
---------------------------------
YES! This one gets my vote. The other enhancements that are mentioned
amount to "syntactic sugar", and we can easily do without them (although, as
you say, it would certainly be nice to have them). But a call-out to compiled
code would be extremely useful. I have wanted this for a long time, especially
after writing HP-48 RPL code that uses SYSEVALs. :-) DCL is so handy for rapid
prototyping, and is such a nice very-high-level language in its own right, that
the lack of tight integration between DCL and compiled code becomes a real
handicap at times.
October, 1993 The DECUServe Journal Page 11
Rather than passing the name of a symbol for the return value, I suggest
that a special DCL symbol (maybe DCL$CALL_RESULT) be reserved to hold the return
value, and that DCL should automatically take the value from that symbol and
then delete the symbol. The compiled code would use LIB$SET_SYMBOL to set it.
If the symbol isn't defined on return, then the function value would be a null
string. This would make F$CALL behave more like other lexical functions, and
it would eliminate some clutter. (One problem with this method is that there
doesn't appear to be any way to use LIB$SET_SYMBOL to define a symbol of type
integer; only strings are allowed.)
Also, the condition value that the code returns (in R0 on a VAX) should be
copied to $STATUS, just as is done for any normal DCL command.
Along the same lines, a suggestion for one of the two or three most useful
features that could be added to DCL (I would rank F$CALL below this) is
USER-DEFINED LEXICAL FUNCTIONS, similar in principle to Fortran's statement
functions. For example:
$ define/lexical_function f_substring(string, sub) -
f$locate(sub, string) .ne. f$length(string)
$
$ if f_substring(whatever, "foo") then write sys$output "it's there"
Then we wouldn't need F$SUBSTRING_EXISTS; we could roll our own.
Next on my wish list, and probably ranking above user-defined functions in
importance, is: DECENT CONTROL-FLOW CONSTRUCTS like WHILE, REPEAT, and CASE
(or SWITCH). If it sounds like I want DCL to be more like csh, you've got the
right idea. Using GOTO to implement looping is silly; the interpreter could
easily be made to handle the explicit loop-control constructs to begin with.
We were finally given IF-THEN-ELSE (after umpteen years); why not complete the
set?
And one more bit of syntactic sugar: Make >, <, >=, <=, /= equivalent to
.gt., .lt., .ge., etc. The Fortran-derived relational-operator syntax is ugly.
BTW, besides prohibiting requests for a DCL compiler I think we should
discourage people (especially DEC people) from trying to get away with saying
"DCL is not a programming language". Yes, it is a programming language; the
sooner we all accept that, the sooner we (i.e., DEC :-) can start to give it
the additional features that it needs.
(06/28/93 Lederman: Improved error handling on GOTO)
-----------------------------------------------------
Here is one SIR I submitted some time ago which didn't go anywhere.
Add error handling to the DCL GOTO command.
It is possible to create what is in effect a "computed GOTO" in DCL by
using a symbol, as in:
$ destination = "LABEL" + F$STRING (number)
$ GOTO 'destination
$!
$ LABEL1:
$! some processing here
$ LABEL2:
$! other processing here
October, 1993 The DECUServe Journal Page 12
and so on. However, problems can arise if there is an attempt to branch to a
label which doesn't exist. There are ways of coping with this problem, but
they are clumsy.
It would be much easier to handle errors if the GOTO command had an /ERROR
qualifier, as the OPEN, READ, WRITE and CLOSE commands now have. Then users
could do the following:
$ destination = "LABEL" + F$STRING (number)
$ GOTO 'destination' /ERROR = undefined_label
$!
$ UNDEFINED_LABEL:
$!
$ WRITE SYS$ERROR "Encountered an undefined label: " + destination
$ GOTO somewhere
$!
$ LABEL1:
$! some processing here
$ LABEL2:
$! other processing here
An alternative would be to define an ON GOTO_ERROR condition which would
apply only to GOTO errors and would not be affected or canceled by other ON
conditions (ON WARNING, ON CONTROL_Y, etc.).
(06/28/93 Lederman: More selectors on DIRECTORY / APPEND / RENAME)
-------------------------------------------------------------------
(I think this might as well go here, since it's the DCL interface which
needs changing).
Allow additional DIRECTORY file selection qualifiers to be used with DELETE
[and the APPEND and RENAME?].
There are file selection qualifiers which may be used with the DIRECTORY
command to restrict the files selected: specifically, /SELECT=SIZE=MINIMUM=n
and /SELECT=SIZE=MAXIMUM=n permit selecting files which are larger or smaller
than a certain size. It would be very helpful if these qualifiers could be
used with the DELETE command.
In general, any file selection qualifiers allowed for DIRECTORY should also
select the same files when used with other file manipulation (DELETE [APPEND,
RENAME]) commands.
(06/28/93 Lederman: Better output control on DIRECTORY)
--------------------------------------------------------
(Again, it's DCL which is involved more than anything)
Enhance the DIRECTORY command to allow the user to specify which pieces of
a file specification (name, extension, version number) are included on output.
Sometimes a directory listing is directed to a file, where it receives
further processing, or is used as input to some other procedure, or it may
simply be the desire of a user to see only specific pieces of information about
one or more files. Currently, a user can specify that the output of DIRECTORY
be in a single or multiple columns, can include or exclude headers and trailers,
dates, sizes, and other pieces of information. But it is not possible to
suppress the file version number or file type. This often requires extra
processing of the information before it can be used.
October, 1993 The DECUServe Journal Page 13
The ability to control which pieces of the file specification are included
on output would significantly reduce the amount of post-processing required on
such files, and would improve the ability to tailor the VMS environment to suit
the individual user.
(06/28/93 Lederman: Output file on /LOG, /STAT, or more /OUTPUT)
-----------------------------------------------------------------
Add the ability to specify an output file on /LOG, /STATISTICS, and similar
qualifiers on DCL commands: or add another qualifier (/OUTPUT or some other
name) which will cause the information to go to a file rather than SYS$OUTPUT.
There are many times, especially within DCL command procedures and batch
jobs, when it is desirable to capture the /LOG information generated by various
commands such as APPEND, COPY, etc., so that it can be processed, or recorded
in a journaling file. Currently a user has to either spawn the command and
specify an output file, or redefine SYS$OUTPUT to point to a file. Both of
these methods work, but have significant drawbacks: one of the most important
is that all output goes to the file, not just the /LOG or /STATISTICS
information. And for utilities with both /LOG and /STATISTICS qualifiers, both
sets of information would be recorded in the same file.
It would be much easier if one could instead enter a command such as:
$ COPY /LOG = mylog.file THIS.FILE THAT.FILE
and send the logging information directly to a specific file.
/LOG and /STATISTICS specified without file names would default to
SYS$OUTPUT as they do now.
Examples of some of the commands where this feature should be implemented
are:
APPEND /LOG
ASSIGN /LOG
CONVERT /STATISTICS
COPY /LOG
CREATE /LOG
DEFINE /LOG
DELETE /LOG
MERGE /STATISTICS
PURGE /LOG
RENAME /LOG
SEARCH /LOG and /STATISTICS
SORT /STATISTICS
SPAWN /LOG
SUBMIT /IDENTIFY
UNLOCK /LOG
(06/28/93 Lederman: Remove inconsistencies between SET and SHOW)
-----------------------------------------------------------------
There are some inconsistencies between the DCL SET {entity} and SHOW
{entity} commands which should be corrected to make DCL more consistent and
easier to use.
October, 1993 The DECUServe Journal Page 14
One example is the SET VOLUME command. There is no corresponding SHOW
VOLUME command. There is a SHOW DEVICE /FULL command, but this does not show
all of the information which can be set with the SET VOLUME command. There are
also lexical functions, but these are difficult to use interactively, and also
do not show all of the information. It appears to be difficult to retrieve the
/FILE_PROTECTION information (as opposed to device protection), the /RETENTION
information, and especially the /USER_NAME information.
DCL would be easier to use if SET commands had corresponding SHOW commands
where appropriate.
Some other inconsistencies:
SET CLUSTER (sets expected votes, no way to see expected votes?)
SET DAY (no way to see if the day is set primary/secondary?)
SET FILE (DIRECTORY shows some information, lexicals may show
other items, but neither does it all at once.)
SET LOGINS (SET performs a SHOW, useful but inconsistent)
SET ON (no SHOW, apparently no lexical to test the state)
SET RIGHTS_LIST (no apparent way to retrieve identifiers?)
SET CONTROL, SET MESSAGE and SET OUTPUT_RATE have lexical functions but no
SHOW command. OUTPUT_RATE probably isn't critical in an interactive
environment, but the current state of the others is important.
SET CARD_READER (no show command, possibly not important anymore)
(06/28/93 Lederman: Find ACLs with DIRECTORY)
----------------------------------------------
Enhance the DIRECTORY command so it is able to find only files with ACLs
(or only files which do not have ACLs).
Currently, the /ACL qualifier will cause the ACL to be displayed for files
which have ACLs. But there is no convenient way to find which files actually
have ACLs except to search visually through a listing. For large directories
and/or disks, this can be quite tedious. Alternatively, there is no convenient
way to find which files do not have ACLs.
One possibility would be to enhance the /SELECT qualifier to allow
selecting on the presence of one ACL, or a set of ACLs, or any ACL, or no ACL.
Another possibility would be to add the addition of an ACL name or wildcard to
the /ACL qualifier (and also allow /NOACL). Or there may be some other
appropriate syntax which would allow users to easily find which files do or
do not have ACLs.
(06/28/93 Lederman: Find ACLs with F$FILE_ATTRIBUTES)
------------------------------------------------------
Enhance the lexical function F$FILE_ATTRIBUTES to allow retrieval of ACL
information.
October, 1993 The DECUServe Journal Page 15
(06/28/93 Hanrahan: No, I want it MY way! :-) )
-------------------------------------------------
> amount to "syntactic sugar", and we can easily do without them (although,
But they should be trivial to implement.
> Rather than passing the name of a symbol for the return value,
I didn't explain it right. The lexical function argument list would not
include the name of the symbol for the return value. But my ideas was that DCL
would pass the address of a pointer to the called procedure; the procedure
would store the address of its result. DCL would return it normally as the
function return value. The other two extra arguments mentioned (the
user-argument-type vector, and the return value data type) would also be
provided by DCL to the procedure but would appear nowhere in the lexical call.
Hmm, we could get rid of the returned argument type by having the procedure
return it as its R0 status value, DCL$_INTEGER, _STRING, _LOGICAL, _NULL, and
it could also return other error status that way. So if the procedure
encounters an RMS$_FNF this condition would be signalled upon return to the
command proc (and would trip an ON error-type statement).
Whatever... either implementation would do.
> Also, the condition value that the code returns (in R0 on a VAX) should
> be copied to $STATUS, just as is done for any normal DCL command.
Hmm, I guess we need the returned-value-type argument too.
(06/28/93 Mattord: TYPE/BSTART=n)
----------------------------------
Hearkening back to the glorious old days...
In the TOPS-10 environment you could type
.TYPE FILE.EXT/BSTART:50
and begin typing at block number 50. You could also
.TYPE FILE.EXT/BSTART:-2
and begin typing at the second block from the end of the file. It was glorious
to be able to see the last 2-3 blocks of your log files without either typing
the whole file or getting into an editor.
(06/28/93 Youdelman)
--------------------
It would be great if TOPS-10/20 and the PDP-11 operating systems were
reviewed by whomever before starting all this work..
October, 1993 The DECUServe Journal Page 16
(06/28/93 Thomas: "/BSTART:-2" = "TYPE/TAIL=20"?)
--------------------------------------------------
According to VMS 6.0 New Features Manual, maybe TYPE/TAIL=nn will fit
this wish?
(06/28/93 Burnet: DIR/SELECT=ACL - what does it do now, and what should it do?)
--------------------------------------------------------------------------------
> One possibility would be to enhance the /SELECT qualifier to allow
>selecting on the presence of one ACL, or a set of ACLs, or any ACL, or no ACL.
Interestingly enough, /SELECT=ACL is already in the DCLTABLES entry for
DIRECTORY... so apparently someone at DEC already had this in mind at one time.
But the ACL keyword doesn't take a value, and it doesn't appear to do anything
in VMS V5.5.
By the way, I suspect that many of the requested enhancements to the
various utilities that are invoked by DCL commands would have to be
"subcontracted" to the groups responsible for those utilities. I doubt that
the DCL maintainers would be allowed to make those changes on their own
initiative. There is a certain problem of perception here, since to most VMS
users just about everything will tend to look like a DCL command. I think we
would do better to interpret "DCL wish list" rather strictly.
(06/28/93 Graham: how would you implement f$call?)
---------------------------------------------------
> f$call(shareable_image_name, entry_point_name, param1, param2, ...)
Hmmm. Would the shareable image get mapped into P0 or P1? Would it be
unmapped when the f$call finished, or should it just hang around? Would the
shareable image code get executed in User or Supervisor mode?
(06/28/93 Scopelliti: Make my life a bit easier)
-------------------------------------------------
Here's a couple more...
Support for /TOTAL and /GRAND_TOTAL on the PURGE and DELETE commands so
I can just see the final results.
$ DISCONNECT VTAnnnn:
$ FORCE VTAnnnn: text { /TERMINATE }
which would force the text to a user's terminal line so we can deal with the
cases where a user's terminal dies and they would like to file their document
before their process dies from one mathod or another.
And, for you RSTS/E folks...
$ SEIZE device-name
which would grab a device that a user allocated but wasn't using.
October, 1993 The DECUServe Journal Page 17
(06/29/93 Razumney: Add EXTERNAL class of symbols)
---------------------------------------------------
Although the DCL documentation and indeed many DCL commands only make
reference to two types of symbol localization -- global and local -- in fact
there are three different types: global, local and what for lack of an official
designation I will call 'external symbols': local symbols defined at an outer
procedure level. External symbols are not visible except when a specific
reference to the exact symbol name is made; for example, if the local symbol X
is defined at level 1, then a reference to X at level 2 will succeed, but the
commands $ SHOW SYMBOL X*, $ SHOW SYMBOL/LOCAL X* and $ SHOW SYMBOL/LOCAL/ALL
will fail to display the symbol X (see example below).
Also, abbreviated symbol definition conflict is not signalled when the two
symbols in conflict are defined at different levels, i.e., there is no conflict
between a local and an external symbol.
In addition, LIB$SPAWN and the SPAWN command do not transmit external
symbols to the spawned procedure; that is, if the local symbol X is defined at
level 1, and a subprocess is spawned from level 2, the symbol X will be
undefined in the subprocess context (see example).
Therefore I see the need for the following enhancements:
1) The /EXTERNAL qualifier should be added to SHOW SYMBOL
2) A mechanism to enable transmission of external symbols to a spawned
subprocess; external symbols should appear as local symbols in the context
of the subprocess; if an abbreviated symbol definition conflict is detected
at this point LIB$SPAWN should return an error.
===========================================================================
$! EXTERNAL.COM
$! Shows the difference between local and 'external' symbols.
$! Invoke without parameters.
$!
$! 'f$verify(0)
$ if p1 .eqs. ""
$ then
$ write sys$output ""
$ write sys$output "At level 1"
$ x = 123
$ endif
$ if p1 .eqs. "SUB" then write sys$output "At level 2"
$ if p1 .eqs. "SPAWN" then write sys$output "At spawned process"
$ set verify
$ show symbol x
$ show symbol/local x*
$ show symbol/local/all
$! 'f$verify(0)
$ write sys$output ""
$!
$ if p1 .eqs. "" then @'f$environment("procedure")' sub
$ if p1 .eqs. "SUB" then spawn/nolog @'f$environment("procedure")' spawn
October, 1993 The DECUServe Journal Page 18
(06/29/93 Razumney: Another vote for F$CALL)
---------------------------------------------
> f$call(shareable_image_name, entry_point_name, param1, param2, ...)
Yes, indeed!
If the first argument is not supplied it should default in the usual manner
(logical name, then fixed file name in SYS$SHARE).
> lexical functions, and it would eliminate some clutter. (One problem with
> this method is that there doesn't appear to be any way to use LIB$SET_SYMBOL
> to define a symbol of type integer; only strings are allowed.)
The third argument to LIB$SET_SYMBOL (table_type_indicator) could become a
mask; currently only bits 0 and 1 are used to define the table (local or
global); bit 2 could be used to specify the data type (integer if set); bit 3
could be used to specify that the returned value is to be assigned to the
F$CALL return value rather than to the symbol_name argument, which would be
ignored when this bit is set.
(06/29/93 Nagy: F$EDIT option to deal with double quotes in text)
------------------------------------------------------------------
Enhance F$EDIT to provide capabilities to deal with double quotes in
strings:
quoted = F$EDIT(string,"ADD_QUOTES")
would return the text of the string now enclosed in " and would double-up all
" already present in the string so that the input of
Now is the "time"
would result in the returned text of
"Now is the ""time"""
Conversely the REMOVE_QUOTES edit option would remove all " from the string
according to normal DCL rules reversing the above action.
(06/29/93 Tillman: Not strictly "DCL, but...)
----------------------------------------------
I'd like to expand on the previous note and say I'd like a /ACE= qualifer
on DIRECTORY. I want to find a file whose ACL contain the specified ACE. In
fact, I'd like a more general /MATCH qualifier so that I can perform many more
selections, lke /MATCH=OWNER=something (a replacement for /BY_OWNER),
/MATCH=PROT=something (so I can find all of the WORLD readable files),
/MATCH=ACE=something (instead of my first thought), /MATCH=SIZE=(min,max) so I
can find all of the files of a certain size, and...
Hey, I think I've just described Joe Meadows' FIND utility!
October, 1993 The DECUServe Journal Page 19
(06/29/93 Carter: COPY /BEST_TRY_CONTIGUOUS file1 file2)
---------------------------------------------------------
'nuff said.
(06/30/93 Holdrege: SHOW USER/SERVER=)
---------------------------------------
How about a qualifier to show users that could select by server name? This
would be a handy way to track down who is using what server, PC or Xterminal.
It would function the same as a command procedure that searched for a
specific TT_ACCPORNAM. It would be very handy in my shop.
(06/30/93 McMichael: LGICMD in F$GETJPI)
-----------------------------------------
I would like to see the item LGICMD added to the lexical F$GETJPI. This
would be the same as is found in the system service $GETUAF. A lot of GETUAF's
functions are already in the lexical, so adding this one shouln't take much
work. Then I could see if anyone has redirected their login file without my
having to output SYSUAF.LIS and search it.
(07/01/93 Nagy: F$GETUAF() lexical function)
---------------------------------------------
This reminds me of another lexical function we need in DCL: F$GETUAF().
(07/01/93 Bartels: F$GETUAF() I want it too!)
----------------------------------------------
Hear Hear !!!
(07/01/93 Crum: F$QIOW?)
-------------------------
How about F$ENQ and F$DEQ? And F$GETLKI, etc...
What the heck, just take all the system services and ... :-}
(07/02/93 Whitmer: How about READ/KEYSTROKE)
---------------------------------------------
We frequently write "programs" in DCL which should be able to respond to a
single keystroke without waiting for a return. It would be nice to have some
type of "read/keystroke" which additionally parsed function keys and returned
a name for escape-sequence-producing keystrokes.
(07/02/93 Mores: F$EDIT - replace string)
------------------------------------------
Let's get F$EDIT up to doing a more complete set of _editting_ functions.
For example - one that comes to mind that is blatently missing:
outstring = F$EDIT(instring,"REPLACE_STRING",oldstring,newstring)
October, 1993 The DECUServe Journal Page 20
(07/02/93 McFarland: Some Purge wishes.)
-----------------------------------------
I would like a switch on Purge that would display the files that would be
purged, without deleting anything.
I sometimes, although not frequently, want to keep the highest and lowest
versions of a file, and Purge the versions in between.
(07/02/93 Hassinger: /EXCLUDE=;0?)
-----------------------------------
My old favorite was to have a way to ask for a directory of "old versions"
only. More or less the inverse of ;0. It is handy for managing files. It
can give you a list, and the amount of disk space used by the "old versions".
I think RSX-11M PIP had a way to do it, and I have always wondered about the
seeming lack in VMS. I sometimes use ;-1,;-2,;-3, etc. but that is not really
as good.
(07/02/93 McMichael: Open file checker)
----------------------------------------
A lexical function that tells if a file is open would be nice. Depending
on how fancy you wanted to get, you might use it to see who has the file open,
shared or not, readonly or not.
Basically, I'm asking for a replacement for:
$SHOW DEVICE/FILE/OUT=tmpfile
$SEARCH tmpfile FILENAME
$DELETE tmpfile
(07/02/93 Coy: It's not atomic)
--------------------------------
Now there's one that I don't see as (very) useful. The "open-ness" of the
file can change between using that lexical and me doing whatever it was that I
wanted to do, anyway.
But - different strokes, I guess.
(07/04/93 Bowler: my "votes")
------------------------------
Amen to READ/KEYSTROKE!
Let's hear it for F$EDIT("REPLACE")
Ditto for /EXCLUDE=*.*;0 - you'd gain flexibility and disk space (1 line
vs 50 lines :-)
Dale's correct about F$FILE(,"OPEN") not being atomic although it iS
occasionally usefull to know. If done, it needs to be more than a replacement
for the commands listed, it needs to operate cluster-wide.
(07/06/93 Whitmer: How about user-written lexicals...)
-------------------------------------------------------
October, 1993 The DECUServe Journal Page 21
(07/07/93 Razumney: Give READ SYS$COMMAND some brains)
-------------------------------------------------------
Yes, but not just /KEYSTROKE. For terminal input the following qualifiers
would be extremly useful:
/DEFAULT=string
puts "string" in the typeahead buffer
/VALID=string
checks a single character input against each of the characters in
"string", rejects entry and prompts again if no match
/LENGTH=n
input length cannot exceed n characters
/TRUNCATE
used with /LENGTH to direct READ to truncate the input string
instead of requesting re-entry
/TERMINATE
used with /LENGTH=n to terminate input after n characters without
requiring a terminator
/PURGE
purges typeahead buffer
/GLOBAL
puts the response in a global symbol
/SILENT
inhibits error message display; to be used when /ERROR is not used,
mostly with /TIME_OUT
/NUMERIC
forces numeric input
/PICTURE=string
uses Read Verify
/REQUIRED
forces input
/UPCASE /BELL /NOECHO
Then READ SYS$COMMAND could do some useful work.
(07/07/93 Whitmer: Other enhancements to READ and WRITE)
---------------------------------------------------------
I agreed, READing from SYS$COMMAND could stand a lot of enhancements
including those mentioned in [the last reply].
Reading from files could be enhanced, as well.
October, 1993 The DECUServe Journal Page 22
The previously-suggested READ/TRUNCATE=nnn or perhaps READ/SUBRECORD=(20,50)
would also be useful when reading from a file with records too huge to be
properly manipulated by DCL. Currently DCL just hands back the first n bytes
of the record where n is the maximum symbol size, making it impossible to
perform _any_ manipulation or extraction of data in the record. The only thing
that can be done on such a record is WRITE/SYMBOL. Just a few bytes shorter,
and the information could be manipulated.
Also, if write/symbol were allowed to take a list of symbols which would be
concatenated into a single record, this would be even better, allowing a huge
record to be rewritten after it was manipulated. Or just fix WRITE, which
already has this functionality, so it doesn't overflow until the record does.
Also, when reading records in an indexed file, it would be nice to be able
to simply switch the key of reference and start reading sequentially from the
current record on any key like RMS program access via a RAB does. Currently,
it seems that you can't switch key of reference from DCL without specifying a
new key, which makes it cumbersome.
It would also be nice to be able to specify keys which contained nulls in
them.
(07/07/93 Katz: more on DIR output formatting)
-----------------------------------------------
> The ability to control which pieces of the file specification are included
I'd vote early and often for this.
I'd also like to suggest an implementation "direction" for this, combining
the concepts of the /FORMAT qualifier on certain CMS commands and FAO. There
could be a special set of FAO directives for this purpose, such as:
!FIL (full filespec)
!DEV
!DIR
and !n(DIR) for the nth part of a string of subdirectories
!NAM
!TYP
!VER
!BDT
!CDT
!RDT
!EDT
!FID
!OWN
!PRT
and maybe !SPR,!OPR,!GPR,!WPR for S, O, G and W protections
!ACL (not sure about this as may be multi-line)
!ALL (allocated size)
!USE (used size)
!TOT (total when /TOTAL is specified)
!GRT (total when /TOTAL or /GRAND is specified)
October, 1993 The DECUServe Journal Page 23
This could be used as follows:
$ DIR filespec /NOHEADER/SEL=SIZ=MIN=1000/OUT=DELFILE.COM -
/FORMAT="$DELETE !DEV!DIR!NAM!TYP!VER"
$ @DELFILE.COM
or
$ DIR DSK:[*...] /NOHEADER/SEL=SIZ=MIN=1000
/FORMAT="$!55FIL!15OWN!8ALL"
(gives filespec,owner and size for files over 1000 blocks in
nice columns)
Of course, this could be taken to extremes to specify the processing which
would be done on each line of output, but maybe something needs to be left for
the user or a TPU (EDT,TECO) procedure to tweak.
(07/07/93 Gardner: My two cents)
---------------------------------
Something that I have wanted for a long time is a way to get the exact fully
qualified file spec for a file that I have OPENed and/or created with OPEN.
The purpose is to be able to create temporary work files, then delete EXACTLY
the file and VERSION that my code created.
As a work around, I include the PID as part of the file name, but that isn't
foolproof since PID sequences restart at every boot and only works for files
that I create. Using the PID also makes for some ugly looking code.
I would suggest that this be implemented in one of two ways:
a) every OPEN sets a global variable with the file spec
(e.g., $STATUS, $ENTRY, etc).
Example:
$ OPEN CHAN sys$manager:sylogicals.com
$ show symbol $FILESPEC
b) a new or enhanced lexical that I accepts a file channel
and returns the file spec string.
Example:
$ OPEN/write FILECHAN logcialname:[DIR]FOO.BAR
$ filespec = F$something(FILECHAN)
(07/07/93 R. Brown: RSX has it now, VMS doesn't :-( )
---------------------------------------------------
How about:
.ENABLE SUBSTITUTION
.OPEN SYS$MANAGER:SYLOGICALS.COM
; The fully qualified files spec is "'<FILSPC>'"
I'm surprised at how many things RSX has that VMS doesn't.
Another example: In RSX, RMD T,T=taskname will dynamically display which
files a task has open. In VMS, you can $ SHOW DEVICE/FILES and watch the list
go by.
October, 1993 The DECUServe Journal Page 24
I wonder why these got left out in the first place ...
(07/09/93 Briggs: KISS)
------------------------
I want F$TRNLNM to behave like SYS$TRNLNM. That is, I want it to translate
logical names. Please don't ask for it to navigate RMS and XQP data structures
as well.
(07/09/93 Whitmer: No changes necessary to F$TRNLNM)
-----------------------------------------------------
I agree 100%. But I see no obvious reason why this has to be different.
There would be little or no change to SYS$TRNLNM if the DCL open created a
logical which, in addition to accessing the file for you, had the complete file
spec visible. The resulting logical could be a search-path-type logical with
multiple equivalence strings. The first equivalence could be the full file
spec, while the second could contain the file access information (currently
the only thing in the logical).
(07/09/93 Briggs: Keep it simple)
----------------------------------
It was suggested several responses back that DCL could put the full file
specification in the equivalence string. i.e.
[invisible PPF prefix]DEV:[directory]file.exe;ver
That idea makes sense to me. I don't see why it would be preferable to bury
the file specification in a subsquent equivalence name of a search-list style
logical name. Either implementation would certainly be usable though.
(07/09/93 Burnet: Yes, DCL OPEN should be made to create "normal" filespecs)
-----------------------------------------------------------------------------
> [invisible PPF prefix]DEV:[directory]file.exe;ver
> That idea makes sense to me.
Especially since F$TRNLNM already strips off the <esc><nul>IFI prefix before
returning the equivalence name anyway. I don't see any reason why we couldn't
have our IFI and eat the full filespec too. :-)
Just to argue a point of DCL coding style, though -- I think that all
temporary files that are created by a command procedure should always use the
PID in the name. It's just too easy for one process to step on another
process's files if this isn't done. Relying on being able to get the file's
version number after the fact isn't really a good solution -- there are too
many things that can go wrong, and most of them depend on timing (i.e., race
conditions).
October, 1993 The DECUServe Journal Page 25
(07/17/93 Donovan: My list)
----------------------------
1. DCL should understand real numbers. I have occasional cases where I
have to calculate a percent in DCL and I always have to be very careful
about the order of operands so as to be sure that I do not end up with
a zero result.
2. DCL should understand VMS times. I would like to be able to add or
subtract a delta time to/from an absolute time and be able to subtract
two absolute times to get a delta time. This could be done as an
extension to the F$CVTIME lexical.
3. I would like F$SEARCH to allow the use of some kind of EXCLUDE
qualifier.
4. I would like an F$FIND_PROCESS("name") to find if a process is running
on a system. I can use F$CONTEXT but this is cumbersome for quick
checks.
5. A new lexical F$ERRORS (?) that returns a count of CPU, MEMORY and
NON-FATAL BUGCHECKs.
6. DELETE SYMBOL to take a wildcard, ie, DELETE SYM CPUTIME_*
7. F$GETJPI to return the total connect time. It now returns the login
time which leaves you with the job of calculating the connect time.
8. A new option to F$GETSYI to tell if the node is reachable. We can tell
if some node is a cluster_member, but not whether a node is reachable
via DECnet or IP.
9. A new option to F$GETSYI to return the number of pages of memory
installed on the CPU.
(07/19/93 Scopelliti: An easy wish)
------------------------------------
One more wish, and a simple one:
support for specifying the date as Yesterday, today, tomorrow and...
BOOT - the time and date that VMS was booted
Don't you wish you could do the following?
$ ANALYZE/ERROR/SINCE=BOOT
$ DIRECTORY/SINCE=BOOT
October, 1993 The DECUServe Journal Page 26
(07/19/93 Vickers: An easy answer?)
------------------------------------
What's wrong with the following DCL commands for having 'BOOT'?
$ ANALYZE/ERROR/SINCE="''F$GETSYI("BOOTTIME")'"
$ DIRECTORY/SINCE="''F$GETSYI("BOOTTIME")'"
Or did I miss something (again)?
(08/05/93 Bartels: /type and /node qualifier for start and stop queues.)
-------------------------------------------------------------------------
I've got a couple more:
STOP/QUEUE/[NEXT|RESET]/TYPE=[ALL|BATCH|TERMINAL|...]
and
START/QUEUE/TYPE=[ALL|BATCH|TERMINAL|...]
These would be handy. I'd like to be able to issue one command to stop or
start all the queues, or of a certain type. Maybe all the Batch queues. etc.
Also ... /NODE qualifier. So I could stop the queues on a specific node.
They could be done in conjunction and ... (Well you all see the possibilities
for your site(s).)
(08/05/93 Coy: Working...)
---------------------------
> -< /type and /node qualifier for start and stop queues. >-
I believe that you (effectively) can get that with V6.0, multiple queue
managers.
(08/05/93 Scopelliti: Computers do the work - we watch!)
---------------------------------------------------------
>> What's wrong with the following DCL commands for having 'BOOT'?
>> $ ANALYZE/ERROR/SINCE="''F$GETSYI("BOOTTIME")'"
True.. but hey, we could use f$cvtime("-1-","absolute") for yesterday,
etc. I thought the idea was to make life easier :-)
Give me an inch and I'll ask for /since=tuesday ;-}
(08/05/93 Wortman: Sorcery: )
------------------------------
> Give me an inch and I'll ask for /since=tuesday ;-}
But you won't be asking for a mile until you want:
/since=last_tuesday
/before=next_friday
/since=my_birthday
/before=next_easter
October, 1993 The DECUServe Journal Page26
(08/10/93 Bartels: /None qualifier for dir commands.)
------------------------------------------------------
I'd like to see a /NONE qualifier for the directory command that compliments
the /SINCE and /BEFORE qualifiers. I'd like to be able to get a list of files
that have no backup date by doing: DIR/BACKUP/NONE
... Or that have no modified date: DIR/MODIFIED/NONE.
I think this could be handy.
(08/10/93 Akerboom: More flexibility in /remote)
-------------------------------------------------
If the modem lets me finish...
I would like support for more of the existing qualifiers when using
print/remote and submit/remote (things like nodes, queue names, etc. would be
real handy)...
Or is this doable in some way I haven't figured out [been told about] yet?
(08/11/93 Briggs: Can't print there from here)
-----------------------------------------------
That's not a DCL issue. It's not even a VMS issue. It's a RMS/DECnet issue
issue.
PRINT/REMOTE and SUBMIT/REMOTE work by opening a file on the remote node,
copying the data across and setting either the print-on-close or
submit-on-close bit when closing the remote file. The remote node (which may
not even be a VMS node) then prints the file or runs the batch job. There is
no facility within RMS or the DECnet spec to pass a queue name along with the
close request.
(08/12/93 Saunders: Longer Command Lines)
------------------------------------------
My favorite wish is that the command line length be extended (and, I
suppose, that products take advantage of the extension). There is nothing so
frustrating as making a small change to a MMS description file and having MMS
barf, complaining that the line is too long.
It's the 90's: is there any excuse for a 1k command buffer?
(08/13/93 Osudar: F$EDIT blank trim)
-------------------------------------
A trivial little wish list item: F$EDIT(string,"TRIM") currently removes
both leading *and* trailing blanks. It is sometimes useful to remove only
trailing blanks (and who knows, maybe somebody needs to remove only leading
blanks for some reason!) Providing those as additional options ought to be
rather easy.
(08/13/93 Kilgallen)
--------------------
$ STRING = F$EDIT("\"+STRING,"TRIM")-"\"
$ STRING = F$EDIT(STRING+"\","TRIM")-"\"
I think most applications have some unused character such as "\", so DEC
should spend their time on more important things.
October, 1993 The DECUServe Journal Page 27
(08/13/93 Mezei: Directory handling commands)
----------------------------------------------
Today, while I was cleaning up a disk, I remembered one of the frustrating
activities on VMS: HANDLING DIRECTORIES
CREATE/DIR should set the default protection so that the owner can delete
the directory. Or the RENAME command should rename the file even if the owner
does not have the Delete privilege on the directory file.
Also, how about a DELETE/DIRECTORY command that would prompt to confirm and
then proceed to delete the files in the directory and the directory file itself.
(08/13/93 Coy: Some different opinions)
----------------------------------------
>I think most applications have some unused character such as "\", so DEC
>should spend their time on more important things.
Larry, I disagree with you and agree with John. Evaluation of changes is
a combination of effort-required and usefulness and conflict. This particular
change is useful, non-conflicting, and virtually trivial to do the next time
someone works on that code. I wouldn't suggest opening up the module just to
do that change, but there should be a category of "do it next time we're there".
>CREATE/DIR should set the default protection so that the owner can delete the
>directory.
Not by "VMS default", IMO. For one thing, it would be a change in current
USEFUL behavior.
>Or the RENAME command should rename the file even of the owner does not have
>the Delete privilege on the directory file.
I strongly disagree, if you are talking about renaming a directory file.
(08/13/93 D. Brown: Some reasons?)
-----------------------------------
I think the default for CREATE/DIR is set that way to protect against
accidental deletion. Much the same way your MAIL.MAI file is set to no delete
by default. But you can always use the /PROT qualifier on the CREATE/DIR
command.
The "Can't rename without delete priv" restriction was ADDED to VMS a few
revisions ago as a security feature.
(08/14/93 Wing: VMS now checks for empty directory file)
---------------------------------------------------------
I pre-V5.0, I believe, VMS didn't check to see if there were any files in a
directory -- at that time, it made (some) sense to require D access to delete
a directory file; however, VMS now checks to ensure a directory file is empty
before you are allowed to delete it.
October, 1993 The DECUServe Journal Page 28
(08/14/93 Kilgallen)
--------------------
I believe the automatic checking was introduced with V2.0. It was V3.0 at
the latest.
(08/15/93 Wood: OK, why Delete to Rename?)
-------------------------------------------
I remember when the change requiring Delete privilege to rename a directory
file was added. I never understood the reason why at the time (just dense I
guess). Would someone clarify this? (or point me to the right note, I didn't
spot it in FW)
(08/15/93 Kilgallen)
--------------------
$ RENAME SYS$COMMON:[000000]SMALLTALK.DIR FOO.DAT
has the same effect on users as deleting SMALLTALK.DIR.
(08/16/93 Mezei: PURGE should skip over versions it cannot delete)
--------------------------------------------------------------------
Here is a strange wish for DCLS' PURGE funtionality:
When a purge function is called, DCL should delete the lowest version
number it CAN delete and proceed upwards.
Why I bring this up:
With a version number of 5, and jobs that are submitted frequently:
JOB.LOG;5 \
JOB.LOG;4 \ these jobs have finished running.
JOB.LOG;3 /
JOB.LOG;2 /
JOB.LOG;1 ==> this job is still running
If that job is submitted again, it will fail because when DCL attempts to
create JOB.LOG;6, it is incapable of deleteing JOB.LOG;1 because ;1 is still
open for write. And because JOB.LOG;6 cannot be created, the batch job fails.
Also, such functionality would allow you to "lock" one version for later
perusal and prevent it from being deleted, while allowing the other versions
to be deleted normally. (a bit like the LOCK function on Motorola beepers
where you can prevent one number from scrolling off when other beeps come in).
(08/16/93 Tillman: Delete the directory last)
----------------------------------------------
Here's one of *my* favorite DCL wishes.
I really dislike the tree traversal when using DELETE [DIR...]*.*;*. DCL
could just as easily delete all files in a directory prior to trying to delete
the directory than trying to delete the directory first. I remember studying
tree traversals. I think endorder traversals would be more appropriate to this
sort of thing. Right now, it's a preorder traversal.
October, 1993 The DECUServe Journal Page 29
(08/18/93 Mezei: Reducing version numbers)
-------------------------------------------
While I am dealin with PURGE and version numbers.
How about a command that reduces version numbers to their minimum:
FILE.TXT;1395
FILE.TXT;1394
FILE.TXT;1393
PURGE/MINIMIZE/KEEP=3 FILE.TXT
FILE.TXT;3
FILE.TXT;2
FILE.TXT;1
Any command procedure that resubmits itself must have tons of ugly DCL code
to rename its own log files when they reach levels of the 32k version number
(because of the 32k limit on the version number)
(08/18/93 Merriman: Multiple commands per line)
------------------------------------------------
I second this one!
And now for something of my own:
I would like to be able to put multiple DCL commands on one line, separated
by some special (printable) character, so I can declare symbols that do more
than one thing without having to invoke a .COM file. If there was some way to
work in parameters as well, so much the better: maybe something like C macros.
(08/18/93 Goatley: Multiple commands? You might like BAT)
-----------------------------------------------------------
As for multiple commands on a line: you might want to check out my BAT
utility. It lets you submit one or more commands to a batch queue without
having to create a .COM first; it does it for you. For example:
$ bat sho use/full|show quota|mail|deck|compress|exit|eod
would execute each of the commands in a batch job.
If you're interested, you can find it via anonymous ftp from ftp.spc.edu
as [.MACRO32.SAVESETS]BAT.ZIP. UNZIP.EXE can be found in [.MACRO32].
You can get it via e-mail by sending the following commands in the body of
a mail message to FILE...@WKUVX1.BITNET:
SEND BAT
SEND FILESERV_TOOLS !Needed if you don't have UNZIP and MFTU
BAT runs on both VAX and AXP and is written in BLISS.
October, 1993 The DECUServe Journal Page 30
Mysterious Vax4000/VLC crashes
------------------------------
The following article is an extract of the DECUServe
Hardware_Help conference topic 1486. This discussion
occurred between August 11, 1993 and September 8, 1993.
By Saul Tannenbaum, Dale Coy, Mark Kozam, Pierre Hahn, Jamie Hanrahan,
Stu Fuller, Shawn Allin
(08/11/93 Tannenbaum)
---------------------
We have a VAXStation 4000/VLC that's been suffering from a series of
mysterious crashes.
This VAXStation runs VMS 5.5-2, is part of a LAVC, runs one vertical
application, and functions as our news server. We have attached to it two
external Micropolis 1 gigabyte disk drives. One disk contains News. The other
contains the vertical application and the pagefile.
With one exception, the 6 crashes have taken place overnight, when the only
activity on the system is the routine nightly ANU-News maintainance procedure.
On the first crash, DEC, after crash dump analysis, suggested a problem
relating to ESS$MADDRIVER.
After the second crash, DEC suggested that the problem was the 3rd party
disk, and that the system page table was getting corrupted when it was being
paged in from disk. The specialist concluded his analysis by reminding us that
not all disk drives are created equal and asking if he could log a call with
our sales representative. We were not amused. Nor, to her credit, was the
Manager On Duty to whom we escalated the call.
We don't believe the problem to be disk related. We have logged no errors on
that disk for a year. We do daily incremental and weekly full backups of the
application disk with /VERIFY and an examination of the logs for the last month
show no unexplainable verification errors. There is, therefore, absolute no
indication of disk problems whatsoever.
The bugchecks that have caused the crashes include:
KRNLSTAKNV, Kernel stack not valid
INVEXCEPTN, Exception while above ASTDEL or on interrupt stack
INVPTEFMT, Invalid page table entry format
We've insisted that DEC swap the motherboard on this system and they have
done so. The system still crashes.
Question #1: Is it reasonable to believe that a disk subsystem that is
showing no indications of errors could be crashing the system?
Question #2: How would you go about debugging this problem?
October, 1993 The DECUServe Journal Page 31
(08/11/93 Coy: Not what you asked)
-----------------------------------
Figure out what is common to the crashes.
> KRNLSTAKNV, Kernel stack not valid
> INVEXCEPTN, Exception while above ASTDEL or on interrupt stack
> INVPTEFMT, Invalid page table entry format
OK, so something asynchronous is corrupting registers, or something like
that.
> With one exception, the 6 crashes have taken place overnight, when the
This implies that:
1. There is _also_ a BACKUP going on.
2. It is going to a tape drive on an Infoserver.
If so, what version of Infoserver software (on the VAX)? And are you,
possibly, having some problems with the tape drive?
Yes, I know that's a blind leap - but it's where I would start.
(08/11/93 Kozam: Don't overlook your disk!)
--------------------------------------------
> We don't believe the problem to be disk related. We have logged no
I had a similar problem under VMS 5.4-2 with MANY system crashes during
periods of heavy disk activity. Lots of different errors (similar to what you
are having, but more). I was able to simulate the crashes by loading up the
system with many processes using the UETP software.
I never logged any disk errors and never saw any corrupted files.
The problem tracked down to a RZ24 compatible SCSI drive. I diagnosed this
by swapping in an identical but newer drive. After sending the old drive out
and getting a replacement, the problem disappeared.
I don't know if it was a firmware problem or a "real" malfuction. The
bottom line, however, is that the lack of logged disk errors doesn't eliminate
the problem. For what it's worth, I went around in circles with this for a
period of MONTHS because I kept overlooking the disk.
(08/11/93 Tannenbaum: Look before you leap :-) )
-------------------------------------------------
>Not what you asked
That's ok. If I knew what I should be asking, I'd have probably solved this
by now.
> This implies that:
> 1. There is _also_ a BACKUP going on.
> 2. It is going to a tape drive on an Infoserver.
You'd think so, wouldn't you? But it's not so. We've got the latest
Infoserver Client software on the VAX (3.0), but I don't think any Infoserver
volume of _any_ kind has been mounted on that system in 6 months. In fact,
there was no Infoserver activity (beyond whatever routine "hello" messages the
thing must send) at the time of the that crash.
October, 1993 The DECUServe Journal Page 32
(08/11/93 Tannenbaum)
---------------------
>I don't know if it was a firmware problem or a "real" malfuction. The
>bottom line, however, is that the lack of logged disk errors doesn't
>eliminate the problem. For what it's worth, I went around in circles
>with this for a period of MONTHS because I kept overlooking the disk.
I was afraid someone was going to say that....
(08/12/93 Hahn: 2112 crashes the VAX4000-60)
---------------------------------------------
I am also getting unkonow crashes in the middle of the night.
1. VAX 4000-60 clustered with MVII both running 5.5-2
2. Just (last week-end) added 2 Micropolis 2112.
3. checked with Microp Tech support, they need the revision sticker numbers.
4. Mine are HQ 4852-03 / db91 / 041493
5. Their reply is connect the disk to a PC Adaptec controller and
run the file 49300104.exe obtainable from their BB (818/709-3310);
this should update the PROM, or return the disk and they will
update.
(08/12/93 Hanrahan)
-------------------
Does the crash dump file tell anything useful?
>Their reply is connect the disk to a PC Adaptec controller and
>run the file 49300104.exe obtainable from their BB (818/709-3310)
I'll have to fetch this (grr). Did they say what the update does?
(08/12/93 Hahn: No crash dump left)
------------------------------------
>does the crash dump file tell anything useful?
Not when some one who has a master key to the computer room goes in and
pushes the reset button :-)
(08/13/93 Tannenbaum: I remain puzzled)
----------------------------------------
In my case, I'm not sure what's useful. 5 different crashes, with different
footprints. Some show pretty clear system corruption of some kind (the name of
the currently executing process is trashed in two of them.) The crashes have
occured in various drivers (ES,PK) and in the memory management code. The
randomness would seem to indicated a hardware problem. The motherboard of the
VLC has been swapped. We're pursuing the possibility of disk problems, but
there's no clear evidence to point to that.
October, 1993 The DECUServe Journal Page 33
(08/13/93 Hanrahan)
-------------------
>Their reply is connect the disk to a PC Adaptec controller and
>run the file 49300104.exe obtainable from their BB (818/709-3310)
I just connected to their BBS. The file isn't there. Tried keyword search
for "2112", tried 49300104.*, *.exe, 49*.*, no luck.
(08/13/93 Tannenbaum)
---------------------
FWIW, I ran the self-tests on my crashing VAXStation repeatedly.
The memory self test failed about 1/3 the time.
If I were a betting man, I'd bet that when Digital swapped the motherboard
on this system, they put the old memory back, and this has been a memory
problem all along.
(08/15/93 Fuller)
-----------------
Not having seen the insides of a VLC (but of many 4000/60 & /90 systems),
this is not an unreasonable thing to do. Remember you asked of them to change
the motherboard.
Congrats on the diagnosis, however!
(08/17/93 Hanrahan: firmware upgrade for micropolis 2112 available here)
-------------------------------------------------------------------------
> I just connected to their BBS. The file isn't there. Tried keyword search
Got it. mail from the sys-op said "just go ahead and download the file, it
isn't visible in the file directories". Hmmph!
Anyway, if anyone else needs this, it's in usr_scratch:[hanrahan]49300104.exe.
This is a self-unpacking .zip file. You copy it (in "binary" mode, byte for
byte) to a PC and then execute it, and it explodes into about half a dozen
files, one of them a "readme" to tell you what to do next. It does seem to
work, and takes only a few minutes to run.
(08/23/93 Allin: CSCPAT 1057?)
-------------------------------
FWIW, there is a patch on DSIN for 4000 VLC memory problems. I don't have
the specifics at hand, but I believe the patch number is 1057.
(09/08/93 Hahn: No more crashes)
---------------------------------
My mysterious system crashes have been solved.
I replaced the Micropolis disks with DEC DSP disks using the same minitower
enclosure, powersupply, SCSI cable, terminator, etc.. The system recognizes
them as DSP (with show configuration) instead of 2112
Been up for 10+days.
October, 1993 The DECUServe Journal Page 34
(09/08/93 Hanrahan: Did you run the firmware upgrade on them?)
---------------------------------------------------------------
(09/08/93 Hahn)
---------------
Nope - too much trouble - I did not have the 'right' ADAPTEC board.
Wanted: Software to present statistics in map form
--------------------------------------------------
The following article is an extract of the DECUServe
Personal_Computing conference topic 412. This conversation
occurred between February 10, 1993 and March 2, 1993.
This article was submitted for publication by Jeff Killeen,
DECUServe Contributing Editor. Ed.
By Damon Brownd, Mike Durkin, Bob Koskovich, Bob Graham, Brian Tillman,
Dana Schwartz
(02/10/93 Brownd)
-----------------
Does anyone know of any software that would take statistical information per
zip code and draw a map with colors or shading varied according to the number of
occurrences for each zip code.
Ideally the program would have built-in maps that I could plug my numbers
into. We are evaluating what areas of town our patients come from and would like
to present the information in the form of a map.
Does such a thing exist?
(02/10/93 Durkin: GeoQuery)
----------------------------
There is GeoQuery on the Macintosh. Not sure if it is available on the IBM
platforms, but you might want to check yourself:
GeoQuery Corporation
475 Alexis R. Shuman Blvd.
Suite 385E
Naperville, IL 60563
(708) 357-0535
Disclaimer: I've not used their product and most certainly will not reap any
benefit from sharing this information :-)
(02/10/93 Koskovich: Start dialing...)
---------------------------------------
We use GeoQuery on the Mac, and it's a pretty slick program. However, it
only uses a pushpin analogy rather than the colors/shading you're looking for.
I've seen programs (for the Mac, anyway) that represent the statistics by
colors/shading.
October, 1993 The DECUServe Journal Page 35
I've never looked for this kind of program on any other platform, but I'd
bet that one of the Mac-based mappers has stuff on other platforms.
Here are a few other products I gleaned from the Jan 1992 Macworld magazine
article on mapping:
Tactician Tactics Int'l 508-475-4475
Descartes PC Globe 602-730-9000
MapInfo MapInfo Corp 518-274-8673
MapMaker Strategic Mapping 408-985-7400
Good luck.
(02/10/93 Graham: SAS does maps)
---------------------------------
SAS will do this quite nicely on mini/mainframes. There is a SAS/PC
version, but I don't remember if it comes with the map datasets or not.
(02/11/93 Tillman: Tellagraf does maps
---------------------------------------
Computer Associates' CA-Tellagraf has VAX and PC versions that support maps.
They can go anywhere from the entire globe down to any county in any U.S state.
(02/11/93 Brownd: Thanks)
--------------------------
Thanks guys! DECUServe comes through again!
Gator bait
----------
The following article is an extract of the DECUServe
Hobbies_and_Interests conference topic 113. This
discussion occurred between July 4, 1993 and July 30, 1993.
By Don Vickers, Ta Fuh Chiam, Jean-Francois Mezei, Lynda Peach, Brian Tillman,
Curtis Reid
(07/04/93 Vickers)
------------------
As Al Hull mentioned I have had some experiences with alligators. I am
entering this as a base topic and two replies to make it easier to read but I
suspect you may wish to hit NEXT UNSEEN anyway.
I live in central Florida on Lake Griffin which is reported by the wildlife
'experts' to have 1,800 alligators in it, the highest number of gators in any
body of water in Florida. I spend a lot of time on the lake both sailing my
Hobie 16 (when there's good wind) or rowing by single scull (when there's no
wind). My single scull is a wooden boat 26 feet long, a foot wide at the widest
part of the hull, and weighs 32 pounds.
October, 1993 The DECUServe Journal Page 36
Alligators are prehistoric animals and are not known for their intelligence
(but neither am I ;'). They tend to wait patiently for their food to come to
them (I don't share this attribute with them). They seem to favor dogs. Dogs
tend to like to bark and 'attack' gators which are 'idle' in shallow water.
This suits the gators fine which put up with this noise slowly moving away from
shore until they have the dog in water deep enough. They drown their victims
rather than chewing them to death. They have a rather deep seeded fear of
people and avoid contact as much as they are able, normally.
Having spent many hours on the shore and surface of the lake I have seen
alligators in many situations. In past several years I have had several
encounters with alligators. They are often curious (or something) as to what I
am when I am rowing. They often follow me until they get close enough (usually
30 to 50 feet) to realize that I am a person. When they realize I am not food
they usually do a crash dive and 270 degree spin, often making quite a splash.
My normal rowing speed is significantly faster than a gator's swimming speed.
Gators seem to be rather territorial. Each year there seems to be a
different one that 'lives' at my little beach. One year it was 'Alfred' who had
this habit of staying on shore 50 feet or so from the water. I 'met' Alfred one
windy day when I was rigging my Hobie to go sailing. He was lying in the grass
not moving at all and I thought he was a fallen tree until I got a good view.
As soon as I realized what Alfred was I became somewhat concerned and
interested. I had walked within a few feet of the gator without seeing it and
it had to realize I was there and had not moved. This is not the expected
behavior and gator protocol. I was thinking that Alfred was either a very
strange gator or dead. I didn't like either prospect. I threw a big stick at
Alfred and hit him. All he did was to blink at me. MOST strange behavior.
Alfred stayed around for most of one year and seemed to be hunting raccoons in
that he would stay right on or near one of their various paths through the
woods. I would see him in different places on land remaining perfectly still.
The following year a 14 foot gator 'owned' my beach. It was easy to
determine his length as one day I came up on him sunning himself in the
reflection of the sun from the hull of my Hobie 16 and he was just a bit shorter
than the hull itself. He always behaved in a normal fashion however. Whenever
there was any sign of me or other human activity he bolted for deep water
leaving only his eyes above the water as he watched from a safe distance.
Several years ago I was sunk by SOMETHING which punched a hole on the port
side of the scull about 9 feet back from the bow. I had to swim about a quarter
of a mile to shore which was a bit scary. I called the 'experts' and was told
that there was no way an alligator would have done such a thing so it was
obvious that I had run into an underwater log or something. (Have you ever
noticed that 'experts' almost NEVER know anything useful? - Just read the trade
press for proof. ;') I never could get them to tell me how the log could be
moving with sufficient lateral force to break the hull.
In spite of my respect for the government 'experts' I decided to carry
a hunting knife strapped to the shoes in my scull. This lasted a couple of
years but it was stolen and I never got around to replacing it. I also
augmented my life jacket with inflatables. It isn't feasible to wear a life
jacket when rowing so the life jacket is only useful in slow and controlled
sinkings.
More in the next two replies.
October, 1993 The DECUServe Journal Page 37
(07/04/93 Vickers: The attack - my few minutes of fame)
--------------------------------------------------------
The incident to which Al referred occurred on August 1, 1993 and I made the
front page of the paper the next day. I was going for a row that morning even
though there was a bit more wind that I prefer (but not enough for good
sailing). I launch the scull on a small beach with lake grass on both sides. I
get into the scull in the shallow water and then row a few strokes out into the
lake to put on my socks. I did this but before putting on my socks I wanted to
get a better feel of the wind direction to determine the best direction to go.
As I was looking over my shoulder I felt the boat move sharply and heard a
small splash. It did not require much processing to determine what this might
mean. I saw the snout of a large gator going slowly back into the water and
then the water swirl as it did the normal 270 degree turn on the starboard side
to evade. I yelled at the beast to let it know that I was not pleased with what
it had done to my scull. I didn't like the idea of having to repair the boat
again and I really wanted to get some exercise. I waited a few seconds to be
sure that the gator had time to get out the area.
As I positioned the oars to take a back stroke to move back toward shore
(about 60 to 70 feet) the gator came up out of the water, bringing his entire
head up out of the water right next to the port oar in the water. At this point
my shouts of anger turned to more of a scream and my first thought was "This is
not a normal gator." Not particularly profound but what do you want?
The gator waved his large open jaws back and forth a few times and hissed
while I screamed back at it. As it was doing this show of very large teeth I
was thinking that there was no way I was going to get out of this situation
without getting bit but I was secure in the 'knowledge' from those 'experts'
that very few people die in gator attacks.
I was trying to remember the proper approach to take in such an attack
without much success, I fear. I couldn't remember whether I was supposed to hit
the beast, try to hold its jaws closed, or try and distract it by asking it
about which was it's favorite client/server platform.
It disappeared back into the water and I took the back stroke. This stroke
may not have been the best idea in that the stern of the scull had been bitten
completely through and the stern compartment filled with water and sank. To
make matters worse, the gator came up out of the water on the starboard side of
the stern and did the jaw swinging thing right at my feet.
At this point I removed my feet from the shoes in the scull and climbed up
on the bow of the scull. You lose big style points for not stepping in the
right places on rowing shells but I wasn't thinking so much of style points. I
was still trying to think of what I was supposed to be doing. So I am now
laying on the VERY thin bow of my scull now about 5 feet farther away from shore
and more into the deep water which is great for the gator.
I then remembered that surfers get attacked by sharks because they look like
seals from below when they paddle. So I decided to keep my arms at my sides and
just stay still. But then I realized this is for sharks who don't know they are
dealing with a person. None of the key elements where matched by my current
rather poor situation. The gator clearly knew that I was a person and that I
was there.
I decided that my only hope was to get to shore but the gator was between
me and shore as near as I could tell. The most frightening part (just like in
"Jaws" was when the beast was hidden from view). Well maybe it wasn't the MOST
frightening part but ...
October, 1993 The DECUServe Journal Page 38
I started paddling the dead scull toward shore and had taken 3 or four
strokes toward shore (still screaming at the top of my lungs) when the beast
came out of the water on the port side about 3 or 4 feet away from my head and
arms. As soon as it broke water I abandoned my perch on the bow and started
swimming for shore for all I was worth. As soon as I could touch bottom well I
started running and (being a well know cheapskate) grabbed my scull and dragged
that behind me leaving it in the shallow water.
The gator slowly swam up and stopped next to scull and just watched me. I
looked back at it and gave it some advice which cannot be related in this forum.
I then went to the house and had the police called. I live in a nice small town
so I know many of the police and one of the guys, Shane, who know me answered
the call (he was in the Burger King drive through and used his siren to get his
order expedited).
The standard procedure on a gator call is for the police to inform those
'experts', the Fish and Game Commission which was done as the police were
enroute. When Shane arrived he said, "A gator didn't REALLY bite a boat did
it?" as we walked down to the lake. When we arrived at the site the gator was
still guarding his kill - my scull. Shane saw the damaged boat and got his
pistol out and asked the gator to make a threatening move. He also was there
long enough to see the white mark on the left upper snout which I pointed out
(having seen it pretty close range). The gator just quietly backed away and
went out to deep water.
Shane radioed in that the report was indeed attacked and the gator was a
nuisance. The Fish and Game 'people' didn't want to be bothered so they told
the city to contact the local licensed gator hunter who arrived to trap the
gator.
The finish is in the next reply,
(07/04/93 Vickers: The capture and restoration)
------------------------------------------------
The trapper arrived and saw the gator watching us. He set a large (3 inches
in radius) hook into a VERY rotten half of a chicken and suspended it about a
foot over the water about 40 feet off shore. The hook had a one quarter inch
line attached to it which he tied to a tree on shore.
The reporter from the Orlando Sentinel had also arrived and interviewed me
and the trapper. The trapper explained that it would be 5 to 10 hours before
the gator took the bait and packed up to leave. None of us believe this, of
course, and stayed around to see what happened. Nothing did. The trapper
didn't claim to be an expert - he actually knew what would happen - mostly. I
went by the spot a few hours after we had all given up and saw the gator parked
right under the stinking chicken in the air. The gator never did go for the
bait.
I had to go to a customer site on Monday and the chicken was still hanging
when I left. On Monday night (the third night after the attack) the bait was
gone and the rope tight so my uncle called the trapper. They pulled in a 9 foot
gator who had taken the chicken. This gator had no white spot on its snout.
Given that it is difficult to explain to the gator that you are really it's
friend and removing the hook won't hurt it much the trapper killed the gator in
the approved manner with a bang stick which is roughly a shotgun shell firing
mechanism on a stick. I am sure sure that the roughly $1,000 the trapper gets
from each animal's skin and meat had little to do with his decision to dispatch
the gator to gator heaven.
October, 1993 The DECUServe Journal Page 39
This left the 'nuisance' gator still on the loose. Apparently, the attack
gator watched his 9 foot buddy go to his reward. The trapper placed another
chicken out but told my uncle that he doubted the gator was going for this (no
expert - just someone who knows gators). By Wednesday the chicken was still
there being guarded the attack gator so the trapper brought some friends and
they starting stalking the gator. I was partly sorry to have missed all of this
as they chased the gator and the gator chased them. Apparently, the gator did
the same sort of wide open jaw hissing at them as he did to me.
By Wednesday afternoon they had captured the gator and brought him to shore
where he was killed in the approved manner. The gator was just over 12 feet
long and weighed 450 pounds.
While I was happy that the crazy gator was gone I was left with a rowing
scull with a very badly damaged stern. I called some local boat builders and
was laughed at. Everyone has gone to the modern plastic boats and don't do wood
work. I called several places up the road all he way to Ohio and never got
anyone interested. I finally drove the boat to London, Ontario where the son of
the man who built it 22 years ago repaired it.
It feels great to have my boat back on the water even though I have been
rowing less than I like. Most of this due to the high winds this winter and
spring. The boat was painted white in order to TRY to make it more clear to the
reptiles that it is NOT food. I never was able to get any idea from the
'experts' as to what may have caused the attack. The only theory I can think of
was that I had threatened the animal by being too close to it and the grass. I
now do not stop to dress by the grass and keep an even closer eye out for the
gators.
If you read all of this it may be a sign you need a social life.
Keep smiling,
(07/04/93 Chiam: Hmm ... )
---------------------------
> The incident to which Al referred occurred on August 1, 1993 and I made
^^^^^^^^^^^^^^
Are you sure? You are not still suffering from the scare, are you? :-)
Just can't resist. :-)
(07/05/93 Vickers: Oh - the past is slightly different than the future)
------------------------------------------------------------------------
Well, I did say I wasn't all that bright didn't I?
Yes, the incident did occur last year which would be 1992 using most
popular calendar systems.
(07/08/93 Mezei: Vickers vs Gators)
------------------------------------
I guess I have no life. I did read through all those Vicker vs Gator notes.
And I though that the Yukon/Alaska/Northern BC were dangerous because of bears
:-)
October, 1993 The DECUServe Journal Page 40
(07/26/93 Peach: Gators should have *known* they'd lose)
---------------------------------------------------------
No life here on the western part of Florida. Don, that's quite a tale.
I remember when I first heard about you and the 'gator. Someone said to me --
some guy works for Digital or used to got attacked by an alligator somewhere in
Florida. You were the ONLY person I knew of that time who fit the description.
I personally stay away from the water spots in Pensacola that have 'gators.
But Don is a brave man.
Obviously you aren't thinking about getting new hobby.
(07/26/93 Mezei: More gator questions)
---------------------------------------
Don, did Digital force you to get a special life insurance policy when they
found out that your hobby was rowing amongst gators ?
Are you the one who did the stunt in the James Bond movie "Live and Let die"
where James Bond escaped the gators by walking over them and crossing the pond ?
Do you have to have special gator-proof garbage bins ? (In western Canada,
if you live in the wilderness, you normally have bear-proof gargabe bins to
prevent bears from getting to your garbage).
(07/26/93 Vickers: answers)
----------------------------
Actually, Digital never cared too terribly much about what I did with my
free time (or much else ;'). My node name here in Florida was GATORS but almost
everyone seemed to think it had to do with the University of Florida rather than
real reptiles. The attack occurred during my notice period after resigning from
Digital, which coincided with Ken Olsen's 'resignation'.
Walking on the backs of gators in the water would most certainly require
VERY fast foot work. Gators typically get very nervous with any human activity
and NORMALLY dive VERY quickly. I did accidentally run over a gator on the
surface and got almost all of the scull out of the water before he dived. At
the time I was moving rather fast and doubt that I could have taken a full step
on it.
Alligators do not go foraging as do bears. They typically stay very close
to the water. The foraging animals around here are raccoons and they are most
certainly pests if you attempt to grow ANYTHING. My wife planted bulbs a number
of years ago and the raccoons enjoyed most of them the night they were planted.
The bulbs they didn't like had bites taken out of them. I had a raccoon eat
through the handle of one of my oars a year ago.
A moderately popular news feature on the local television news is about
gators who wander into places where they don't belong. These include the pools
of apartment complexes and the like. One of my favorite fairly recent news
stories was of a 8 footer that decided that he REALLY liked a Ford dealership
and would NOT leave from under his favorite pickup truck. These stories are rare
enough to be 'news' so it isn't common. My wife's boss lives on the the same
lake as we do and had a 6 foot gator in their pool which is 30 feet from the
lake (with no fence or screen).
October, 1993 The DECUServe Journal Page 41
(07/26/93 Mezei: How safe is your backyard?)
---------------------------------------------
If I were to setup my tent in your backyard, what would be the odds that I
would survive a night withouh being attacked by your gators ?
And I though the grizzly squirrels in Alaska were bad ...
(07/28/93 Vickers: (Almost) totally safe - come on down)
---------------------------------------------------------
Based on everything I have seen and heard, gators do not go after people on
purpose, especially out of the water. Water is their element and they drown
their prey so attacks on the ground would most strange.
Like snakes, gators are more afraid of you than you are of them. ;')
The trick is to remind them of this from time to time.
(07/28/93 Mezei: <FORM MAIN/MODE=SCARE_GATOR)
----------------------------------------------
And what happens when you forget to remind them of this from time to time?
And just how do you know that it is the exact time to warn them of this?
And I won't even bother to ask HOW you warn them... Show them the
ALL-IN-1 main menu ? :-) :-) :-) :-) :-) :-) :-)
(07/30/93 Tillman: Do they understand English?)
------------------------------------------------
And what if they don't understand what you're trying to tell them or they
don't read the papers the "experts" have written about how they are supposed
to behave?
(07/30/93 Mezei: Gator vs Croc?)
---------------------------------
Pardon my ignorance but... What is the difference between an Aligator and a
Crocodile ?
(07/30/93 Reid: Difference btw Alligators and Crocs)
-----------------------------------------------------
An alligator has a broad head that doesn't narrows toward its snout. A
crocodile head narrows toward its long snout.
According to my wildlife booklet I bought in Australia, it says that
"Crocodiles have been present on Earth for over 100 million years. There are
about 22 species of crocodiles, alligators and their relatives in the world.
Australia has two, both of which are found in the Top End."
The two it mentions are: Freshwater Crocodile and Saltwater (Estuarine)
Crocodile. Saltwater Crocs are the most dangerous and the largest in the world
-- growing to 6 meters long. The Freshwater Croc has a long and narrow snout
when compared with a similar-sized Salties.
October, 1993 The DECUServe Journal Page 42
Virus Protection/Pathworks
--------------------------
The following article is an extract of the DECUServe Pathworks
conference topic 584. This discussion occurred between
July 30, 1993 and August 3, 1993.
By Michael Moore, Robin Rapport, Tricio Powers
(07/30/93 Moore)
----------------
I am searching for a virus protection program to install in lab of DOS PC's
running Pathworks. We need a TSR that will check student disks as they are
inserted. We have tried a couple but have run into memory conflicts. Any
suggestions on a protection program that co-exists nicely with Pathworks?
08/02/93 Rapport: DEC has a product...)
----------------------------------------
DEC markets something to run on server which is supposed to do this nicely.
SEARCH for VIRUS in PATHWORKS conference.
(08/02/93 Rapport: Look in 481.*)
----------------------------------
Product is called: VSWEEP.
(08/03/93 Powers: A Virus Scanning ALternative)
------------------------------------------------
We recently looked at a lot of anti-virus products and selected Dr Solomon.
Uses very little RAM for TSR guardian module, and scans disk quickly. Can also
be used to scan PATHworks files on VAXen.
Pricing on a volume site license also was inexpensive for the guardian
module. Also have full kits to "disinfect" any viruses you find.
October, 1993 The DECUServe Journal Page 43
=====================
Publication Information
-----------------------
Topic threads in the DECUServe VAXNotes conferences are selected for
publication on the basis of strong technical content and/or interest to a wide
audience. They are submitted to the editor by a team of Contributing Editors
who are DECUServe Moderators, Executive Committee members and other volunteers.
Articles in the DECUServe Journal are downloaded to a 286 PC and formatted
using a standard text editor.
Editorial Content Disclaimer
----------------------------
Opinions and information presented here belong to each individual author.
No inferences should be made that the authors are expressing the policies of
their employers unless specifically stated. Content has been deemed acceptable
by the Moderators of DECUServe according to the DECUServe Canons of Conduct.
How can I use DECUServe?
------------------------
DECUServe is available 24 hours a day, 7 days a week, except for the last
Thursday of each month at 5pm Eastern time for backups. Membership is by
individual subscription only, and subscriptions are sold on a yearly basis
currently for $75.00. Subscription forms are always included in DECUS New
Member packets and Symposia registration packets. Six-month subscription
forms are often distributed at symposia as well.
Foreign DECUS chapter members are invited to subscribe as well, although
they must do so through their chapter office. Forms and price details can be
obtained from the chapter office.
Also subscription forms can be downloaded directly from DECUServe by dialing
1-800-521-8950 with the username INFORMATION. Set your modem to 2400 or 9600,
1 stop bit, 8 bits, no parity. Other access modes are Tymnet and Internet.