EXTERNALROUTINESPEC DDELAY(INTEGER secs)
EXTERNALROUTINESPEC PROMPT(STRING(15) s)
EXTERNALROUTINESPEC NOTIFY(STRING(255) who what)
EXTERNALROUTINE HAUNT(STRING(255) dummy)
  INTEGERFN REM(INTEGER NUM,DEN)
     RESULT=NUM-NUM//DEN*NUM
  END
   CONST INTEGER max victims = 10
   CONST INTEGER max messages = 303
   CONST INTEGER minutes = 1
   STRING(15) ARRAY victim(1:max victims)
   INTEGER proc no, num victims, this victim, times, delay, max times
   INTEGER selected
   OWNSTRING(31) blurb
   STRING(15) proc name
   delay = 2
   max times = 60 // delay * minutes         ;! One minutes worth...
   CONST STRING(22) ARRAY message(0:max messages) = C
      "We hates Pascal!!!" (8),
      "Weeble",
      "SYN SYN SYN NAK",
      "SYN SYN SYN ACK",
      "SYN SYN SYN WABT",
      "(CADDDDDADADADADR X)",
      "*device timeout",
      "%CLI-W-INSFPRM",
      "MAKE 'FRED :JIM",
      "Hack an Ent today",
      "**HOST DOWN",
      "PASCAL: No Thanks",
      "Supermac is Back.",
      "Vangelis isn't Dutch",
      "DTE -> DCE SARM F (B)",
      "3-space indentation??",
      "CHR(7) - rings a bell?",
      "Gimme back my 10p!!",
      "A Masochist on a diet?",
      "Turn the tape over..",
      "Have an index card.",
      "Device type:",
      "Its frothy man.",
      "Quine-McWHO????",
      "Try chasing the dream.",
      "Tangram Time!",
      "Hi there Stan",
      "Sod ML (attrib [MID])",
      "HALT INST EXECUTED",
      "ISYS80 V3.17",
      "WSLXVANMAT for pres.",
      "R0 = 00000804",
      "Symbolic stack dump:",
      "@173000G",
      "This must be Thursday?",
      "What a party...",
      "Confirmed.",
      "Right? ... Check!",
      "$ SET NOCONTROL_Y",
      "Noohoosferra Burzi??",
      "Welcome to VAX/VMS v^O",
      "Mostly Harmless...",
      "VAX user service resu",
      "prepare to die",
      "Ecce Ecce F'tang",
      "page owner violation",
      "We wants a shrubbery",
      "European or African??",
      "Can I have a synopsys?",
      "Kohilla Kohilla Splugh",
      "Conversing...",
      "%PAS-F-CASSELBOU",
      "Baroque is Beautiful",
      "WSLXVANMAT",
      "**END**",
      "Heeee-Haw.",
      "Kirk to Enterprise...",
      "Zot!",
      "You must be joking",
      "[] : *a list",
      "false : bool",
      "47 : num",
      "- : elephant",
      "[-;-] : butterfly list",
      "You need more monkeys.",
      "Have a gorilla..",
      "Have a chocolate frog.",
      "->@putslice(1:0,fred)",
      "POSITIVE shields!!!",
      "WHAT WHAT WHAT WHAT??",
      "what what What WHAT??",
      "addr(253)",
      "* Form          |",
      "SWITCH,SWITCH,SWITCH",
      "TICK,TICK,TICK,TICK",
      "string(addr(p_p1))=""""",
      "Failure: m0",
      "Mind if I smoke?",
      "External missing",
      "Int:.",
      "BDBDBD Hi there, Buck.",
      "0000 *a*",
      "0 files",
      "Hi there, Steve.",
      "Cif:",
      "Weebles wobble.",
      "Stopped.",
      "You Have Mail.",
      "Play it again, Sam.",
      "Play it again, Sid.",
      "You have been Warned.",
      ">%c",
      ">(l0(f1/!/l40¬f/!/)0)0",
      "Apologies accepted.",
      "Push the button, Max.",
      "Try Oiling it.",
      "Caimbridge, caimbridge",
      "Dont Panic. Dont Panic",
      "Coffee time...",
      "Time to feed the alien",
      "Complexity = O(nlog(n)",
      "Disk reversal error.",
      "PDS is on the bridge",
      "PSR has been and gone",
      "We'd better call Stan.",
      "Sid is innocent!",
      "Oh no, not again.",
      "Beep-beep.",
      "Page Page Page",
      "Swap Swap Swap",
      "Oh, Good grief",
      "Get the Purple One",
      "Put it in the curry",
      "Rooner Spools OK",
      "Slide rules OK",
      "Dyslexia rules KO",
      "Queen rules UK",
      "Apathy might rule OK",
      "Cannot open input.",
      "%SYSTEM-F-ABORT,abort",
      "NO.",
      "Phasers locked on.",
      "Shields are now dead.",
      "*indentation       |",
      "No more room in cube",
      "Filename:",
      "Invalid Password.",
      "SET [ DEAD ]",
      "SET [ **EOT** ]",
      "My brain hurts",
      "*T .BG;CA",
      "Reel..Zot..Clamp",
      "Trund!!",
      "Beware of the Trund",
      "Illegal opcode",
      "Dont even Bother",
      "WET PAINT",
      "** CONSOLE FAILURE",
      "** OUTPUT LOST",
      "Are you sure ?",
      "Delete?",
      "** Too many externals",
      "Host:v",
      "Number 149",
      "Rivet. Rivet.",
      "Try typing <return>",
      "Type Q to quit",
      "SYN SYN SYN RABBIT",
      "%diagnose 2<<14+255",
      "//EXEC FORT",
      "Beam me up, Scotty!!",
      "Glad to be of service.",
      "Tap out the code....",
      "Wretched, isn't it?",
      "MCR>PIP *.*;*/DE",
      "X.IMP deleted",
      "...a collum matrix...",
      "PHUT-THINK-CLICK",
      "%endofprogramme",
      "1 statements compiled",
      "Coojagoa Burzi??",
      "I/O Silver.",
      "OKOKOKKO @",
      ".LT1 *A*",
      "Hello lift",
      ".KJOB",
      "your days are numbered",
      "** CRASH IMMINENT",
      "Wargle Wargle",
      "57 varieties",
      "_OPA0: ""Backup",
      "Regardez, gentlemen..",
      "What, pray tell??",
      "So what, Mark?",
      "Fiddle-de-dee",
      "42",
      "Forty-Two",
      "42=7*9",
      "RND(X) = 17 for all X",
      "xxx~~~//][()?",
      "Live long and prosper",
      "Pass your maths, guyyz",
      "Space, it says, is BIG",
      "We've got you covered",
      "NEGATIVE shields.",
      ">M-*k*;%c",
      "Chewbacca is cuddly",
      "Apathetic bloddy panic",
      "Metaphysical Imagery..",
      "I'm running out of Ink",
      "BNAG!!!!!",
      "HNAG!!!!!",
      "Fs link HNUG?",
      "CODE+GLAP+DIAGS=0",
      "** corrupt diags",
      "** diagnostics looping",
      "**execution error:ille",
      "** Segment error",
      "LIB - *FATAL*",
      "Edwin error 14.",
      "[0 XACTIONS AFFECTED]",
      "I am lying.",
      "Coruscate, coruscate",
      "Geezanarra DECtape",
      ".(",
      "Type YES to continue",
      "SAY ""XYZZY""",
      "SAY ""PLUGH""",
      "Clams got arms!",
      "Clams got livers!",
      "*CRASH*",
      "FRED OBJ not on DT2",
      "Alarm set for 08:00",
      "The Bells....",
      "*** Spelling errur",
      "* Processor head crash",
      "mouldy breadboard err",
      "sliced breadboard err",
      "greasy chip error",
      "Resistance is Useless!",
      "Production rules OK",
      "ZZZZZZZZZZzzzzzzzz....",
      "Merde alors",
      "Foute-moi le camp!",
      "Scheiss ab!",
      "Va t'en faire baiser",
      "Pisse-toi, salaud!",
      "`X' (attrib Schulze)",
      "----------------------",
      "PASCAL is good AS CLAP",
      "Zaphod's just zis guy.",
      "Dis is vot ve find....",
      ".BLISS is ignorance",
      "Pickle a squirrel",
      "Eat a beaver",
      "We hates it...",
      "Ian was here",
      "TANSTAAFL",
      "Elbereth",
      "Haunting you is fun...",
      "You need another quote",
      "EEEEXXXXXcellent !!",
      "HAUNT HAUNT !!",
      "TJ's for BMs OK!",
      "Sauron Lives",
      "Zap a Balrog - TODAY",
      "Its a FEATURE!!!",
      "I shall return...",
      "Let us pray",
      "%MOUSES-I-HI_THERE",
      "Ho, Hummmmmm",
      "Have a nasty day!",
      "I WANNA COOKIE!!!",
      "Share and enjoy",
      "P_dsno = P_ssno+17",
      "Suicide is painless",
      "Laura rules!",
      "Polly wants a biscuit",
      "It's the rugby club",
      "Time for moussaka",
      "%SLART-E-BARFAAST",
      "I'm a FORTRAN man!!!",
      "Nibble a happy warthog",
      "T. Dream time!!",
      "Ve are ze robots!!",
      "yojne dna erahS",
      "FrreeeyyyOOOWWWW!!!",
      "Structured BASIC ????",
      "%Rms-e-korsakoff",
      "NOPR-ERR",
      "Clams got legs!!!",
      "Wheeeeeeeeeeeee!!",
      "EM Char in stmt",
      "Mouses rules OK",
      "IMP yourself today",
      "Hi there",
      "Yummmmmmmmm",
      "Mouses rules OK",
      "Have a nice day!",
      "Friend or foe???",
      "EMAS is great (honest)",
      "%MTHLIB-E-FLOOVEMAT",
      "Another silly message",
      "As you wish, so be it.",
      "You may call me Mazda.",
      "Groovy, man.",
      "%control K'101011'",
      "PROCESS RUNNING",
      "movl #^xDEAD, r0",
      "movl #^xB00B, r0",
      "Filestore down til 11",
      "Error: ';' expected",
      "Another layer of metal",
      "You have mail from SM",
      "TEXT FOR F?",
      "AV nowhere to be found",
      "BDKH:BAD SEGMENT"
   INTEGER FN random messno
      OWN INTEGER k1 = 0
      INTEGER k2
      CYCLE
         k1 = (k1*125 + 1) & 16383
         k2 = IMOD(k1)
         k2 = REM(k2,max messages+1)
         RESULT = k2 IF 0 <= k2 <= max messages
      REPEAT
   END
   IF dummy="" THEN START
      num victims = 0
      PROMPT("Victim:")
      WHILE num victims <= max victims CYCLE
         proc name = ""
         SKIP SYMBOL WHILE NEXT CH <= ' ' AND NEXT CH # 25
         EXIT IF NEXT CH = 25
         WHILE NEXT SYMBOL # NL CYCLE
            proc name = proc name . TO STRING(NEXT SYMBOL)
            SKIP SYMBOL
         REPEAT
         EXIT IF proc name = ".end" OR proc name = ".END"
         num victims = num victims + 1
         victim(num victims) = proc name
      REPEAT
   FINISH ELSE START
      victim(1) = dummy
      num victims = 1
   FINISH
   CYCLE times = 1, 1, max times
      D DELAY(delay)
      CYCLE this victim = 1, 1, num victims
         selected = random mess no
         NOTIFY(victim(this victim)."""".message(selected))
      REPEAT
   REPEAT
END
ENDOFFILE