Wednesday, June 6, 2007

"Ancient" Technology

If you read my previous blog, you know that I've been taking a trip down memory lane to my high school days and before. In cleaning out my parents' house, I've been finding bits and pieces of history: homework assignments, journals, report cards, pictures. With all these "treasures" just waiting to be discovered, it's becoming hard to actual get any throw-out work done at house, as the minute I grab a box, I see some of these trinkets of my past. So, naturally, I have to stop and look at them all. I suppose many people would just go ahead and dump it in the dumpster. Alas! I've been on a quest to "find myself" for the past few years, so finding stuff like old papers, etc. gives me a lot of pleasure, a certain sense of groundedness. As we age, our memories tend to forget the reality we lived in in the past. Finding an artifact from your past--especially something like a journal that you had to keep in English class--is both gratifying ("I was a darned good writer back then.") and somewhat disheartening ("Yikes! I thought I was a better speller!").

So, the other day I'm going through a closet and, lo and behold, here's this book on programming in BASIC (Beginner's All-Purpose Symbolic Instruction Code) for the Wang 2200 computer I used in "Computer Math" in high school. The copyright date on the book is 1976; I started taking Computer Math a couple of years after that, and it changed my life forever.

Talk about the memories flowing back. I'd been a science geek kid since I was in kindergarten! During show-and-tell in second grade, I had attempted to explain the three states of matter (solid, liquid, gas) with a candle, Peter Pan peanut butter lid, tongs, and an ice cube. If there was an Apollo mission in space, I was glued to the TV for every moment of the coverage. Mom and dad had always fostered my wonderment with science and technology. They both worked for Oak Ridge National Labs (ORNL), dad as a graphic artist and mom as a secretary. The highlight of my year was when Union Carbide would have a "family day" and open up the lab to family and friends so you could see what people did for a living. I distinctly remember standing at a railing looking down into a giant "swimming pool" at the blue-white glow of the High-Flux Isotope Reactor (HiFIR) at ORNL as a kid. (Yes! A nuclear reactor! I know you're incredulous, but the late 60s/early 70s were a different time. Pre-Three Mile Island and Chernobyl. Nuclear energy was our friend.) So I was all ready for a career in a white lab coat. And what scientist didn't use a computer, even back then when "microcomputers" were as big as a roll-top desk?

Case in point, the aforementioned Wang 2200. As I was entering high school, the school purchased two Wangs: one for use in keeping library records, the other for classroom use. The models they purchased looked similar to the picture at left, though the CRT (monitor "box") incorporated a cassette data drive and an old IBM Selectric typewriter was hooked up as a printing device. Though computer math was considered a senior course, I was able to weasel my way into it just by hanging around the computer center, talking with friends that were already taking the course, and picking up a few things. I also joined a computer Explorer post during that period. (Explorers was a program set up by the Boy Scouts for young men--and women!--"exploring" a specific career area. For example, other Explorer posts in the area were devoted to law enforcement and firefighting.) Happily, the post was sponsored by the local Wang dealer, so I was already familiar with the hardware and how to operate and program it.

The school's Wang 2200s had a whopping 8 kilobytes of memory--kilobytes (1,000), not megabytes (1,000,000), and certainly not gigabytes (1,000,000,000). The floppy disk drives (the vertical slots in the CPU box, bottom right) were a full 8 inches in diameter. These were true "floppy" disks, as they were composed of a thin, flexible shell enclosing a mylar disk with a magnetic coating that served as the recording media. They held a full megabyte (1,023 kilobytes) of data. At Explorer's, we learned that by cutting a slot at a certain place on the shell would allow to you access "side B" with another megabyte's worth of code, although you couldn't access both sides at once. Like an LP record, you would have to take the disk out and flip it over.

Software for the computer? None. If you wanted a program to do something, you had to write the code yourself, in BASIC. The school could've purchased some programs available commercially, but back then software was almost as expensive as the computer itself. And since the whole purpose of the computer math class was to teach kids how to program themselves... So, when the computers were purchased, everybody had to "roll their own." (The brainiac students ended up writing a cataloging program for the library's Wang.)

Of course, we didn't have Windows' lovely graphical interface; likewise, the first Mac was at least five years off. In the late 70s/early 80s, though, Xerox's Palo Alto Research Center--PARC--was beginning to develop a graphical interface using a new input device they called the "mouse." One day a young kid by the name of Steve Jobs visited PARC, and later duplicated Xerox's research and built the second most powerful technology empire in the world. To be fair, at that time Xerox didn't think that the idea had any potential and were merely indulging their researchers. Ironically, at this same time, a nerdy kid named Bill Gates was pulling a similar stunt with IBM.

To use the Wang, you had to use cryptic verbal commands like "SELECT DISK 310" and "LOAD DC F" to get the computer to do what you wanted it to do. And each program ran serially from first line of code to the end. If someone said "event-driven software," they must've been talking about driving a hot babe to a concert. So programming was really and truly a separate "language" you had to learn to speak. Thankfully, BASIC was designed to be very conversational. Commands like "PRINT 'YOU WIN!'" and "LET X = 1" were self-explanatory. So it was a good language for aspiring young programmers to start with before they graduated to more cryptic and powerful languages like PASCAL and FORTRAN.

I spent many an hour on the Wang. I would wheel into the computer lab between classes and, if someone wasn't already using it, jump on. Needless to say, I was tardy to English, French, Economics, etc. Somehow, we did end up with some games someone had written. But the graphics on the Wang were all character based and the only sound it could output was a beep, so you had to use your imagination. A screen shot of "Star Trek," probably one of the most popular games, is at right. But we had to write more serious software, too. I developed a program that would ask a user questions and, based on a scoring system, evaluate his/her risk for a heart attack. I also was instrumental in finding a bug in the library computer's software. I even took a stab at writing a grade recording/computing program. Pretty soon, people were coming to me to ask questions instead of the other way around. Eventually, I was able to work my way up into the elite few in computer math that even the instructor consulted on difficult problems.

Even when, during my senior year, the school purchased two early model Radio Shack TRS-80s (aka "Trash 80s"), I continued to prefer the Wang system. Being developed for big business made it a far more elegant platform to work on, even if the TRS-80s had double the memory and the ability to display more than alphanumeric graphics. The Wang's floppy drives were vastly superior to the TRS-80s storage system, which consisted of a $30 Radio Shack cassette tape player that was unreliable, slow, and highly inefficient. With the cassette system, you would spend all class period loading a program only to have the computer tell you "LOAD ERROR" just as the bell rang. But the TRS-80s were destined to be the future. They were about an eighth the size of the Wang, had the aforementioned 16 K of memory, and cost probably 10% of what the school had paid for one Wang system. So, even back then, we were learning that technological development was moving along at a break-neck pace.

Alas, I didn't go into computer science in college. It would've been fun. However, back then, math skills were critical in programming computers, and my grades in Algebra I and II and Geometry hadn't exactly been stellar. (Trig? Me?! Yeah, if they'd let me stay at high school another year.) So, in assessing my skills my senior year, I decided the only thing I was really good at was music. The rest, as they say, is history.

Or is it? I somewhat kept up with programming. As a music education student, I took a programming language called PILOT (Programmed Inquiry, Learning or Teaching) designed for ease of use so that teachers could develop instructional software for their classes. When I learned WordPerfect, I got tired of doing tedious, repetitive projects and delved into its macro command language. Years later, I did the same with Microsoft Office products. Starting with the 1997 version, Microsoft sought to integrate Office's crude macro language into its Visual Basic (VB) programming language so that developers could take advantage of Word/Excel/Access/etc.'s capabilities for processing words and numbers. The result they called Visual Basic for Applications, and I became very proficient with using it to efficiently manipulate data for reports, tables, graphs, etc. I've also tried to keep up with VB, though only recently, with the 2005 .NET edition, have I done so seriously. I'm currently taking classes in VB 2005 in the hopes of furthering my career.

Which brings me to the present. I had this old BASIC programming manual for the Wang 2200 and I got to thinking, "I wonder if other people liked using the Wang as much as I did?" A quick Google turned up Wang2200.org, which had tons of history, documentation, specifications for the old Wang systems. Some programming guru had decrypted the 2200s operating system and written an emulator (a program that "emulates" another computer or programming environment) which I downloaded. The site even has all the old games available for downloading and playing on the emulator. (The Star Trek screenshot is from the emulator.) I've been having been having a lot of fun with "relearning" the Wang's ancient dialect of BASIC. In a way, it's a bit like taking Latin: You know nobody's actually speaking the language anymore, but you see its roots in all the modern languages.

No comments: