Authors: Rick Cook
“In my world we used to do things like that all the time.”
Shiara smiled. “Things work differently in this world, Sparrow.”
“I don’t see why,” Wiz said stubbornly.
Shiara sighed. “Doubtless not, Sparrow. You are not a magician. You do not know what it is like to actually cast spells, much less weave them. If you did it would be obvious.”
###
Wiz wasn’t sure who had said, “Be sure you’re right and then go ahead,” but that had been his motto ever since childhood. The stubborn willingness to go against common opinion and sometimes against direct orders, had gotten him the reputation for being hard to manage, but it had also made him an outstanding programmer. He was used to people telling him his ideas wouldn’t work.
Most of the time they were wrong and Wiz had always enjoyed proving that. In this case he knew he was right and he was going to prove it.
All the same, he didn’t want anyone to know what he was up to until he was sure he could make it work. The thought of Moira laughing at him was more than he could bear.
Just inside the Wild Wood, perhaps two hundred yards from the keep of Heart’s Ease, was a small log hut. From the stuff on the floor Wiz suspected it had been used to stable horses at one time. But there were no horses here now and the hut was long deserted. Wiz cleared out the debris and dragged a rude plank bench which lay in a corner under the window. There was a mouse nest in another corner, but he didn’t disturb that.
The next problem was writing materials. This world apparently wasn’t big on writing, at least there weren’t any books in Heart’s Ease. The usual material was parchment, but he didn’t have any. Finally he settled on shakes of wood split from the logs in the woodpile and wrote on them with charcoal.
Fundamentally, a computer language depended on three things. It had to have some method for storing and recalling data and instructions, instructions had to be able to call other instructions and it had to be able to test conditions and shift the flow of control in response to the results. Given those three very simple requirements, Wiz knew he could create a language.
His first experiment would just be to store and recall numbers, he decided. He wanted something useful, but he also wanted something that would be small enough not to be noticed, even here in the quiet zone. Besides, if magic hurt Shiara he did not want to make detectable magic.
Drawing on what Shiara had told him, he put together something very simple, even simpler than the fire spell he had discovered by accident.
Although the spell was simple, he labored over it for an entire day, checking and rechecking like a first-year computer science student on his first day in the computer lab.
Late that afternoon he picked up a clean slab and a piece of charcoal. His hand was shaking as he wrote 1 2 3 in large irregular characters on the wood. Then he very carefully erased the numbers leaving only a black smear.
“Remember,” he said and passed his hand over the board. There was a stirring shifting in the charcoal and the individual particles danced on the surface like an army of microscopic fleas. There, stark against the white of newly split wood, appeared 12 3.
“Son of a bitch!” Wiz breathed. “It worked.”
He stared at the reconstituted numbers for a long time, not quite believing what he had done. He repeated the experiment twice more and each time the characters or designs he scrawled on the board and erased reappeared on command.
Okay, the next step is a compare spell. In IF-THEN. For that I’ll need . . .
Then he started as he realized how late it had gotten. He still hadn’t cut wood for the next day and it was almost time for dinner.
For a moment the old fascination and new sense of responsibility warred in his breast. Then he reluctantly put down the board and started back to the keep.
If I don’t show up soon, someone is likely to come looking for me,
he thought.
Besides, they’ll need wood for tomorrow.
No one seemed to notice his absence or made any comment when he disappeared the next day after his stint at the woodpile. The comparison spell also proved to be straightforward. The final step was the calling spell, the spell that would call other spells. That was the key, Wiz knew. If it worked he had the beginnings of his language.
Again, Wiz worked slowly and carefully, polishing his ideas until he was sure he had something that would work. It took nearly three days before he felt confident enough to try it.
Once more he wrote a series of numbers on a clean slab of wood. Then he erased them. Then he readied the new spell.
“Call remember,” he commanded.
There was a faint “pop” and a tiny figure appeared on the work bench. He was about a foot high with dark slick hair parted in the middle and a silly waxed mustache. He wore white duck trousers, a ruffled shirt and a black bow tie. Without looking at Wiz, he passed his hand over the board and once again the bits of charcoal rearranged themselves into the numbers Wiz had written. Then with another “pop” the figure disappeared.
Wiz goggled.
A demon! I just created a demon.
Shiara had said that once a spell grew to a certain level of complexity it took the form of a demon but he had never expected to make one himself.
He had never considered what a command would look like from within the computer.
I
never had to worry about that,
he thought, bemused.
This particular command looked darned familiar. Wiz didn’t know for sure, but he doubted that bow ties and waxed mustaches were worn anywhere on this world. After wracking his brains for a couple of minutes he remembered where he had seen the little man before. He was the cartoon character used to represent the interpreter in
Starting Forth,
Leo Brodie’s basic book on the Forth language.
That made a crazy kind of sense, Wiz told himself. What he had just written functionally was very close to a Forth interpreter. And he was basing his language in part on Forth. Apparently the shape of a demon was influenced by the mental image the magician has of the process.
I wonder if he speaks with a lisp?
Then he sobered. More to the point, how could he be sure that his language’s commands would respond only to the explicit spells that defined them and not by some chance idea or mental image? Wiz made his way back to the castle in deep thought.
###
It wasn’t at all as easy as that. The first thing Wiz discovered was that the universe was not orthogonal. The rules of magic were about as regular as the instruction set on a Z80. Some things worked in some combinations and not in others. Murphy said “constants aren’t” and Murphy was apparently one of the gods of this universe.
He was uncomfortably aware that he didn’t really understand the rules of magic. He deliberately limited his language to the simplest, most robust spells, counting on the power of the compiler to execute many of them in rapid succession to give him his power. But even that turned out to be not so simple.
There were some things which seemed to work and which were very useful, but which didn’t work consistently or wouldn’t work well when called from other spells. Wiz suspected the problem was that they were complex entities composed of several fundamental pieces. He deliberately left them out of the code.
After all,
he rationalized,
this is only version 1.0. I can go back and add them later.
He benchmarked his compiler at about 300 MOPS (Magical Operations Per Second). Not at all fast for someone used to working on a three MIPS (Million Instructions Per Second) workstation, but he wanted reliability, not speed.
Besides, my benchmarks are for real,
he told himself,
not some vapor wafting out of the marketing department.
There were other problems he hadn’t anticipated. Once he tried to write down a simple definition using a combination of mathematical notation and the runes of this world’s alphabet. He gave up when the characters started to glow blue and crawl off the board. After that he was careful never to put a full definition on a single piece of anything. He split his boards into strips and wrote parts of code on each board.
The clean, spare structure of his original began to disappear under a profusion of error checking and warning messages. To keep side effects to a minimum he adopted a packaging approach, hiding as much information as possible in each module and minimizing interfaces.
Wiz spent more and more time at the hut poring over his tablets and testing commands. Sometimes the mice would come out and watch him work at the rude plank bench under the window. Wiz took to eating his lunch in the hut and left crumbs for the mice. Winter was a hard time for the poor little things, he thought.
Moira noticed the change in Wiz, but said nothing at first. Part of her was relieved that he was no longer constantly underfoot, but part of her missed the ego boost that had given her. Deep down there was a part of her which missed seeing Wiz constantly, she finally admitted to herself.
If Shiara noticed, she said nothing. She and Wiz still talked magic, but now it was no longer an everyday occurrence.
What Ugo noticed was anyone’s guess. Probably a great deal, but the goblin kept his counsel and grumbled about his chores as always.
###
Like a small boy with a guilty secret, Wiz went well beyond Heart’s Ease for the first test of his new system. He found a sheltered glade surrounded on all sides by trees and bushes. There he set to work on his first real spell.
There was a jay’s tail feather lying on the leaves, slate blue and barred with black. Wiz picked it up, held it by the quill and slowly and carefully recited his spell.
Nothing happened. The spell had failed! Wiz sighed in disappointment and dropped the feather. But instead of fluttering to the ground, the feather rose. It rotated and twisted, but it ever so gently fell upward from his hand.
Wiz watched transfixed as the feather wafted itself gently into the air.
It wasn’t much of a spell, just enough to produce a gentle current of air which could barely be felt against the outstretched palm. But Wiz was elated by its success. He had actually commanded magic!
###
They marked Mid-Winter’s Day with a feast and celebrations. Ugo cut a large log for the fire. They had mulled wine flavored with spices, nuts, dried fruits and delicacies. With the nuts, fruit and spices Moira whipped up what she called a Winter Bread. It reminded Wiz of a fruitcake.
“In my country it is the custom to give gifts at this time of the year,” Wiz told them. “So I have some things for you.”
Wiz was not very good with his hands, but from a long-ago summer at camp, he had dredged up the memory of how to whittle. He reached into his pouch and produced two packages, neatly tied in clean napkins for want of wrapping paper.
“Lady,” he said, holding the first one out to Shiara. She took it and untied the knot by feel, fumbling slightly as she folded back the cloth. Inside lay a wooden heart carved from dark sapwood, laboriously scraped smooth and polished with beeswax until it glowed softly. A leather thong threaded through a painstakingly bored hole provided a way to wear it.
“Why, thank you Sparrow,” Shiara said, running her fingertips over the surface of the wood.
“This is for you,” he said holding the second package out to Moira. Inside was a wooden chain ending in a wooden ball in a cage.
“Thank you, Sparrow.” Moira examined her present. Then her head snapped up. “This is made from a single piece of wood,” she said accusingly.
Wiz nodded. “Yep.”
She stared at him gimlet-eyed. “Did you use magic to get the ball into the cage?”
“Huh? No! I carved it in there.” Briefly he explained how the trick was done.
Moira softened. “Oh. I’m sorry, Sparrow. It’s just that when I see something like that I naturally think of magic.”
“It’s a good thing I didn’t make you a model ship in a bottle.”
“No,” she said contritely. “I’m sorry for believing you had gone back on your promise not to practice magic.”
“It’s all right,” he mumbled uncomfortably.
In spite of that, the holiday passed very well. For perhaps the first time since he had been summoned, Wiz enjoyed himself. Part of that was the holiday, part of it was that he now had real work to do and part of it—a big part of it—was that Moira seemed to be warming to him.
###
Wiz was chopping wood the next morning when Ugo came out to see him. “More wood!” the goblin commanded, eyeing the pile Wiz had already chopped.
“That’s plenty for one day,” Wiz told him.
“Not one day. Many day,” the goblin said. “Big storm come soon. Need much, much wood.”
Wiz looked up and saw the sky was a clear luminous blue without a cloud in sight. The air was cold, but no colder than it had been.
“Big storm. More wood!” Ugo repeated imperiously and went on his way.
Well,
thought Wiz,
it’s his world.
He turned back to the woodpile to lay in more.
All day the sky stayed fair and the winds calm, but during the night a heavy gray blanket of clouds rolled in. Dawn was rosy and sullen with the sun blushing the mass of dirty gray clouds with pink. By mid-morning the temperature had dropped ominously and the wind had picked up. Ugo, Moira and Wiz all scurried about last-minute tasks.
It started to snow that afternoon. Large white flakes swirled down out of the clouds, driven by an increasing wind. Thanks to the clouds and the weak winter sun, dusk came early. By full dark the wind was howling around Heart’s Ease, whistling down the chimneys and tugging at the shutters and roof slates.
For three days and three nights the wind howled and the snow fell. The inhabitants warmed themselves with the wood Wiz had cut and amused themselves as they might in the pale grayish daylight that penetrated through the clouds and snow. They went to bed early and stayed abed late, for there was little else to do.
Then on the fourth day the storm was gone. They awoke to find the air still and the sky a brilliant Kodachrome blue. Awakened by the bright light through the cracks in the shutters, Wiz jumped out of bed, ran to the window and threw the shutters wide.