Authors: Rick Cook
Wiz dared not breathe as the man passed over the grating. The sorcerer looked directly down at his hiding place, but floated on by majestically. Apparently the shadows in the hole hid Wiz from him.
Once the man passed out of Wiz’s field of vision, he breathed a sigh of relief. Then he froze again. There was something moving in the tunnel behind him. Something big.
The tunnel was as black as the inside of midnight, but Wiz heard a splash-scrape sound as if something too large to move quietly was trying to do so. He listened more intently. Again the splash-scrape, nearer this time.
Wiz realized he was trapped. He couldn’t see the flying wizard, but he could not have gone far. Leaving the shelter of the sewer meant exposing himself to his enemies. On the other hand, whatever he was sharing this tunnel with was getting closer by the second.
For some reason it stuck in his mind that he had found no bodies in the ruins. Not even bones.
He listened again. There was no further sound from the tunnel except the drip, drip of water. The lack of sound reminded him of a cat getting ready to pounce.
With one motion he twisted around and lashed upward with the halberd. The spike caught on the edge of the hole and he swung himself up to grab the coping with his other hand.
Behind him came a furious splashing. He swung his leg up and rolled free of the sewer just as a huge pair of jaws snapped shut where he had been. Wiz had a confused impression of a mouth full of ripping teeth and a single evil eye before he rolled away from the opening.
Gasping, Wiz gained his feet and flattened against the building. There was no sign of the flying wizard and the creature in the sewer showed no sign of coming after him.
Muddy, chilled and thoroughly frightened, Wiz ran off down the street, looking for a place to hide.
###
“Well,” said Jerry Andrews, “what have we got?” The team was crowded into the Wizard’s Day Room, which they were using as a temporary office while the last renovations were completed on the cow barn.
For the last two days, the programmers had torn into Wiz’s spell compiler and the material he had left behind. By ones and twos, they had pored over the Dragon Book and Wiz’s notes and conducted small and carefully controlled experiments.
Now Jerry had called a meeting to sum up, compare notes and plan strategy. He had set it for late afternoon, so most of the programmers were awake and functional. They had pushed the tables in the Day Room together to make a long table in the middle of the room and, heedless of tradition, pulled chairs from their accustomed spots up around it.
“Does the phrase ‘bloody mess’ do anything for you?” a lean woman with short black hair and piercing dark eyes asked from halfway down the table. “This thing is written in something that looks like a bastard version of Forth crossed with LISP and some features from C and Modula 2 thrown in for grins.”
“When do we get to meet this guy, anyway?” someone else asked. “I’d like to shake him warmly by the throat.”
“There may be a problem with that, My Lord,” Moira said from her place next to Jerry. “He went off alone into the Wild Wood and we have not yet found him.”
“We’re going to need him,” Nancy said. “Someone has got to explain this mess. Some of this code is literally crawling with bugs.”
“You mean ‘figuratively’,” Jerry corrected.
“I said literally and I mean literally,” she retorted. “I tried to run one routine and I got a swarm of electric blue cockroaches.” She made a face.
“Four-inch-long
electric blue cockroaches.”
“Actually, the basic concept of the system is rather elegant and seems to be surprisingly powerful,” Karl said.
Nancy snorted.
“No, really. The basic structure is solid. There are a lot of kludges and some real squinky hacks, but at bottom this thing is very good.”
“I’ll give you another piece of good news,” Jerry told them. “Besides the Dragon Book, Wiz left notes with a lot of systems analysis and design. Apparently he had a pretty good handle on what he needed to do, he just didn’t have the time to do it. I think we can use most of what he left us with only a minimal review.”
“Okay, so far we’ve just been nibbling around the edges to get the taste of the thing. Now we’ve got to get down to serious work.”
“There’s one issue we’ve got to settle first,” Nancy said. “Catching errors.”
“What’s the matter, don’t you like electric blue cockroaches?” Danny asked.
“Cockroaches I can live with. They glow in the dark and that makes them easy to squash. I’m more concerned about HMC- or EOI-type errors.”
“HMC and EOI?”
“Halt, Melt and Catch fire or Execute Operator Immediately.”
“One thing this system has is a heck of an error-trapping system,” said Jerry.
“That is because the consequences of a mistake in a spell can be terrible,” Moira told him. “Remember, a spell is not a computer which will simply crash if you make an error.”
The people up and down the table looked serious, even Danny.
“Desk check your programs, people,” Jerry said.
“That’s not going to be good enough. There are always bugs, and bugs in this stuff can bite—hard. We need a better system for catching major errors.”
“There is one way,” Judith said thoughtfully.
“How?”
“Redundancy with voting. We use three different processors—demons—and they have to all agree. If they don’t the spell is aborted.”
“Fine, so suppose there’s a bug in your algorithm?”
“You use three different algorithms. Then you code each primitive three different ways. Say one demon acts like a RISC processor, another is a CISC processor and the third is something like a stack machine. We split up into three teams and each team designs its own demon without talking to any of the others.”
“That just tripled the work,” someone said.
“Yeah, but it gives us some margin for error.”
“I think we’ve got to go for the maximum safety,” Jerry Andrews said finally. “I don’t know about the rest of you, but I have no desire to see what a crash looks like from inside the system.”
###
“My Lord, you seem to have made remarkable progress,” Moira said as Jerry showed her through the programmers’ new quarters.
The team had settled in quickly. Each programmer got his or her own stall and trestle tables filled the center aisle. The stalls were full of men and women hunched over their trestle table desks or leafing through stacks of material. At the far end of the room Judith and another programmer were sketching a diagram in charcoal on the whitewashed barn wall.
“Once you get used to giving verbal commands to an Emac instead of using a keyboard and reading the result in glowing letters in the air, programming spells isn’t all that different from programming computers,” Jerry told her. “We’d be a lot further along if Wiz were available, but we’re not doing badly.”
Moira’s brow wrinkled. “I wish he was here too. But we cannot even get a message to him, try as we might.” She shook the mood off. “It must be very hard to work with spells without having the magician who made them to guide you.”
“It’s not as bad as it might be,” Jerry told her. “Probably our biggest advantage is that we know all the code was written by one person and I’m very familiar with Wiz’s programming style. Look, a lot of this business is like playing a guessing game with someone. The more you know about the person and the way that person thinks, the more successful you are likely to be.”
He sighed. “Still, it would be nice not to have to guess at all. Besides, Wiz is good. He’d be a real asset.”
“We are doing everything we can to locate him,” Moira said. “Meanwhile, is there anything else you need?”
“A couple of things. First, is there any way to get cold cuts and sandwich fixings brought in? My people tend to miss meals.”
“Certainly. Anything else?”
“Well, you don’t have coffee, tea or cola here, so I guess not.”
“Wiz used to drink black moss tea,” Moira told him, “but that is terrible stuff.”
“Can we try some?” Jerry asked.
Moira rang for a servant and while they waited for the tea, she and Jerry chatted about the work.
“We call the new operating system ‘WIZ-DOS’—that’s the Wiz Zumwalt Demon Operating System.”
“If this thing has a 640K memory limit, I quit!” someone put in from one of the stalls.
“As far as we know there’s no limit at all on memory,” Jerry said. “It’s just that addressing it is kind of convoluted.”
Moira didn’t understand the last part, but her experience with Wiz had taught her the best thing to do was to ignore the parts she didn’t understand. To do otherwise invited an even more incomprehensible “explanation.”
“I’m sure Wiz would be honored to have this named after him,” she said.
The tea arrived already brewed. Moira, who had used it when she was standing vigil as part of her training, thought it smelled nasty. Jerry didn’t seem to notice.
Moira poured out a small amount of the swamp-water-brown brew. Dubiously, she extended the cup. Jerry sniffed it, then sipped. Then he drained the cup and smacked his lips. “Not bad,” he said appraisingly. “A little weak, but not bad. Can we arrange to have a big pot of this stuff in the Bull Pen while we’re working?”
“Of course, My Lord. I’ll have the kitchen send up a pot.”
“I mean a big pot,” Jerry said. “Say thirty or sixty cups.”
Moira, remembering the effect that even a cup of black moss tea had on her, stared at him.
“Well, there are more than a dozen of us,” he said apologetically.
Moira nodded, wondering if there was enough black moss in the castle to supply this crew for even a week.
Fifteen: War Warning
A jump gone awry is one of the hardest bugs to locate.
—programmers’ saying
Bal-Simba was walking in the castle garden when his deputy found him.
“Lord,” Arianne said strangely. “Someone wishes to speak to you.”
“Who?” the black wizard asked, catching her mood.
“Aelric, the elf duke.”
Duke Aelric, or rather his image, was waiting for him in the Watcher’s room. The Watchers, who kept magical watch on the entire world, shifted uneasily at their communications crystals in the elf’s presence.
Bal-Simba studied the apparition as he mounted the dais overlooking the sunken floor where the Watchers worked. The elf duke was wearing a simple tunic of dark-brown velvet that set off his milk-white complexion. His long hair was caught back in a golden filet set with small yellow gems at his temples. His face was serene and untroubled, not that that meant anything. Elves were inhumanly good at hiding their feelings and in any event their emotions were not those of mortals.
Bal-Simba had heard Wiz and Moira’s story of their rescue by Duke Aelric and their dinner with him, but this was the first time Bal-Simba had ever seen him.
Come to that, it is the first time I have ever seen any elf this close,
he thought as he seated himself in his chair.
Duke Aelric seemed not to notice Bal-Simba until he was properly settled to receive his guest.
“I seek the Sparrow, but I am told he is not available,” Aelric said.
“He is not here.”
“Do you know when he will return?”
Bal-Simba considered the question before answering. “I do not. He is off in the Wild Wood, I believe.”
Aelric raised a silver eyebrow. “Indeed? Forgive me if I pry, but when did he leave?”
“Forgive my curiosity, but why do you wish to know?”
“Because he was on business of some urgency when he left my hold to return to your city a fortnight hence,” Aelric said.
Bal-Simba frowned mightily. “He was coming straight back?”
Aelric waved a hand. “That was his plan. He left upon the Wizard’s Way to return here immediately.” He looked sharply at the black Wizard.
“I swear to you he did not arrive here,” Bal-Simba told him. He struck his chest. “Upon my life I swear it.”
“I believe you, oath or no,” the image said.
“I will also tell you that we have been trying to contact him for several days without success. Frankly, we are becoming worried.”
Elf and wizard fell silent, contemplating the implications.
“It occurs to me,” the elf duke said slowly, “that someone may have transgressed upon my hospitality. I do not appreciate interference with those traveling to and from my abode.”
“It occurs to me that Wiz may be in dire danger,” Bal-Simba said, a trifle sharply.
“I hope not,” Aelric told him. “For all our sakes.”
It was Bal-Simba’s turn to raise an eyebrow.
“A matter of forestalling a war between humans and other users of magic, I think,” Duke Aelric explained.
“War?”
“Did you expect your drive to exterminate magical creatures along the Fringe would go unremarked? Or that your expansion deep into the Wild Wood would pass unnoticed?”
“I think that there is a great deal going on out on the Fringe that I and the Council are unaware of.”
Aelric waved a languid hand. “That is as it may be. The Sparrow seemed to feel he could turn this human tide before it came to that.” Then he sobered and power seemed to radiate out of him like a nimbus. “But I tell you this, Wizard. If you cannot find your Sparrow—and soon—then you may have lost your only chance to forestall a war which would rend the World asunder.” He nodded gravely. “Merry part.”
Bal-Simba’s eyes widened at the usage, but he nodded in reply. “Merry meet again.” And the elf duke’s image was gone.
Bal-Simba heaved a great sigh. “When an elf uses human courtesies you know you are in trouble,” he remarked to no one in particular. Then the giant black wizard turned to the gaping Watchers in the pit.
“I want every Watcher we have scanning the World for our Sparrow.” He turned to Arianne. “Set up a schedule so we may search day and night.” Then to one of the wizards with a communication crystal: “Send the word out to all the villages and habitations at once. Wiz must be found. And order the dragon cavalry out to search as well.”
“Lord, do you think he meant what he said about war?” Arianne asked.
“Have you ever known an elf to joke?” Bal-Simba said. “He was concerned enough to come to us. That is more than sufficient proof that something very dangerous is in the air.”
###
“Jerry, I think you’d better look at this.”
Judith was standing at the entrance to Jerry’s stall with an odd look on her face.
“We got the voting module working and, well, I think you’d better see the result.”
Jerry followed her over to her own stall where Karl was looking bemused at three small demons standing together on the table.
“We know that any spell above a certain level of complexity generates a demon as its physical manifestation,” Judith explained. “So we expected this thing would produce demons. But watch what happens when we feed it correct code.
“emac”
An Emac popped up on the desk next to the trio of demons.
“backslash test1 exe”
Judith said and the Emac gabbled at the demons. The demons stood motionless and then the one on the left hummed.
“Okayyy,” it sang in a vibrant bass.
“Okayyy,” the middle one chimed in a rich baritone.
“Okayyyy,” said the third demon in a fine clear tenor.
“Okaayyyyyy,” the three demon voices blended in perfect harmony. Then the sound died away and they fell silent.
For a moment none of the programmers said anything.
“The question is, is that a bug or a feature?” Karl asked.
“I guess that depends on how you feel about music,” Jerry said. “Anyway, we don’t have time to fix it, so we’ll call it a feature.”
Judith looted at the demons and shook her head. “I’m glad we didn’t build four processors. I’m not sure I could take a barbershop quartet.”
“I don’t think you’d get a barbershop quartet,” Jerry said judiciously. “A gospel group seems more likely.”
“Worse.”
###
By nature and training, Danny needed a lot of time to himself. It had always been his refuge in times of trouble and his joy in times of special happiness.
The castle was too crowded for him to be really alone. But he had found a place on the rooftops where he could look down on the Bull Pen and the courtyards. From here he was hidden from view by any of the wizard’s towers and could see out beyond the Wizard’s Lodge, over the tile and slate rooftops of the town and off into the rolling blue distance.
Nearly every morning before he settled down to work, Danny would climb the narrow stairs to the attic and then go up the wooden ladder and out through the trap door that took him to his favorite place on the roof. He was not experienced enough in the ways of this World to know that the scuffmarks on the slates meant someone else came here too.
Today, Danny had changed his pattern. It was late afternoon, normally a time when he would be settled in the Bull Pen and hard at work. But today his code had turned to shit and Cindy Naismith got on his case for something he said. So he left and came back up here for a while.
He wouldn’t be missed, he knew. Not for some little time. Programmers set their own hours and besides, the rest of the team didn’t like him very much.
Well, fuck ’em.
That wasn’t anything new to Danny. Besides, he told himself, it wasn’t like he was goofing off. He was still thinking about the problem, and he needed to clear his head, didn’t he?
There was a soft scrabbling noise on the slate roof behind him.
Danny turned and there was a thin brown-haired girl with enormous doe eyes.
“Hi,” Danny said, half-resenting the interruption. The girl moved back up the roof, away from him. Don’t worry, I won’t hurt you.” The girl froze. “You okay?”
No response. If he moved toward her she would have fled, but he kept his place. She sat down on the roof behind and above him and looked out over the city.
Well, if she didn’t want to talk . . . Danny turned back to watch the clouds himself. It wasn’t as good as being completely alone, but it wasn’t bad either.
Danny had taken to computers as a way to shut out the endless arguments that raged through his home. Later, after the divorce, the computer had become a way out of the loneliness, a friend who never turned its back on you or put you down.
At first he hadn’t cared for programming, just racking up scores on video games. He had taken out his frustrations destroying aliens and monsters by the thousands and scoring points by the millions. Then he found out you could gimmick some of the games by editing character files. From that it was one small step to cracking copy protection to get games he couldn’t afford to buy and one thing led to another. By the time he was sixteen, Danny was a very competent, if unsystematic, programmer.
He was also very, very lonely.
Now here he was in a world something like the one those games were based on. Full of monsters and where magic worked. And he was still just as alone and just as cut off as he ever had been. Well, fuck ’em. He’d get by, just like he always had.
Without thinking, he reached into his pocket and pulled out the sandwich he had stashed there—smoked meat and sharp cheese on a long roll. Danny heard the girl shift on the roof behind him.
“Want some?” She obviously did, but she was afraid to approach him.
“Here.” He broke off half the sandwich and held it out to her. She looked at him intently but didn’t move. He considered tossing the sandwich up to her, but realized it would probably come apart in the air. He settled for reaching back and stretching out his hand.
“Come on, I won’t hurt you.”
Slowly, cautiously, the girl crept down the roof toward him. Finally, she was close enough to stretch out and snatch the sandwich from him. Then she scrabbled quickly back up the roof. The entire performance reminded Danny feeding a particularly shy squirrel.
“What’s your name?” he asked.
“June,” the girl said around a mouthful of sandwich. “I am June.”
###
“This is just like being at fighter practice.”
Karl, Judith and several of the other team members were sitting on a low wall by the drill field watching the guardsmen practice. Under the arches of the colonnade Jerry was sitting on a bench watching girls.
Just then a flight of dragon cavalry swept over the castle.
“Okay,” Karl amended, “it’s almost like being at fighter practice.”
Out on the field, Donal was practicing spear work against multiple opponents.
“Tricky move with the spear,” Karl said to no one in particular as Donal dodged and spun between two opposing swordsmen.
“Why does he keep the butt low like that?” Judith asked.
“He is trying to keep the point directed at his opponent’s eyes,” a guardsman who was lounging nearby said. “That makes it hard to judge the length of the spear.”
Karl nodded. “And it sets him up to make a quick jab to the face, which will make almost anyone flinch.”
The guardsman, a sandy-haired older man, looked closely at Karl. “You sound as if you know something of the art, My Lord.”
“I’m a fighter. Well, an SCA fighter,” he amended quickly. “We used to fight with rattan weapons. For sport.”
“Would not your magic gain you more than weapons skill in war?”
“We don’t use swords and spears in war anymore,” Karl told him. “No, we do it strictly for fun.”
The guardsman’s seamed face crinkled into a frown. “A most peculiar sport, if you do not mind my saying so, Lord.”
“That’s what a lot of people in my world thought,” Karl sighed. “By the way, I’m Karl Dershowitz.” He extended his hand and the other man clasped it.
“I am called Shamus MacMurragh. I command the guardsmen of the castle.”
“Pleased to meet you.”
“Tell me,” Shamus said, “how does our weapons play compare to your world?”
“Very well. We do some things a lot differently and I think we’ve spent more time on the theory than you have, but on the whole you compare very well with our methods.”
“I am very glad to hear it, My Lord,” Shamus said mildly. “Could you perhaps show us how you do these things?”
Karl wasn’t quite sure, but he suspected he had just been trapped. “Be glad to,” he said with a casualness he did not feel.
It took a few minutes to outfit Karl in the padded cloth hauberk, greaves, vambraces and helm the guardsmen used for practice. The shield they brought him was a target somewhat over two feet in diameter. Karl, whose SCA fighting style depended in large part on using the points of a heater shield, felt he was at a disadvantage, but he didn’t say anything.
The sword they gave him was wood, not rattan, and a good deal heavier than what Karl was used to. Still, the balance was very good and it moved comfortably as he took practice swings.
“Remember to pull your blows, Lord,” Shamus said as they faced off. “I do not want to be injured.”
Karl nodded and licked his lips. Shamus moved with a catlike grace that suggested the guardsman wasn’t the one who should be worried.
Karl came in in his standard fighting stance, shield in front, sword hilt over his head with the blade forward and down, resting on his shield.
Shamus looked at him quizzically for a moment and then stepped in with two cuts to the head. Karl was strong, but his wrist could not absorb or stop the blows. His blade was knocked casually aside and Shamus’s sword rang off his helmet. Karl staggered back and nearly dropped the sword.
Shamus grasped his elbow to help support him. “Are you all right, My Lord?”
“Yeah, fine. Uh, in our system if you hit the other guy’s sword, the blow is considered blocked.”
“Matters are somewhat different in our world,” Shamus said dryly. “But tell me, how can you strike anyone with your sword in that position?”
“You mean down in front of the head like that? Easy. You twist your hips, drive your elbow down and throw the forearm out.” He demonstrated. “Like that.”