Ward Christensen’s Story 01

I lived through much of computer history as the details below will indicate – what I FORGOT was my first job at IBM was “wiring a plugboard” (i.e. “programming” the machine) THEN machine language (binary) THEN assembler, THEN the high level languages.

But being in “sales” (the technical support of…) I didn’t get much “hand’s on” so pursued a computing HOBBY with a fervor!  Read on for the excruciating (yet condensed) details.

I’m someone who started designing and building my own computer in 1974, only to be saved from that awful fate by the introduction of the first Intel 8080 Kit via the Popular Electronics January, 1975 issue.

I taught myself enough electronics to build my own circuit boards and connect a Selectric typewriter, “flying head floppy”, video display, and eventually a $2800 8M (no, not GIG) hard disk, etc.

Having done my own HW I was incompatible with everyone — so had to invent “Xmodem” to transfer files via modem to people, and then with the “it can answer the phone itself” modems, the BBS.

I love programming most, and programming languages.

After winning the West Bend Wisconsin Sr. High School science fair with a home made “Computor xxxxx I mean Computer” project, a local company asked if I’d like to program their mainframe, so I wrote my first mainframe program in 1965 in “Autocoder” for an IBM 1460, then decided to work for IBM and went back to college for 3 yrs and went to work for IBM from which I retired last November after 44 years.

In 1968, IBM started me on (gasp) 1400 machine language (SO low level, that we punched our programs in “binary” on punched cards and loaded them right into memory).  Then S/360 assembler, Cobol, and eventually Fortran, 8080 assembler, 8086 assembler, Basic, C, Pascal,  APL, REXX (and “Kexx” as implemented in Kedit for the PC), and even some languages which I never quite “understood” e.g. prologue.

I once wrote a compiler for adventure games (in basic) and an interpreter (in assembler) to make them fast.   Friends then started writing their own adventures.

I became famous in the small space of 8080 for a disassembler (“Resource”, get it?  Re-Source?haha), disk utilities, encryption, and many other things.

I wrote my own AI and had “expert” game players, “random” game players, and “learning” game players playing each other – to the amazement that a LEARNING player would NOT LEARN WELL from a random player – the random player was SO DUMB, that its many mistakes would make the LEARNING thing think it had learned something – but in fact the learning one DID WIN ALL games eventually, because “it only had to learn the /end game/” not the earlier strategies, because the dumb (random) player would make mistakes so the LEARNING one didn’t HAVE to learn early-game strategies.     Only when the learning version played the algorithmically perfect player, did it learn flawlessly and quickly to where games would end 50-50 in who won by alternating who started.

I wrote my own “shell” for XP, so I could “type” things and not have to use the mouse much

I love “Eliza”, and learned BNF (Backus Naur or sometimes “normal” – format) i.e. sentence:=<subject clause><verb clause> and then defined english grammar, and instead of writing a PARSER (which would have been hard) I supplied a huge list of various words, and used random numbers to traverse the grammar tree and make up sentences.  They were so silly (“Marcia walked out the front door and shot the dog”) that the program was called “A farcid story”.  We had lots of fun with it.

I loved “Tiny C” which was so small it SELF-COMPILED, so you could add things to it.   My “biggest programming thrill” was to add an OPTIMIZER TO IT just  ad-hoc, i.e. I hated the crummy code it generated, so I had it put the output in a “table”, and when the table filled I made passes through it saying “you don’t have to load from memory, load a 1, add the two, and store back in memory” when in fact a register pointing to memory could just be told to “increment memory”.

I hand-optimized the BBS assembly language by doing pattern recognition of certain instructions in the binary, because if there were more than 5  bytes in a row, and repeated at least twice, it could be replaced with a call to a common subroutine and a return, saving a byte here and one there.

I’m very ADD, and don’t buckle down to much of anything, so I’m a 67 year old kid to just plays with things.

Among my more recent loves are “Mind Maps” in the form of Freemind 0.8.0 (the later versions tried to become “friendly” by lots of menus taking up valuable screen real-estate).

29f5a836.jpg

Debra showed me your “cool” Business card, and it looked like “Eliza” or a variation on the top, BASIC on the bottom.

very cool!!

Let me know what your “computer history” thoughts are.

http://en.wikipedia.org/wiki/Ward_Christensen
http://en.wikipedia.org/wiki/Xmodem
http://en.wikipedia.org/wiki/Bulletin_board_system

VV a r d  Christensen

reprinted with author permission
HCLE Catalog 1289

Advertisements

About lizaloop

Social philosopher, educator, teacher, parent, grandmother, musician, horseback rider, skier, dog owner, writer, trouble-maker, idea generator.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s