Authors: James L Gillaspy
Tags: #Science Fiction, #Fiction, #Hard Science Fiction
"This is some raised floor," Tommy muttered.
"What’s that?" Seth asked.
"Nothing. Just trying to make sense of how this place
is put together." Tommy tried to follow one of the cables from the desk
above his head through the twisted mass leading to the cube. "These
cables aren’t marked. Do you ever have trouble following them?"
"No. When all this functioned, an apprentice had to
know and recite the location and purpose of every wire as part of the
examination for journeyman."
"And how long did that take to learn?" Tommy
asked.
"Many months. Of course that includes the wires to the
individual track controllers and from them to the drivers along the
tracks."
"Would labeling them be a problem?"
Seth's face flushed red. "You are asking me to release
my guild's secrets?"
"No, I’m asking you to help me help restore your
guild's functions. You can always take the labels off when I'm finished."
A few breaths restored Seth's normal skin color, a pasty
white that had never seen a sun, even the artificial suns of the Commons.
"This will not be easy for me. I gave an oath not to reveal this to an
outsider when I apprenticed to this guild." His gaze swept the room.
"But this is as dead as the guildmaster who took that oath from me long
ago," he paused for a moment, "and Lord Ull commands."
"I think the next step is to take the cover off that
cube. Are you all right with that?" Tommy asked.
"I'll do whatever you say."
When Tommy had the cover off, he, at first, felt defeat.
This computer had also been partially cannibalized. The builders had used
blocks of circuitry that plugged into receptacles built around the inside
periphery of the cube. Several of the receptacles were empty. Tommy pointed
to the gaping holes. "What happened to those?"
"A lord took them. They were used to repair the lords'
weapons control device in the targeting room. I tried to tell the lord his
device wouldn't function unless this device also functioned. I almost lost my
life, and the tracks still don't work."
Tommy sat down on the floor and considered the problem. He
had replaced the hydroponics computers by understanding the devices being
controlled and writing his own programs. That solution wouldn’t work here. To
replace this computer he must have an understanding of its programs before he
could write his own. If the computer had been intact, maybe it would have
contained what he needed, but he wouldn't learn anything from this pile of
junk.
He had to find a way out of this. What would he have done
if his computer at home had died? He would have replaced the parts. Well, he
had no parts for this; he had to replace the entire computer, and that's what
he planned to do. The hydroponics computers hadn't been his first encounter
with that. During his last year on Earth, his dad had let him buy a new
computer. Tommy had built one from scratch with parts from an Internet store,
including new and bigger disk drives. When he had it up and running, he had
copied his personal data onto the new computer from the backup tapes he had
made. That wouldn't work here even if he had backup tapes. The programs that
ran on this cube wouldn't work on a Linux machine even if he could copy them to
the new computer somehow. Backup tapes. Data as important as this must have
been copied to something. A computer like this must have been reloaded from
backup sometime over the last thousand years. If he had the backup, whatever
it was, maybe he could do something.
"What did you use to back up this device?"
"I don't know what you mean."
"The programs and data used to operate this device. Do
you have them recorded somewhere?" Moder hadn't known anything about
programs, but maybe Seth did.
"Programs and data?"
"Instructions inside the device that tell it what to
do."
Seth's face again turned red, and he sputtered.
"What! How did you know! Only masters know that! You are much too young
and not of our guild!"
Tommy again waited for him to calm down. "You would be
surprised at what I know. So, where do you keep copies of those
instructions?"
Except for his hands, which twisted in each other, Seth
didn't move for a long while. His lips were pulled tight under his strange
beard. As Tommy opened his mouth to ask again, Seth walked back to the ladder
they had descended and folded it aside. Where the ladder had touched the
floor, he placed his palm flat and pushed to one side, revealing a storage
space. From this, he lifted one of the circuitry blocks that plugged into the
platforms inside the cube. "Four more of these are hidden in our section,
and I keep another in my quarters. These contain the instructions controlling
this device. Learning of them is part of our most secret rituals that raise a
journeyman to master. All my oaths are betrayed."
"I'm sure you're not going to like what I want next,
but can you print those instructions for me?"
Seth gave up all resistance. He put the block in a case he
pulled from the hole in the floor and replaced the ladder. "You should
wait here. The printers are in a room frequented by the lords. For you to go
there would take preparation, which I haven't done. I'll bring the printed
instructions."
Seth returned carrying a box filled with yellow paper along
with the case he had left with. Tommy looked at the first sheet.
"Yes!" he said.
"You seem happy," Seth said.
"This is a dump, not a formatted listing, which is bad,
but I recognize instructions from a language I've seen before. I found a book
in the first hydroponics farm we worked on. This is written in the language
described in that book."
"I don't understand why you call it a language."
"These are the words this device uses to speak to
itself. They are also the words this device will use to speak to me. Isn't
that a language? By the way, how do you feel about cats?"
Seth had no objections, so Potter joined them each day in
the control room. Potter spent much of his day searching for nonexistent
vermin among the cables. When he wasn't doing that, he was asleep in one of
the extra chairs Tommy brought in or trying to get into Tommy's lap. Potter
was Tommy's connection with home. He worked better when the cat played or
slept nearby.
Hacking the programs printed on those yellow sheets could
have taken months or have even been impossible without a real computer to work
with, but he had some clues on where to start from the programming book. The
language used a three character, base sixty-four, addressing scheme with each
character able to store numbers between zero and 4095. This would allow a
program to address sixty-four gigabytes of data in Earth terms. Each half
character contained the numbers zero through sixty-three with letters of the
lords' alphabet used for numbers above 9 and below sixty-four. The book also
stated that programs were always loaded beginning on a number ending in the
character representing zero-zero.
When he scanned through the listing,
he found a number of addresses ending in zero-zero proceeded with a page or
more of base-64 zeros. If the system were using zero as the character to fill
unused space, these might mark the start of the individual programs in the
printout. At least, he identified many blocks of program code ending that
way.
He next assumed that an operating system existed, and it started
at the lowest possible address. That could mean that anything after the first
string of filler zeros started something besides the operating system. He
identified eight blocks of code above the filler zeroes, each beginning on a
zero-zero boundary, and each ending in filler zeros. After the eighth one he
found an exception that broke the rule: a long block of filler characters,
which passed many zero-zero boundaries, before the next group of program code
began. After the long string of filler characters, the remainder of the
groups, to the last page, fit the rule.
It hit him. This wasn't a backup of an operating computer.
The module returned the computer to its initial state. All the programs were
loaded in internal memory, all of the time. The code groups above the long
block of filler had to be the "application programs" in the sense he
thought of such things. The computer moved the application programs to the
long block of filler to execute, while always keeping a clean copy in high
memory. An external device, like a tape or disk drive, would make the filler
code in this circuitry block unnecessary.
The eight blocks of code above the operating system and
below the execution area had to be something else. He decided he would come
back to that and tried to confirm what he thought so far. First he wrote down
the base sixty-four address of the execution area, and then scanned the
operating system area, page by page, until he found a reference to that
address. He then wrote down each application program's address and searched
for references to it in the operating system printout. He found them, one
after another, sixty-four characters apart. The remainder of the sixty-four
characters were a jumble, but all less than, after conversion, decimal
forty-two. He stared at that for a while before a pattern jumped out at him.
Each "character" contained two symbols on the page, the left and
right "half-characters" each representing zero through sixty-three.
The left "half-character" was always zero, and the right
"half-character" was a letter in the lords alphabet or a zero. If he
ignored the left "half-character" and took the zero to be a space,
the string to the left of the addresses formed a series of words in the lords language.
The program addresses were in a sixty-four character wide "stack."
When he arranged the stack vertically, words in the lords' language leaped
out. These were the program names.
In the eight code blocks above the operating system, he
found another stack containing the addresses of these blocks; each address also
proceeded by a name.
At least the programmer who did this two thousand years
ago wasn't a joker like some on Earth
, he thought.
The names all meant
something and offered further clues.
He decided the first eight programs corresponded to what on
Earth would be called "device drivers." Each one controlled some
physical device. Of course it would be helpful if he could distinguish what
devices were being controlled. One or more had to be the rail guns. These he
had to understand. Possible candidates for the others were the desk and the
monitors attached to the walls in the room above. Those he intended to
replace. Seth said this device communicated with a "targeting room"
run by a lord. That might be a problem. He had also said he could turn and
spin the ship. That might be a problem, too. If this system worked like an
earth computer, the application programs sent instructions to the appropriate
device driver, and the device driver did the actual work with the device. A
program might say, "Display the following message on a monitor," and
the driver would make that happen by sending the message with the appropriate
control codes before and after the message. The rail gun codes might just tell
the individual rail gun controllers to load something, shoot it at a certain
velocity, and expect the gun controller to calculate how; or it could be
sending the complete "how." After two weeks, Tommy had made a start,
but he needed more information to continue.
He found Seth asleep in the antechamber outside the control
room. With his head lolling over his shoulder against chair back, he appeared
even older than he did standing up.
"Seth, I need to ask you some questions." He had
to repeat the statement a moment later after Seth came fully awake. "Do
you have more secrets stored away? Some books or writings describing the
functions of that desk, for example, or maybe the displays that used to be
shown on those screens and what they mean?"
Seth shook his head. "I suppose there is no help for
it. You must have everything." He slumped back in the chair. "The
secrets don't matter, anyway. Have you wondered why you and I are the only
ones here? I am the last of my guild. The other masters have all died. The journeymen
finally became apprenticed in other guilds rather than do nothing here, and no
one has asked to apprentice in this guild since I became guildmaster. Yes,
I'll give you what I have."
"If this works, you'll have a whole new set of
followers," Tommy promised.
Another secret cubbyhole revealed a stack of handwritten
books, and with these beside him, he began tracing through the code in the
printouts, finding first individual instructions, then whole subroutines. He
started out making notes on the paper, but this soon became too cumbersome.
Two days later he had a new computer set up in the room below the desk and had
scheduled the electricians to pull connecting cable to the rest of
"his" network. With this in place, the task went faster. One by one
he understood the drivers and application programs and how they communicated
with the other parts of the system. One surprise he didn't reveal to Seth. If
he had known, Seth could have done more than just control the attitude of the
ship. The lords' targeting functions, which accessed sensors on the hull, were
also included in the programs, but not in the controls on the desk.
# # #
With Seth's permission, Tommy brought up a few of his team
to tear down all of the monitors on the walls. After they replaced the old
screens with twelve of the fifty-inch plasma displays, four to a wall, he
called one of the young men over to where Seth sat in front of the desk.
"Seth, I would like for you to meet Baek. He wanted to
help with the computer replacements, but I convinced him that he could do
better working for you."