How did the front switches operate on early Altair and similar computers?

I didn’t get a computer until 1987. I had a little exposure to CP/M before learning DOS 2.1. I used all the versions of DOS until it was replaced by Win 95.

I took a microprocessor class in college. We had a motorola processor on a trainer. We entered Op codes on a keypad. It took a lot of work to display “hello world” on the LED’s.

I can read the switch labels. But don’t undetstand their purpose? Didn’t these computers boot from a Cassette or Floppy disk?

Let’s assume you get up, drink coffee, and want to dial into a BBS with your Acoustic modem? What switches would you set? The kid in War Games had a keyboard, floppy drive, and monitor connected to his IMSAI

IMSAI 8080 computer (War Games movie)
a Altair 8800 clone but completely different switches?

The switches were used to specify a location in memory, and then enter 1 byte of data to store in that location, or to start execution at that location. If a byte of data was stored there another switch allowed moving ahead one location in memory if my own memory serves me right. A bare machine had no permanent memory and a boot program had to be keyed in by hand to read from a cassette tape or perhaps the paper tape reader from a teletype like I used.

Some permanent memory could be added with a boot program so the machine could start up at power on. Many computers up to then, small and large, had front panel switches that could serve that function.

The lights were very important. Since you spent every penny you had on a computer that did nothing it was nice to be able to enter a little program that would make the lights flash.

I guess the manuals would provide switch settings to boot from a cassette or paper?

IIRC you had to mount drives and other devices in CP/M. I only used it for one class. They upgraded the lab to pc’s running DOS 2.1. Seemed like a new version of DOS came out every few months. 2.22, 2.5 and so on.

The War Games computer was setup really nice. Peripherals the average hobbyist couldn’t afford.

Maybe. But they didn’t know necessarily know what kind of interfaces you had on the machine. If you bought an IMSAI you could buy one their I/O boards with a cassette tape interface and they’d give you some code to enter. Or you could buy someone else’s cassette tape interface and maybe they’d include some boot code, or maybe not. That was life on the wild frontier.

OFF/ON: turns the computer on and off

STOP/RUN: halts or allows program execution

SINGLE STEP: executes a single machine instruction

EXAMINE/EXAMINE NEXT: EXAMINE displays the contents of a byte on the LEDs (jumps to that location and halts); EXAMINE NEXT moves one location forward each time

DEPOSIT/DEPOSIT NEXT: same thing but writes memory instead of reading it (DEPOSIT writes to memory without the CPU doing anything, DEPOSIT NEXT writes and advances the location)

RESET/CLR: RESET sets the program counter to 0. CLR sends a reset signal to external peripherals.

PROTECT/UNPROTECT: PROTECT prevents memory from being changed

AUX switches: for peripherals.

ADDRESS and DATA switches: memory address you want to read/write and DATA is to specify a byte of data.

I don’t think the second model has completely different switches; they seem more or less the same.

Here is a bootloader I found online that sets up the serial port and loads BASIC from a paper tape:

0000		org	0
		;
		; 2SIO Loader for 4K BASIC Version 3.2
		;
		;  ** Set sense switches A11, A10 ON **
		;
0000	3E03		mvi	a,3		;reset then init ACIA
0002	D310		out	010h
0004	3E15		mvi	a,015h		;015h for 8N1, 011h for 8N2
0006	D310		out	010h
 
		; H = msb of load address
		; L = lsb of load address = length of loader = leader byte

0008	21AE0F		lxi	h,00faeh	;4K BASIC V3.2
		;	lxi	h,00fc2h	;4K BASIC V4.0
		;	lxi	h,01fc2h	;8K BASIC v4.0
		;	lxi	h,03fc2h	;Extended BASIC V4.0
		;	lxi	h,07ec2h	;Extended Disk BASIC v5.0

000B	311A00	loop	lxi	sp,stack	;init SP so a RET jumps to loop
000E	DB10		in	010h		;get 2sio status
0010	0F		rrc			;new byte available?
0011	D0		rnc			;no (jumps back to loop)
0012	DB11		in	011h		;get the byte
0014	BD		cmp	l		;new byte = leader byte?
0015	C8		rz			;yes (jumps back to loop)
0016	2D		dcr	l		;not leader, decrement address
0017	77		mov	m,a		;store the byte (reverse order)
0018	C0		rnz			;loop until L = 0
0019	E9		pchl			;jump to code just downloaded

001A	0B00	stack	dw	loop
001C                   end

So, the light indicates if a bit is set?

You could write the binary from the lights?
10000111 for a 8 bit buss.

I regret that I missed this era of computers. Early 80’s were still hands on operation.

Yes, the DATA LEDs indicate the individual bits (off = 0, on = 1)

That’s to read the value; to set the value you use the switches and hit DEPOSIT

Even much more sophisticated, much more expensive machines like the DEC PDP-8 did not have ROM boot code in their standard configurations. You would have to use the console switches to enter a short primitive loader called a Read-In Mode loader (RIM loader). The RIM loader would then be used to read a paper tape containing a larger and more efficient loader. That loader would then read in whatever application program you wanted.

As I vaguely recall (it’s been many, many years!) if you had mass storage devices like DECtape or disk, booting the OS could be done through the mass storage controller. You would still need to fiddle with the console switches but didn’t need to mess with a RIM loader and such.

I see. You enter each line from the boit loader manually. CP/M or something similar loads and then you use the keyboard.

Wikipedia - the Altair 8800 was featured on the cover of the January 1975 issue of Popular Electronics.

It was already in use for 7 years when War Games was made.The hobbyist community was thriving.

Well, if you’re REALLY sorry you missed it…

No, seriously. On a shelf in my hall closet I have the Altair 8800 that my now deceased brother built. I have such clear memories of hearing him flipping the switches in the evening as I was trying to fall asleep.

Then the march of progress as the casette player gave way to a single sided 8" floppy (which I think he paid more than a thousand dollars for, back when you could buy an entire brand new car for $1999.) And the tiny screen on which we managed to send our little Enterprise out to explore the universe and blow up the dastardly Kalgons. (He was into computers, not Star Trek, sorry.)

Anyway, sorry to intrude on the thread, but we’re making plans to downsize from our house to a condo, and many ‘treasures’ are going to have to go. Is there any real chance that someone out there would actually want this, um, relic? Or shouldn’t I bother trying to find it a new home?

Note, I’m not looking for any money for it, just to avoid the mental pain of dumping it into a trash bin. The Altair still worked perfectly when my brother last used it, which was sometime long after he’d moved on through DOS to Windows something or other when he’d boot it up sometimes out of nostalgia or whatever.

Also note it’s pretty big and heavy, and I don’t know how well it was designed to survive shipping. It’s located in a suburb about 20 miles outside Boston.

I don’t have the room. My family wants me to throw out my pc’s from the 90’s. I’d pull out the motherboard and hard drive. Install updated components and reuse what I could.

I have a closet full of old hardware.

I’d suggest offering the Altair on Ebay. Sold As Is.

This Youtube playlist goes into exhaustive detail about the Altair 8800 front panel, each of the switches and blinking lights, how to use it to load something more useful like BASIC from paper tape:

For the true hands-on experience, you can buy an Altair 8800 emulator kit, such as this one based on a modern Arduino SBC:

Boot from a cassette? Floppy disk? BBS? What were those? No such animal in 1976!

No affordable printers, either…I could go on, but I won’t.

In spite of the limitations and drawbacks, with a friend’s help and 2 years work, I was able to build and program an IMSAI 8080 just like the picture above to display, edit and print music, all in 48K RAM + 8K ROM. This included hand-coding in machine language (not even an assembler used) a video driver, 3 keyboard drivers (1 text, 1 for music symbols, 1 piano keyboard), a graphic video display, a text video display, a sound output, a ROM burner, not to mention writing an OS and wiring all interface boards. We did eventually add a dual floppy drive, but we had to program that driver from scratch, too.

RE: front panel lights

You had to learn to read binary in either octal or hexadecimal. The IMSAI could be constructed with the red & blue switches configured as hex, like in the pix, or octal, which would be (L-R) 2 red, 3 blue, 3 blue, or 2 blue, 3 red, 3 red. The colors didn’t change their function, just made is easier to learn hex or octal. Octal was more common when computers were smaller, but hex became more useful and is still used today.

You had to mentally add the binary values of each light (on=1, off=0) to create a 2-digit hex number. Example: 0010 1100B = 2C hex

Since data was in 8-bit bytes, one bank of switches was sufficient, but for a 16-bit address, both banks were concatenated, and served for a memory address.

In the high school class my friend taught, the kids memorized the cassette boot loader sequence and had races to see who could hand-enter it the fastest, as RAM was cleared when the computer was turned off.

@Terminus_Est thank you. That video will answer a lot of my questions. I’ve always wondered what it was like using early computers.

@Musicat I’m impressed with how much you did with your Altair.

There wasn’t a lot of off the shelf software in the early days.

Nitpick: Our computer was an 8080 IMSAI, not the 8800 Altair (same CPU, same machine language instruction set, same bus design). I got the IMSAI instead of the Altair because I liked the pretty switch colors and shapes. The bat handled toggles on the Altair seemed a little too geeky and looked like a basement mockup. On such decisions does the world turn.

Off the shelf software? None available! There was an 8K Basic available first on paper tape, but we found it was much too slow for our task, and decided to use object code. We enlarged a code chart, mounted it on the wall, and called out the numbers to each other until we memorized most of them.

Eventually people connected to the Altair or IMSAI with a VT100 terminal? I think it was a feature supported in CP/M?

I had a lot of work experience on terminals. We used Televideo 950 at the office. Our earliest pc’s connected to our mainframe with terminal emulator software. I remember several were tried and the vt100 worked best.

VT-100 terminals were the first video terminals that used the VT-100 escape codes to allow cursor positioning and other screen formatting features that hadn’t been feasible or practical for printing terminals. It connected to a computer through a serial port, a simple and common interface. CP/M was a rather low level operating system that didn’t require a video terminal as a command terminal, a paper terminal like a teletype would work, but some later utilities commonly used with CP/M worked with VT-100 escape codes. An enormous number of terminals and terminal emulators used the same escape codes as the VT-100s.

Brings back so many memories.

Thanks everyone for the information about the Altair and IMSAI panel switches.

I had an Altair, not an IMSAI, and it was finger-boning all the way. I didn’t get a cassette recorder until I built a TRS-80 clone years later. Besides being more powerful, life is ever so much easier now.