THE ADVENTURES OF WILFRED HARRISON, INTREPID PROGRAMMER
                       by Eugene Volokh, VESOFT
Published in "Thoughts & Discourses on HP3000 Software", 1st ed.,1984.



The candle on the desk was burning low when Wilfred Harrison, intrepid
COBOL  programmer, finished changing the  layout of the ACCOUNT-MASTER
dataset  in  his  COPYLIB. He quickly grabbed  another candle from his
desk  drawer, lit it, and put it in the candlestick. After he finished
wiping  the  overflowed  wax,  he shouted "Phil!  Come over here!" and
quickly ducked underneath his desk.

Phil  Jarrold  (aka  "The  Wizard"),  the  local  systems  programmer,
appeared  in  a  puff  of  green smoke and a  hail of potato chips. He
greeted  Wilfred  with a toothy grin and  a loud "Hey, Wil, whatcha up
to?"

"I  just finished changing my COPYLIB," replied Wilfred, "and now I've
got  to  recompile  all  70 of my programs.  It's really quite simple,
they're  all  in the SOURCE group and they  all start with GL. Can you
help me?"

"No  big deal," said Phil. "Let's see  now..." He waved his arms three
times  at  the  terminal and incanted, "Abracadabra,  X Y Z, ATTACHIO,
DIRECDELETE!"

Nothing happened.

"Hocus Pocus, Lens and Focus!"

Nothing.

"Shazam?" blurted Phil, now not quite so sure of himself. Still, not a
compile  had  started.  "Um, I dunno... It  doesn't seem to be working
quite like my System Magic Manual says it should... Must be a hardware
problem. Call your CE and then I'll try again."

"But  I  need  to have my programs recompiled  now, and my CE won't be
back  till  a  month  from  Tuesday,"  pleaded  Wilfred.  "Isn't there
anything you can do?"

"I said, it's a hardware problem!" retorted Phil angrily. "Then again,
you  can always try recompiling them by  hand," Phil said with an evil
chuckle, and vanished in another puff of smoke.

"Argggh!"  screamed Wilfred. This really took  the cake, he thought to
himself.  This  kind of thing had to happen  on a Friday evening -- 70
programs  to recompile, and his systems programmer forgets his spells!
He  should have listened to his mother and become a dope fiend instead
of  mucking around with these blasted  computers from dawn to dusk. He
barely  had  the strength to lift his  weary body from his rickety old
chair. He felt like a drink, maybe seven.

Larry  Smythe owned a bar around  the corner on 42nd. Everybody seemed
to  come  there  on  Friday evenings to blow  their paychecks and talk
about  the  Dodgers, women, and Mystery  Mansion. This Friday, though,
all  Wilfred  was  in the mood for was a  good whiskey on the rocks to
drown  his  bugs. "You know what I want,"  he said to Larry, too tired
for the usual pleasantries. "Yeah, what you want is fileset compiles,"
replied  Larry.  After  the  initial  shock of  the unexpected answer,
Wilfred realized that Larry was right (although a whiskey on the rocks
wouldn't  hurt either). "How did you know?" he asked, rather confused.
"Whaddaya  mean, how did I know?" asked Larry, visibly irritated. "You
think I don't know a man who needs a fileset compile when I see one?"

"How  in the world am I going to  do a fileset compile?" he shouted to
Larry,  realizing  that  the :COBOL command  doesn't support filesets.
"And get me a whiskey on the rocks!"

Larry  came back with the drink and  pulled a napkin and an MPEX trial
tape  from underneath the counter. "Here! This lasts for three months!
And don't spill the drink on the tape, or I'll have to get a new one."

Wilfred,  now totally confused, downed the  drink in one gulp, grabbed
the  tape,  and decided it was about time  he went home and had a good
night's  sleep. That night he dreamt  about naked source files bathing
on  a  tropical  beach and being chased  by MPEXs in pin-striped suits
good  for three months. He woke up with  a biting pain in his back and
the memory of the uncompiled programs still lingering in his mind.

Wilfred shaved, grabbed a byte to eat, and was ready to go to work hen
he  noticed that the MPEX tape on the coffee table was glowing with an
eerie  light. Not wanting to get in  trouble with any vendor magic, he
grabbed the tape and got in his car.

As  he  entered  the  computer  room, he was welcomed  by a grunt from
Bonzo,  their  weekend operator, who was  busily ripping printouts off
the  line printer. Carefully avoiding the banana peels that were lying
all over the floor, Wilfred made his way to the 7976 tape drive. As he
pushed  the  "LOAD"  button,  the  big  purple arm  of the auto-loader
wrenched  the tape out of his hand and plopped it onto the tape drive;
a couple of seconds later, when the ONLINE light turned on, he stepped
over to the console and typed:

:FILE VESOFT=VESOFT/HP3000;DEV=TAPE;LABEL=VESOFT
:RESTORE *VESOFT;@.PUB.SYS;SHOW
:RUN STREAMX

"COMMAND  ABORTED DUE TO IMPOLITE REQUEST (CIERR 989)" appeared on the
console.

":PLEASE RUN STREAMX," responded Wilfred.

"NOPE (CIERR 1352)."

":PRETTY  PLEASE WITH SUGAR ON THE TOP," typed Wilfred (cursing HP for
their insistence on "computer-friendly" commands).

That  seemed to do it. After five  or so minutes, that magical "VESOFT
AND  SECURITY ACCOUNTS INSTALLED!" message appeared on the console. He
walked  over to the tape drive, dismounted  the tape, and went back to
his cubicle.

His   success  with  the  installation  procedure  made  Wilfred  feel
courageous. He felt that he was ready. For MPEX. For fileset compiles.
For  anything the computer may throw  his way. Even for lunch. Feeling
that  discretion  was  the  better part of valor,  he decided to defer
experimentation  until after a burger and a  beer. He was ready to get
up and go for lunch, when a voice emanating from the terminal said:

"Wilfred Harrison..."

"Huh?"

"I am the spirit of your source files..."

"What?"

"We want to be compiled..."

"Ummm, how about after lunch?"

"Now, Wilfred, now!!!"

"Look, I've really got to grab a bit to eat."

"If you don't compile us now, horrible things will happen..."

"Such as?"

"You know those variables with the self-explanatory names?"

"You wouldn't dare!"

"Yes!  We'll rename them to I1 through  I57! And we'll delete all your
comments! Don't think we won't do it, because we will!"

Wilfred sighed. He had no choice.

":RUN MPEX.PUB.VESOFT," he typed.

"MPEX/3000  Version 1.4 (VESOFT (C) 1980)  For help type 'HELP'," came
the response.

Well, here goes nothing...

"%COBOL GL@.SOURCE,GL@.PUB."

Wilfred  could  not  believe  his eyes. One by  one, his programs were
being  compiled.  It  was incredible. It was  wonderful. It was a good
excuse to have a victory drink.

Wilfred went to sleep that night with a good feeling in his heart, and
a quart or two of alcohol in his belly. He slept soundly, knowing that
he  had  at  last found an ally in  his never-ending battle for truth,
justice, and the HP Way.


                             TRIVIA TIME
                      by Eugene Volokh, VESOFT
      Presented at 1987 INTEREX Conference, Las Vegas, NV, 1987
          Published by SCRUG Communicator, June/July 1988.


Questions:

1. What are the ways you can exit SPOOK (besides break and ABORT)?

2. What are the full names of the editor commands A, E, I, O, U?

3. What secondary entry point does EDITOR/3000 have?

4. What is the filename of the program file that is run when you
type :SEGMENTER?

5. What does the FCOPY ;EBCDIKIN parameter indicate?

6. What MPE subsystems have both END and EXIT commands -- which do
   different things?

7. What :SEGMENTER commands have the opposite effects of -CEASE and -HID

8. What are the two options on the MODE command of SPOOK?

9. Name four intrinsics (besides the COBOL and BASIC KSAM interfaces)
   that only work on KSAM files and NOT on ordinary MPE files.

10. What three-character string may not be used to start a UDC name?

11. What HP acronym has 2 different meanings that are spelled almost
    identically?

12. What HP acronym has 3 different meanings?

13. Name 5 acronyms that have two or more meanings each.

14. What is the only HP intrinsic documented in the Intrinsics
    Manual that has a REAL parameter?

15. What does the acronym EAR stand for?


Answers:

1. E causes SPOOK to suspend; Q causes it to terminate; : causes it
   to terminate because of end of file on $STDIN.

2. Add, End/Exit, Insert, Or, Use

3. BASICENTRY, used to automatically /TEXTing and /KEEPing the file
   equated to EDTTEXT

4. SEGDVR.PUB.SYS

5. That data is to be translated from EBCDIC Katakana format to JIS form

6. SORT and MERGE, in which END executes the operation and returns to
   MPE, but EXIT just returns to MPE; QUERY: END gets of our REPORT,
   EXIT otherwise.

7. -USE and -REVEAL

8. WIDTH, CONTROLS

9. FREADBYKEY, FFINDBYKEY, FREADC, FFINDN, FREMOVE, FGETKEYINFO

10. RFA

11. DB -- database and Data Base register

12. DS -- queue, Distributed Systems, Data Segments

13. DB -- database and the Data Base register;
    DS -- the DS scheduling queue, Distributed Systems, and Data
    Segment capability; MR -- Multi-RIN capability and Multi-Record
    file access;
    CS -- Communication Systems capability and the CS scheduling
queue; PM -- Privileged Mode capability and Preventative Maintenance)

14. PAUSE

15. Exclusive Allow Read, an access mode specifiable in a :FILE command


                             TRIVIA TIME
                      by Eugene Volokh, VESOFT
                   SCRUG Communicator, Apr/May 1988.

Questions:

1. What HP screen-handling product PRECEDED V/3000 (or VIEW)?

2. What government post did Dave Packard hold?

3. What is the full name of HP Steak Sauce?

4. What is the street address of CSY labs?

5. What kind of file has a filecode of -402?

6. Name two secondary points of DBDRIVER.

7. To how many characters can you abbreviate DBUTIL command names?

8. Name three IMAGE or TurboIMAGE utilities in PUB.SYS besides
   DBUTIL, DBSCHEMA, DBLOAD, DBUNLOAD, DBSTORE, and DBRESTOR.

9. What sort of object does the QUERY CREATE command create?

10. What happens when you call DBOPEN in mode 0?

11. What data communication protocol does TERM=10 use?

12. What was the distinguishing feature of the HP 2641 terminal?

13. What does the HP 150 output when you type "ESC & a ?"?

14. What happens when you hit control-DISPLAY FUNCTIONS on an
    HP 2645A terminal?

15. What are the only unprintable characters that DISPLAY FUNCTIONS
    mode does not display?


Answers:

1. DEL/3000

2. Deputy Secretary of Defense, 1969-1971

3. House of Parliament

4. 19447 Pruneridge, Cupertino, CA

5. A remote database access file

6. PURGE, CLONE, PRIV, CLEAN, VUF

7. 3

8. DBCONV, DBDRIVER, DBDUMP, DBRECOV, DBSCHEMA, DBCHANGE

9. A QUERY procedure

10. Bytes 3 through 7 of the status array set to the version number
    of the intrinsic -- this works for all DB intrinsics

11. ENQ/ACK

12. It was an APL terminal

13. The message "My mind is going..."

14. The DISPLAY FUNCTIONS light starts blinking -- you're in MONITOR MOD

15. NUL, ENQ, DEL


                             TRIVIA TIME
                      by Eugene Volokh, VESOFT
                   SCRUG Communicator, Feb/Mar 1988.

Questions:

1. Which MPE command would come first in an alphabetical list?

2. Which MPE command would come last in an alphabetical list?

3. Which MPE command has the shortest name?

4. Which intrinsic has the most parameters?

5. Which MPE command has the longest name?

6. What is the maximum size of a file?

7. What is the only privileged non-database file supported by HP?

8. Which MPE commands can only be executed by the file's creator?

9. When :LISTF shows a file as having file code "KSAM," what is
   the numeric value of the file code?

10. Name one FOPEN parameter that cannot be overridden with a
    :FILE equation.

11. What is the product number of pre-MPE/XL MPE?

12. Which special -- printable, non-alpha, non-numeric -- characters
    have NO meaning in any MPE command?  Name five.

13. What was the full name of the A-MIT operating system? B-MIT?  C-MIT?

14. How many Kbytes of memory was the maximum on the first HP3000?

15. What were the original "lab" number and name of the Series 64?


Answers:

1. ABORT

2. WELCOME

3. IF, UP

4. FGETINFO, 20 parameters

5. DELETESPOOLFILE

6. 65535 * 32 sectors = about 2 million sectors = about 500 megabytes

7. MEMLOG.PUB.SYS, code -1234

8. RELEASE, SECURE, RENAME, ALTSEC, BUILD, SAVE

9. 0

10. You may not override the FOPTIONS "disallow file equations"
    bit or the number of user labels; you may not specify EXECUTE
    aoptions or a negative file code

11. 32002 or 32033 (one is for the Series II and III, the other for
    HP-IB machines)

12. ^, _, [, ], {, }, \, `, ~, `` (! is used for indirect STORE;
    % introduces octal numbers; # is used for specifying DS devices;
    & is the command continuation character; - is used in STORE and
    SETJCW; + is used in SETJCS; ( and ) are used in :IF and other
    commands; : is used in :EOF, :ALTSEC, etc.)

13. Athena, Bruno, Cheetah

14. 128 Kbytes, 96 Kbytes minimum

15. 55, Gemini


                             TRIVIA TIME
                      by Eugene Volokh, VESOFT
                SCRUG Communicator, Dec 1987/Jan 1988.

Questions:

1. Name two strings that the :SEGMENTER subsystem can prompt you
   with; for extra credit, name the third.

2. Name three non-file-system intrinsics whose names start with "F."

3. Name one file system intrinsic -- one which is documented in the
   File System manual and whose job it is to operate on files --
   that doesn't start with F.

4. Name one file system intrinsic that does not take a file number as
   a parameter.

5. What is the only MPE command that requires PM capability?

6. What documented options of the FOPEN intrinsic require privileged mod

7. What is the only intrinsic documented in the Intrinsics Manual
   that can only be called from privileged mode?

8. What are the 8 fields of the system status register?

9. What 4 things are stored in a normal stack marker?

10. What are the system-defined files (the ones prefixed with a "$")?

11. What is the name of the MPE procedure whose job it is to crash
    the system?

12. The :STREAMS device should be configured as one of what two
    kinds of devices?

13. Name five MPE commands -- not counting :HELLO, :JOB, :DATA or
    those that run programs -- ask for input?

14. Which intrinsic has the shortest name?

15. Which intrinsic has the longest name?


Answers:

1. The usual prompt is "-"; the -HELP command prompts with a ">";
   when you continue a :SEGMENTER command with a "&", SEGMENTER
   prompts with a "--"

2. FATHER, FINDJCW, FMTCALENDAR, FMTCLOCK, FMTDATE, FREEDSEG,
   FREELOCRIN, FINDPMAPNAME, FINDPMAPADDR

3. PRINTFILEINFO

4. FERRMSG, FINTEXIT, and FINTSTATE

5. DEBUG

6. Opening a file for EXECUTE access, specifying a negative
   filecode, and opening a non-message file with NOWAIT access

7. SWITCHDB

8. M = privileged/user mode, I = interrupts on/off, T = traps on/off,
   R = righthand opcode pending (used when executing an instruction
   that contains two opcodes), O = overflow detected, C = arithmetic
   carry, the condition code, and the current segment number

9. The X register, the P register (return address), the status
   register, and the delta-Q offset

10. $STDIN, $STDINX, $STDLIST, $NEWPASS, $OLDPASS, $NULL

11. SUDDENDEATH

12. Tape or Card Reader

13. ASSOCIATE, DEBUG, HELP, PTAPE, PURGEACCT, PURGEGROUP, PURGEUSER,
    REDO, REMOTE, SPEED, STREAM, WELCOME

14. WHO or GET, a DS/3000 intrinsic

15. FDEVICECONTROL or possibly PRINT'FILE'INFO -- PRINT'FILE'INFO is
    documented without quotes in the MPE Intrinsics Manual, but with
    quotes in the File System Manual


                 SCIENTISTS DISCOVER FUNNIEST NUMBER
                       by Eugene Volokh, VESOFT
           Published by SCRUG Communicator, June-Sep 1989.


MADISON  (UPI) -- Scientists at the  University of Wisconsin have just
announced  the  discovery  of  what  they  claim  to  be  the  world's
funniest number.

Using   33   hours   of   computer  time  on  the  university's  ENIAC
supercomputer,   Drs.  Harold  Cohen  and  Jack  Sampson  reached  the
conclusion of what has become for them their life's work.

"It is  rare that science can have  such a direct, favorable effect on
our  daily  lives,"  said  Dr.  Cohen, an ugly, short  man with a skin
condition.  "You  don't have to have  an advanced degree to appreciate
our  number  -- every man, woman, or  child in the world who possesses
some  basic mathematical skills will find it entertaining. In fact, it
can  be  mathematically  proven  that there is  no number funnier than
ours".

The  number  is  not  just a simple digit, Dr.  Cohen said in a recent
interview,  but a so-called "irrational" number, which has an infinite
number of digits, never repeating itself. "That way," said Cohen, "the
fun never ends." Apparently it takes about the first hundred digits to
get in the mood, and then it just gets better and better.

Some of the graduate students who were recently exposed to this number
reported  that it took a conscious   effort of will to tear themselves
away  for such basic necessities as food, drink, and personal hygiene.
"This  is, unquestionably, the most exciting and entertaining number I
have seen in my life," said an unidentified student.

Still, there  are  some  skeptics.  Dr. Friedrich  Schmidtt of Florida
State  University  (Pensacola)  believes  that  better results  can be
obtained  by  using hexadecimal (base 16),  "where you can play around
with letters and all that."

Wendy Pierce, of the American Comedians' Association, doubts that even
the  most  sophisticated  of  today's computing devices  can rival the
talent  of human performers. "I've seen  the number," Ms. Pierce says,
"and  I  don't think it's all that great.  I mean, it's OK, but I just
don't  think  it  can  top,  say,  Robin  Williams on one  of his good
nights."

Sampson  and Cohen, however, are unperturbed. They firmly believe that
the  number  (which  they  hope  will be adopted  by the International
Mathematical  Society as a new mathematical constant, called F) can be
understood  and appreciated by laymen, and claim that their detractors
"are  probably just stupid or something."  They  have formed their own
company  to  market  their  product;  UCLA  "laugh therapist"  Norman
Cousins is rumored to be negotiating for the right to stitch the first
3,127  digits  of  the number into his  underwear, and other deals are
underway.  The good  doctors are definitely dreaming big. "I can see a
full   feature-length  movie  based  on  this  thing,"  says  Sampson.
"Television specials, T-shirts, postcards, coffee mugs -- there's just
no stopping us."


                          SOFTWARE LIFECYCLE
                       by Eugene Volokh, VESOFT
           Published by SCRUG Communicator, June/July 1988.


DEVELOPMENT CYCLE:

D1.   Problem  exists,  as  yet  unidentified.   A  feeling  of  Vague
    Dissatisfaction.

D2.  Identification  of  problem.   What didn't the  guy who wrote the
    system identify this problem himself?

D3.  Divine Inspiration.  The solution is found.  A feeling of Immense
    Self-Satisfaction.  Intent to start coding immediately.

D4.  Coding starts (approximately six  month later).  Feelings of Pain
    and Regret.

D5.  Coding finishes.  Feelings of  Contentment and Relief.  Intent to
    start documentation immediately.

D6. Documentation postponed indefinitely.

D7. Product released, maintenance cycle begins.


MAINTENANCE CYCLE:

M1.  An alleged bug allegedly reported  by an alleged user.  A feeling
    of  Stunned  Incredulity.   "Who  does  this  user  think  he  is,
    slandering my program?"

M2.  Bug  duplicated.   A feeling of  Total Befuddlement.  "This isn't
    supposed to happen!"

M3.  Bug  found,  and  it's  an awfully dumb one.   A feeling of Awful
    Embarrassment.

M4. Go to step 1.


Eugene Volokh is Vice President of R&D at VESOFT, Inc.


                        HACKER's HOROSCOPE
                     by Eugene Volokh, VESOFT
                Published by VENEWS, 3rd quarter 1990.


  ARIES (March   21   -   April  19)   You  have  a  fiery,  sometimes
uncontrollable  temper,  but  people  find you exciting  to be around.
Your  code is always fast, but  usually doesn't work right.  Check the
MOVE statement in your code at line 427 -- there's a bug in it...
  TAURUS (April  20  -  May  20)   You  are the  official HP corporate
automobile.  Your door is ajar.
  GEMINI (May  21  -  June  21)  You are  charming, well-adjusted, and
popular.   This, of course, means that you can never be a true hacker.
Get the new 3000/982 as soon as it comes out.
  CANCER (June  22  -  July  22)  You  are  slow,  but  methodical and
tenacious.   Your   code   generally   works   quite  well,  but  your
documentation  can  use tightening up.  Use  the FCONTROL intrinsic as
frequently as possible; it will bring you luck.
  LEO (July  23  -  August  22)  You  have a  magnetic personality and
frequent  bursts of insight; however, you  cannot, for the life of you
remember  what  the foptions and aoptions  bit settings are, and waste
valuable  time searching through the  manual. Remember, %420 means "MR
NOBUF".
  VIRGO (August   23  -  September  22)   You  have  an  unpredictable
disposition (sometimes ;SAVE, sometimes ;TEMP), but people are willing
to  put  up  with  you because you know how  to write  /WHILE loops in
EDITOR.   Be  sure  to  clean  up all your  K-files before you go home
tonight.
  LIBRA (September 23 - October 23) You have a well-balanced character,
and  weigh  things carefully.  You like  to scale mountains, and solve
equations.  You  walk around wearing a  blindfold.  Believe it or not,
some people won't get this.
SCORPIO (October 24 - November 21)  You have a knack for finding the
optimal  solution  under most circumstances,  but sometimes invest too
much  time  in  hopelessly difficult projects.  Your favorite variable
names  are "FOO" and "BAR", and you probably have a file in your group
called "XYZZY".  Purge it; it's wasting valuable disc space.
  SAGITTARIUS (November  22  - December 21)  You like programming, but
feel  that there's something deeper  that  you must do with your life.
Some  day, you will quit and open a hang-gliding school in Hawaii. You
frequently  declare  your  arrays to be too  small, but, hey, what's a
bounds violation among friends?
CAPRICORN (December  22  - January 19)  Did you know that this means
"goat"?  Frankly, I'd rather be a goat than a fish any day or a crab.
  AQUARIUS (January 20 - February  18) You are sensitive, considerate,
and  introverted.   Your  programs  always print  understandable error
message,  but you don't go out of your way to help the user. Beware of
integer  overflows,  and always check  condition codes after intrinsic
calls.
PISCES (February 19 - March 20)   You believe that the stars rule your
life,  and  organize  your actions by what  you read in the horoscope.
Astrology  gives  answers  to  the  great  questions  of life,  and is
especially   useful  to  computer  professionals.   People  who  write
horoscopes  are your friends, and  should be trusted implicitly.  Your
programs  will never again abort if you  only send a check for $995 to
VESOFT,   Department  of Celestial Software, 1135  S. Beverly Dr., Los
Angeles, CA 90035, USA.

Go to Adager's index of technical papers