----- The Adventures of System Restriction Underwriter Manager --- Part I - Simon Travaglia (circa ~1986) Look, coming along the UniBus, is it a BugCheck, is it a CHMK? No, it's SRUMAN!! Yes, it's SRUMAN, strange remote access from another system. SRUMAN, with privileges and Quotas beyond those of normal processes. SRUMAN, who came to change the course of nasty DISK ACCESSes. Who, cleverly disguised as the Null process, fights a never-ending battle for Diskquota, Privileges, and the digital way! We begin our story, on Node VEX::, Waikato University (Hamilton, New Zealand), 3:00 am on an ordinary looking morning It was a quiet night on the Userdisk. Too damn quiet. I didn't like it. Someone, somewhere, somehow, sometime, someday, some* was up to something. I decided to cruise the userdisk, looking for a suspicious file header. AAH HAH!!!!! There, at the very end of the indexing file. Pretty suspicious if you ask me. I examined the file id. Sure enough, it was pointing to a very seedy part of the userdisk, known for badblocks and lost files.. I hailed a read head and said I'd give him ten extra blocks if he didn't report the disk access. When I got to the spot I knew I was at the right place. It wasn't the sort of place that a normal process would GOTO alone. I ducked behind a barrel as a couple of random accesses went by. I spotted the culprit straight away. He looked as inconspicuous as an integer in a boolean mask. A nasty looking chap, probably an escapee from a virtual mapping. I brb'd over and asked him what he thought he was doing here. He said he got separated from the rest of his file when they were on a routine rename. I didn't believe a word of it, he was lying, I could read him like an RX02. He must have thought I'd come down on the last revision, Hah! I quickly found the evidence, the file id's pointed straight at him. I read him his rights. "You have the right to remain unread. Should you wish not to remain unread, anything of consequence shall be copied to sys$input and used against you in a set file/truncate." I took him in for questioning. The Userdisk was safe for another day. I waited around for a while, hoping some lonely disk IO might want some company, but it was not to be. It's a lonely life being the saviour of the system, but that's the sacrifice I had to make. One of these days I'd retire to a far corner of a foreign subdirectory and write my memoirs, but for now, life goes on. I was shaken out of my thoughts by a message across the sub-ethernet. There was two wildcards on the loose, having escaped >From a captive account. I was got uneasy when I heard the first name, worried when I heard the second. They were two of the nastiest bugs around. They were carriage return (known to his friends as the TERMINATOR) and his side kick, Line Feed. They were a very bad combination, ending command lines all over the place. With a 'Hi Ho Diskquota' I leaped onto my trusty IOSB. It was an old reconditioned model, but it had a good status indicating plenty of good operations yet. I kicked it into life and roared off past a terminal driver. You had to be real careful with terminal drivers, no respect for life. I waved to a QIOW going the other way before I realised that the return status was all wrong. I spun my IOSB around and floored the Io$mNowait. In seconds I was upon him. A standard Qiow with no modifiers stood no chance against my IOSB. Sure enough, it's two occupants were Line Feed and Carriage Return. I fired a warning HALT instruction across their PCB but they paid no ATTN. Instead, they returned a couple of $EXITs. One hit my IOSB and it slid to a halt against a couple of output buffers. Now I was really angry! I ducked into a friendly basic enviroment and changed mode to Kernel. I then pulled out my submachinepatcher and blasted them into oblivion (NL:) with rapid fire exception vectors. They didn't really stand a chance. *** Once more the System was safe. *** After all that I decided to see Job Control to see if I could get a steady job, still in the public eye, but a little less hazardous. Something like redirecting output or changing passwords. I entered today's events in the logfile and prepared to $HIBER for the night, scheduling a wakeup call for 6:00am. I went to see Job Control real early as he doesn't like to be kept waiting. I'm never late for a meeting with JC, the last person that was late and Job Control forgot about him... Nasty that, out of sight, swapped out of memory. When I got there I put my case before him and The Scheduler. I'm getting too old for this game, it's time some wet-behind-the-input- buffers late version SRUMAN came along to take my place. They needed someone who liked sinking up to there knees in gooey stuff whenever the system had an internal consistancy failure. I hate slops of any sort, but when the system's consistancy fails, it really hits the cooling fan. They listened in stony silence, I knew they were rebuilding up to something. One more job. They wanted me to do one more job! I would have refused instantly, but it was my old arch enemy Bad Blox! He'd been spotted by an Rms$Rundown lounging around the non-paged pool with a couple of young Files. He was good, I knew that much, by the end of the night, he'd have their FAB's and it would be all over for them. I said I'd take the job, but on one condition, I had to have a partner, and I knew just the one I wanted. I'd known my partner to be for ages, he used to run a halfway file for characters who were lost or who had strayed from home. In the morning he'd put them on the unibus and get the driver to take them home. He was a retired army man from the system reserve. I gave General Register a call, and he said he'd be right over. I love it when a plan comes together! General Register came over in less time than it takes to dump SYS.EXE at 75 baud onto an LA120 with a sloppy carriage. Mind you, he was getting old, so I suppose that accounted for it. He'd brought along another old salt with him, Kernel Mode. "It's a priviledge meeting you sir" I said; we shook hands, and then got down to business. The General and Kernel went off to check out the system disk while I went to see SWAPPER about trading in my wrecked IOSB. I got one of those new models, with the genuine 32 pixel dash, TT$MNobrdcst silent muffler system, TT$MWrap in case I hit something, and, for drag racing, a TT$MPassall. I tried to get a TT$Noecho but thought the better of it because I knew that it IS possible to get too much of a good thing. As soon as I had finished haggling with swapper over the trade-in price of my IOSB I was out looking for Bad Blox. I sped towards the non-paged pool on my IOSB and looked around. There was no sign at all of Bad Blox, so I knew that if I didn't act fast, someone would regret it. One by one I locked all the exits with my $LCKPAG in the hope that he was still somewhere on hand. I was right! I was just about to $DISMOU my IOSB when I saw a flash of a CLI callback in my VISOR. I was thrown backwards by the blast of a $EXPREG that operated from where my IOSB used to be! Two IOSB's down in one week! That was it! Bad Blox was really going to get it. I pulled out my Vital Maniac Stopper (VMS). It had many functions and was a real gem when I came to dealing with problems. Bad Blox was trying to escape on a passing process control block. I switched my VMS into Retaliation / Talk Later (RTL) mode and fired a couple of Lib$Disablectrl's at him. After that he didn't stand a chance. With no control over the PCB he started wandering around like the lost tribe of Israel. I blasted a Lib$Attach to the process so that it would suffer no ill effects, then pushed the PCB into a special jail I had made for him on the disk. With him safely tucked away in BADBLK.SYS it came to me like a flash; I could never give up, I would keep on going until I reached my cpu limit and then just drop out of sight. But for now, I have to cruise them batch queues. ( More exciting adventures to come... ) XXXXXXX XXXXXXXX XX XX XX XX XXXXXXX XX XX XX X XX XX XX XX XXX XXX XX XX XXX XX XX XX XX XX XX XXXX XXXX XX XX XXXX XX XXXXXXX XXXXXXXX XX XX XX XXX XX XXXXXXXXX XX XX XX XX XX XX XX XX XX X XX XX XX XX XXXX X XX XX XX XX XX XX XX XX XX XX XXX XXXXXXX XX XX XXXXXXX XX XX XX XX XX XX ---===*** Part II ***===--- S. Travaglia, Computer Services (~Late '86) Twas the night before BACKUP and all through the disk, not a creature was stirring, not even a fatal IO error. Because SRUMAN was on the job, once more !!! Yes folks, it's SRUMAN, System Supporter Extraordinaire, Defender of Diskquota, Battler of Batch queues, Protector of Printouts, Basher of Bugchecks, Hater of HALT instructions, Fighter for freedom and the DIGITAL way... .. We join our hero this time in an abandoned Run Time Library, cleaning his shining new IOSB. My IOSB gleamed in the half-light like a head crashed RM05 as I slid it out of the abandoned Run Time Library that was my new home. One good thing about a revision is that you can pick up the old stuff fairly cheap. Why, my new digs had only cost me 301/304 blocks, and what the hell, I was only saving them for a rainy day anyway. I kicked the IOSB into life and roared off down the system towards my destination, the batch queues. Definitely a seedy place, filled with the sort of things you'd never take to your sys$login to meet your parent processes. I hated going there, but sacrifices had to be made if the system was to remain safe. After a while of cruising, I decided that there was nothing amiss so I decided it was time to check out the non-paged pool. Now there was ALWAYS some action there, without fail; The EVL finds work for idle processes... Sure enough, as soon as I got there, I knew that something was going down. I just hoped it wasn't the system, although you never can tell... I prepared myself for action by loosening my .44 calibre vector blaster in it's holster, and changed mode to kernel inside my friendly BASIC enviroment. Quicker than you could type 'Jack Robinson forgot his password here, 12 August 1982' I saw exactly what was going on. Someone had been messing around with the FLOATING POINT, only now it had sunk. How dare they! When the floating point drops, so does all the hardware. The system was UNSUPPORTED! Quickly I located where all the trouble was by locating the weakest spot. Sure enough, there was a BREAKPOINT right where I expected it. I did some temporary repairs and decided to get some skilled craftsmen down here to fix it later. But before that, I hads to go right to the top and check out the AST LEVEL. I liked it up here, it was all action, no-one wasted any time, and you hardly ever ran into a loose page fault. I ran into Exec and User Mode (the Kernels younger brothers) on the way up. They had been asked by Kernel to let me know that there was something terribly wrong with one of the system suburbs. I asked them what they knew, but they could only tell me that there had been a terrible fight down at Micro Code Level and that the culprit had escaped to the BASIC enviroment. I decided to put the batch queues cruise on HOLD until I had checked this problem out fully. I was just about to leave when I got a CLI callback from somewhere unknown. It said 'remember the force, young process saver'. The voice ! It was my old Master, Opcom! I wrenched out my custom made XAB out of it's holster. Whenever Opcom said something to me, it was always a warning that something bad was going to happen. I didn't bother REPLYing to him as the ready light on my XAB flicked to the deep red of a 11-750 error indicator. Carefully, i moved to my IOSB. All seemed well so far, I couldn't see what Opcom had in mind. Maybe he was, like me, just getting a bit short in the cpu department. I should have known to trust the judgement of Opcom, he'd never been wrong yet... I started feeling uneasy, something EVL was in the air. Sure enough, Opcom was right, he must have had some REQUESTs for help from BASIC. I lept onto my IOSB and knew at once I had made a mistake. This was not my late model, and the return status was all wrong. I was in trouble and I knew it. I narrowly avoided a Q-Bus as the IOSB accelerated, out of control(^), towards the output buffers. I managed to control it long enough to steer it clear of the buffers, but clipped a terminal driver and we went down... I abandoned the IOSB just before it hit a physical buffer head on. It was slightly damaged, but I'd seen worse. I ducked into the BASIC enviroment and was about to change mode to Kernel again when I realised I had walked into an asynchronous trap ! Damn, I was going so well, too. The culprits from micro-code level were all here, and I knew that I had better do something fast. There was 15 of them altogether, but it would take more than 15 to do me in ! AP was the first to come at me, he didn't stand a chance, as soon as he was within range, I just PUSHed him onto the stack. This shook SP up because all he did was stand pointing at FP. But, as my bad luck would have it, AP POPped right back up again. It seems I hadn't pushed him down LONG enough. PC came at me, though he seemed somewhat erratic, he came at me from one side, but before hew could do any damage, I had him and AP at each other's throats. They went down faster that an 11-730 with a fatal bug check. SP was still out of action, he just pointed at PC now. Next came the registers. I cleared that lot in no time. Which only left the big heavies PSL and SP. SP looked to be frozen, but I couldn't be sure, but PSL was still in the fight. My XAB was useless against him, and I knew it. If i ever got out of this mess, I was going to have a LONGWORD with OPCOM about getting some new, up to date gear. PSL yelled something FAOL at me and moved in. I grabbed the nearest available weapon, which was an old bootstrap that someone had left laying around. The bootstrap seemed to have a will of it's own as it choked PSL into submission. SP had given up, the shock had been too much for him, he was ruined, and decided to end it all. Before I could stop him, in a fit of madness he lept into a register dump, where all bad registers go to show themselves as they really are. It was really quite sad. After that, I decided that I had had enough for one day. I decided to sink a few tinnies down at the cluster, a new place that had opened up, system - wide. Most of the working set ended up there when they were feeling a bit under quota. It was just like old times, I ran into epsilon and mantissa who were in standard form, after drinking half the cluster dry that morning. I told them about the day's activities and they made it their mission to cheer me up. Epsilon gave me his most prized possesstion, something that would stay with me throughout my cpu time, his protection mask. It was a real beaut too, made in the days when processes were processes, and quota was unexceedable. I, in return, gave him one of my souvineer event flags that I had picked up when touring foreign systems. We were having such a good time reminiscing that we didn't notice a rather over the limit vector take EXCEPTION to mantissa. Before we knew it, the logical tables were sent flying as the vector moved in on mantissa. Neither Epsilon nor myself were worried as we knew that mantissa used to be an exit handler for the system services before getting his current job. Out of the corner of my eye though, I saw one of mantissa's mates from those days get ready should he be needed. My god, it was the top hit-man, $DELPRC! I sure hoped that mantissa would make the vector see reason. Luckily, the men from ASCII (Associated System Combine Incident Inhibitors) turned up before things got nasty. Lucky they were here, they usually spend most of their time on the Interrupt Priority Level, keeping things going up there. They took the vector away and we returned to our memories of version 1, and how we had changed. "Isn't the system wonderful manny ?" "Yep, S.R, it sure is isn't it..." "Hey Epsilon, remember that time you me, Sruman and those three ...." -=+ The End +=- With a clatter of cooling fans, a twinkling of an ATTN light, and a hearty 'Hi Ho Diskquota', SRUMAN cruises again ! S R U M A N P T I I I S. Travaglia - Waikato University (- ~1987) { We join our hero at his part time job, as a janitor in the heart of the SYSTEM.} It was a cold and dark night on the Userdisk. I don't know, it's getting harder and harder to find my way around, what with directory changes and version 4.1 to get used to. I hadn't had a good $HIBER in ages, as I was worried, something was going on, and I didn't know what. I couldn't make the RUNTIME, and nothing I would do would make the NETWORK. But what the heck, I'm the System Restriction Underwriter MANager, I didn't have to bother with minor repairs! I still don't know why I took this part-time job, I didn't need the diskquota, that's for sure. I'd been left a sector by one of my parent processes in an up-market section of the disk that would take care of me until my final shutdown. I guess it's just that I had to stay active, as there wasn't much on for me at the moment. I was seriously thinking of taking leave of the System Services, just until I had time to $UNWIND. But for now, I suppose I have to $RESUME my duties as SRUMAN. I slowly wheeled my QIO out of it's space in my Run-Time Library garage. The return status wasn't very good, which meant I would have to trade it in soon; it just wasn't fair, they don't make them like they used to! Swapper would probably rob me blind as usual, but this time I wanted to go up in the system. I was getting to long in the CPU to be riding around the disks on a snazzy QIO. I rattled over to Swapper's area of the system, and cruised around the process block for a while, bugchecking things out. I left my QIO and decided to see what was happening. A cute young process (obviously in compatibility mode) offered to take me back to her PSIPAD and show me her firmware, but I was busy and had other things on my mind. Like where Swapper had got to. I asked around and found that he was out! Swapped out, what a bad break! I thought I'd just have a look around Swapper's sector anyway, to see if I could see anything interesting, when who should walk up but the man himself.. CPU!!! What an event! I almost wish I had some flags to set up! He was flanked by a couple of heavies from the non-paged pool, probably real nasty too, but I didn't want to check with him, because he's strictly business, and you'd better have a good reason before you interrupted him. He was moving quite slowly now, and oh no! He HALTed beside me!!! "How's it going SRUMAN?", he $ENQed. I had to be careful to avoid anything that might make him angry, otherwise his to heavies would take me for a long walk off a short queue. Quickly I assembled my thoughts, compiled my answer, and linked it all back to him with "Pretty good, CPU, what about yourself?", "Oh, I have my ups and downs" he replied "But hey, kid, if you need a bit of Disk, just let me know...". He handed me a couple of chips. "Thanks very much CPU" I said. I didn't want to offend him by saying that i didn't gamble, so I just accepted psuedo-gratefully. As soon as he wasn't looking, I put them in my CASE and made my $EXIT. I made one last search for swapper, but it didn't seem to do any good, there was no-one around. So I jumped on the QIO and headed towards the Batch Queues, a trip that was just about sure to be routine. Sure enough, it was about as alive as a 730 during a power cut. Tired and disgruntled, I went home to rest. But that was not to be. It appeared that RA81, my next door neighbour had been really spun down in the dumps and had head crashed himself. Oh no! He and I went way back to the early versions. But wait, there was something suspect about the whole thing. I knew he was Baud, but not that bad. Something smelt faol! I looked around the keyboard for clues as to whether be fell or was pressed. Ah Hah! I found the [BREAK] I was looking for, just at the top left hand side! Someone had stretched a very fine peice of character string across the accessway. I knew who the culprit was as sure as if he'd logged on! LINE NOISE - the swine. He was well known as being terminal! I suppose it was his modem operandi that gave him away, I had it all on file. Just then the scheduler called. "SRUMAN, I'm giving this CASE to someone else." I was DECKed! But he would accept no arguements, not even p1. "He was a friend of yours, so we're not going to take the risk". Well, that was that. I've lost a grate FAL, and they won't even let me DO anything about it WHILE the villian gets away. I couldn't wait FOR what Scheduler was going TO DO to me NEXT. Looking back, I suppose I was in a but of a STATE. "Go and take a holiday in the BASIC enviroment, come back when your condition is better, we may have a JOB for you then..." Much as I hated to leave DCL, I knew Scheduler was right. I checked my FOREIGN $status and left. As soon as I got there, I couldn't wait to RETURN. I must have been a fool to GOTO there in the first place. But wait, there was that cute process again from Swapper's yard! Maybe things were looking up for me! Posing as being ON duty I decided to GOTO her and ask to see her process id card. She thought I was a REAL CHARACTER and wanted to know what LENs I would GOTO to meet her. She said to give her a CALL later on, when she had finished here. At least I got her NAME AS she left, it was MAG TAPE. Luckily I had time to CHANGE into something more comfortable, %IF only I had had TIME to %INCLUDE some of my night clubbing gear. At last I could WAIT no longer. I CALLed her and she said she would be RIGHT$ over. Strange the way she pronounced her words... As soon as she came in I realised that my eyes had been decieving me. Her DIMensions were something to mail to SYSTEM about! She said she would love to go on a DATE$ with me. There was that pronounciation again! I told her to wait by my QIO WHILE I LOCked my room. I couldn't HELP/NOPAGE/NOLIBLIST/USERLIBRARY/NOPROMPT thinking that something was wrong with her. Before I could PUT more thought to it though, i heard her screams. "SAVE me, SAVE me Sruman!" she cried, "He's going to take me back to his PLACE$ if you don't". It was LINE NOISE!!!!! I'll KILL him! MAG was just down a couple of levels, LINE NOISE had her CHAINED to a large IMAGE. There was no-where she could RUN to. "Move and it's the END for her!!!" he yelled. "He'll KILL me" MAG ECHOed. I was getting really %CROSS!!! Slowly I drew my SUBEND out of my pocket, waiting for my chance to let him have it. He slipped on a pile of RECORDs some SPACEd out MODifier had left on the steps. Quick as a FLUSH, I fired twice. >SUB SUB!< LINE NOISE was truncated off the edge of the array. "I do DECLARE!" he whispered as he dropped into oblivion. "Oh! Sruman!" Mag purred, "You're such a hero!". It was a tough job I suppose, but hell, somebody had to do it. "Let's GO back TO your PLACE$, and you can RECOUNT some of your adventures, and we can see if we have a lot in COMMON..." Warning bells started clanging in my memory, but I could never RECALL more than one thing once I left DCL. I told her I wasn't feeling very well after the night's activities, which of course wasn't true, but I needed TIME to SORT things out. "But i Think I like you," she said, "LET me stay...". I was sure something fishy was going on. "I'm too variable for you, dear", I said, "it's best that you find someone more constant" In less time than it takes to crash a 780, she had thrown me on the MAT. She had gone ABSolutely MARbles. "Have it your own way" she snarled, "But my boyfriend was right, it's time you LEFT$ for good" It all came back to me!!! The character strings!!! It was her! It was LINE NOISES girlfriend, STRING CONSTANT. I was a blind fool! She gave me a PROD$ in the PCB that got me seeing wildcard characters. I'd had enough of this! Tricked at every turn! Well, no more! I didn't have the heart to knock her off with my SUBEND, so I set it to exit instead. She went out like a RUN light. I decided it was time to go back. I had less work BEFORE I took a [BREAK]! This place was such a DUMP, all the MAPs were out of date, and XLATE was the last straw (and command, for that matter). I came out of BASIC on a roll. I called a few of my mates from the peripheral contigent and decided to have a parity. As they say, parity begins at home, and this one sure did. I left the peripherals to their own devices for a while to get some fresh temperature controlled, moisture free, ventilation. A few of them joined me and we decided to go for a device pizza. A cluster-sized one with everything. We jumped into console's vehicle, a brand new SMG! Now this was really something. How he MANAGEd to SCREEN this vehicle from his wife I'll never know! It had everything, a POPVIRTUALDISPLAY which we opened immediately, a PHYSICALCURSOR, for careless device drivers, an ALLOWESCAPE emergency exit, a CANCELINPUT for back seat drivers, and if that didn't work, a DISABLEUNSOLICITEDINPUT! I didn't believe it! It even had a toilet with an automatic FLUSHBUFFER. This was the ride for me! WINCHESTER wanted to be in control, but he'd had too many buckets earlier on in the peice, so I said "Let TAPE DRIVE". Someone asked if it would be best to order before we got there. "WRITE, RING ahead will you ?" I called. Then we were off. As soon as we got to the $FABSTORE, I wandered up to the program counter and asked the voluptuous process for our order. A printer sidled up and made some comment about her poor cleaning of the page table in the order. He was definitely out of line! "Watch your mouth DOT MATRIX" she warned. What a putdown!!! He wasn't about to BANDy words with her. He looked like getting viscious so I stood up, and all of a sudden he lost his form. Sruman!, Tape warned, but I was damned if i was going to BACKUP. Luckily the printer decided to leave. "We'll meet again", he said as he left. I did meet up with him again, but that was another story... Vax, the final frontier. These are the cruises of the System Supporter, SRUMAN, his lifetime mission, to boldly go where no processes have gone before, to seek out strange, new, disk acesses, and catalogue them. Sruman, Part IV (Simon Travaglia - University of Waikato, Hamilton, New Zealand, Late '87) The tie fighters streamfixed out of the Batch queues towards me, what could I do, I DUMPed myself onto the disk, in search of some strong MOUNT/ASSISTance. I ducked into a darkened subdirectory just as they veered around after me, but I was too quick for them and they had lost me. Now to find out where on disk I was. I flipped on my ATTN lights and peered about. In the far corner I could see a PHONE, in fact in all corners there were PHONES. Oh no, a PHONE DIRECTORY ! ! ! It would take powers greater than my own to tear these apart ! ! ! ! ! Before I could move a strange sort of silence descended.... HERE::DEFAULT is phoning you so answer (00:00:00) HERE::DEFAULT is phoning you so answer (00:00:00) Uh - oh, this meant real trouble... Quicker than you could say PHONE/SWITCH="" ANSWER, I was talking to DEFAULT, THE boss. DEFAULT was the top "man" of the system, she was old and wise, and, what was worse, very, very hard on my fore-runners. "Well", she said, "What have you got to say about your poor PERFORMANCE in the latest uptime?" I was dreading this, I knew it was coming, what could I say? "3^2, but that's just an expression" I replied but she wasn't going to take that sitting down "You're getting lax SRUMAN, look at what you've got yourself into..." She paused, thinking for a moment, and carriage returned with - "That's it, I'm sending you to look after my cousin, Eunice" Oh no, "God help me!" I cried (Not that I believed in god, being diagnostic...) "No Buts, P1's or foreign commands" she said, "you're going now..." Before I could change mode to Kernel, I was gone. I was ... HERE. EUNICE was there to meet me, with her man of the hour. Time to be debonnaire, I thought... "Hi there EUNICE, up to your ULTRIX again i see..." (thank you, thank you, I deserved that) Went over like a fatal bug check... "Well, I see you've come out of you shell since you were last here" she replied... Time to get down to business, I wanted out of there, as I didn't want to put up with any MORE than I had to. Oh MAN, these puns are MCR bad! "Whats the story, Eunice, why was I sent here?" I gets'd "Well, to tell you the truth , we are having daemon problems again, he's being very nasty, playing nasty tricks, /etc /etc /etc" "What do you want me to do?" I gets'd again "I want you to fseek him out, fflush him out into the fopen, and then ftell me about it. If I can spare the ftime, I will fwrite him off then" What a disgusting speech impediment! "Well, I suppose I had better start now, I'll sscanf the disks for him and see if I can catch his ssignal" I stated. Yuk, it appeared that I was coming down with the same disgusting habit. I sprintf'd off to the printf queues to see if daemon had been modfying anything there, but it all looked clear to me. I hated this place, it was so cramped, pipes everywhere. /etc/passwd seemed to be the ROOT of the problem. I chdir'd to another place to see if there was any sign of him. Not a solitary cookie program. I had to go into disguise. I appeared to be the lack of headware that singled me out, everyone had the same SORT of headgear on, although I couldn't see why they were wearing them as they seemed to hurt so much, it brought people out in curses. Nevertheless, I put on my termcap. Bugger!, Damn! Nope, I wasn't going to put up with this just to remain inconspicuous... I threw the termcap into the /bin. But wait, did I C what I thought I saw. There was daemon, and he was giving me the /bin/finger. I troffed as I had never troffed before. I reached for my..., Oh no, DEFAULT had forgotten to #include my submachine patcher!!! (Mind you, it wasn't all that portable anyway). "A scourge on you and your child processes" I yelled And then, like lightning hitting a VMZ, it came to me. Ah!! Am I brilliant, or am I brilliant? The only thing that Daemon feared, the light of a ps -A. It is a well known fact that if you catch a Daemon appearing on a ps -A, he is forced to dissappear. I knew it, I was going to brk him! I disguised myself as a lonely voluptuous process, and waited for a chance access. I chd'd to /usr/games, I knew what he was like, I'd play his little game, the rogue. This was turning out to be quite an adventure and I was pleased to trek the worm down. Before I could think up any more games for my monolog_file, daemon appeared. "zork!" he cried An evil plan formed it my head!!! While daemon was having a boggle I sorted it all out. "I like your format big boy" i said. (I could almost see his knees go floppy) The ps -A idea fell by the wayside as the nasty idea grew. I sidled past him and hid a fork behind me As he moved in for the kill, I grabbed the fork command from behind my back and let him have it. He was well and truly forked now! He didn't really stand a chance... I gave EUNICE a call and told her all that had gone down. "Great work SRUMAN!" she cried, "You've saved us" (I began to hate myself, as there was no saving EUNICE...) "You can go HOME now..." "fabs!" I cried As I entered customs (and they have some very strange customs around here), I started to get excited about returning to my own enviroment. I decided to synchron with localtime so that I could have some idea of what time had elapsed since I had left. --- The customs official looked at me with distaste as I said, "I have a declaration to make" "yes?" he asked "VAR X:INTEGER;" I said, even though I knew he couldn't speak PASCAL!!! Aaaaaaghh!!!! It's so good to be back!!! (Join our hero next time in Sruman, part 5) Na-na na-na na-na na-na Na-na na-na na-na na-na BATCHMAN! Bruce Swadeshoes and Robin Banks had caught the villans once again. I wish my life was as easy as theirs! It was so easy on the movies, all you had to do was load the batch queues and the villans would come falling out! They had no idea what it was like in the real system. They didn't have to pass descriptors around the system to cache the criminals. But, enough of this recreation, its back to work for SRUMAN, System Saviour Extraordinairre! Sruman - Part V (CCC_SPT @ Waikato Uni '87-88) It was a normal day on the system. I hadn't seen any nefarious activity at all, which in itself was pretty normal. My psuedo apprentice LINK was coming along fine, although he tending to OBJECT to the IMAGE that I had of him. I think he thought of me as some aged wildcard, unable to perform any more of the sensitive OPERations that had made me a directoryhold name throughout the System. And I think he thought that I thought that he was a wet-behind-the-input-buffers young process who wanted fame, fortune, and a steady income of quota. And he was right, although that was a hell of a lot of thinking. On the spool of the moment, I decided to check out the tapes as I had left them to their own devices for quite a while now. "There's a lot of intuition in this job, it isn't always being in the right place at the right time." I may as well have been talking to NLA0: for all the attention LINK was paying me. Well, he would learn\ the hard way I suppose, everyone did. We had just arrived when I heard a scream. A tape mark shot past my head and hit my young apprentice, who had halted at the noise. "DUMP yourself on the DECK!!", I $BRDCST'd but it was to late, another tape mark hit him sparely in the input and blew his symbol table out. I dashed to his side, but I knew it was too late, his references were crossed, and his header was a goner. Before he EOJ'd, he spoke "Well ", he gasped, "it looks like I'm about to deassign/all for good..." "Try not to write", I said while I looked for diagnostic to help me PATCH him up. "It's too late, SRUMAN, I am going to that great SYSTEM in the sky, where a process can run in peace, and there are no worries about primetime" He gasped and slumped in my arms. I knew he was gone, his file id faded and his fixed length 512 byte records became unsequential. I looked about for the culprit. They had really got my BACKUP! I decided to take a look at the tape in question. It didn't help me much, she was foreign & we had troubles communicating. That was, until we got an EXCHANGE going. She said she could identify the culprit. Her name was MSA0:, and she said she was a medium. No problems, I thought to myself, I mean just because every other medium I had come across was a few bytes short of a block, didn't mean that she was too. When she told me who the culprit was, I knew she was a few nanoseconds slow in the cpu department. She said it was RSTS, and his dependant wife, RSX! Everyone knew that they had both perished in the great VAX/PDP wars at the beginning of the system, although rumours had been circulated about headerless file of RSX, creeping about [SYSEXE], never fully being at rest, looking for vengence, and a proper rundown. The thought of these two being involved was ludicrous, even if they were both active, they would be several versions old, especially RSTS, and would have massive declining features to inhibit them. I just hoped that DCL didnt get byte of this, as he still had memory of his battles of acceptance against RSTS, and he was likely to get nasty should the word get parsed around. MSA0 went on to say that she could feel through the sub - ethernet, that they were also responsible for the mysterious dissappearance of the Mona LSI! Now that got me interested!! A while back, some criminal had stolen the famed Mona LSI from under my very nose, and escaped into the reset in some new-fangled gadget, fitted with a floating point accelerator. I had searched all over the system, but could not find them, which of course put me in a bad light with DEFAULT. I could still remember the blast I had got from her back and keyboard central (OPA0:). . . "SRUMAN, you've made a real HASH of it!!! I want you to POUND the keyboards until you strike GOLD on this one. I'm giving you a lot of SPACE on this one but you will stay searching TILDA culprit is caught. Now DASH off and ENTER the hunt..." Slowly I pieced together all that MSA0: could tell me. It was a LONG shot, but at least it was worth a try. The theives and murderers were hiding in a CONVERTed Run Time Library somewhere in the system region. "Sounds like my place" I mentioned, in parsing. "WAIT 00:01:00!!!!" she cried! "It IS your place!!!!" Of course! That was the only place I wouldn't look, and of course, by the TIME I got back, I would be tired, and wouldn't stand a chance. They would have me block, bucket and cylinder. But now, that was not to be! I made a call to someone who was guaranteed to want to be in on it. She said she'd round and meet met around the board from my home block. When I got there, DELTA TIME was waiting for me. She had been severely put out after the MONA had dissappeared, and I was sure that she was going to use a few tricks that her father DELTA (of sys$library) had taught her. "Ok, DELTA, you lock the pages round the back, while I got rid of the entry point round the front." I said. This was going to be a synch! I crashed through the entry point, showing my mask briefly to the Super-Visor as I flashed past. I spotted them down in the den(sity). It WAS them!!! "Freeze RSTS and RSX before I blow your bytes to bits!", I screamed They started MOVing towards me. "I'm serious," I said, "This is a submachine patcher, one of the meanest weapons ever devised after your time, and you don't stand a chance against it" They kept coming. I fired a warning shot through RSTS's head. (I never did MCR play fair) RSX kept coming towards certain expiry as RSTS dissappeared in a cloud of greasy, black smoke, along with some dwarves he must have brought with him for the ADVENTURE. "RSX, i don't want to do this..." She kept coming so I fired again. The blast parsed straight through her and took out one of the boards in the wall. Damn it, this psipad had cost me a packet, and I didn't want it ruined! "I have my rights!" she screamed What a load of crap, I didn't know one acl that could identifier! "I want a proper rundown!" she demanded So that was it! She was only after a proper rundown, and then she would let us be! Well, far be it from me to rundown an image, but this was an emergency as my Submachine patcher had no effect on her. "Gees RSX is slow, and it's so hard to use, most of the programs running under it are obsolete anyway, and ...." "How dare you!" RSX cried, moving in on me A flood of enlightenment came to me as I realised she meant RMS rundown. But it was too late, she was coming towards me, bent on vengence! Just as she was about to shutdown my operations for good, DELTA burst out >From behind the LIB$RADIX_POINT, scattering LIB$CURRENCY all over the place "Hold it RSX, I'm armed with a 11/34 LAT driver, and I'm NOT afraid to use it" RSX turned to wreck her terrible wrath upon her, but she was too slow, a blast caught her and she dissappered forever... (If only...) ----------------- Once more the system was safe. I think I may yet team up with DELTA, I went to see her father about it, but he's a bit long in the CPU department and just sat around saying EH? all the TIME. Meanwhile we would go on holiday, leaving no return address; let someone else look after the system for a few microsecs, We deserved a rest! Sruman - Part Vi (1988, S. Travaglia) There is a massive vending machine here. The instructions read: "Drop coins here to recieve fresh batteries" N You are in a little maze of twisting passages, all different. U You are in a maze of little twisty passages, all different. SW You are in a maze of twisty little passages, all different. D You're at west end of a long hall. S You are in a maze of twisty little passages, all different. AAAaaaagh! I woke from $HIBER with a START/QUE. That dream had been a real ADVENTURE!! I thought I better get checked up before things got worse, these ROGUE dreams were becoming a bit of a BOGGLE to my systems analyst. I decided to TREK over and C he was still in his DUNGEON. The good thing about Zork was that he really WAS a part of his dungeon. I decided to WORM my way past the WUMPUSes he had set up to stop his competitors' hit-processes getting to him and making a MONOPOLY of the analyses. One of the particularly eager ones started following me when I heard a voice from the ORB above: "BACK, GAMMON, it's SRUMAN, he's a customer" Thank goodness!!! I didn't want my CASE made public, as wumps had a HOBBIT of being a little less than case sensitive when talking to people about Zork and his customers. The last thing I needed was rumours. He had my file out when I got there and was looking through it. "Still having the bad dreams SRUMAN?" he $ENQ'd "Yes, worse than ever this morning" I REPLYd "Well, I am sorry to say this, but I think that you've overextended your fields once too often SRUMAN" he said sadly "What are you trying to say?" i asked. "LAT me see if I can put this in longwords you would be able to parse" he said, thoughtfully. "I think you've been part of the working set too long. You just can't work to the extent that you used to.." That was quota statement! "I think you should stay here for a while. In fact, I insist upon it!!!!" The next thing I knew, I was in a field on the west side of big white house... NO!!!!! This called for stern measures! Heh heh, Zork had not noticed my well hidden poker. Quickly I stabbed at the fabric of the game, getting thru to GDT level. I quickly turned off the cyclops, death, robber and troll, and called INIT. A sinister, wraithlike figure attempted to stop me. "One move and it's CANNON for you" I warned. The sinister figure halted, frightened. After all, CANNON was the Siberia of the games world. "Return me!" I instructed. "Very well" he said, and raised his oaken staff. The darkness became all encompassing and my vision failed... Next thing I knew, I was back in the system. Now to deal with Zork. He must have had some plan up his firmware for a long time, and at last decided to try something, hence getting me out of the way. Well it wasn't going to be that easy! He would know I was back, so I temporarily MOVd out of my Home, and left no return address. But it left me with the problem of somewhere to go for the night until I could get DECNET to help me with this task. With a job like this, you couldn't be too picky though, so I might need to stay with mth$random, even if it was a little seedy. Random was pleased to see me, as he still remembered how I had got his sight back for him after some process had tried to get it when calling RANDOM-EYES through BASIC. {Ok, so the puns are getting worse} He got me settled in and then I decided that it was time to make sure I had some backup. I gave KMS-11 a call. He said he'd bring his brothers 10, 9, 8, 7, 6, 5, 4, 3, 2 and 1, if a little extra hardware was needed. That was sorted! I decided to get some entertainment. Random had one of his private dancers come in. She was a cute little starlet, she did her welcoming ROUTINE, which appeared to be the standard PROCEDURE at one of these FUNCTIONS. Some music started, she was going to sing. As she stepped up to the microcode, I couldn't help but notice her voice that flipped my login flag to captive. She spoke perfect DECTALK, without a hint of an accent! This was amazing! "Not so amazing Sruman" Random said, reading my thoughts, "She's a third party Czech lookalike. Come to the party tonight, at the harbour, you'll get a chance to meet her there..." I didn't care what she looked like, she was the one for me. All these years of searching the system for someone just like her! Later on I introduced myself to her, but it appeared she had seen me already at the Editors conference on Christmas EVE. "TPU too?", I enquired, keeping up with the MCR Play. It was good to know that we shared some memory. We were leaving by the dual port when disaster struck. Who says disaster never strikes in the same place? As we were heading to my SMG convertable, two processes grabbed her, while another one attempted to subdue me with a kick to the symbol table. Well, if that was the way he was going to play.. I swivelled and kicked his bootlegs >From under him, stamping on his PCB at the same time. He wouldn't be up again in a hurry. I was just in time to see her being driven off in a utility, probably analyze or copy by the look of it. I grabbed the process that had attacked me and shook him till his bit field rattled. He told all. It was Zork. He had designs for her, the CAD. Well I wasn't about to let him get away with that. It was obvious he hadn't expected me and had organised to take her by force. That was the very limit! I cruised quietly around to Zorks place. This was going to have to be a quicky recce. I smothered my face in solder and crept through the grounds. The Wumpus's never knew what hit them, except that it wasn't the arrow that they had grown to expect. I sidled up to the window to take a closer look. Too late I realised that something was wrong, it was quiet, too damn quiet, some* was in the process of happening. A flying floppy swooped towards me from out of the sky. I hurtled away as another flew directly at me. I'd heard of people being persued by the media, but this was ridiculous! I should have realised what it was all leading to, but I stumbled blindly into an asynchronous trap. Zork was, or at least appeared to be, pleased to see me. "Where's my girl you, you, BASIC INTERPRETED ACCOUNTING PROGRAM?", I cried. He flinched at the terrible insult I had flung at him. There was only one thing a man of honour could do now, and surprisingly enough, Zork did it. He slapped his glove across my entry mask and threw it on the floor. I was only too happy to pick them up, as they were mine in the first place, the theif! Back to back we stood, I had had the choice of weapons, and had chosen the older style DELTA modifiers, mainly because you had to acquire the knack to use them, and I hoped Zork didn't have the skills. I had hedged my bets by unsetting the modifier flag on his, under the guise of choosing which weapon. We spun as one, but he didn't even get his aimed by the time I had nulled his PCB. "Where is the girl?" I screamed at him as the deletion mark appeared on his face. "Your CZECH is in the MAIL" he laughed, and then expired. Oh no! It couldn't be worse if I had dreamed it! I was completely wrong about the Utility, it was MAIL. I should have recognised it's ungainly shape, it's many and various patches! This was terrible! I cruised over the disk to where mail was parked. Finding her was easy, it was just getting her out, and getting the code right. Carefully I invoked Patch with her IMAGE in my mind. Two CPU hours later, she was out. It had been a bit hard because halfway through some boiling liquid had parted to reveal a device pool, full of dead devices. I had covered it up, and kept on searching. She was out now, and that was all that I really cared about. BEST TRY CONTIGUOUS, OWNER SRUMAN? she enquired in fluent FDL. She wanted to get concatenated to me! After a while I had to agree, it was about time I hung up my patcher and settled down anyway. And we will live happily till our journals close... ----------------------------- The very very very End ----------------------------- Sruman, Part VII - The Final Chapter It was a cold morning on the USERDISK. I was just going for my morning jog around the block; it was strange, but 512 bytes never seemed so long in my younger days. Life was easy for me especially now that I had my contiguity with MTAACP. She was one in a 1E06! And now that I had settled down, I had more time to spend with her. It was a little hard at first, I sort of felt naked without my submachinepatcher close at hand, but as SWAPPER had said, female processes are strange things, they were one short in the login flags and because of that, there was no accounting for them. But back to my run. Old RMS habits die hard, and it was strange, but the USERDISK just didn't seem right, something was definitely up, but I knew if I told my syspicions to UMSMAN (he was my replacement), you could bet your UAF that they would be diswelcome. Well, I suppose he was big enough to look after his own processes, although there was something about him that wasn't all boolean. Maybe it was just a bit of jealousy on my part, I couldn't bear to see someone running what used to be my job quota. Anyway, it never paid to linger on fragmented disk. I was about to enter my library when I noticed some loop birds up on the roof under the EVEs. Damn birds were nested everywhere! The strange thing was, they weren't clustered around my TPU window as they usually were. My senses flashed an alert at me. Normally they were clustered around my window like DEC engineers trying to change a light bulb, but today my window was about as interesting as the front of an 8500. Something was up, and it wasn't my number! I crept up to the MBA0:, my mailbox, and slipped out my handy DELTA Blaster and took the safety off with a quick "1;m". The .entry was ajar. (Well, actually, it was a mask, but it was ajar too) As I burst through the entry I saw someone with some disguise over his face (With MTAACP slung over his shoulder!!!!) making to leave. Carefully I fired a couple of ";B"s at him, being careful to aim wide, for fear of hitting MTAACP. That shook him! He dropped her and ran. I rushed after him, but he was gone. I gave UMSMAN a call, but he was out. I knew that it was no time to be a vigilante, so I left a message from him to .call me when he got in. MTAACP was in a terrible state, and looked like she was about to crash, so I let her get some rest, we could talk later. Before I could think any more UMSMAN called. "What's the problem, boy?" he $enq (Boy!?!?!!!) I told him the story, telling everything I knew. Then MTAACP came in and gave her version. "I don't really think there's anything to worry about, ", he reply'd, "it was probably just an isolated event, no need to hash your table about it.. After all, MTAACP is a pretty physical device", he added, leeringly. Well, there didn't seem to be anything to go on. I went over everything with MTAACP. She tried to remember, and then it dawned on me, when she asked "Who was that masked man?" OF COURSE!!! The Phone Stranger! Why hadn't I thought of it before?! No wonder UMSMAN had seen nothing suspicious, the Phone Stranger had probably disappeared before he was old enough to realise!! In a way I felt a little sorry for the Phone Stranger, being forcably removed from PHONE like that, they say his skeleton disguised as TRANSCRIBE, still lingers in phone somewhere, possibly to be given back to him. But until then he possesses the processes of hapless accounts, causing random strife. Now all I had to do was find out who he was... UMSMAN was probably no use to me, he wouldn't know what to look for, even IF he believed my story, so I looked through my list of heroes.. Of course, The Man from ANSI! I gave him a call (by reference) The poor guy had been in UNIX a bit long, and was a few bytes short of a block, but still pretty keen when I told him what was going on. "core", he said, and then something in EBCDIC I didn't understand. (He'd obviosuly been flatting with Kermit too long as well). But at least he said he'd be right over. Next thing I knew, his SMG rolled up the the drive. I knew it was his he had custom plates, RS232. I enlightened him on the events flagged up to now. "It just doesn't seem to register with me", he said. (No surprises there, he was a good man to have to back you up, but about as fast as an LA34 printing Starlet when it came to thinking). Carefully I explained what had happened to MTAACP and what my suspicions were. "Wouldn't that corrupt your Boot Disk", he mentioned sympathetically. He had an idea, find out all the people without alibis... Unfortunately, there was one person who could help us with that. It was with a heavy heart that I called DEFAULT. "WHAT DO YOU WANT SRUMAN?" she asked with uncharacteristic politeness. I tried not to mumble. "It's about the Phone Stranger, he's on the l.." "YES, YES, I KNOW THE LIE OF HIS ARCHITECHTURE" she interrupted. "I need to .locate all the people at that time" "RUBBISH!" she said, having nothing to to with BINTIM, "YOU KNOW THAT IT'S NOT YOUR JOB ANY MORE, LEAVE IT TO THOSE MORE CAPABLE" "MORE CAPABLE!! UMSMAN wouldn't know boot block from a process header!, he thinks native mode is when processes go round in grass skirts" "ARE YOU SUGGESTING THAT HE MAY BE CORRUPT?" she enquired wheedlingly. "No, no, but he could be a little more process orientated" I REPLYd. She paused a while, computing the odds (and evens) "PERHAPS YOU HAVE HIT THE TAPE DRIVE ON THE HEAD" she said, startling me. "TAKE A QUIET LOOK INTO IT" Well, I suppose a BIT part is better than nothing. ANSI and I set off to sus out what was up. We cruised the Batch queues, then the print queues, just in case we'd missed something first time around. "Look at that", ANSI said, pointing at a funny file entry. "It's covered with script of some sort. Is it ASCII, is it EBCDIC, NO IT'S SUPERSCRIPT! - Yes it's SUPERSCRIPT, strange visitor from another printer! Superscript, with it's height and size shaping powers . . . " ANSI ran on like this for a while, but I just unplugged myself and tried to think of the best way of dealing with the situation. ANSI had obviously dropped a bit of handshaking in the old mental block... Poor guy. But wait!!! What was that? There WAS something funny there. A character floated over to us at about shoulder height. "What seems to be the problem SRUMAN, ANSI?" it asked "Who are you?" I asked impolitely "Superscript, weren't you listening? Superhero at your service", He REPLYd Not another one! I remembered back to the good old days when there was just one superhero, me. This was all to much! They're 10 to a block now! It was enough to make you RMS rundown. "In fact", he said "I've been waiting for you to call, I have a cli$_present for you", reaching into his glyph. Staring into my submachine patcher seemed to $pause him. "No false MOVs" I said pulling back his glyph, and exposing a truly crooked character. I took from him a PCB munger, an illegal weapon in this system. "Ok Super-Zero, start talking" I said. "Never!" he screamed trying to $BRKTHRU my guard. It was very messy... "I never would have guessed that Superscript was a crook", ANSI echo'd, "Not when he and UMSMAN were so close" "Well, you can't judge a font by it's glyph", I REPLYd, and then it hit me!!!! Damn it all!!! TRANSCRIBE had dissappeared about the same time UMSMAN was conceived! His parent processes being dead and unknown. He was the masked process. I had to get back to MTAACP, she was in terrible danger. Who better to know what was what, when she downloaded all the software! (Mind you she had plenty of software of her own) I left RS232 to inform DEFAULT, he could take the strain, he was one hard copy, As I rushed off I heard "Make it quick RS232, this better not be a serial" Down through the mainframe I rushed, past the trendy Instruction set, past the statue of Ram and Rom, the two brothers, brought up by an IBM, founders of the system, into my home block. Not wanting to go through the front way, I climbed the binary tree to look in the TPU window. Just as I thought, UMSMAN, the meglomanic fiend!!! I opened fire with my Submachine patcher. His user friendliness blown away, he stumbled out. I leapt through the window to OPA0, I mean console, MTAACP. She was Ok, I made to pursue UMSMAN. "LEAVE HIM, SRUMAN", DEFAULT said, appearing from nowhere. "HIS USER FRIENDLINESS IS DESTROYED, NOT THAT IT WAS ANYTHING FANTASTIC IN ANY CASE. THAT SHALL BE HIS PUNISHMENT; NO PROCESS CONTACT EVER AGAIN. YOU ARE RE-EMPLOYED." She dissappeared. Well, it was good to be back on the job! ================================================== That's it, this really is the end. Simon Travaglia (ccc_spt@waikato.ac.nz) Late 88 ================================================== ----------------------+------------------------------------------------------- -Simon P Travaglia- | spt@truth.waikato.ac.nz, (NZ-PSI) 71000004::CCC_SPT + University of Waikato | internet# 130.217.64.3 {truth}, 130.217.64.32 {grace}+ Hamilton, New Zealand | Request: Send me your games, I need them to survive + ----------------------+------------------------------------------------------- If all the world's a stage, I want to operate the trap door. -- Paul Beatty