A quick command and Jerry executed the program. The lights in the workroom brightened promptly.
"That’s real weird."
"You mean it isn’t me?"
"No. That’s what it’s supposed to do. Except Malus said it didn’t work."
"I think," Taj said slowly, "maybe we’d better have a talk with this Malus character."
Jerry hesitated. Of all the problems they faced, a sticky light switch spell was far and away the least important. But Taj was quivering like a bird dog and the truth was that Jerry wasn’t getting anywhere with what he was doing. What the heck? he thought, we might learn something.
They found Malus in the Wizards’ Day Room, digesting lunch and talking to a few of his fellow wizards. Winter sun filtered weakly though the large diamond-paned windows and a small fire in the carved stone fireplace took the chill off the air. Magic provided most of the heat and light but the fire and windows added warmth and coziness.
"Malus, could you try this spell again?"
"Certainly, My Lord," the wizard said, getting up from his chair. "Have you found the problem?"
"I’m not sure. I want to see you do it."
"Very well."
Malus picked up the wooden strips, arranged them on a small table and then spoke the command.
Instead of brightening, the magic glow lamps in the Day Room flickered, dimmed, brightened and then dropped to a febrile glimmer.
Jerry and Taj looked at each other in the sudden gloom.
"Let me try," Jerry said.
This time the spell worked perfectly.
"That doesn’t make:"
"Wait a minute!" Taj cut him off. "Do you each have physically separate copies of the compiler or are they all just instantations of the same compiler?" Jerry looked at him. "I don’t know. I never thought about it."
"Might be interesting to find out," Taj said.
"My Lord," Jerry said to the little wizard, "will you list out the compiler for me?"
It was Malus’ turn to frown. "Very well. "Emac."
Instantly a little demon with a green eyeshade popped into existence. Jerry noticed it was rounder than the ones he was used to. In fact it looked a lot like Malus himself.
"?" the demon said.
"list compiler exe," Malus pronounced, and the demon removed a quill pen from behind a large bat-like ear and began to scribble lines of fiery letters in the air.
The compiler was big and took a while. By now several other wizards, had gathered around to watch.
"Shall I list out the libraries and include files as well, My Lord?" Malus asked when the Emac at last completed its task.
"No, this is fine for now," Jerry told him. "Emac." he commanded, and proceeded to order the demon to list out the compiler again. Taj watched closely, but aside from the fact that Malus’ Emac wrote in letters of golden fire and Jerry’s preferred electric blue he couldn’t see any difference.
"Now," he said, as the second demon finished.
"Emac."
The blue fire superimposed itself on the yellow. Suddenly several sections of the code stood out in brilliant green.
"Your version of the spell compiler. It’s different." Jerry checked the changed sections against Malus’ spell. "Your spell didn’t work because something messed with your copy of the compiler. The program was fine but the tool was broken."
"But, My Lord, I can assure you I have done nothing to change it!"
"I believe you," Jerry said. And, he didn’t add aloud, that’s what scares me. A quick check of the other wizards present in the day room showed that two of them had compilers which had suffered minor changes, but none so great as Malus’.
"I wonder how many other broken copies of the compiler are loose around the castle? Or broken anything else?" Jerry said as the last wizard in the group checked out clean. "I think we’d better start a sweep of the software."
"You go ahead," Taj told him. "I’ve got some stuff I want to check up on." Jerry was so engrossed in the problem he only nodded, forgetting his objections to Taj going out on his own.
"Well," Jerry said tiredly a few hours later, "we were lucky. So far we’ve only turned up a half-dozen infected programs." He leaned back in his chair and rubbed his eyes. "Maybe more than lucky. We didn’t exactly build the spells to be virus-proof but we were real conservative in our design. There’s an error-correcting code built into every spell and if the check sums and such don’t match it won’t execute. Plus the critical stuff uses triple redundancy."
"I noticed," Taj said. "Is there any pattern to what’s been attacked?"
"Not that I can find. There’s a lot of stuff here that’s been nibbled around the edges but aside from Malus’ copy of the compiler nothing else serious is really broken. Damn! I wish Wiz and Danny were here."
"Need some more insights, eh?"
"That’s part of it. But now I’m going to have to go through and design anti-virus software to protect every spell we’ve got. It would be easier if there were three of us doing it."
Taj looked at the changed code again. "Who’s writing these puppies?" Jerry shrugged. "If I had to guess I’d say it’s our enemy in the City of Night."
"Seems kind of piddly for a deliberate attack. Are you sure none of your students worked these up?"
Jerry shook his head. "You don’t understand how seriously these people take magic. This isn’t like a bunch of bored high school lads or out-of-work Bulgarians. Everyone here respects magic too much to do something like this for the hell or it."
Taj looked skeptical. "This thing came from somewhere."
"Yeah," Jerry said. "And that’s what worries me. One more thing that worries me."
Moira rose dripping from the bath. The water streamed off, making little rivulets between her shoulder-blades and breasts, splitting at her swelling belly and dripping off her sparse orange thatch of pubic hair. She stepped out onto the tiled floor and a skeletal hand offered her a towel.
She accepted it without noticing either her attendant’s appearance or smell. In life the zombie maid had been a harem attendant for a mighty wizard of the Dark League. She had died on the surface when her master’s palace collapsed and had lain there until the new master of the City of Night had claimed her. Even in this cold land, decay had set in while she lay dead on the surface and now that she was often in the steamy atmosphere of the bath her rotting flesh seethed with maggots.
Neither sight nor smell mattered to Moira’s body or the intelligence that animated it. Bathing was necessary for human health, so Moira bathed, fallowing barely remembered rituals gleamed from the dead brains of its other servants. In the same way the body was fed, exercised and rested, cared for as a brood mare is cared for. Not for the sake of the body, but for the sake of what it would bear. Or more correctly, what would be torn from it at the proper time, since natural childbirth played no more role in the Enemy’s plans than did a normal child.