Sitemap

Unknown Command

6 min readApr 20, 2023

--

This week, I’ve been working on a Command Line Interface (CLI) project at school. It’s by far my favorite project so far, and has consumed me in ways no other concept has throughout the course curriculum. I’m already dreaming up little programs and games I want to create in this medium.

I believe there’s a specific reason I’m so enamored by CLIs.

Roughly 37 years ago, my parents bought an Apple IIe. And I fell in love. They got the works:

  • Dual Disk ][ drives
  • Monitor II
  • A9M0303 Imagewriter dot matrix printer
  • 80-column text card
  • Apple Mouse

Some of my first memories involve that machine. I remember the day they set it up in the home office. My muscle memory can likely intuitively feel the power switch on the back of the case to the left, and I can still hear the “<BOOP> <click-click-click-click-click>” bootup sound it would make when you flicked it on.

Press enter or click to view image in full size
An Apple IIe in all its glory
There’s my girl, right there

The IIe was the first Apple home computer to ship with the ProDOS operating system. After flashing the “Apple //e” ASCII logo, and following what would be an interminably-lengthy startup process by today’s standards, the screen would greet you not with a welcome page or list of menu options, but with a single “]” followed by a blinking cursor indicating you were on the command terminal.

Nothing could have been more enticing to my 5-year-old imagination and attention. I was enamored by this machine.

If you didn’t already know what you were supposed to do next, the computer wasn’t really going to tell you. I knew from watching my family that you could type in certain words on that line and the machine would make things appear on the screen.

I would spend hours pecking various words on the keyboard, hitting ENTER, and seeing if I could coax the Apple II into showing me any of its secrets. Almost invariably, everything I’d type would prompt the response “Unknown command” followed by the blinking cursor of the command line. I was not deterred.

I’d type things like “start”:

“Unknown command”

Eventually I tried talking to the machine conversationally. I’d type “hello”:

“Unknown command”

I tried “hi”:

“Unknown command”

Get W’s stories in your inbox

Join Medium for free to get updates from this writer.

I entered “bye”:

After I hit the “ENTER” key, the strangest thing happened: Nothing. The computer didn’t tell me “Unknown command,” it simply displayed the blinking cursor again. This might have seemed a failure, but to me, this was the ultimate success. It meant I was doing something that the computer understood. I surmised that “bye” was evidently a known command!

I grabbed a piece of paper and giddily wrote down “bye”. I hid this paper under the computer’s integrated keyboard to reference later, and resolved to pay more attention to the actual words I’d see the adults type onto the screen.

Days later, I was in my room when I heard the “<BOOP>” of my mom starting the Apple. I ran into the office to perch over her shoulder and observe. The first thing she typed was a word I didn’t know: “catalog”. This caused an array of other words and numbers to appear on the screen in an orderly, listed fashion.

Nervous of showing her the location of my fledgling command list (why are kids always hiding stuff?), I devoted every neuron in my brain to remembering the spelling of this new command word. I quickly ran from the office to write it down in my room, knowing I’d learned a password to unleash a goldmine.

Once I had the machine to myself again, I added “catalog” to my official list, and then typed it into the command line. I was greeted by the file list. Finally! A list of more words I could potentially type to do things.

Press enter or click to view image in full size
This is what success looks like

The screen showed lots of other words I didn’t recognize, but it included one I was familiar with: “MACPAINT”. This was the program that used the mouse that allowed you to make pictures on screen. You probably guessed what I typed next…

“MACPAINT”

“Unknown command”

I was back to square one. This was a genuine wtf moment for me. All of these new words on the screen seemed useless to me. After exhausting all of them, I was defeated for the day. But not deterred.

Eventually I observed my mom using the “RUN” command before typing something from this list of words. That made things happen. I tried this on my own with MACPAINT one day, and was delighted to spend the following several hours doodling on the screen.

The next day, I tried to RUN another program from the CATALOG I’d seen my mom use before: PRINTSHOP. This caused all kinds of havoc.

The screen almost immediately filled with gibberish text. Page after page of constantly-loading, indecipherable nonsense. It wouldn’t stop. I panicked. Clearly I was breaking the machine. I frantically reached behind the computer, flipped the switch off, and ran from the room, vowing to never touch the damn thing again.

I spent weeks nervously waiting for the day my mother would discover that I’d broken our family’s very special, very expensive equipment.

But that day never came. She used the computer regularly and didn’t mention that anything was wrong. Maybe I’d managed to stop it before it could destroy itself? I still very much wanted to use the machine myself. Perhaps I would give it another go some day.

The next time I saw my older brother typing away at the Apple, I finally decided it was best to ask how to make it work. I’ve always been kind of an independent loner who likes to figure stuff out for himself, but clearly I needed some guidance.

Within five minutes, he explained to me how the catalog file system worked. How the list of things I was seeing on the screen were actually files stored on disks in the drives next to the machine. How I would usually first need to LOAD a file to the machine’s memory before I could RUN it. He even showed me how my previous attempt to RUN the unLOADED PRINTSHOP program caused the computer to treat it as a text file, which made all the gobbledygook appear on screen that fateful day.

We take for granted today that our machines are user-friendly, and our programs and operating systems are as intuitive to use as possible. Truth be told, when the Apple IIe and ProDOS were launched, they were hailed as an easy-to-approach home computer and operating system. It’s bonkers to me that entire generations of people learned to use programs and computers with virtually no guidance from the software and hardware itself. How hard would it have been for programmers to include some basic instructions on the catalog screen telling you to LOAD and RUN programs?

Side note: I eventually learned that a lot of this instruction appeared in the written manuals that came with the machine. This might seem silly today, but when your system has only 64 KB of memory (and its programs had even less), you don’t waste space with things like instructions when users are already used to learning things from a book.

Even today, if you try to work with your machine from your terminal’s command line, you’re basically on your own unless you come armed with knowledge, or until you happen upon a command that works.

I try to keep these early life experiences in mind as I work on my CLI. It’s ridiculously fun thinking of my 5-year-old self encountering what I’m programming today. I think I’m gonna try to help him along the way, though I might leave a few mysteries for him to explore. I wouldn’t have been so driven to learn about computers if they hadn’t forced me to figure out how to get past “Unknown command”.

--

--