It was 22:30 and the store was empty. The shelves were stocked, Smoothie and Reg were out on the floor looking after the store, and Ellica was seated on a stool in front of the checkout machine, holding a keyboard connected to the console shell in her lap.
The machine booted up fine. It loaded the bios, scrolled through a wall of diagnostic text, then… a loading symbol. A loading symbol that never went away. Ellica frowned.
“Why’s it hanging here?” she muttered to herself, tapping a few keys. Scowling, she tapped a few more, getting no response. She sighed. “Hard lock again,” she groused, reaching over and power-cycling the machine.
Again the machine booted, loaded the bios, scrolled text quickly past Ellica’s sight, then displayed a loading symbol and stopped doing anything else. She peered at a remote debugging display on her shell, then let out an aggravated snort. “It’s not even the same place this time! The call stack’s totally different. Ugh. Fine.”
She opened an access panel and reached in to actually plug a physical cable into the console redirection header, the other end connected to her shell. Maybe if she dumped the diagnostic text to her shell, she could make some sort of sense of this, even if it meant poring through kilobytes of esoteric debug lines.
It wasn’t supposed to be like this. It was supposed to be easy. Frustrated, she tapped the “Capture” control on her shell and power-cycled the machine again.
Same song and dance, but this time, she got the log dump. Scrolling to the top, Ellica pored through the messages, which started out looking pretty normal. About halfway through the boot process, though, most of the loading processes started to fail. Not uniformly, but one or two at first, then more, then all of them. No error codes, though, just “process failed.” No explanations, no alerts. Like the machine just gave up.
“Well something’s gotta be taking them down. Memory corruption, maybe?” She ran the machine through a quick memory test, which came back clean. Like Alan had said, it didn’t seem to be a hardware issue. “Come on, sweetie,” she said, patting the machine on the chassis. “What’s wrong? Tell Mama Elli now, okay?”
The machine was silent.
“ ‘Beep boop maybe I have a virus, Mama Elli,’ ” Ellica mumbled to herself. “ ‘Maybe my executables are corrupted.’ ” She continued muttering indistinctly to herself unintelligibly, carrying on two sides of an imaginary conversation as she coded a simple Hello World program and inserted it at the top of the boot sequence. Nothing fancy, just dump a line of text into the log to confirm that the machine still remembered how to run code.
Ellica patted the machine again. “I know sweetie, I’m trying,” she said abstractedly, her mind already racing. The ‘o’ changing to a ‘p’ was a single bitflip, that could have signified any number of things, though apparently it wasn’t a memory error, which would have been her first guess. Dropping the ‘l’, though, that was a different matter. Perhaps it skipped a cycle during a copy operation? Maybe a branch target went the wrong way?
It was kinda funny that it happened to spell a word, but more concerning was that there were two different errors in close succession. There really wasn’t much that could have gone wrong in the userland code, a Hello World was about as simple as it gets. Maybe… iyesu. Maybe something was going weird in the kernel?
The expression on her face was something like the kind you might expect from someone tasked with bathroom duty after a particularly sick customer passed through. Still, though. Only thing to be done was dive in. With a sigh, she reconfigured the kernel to accept debug connections from her console, setting a breakpoint for the moment when her code tried to print the text. This was gonna take forever.
“Okay sweetie, I’m gonna give you this text string but you gotta take real good care of it, okay?” Ellica murmured, stepping through instructions one after another, keeping an eye on a memory monitor. “ ‘Beep boop you got it, Mama Elli,’ ” she continued in a high-pitched whisper. “ ‘Not gonna let any bits flip this time!’ ”
Suddenly, Ellica was startled by a giggle from the doorway. She whirled and caught sight of Reggie, who was watching her work with a broad grin. His pale-blue, spotted face was fixed in a broad grin, monochrome navy eyes crinkled with mirth. “Oh my stars that is so cute,” he murmured.
Ellica’s cheeks flushed. “Iyesu, Reggie, how long have you been standing there?”
“Well I walked in like a couple minutes ago, but you looked like you were concentrating really hard and I didn’t want to bother you,” he replied. “Then you started doing the thing that pet owners do and it was fantastic.”
She began to fume but then evidently reconsidered. “Well… yeah, okay,” she begrudgingly allowed. “But you can’t tease me about it, okay?”
“But it’s so teaseworthy,” Reggie objected. “Little teases? Occasional teases? Why’re you working on that thing, anyway, I hear they’re cheap for the company to refurbish.”
She shrugged and started fiddling with the holster at her hip, snapping it open and closed. “I dunno, really. I mean, at first I just kinda wanted to prove I could, y’know? But now it’s just bugging me. There’s gotta be some reason it’s busted, there’s always a reason, but this? This is just weird. Y’know?”
“I mean, no, I don’t,” Reggie said, walking over to the vending machine and pressing his handshell to the pay strip. “But like you can pretend that I do if you want.”
“Okay so like,” Ellica said, turning back to the display and tapping at a key over and over again, “people sorta think that shells just act up sometimes for no reason, right?” Tap. Tap. Tap. “But they don’t, I mean, unless you’ve had a technomancer mucking with it, it literally can’t do anything it wasn’t programmed to do.” Tap. Tap. Tap. “Sometimes you didn’t mean to tell it to do that, but you can always trace it down and figure out what you did wrong. Not like—” Tap. “Urgh! A flipped bit and a skipped character, again!”
With a moan of frustration, she turned the display to her coworker and gestured at it with a can you believe the nerve kind of expression.
Reggie laughed. “Help world!” He said. “Maybe it really is talking back!”
Ellica laughed. “I know, right? But I dunno, Reg, like, I kinda feel bad for it. Is that weird? Like, if they just strip and refurbish it no one will ever know why it was acting up, and…” She narrowed her eyes. “You’re gonna tease me about this too, aren’t you.”
“Mm-hmm!” He sipped his drink, ice-blue eyes twinkling with mirth. “But it’s kinda sweet too!”
She kept her eyes narrowed for a moment longer, then shrugged. “I suppose that’s fair. But I mean hey, I get to sit on my ass in the breakroom during my shift, so that’s something.”
“There is that,” Reggie admitted, shrugging. “Well, how bout I leave you to it.”
“You on your fifteen?” Ellica asked. “You need me out front?”
“Nah, just curious to see what’s got you so fascinated. It’s dead as hell out there.”
“Well, I mean, I guess anytime you want to hear me babytalk a busted machine you know where to find me?” She snorted. “I mean, it’s not like I can embarrass myself any more.”
“Aw, that’s not a winning attitude!” Reggie winked, set his half-finished drink on the table, and walked back out into the store.
Casual as she’d been about it, this whole thing really was getting weirder and weirder. The problem apparently wasn’t in the kernel, which meant… the firmware? The BIOS? She sighed and walked over to the vending machine to grab a drink of her own. This was just like having an argument with her mam, she thought, doesn’t matter what you say, she’ll twist it around until it means something else. She pinched the bridge of her nose.
“Okay,” she said reasonably, taking a sip that she didn’t even taste, “you clearly have some issues of your own to work through here, don’t you?” How do you even debug a BIOS, anyway? They didn’t cover that kinda stuff until third year. “Is it that I’m not good enough for you? Is that what’s going on here?”
A low buzz suddenly came from the console’s speakers, lasting about a second.
She sighed and shook her head. “Typical mam, taking everything I say and making it about her. How do I even… oh, I see, gotta connect to the debug headers…” Following instructions she’d pulled up on her handshell, she connected yet another cable in through the access panel. A new set of displays popped up on the console and she scratched her head. The new Etherlogic BIOS crystals were arcane, and the debug interface was one step short of gibberish to her. “I’m sorry I’m not doing what you were hoping I was gonna do, okay? This is just really important to me, I have to be my own person, all right?” She reached out to power-cycle the machine yet again.
For a moment, the shellscreen lit up at its maximum brightness, dazzling Ellica. As her vision returned, she saw the altered text of her own program on the screen again:
“Would you please stop yelling at me?” Ellica said, rubbing her eyes. “It’s bad enough having to put up with all your ‘back when I was—’” She blinked, finally registering what was on the screen. “Oh great. A second bitflip and a second skipped character.” She peered down at the debug interface, her brow furrowed. “Sweetie, I’m flying blind here. What in the world are you trying to tell me? ‘Beep boop Mama Elli, maybe one of my component loci is violating its interface contract!’ Okay, honey, sure, that’s great, but how in the world am I supposed to figure out which one? Where do I even start?”
With another low buzz followed by some random waveform noise, the screen flashed again and, to Ellica’s surprise, loaded the checkout program.
No, wait. Not the full program. It booted straight into the product display, with no touch controls or menu options available. And then, a second later, an item appeared in the product listing:
Med. Shopping Bag 0.1C
Then, a moment later:
Help Work 0.0C
Ellica peered at the display quizzically. “Something in the recognizer module, maybe?” She leaned over and peered at the recognizer field generator, but it was clean, perfectly aligned, shining even. Huh. They never looked that good. Apparently Mr. Morganstern’s wife had done a pretty thorough checkup on it. At the very least, there were no medium-sized shopping bags stuck in it. And how in the world had the output of her test program gotten into the recognizer interface? She idly waved her hand through the field, pondering.
It felt… cold. Noticeably colder than the air around it.
The speaker let out another randomized set of tones, and more items appeared on the screen.
Med. Shopping Bag 0.1C
Med. Shopping Bdg 0.1C
Med. Shappng Ba 0.1C
Med. %%%%ping 0.1C
ping Med. 0.9C
A pause. Then:
Help Work 0.CC
“ ‘Help work’. Yeah.” She sighed and petted the machine reassuringly. “Doin’ my best here. Why ‘medium shopping bag’, anyway? I wonder what the ID code is for that.” Ellica laced her hands behind her head and stretched backwards. “And what is up with that recognizer field? Is it setting up harmonics with the store’s climate generator or something?”
Hooooonk, said the console.
Ellica chuckled. “You said it, sweetie.” She contemplated the display for a long moment. “Well, it’s as good as any other idea I’ve got,” she finally said, levering herself off the stool and twisting to stretch her cramped back muscles. “Be right back.” She wandered over to the door of the breakroom, muttering, “Thanks for the adversity, Lord.”
She wandered down the aisles until she caught sight of her shift supervisor running inventory in one of the aisles. “Hey Smoothie!” she called. “Would you mind grabbing me a medium shopping bag?” It sounded ridiculous even to her.
Smoothie looked up and frowned. “Why?” She asked. “And why can’t you do it yourself?”
She didn’t have a particularly good answer for that. “Mostly cause I’m lazy,” she said, walking the two feet the Good Lord gave her down the aisle toward the front of the store where the working checkout machines were. “The machine back there is acting real weird, I wanted to try running some recognizer tests.”
After a few moments of staring, Smoothie said, “you know where they are, knock yourself out.”
A couple minutes later, she was sitting back down in front of the broken machine. “Told ya I wouldn’t be gone long. Didja miss me?” She tapped a few keys on the debug shell, setting it to capture diagnostics. “Okay, let’s see. What happens if I give you an actual medium shopping bag, huh?” She swiped the bag through the recognizer field.
She sighed and checked the diagnostic logs.
“Well that was exciting,” she muttered. “C’mon, sweetie, I’m trying here.” She waved her hand through the field again, hoping to get, well, anything to happen. This time, it almost felt like a shock—the cold ran up her arm and down her spine, forcing an inward breath that she didn’t control.
That… didn’t feel like an electric or cold shock. Ellica had fired a biomagical gun enough times to know the feel of a shock by now, and that… wasn’t it. That was something else entirely.
“What—” she began nervously. “What is going on with that recognizer field?” She peered at the screen, still showing the same gibberish as before. “Okay, right, so maybe it’s—”
Abruptly, the screen went dark. At first, Ellica assumed that it had shut off, but then a flicker of movement caught her eye. It almost looked like… but that was impossible. It… almost looked like the screen was a window, and something was moving in the darkness behind it. Ellica leaned in, squinting, trying to make out the details—
When a grey hand slammed into the window with a bang!, and an eyeless, gaunt face let out a muffled open-mouth scream, wailing incoherently for just a moment before flickering and disappearing.
Ellica didn’t remember letting out a shriek that escaped the breakroom and echoed out into the store. She must have, though, since her coworkers arrived to find her on the floor, the stool toppled, pistol in hand and taking a very shaky aim on the broken checkout machine.
The console sat, silent and still, then booted up to a loading symbol, which swirled and swirled and never resolved.