The artisan monitoring the computers attached to the radio transmitters shouted what Tommy could already see. "It's trying to send messages through the small dimensional tunnels!"
"We are receiving a series of matrices we have not seen before,” Leegh called from the station where she monitored the fake connection to the Kadiil drive. “These could be commands to generate a dimensional tunnel to move the ship."
The programmers had prepared a simulation based on the previous attacks. "Simulation started," Tommy said.
On the monitors, the Kadiil ship disappeared into a wormhole and reappeared about ten thousand kilometers from the image of The People's Fist.
"It is sending commands to create a black hole inside the coordinates of The People's Fist," Leegh reported.
Tommy sent radar telemetry of the ship being atomized, then called to the artisan on the ladder. "Pull the plug!"
They ran the simulation again with The People's Fist at two light seconds from the Kadiil ship, again at three light seconds, and again at four light seconds. Each had the same result with two differences, the messages being sent through the fake wormholes became longer and longer, and the wormhole jump arrays were different.
"Now we will complicate things some," Tommy said, as he added a planet below The People's Hand and The People's Fist at ten light seconds from the star. He then went through the same series of distances. In each simulation the Kadiil ship jumped in via wormhole, destroyed the planet and their ship, then jumped out to The People's Fist to complete the attack.
"Determined, aren't they," muttered Tommy.
"Time to analyze the data. Pull the plug. We will meet here tomorrow at the same time."
# # #
He and Leegh got little sleep that night. Tommy's eyes felt like they had crusted over, and Leegh's tail dragged behind her heavily as they walked back into the hanger. Even so, both were elated at what they had found so far.
"All right, everyone.” Tommy said in the lords’ language. “Let us begin. Since Leegh's discoveries are the most exciting, she will start."
Leegh stood to address the group. "We are certain we know how to direct the drive to create a dimensional tunnel. With some experimentation, we should be able to transport this ship anywhere in the galaxy. The matrices we received include identical coordinate parameters to those used by transit. The only issue is the size of the tunnel mouth. I believe I have located that parameter, but, since our ship is much larger than a Kadiil ship, we must be sure.
"Unfortunately, we cannot perform such experiments here, and we would certainly be followed even if we did escape by dimensional tunnel." Even in her fatigue, she swished her tail from side to side. "However, I will not be discouraged again. Not until I have nothing left to learn."
"We did not learn much from the messages that were sent," Tommy said rising in turn. "As we expected, the code uses the same base twelve numbers as the drives. We would have been surprised to discover anything different. The first and last twelve digits of each transmission are the same. We are assuming that sequence is this ship identifying itself and signing off. We found matrices containing the Kadiil ship's last known position in the same place after the initial sign on in each message. Other matrices identify dimensional tunneling destinations and black hole targets. The numbers in between are still a mystery, but we have made a good start."
# # #
When everyone was ready, Tommy began what he intended to be the first of several more tests. So far, everything sent to the computer had been reasonable. In these tests, he wanted to learn what the computer did when the data received from its sensors defied reality.
"Plug it in," he called.
What the Kadiil saw through its sensors began the same as the first test of the day before: The People's Fist at one light second. This time, however, when the Kadiil jumped in to attack, The People's Fist withdrew to one light second with none of the gravity signatures the Kadiil should expect. When the Kadiil followed, The People's Fist waited and allowed the Kadiil to attack, without effect. The black hole appeared to be instantly neutralized. On the monitor, The People's Fist jumped around the Kadiil, as if taunting it. Other ships materialized on the monitor and danced around the Kadiil. Tommy had drawn on records of ships from the eight species that traded at Toblepas to make his simulation. Each was represented.
"We are getting a steady stream of output from the transmitters through the internal dimensional tunnels," an artisan called.
Tommy instructed the gravity sensors to send his last piece of misinformation: that an object of infinite mass, a black hole, enclosed the Kadiil ship.
"The data rate has increased exponentially, but we're getting it all," shouted the same artisan.
The steady flickering through the Kadiil computer's optical cables stopped. All the artisans watching the data streams and Tommy's own monitor reported output had also ceased.
"It turned itself off!" Tommy said.
He looked around at the tired faces of the workers. "Enough for now. I want ten copies of everything that was transmitted. The Computer Guild will meet in our guildhall in four hours. Leegh, I hope you will join us. Everyone else get some rest. I will let you know when we will run the next test."
# # #
After the general meeting, Tommy had large tables brought into the guildhall. Selecting the artisans who had shown the most promise, he put a copy of the printed transmissions, a stack at least a foot high, in front of each one. He saved two copies for himself and Leegh.
"To begin with, I want each of you to work alone," Tommy said. "Try to find patterns in this data. If you get tired, give someone else your place. Make good notes. Write in the margins. Tomorrow morning we will compare our findings and decide what to do next."
He sat in his own chair and began slowly turning pages.
The first several hundred pages were similar to those he had examined the night before. The same ship identification number followed by positioning arrays mixed with other numbers. After that, the pattern changed. He turned pages more rapidly, searching for anything familiar. Several hundred pages later, the positioning arrays reappeared. He marked the page and returned to the previous group of arrays he had seen. Almost twenty pages of the earlier printout were identical with the later printout. He raised his head and spoke aloud. "It's a memory dump. Most of this has to be a memory dump."
Leegh looked up from her printout. "What did you say?"
Tommy repeated his conjecture in the lords' language. "Before the Kadiil computer shut down, it sent the contents of its entire memory through the transmission tunnel." He examined more closely the pages between the two groups of arrays. "If I can find where it starts. Yes! Here is the identification number repeated twice. The second one might be where the memory dump starts.
"Everyone come here," he said, breaking his own work instructions. "I want to show you what I found."
An hour later, Vent came to Tommy's chair. "Maybe this means something. Since the alphabet is base twelve, I started marking every twelve characters to see if I could find a pattern. Look here, a couple of pages into the dump." He put his finger on the first of some tic marks he had drawn between two characters and repeated every twelve characters after for several pages. "I found a pattern of sorts, but every twenty-four characters, not every twelve characters. If the first two characters of each twenty-four-character group were random, the numbers would range from zero to 20,736 in base ten. Instead, in the sample I marked, the highest number I found in those two characters is four hundred twenty-eight."
"They're operation codes,” Tommy guessed. “They must be machine language operation codes." He stood up. "Continue to work here,” he called to the others. “Vent and I will be working on something else."
To Vent he said, "We need the original computer data. With your insight, we can write a program to do some analysis."
By the day's end, they had extracted just the memory dump of the original data and had begun to write an anal
ysis program. The program's first task was to count the repetitions of the first two characters of what they were calling twenty-four character words. Some of the operation codes were used a lot more than others.
They were soon making another assumption: characters five through fourteen and fifteen through twenty-four of each operation code represented memory addresses within the dump. The third and fourth characters seemed to be modifiers.
Tommy examined a group of operation codes with one address. "These must be branch codes," he finally told Vent, "Codes that tell the program to begin executing in some other place in memory. Let's extend our program to build a map of from and to addresses for the jump operations. Maybe that will show something."
At first, what they found didn't make sense, until Tommy decided the third character pointed at one hundred forty-four registers in memory beginning at address zero. When the indicated twelve-character register's contents were added to the address in the last ten characters of the operation code, the resulting address was always another segment of program, rather than data.
That left the fourth character. For one jump operation code, it always contained zero. The others could have any value from zero to 143.
“Maybe the first jump operation is storing a return address in the first register,” Vent said.
“You have to be right,” Tommy said, nodding. “And the second jump code at the end of the code segment?”
“It has to be loading the return address from the same register and branching back to the original point in the program,” Vent replied.
They had discovered how the language created subroutines.
“You’re getting good at this,” Tommy said, smiling as he clapped Vent on the shoulder.
They changed their analysis program to create a map of subroutines, and from where they were used.
Without their computer program, the job would have been too massive; the dump contained thousands of subroutines and millions of lines of code. They didn't have any idea what the subroutines were doing, but Vent spotted the two things that were obvious.
"Many of these subroutines aren't being used anymore," he observed, "and this jump with no return operation is used to skip big chunks of code."
"And the live code is all over the place in the dump, as if it were written by many people at different times," Tommy added.
They made more progress the next day. By identifying the parts of the Kadiil program containing array commands to the drive, they established the general format of device driver subroutines. Data from the sensor logs made during the last test matched strings of characters in the dump, establishing which driver controlled which sensor. The discovery of the drivers associated with the radios transmitting and receiving through the internal wormholes sent Tommy back to a full meeting of everyone involved in the simulations.
After describing their findings, he continued, "We will now add something new to the simulations. If we assume the Kadiil ship receives orders through the internal dimensional tunnels and reacts to those orders, the next step is to identify where the processing takes place in the Kadiil operating system. We will also need a sample of those orders. I also want to send radio messages to the Kadiil and observe what it does with them. Is it possible to restart the internal dimension tunnels?"
Answering that question took most of a week, and it wouldn't have been possible without Leegh. Tommy was astonished to see her on her hands and knees, plump belly dragging on the floor in front of her short legs, tail wagging behind her, as she helped a human artisan trace circuitry through one of the Kadiil boxes.
With the internal wormholes restarted and new recording devices in place, he began a simulation with a "sane" scenario. Almost immediately, messages began arriving through the wormholes.
The Kadiil computer responded as before but after a noticeable hesitation. If we run enough of these tests, I wonder if it's smart enough to figure out it's being hoaxed.
He began an "insane" scenario, where nothing the Kadiil did was effective against its tormenters. Throughout the scenario, as the Kadiil transmitted an increasing number of messages, the number of messages in reply from the wormhole also increased. The Kadiil repeatedly sent commands to the drive to jump away and finally, when nothing happened, tried to focus a black hole on itself.
As this test ended, as had the final test of the previous series, with the Kadiil transmitting a memory dump and shutting down, a man shouted from the communications desk at the entry to the hanger. “Master Tommy, the bridge officer wants to talk with you!”
“Master Tommy, this is Ulsu,” said the voice on the other end of the wired connection to the bridge of My Flowing Steams. “Ten minutes ago, a nuclear weapon exploded approximately a million kilometers from us in the direction of the nova.”
“I will be there, immediately,” Tommy replied. “Get Leegh.”
# # #
By the time Tommy and Leegh reached the bridge, the instruments had detected two more nuclear explosions, both between the ship and the nova and too far away to damage the ship.
“The last was closer,” Leegh said, “but not by much.”
“They know we are still here because of the last test,” Tommy responded. He looked at the coordinates of the blasts. “Why are they shooting at us there? Maybe--” He pulled up the hatch to the lower deck. “I will be right back.”
A few minutes later he climbed back onto the bridge. “Those blasts are striking where we first emerged behind the nova front.”
Leegh made a chattering whistle. “They are not accounting for the nova wind. If our tests continue to show that we are still here, they may begin to shoot randomly in this area in hopes of hitting us.”
“We had best hurry, then,” Tommy replied.
# # #
When the memory dump from the last test was compared with the previous dump, significant portions of the code had been bypassed, and new subroutines had been added with memory addresses greater than anything in the first dump.
"Whoever is on the other side of those micro tunnels tried to modify the program when it responded irrationally," Tommy told the group. "We might be years trying to program a Kadiil computer, but if we understood the patch commands, maybe we could scramble its memory with garbage."
"Maybe not garbage," Vent said, grinning. "I think I've located the shutdown command code."
Tommy joined Vent in front of two stacks of paper. "The one on the left is the first memory dump, the other one is the second," Vent pointed out. "The address in the first memory register is different, but each points to a memory location containing the same operation code. A code with no modifiers and no memory addresses. If we assume the first memory register contains the address of the executing instruction, that command code is the last thing the Kadiil computer did."
"If you're right,” Tommy said, “we just need to force the Kadiil computer to overlay two locations in memory, the first register and an address to contain the shutdown code. Let's look at the messages going back and forth through those dimensional tunnels."
Sanos was already working on the messages. "The false radio traffic was passed through," he said. "The Kadiil put some code before and after each message, and sent it along."
"That should confuse whoever is on the other end," laughed Tommy. "We sent random numbers strung together. What about incoming messages?"
"Those are confusing me!" Sanos responded. "I got some helpers and we identified several thousand pages of possible messages. In the first half of those pages we found the beginning and end of each message by using the twelve-digit identification number you found." He turned to a marked page. "But from this point on, that's not true."
"Did you check the first twelve digits after the last identification number?" Tommy asked. "Were there repetitions of those numbers?"
Sanos gave Tommy a blank expression and turned pages. "You're right. Here are the identical twelve digits twice in a row."
"Maybe that's the end of the previous mes
sage and the beginning of the next," Tommy said. "Does the pattern continue?"
Sanos flipped more pages, then turned to the last page. "Yes. And the last text ends with the same pattern."
Tommy scratched the back of his head thoughtfully. "I wonder why they changed the ID code," he mused.
From the other side of the table, Vent said, "I think you should look at this! I've matched three examples of code in the messages to the changed code we found after the second test. In every case, the changed code is preceded by a block which includes the address in the memory dump where I found the changed code."
Tommy walked around the table and looked over Vent’s shoulder. After a few minutes, he said, "I think you've found it! That’s how whoever is on the other side of those dimensional tunnels makes program modifications! We could do the same!"
He paused for a moment. "There’re flaws in this idea, though. It just occurred to me that we must know the ID of the Kadiil ship for this to work. And we have no way of knowing if it will process our radio messages the same way as those it receives from the tunnels.”
Tommy pulled up a chair and sat down, placing his chin in his hands. His gaze focused on the ceiling then back on his guild members. “We do know this Kadiil ship's ID, so we can try sending it a radio shutdown code.” He stood up. “Let's try that much, anyway, even if it won't help with the next Kadiil ship we meet."
# # #
Two hours later, everyone except Vent returned to the hanger. Tommy waited for a while before deciding to proceed without him since the test would be brief. They had disconnected the internal wormholes, and Tommy’s network would provide the only data the Kadiil computer would receive. Five seconds into the simulation, Tommy sent a message, as if by radio, formatted to change two memory locations and preceded and terminated by the Kadiil ship's identification code, according to Vent's theory.
The Kadiil computer shut down.
A Larger Universe Page 36