End of an Era
Dinosaurs were moving in from every direction. A dozen dark red juvenile tyrannosaurs clustered along the shore of the lake, their bird-like feet giving them excellent traction in the mud. Seven triceratops tanks, garish in their blue and orange camouflage, lumbered in to form an arc to the southwest, heads bent low so that their mighty eye horns stuck straight out. Next to them stood the gargantuan gray sauropod with its skyscraper neck and a tail that seemed to go on forever. Thirty or so troodons milled about, hopping from foot to foot, their stiff tails bouncing up and down like conductors’ batons. Goose-stepping in from the west were five giant adult females of the species Tyrannosaurus rex.
Standing behind the others, one duckbill reared up on its hind legs. It was a member of the genus Parasaurolophus, just like the famous specimen we had at the ROM, a meter-long tubular crest extending back from its skull. At first I couldn’t fathom what that cow-like reptile was doing here. I’d imagined the Hets simply raised duckbills in herds to feed the fighting carnivores. But then the hadrosaur let out a series of great reverberating notes, its crest acting like a resonating chamber. The tyrannosaurs dispersed and I realized that the duckbill was calling out the orders of the Het general riding within it, the hadrosaur’s thunderous voice carrying for kilometers.
I looked at our Jeep, over by the western base of the crater wall. The two tires I could see from this angle were completely flat — pierced open, I suspected, by triceratops horns.
A troodon stepped up to the window that Klicks and I were looking through. It stood on tippy-toe to see in, its pointed muzzle just coming to the bottom of the glassteel. The beast regarded us for a few seconds, gave its weird one-two blink, and then spoke, its raspy voice audible through the air vents around our roof. "Come out now," it said. "Surrender the time-ship. Do these things or die."
The maximum a siege could last would be twenty-two hours; after that, the Sternberger was going home regardless. We could comfortably wait that long since we had plenty of food and water. But it seemed pretty clear that the Hets weren’t just going to hang around outside until the Huang Effect reversed states. They intended to be on board when that happened, bypassing their own extinction.
Klicks ran to get our elephant guns but he shook his head as he passed one to me. "We could pump every bullet we’ve got into that sauropod and probably not even slow it down."
From outside, the troodon’s gravelly voice shouted: "Last warning. Out now."
Klicks grabbed the red tool chest he had heaved through the air earlier and stood upon it, its sheet-metal construction caving in a bit under his weight. He jammed the butt of his rifle into the wire mesh that covered one of the air vents at the top of the curving outer wall, clearing the mesh away. Then he turned the weapon around and pointed the muzzle out. But despite his craning, there was no way he could see out the vent to aim.
"We could shoot out the main hatchway," I said, but no sooner had I done so than I heard the outside latch lifting. I leapt through door number one and skidded down the ramp that led to the outer door, hoping to jam it shut, but before I got there it was kicked open, swinging inward on its hinges. A dancing troodon jumped in, its sickle claws clicking on the metal ramp. I braced my rifle against my shoulder and fired into the thing’s chest. It was blown backward out the door by the blast, but a moment later a second troodon jumped forward to take its place. I fired at it, too, winging it. But I was sure that the Hets had more dinosaurs than I had bullets.
While I was reloading, the second troodon made it through the mandrill’s mouth, one three-fingered hand covering its wound. Klicks barreled past it, running down the ramp to the main doorway, trying to force it shut, but the arm of a third troodon scrabbled for purchase around its edge. Meanwhile, as I rushed to reload, the injured troodon that had made it inside scurried up the ramp and into the habitat. I followed it up. It tried to negotiate its way around the two crash couches to get at me. I fired both barrels into its torso. The creature slammed backward against our equipment lockers and slumped to the floor. The stink of gunpowder filled my nostrils.
I looked back. Klicks had managed to push the main hatchway almost shut, but a troodon arm still stuck around the edge. I heard the crack of breaking bone as Klicks threw his massive shoulder against the door, but the beast held on, its opposable claws snapping open and closed.
I ran for the equipment lockers next to the dead troodon and found the metal box containing my secondary dissection kit. I hurried down the ramp to join Klicks in the cramped access-way. While he continued to fracture the invader’s arm with brutal body slams to the door, I used my bone saw to hack through the limb. Blood spurted everywhere. At last, the arm fell to the floor, twitching, and Klicks and I forced the main door shut. I then dashed up the ramp into the habitat proper and relayed boxes and pieces of equipment down to him. He rammed them up against the door as a barricade. It wouldn’t hold for long.
The main doorway had been our one aperture for firing at the troodons. No — wait! I could shoot through the instrumentation dome. I scrabbled up the ladder into the cramped space. The vertical slit was still open. I rotated the whole thing to bring the opening around to face west, stuck the barrel of my elephant gun through the slit, and squeezed off eight rounds as fast as I could reload. The gunshots echoed deafeningly inside the glassteel hemisphere. Three of my shots missed completely. Three more found solid targets, killing the closest of the troodons. The last two injured a pair of the dancing beasts, hitting one in the right leg, the other in its left shoulder. Both collapsed to the ground.
The parasaurolophus was bellowing commands at the top of its lungs, the two separate nasal chambers that ran through its trombone-like crest each producing separate notes, harmonizing with itself. Apparently responding to the order, one of the triceratopses charged the Sternberger, its haunches pumping up and down as it ran. The ship rocked under its impact, and I was almost knocked off my feet. I tried to kill the horned-face, but my bullets just nicked tiny shards off its bony neck frill. Still, it was something of an impasse: no troodon could approach the ship without me picking it off.
The parasaurolophus barked again. Moments later the sky went dark. A great shadow passed over me. A huge turquoise pterosaur, its vast furry wings spanning a dozen meters, was flapping its way toward the instrumentation dome. Judging by the curving snake-like neck and the incredible size, this was either Quetzalcoatlus or a close relative, a genus known to range from Alberta to Texas at this time. I scrambled to reload, but in my panic sent the box of shells spilling across the floor, half of them rolling out the opening for the access ladder. By the time I was ready to fire, the dragon filled my field of view. My shots tore holes in its turquoise wings, but the pterosaur continued to swoop in, its claws sounding like chalk on a blackboard as they scrabbled for footing on the smooth metal hull of the Sternberger.
The head with its long narrow beak slipped through the observation slit, poking at me from the end of a serpentine three-meter neck. I scrunched myself back against the far wall of the dome. Holding the rifle in both hands, one on the painfully hot end of the twin barrels, the other on the wooden butt, I tried to ward off the creature. Fat chance. Moving with eye-blurring speed, it seized my gun in its jaws and twisted the weapon free with a sharp jerk of its neck. Before I realized what had happened, the beast had taken to the air again, the rifle clamped in its beak. My hair whipped in the breeze caused by the downward thrust of the immense blue-green wings.
There was no point in staying in the dome. I closed the slit, then backed down the ladder. Klicks was pushing the food refrigerator down the ramp that led to the exterior door. I guess he intended to use it to strengthen the barricade.
My heart jumped. "Oh God—"
"What is it?" Klicks said, looking up.
"Your leg."
A grapefruit-sized mound of phosphorescent blue jelly was throbbing on the shin of Klicks’s khaki pants. It must have come from the troodon I’d killed earlier, the one slumped by the equi
pment lockers next to where the fridge had been. Klicks frantically undid his belt and pulled the trousers off, flinging them across the accessway. They hit the wall with a wet splat and stuck. But the Het had been having no trouble percolating through the cotton weave and some of it was still on his skin. Klicks was near panic. I grabbed a scalpel from my dissection kit and scraped the dull edge of its blade across his shank, gathering up pieces of Martian. After each stroke, I flicked the knife, sending dabs of blue jelly flying into the dissection-kit box. A minute later I looked up. "I think I got it," I said.
"All of it?" Klicks sounded desperate.
"Well … most of it, anyway. Let’s hope there’s enough Deliverance left in your system to prevent what did get in from interacting with your cells."
"What about that?" he said, pointing at his pants.
I got a pickax and used it to knock the trousers off the wall into a stasis box, then tossed in the dissection kit as well and slammed the silver lid shut. We went up the ramp and back into the main habitat.
Suddenly the ship rocked again as a pair of white triceratops horns burst through the side of the hull. The Hets must have learned from their brief mind-melds with us that the Sternberger was like a yo-yo, attached by a mathematical string to the Huang Effect generator 65 million years in the future. Even partially smashed, the timeship would still dutifully return to its launch point in midair between the Sikorsky Sky Crane and the ground. It didn’t have to be intact, but they did have to be inside its walls.
The ship buffeted once more, its hull deforming where a second triceratops rammed against it. Moments later there was another impact, and another pair of horns pierced the wall, this time less than a half-meter from my head.
The parasaurolophus’s call split the air again. Outside the window, the giant tyrannosaurs, looking like blood clots the size of boxcars, growled in response.
"We’ve got to do something," I said.
"Good thinking, genius," said Klicks. "What should we do?"
"I don’t know. But we can’t let them have access to the future. Christ, they’d take over the whole planet." The ship rocked again, another triceratops smashing into it. "Dammit!" I slammed my fist against the wall. "If only we had some weapon, or … or, hell, I don’t know, maybe some way to turn off the gravity-suppressor satellites."
"A coded signal in binary," said Klicks at once. "1010011010, repeated three times."
"Christ, man, are you sure?"
Klicks tapped the side of his head. "The Martian may be dead, but his memory lingers on."
I was over to our Ward-Beck radio unit in two bounds and flipped the master switch on the black and silver console. "Do you think we can get a signal to the gravity satellites?" I asked.
Klicks squinted at the controls. "The satellites are obviously still in good working order," he said. "And the Hets do use radio in very much the same way we do."
"What about the satellites below the horizon?"
"The off signal will be relayed by those satellites that do receive it," said Klicks. "We only have to connect with one. That makes sense, of course; otherwise, there’d be no way to operate them all from a single ground station."
"Won’t we need a password to access the satellite computers?" I asked, peering at the console, trying to remind myself of what all the buttons did.
"You said it yourself, Brandy. The Hets are a hive mind. The concept of ‘passwords’ is meaningless to them."
I reached for a large calibrated dial. "What frequency should the signal go out at?"
Klicks closed his eyes and tilted his head slightly, listening intently. "Let’s see … three-to-the-thirteenth-power cycles per…"
"Cycles per second?"
"No. Shit! Cycles per unit of Martian time-keeping."
"And how long is one of those?"
"It’s… uh, well, it’s not long."
"Great." The Sternberger shook under another impact. Triceratopses seemed to be using their horns to perforate a hole in one side of the ship. They were making damn good progress, too.
"Well, can’t you program the radio to try a range of frequencies?" asked Klicks.
I looked at the controls. "Not directly. But I might be able to hook the radio up to my palmtop." There was a small patchcord bus running vertically along one side of the radio console. "I’d need the right cable, though."
Klicks picked up the electronic camera. "What about this one?" he said, unplugging the fiber-optic serial cable I’d used to connect it to my palmtop earlier.
"Well, that’s the right type of cable, yes, but it’s the wrong gender. The radio expects a female plug; that one has male connectors at both ends."
"I think I used a gender-changer when I hooked up my spectroscopes," Klicks said. He stepped over to the compact lab and started rummaging around. "Here it is." Klicks handed the little doodad to me, and we completed the connection between the radio and my palmtop computer. "Now can you send the signal?"
"Yes, but only in one frequency at a time, and — damn it. It would take all afternoon to send that binary sequence in even a small sampling of possible radio frequencies." I shook my head, discouraged. It had sounded like such a good idea. "Besides, we don’t even know how long each of the binary pulses should be."
"One time-keeping unit each." Klicks paused, realizing what he’d just said. "That means if we get the right number for the frequency, we’ll automatically have the right length for the pulses." He paused once more, straining to hear that inner voice again. "And don’t bother trying to modulate the bits into the carrier wave. Just send them directly by interrupting the transmission for the zeros."
"Okay." I wished my nose would stop hurting. "I’ll write a little program to try different variables for the length of the time-keeping unit." The cable wasn’t long enough to reach back to my crash couch, so I had to type standing up, my palmtop balanced on the fake woodgrain molding that surrounded the radio console. "Any guess as to what value we should start with?"
Klicks closed his eyes. "Try … try four or five seconds. I don’t know, but that feels about right."
The radio console could only accept instructions in CURB, a standard communications-processor language. It’d been ages since I’d programmed anything in that. I hoped I remembered enough; we certainly didn’t have time for me to thumb through the on-line manual. My fingers danced, calling up a little calculator. I worked out three-to-the-thirteenth, the number of cycles per unit of Martian time Klicks had specified, then typed: Set Frequency = 1594323. Frequency = Frequency + …
Another ceratopsian head smashed against the hull, and this time it ruptured. I heard the roar of water rushing out of the tank beneath our feet. Bet that surprised them.
I decided to start a little lower than Klicks’s guess. Set Time-unit = 3.000 s. Goto Send…
The ship shook again as a triceratops skull smashed against it. "Can’t you go any faster, Brandy?"
"Do you want to do it, fathead?"
"Sorry." He backed away.
The horns had pierced the hull in enough places now to loosen a large piece of it. Through the glassteel, I could see the ceratopsian lumbering off.
I typed out the program’s final line, then issued the compile command. One, two, three error messages flashed on the screen, along with the corresponding line numbers. "Boolean expression expected." "Type mismatch." "Reserved word." Damn.
"What’s wrong?" said Klicks.
"Error messages. I made some mistakes."
"Did you want — ?"
"Shut up and let me fix them, please." I switched back to the program editor and hit the key to jump to the first error. Ah, the Boolean problem was simple enough: just a typo, "adn" instead of "and"; serves me right for running with AutoCorrect turned off. I fixed the misspelling.
Crrack!
I swung briefly around. A boneheaded pachycephalosaur was ramming its skull against the perforated hole in the wall. It was now painfully obvious what the Het we had found inside the dis
sected bonehead had been up to: evaluating the dinosaur’s potential as a living battering ram. How fortunate they’d been able to find an application for it so quickly. "They’re almost through," shouted Klicks.
I tapped out the command that jumped the cursor to the second error. Type mismatch. What the hell did that mean in this context? Oh, I see. I’d tried to do a mathematical operation on a text variable. Stupid.
The self-harmonizing notes from the trombone-crested parasaurolophus split the air, presumably calling out for the bonehead to charge again.
The cursor jumped to the third error. Reserved word? That meant the name I’d chosen for a variable — FREQUENCY — was one the program didn’t allow, because it used it exclusively for some other function. Okay, let’s try a different name. Call it SAVE_ASS, and hope that it does. I almost cracked the palmtop’s tiny case with the force with which I bashed out the compile command again.
I held my breath until the message flashed in front of my face: "Compilation successful. No errors."
"Got it!" I said.
"Terrific!" crowed Klicks. "Start transmitting." I highlighted the program file name and held my finger above the Enter key.
"Hit the damn key!" said Klicks.
"I…"
"What’s wrong?"
"You know what’s going to happen/’ I said. "I’m not sure I can…"
"If you don’t want to press it, I will."
I looked at him, held his gaze. "No," I said. "Failing to act is a decision in and of itself." I pressed down on the key. The program started running and the radio began transmitting.