7) Detente

Fall 1985

After a two year hiatus from college, the fall of 1985 marked my second year back. I was technically a sophomore, but by procrastinating the humanities core I had progressed through to upper level computer science classes.

Texas State had a particularly strong Computer Science program. It owed its early start in the field to famous alumnus Lyndon Johnson. During his presidency Johnson personally redirected a computer to his little known alma mater in San Marcos, TX. The retiring military computer had been originally slated for the Ivy League. I felt a certain kinship when I first heard the story. Even the esteemed faculty members had taken *extreme measures* to get computer access. We were all alike.

—

I’d spend my two years away mostly as a *computer consultant*. Usually this meant contracted temporary work. Data entry or secretarial style typing. I was always happy when I got to train my own replacement and move on.

Evenings and weekends I taught myself how to program. One semester in college had shown that BASIC was not the wave of the future. I spent my initial salary on versions of Apple Pascal and FORTRAN. The book “Hands-on Pascal” became my first tutor. I went straight to Wirth’s as my second. The seminal FORTRAN language seemed dated by comparison.

The pirate group experience later motivated me to learn 6502 assembly. My first scratch program was a three day marathon session implementing Conway’s Game of Life. I’d seen the mathematical rules in a magazine but I’d never seen them run. A quick low-res implementation seemed just the test for my new skills.

I spent the first day getting it to work. The second day was spent making it run faster and faster. I’d noticed that every time I had made the program faster, I’d invariably made it shorter. By the end of the second day it was down to 280 bytes. The third day was spent obsessing over every opcode and byte. I replaced jumps with branches because they took less cycles and saved a byte. It was a clear win. When I was done it was 260 bytes. But at that point I couldn’t stop. Not until it was 256 bytes. It had to fit in one memory page. There was no reason it had to. I just wanted it to. No one would know. No one would appreciate the feat. Just me. It was a purely personal triumph.

It was the first time I understood the true meaning of hacking.

—

Microcomputers were still rare at Texas State. Fanatics, like me, brought their own. There were a few in the library, yet none in the Computer Science department. Everything there was done in a lab of terminals connected to the mainframe.

Bringing my own tools gave me a unique advantage. I would write, compile and debug my programs in my apartment. Once the code worked, I could transfer it to the mainframe. I never had to compete for access. I got to hang in the lab purely to socialize.

There was no common FTP facility at the time. I just modemed the mainframe, opened an editor and let the Apple re-type it for me. A quick remote compile, run, and print and I was done. I’d swing by and pickup the printouts just before class.

Every time you edited source or ran a program to test its output, the system incremented a file revision number. Professors didn’t care what the revision was. But among geeks, turning in assignments with a low revision number was a mark of status. My assignments always had a revision number of 1.

There was only one other person who worked the way I did. His name was Loyd. I saw his printouts from time to time. His revision number 1’s printed out as “Mentor”, mine as “Capt Morgan”.

—

Loyd had a certain celebratory status because he ran his own BBS. It was limited access which kept rumors swirling. Some called it a phreak board. Others wanted to access its rumored warez. It was so mysteriously elite that few dared look him in the eyes.

A common friend introduced us when he learned we were both Apple geeks. It turns out Loyd was indeed as smart and skilled as everyone said. But like me, he was more shy than sinister. He’d seen my printouts and knew who I was, but without a formal introduction we’d have never spoken.

I don’t remember if I asked or he offered, but he gave me access to his board the first time we met. I figured how elite can it be? He let me in. It had the usual stuff you found on BBSs of the time. Interesting text files, utility programs and a lot of chat. I didn’t frequent it much. Not that it wasn’t cool, it definitely was. I was just skittish.

I had gotten into trouble during my sabbatical. It was a fact I kept very private. The computer incident came with a strict admonishment to avoid anything potentially notorious. It was a threat I took very seriously. I’d quit the pirate group immediately. It was my biggest sacrifice. I’d only been to three meetings but I learned more there than in my first year in college. I’d quit BBSs too because of their dubious reputation. “To hell with the war,” I surrender! I was all alone again. It was unbelievably depressing.

Life turned around and began recovering at Texas State. I was learning an enormous amount and relished finally having other smart people around. I resolved to ignore the war and to not to fuck up again. I checked Loyd’s board from time to time but avoided posting. I knew it was anti-social and paranoid but I took advantage of not really needing to post. Loyd worked in the lab and had his own office. Finding him in person was trivial. Much easier than perpetually redialing.

—

Unfortunately there were no hands-on microcomputer programming classes at Texas State. I took a class that semester in microprocesser assembly languages but it was taught using a simulator on the mainframe. The same way Gates and Allen had written Altair BASIC ten years before. Comparing and contrasting the 6502, 6800, and 8080 provided valuable clarity. Editors and dev tools were nice, but there was no substitute for bare metal.

The most exciting thing about microcomputer assembly is direct access to the hardware. Changing pixels, moving images, clicking the speaker, reading the keyboard, buttons and joysticks. The microprocessor was just a fraction of the experience.

Inspired by the class I began disassembling an Apple game called Bug Attack. It was like a big puzzle. Each byte represents something, I just had to go step by step thinking like a computer until I could identify each byte’s correct interpretation. I wasn’t going to use the resulting code. I wasn’t working on anything that needed those routines. I just wanted to learn the techniques. Understand how such things could be possible.

I was seeing beyond the code.

“Don’t erase, move and redraw. Instead, make the image a few pixels wider and include the blank background. Then you can erase the old and draw the new in one step!”

“Oops! Don’t make the image bigger on both sides. You only move in one direction at a time. Make two images! One moves left. Another moves right. More memory, fewer cycles!”

At first I just wanted to know how it drew the shapes so fast without flickering. Then I wondered how it made sounds. Before long I had disassembled and printed the entire game. I penned colored lines to signify the loops. Named the anonymous routines. Reconstructed many of the shapes on graph paper.

Astonishingly, I could read thought processes as easily as their results. I was seeing into the mind of the developer! The process was invigorating.

—

Euphoria is half wasted if not shared it with others, so gathering up my early printouts, I headed for campus. I gleefully flagged the first CS guys I knew from the hallway and bent their ears for twenty minutes. I explained the color coded arrows, memory location notations. Showed off my bitmap grids and shared my new insights into high speed blitting. Both nodded in appreciation as I spoke.

When I finished speaking I didn’t get the response I had expected. The first said something to the effect of, “Wow! But are you allowed to do that?” The second followed with, “I thought it was protected? I mean like company secrets.” The odd non sequitur was a bit deflating. They hadn’t empathized at all. They recognized my triumph as something akin to a salacious conquest. Gossip to be discussed in hushed tones. I could see curiosity in their eyes yet wariness on their face. As if they risked ostracism just for knowing. I’d peeked through a forbidden window to lear at someone’s naked code.

These were upper level CS honor students. Geeks in most regards. But unlike me they hadn’t grown up fighting to learn computers. They had gone to college because that’s what high school honor students do. Once finished with their core classes they had to choose some major and computers seemed like the future.

Only Loyd actually shared my feelings. I brought my printouts into his office almost as a last resort. He looked at my diagramming with a Cheshire grin commenting on each page before I could complete a sentence. He shared a couple of disassembly stories of his own. It wasn’t a long talk, five or ten minutes, but it was re-inflating. Loyd and I were totally different on the outside but inside we were somehow alike.