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."
Seth jerked upright in his chair. "What do you mean, work for me?"
"He wants to be your apprentice. Isn't that right, Baek?"
"Yes, Tommy. Um, yes, Master Seth, if you’ll have me."
Seth coughed, then cleared his throat. "Ah, yes." He looked around the room. "I will need some help after all these changes. Come to my quarters if you're finished here."
"Actually, he's not finished yet," said Tommy, "and you need to move from that chair. We're replacing the desk with something different and he will be helping move it."
When Seth and Tommy were alone in the control room, tears rolled down Seth’s face. "Thank you. I didn't believe you when you said I would have an apprentice again."
Tommy smiled, "Of course you must have apprentices. You'll have too much to do alone, and you don't think I'm going to stay here to help, do you?"
Seth wiped his eyes, "I suppose not." He paused, then blurted, "Apprentices? More Apprentices?"
"Sure. Why not? Isn't defending the ship important? Now get out of the way so we can install the new control desk."
# # #
Having completed his analysis of the central program, Tommy went to the nearest rail gun to examine its controlling device. He had discovered the main controller sent general commands, and the local controllers at the guns computed the instructions to the magnetic generators wrapping the tunnels. Tommy expected to find the controller at the gun's "breech" end, near the access port he had entered before. Instead, Seth led him almost to the hull, down an access corridor alongside the gun tube.
He decided that this made sense. Having the controller next to the exit end minimized signal travel time to the accelerators with the f
astest cycle interval. The rails were divided into sections, each insulated from the next, and each having its own magnetic field generator. When a projectile, the magnetic field armature, moved down the gun, each field generator accelerated it toward the next generator in line. As the projectile began moving, the track controllers had a relatively long interval to process the next pulse command. By the time the projectile reached the reached the hull, the track controllers had only microseconds to respond, a very short time by the processing standards of the lords' computers.
Seth also had the backup circuitry block for these devices, and Tommy had a working model that could be dismantled. They had more resemblance to the process control computers in the hydroponics farms than they did to the original control room computer.
The next day, he had the electricians pulling a double line of cable--redundancy was important--down the access corridors, and he picked three hundred four of the older model computers he had originally called junk to replace the lords' devices. Any one of them could outperform the fastest lords' computer he had seen so far. Each rail gun would have two computers guiding the magnets. If the first one failed, the second would take over. The next time someone took a shot at his ship, he wanted to be certain the ship could shoot back. He also chose a backup computer for the control room.
He spent the next several weeks writing programs. Duplicating the signals sent to the magnetic field generators worked with the individual rail gun controllers, as it had with the hydroponics farms. His program was different from the program in the original controller, but it produced the same output.
After he finished the rail guns, he wished he had time to do the whole thing in a different way. He had an idea that a microprocessor installed close to and controlling each accelerator, with some attached sensors, would be much better. The central computer would download the timing sequence, and the microprocessors would sense the projectile and pull it along at the right instant. That would eliminate the problem of how much time was required for one rail gun computer to talk to many electromagnets along miles of tunnel. He wasn't sure he knew enough to make that work, but it would have been fun to try.
Tommy then wrote programs for the central computer that performed the same functions as the original control device. Wherever he had to--for example, with the attitude controls--he duplicated the communications being sent and received. For the parts of the system now under his control, he set his own standards. No one here could tell him different.
He also completed the programming for the second item on Lord Ull's list, the targeting controller. That system duplicated the functionality in the backup circuitry block and had been installed with the other programs in the rail gun central computer.
Tommy asked the electricians to pull cable to the targeting room from the rail gun control room and sought permission, through Valin, to install the replacement system there. The simulations had given reasonable results. He was eager to perform a real test.
Each day for the next week, Seth escorted him into the lords' decks to the targeting room. His first time into the targeting room had given him a shock. A thick layer of dust blanketed every surface.
"Doesn't anyone come in here?" Tommy asked.
"The last lord who supervised this area died years ago, and the lords' council didn't appoint anyone else. My guild is also responsible for the maintenance here, but I stopped sending anyone when the last journeyman left the guild. I just didn't have reason to."
Tommy sneezed. "Well, this dust isn't good for computers. On the other hand, maybe no will care how we set this up. We can clean up the dust. Catering to a lord would be a pain."
At the beginning of the next week, he had everything ready for a test, but had to wait three additional weeks for the ship to arrive at a star system. Seth had strongly discouraged his firing a projectile at the surrounding blackness while the ship traveled between star systems.
The targeting control room had larger floor space and bigger walls than the track control room. The larger walls supported additional monitors fed by video cameras and radar installations on the ship's hull. At first, Tommy left the additional monitors alone, but they bothered him. Two thousand years of service had left scratches on the glass, and, besides, they didn't look good next to his plasma displays. He couldn't replace them--he didn't know enough--but maybe some group of artisans did. After all, someone had converted the TV interview from his home to ship's technology. Maybe the same group could do the reverse. Three weeks gave him an opportunity to find out.
# # #
On the day of their entry into the star system, Tommy, Seth, and Seth's apprentice, Baek, waited in the targeting control room. On the walls, all the old monitors had been removed. He had found a guild in charge of radio transmissions, whether voice, video, or radar: the Communications Guild. Dropping Lord Ull's name had given his request a priority.
The plasma displays designated for outside video showed the surrounding blackness. The bridge, at the ship's top level, wouldn't turn on the radar until the ship emerged from transit blackness into normal space, so those displays were also black. Seth had received permission to test fire one projectile as soon as he received clearance from the bridge, so they had loaded one forward tube from the automated rack behind the breech.
Tommy had made good his promise to do things differently. He had placed graphics of his own design on the central display. They showed four circles of lines corresponding to the rail guns around the ship's circumference, and two sets of four lines, one indicating the forward firing rails and the other the rearward firing rails. One forward line glowed bright green with an orange dot at the breech end. The orange dot represented one of the solid metal, toothpick-shaped, missiles in the loading rack. He had some ideas about different kinds of ammunition designated by different colors, but that was all they had for now. The other three forward lines showed as a darker green with no dot. The lines in the four circles were gray. Beside each line were numbers in the lords' script. These indicated such things as time to reload and projectiles remaining in the rack. The display might not have everything needed, but the new information was much more complete than that shown on the original displays.
When the operator designated a target, the display would indicate which rails were approaching a firing time for the selected target and a countdown to the calculated shoot. Since firing wasn't instantaneous--it took just over three seconds for the projectile to accelerate the length of a rail gun--even discounting time to target, the calculations required were complex. With the old system, the operator had used the information provided to shoot a gun when the moment seemed right. That explained the multiple broadsides Tommy had seen--shoot everything you've got and hope one of them hits. Faster computers and, Tommy hoped, better programs should mean more hits with fewer shots. Guided missiles would have helped, too, but for some reason the lords had none of those. The racks contained nothing but the gigantic solid metal “toothpicks.” Once launched, the projectiles were no better than bullets from a gun. A ship under acceleration could dodge even a broadside if the initial distance was great enough. His programs considered straight-line acceleration to lead the target, but would be confused by evasive action.
The human occupants of the ship might be ignorant of when the ship entered and left the blackness that indicated faster than light travel, but that didn't apply to those in the lords' section, at least for those in the targeting room. From a speaker on the ceiling came, in the lords' language: "Breakout in thirty seconds," followed by a countdown.
The countdown had reached twenty when Seth pulled Tommy and Baek to their knees and said, "Lord Ull is here."
Lord Ull leaned against the wall next to the open door behind them. "Continue. Stand. I am here to see what you have accomplished. You cannot work if you are on your knees."
Tommy and Seth stood. Baek had never seen a lord, and Seth had to drag him to his feet.
The previous time Tommy had met Lord Ull, she had been wet. Now,
her dry fur emitted a skunk-like musky odor that filled the small room. This would be a bad time to get a migraine, he thought. He was sure he had taken his pill that morning, but this would be the first real test. He forced himself not to laugh. First test of his medicine, first test of the rail guns. Sitting all alone and programming is a lot less stressful than this.
The countdown reached zero, and the video screens revealed a grainy picture of the space around the ship. The plasma displays were capable of more detail than the old cameras on the hull could resolve. The screens designated for radar lit, indicating an active feed.
When the radar screen showed an almost immediate return from directly ahead, Lord Ull pushed away from the wall and punched on the intercom. "What is that?"
Before the bridge answered, Tommy sat down in one of the low chairs in front of the console and typed commands on one of the two keyboards they had installed. He selected and amplified a video camera pointed in the same direction as the radar return. A gray sphere like the one that had attacked them floated in front of them.
A different voice confirmed that they were seeing the same sphere. "Ull, the ship is The Extended Claws. Somehow, they are here ahead of us, and we have arrived inside the range of their guns."
"This is impossible," Lord Ull said as an alarm sounded. "They could not have known what system we would visit next." She looked at the distance-to-object numbers on the radar display and confirmed the pilot's assessment. "We are too close to dodge everything they will shoot at us, and we don't have time to calculate transit. It is the end."
A Larger Universe Page 13