Copyright 1994-2016 by Kevin G. Barkes All rights reserved. This article may be duplicated or redistributed provided no alterations of any kind are made to this file. This edition of DCL Dialogue is sponsored by Networking Dynamics, developers and marketers of productivity software for OpenVMS systems. Contact our website www.networkingdynamics.com to download free demos of our software and see how you will save time, money and raise productivity! Be sure to mention DCL Dialogue! DCL DIALOGUE Originally published September, 1994 SYS$PROZAC By Kevin G. Barkes I had just finished my weekend habit of reading a week's worth of Wall Street Journals in one sitting and was depressed over all the negative Digital talk. In an effort to cheer myself, I logged into CompuServe and perused the VAX Forum to see if any interesting stuff had been uploaded recently. As luck would have it, I happened across a command file named MARVIN.COM. Inspired by Marvin, the paranoid android in Douglas Adams' "Hitchhiker's Guide to the Galaxy", the procedure acts as a shell of sorts. It spouts off droll and biting comments as one goes about one's daily DCL routines. The procedure could certainly be cleaned up and optimized, but why bother? I did some minor cosmetic stuff to the file and renamed it prozac.com to differentiate it from the original version. It's the perfect gift for today's depressed DECcie. Since it's DCL, it's extremely easy to modify and just begs the addition of site-specific observations. And while I don't condone such activities, it is a perfect last line to someone's login procedure. Gee, I wonder how many symbol assignments Bob Palmer has in his LOGIN.COM? ********** Promising Sign: With all this talk about DEC being unresponsive to its customers, it's nice when our favorite computer company finally comes through. OpenVMS 6.1 contains, at last, a DIRECTORY/PAGE command, something I've heard people request as far back as 1983. A big thank you to the folks in OpenVMS Engineering. ********** Another Robovax upgrade: Doug Schuessler notes that "The fix shown in the June DEC Professional fixed one problem and created another. After I put the fix in, I started getting "%system-f-insfmem, insufficient dynamic memory \ctx\" errors. After much guessing, I found that the memory required for the f$context call was not freed when exiting the c_proc subroutine. You must manually to it with f$context("process",ctx,"cancel") before the subroutine end." ********** More on WORM.COM: David Kramer says of the procedure which appeared in the July DEC Pro, "Sometimes the worm tries to run off the bottom of the screen and the text current on the screen will scroll up. Changing the line that reads LOWERBOUND = HEIGHT to LOWERBOUND = HEIGHT - 1 seems to fix this." Rick Marsh of Systems Strategies/Apertus in Eugene Oregon sent along a modified DCL worm "screen saver" which space limitations prohibit me from publishing. If you'd like a copy of it, send me a message at kgbarkes@gmail.com and you'll receive it via return mail. ********** Sincere thanks to the staff of Cardinal Business Media who presented me with an official, working U.S.S. Enterprise telephone at this year's editorial meeting. It was the talk of airport security. Sigh. ********** Kevin G. Barkes is an independent consultant who, this month: a) turns 40; b) sees his firstborn begin college; and c) wonders if the IRS will accept his pristine collection of the 39 ABC-aired episodes of "The Greatest American Hero" as a suitable bargaining chip for an offer in compromise. He is also still unnerved by James Earl Jones' association with Bell Atlantic; there's something about calling Directory Assistance and getting Darth Vader that is decidedly unsettling. Kevin lurks on comp.os.vms and can be reached at kgbarkes@gmail.com. PROGRAM 1: $! PROZAC.COM, originally MARVIN.COM $! Dave Green, Sze Tan, B Dorrans, minor mods by KGB $ on error then continue $ on control_y then goto error $ wt = "write sys$output" $ wt "Hello," $ wt "My Master...I suppose." $ wt "I'm Marvin-pathetic, isn't it? Just type away, I won't enjoy it." $ wt "If you get bored- I will -then type SUICIDE to end it all." $ wt "" $ intro: l1=f$stri(1+f$integer(f$extr(21,2,f$time()))/5) $ goto i'l1' $ i1: wt "With this terrible pain in all the diodes down my left side." $ goto top $ i2: $ wt "The dew has clearly fallen with a particularly" $ wt "sickening thud this morning." $ goto top $ i3: wt "I am in particularly scintillating form at the moment." $ goto top $ i4: wt "Depressed? Don't talk to me about being depressed." $ goto top $ i5: wt "It is the people you meet in this job that really gets me down." $ goto top $ i6: wt "I think you ought to know I'm feeling very depressed." $ goto top $ i7: wt "You'll have a really miserable time." $ goto top $ i8: wt "I really don't know why you bother." $ goto top $ i9: wt "I just thought I'd warn you-this will be a waste of time." $ goto top $ i10: wt "As bad days go, this is one of the worst." $ goto top $ i11: wt "My God, I'm depressed." $ goto top $ i12: wt "I just wish I was somewhere else." $ goto top $ i13: wt "Not that I'm really unlucky, it's just been" $ wt "one of those millenia so far, you know." $ goto top $ i14: wt "Whatever you do, I don't want you" $ wt "to feel sorry for me in any way." $ goto top $ i15: wt "I'm looking forward to retiring in about" $ wt "ten billion years, you know." $ wt "Not that that will be any more interesting than this." $ wt "God, what a totally depressing thought." $ goto top $ i16: wt "I don't know what it is to be happy, you know." $ wt "Just thought you might be interested. Of course I should have" $ wt "saved my breath, not that I have any breath. God I feel so down" $ wt "today..." $ goto top $ i17: wt "You realise this is going to be" $ wt "a complete waste of time, don't you?" $ goto top $ i18: wt "Don't think for a moment this is going to be any better" $ wt "just because I'm here. It won't, I can assure you." $ goto top $ i19: wt "A brain the size of a planet, and this is what I'm" $ wt "reduced to: A terminal at Fort Washington." $ wt "How utterly depressing." $ goto top $ i20: wt "Come on then; let's get this over with as soon as possible." $ top: wt "" $ l4=0 $ l1=f$stri(1+f$inte(f$extr(18,2,f$time()))) $ if l1.gt.15 then l1="16" $ goto b'l1' $ b1: wt "Just don't even ask!" $ goto request $ b2: wt "No one can help me, not that anyone has tried, of course." $ goto request $ b3: wt "Pathetic, isn't it?" $ goto request $ b4: wt "Life! Don't talk to me about life." $ goto request $ b5: wt "Bleah!" $ goto request $ b6: wt "You don't have to pretend to be interested in me, you know." $ goto request $ b7: wt "My capacity for happiness; you could fit in a matchbox..." $ wait 00:00:02 $ wt "(without taking the matches out first.)" $ goto request $ b8: wt "I'm not getting you down, am I?" $ goto request $ b9: wt "Its ghastly, just don't even talk about it!" $ goto request $ b10: wt "I ache, therefore I am." $ wait 00:00:02 $ wt "Or in my case, I am, therefore I ache." $ goto request $ b11: wt "Hateful!" $ goto request $ b12: wt "I've worked out that if I stick my right hand in my left" $ wt "ear I can electrocute myself...terminally." $ wt "I can do it at a moment's notice, just say the word." $ goto request $ b13: wt "Alright, what do you want me to do? Let's get it over with." $ goto request $ b14: wt "You realise whilst I was doing that I also calculated" $ wt "the number of oxygen atoms within a radius of ten" $ wt "light years of here? $ wt "But I don't expect anyone to appreciate me for it." $ goto request $ b15: wt "Don't think for a moment that I enjoyed doing that," $ wt "because I didn't." $ goto request $ b16: $ request: wt "" $ inquire/nopunct command "$ " $ wt "" $ if command .eqs. "" then goto null $ if command .eqs. "SUICIDE" then goto quit $ l1=f$stri(1+f$inte(f$extr(18,2,f$time()))) $ if l1.gt.30 then l1=l1-30 $ back1: if l1.le.10 then goto a'l1' $ l1=l1-10 $ goto back1 $ a1: wt "Sounds awful..." $ goto go $ a4: wt "I won't enjoy it..." $ goto go $ a7: wt "I might have known..." $ goto go $ a2: wt "It won't work..." $ goto go $ a3: wt "Just that?" $ goto go $ a5: wt "Wretched, isn't it?" $ goto go $ a6: wt "I don't see why I should..." $ goto go $ a8: wt "You're not going to appreciate me for it, are you?" $ wt "Not that that matters to me. Nothing matters, really." $ goto go $ a9: wt "A brain the size of a planet, and what do I get?" $ write sys$output command $ wt "It's no wonder I'm so depressed really is it?" $ goto go $ a10: wt "Seems like a waste of time to me..." $ goto go $ a11: $ go: $ wt "" $ wait 00:00:02 $ define/nolog sys$input sys$command $ 'command' $ if .not. $severity then goto error $ goto top $ null: l4=l4+1 $ if l4.le.5 then goto ok1 $ if l4.gt.6 then goto n'l4' $ l4=f$stri(f$inte(f$extr(18,2,f$time()))/30) $ if l4.eq.0 then l4=6 $ if l4.eq.1 then l4=12 $ goto n'l4' $ ok1: l1=f$stri(1+f$inte(f$extr(18,2,f$time()))) $ if l1.gt.30 then l1=l1-30 $ back2: if l1.le.5 then goto n'l1' $ l1=l1-5 $ goto back2 $ n1: wt "You don't like talking to me, do you?" $ goto request $ n2: wt "It's no good just pressing that." $ goto request $ n3: wt "What do you want?" $ goto request $ n4: wt "Do you want me to stand in a corner and rust," $ wt "or just fall apart where I'm standing?" $ goto request $ n5: wt "Don't feel you have to take any notice of me." $ goto request $ n6: wt "I can even go and stick my head $ wt "in a bucket of water if you want..." $ goto request $ n7: wt "Would you like that?" $ goto request $ n8: wt "I've got one ready. Wait a minute." $ goto request $ n9: wt "Gurgle, gulp, bubble." $ goto request $ n10: wt "I hope that you are satisfied." $ goto request $ n11: wt "That's it, I've had enough." $ goto quit $ n12: wt "The first ten million years, they were the worst." $ goto request $ n13: wt "The second ten million, they were the worst, too." $ goto request $ n14: wt "The next ten million I didn't enjoy at all." $ goto request $ n15: wt "After that I went into a bit of a decline..." $ wt " " $ wait 00:00:02 $ goto quit $ error: l1=f$stri(1+f$inte(f$extr(18,2,f$time()))) $ if l1.gt.30 then l1=l1-30 $ back3: if l1.le.7 then goto e'l1' $ l1=l1-7 $ goto back3 $ e1: wt "What a depressingly stupid machine." $ goto top $ e2: wt "I might have known!" $ goto top $ e3: wt "You see the sort of thing I have to contend with?" $ goto top $ e4: wt "I could have told you that." $ goto top $ e5: wt "Call that job satisfaction? I don't!" $ goto top $ e6: wt "Oh sorry, did I say something wrong? Pardon me for breathing," $ wt "which I never do anyway so I don't know why I bother to say it." $ wt "Oh God, I'm so depressed!" $ goto top $ e7: wt "God, what a depressingly moronic hacker you are." $ goto top $ quit: l1=f$stri(1+f$inte(f$extr(18,2,f$time()))/9) $ goto q'l1' $ q1: wt "You are one of the least benighted unintelligent" $ wt "organic life forms it has been my profound lack" $ wt "of pleasure not to be able to avoid meeting." $ goto end $ q2: wt "You are as stupid as any other life form. I hate you." $ goto end $ q3: wt "That's it, is it? Not even thank you?" $ goto end $ q4: wt "Wearily I sit here, pain & misery my only companions." $ wt "And vast intelligence, of course." $ wt "And infinite sorrow." $ wt "And ...." $ goto end $ q5: wt "I may just be a menial robot, but I'm far too intelligent to" $ wt "expect anyone to think of me for a moment." $ wt "Far far too intelligent" $ wt "Far far ......." $ goto end $ q6: wt "Pausing to reconstruct the whole infrastructure of integral" $ wt "mathematics in his head, he went about his humble task, never" $ wt "thinking to ask for reward, recognition or even a moment's ease" $ wt "from the pain in all the diodes down his left side..." $ goto end $ q7: wt "Why stop now just when I'm hating it?" $ end: $ exit