Classic Basic Games Page



It was a "find". A real, ASR-33 teletype. These units were used originally by people like Western Union to transmit telegrams. Later they became a standard computer accessory for cheap input and output. You can see them in old movies and photographs.

For a budding computer hobbyist, it was the thing to have after you got your first computer. It had a keyboard, a printer that served for all output, and even a means of input and storage, a paper tape reader.



The hobby computer revolution started with the MITS 8800, 6-7 years before the IBM-PC came to being. That fact usually brings yawns until you note that this was where Microsoft got their start, beginning with a couple of college drop outs and ending. in amazingly short time all things considered, with an empire that could purchase outright several small countries.

If you got one, for the steep price of about $1000, and then put it together, not a small feat, what you got was a big blue box with lights on the front. If you did your homework correctly, those lights did the right things, and after carefully reading the manual, and inputting several byte instructions, painstakingly flipping each bit of the byte, 8 bits, then hitting enter for each byte, you could actually get the machine to do something sensible with the lights on the front.

The beast was commanded to count on the lights. In binary of course. Next, a lit bit was walked across each of the front panel lights in turn, marquee style. Finally, the game "shoot the duck" was entered, which rotated a light across the row of lights. The object was to hit the switch under it at just the right time, and turn the light off. Miss and you just created another light. Get all the lights out, and, well, you ran out of interesting things to do rapidly.



Of course, using a computer stripped of its essence like this is somewhat like buying an engine, starting it up on the garage floor and marveling at it. Obviously more has to happen. In short order, a lot happened. It soon became known that if you bought a little extra memory, and an I/O device, and got hold of a thing called a "Basic interpreter" you could reach the next level in computerdom (and limits on your credit card).

Now, with an ASR-33 clanking away next to the blue box, and that Basic tape, probably borrowed from a friend, you were ready to sign on.

The teletype stops.

The end of the tape falls on the floor.

The machine hammers out a sign-on. Microsoft Basic 1.2. Ready. Ready ! The machine talks ! Those who were there know. It was time for a beer, to show the wife, to cheer. That goddam box spoke to me in english. Now I understand.....



The period of time for Classic Basic, as I define it was short, from about 1976 to 1980 at the latest. For a brief time, and the last time for quite a while, home computers were unified in simplicity. You had Basic. It printed and accepted lines in "teletype mode", which is to say a line at a time, resembling a typewriter.

Many programs were passed back and forth then, typed in from magazines, punched in from paper tape, read in from cassette tapes, or from a new, odd device called a "floppy disk". Passed from hand to hand, copied without a care, even from the writers of the programs themselves.

And most of them were games.



These elementary Basic programs are still perhaps the only collection of programs that can honestly be said to run on any computer, anywhere. This property alone makes a museum collection worthwhile.

Original Basic programs from this time are hard to find now, even on the Internet. The media on which they were kept was either lost, destroyed, or more likely, simply belonged to an obsolete computer or media type that was thrown out at the end of its life. The magazines that published them are gone, interest in them has waned.
Perhaps most destructive of all, when advanced graphics began to become common on computers such as the Apple, a lot of them were "converted" to run specifically on those computers. This made the game more interesting by adding graphics, but was the death warrant to the source, as when that computer died, so did the specially modified source for it.

Many of the games were reinvented over and over. Lunar lander had several versions, later becoming a full graphical game. Artillery was also a popular graphics game. Many early programs were inspiration for later, more complex games. The gaming empire that became Quake started as a humble Apple computer game named "Castle Wolfenstein". And of course, the ultimate irony is that the Microsoft Basic that ran many of these games started an empire of unimaginable wealth.



I have accumulated a small but growing collection of these games. I hope that by sharing these with you, some of you might feel inclined to help me find other such programs to keep in the museum. In the meantime, grab a Basic interpreter and enjoy one of these programs.

The collections

There are three collections here, the general collection, the Creative computing collection, and the modified Creative computing collection.

General Collection


The general collection is where I put programs given me with no particular genealogy. It also includes modern programs. All that is required is they obey the simple rules of text only games, no special characters, graphics, or unusual basic statements.

Some of these are fairly similar or completely different versions of programs that also exist in the Creative Computing collection. They are here because they have significantly added features or are written in a substantially different way.

Some of the programs here are from the "More Basic Computer Games" book from Creative Computing, and will stay here until (if) we create a collection of those games.


Program name Description
awari A board game.
Basic-S A integer only basic. Implements a small subset of Basic in Basic.
Black Jack Card game, Vegas style. This was very popular. Also famous for becoming "stuck" or calculating seemingly forever as it ran out of cards.
Buzzword Generate random "buzzword" text. Totally useless.
Civil War Civil war simulation. The original and very popular.
Craps Dice game.
cycles Prints biorhythms for a given birthday
distribution Finds the distribution of the random number generator in Basic
Doctor A computer "psychiatrist", talks to you
Eliza Another computer psychiatrist.
Flip Not a game, it was on the cover of "Basic Basic", the standard starting text for Basic in the 1970's. Flips a coin.
Football Football simulation, not bad.
Geowar Shooting game based on 2D grid. Interesting.
Hamurabi Rule a kingdom of old
Hamurabi #2 Rule a kingdom of old, another version.
Haunted house Haunted house adventure game
Hockey Hockey simulation.
Hun attack Huns attack your fort.
Keno Vegas Keno numbers game
Lunar Perhaps the most famous early game, land the lunar lander, complete with ASCII graphics ! This game became graphical, but never seems to die.
Mad-lib A kids' car game, make stories by supplying words.
Market Simulates competing companies.
Maze Generates random mazes.
Mastermind A cryptogram game, solve the puzzle.
Nim Move stones on board.
Pert Yep, draw pert charts. Your favorite management fad.
Poetry Generate random poetry.
Policy Don't know what it does, but it scares me.
Resequence Claims to resequence (renumber) basic programs, but I doubt it works correctly. Resequencing involves looking at and remapping "GOTO"s in the program.
Russian Roulette Russian Roulette, with guns. Perhaps too stupid to live.
Shell Adventure game, claims to be an adventure "shell" or general adventure generator.
Ship Battleship.
Shrink A very stupid psychiatrist game. Sorta like Eliza written by a 5 year old.
Slots Play a slot machine.
Snoopy Draws a picture of Snoopy. The comments concerning the PDP-11 make this a REALLY old program.
Star Trek A version of Star Trek. See next.
Star Trek Star Trek was probably the largest program anyone would type in. Very complete. Very famous, it existed in many versions. This is the original.
Swami Yet another, computer talks to you game.
Tank Tanks chase you on a 2D grid. 
Tank, or "fox and hounds", was a very simple game to program, and was the first game I ever wrote. Many versions of this exist. My 1970's version would qualify as a "classic", but is long lost. This is a rewrite.
Tic Tac Toe The classic game.
Wumpus Hunt the Wumpus. Very famous.
Wumpus #2 Another version.

The creative computing library

(volume #1)



After having this site up for a while and getting many letters from you all (thank you), it became apparent that most of the early games came from a magazine that used to be published called "Creative Computing". Further, they had published two volumes of these computer games in book form.

Now since these are way out of print, this might not have helped me a couple years back. However, we live in Internet time, and the internet has enabled me to find books that I would never have been able to find formerly. Within days I had a copy of it.

The intent was to scan it in and OCR it (convert it automatically to computer readable text). Unfortunately, the programs in the book had been reproduced from listings made on a cheap dot matrix printer, and attempts to OCR it yielded nothing but garbage. Once again, you guys came to the rescue, and Ed mailed me a copy of a .zip library that proported to be the complete contents of the first book. In this collection I found most every file accounted for. I also found that the games have been modified from the original book form. Some of the modifications were useful, such as printing out instructions for how to play the game, that only appeared in the original book. Some were not so useful, such as printing control characters here and there.

Acting as a computer historian, I "unmodified" the games to create the original games as they appeared in the book. To be fair about it, you now have your choice of flavors. The original book form, or the modified form.

The Creative computing library serves several important goals for the purposes of the Classic Basic Games page. First, I can verify that these games were original from 1978, the time the collection was published. Second, the original author, David H. Ahl, did research back then as to "who wrote what" program, research that would be hard to reproduce today. Thus, hopefully, the programs are titled with the proper authors.

Readers will note that the "More Basic Computer Games", the sequel to the collection, does not appear here. I have the book, but I have not found more than a very few of the programs in computer source form. I am still looking.

The Creative Computing collection was received from helpful people on the net, and those sources restored to original condition as referenced to the original book. Because the collection was restored from modified sources, it is still possible to find errors or differences from the original program. These are being corrected as I find them.

I have tried to stay as close to the original, as determined by the book, as possible. In some cases, this results in errors that were in the original program being left in. Occasionally, it was necessary to fix errors in the source because the programs would not even load, such as missing quotes, which my Basic will not allow. Some of these might have been printing errors, some may have been original program errors.

Changes made to library from book form

There were a small number of changes made to the programs in order to make them runnable. These were as follows:

1. Sine Wave

The statement:

40 REMARKABLE ....

Uses a trick that worked with many Basic interpreters that recognize keywords wherever they appear, even in the middle of other words. In more advanced basics, this is not possible, because if variables like:

MYSTRING$

Are allowed, you would go crazy trying to chase down imbedded keywords. See also the comments on IP Basic below.

2. Spacing.

As in example (1), it is not possible to have the statement:

10IFC$="BARK"THENGOTO20

The keywords must not be run together with other keywords and variable names:

10 IF C$="BARK" THEN GOTO 20

3. Special characters.

Occasionally, a special character (control character) appears in the programs. This was REMed out. Special characters in ASCII are characters less than 32 in value (space).

4. "RUN" statement.

The "RUN" statement in 3d Tic Tac Toe was changed to STOP.

5. "LPRINT" statement.

The "LPRINT" statement in 3d Tic Tac Toe was changed to "PRINT".

6. "END" in program middle.

In the program "weekday", the statement:

1240 END

Appears in the middle of the program. The original Basic meaning of "END" is to stop reading/compiling the program, so this is a misused statement. Was replaced by:

1240 STOP

7. Space in tolken.

In the program "23 matches":

410 IF N < = 1 THEN 470

The space between the "<" and "=" does not allow this to be a valid less than or equal. Space removed.

8. Function use before define.

In the program "hexapawn", the function fns appears before its definition, which causes a problem with Qbasic. The lines 20 and 25 were swapped.

9. Bad REM statement.

In the program "hexapawn", line 511 uses an unterminated REM statement. Space added.

Special problems

The following special notes apply to the collection, these are known bugs and limitations. Remember that these programs were written by anyone from longtime programmers to high school students, so some problems are to be expected !

1. "hexapawn" does not run on Qbasic. Hexapawn has an interesting board output routine that executes tab(10) (line 1030) multiple times. Apparently, on the original MS Basic (and other basics) tabbing to a position that is behind or at the current position is a no-op. Qbasic actually throws another line and tabs to the position. Why that is a good idea is beyond me. Easily fixed.

2. "hilo" makes the unwarranted assumption in line 180 that 100*rnd(1) will be a number from 1 to 100. Actually, the number will be between 0 and 99, since exact 0 and exact 1 will never be the result of rnd, and the fraction is removed. You can fix it with:

180 Y=INT(100*RND(1)+1)

3. In "horserace", there is a really bazzare bit of code in lines 570 to 780 where the value of N is used after a for n=..next loop, and apparently it expects the value to be 8. In both IP Basic and Qbasic it isn't, but is instead 9, and this results in acess to the uninitalized variable d(i) and a zero divide. Fix this by adding the line:

721 n = 8

4. In "mastermind", line 8010, the quotes are left off string data. This causes IP Basic to choke, as probally others. Qbasic likes it. I considered it, but its a lot of work just to kludge up the language so lazy programmers can leave quotes off. The solution is to put the quotes back.

5. In "salvo", line 1270, DEF FNA is executed twice, because the code loops back to that point. Both IP Basic and Qbasic were unanimous that this was not a nice trick, although the original Microsoft Basic probally tolerated it. The solution is to move the defines upwards toward the top.

6. In "salvo", the program runs out of its data list after a few games. It needs a restore at the start of each run. Left as an excersize for you.

A final parting note. If you have the original book, there is a small inside joke on page 88, the hockey game, where it lists the different teams playing as the big computer manufacturers verses the home computer makers of that day.

The real joke is that all of them besides IBM are now long gone, closed or aquired by other companies! Microsoft was around, but perhaps the author did not think of them as much in the way of competition :~)

The "menu" program

I have created a new program, "menu", to replace the "menu" program in the modified sources given me for Creative Computing. A menu program lets you pick out a program to run from a list of programs. This can be an important addition to a system that beginners will use, because they don't want to learn to execute arcane shell commands to get these programs running.

The original menu program used the "run" command to transfer control to and from the program. Thats an ok technique, except that it requires each program to be modified so that it will execute another "run" command to get back to the menu program. Instead, I wrote a completely different version that uses the "exec" command in IP Basic:

exec "file"

In IP basic works just like a "run" command with file parameter, except that when the target program terminates, it will return back to the original program. The advantage here is that there is no special modification required to the programs that run under menu. The system is completely compilable as well, because a shell command of the form "basic file" is generated at runtime.

The program is written in minimal Basic, and should run in all respects if you find your local equivalent to the "exec" command. And yes, I do realize that many Basics don't have that command. For those, you would have to return to the original "run" modified programs.



 

Creative Computing Programs

Program name Description
Creative Computing collection This is a .ZIP file of all the games below
Modified Creative Computing collection These are the sources that before being restored to the book format. Contain various modifications, including design to all run from a "menu" program.
Menu Menu program to select from the game files.
Aceyducy Acey Ducey card game.
Amazing Generates mazes.
Animal Guess the animal.
Awari African stone board game.
Bagels Numbers guessing game.
Banner Draw a banner.
Basketball Basketball game simulation.
Battle Of The Numbers Number strategy game.
Battle Battleship board strategy game.
Blackjack The card game 21, Vegas style.
Bombardment Bomb the hidden player positions.
Bombs Away Bomb run simulator.
Bounce Plot the bouncing ball.
Bowling Bowling simulator.
Boxing Boxing simulator.
Bug Draw the bug before the computer does (like Hangman).
Bullfight Bullfight simulator.
Bullseye Dart board simulator.
Bunny Draw a playboy bunny, not PC.
Buzzword Generate buzzwords for your next meeting.
Calendar Generate calendars (gads !! a useful program !).
Change Calculates correct change for item.
Checkers Checkers, yes, the board game.
Chemist Play with a chemical formula (game).
Chief Math game.
Chomp Find the cookie game.
Civilwar Civil War reenactment simulation.
This game is missing. See the similar version in the general collection.
Combat Battle simulation.
Craps Dice game simulation.
Cube Board game on the face of a cube.
Depth charge Bomb the submarine.
Diamond Prints diamond patterns.
Dice Simulate rolling dice and show probabilities.
Digits Guess the next digit.
Even Wins Even number of objects wins. Like NIM.
Even Wins #2 Another version
Flip Flop Change X's to O's..
Football Football simulation.
Football #2 Another version.
Fur Trader Fur trading simulation.
Golf Golf simulation.
Gomoko Oriental board game (GO).
Guess Guess the number.
Gunner Hit the target.
Hammurabri Kingdom simulation.
Hangman Guess the word, or else...
Hello Conversational (AI) simulator.
Hexapawn Board game simulation.
Hi-lo Money guessing game.
Hi I-Q The famous, very annoying, board game.
Hockey Hockey simulation.
Horserace Horse racing simulation.
Hurkle Hunt the hurkle on a grid.
Kinema Answer a kinetics question.
King Another kingdom simulation.
Letter Guess the letter.
Life Life simulation.
Missing from the collection.
Life For Two Life as two player game.
Literature Quiz Child's book quiz.
Love Print in "love" font.
Lunar LEM rocket Simulate a lunar landing.
Missing from the collection.
Lunar LEM Rocket #2 Simulate a lunar landing, another version.
Lunar LEN rocket #3 Simulate a lunar landing, yet another version.
(Can't get enough ? See yet another version in the general collection).
Master Mind Crack a code.
Math Dice Math game using dice.
Mugwump Find the mugwump on a grid (why never a cube ? four dimensional ? N dimensional ?).
Name Does amusing things with your name.
Nicomachus Computer guesses what number you are thinking of (no, I'm not kidding).
Nim Move the stones game.
Number Guess the number (yes, again).
One Check Solitaire checkers.
Orbit Shoot a spaceship in orbit.
Pizza Deliver pizzas to a small town (I could not make this up).
Poetry Yep, generate random poetry.
Poker The classic card game.
Queen Game on chessboard with queens only.
Reverse Reverse a numbered list.
Rock, Scissors, Paper Yes, it is.
Roulette Roulette wheel simulator (leaves breaking both your legs up to your imagination).
Russian Roulette Yes, that. Sick.
Salvo Battleship again.
Sine Wave Draw sine waves.
Slalom Simulate skiing downhill.
Slots The one armed bandito.
Missing from the collection. See the version in the general collection.
Splat Parachute on various worlds of the solar system (a classic !!!).
Stars Simulates the formation of stars from primordial material in the universe.
Kidding. Its another guess the number game !!!!
Stock Market Stock market simulation (leaves the house repossession to your imagination).
Super Star Trek Star Trek, The TV show.
This program is missing from the collection. See the versions in the general collection..
Synonym Synonym knowledge test (you needed this, right ?).
Target Another shoot the target game.
3-D Plot Plots curves of any function.
Missing from the collection.
3-D Tic-Tac-Toe Tic Tac toe, but more confusing.
Tic Tac Toe Yep. Lots of tie games.
Tic Tac Toe #2 Another version.
Tower Towers of Hanoi, a stacking puzzle.
Train Generate time-speed-distance problems.
Trap Yep! Another guess the number game !
23 Matches Takeaway matches game.
War The card game. Yes, it takes forever, how did you know ?
Weekday Interesting facts about a date.
Word Small rodents eat your brain
Kidding. Guess the word !


Submissions



I am most grateful for program submissions. However, please look over your program to see if it meets the bare minimum requirements of being a "Classic Basic" program before sending it in. The vast majority of programs sent to me are not, in fact, Classic Basic programs and must be discarded, because they contain special characters, special Basic statements or functions, or because they contain graphics. Such programs have a place, but this is not that place. If you have a program for a specific computer, try the web interest pages for that computer.

All submissions should be sent to:
 

samiam@moorecad.com

 

 
 
 
 
 

Thank you.


What is a classic basic program ?


A good rule of thumb for a Classic Basic program is to run it, and see what it does. If if does anything graphical, makes noise, or even moves the cursor around the screen, it probably is not very portable.


Basic used


The most widespread Basic from the first days of the Microcomputer is Microsoft Basic, all of the games here are compatible with that. However, none of the odd statements of Microsoft Basic are used, nor its quirks relied on (such as the fact that true = -1).

The Basic I use to run the programs is IP Basic, which stands for "Intellectual Property Basic". I wrote it, and it is a full feature Basic that is compatible with the original Microcomputer Basics, runs under windows and is fully graphical. Its compatible with the Creative Computing collection by definition. That collection was used to test it, and where non-compatibilities were found, they were corrected. In many cases this caused IP Basic to inherit a few quirks of Microsoft Basic, but that is to be expected.

The one exception to this is the behavior of the dim statement for strings. In IP Basic, the rightmost number in the dim is the size of the string, in characters. This causes the program above "hangman" not to run, but only a simple change is required. I have left the program in the Microsoft form, as it was originally.

IP Basic is a compiler oriented Basic, that is, it is meant both to be compiled as interpreted. It may use line numbers, but does not need them, and can use symbolic labels instead, or any mix thereof. IP Basic also implements arbitrary symbol names such as "MYVAR$". As such (like most other similar Basics), it cannot use sources where the keywords and symbols are run together like:

10FORC=1TO10:NEXTC

Nor can it use calculated gotos (thankfully rare) such as:

10 GOTO 100+(A*10)

It is also possible to have "convoluted" programs that cannot be compiled because they cannot be parsed sequentially:

10 FOR I = 1 TO 10
20 IF I < 10 THEN 40
30 RETURN
40 NEXT I

If you want to use a Microsoft compatible Basic to run these programs, I recommend Qbasic, which is the last Microsoft product to be compatible with original Microsoft Microcomputer Basic. Visual Basic is not compatible with the programs here, and VB completely changed the I/O paradymes. "print" and "input" no longer function there.

Other Basics that implement the standard Basic commands are likely to work. They need not be Microsoft compatible, because, as said above, the programs don't get very adventurous in their use of Microsoft Basic. The following is a list of oddities I have seen, that you may have to fix in your programs:

Example:

PRINT "THE NUMBER IS"Z

"Z" appears right after the string without the customary ";" or ",". This works because (and only because) expressions are complete syntactic units. In lay speak, that means the interpreter/compiler knows when one expression is done, and the other one begins. You might need to change this to:

PRINT "THE NUMBER IS";Z

Example:

DATA ONE, TWO, THREE

"ONE", "TWO" and "THREE" are strings, and you are allowed to leave the quotes off. You might need to change this to:

DATA "ONE", "TWO", "THREE"

Example:

PRINT "MY NUMBER";A;"IS BIGGER THAN YOURS"

Would print:

MY NUMBER 5 IS BIGGER THAN YOURS

Notice that no spaces are provided before or after A, but the Basic inserts them. If your Basic does not automatically insert spaces before and after numbers, you might need to change it to something like:

PRINT "MY NUMBER ";A;" IS BIGGER THAN YOURS"


Tiny basic rules


In case you were curious about the Basic language processed by the Tiny Basic above (basic-s), this is a short description. Tiny basic is a stripped down version of Basic, somewhat, but only somewhat, like the early Tiny Basics that appeared on the first home computers. It processes integers only, no floats or strings. As such, this is not a Basic that can run most, or even any, of the Classic Basic programs, and, especially, cannot run itself.

Tiny Basic started out as a way to get a Basic running in the minimum amount of ram, because ram used to be very expensive. After that no longer had much point (although it is still useful in embedded processors), it became sort of an interesting game to see if you could implement a Tiny Basic in any given language you were handed. I personally have done one in Basic itself, Pascal, and C. Although it sounds like a personal oddity of mine, I know that others enjoy the game, because I see Tiny Basics showing up in Java, on Palm computers and other interesting places.

Of course, everyone is going to disagree on what language Tiny Basic should have, by the sheer definition of the task. However, the name of the game in Tiny Basic is to implement the minimum statement set that is possible to get any useful program running, so the statements picked usually are similar. All my Tiny Basic dialects are similar, and all based originally (loosely) on the 8080 Tiny Basic written by Li Chen Wang and appearing in Doctor Dobbs in the 1970's, a program I had great fun modifying.

Statements

if <cond>
input <var>
print <var>/<string>
goto <line>
rem <any>
stop
list
new
bye
run
let <var> = <expr>
<var> = <expr>

The variables allowed in Tiny basic are represented by the letters "a"-"z", each representing an integer (no floats or strings). Expressions consist of the four calculator operations "+", "-", "*" and "/", with "/" and "*" having the highest priority. ( and ) may be used to group expressions.

Any number of statements can appear on a line, separated by ":".

If a line is entered without a number in front, it is executed immediately. If a nonzero number appears at the start of the line, then the line is placed into program storage in the order of that line number. If there is already a line by that number, it is replaced by the new line. If the line entered has nothing after the number (line number is alone on the line), then the indicated line will be deleted. The stored program is listed with "list", and the "run" statement causes all variables to be reset to 0 and the first line of the program is executed.

A print statement consists of any number of expressions, or strings separated by "," or ";". Although strings cannot be stored in variables, a string, consisting of any number of characters appearing between quote marks, can be printed.

Want to play with Tiny Basic ? Here are some excersizes for you:

1. How much more work would it be to add string variables to Tiny Basic ?

2. Tiny Basic can be written in other Basics (called "nesting" the language). Most languages can do this. Is it possible to write a Tiny language, then write a more complex language processor in that for a "non-tiny" language (its called bootstrapping) ?

3. Is it possible to design a minimum language that would nest to any level ? What would be the minimum feature set required to nest to N levels ? What would be the advantage of having such a Tiny Basic ?

4. Is writing Basic in Basic just a way to slow down computers, or does it have a purpose ?


A word to the wise: writing Basic games


Basic games are often written by computer beginners, young people, or both. I started programming with writing a few games, but found myself rapidly caught up in more complex programs that performed useful work.

Games are a excellent introduction to programming, and in this simple text oriented form, you may find that you learn more about programming than attempting frustrating graphics before you have learned the basics.

Here are some suggestions that might help.

Good luck, and post your programming problems to comp.lang.basic !


How this page got started


How did I get started collecting these programs ? Well......

I write programming language interpreters and compilers for fun. The first language processors I wrote, a compiler and an interpreter, were written for Basic, back when most of my code was written in assembly language. Because of the simplicity of Basic, it is usually possible to write a "tiny Basic", a stripped down version of Basic, in a day or so. Writing such a Basic in various languages has been a pastime for me, and is an important benchmark of a new language for me (perhaps the subject of another web page).

Because the machines that ran my earlier Basics became obsolete, I decided that I wished to have a Basic implementation written in my chosen high level language, Pascal, and slowly grew a Basic implementation in my spare time from a tiny basic in the 1980s to the very not-so-tiny IP Basic today.

I needed some test material to verify that it worked correctly. Well, Basics vary a lot, especially in the details of graphics and sound, so what I needed were some very simple programs that did not do any advanced I/O. It occurred to me that the old basic programs I used to play with when I first started using a computer 20 odd years ago were perfect for that purpose, and so I set out to find some.

After having a great difficulty finding more than a sparse few, it occurred to me that finding these programs would be a lot easier if I placed the results of my search up for general viewing and download, sort of a "stone soup" idea that would get programs to come to me. In typical Internet fashion, this has worked pretty well.

You guys helped me build this collection, and all I ask is that you enjoy it.


The "real" Sam the computer man


So did I in fact start programming in the garage with an 8800 and a teletype ? Weeeellllllll........

The famous article in Popular Electronics about the Mits 8800 appeared just before I graduated high school in Los Angeles. I read it backwards and forwards, it did not have a lot of information. I later realized that some of the information was wrong, and still later it came out that the computer in the article was a fake, a mockup, even though the 8800 was later a real product.

The truth is that in 1975, getting into computers was a several thousand dollar proposition, and I simply could not afford it. Instead, I learned the basics (pun intended) of computers at the disk drive maker Micropolis. I liked it so much, and still could not afford a "real" computer, that I did what a few hardy (or perhaps insane) people did, and cobbled up an S-100 system from a combination of kits, my own designed boards, scrounged parts and jury rigs. In fact, until 1987, I never owned a computer that was not a collection of parts that I designed or made, including the operating system.

Later, I did in fact get an 8800 and an ASR-33 teletype, in the early 1980's. By then they were being sold cheap. I finally had the system everyone started the whole thing with. The ASR-33 was a little to big to keep around, but I still have the 8800. I hear they are valuable now, but to me, having one sitting up there on the shelf is priceless.

In 1987 I got tired of being incompatible with everyone else, and put together a PC, yes, again from parts. In fact, aside from the two notebook computers I own, I have never purchased a preassembled computer, because all I do is upgrade parts of my existing ones. I have three computers in various parts of the house used by various members of the family, making five in total, with an 8 address TCP/IP lan running the whole show.


For information about this page, contact samiam@moorecad.com