by Rick Cook
"What?" Wiz asked over his shoulder.
"Shut up!" Danny commanded. Everyone froze. "I hear something down that way."
"What?"
"I don’t know. Shut up and let me listen, will you?"
Instinctively the group had arrayed itself facing the side tunnel. There was a faint scrape as Malkin’s rapier cleared its scabbard. Glandurg strode to the front, hand on the hilt of Blind Fury.
"Light exe!" Wiz commanded and a globe of blue light sprang from his fingertips. He gestured and the witch fight began to float down the side tunnel toward the source of the sound.
At first there was nothing to see. The tunnel was empty as far as the globe’s light reached. But no, there was something:
For an instant Wiz thought the tunnel was carpeted in brown-and-gray fur. Then he realized the carpet was writhing as if alive. As the mass moved out into the light he saw that it was an army of rats, packed shoulder to shoulder and climbing over each other in their eagerness to get at the humans.
"Rats! Danny yelled and he and Wiz raised their staffs simultaneously.
"lightning rapidfire exe!"
Lightning bolts flashed and scythed through the charging mass, slaying hundreds, but the rats closed ranks and came on. Their eyes glowed feral red in the magic light.
Wiz gestured to the floor and the earth shook, bringing dust and clods of dirt down on the party. A chasm opened before the oncoming army. The rats took no notice and kept coming. Row after row of them disappeared into the crack in the earth, but others leapt across, some of them pushing off from the backs of their fellows as they tumbled into the pit.
With a flash of steel that nearly took Wiz’s nose off, Glandurg drew Blind Fury and waded into the survivors. The blade’s curse kept him from hitting the rats he aimed at, but it didn’t matter. No matter where he struck there were rats aplenty.
Malkin stepped forward and lashed out with her rapier, skewering rat after rat. When she had three or four writhing on her blade she flicked it back toward the mass of rats, sending her victims twisting through the air and back into the horde.
Still the rats came on. Now a dozen or more of them were scrabbling up Glandurg as if he were a ladder, seeking chinks in his armor. Danny and June were laying about, he with his staff and she with her knife. But for every rat they struck down three more charged in.
Glandurg and Malkin were in front so Wiz couldn’t get a clear shot. He danced back and forth, trying to find an opening for a lightning bolt. Then suddenly he had a better idea. He raised his staff and began to chant.
The oncoming wave of rats convulsed, stopped and then turned tail and ran squealing. As quickly as the tunnel had filled with rats it was empty, save for the corpses and a few survivors locked in combat with the humans.
Three or four rats were still clinging to Glandurg, including one with its teeth buried in his cheek. Without wincing the dwarf reached up and jerked the rat free. Then he held the squealing creature up before his face and glared at it. With a single quick motion Glandurg bit the rat who had bitten him back, taking off the animal’s head with a single chomp. He spat the head out and tossed the corpse away.
"Impudent pest," he muttered.
"Outasight," Danny breathed. "Say, do you listen to Ozzie Osburne?" The dwarf only scowled. For once Wiz was glad Glandurg was on their side. Malkin was breathing heavily and bleeding from several bites on her arms and legs. "What did you do?"
"Jamming spell," Wiz panted. "I figured those things were being driven by magic, so I interfered with any magic in the area. Once the spell was broken the rats panicked."
"Nice trick," the tall thief said as she resheathed her rapier. She looked at the bites on her sword arm. "Pity you didn’t think of it sooner."
"I’ll try to do better the next time," Wiz said without a trace of irony.
"Meanwhile people, let’s get out of here. All that magic is likely to attract more trouble."
Several hundred yards and dozens of twists and turns later, the party found a cul-de-sac where they felt safe enough to rest and treat their wounds. June had some of Moira’s salve in her pack and she applied it to everyone’s rat bites. Even Glandurg consented to have his wounds smeared with the pungent brown ointment The sharp, minty smell and the plain little pot from Moira’s stillroom brought a lump to Wiz’s throat. He noticed that even as she treated their wounds June didn’t turn her back on the tunnel entrance.
"Any idea where we are?" Wiz asked Danny.
"Lost," the younger man said as he fished into his tunic for the magic compass. He looked down at the glowing disk "I don’t know where we are, but what we’re after is off that way."
"Any sign of anything else?"
Danny squinted at the detector. "Not that I can pick up. This whole area’s lousy with magic, but none of it seems immediately hostile." He dropped the talisman back on his chest. "This thing’s getting less effective because of all the magical interference. Pretty soon it’s not going to work at all."
That was unwelcome but not unexpected so Wiz didn’t reply. "Okay, spread out. Danny you take the lead this time. And look out for those side tunnels."
"Remember," Charlie told Malus for about the hundredth time, "that baby’s fragile."
"Fear not, My Lord," the apple-cheeked wizard assured him. "We will be as gentle with it as a queen cat with her kits."
"I mean, I’ve put that baby into places it was hard to get out of, but this is ridiculous."
"It has posed a bit of a problem," Malus admitted, "but I believe we have solved it to everyone’s satisfaction."
They rounded the corner of the hall in time to see an apprentice wizard moving several of blocks of stone. He was walking backward holding a wand and the blocks were bobbing along behind him like ducklings behind their mother. Charlie stopped dead at the sight. "What’s holding those rocks up? Skyhooks?"
"That is not what we call the spell," said Malus.
Charlie’s eyes followed the line of floating stones across the courtyard. "You could put a bunch of helicopter pilots out of work with that."
The doors of the great hall were large enough to accommodate a cavalry dragon, but the creature would have to stoop and bend to get through. Charlie’s biplane couldn’t stoop and bend, so a team of workmen and a couple of wizards had spent the better part of two days taking off the doors and removing stones to expand the opening.
"We’re ready, Lord," one of the workmen said as he came over to join them.
"All tight," Charlie said. "Let me get into the cockpit and you put your guys on the lower wing. I’ll take the brakes off and you can push it out."
"Then what, Lord?" asked the foreman.
Charlie looked around the stone-walled court and sighed. Then I guess she’ll just sit there on gate guard. No other use for her here," he added sadly. That evening Wiz called another council of war. "Okay people, you know we’re running low on food?"
Nods all the way around. The dried vegetables, fruit and grains that constituted this world’s "iron rations" were easy to carry, but there was still a limit to how much they had brought with them.
"Well, on the theory that we’d have to head back, at least to replenish our supplies, I ran some tests this afternoon."
Tests?" Danny asked.
Wiz grinned but there was no humor in it. "I’m developing a nasty, suspicious nature down here. I wanted to make sure we could walk the Wizard’s Way with no trouble."
"I take it there was trouble?" Malkin asked dryly.
"In spades. I can’t open the way. It’s closed. Blocked by some kind of magical jamming."
Everyone was quiet for a moment.
"So we can’t go back?" Danny asked at last.
"Looks not."
This smells like a trap," Danny said. "Like we’ve been lured in."
"Lured?" asked Glandurg. "We have had to fight every step of the way. Only the power of Blind Fury has brought us this far."
That wasn’t the way Wiz remembered i
t, but he didn’t object.
This reminds me of Shiara’s tale of the cursed tomb that took her sight and magic,’’ Malkin said quietly. That was a trap too, but the trap was cloaked by a series of other traps designed to eliminate those who were not clever and possessed of strong magic.’’
There was silence while they all considered the possibilities. June moved closer to Danny and he slipped his arm around her shoulders.
"So what do we do about it?" Danny asked finally.
"Well," Wiz said slowly, "We can’t go back." He looked around the group, hoping someone would dispute the point, but no one did "So we’ve got to go forward against this thing."
"Seems to me we’ve got just one chance," Danny said at last.
"What?"
The young programmer flicked a tight little smile. "We’re gonna have to be a whole lot tougher than the thing that set this trap in the first place."
"Yes!" roared Glandurg and brandished Blind Fury aloft. The gesture drove the sword into the tunnel roof, knocking a liberal shower of fine, choking dirt down on them all.
Spitting, sneezing and brushing dirt out of their eyes, the other members of the group glared at the dwarf. He grinned sheepishly and carefully returned the sword to its scabbard.
"This stuffs trickier than I thought," E.T. Tajikawa said when Jerry broke to refill his tea mug. For the last two days he had been working his way systematically through the compiler and development system, coming back to Malus’ light dimming spell from time to time.
"It has its peculiarities," the big programmer agreed as he ambled over to look at Taj’s work "What’s the problem?"
Taj grinned sheepishly. "Probably really simple because I can’t find it. The listing looks fine."
For an instant Jerry wondered if Taj was really as good as his reputation.
"Well," he asked carefully, "how does it fail?"
"That’s the nasty part. It’s apparently an intermittent because I can’t get it to fail at all."
Jerry leaned over Taj’s shoulder and peered closely at the program, running down the instructions. That’s funny. I don’t see anything there that would cause an intermittent."
"You mean you don’t know what’s wrong with it?"
"Well, no," Jerry admitted. "Wiz was working on it when: well anyway. Let’s see."
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.
Oblivious, unseeing and uncaring, Moira finished rubbing herself down and accepted the shift and long, fur-lined black robe from her shambling attendant. Then she sat as the decaying creature tenderly but clumsily pulled on her boots. Warmth is important to human health as well.
"Okay," E. T. Tajikawa said, "there’s part of your problem."
Jerry, Bal-Simba and Moira all crowded around the table. Jerry squinted at the glowing letters over the Tajmanian Devil’s desk. Some of them were the conventional magic notation used for writing spells in the code compilers. Others were odd symbols he had never seen before. The result made no sense at all.
Squatting underneath was the demon the code fragment manifested.
It had a nasty sneer on its face-or at least on its top, Jerry amended. The thing sat on six spindly legs like a demented version of a Lunar Lander. The main body was cylindrical and semi-transparent. Inside were vague outlines of something coiled into a long spiral. The top, where the face was, was a regular geometric solid, a dodecahedron, he realized after making a quick count of the edges on each surface.