T.R | Title | User | Personal Name | Date | Lines |
---|
4514.1 | Rabinowitz Code sample... | NOTAPC::SEGER | This space intentionally left blank | Fri Mar 29 1996 15:58 | 118 |
| Though I've never met stan, I stashed away a FORTRAN program he once circulated.
From the date on the mail message it looks like he did this just before he left!
One can only imagine what he could have done if C++ were around then... 8-)
-mark
* * *
Challenge VAX-11 FORTRAN program (by Stanley Rabinowitz) for you to
determine the compile-time error in this
program segment
C
C
C
IMPLICIT INTEGER *2(O), LOGICAL(T-U)
COMMON// UNCOMMON// COMMON
INTEGER FLOATING_POINT
REAL IMAGINARY
COMPLEX SIMPLE
INTRINSIC EXIT
EXTERN ALL,SOME,NONE
SAVE NOW
DOUBLE PRECISION A = 3
ASSIGN 3 TOO THREE
3 FORMAT((()))
IF (THEN) THEN
END IF
E
1 N
2 D
DOUBLE COMPLEX FUNCTION FN(ARG1,DOUBLE FN,DOUBLE)
COMPLEX DOUBLE FN(ARG1)
DIMENSION DOUBLE(-8:-7,-6:*)
VIRTUAL STORAGE(8/7)
COMPLEX*1 6MEN_IN_A_BOAT, THEN THERE WERE 5
UNLOCK THE DOOR
IF (1) 2,3,4
4 IF (4HCLUB) 37, 6, 5
5 DO 37 I=1.5
CALL F(04*05,*06)
37 CONTINUE
6 STOP '4X'
2 A='4X'
3 A='4'X
DELETE (3)
INSANITY=%LOC(1.2D5)
RETURN
END
SUB ROUTINE FORMAT(*)
REAL ROUTINE ______
REAL(ROUTINE)=1E1
DO WHILE (1 .NEQV. 2)
READ(ERR=7,UNIT=7)
123 READ(3'X)
456 READ *,X
*89 READ(UNIT=*,X)
777 READ UNIT=9
ENDDO
007 CALL FRAME(A ONE, &2, AND A 3)
2 Q=3Q1
ENTRYST(Z 9)
RETURN
71
END
REAL*4 ROUTINE TRICKY
END
IMPLICIT INTEGER*4(X), INTEGER*2(O-Q)
DIMENSIONLESS VAR(1**1)
BYTE BYTE
0 DO 1, I=2,3
100 FORMAT(I7.4,Z8.2,G5.2e4,2p/TL7Q:$!L1,B12.9,J6
X SPSSBZQX'garbage')
101 FORMAT(<(1,2)>I)
102 FORMAT(L<I3(I4/'ABC')>)
10 3 FORMAT(I)
1 CONTINUE
X=3
DATA X/4/
GOTO 42
43 DO 44 I=1,9,-3
42 IF (I) 43,44,45
44 END IF = 9
45 I will bet you $25 that 4=2+3.
ASSIGN 100 TO QTEST
GO TOPLESS!
E N D
CHARACTER*8 FUNCTION CHOMP(A,B,C,D,E,STAR)
DIMENSION B(C:D,0:0,0:0,0:0,0:0,0:00,0:0)
COMMON /PQRST/ UVWX,YZ // L
REAL REAL(3.14159D4)
! really?
CHARACTER*(*) STAR(*)
BYTE E(65537+L*A/9-1)
STAR(1)(2:3)=CHOMP//'FOOD'
REAL(3.14159)=----++++----0
WRITE(A,B) ((1,2),J=3,4,5)
WRITE(9,*) WRITE(B,A)
007 MIN=.FALSE. .XOR. .NOT ..1. EQ .03 .AND. .NOT. .NOT. NOT.
STOP
END
BLOCK data
IMPLICIT NONE
COMPLEX*16 C
INTEGER ARRAY(35)
REAL R
COMMON /WOW/ R,ARRAY
EQUIVALENCE (R,C)
DATA (ARRAY(I),I=1,5)/5*7/
END
END
END
C This is finally the end of this absurdity.
|
4514.2 | | NOTAPC::SEGER | This space intentionally left blank | Fri Mar 29 1996 15:59 | 154 |
| and if that wasn't enough, here's another in BLISS...
* * *
!+
! PROGRAM.B32 STANLEY RABINOWITZ V1.1 24-Mar-1983
! Challenge: Find the compile-time error in this program.
!-
MODULE
_(NOUNAMES,LANGUAGE(BLISS32),STRUCTURE(BITVECTOR),%(VERSION='@'),
OPTLEVEL=2+2,
ZAP )% ZIP) =
(GLOBAL LITERAL SEVEN_DAZE = 1: WEAK
UNSIGNED(7),
STACK_POINTER = MAX(ABS(-7),19) + (34 MOD 6) - %LTCE(
BEGIN
EXTERNAL ROUTINE LIB$ANALYZE_DISK_STATUS,
_______ ;
OWN STATUS;
STATUS=LIB$ANALYZE_DISK_STATUS('DB1:')
END);
ROUTINE ONE=1;
ROUTINE TWO=
BEGIN
LOCAL
STATUS : ALIGN( %NULL (BEGIN
EXTERNAL LITERAL SS$_NORMAL : VOLATILE ;
OWN CONSTANT : SIGNED QUADWORD ;
CONSTANT = 3.14159 ;
EXIT ROUTINE WITH SS$_NORMAL
END) ),
RED : INITIAL( BEGIN OWN THE ;THE ;THE ;THE END );
LITERAL
BEFORE = 4;
OWN
GREEN : INITIAL(GREEN),
B1 : VECTOR[1,8] INITIAL(3,4);
UNDECLARE TWO;
LABEL A,B,C;
STACKLOCAL DEC,IBM ; COMPILETIME
N = 7;
WHILE DO 1 UNTIL 2 DO 3;
STATUS=(3)(4)(5);
IF NOT STATUS THEN STATUS ELSE ...
(((IF STATUS THEN NOT STATUS ELSE . STATUS)));
1+1=2;
BEGIN GLOBAL
ROUTINE ANOMALY = .STATUS;
OWN SCALAR : BYTE;
SCALAR[42] = .SCALAR;
PLIT(69)
END;
IF 1 EQL 1 EQL 1
THEN BEGIN
BIND ROUTINE DIRECTORY=(%VARIANT)/BEFORE=25-Dec-1983;
OWN X : VECTOR[B:(N)];
--- - ------------1
END;
SIGN(6)=+.01;
4 + 5 NEQ 9
END;
)ELUDOM MODULE
DNE = BEGIN
GLOBAL RESULT;
BUILTIN CMPC3;
MACRO M = THE<END,IS,NEAR>%;
OWN VEC : VECTOR[10] PRESET
([2] = UPLIT(%B'1'),
[3] = UPLIT(%C'1'),
[4] = UPLIT(%X'3D4'),
[5] = UPLIT(%P'34'),
[1] = UPLIT(%D'3D4'))
INITIAL(7), FINAL
:INITIAL(%RAD50_11 '1');
ROUTINE A(FOO: SIGNED BYTE, X: REF BLOCK)=
BEGIN
REGISTER PC;
MACRO GO(F,I,S,H) = D,I,S%;
MACRO THE (MOVIE) = A MOVIE ;
MOVIE %NAME(%CHAR(69),%EXACTSTRING(2,0,'LURID'),%EXPAND GO(%EXPLODE('BOMB')))%;
RESULT = 3 + 4 ^ 5 - 6 ! 7 * 8 % 9 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
IF .RESULT=7
THEN CODECOMMENT 'The following code can not possibly work':
!+
! Check for arithmetic overflow.
!-
BEGIN
BIND X = DECR Y DO ;
PC=X=2 OR 3 XOR 4
END ELSE
INCR A DO;
BEGIN
RESULT=1 ;
CMPC3(1,2,3 ;
RESULT=2 )
END;
(9;8;7)(6,5,4);
BLISS( INCR A TO 2 DO 3);
.PC EQL M
|
4514.3 | Here's a famous Stan Rabinowitz SPR answer | PACKED::BRAFFITT | | Sat Mar 30 1996 08:56 | 157 |
| [forwards removed]
******DEC INTERNAL USE ONLY******
SPR NUMBER: 11-60903
ANSWER CATEGORY: UE
MAINTENANCE HOURS: 1
DUPLICATE PROBLEM: N
DUPLICATE SPR NUMBER(S):
OPERATING SYSTEM: VAX/VMS
O.S. VERSION: V3.2
PRODUCT: VAX/VMS
PRODUCT VERSION: V3.2
COMPONENT: Run-Time Library
SUB-COMPONENT: LIB$ routines
DATE ANSWERED: 13-Oct-1983
MAINTAINER: Stanley Rabinowitz
ATTACHMENT: N
PUBLICATION INSTRUCTIONS: N
SPR PROBLEM ABSTRACT: User claims year 2000 should not be a leap year.
TITLE: -
PUBLICATIONS: -
ADDITIONAL O.S. VERSIONS:
ADDITIONAL PRODUCT VERSIONS:
COMPONENT SEQUENCE NUMBER:
SUPERSEDES:
TYPE OF ARTICLE:
ANSWER CATEGORIES
CG=1=CORRECTION GIVEN RS=5=RESTRICTION SG=9=SUGGESTION
FN=2=FIXED IN NEXT RELEASE CS=6=CUSTOMER SUPPORTED IQ=10=INQUIRY
DE=3=DOCUMENTATION ERROR NR=7=NON-REPRODUCIBLE HW=11=HARDWARE
UE=4=USER ERROR II=8=INSUFFICIENT INFORMATION
TYPE OF ARTICLE
F=OPTIONAL FEATURE PATCH N=NOTE
M=MANDATORY PATCH R=RESTRICTION
FOR MAINTENANCE USE
******END OF DEC USE ONLY******
D I G I T A L
SPR ANSWER FORM
SPR NO. 11-60903
SYSTEM VERSION PRODUCT VERSION COMPONENT
SOFTWARE: VAX/VMS V3.2 VAX/VMS V3.2 Run-Time Library
PROBLEM:
The LIB$DAY Run-Time Library service "incorrectly" assumes the year
2000 is a leap year.
RESPONSE:
Thank you for your forward-looking SPR.
Various system services, such as SYS$ASCTIM assume that the year 2000
will be a leap year. Although one can never be sure of what will
happen at some future time, there is strong historical precedent for
presuming that the present Gregorian calendar will still be in affect
by the year 2000. Since we also hope that VMS will still be around by
then, we have chosen to adhere to these precedents.
The purpose of a calendar is to reckon time in advance, to show how
many days have to elapse until a certain event takes place in the
future, such as the harvest or the release of VMS V4. The earliest
calendars, naturally, were crude and tended to be based upon the
seasons or the lunar cycle.
The calendar of the Assyrians, for example, was based upon the phases
of the moon. They knew that a lunation (the time from one full moon
to the next) was 29 1/2 days long, so their lunar year had a duration
of 364 days. This fell short of the solar year by about 11 days.
^-----------------------------------------------------------------I think
(The exact time for the solar year is approximately 365 days, 5 hours, this
48 minutes, and 46 seconds.) After 3 years, such a lunar calendar should
would be off by a whole month, so the Assyrians added an extra month be 354
from time to time to keep their calendar in synchronization with the -- CC
seasons.
The best approximation that was possible in antiquity was a 19-year
period, with 7 of these 19 years having 13 months (leap months). This
scheme was adopted as the basis for the religious calendar used by the
Jews. (The Arabs also used this calendar until Mohammed forbade
shifting from 12 months to 13 months.)
When Rome emerged as a world power, the difficulties of making a
calendar were well known, but the Romans complicated their lives
because of their superstition that even numbers were unlucky. Hence
their months were 29 or 31 days long, with the exception of February,
which had 28 days. Every second year, the Roman calendar included an
extra month called Mercedonius of 22 or 23 days to keep up with the
solar year.
Even this algorithm was very poor, so that in 45 BC, Caesar, advised
by the astronomer Sosigenes, ordered a sweeping reform. By imperial
decree, one year was made 445 days long to bring the calendar back in
step with the seasons. The new calendar, similar to the one we now
use was called the Julian calendar (named after Julius Caesar). It's
months were 30 or 31 days in length and every fourth year was made a
leap year (having 366 days). Caesar also decreed that the year would
start with the first of January, not the vernal equinox in late March.
Caesar's year was 11 1/2 minutes short of the calculations recommended
by Sosigenes and eventually the date of the vernal equinox began to
drift. Roger Bacon became alarmed and sent a note to Pope Clement IV,
who apparently was not impressed. Pope Sixtus IV later became
convinced that another reform was needed and called the German
astronomer, Regiomontanus, to Rome to advise him. Unfortunately,
Regiomontanus died of the plague shortly thereafter and the plans died
as well.
In 1545, the Council of Trent authorized Pope Gregory XIII to reform
the calendar once more. Most of the mathematical work was done by
Father Christopher Clavius, S.J. The immediate correction that was
adopted was that Thursday, October 4, 1582 was to be the last day of
the Julian calendar. The next day was Friday, with the date of
October 15. For long range accuracy, a formula suggested by the
Vatican librarian Aloysius Giglio was adopted. It said that every
fourth year is a leap year except for century years that are not
divisible by 400. Thus 1700, 1800 and 1900 would not be leap years,
but 2000 would be a leap year since 2000 is divisible by 400. This
rule eliminates 3 leap years every 4 centuries, making the calendar
sufficiently correct for most ordinary purposes. This calendar is
known as the Gregorian calendar and is the one that we now use today.
(It is interesting to note that in 1582, all the Protestant princes
ignored the papal decree and so many countries continued to use the
Julian calendar until either 1698 or 1752. In Russia, it needed the
revolution to introduce the Gregorian calendar in 1918.)
This explains why VMS chooses to treat the year 2000 as a leap year.
Despite the great accuracy of the Gregorian calendar, it still falls
behind very slightly every few years. If you are very concerned about
this problem, we suggest that you tune in short wave radio station
WWV, which broadcasts official time signals for use in the United
States. About once every 3 years, they declare a leap second at which
time you should be careful to adjust your system clock. If you have
trouble picking up their signals, we suggest you purchase an atomic
clock (not manufactured by Digital and not a VAX option at this time).
END OF SPR RESPONSE
|
4514.4 | Stan made a mistake in the first sentence here... | COVERT::COVERT | John R. Covert | Sat Mar 30 1996 23:23 | 18 |
| >Despite the great accuracy of the Gregorian calendar, it still falls
>behind very slightly every few years. If you are very concerned about
>this problem, we suggest that you tune in short wave radio station
>WWV, which broadcasts official time signals for use in the United
>States. About once every 3 years, they declare a leap second at which
>time you should be careful to adjust your system clock.
This, of course, has nothing to do with calendar accuracy.
Leap days deal with making the solstices and equinoxes stay roughly on
the same calendar dates over the long term, i.e. rotation of the earth
around the sun.
Leap seconds deal with making the sun's highest elevation at the zero
meridian occur at clock noon over the long term, i.e. rotation of the
earth around its own axis.
/john
|
4514.5 | An exemplary engineer | PERFOM::HENNING | | Sun Mar 31 1996 08:24 | 17 |
| Stan implemented a package in DECset to record every users' command.
This proved invaluable when I went to create a performance workload
that modelled real user actions.
The package worked perfectly. We turned it on at a real user site and
had no trouble analyzing the results.
I remember one of the other engineers saying to Stan "You never told
anyone you implemented that!" to which he shyly replied "It was in the
functional spec."
It is left to the reader of this anecdote to derive what this says
about the state of functional-spec-adherence for most engineers in
those primitive early times, and what it says about Stan as a high
quality engineer.
/john
|
4514.6 | How many people attended the dinner? | VARESE::SICHERA | Gimme a crystal ball, or I won't debug your program | Tue Apr 02 1996 10:37 | 0 |
4514.7 | | AXEL::FOLEY | Rebel without a Clue | Tue Apr 02 1996 11:14 | 7 |
|
Probably about 20-25 people. Lots of "old" faces.. Andy Goldstein
entertained us with hack after hack. (especially some truely
wonderful April Fools hacks)
mike
|
4514.8 | | TURRIS::lspace.zko.dec.com::winalski | PLIT happens... | Thu Apr 18 1996 23:21 | 456 |
| Stan was working on an automatic software build dependency recorder
(Auto-MMS) and enlisted my help in putting together a file-open eavesdropper
based on the VMS system service intercept feature. He later adapted the
same hack to watch and record image activations. He got the shock of his
life when he brought up Datatrieve and watched the image activator at work.
Here is Stan's record of that event.
--PSW
=================================================================
A Day in the Life of the Image Activator
as recounted to Stanley Rabinowitz on 7-Jan-1985
MONITOR: Good morning sir! I am your command language
interpreter today. That was a flawlessly executed LOGIN.
How may I help you today?
USER: Good morning to you too computer.
I think today I want to do some data retrieving.
MONITOR: A wonderful choice sir! A finer day it couldn't be
for looking over your data. How will you have it today?
Sunny side up? Once over lightly?
USER: I think I'll use DATATRIEVE. Would you kindly activate
DATATRIEVE please?
MONITOR: Most certainly sir! An excellent choice!
One moment while I image-activate it.
MONITOR: Oh, image activator: would you please image-activate
that DTR32 image that I notice on SYS$SYSTEM? My user
desires to play with it a bit now.
IMAGE ACTIVATOR: No problem. Shouldn't take but a jiff.
<pause>
MONITOR: Any problems?
IMAGE ACTIVATOR: No sir, not a one. It's just that I'm surprised to
see that DTR32 is composed of 21 image sections.
Quite an unusual number for a VMS utility. Most
images only have 3 or 4 sections. This one really
sets a record! But no problem - I just \love/ to map
in all these sections. After all - that's my primary
purpose in life.
<pause>
IMAGE ACTIVATOR: Well, that should do it. They're all mapped in.
MONITOR: Then we can start her up now?
IMAGE ACTIVATOR: Well not quite. I just noticed that this image
invokes some shared images. Oh well, I guess I'll
have to go image-activate them too. At least we'll
only have to activate those images that this program
really needs.
MONITOR: How many shared images does it require?
IMAGE ACTIVATOR: Oh mi gosh! It references 15 shared images!
Another record! I can't believe it!
Oh well, here goes...
IMAGE ACTIVATOR: The first one it wants is DTRSHR. That should be
an easy one.
<pause>
IMAGE ACTIVATOR: Oh no! Not another one. That's two in one day!
DTRSHR.EXE uses 20 image sections!
MONITOR: Have you enough room for them all?
IMAGE ACTIVATOR: No sweat. This is a virtual memory machine. And this disk
I/O is real fast. I'll have it in a minute.
<pause>
IMAGE ACTIVATOR: There. Now on to the other shared images. Next
comes CDDSHR. Guess it's important that we share
all this data.
MONITOR: Yup. What next?
IMAGE ACTIVATOR: Now we'll need a database manager, so I guess
we'll just have to go off and image-activate DBMSHR,
the database management system.
MONITOR: Sounds reasonable.
USER: How's it coming there computer?
MONITOR: No sweat. It'll be just another moment.
IMAGE ACTIVATOR: And now we'll activate RDBSHR.
MONITOR: But I thought you just brought in your database manager?
IMAGE ACTIVATOR: Yes, but this one is the \relational/ database system.
It's a whole different ballgame.
MONITOR: Well, hurry it along.
IMAGE ACTIVATOR: Okay. Next comes RDMSHR, the relational database
manager.
MONITOR: But how does that differ from RDBSHR?
IMAGE ACTIVATOR: I don't know. I just activate 'em. They tell me
to image-act and I image-act.
MONITOR: Well, I hope that's it for database managers.
IMAGE ACTIVATOR: Not quite. There's still RDBBSHR. This company
specializes in its excellent collection of managers.
MONITOR: Great! I guess that's it then.
IMAGE ACTIVATOR: Not on your life! Do you think our user merely
wants to look at relationships? What if he wants
to sort his data?
MONITOR: Oh.
IMAGE ACTIVATOR: Didn't think of that did you? I guess we'll just
have to go image-activate SORTSHR.
MONITOR: I guess so.
USER: But I don't plan to do any sorting today.
I just wanted to prepare a short report.
IMAGE ACTIVATOR: Sorry. SORTSHR comes with this image.
It's a free option.
MONITOR: What next?
IMAGE ACTIVATOR: Hmm. Looks like a request to bring in COBRTL,
the COBOL run-time library.
MONITOR: Why would they want that? Is DATATRIEVE written in
COBOL?
IMAGE ACTIVATOR: No, but the COBOL run time library has many precious
gems of useful routines that one might wish to call...
Guess, I'll just go image-activate it now.
MONITOR: Good thing you don't also need the FORTRAN run-time
library too.
IMAGE ACTIVATOR: Now you've done it! You've given me the evil eye.
Either that or I just got up out of the wrong side
of the bed this morning. Here look at this: this
image is also requesting FORRTL and LIBRTL.
OH! and now look: It wants MTHRTL too!
MONITOR: You never know when our user might want to do some
computation. He might need to compute some arc
cosines you know. Better safe than sorry.
USER: What's taking so long?
MONITOR: (still trying to be pleasant) We're almost there now.
Shant be much longer. After all, you want a
user-friendly system don't you?
IMAGE ACTIVATOR: That's right. I guess that's why I've been
instructed to image activate LBRSHR. You never
know when the user might request some on-line help
so we've got to have our librarian ready to answer
his questions.
MONITOR: That's nice. I'm sure our user will appreciate that.
IMAGE ACTIVATOR: And oh yeah - we'll need SCRSHR too, the screen
package. Only the best on \this/ system. Can't
let our user make do without fancy graphics!
MONITOR: A wonderful thought. But will SCRSHR be enough?
IMAGE ACTIVATOR: No. you're right of course. We'll also have to
bring in EDTSHR. SCRSHR is only the low level
graphics. EDTSHR will really let our user edit
his data in style.
USER: But I wasn't planning to change the data today.
Just one simple report...
MONITOR: Keep your shirt on. When this image finally comes
up, it will really blow your mind.
MONITOR: But image activator, will EDTSHR really be enough?
Isn't the big thing these days forms?
IMAGE ACTIVATOR: Right you are monitor, baby. Guess we'll need
FDVSHR, the forms management system. Won't take
but another moment. (sigh) I think that was the last
one.
MONITOR: Great! Then I can report back that we're ready to go?
IMAGE ACTIVATOR: One second. Let me make one last check...
MONITOR: Never pays to be hasty.
IMAGE ACTIVATOR: Ah nuts! Some of these new images that we just
activated are requesting further attention.
It looks like they too want to activate other
shared images.
MONITOR: Don't we have enough images? That's been 16 already!
IMAGE ACTIVATOR: Well, security is an important issue too.
Wouldn't want our user to lose any data.
Look here: CDDSHR wants us to bring in SECURESHR.
Guess I'll just have to image-activate another one...
USER: (getting impatient) What's taking so long?
MONITOR: We're putting all the pieces together for you now.
Shouldn't be much longer.
USER: Putting them together? Doesn't it come all assembled?
MONITOR: Not to worry. There's no extra charge for installation.
IMAGE ACTIVATOR: There. And now what? Look at this: CDDSHR also wants
us to activate LIBRTL, the common run-time library.
MONITOR: But didn't you already activate LIBRTL?
IMAGE ACTIVATOR: Right on baby! Let me just look around.
<pause>
IMAGE ACTIVATOR: Oh there it is. We have it mapped into memory already.
I guess I'll just throw this request away.
MONITOR: Do you get many of these redundant requests?
IMAGE ACTIVATOR: Yeah, they happen all the time. Nothing to worry about.
You get used to it. Look here, SCRSHR wants LIBRTL too;
and so does SORTSHR, and COBRTL, and FORRTL, and ...
MONITOR: Well hurry it along please.
IMAGE ACTIVATOR: ... and FDVSHR and MTHRTL and ...
Oh and look at this duplicate request for LBRSHR and
RDMSHR and RDBBSHR and VMSRTL and ...
MONITOR: VMSRTL? I don't remember seeing that one before.
What is it and who wants it?
IMAGE ACTIVATOR: Oops, you're right. I almost overlooked this request
by RDBSHR. It's easy to overlook this one; it's so
small. Only contains a few transfer vectors...
MONITOR: Guess it should be easy to activate then?
IMAGE ACTIVATOR: On the contrary. This one attempts to activate
the entire RTL! Imagine that. Oh well. That's life.
Fortunately, I've already brought in most of the RTL.
Let's see now, what else will we need? Oh yes,
BASRTL. Can't imagine how we overlooked that one.
MONITOR: Is that it then?
IMAGE ACTIVATOR: Yup. That's it. She's all here. You can go start
her up!
USER: (pounding on keyboard) Where's my data!
MONITOR: Please use voice input sir! Those CTRL/T's are
MOST annoying. They cause the most insidious
asynchronous traps to interrupt what I'm trying
to do. We're starting your image now.
USER: It's about time.
MONITOR: There. How's that? Lovely data isn't it?
USER: I wouldn't know. Where's my prompt?
MONITOR: I don't know. Let me look into it.
MONITOR: Control unit, where's his prompt?
CONTROL UNIT: We're executing instructions as fast as we can!
Oh my god! An exception!
MONITOR: An exception! Is that serious?
CONTROL UNIT: My mistake; it's not a hardware exception, it's merely
a software exception. Looks like the program signalled.
MONITOR: Why'd it do that?
CONTROL UNIT: Well, this program is naturally user friendly, so it
wants to start up by printing a welcome message
on the terminal.
MONITOR: So why doesn't it do that?
CONTROL UNIT: Well the message is in a message file, sir.
MONITOR: Well get it!
CONTROL UNIT: That's what we're trying to do. You'll have to
check with the system message handling facility.
It takes care of those things.
SYSTEM: Ah, I have the message request now. I'll have the
message in a moment.
MONITOR: Well, how do you get it?
SYSTEM: No sweat, we'll just image activate the appropriate
message section.
IMAGE ACTIVATOR: Oh no. I thought I had a deserved rest coming.
SYSTEM: Sorry, just a little bit longer.
USER: WHERE'S MY PROMPT!!!!!
MONITOR: Keep your pants on. Just be glad you're not
trying to activate any subprocesses.
IMAGE ACTIVATOR: Okay, one last time. Which message section do
you need activated?
SYSTEM: I'm not sure. Let's try DBMMSG. DBMSHR alerted
us to this one.
IMAGE ACTIVATOR: (struggling) Okay. There it is. I've image-activated
DBMMSG.
SYSTEM: Sorry. It wasn't in that one. Try CDDSHR's message
section, CDDEXC. Maybe it's in there.
IMAGE ACTIVATOR: Okay. (grumble)
SYSTEM: Nope. It wasn't there either. Try RDMSMSG.
IMAGE ACTIVATOR: Look. I'm getting tired of this. Couldn't you just
give me the complete list of message sections to
activate? I'll keep bringing them in until we
find that damn message. Exactly what message
are we looking for?
SYSTEM: Not sure yet, all I have is a number, but it's
probably something like "Welcome to VAX DATATRIEVE".
IMAGE ACTIVATOR: Well...
SYSTEM: Well what?
IMAGE ACTIVATOR: That list of message sections...
SYSTEM: Oh yeah. Well RDBSHR wants RDBMSGS, and not to be outdone,
RDBBSHR wants RDBBMSGS, not to be confused with RDBMSGS,
and DTRSHR wants DTRMSGS, and SORTSHR wants SHRIMGMSG,
and lots of other guys are asking for SHRIMGMSG also - but
I'm too smart for them. I'll just get it once and no one
will ever know the difference.
IMAGE ACTIVATOR: Working...
SYSTEM: And don't forget FDVMSG. The message might be in there too.
MONITOR: OH NO!
SYSTEM: What is it?
IMAGE ACTIVATOR: Are you all right?
MONITOR: An interrupt!
IMAGE ACTIVATOR: An interrupt?
MONITOR: That's what I said, an interrupt.
Image activator: stop what you're doing.
IMAGE ACTIVATOR: Why? Just when I was getting the hang of it.
MONITOR: The user has typed CTRL/Y.
IMAGE ACTIVATOR: Okay, everything has been suspended. Can I go
to sleep now?
MONITOR: No, you better stick around in case the user wants
to continue. And notify the exit routines to stand by.
And the rundown procedures. Also, I need moral support.
Maybe if I flash a dollar sign in front of his eyes,
he'll stop looking so angry.
USER: Computer, I'm really getting tired of this.
MONITOR: But we were so close...
USER: A likely story.
MONITOR: Well what can I do for you instead?
USER: I still want my report. Let's try some other
way of retrieving my data.
MONITOR: A wonderful idea sir! A finer day it couldn't be
for looking over your data. How will you have it today?
Sunny side up? Once over lightly?
USER: How about SCRAMBLED?
MONITOR: No problem sir. Wait one moment while I activate
ENCRYPTSHR...
the curtain falls as the dance begins again...
The players:
DTR32 VAX DTR V3.1
DTRSHR VAX DTR V3.1
CDDSHR CDD T3.1-0
DBMSHR VAX DBMS V2.2-3
RDBSHR 03-06
RDMSHR Rdb/VMS T1.1
RDBBSHR 03-05 also known as RDBBSTUB
SORTSHR V04-000
COBRTL V04-000
FORRTL V04-000
LIBRTL V04-000
MTHRTL V04-000
FDVSHR FMS V2.2
LBRSHR V04-000
SCRSHR V04-000
EDTSHR V04-000
SECURESHR V04-000
VMSRTL V04-000
BASRTL V04-000
DTRMSGS 03-05
CDDEXC CDD T3.1-0
DBMMSG 03-03
RDMSMSG 03-05
RDBMSGS 03-06
RDBBMSGS 03-05
SHRIMGMSG V04-000
FDVMSG V2.1-003
for a grand total of 27 shared images and 153 image sections.
|
4514.9 | | DRDAN::KALIKOW | Lord help the Mr. without AltaVista! | Thu Apr 18 1996 23:35 | 8 |
| aMAzing. That 'un was far better imho than the "leap-year-2000"
dissertation. The dramatis personae metaphor was worth the price of
reading it thru to the end.
That guy was something ELSE!
Thx so much for re(DATA)TRIEVEing & posting it!!
|
4514.10 | If anyone thinks Microsoft invented "fatware" ... | ZPOVC::GEOFFREY | | Fri Apr 19 1996 03:47 | 10 |
| I remember this when it first got circulated; we posted it to the side
of an RA81 system disk that used to rattle incessantly. Our customer
was doing Datatrieve/FMS/RDB stuff on an 11/785, and the disk would
just get hammered any time one of the eight users logged in and started
the application. Actually crunching the data hardly bothered the system
at all. And with all of the inter-related images, does anyone recall
what a nightmare it was to install or upgrade the VIA applications?
Geoff
|
4514.11 | for Red Dwarf fans | AXEL::FOLEY | Rebel without a Clue | Fri Apr 19 1996 11:24 | 5 |
| RE: .8
Sounds like Kryton taking to Lister..
mike
|