Home
Home
Education
WozScape
All the Macintosh links you need!
Woz answers your letters
Conventions, past and present.
Friends of Woz
Some businesses
Unuson
Festivals and Fun
See Woz, if he's home.
 
Letters-General Questions Answered  

 


Q From e-mail:

How did you make the blue box? Do you still own one? Also.. Do you have the apple I still or any screen shots of it and programs? If so send me some. Thanks,Andy age:12

WOZ:
I read an article in Esquire Magazine. It was about the October edition in 1971. The article was entitled "Secrets of the Blue Box--fiction" by Ron Rosenblum. Halfway through the article I had to call my best friend, Steve Jobs, and read parts of this long article to him. It was about secret engineers that had special equipment in vans that could tap into phone cables and redirect the phone networks of the world. The article had blind phone phreaks like Joe Engessia Jr. of Nashville, and the hero of them all, Captain Crunch. It was a science fiction world but was told in a very real way. Too real a way. I stopped and told Steve that it sounded real, not like fiction. They gave too many engineering details and talked on too real a way to have been made up. They even gave out some of the frequencies that the blue box used to take control of the international phone network.

The next day was Sunday. Steve and I drove to SLAC (Stanford Linear Accelerator Center, the same place the Homebrew Computer Club would meet 4 years later) because they always left a door or two unlocked and nobody thought anything about a couple of strangers reading books and magazines in their technical library. Finally we found a book that had the exact same frequencies that had been mentioned in the Esquire article. Now we had the complete list.

We went back to Steve's house and built two, somewhat unstable, multivabrator oscillators. We could see the instability on a frequency counter, but we were in a hurry. We would set one oscillator to 700 Hz and the other to 900 Hz (for a "1") and record it on a tape recorder. Then we'd adjust the oscillators and record the next digit, and so on. But it wasn't good enough to make a call as in the article. So we tried one oscillator at a time. It still wasn't good enough. I was off to Berkeley the next day so it would be some weeks before I designed a digital blue box that never missed a note. The key to debugging it was a guy in the dorm, Mike Joseph, that had perfect pitch. If it didn't work, he'd tell me what notes he heard. If one of them was a C-sharp and was supposed to be an A, I could look up the C-sharp frequency and find out where my frequency divider was off, and replace a diode that was bad. All my problems were diodes that I bought at Radio Shack in a bag where some might actually work.

The key to the phone network then was a high E note, two octaves above the high E string on a guitar. It was 2600 Hz. The Captain Crunch cerial whistle could blow this note and seize a phone line. The blue box then took over with it's dual frequency combinations known as 'multfrequency' or MF, similar to touch tone frequencies but not the same. Some phone systems worked on SF, or Single Frequency. The 2600 Hz Captain Crunch whistle could make the entire call. One long whistle to seize the line, a short one for a "1", two short ones for a "2", etc. The blind phone phreak, Joe Engressia, could dial an entire call just by whistling it out of his own mouth!

If you want to test this principal, play 2600 Hz into and long distance call and you'll be disconnected. We had fun doing that in the dorms. But don't be stupid and try to make a blue box today. It's much easier to make or program, but you're nearly guaranteed to get caught right away in most places. I experimented with it in 1972 but even then I paid for my own calls. I only used the blue box to see how many things I could do.

I have Apple I's and original software and things but they're in storage and I don't have time to get them out and get them working right now.

Q From e-mail:
Recently I've heard that Apple licensed floating point BASIC from Microsoft. As I had programmed in microsoft BASIC on the IBM PC-XT as well I saw no simularities to the Applesoft BASIC on my ][e so which is the truth? Can you elaborate on how much Microsoft provided to AppleBASIC?

WOZ:
I wrote the original Apple Integer BASIC. I had wanted it to be the very first BASIC for the 6502 microprocessor. I might then have something to be recognized for. I decided that it had to play games and let me solve engineering problems. I first wrote out a syntax with floating point but then figured that it might be done a few weeks sooner with just integers. I had to write it in the evenings as I worked at Hewlett Packard then. So I cut back to an integer BASIC that I called "Game BASIC".

I'd never programmed in BASIC. My college had encountered Fortran, several machine languages, Algol, and a couple of special languages. But you could buy a book called "101 BASIC Games". Plus, the Gates/Allen BASIC was becoming the standard thing to get for your Altair computer, although very few people had these computers yet.

I'd never writting a computer language or taken a course in it, although I'd studied books on my own touching on the topic. I have no idea to this day if I wrote it as anyone else would. I broke the entire language down into a syntax table that was stored in memory, in modified text form. A word like "PRINT" was stored as the 5 letters. If you were allowed an unsigned expression after some word, I stored a pointer to the syntax of that type of expression, which specified what it could be made of. Each line was compared, letter by letter, through this syntax table to see if there was any valid BASIC statement.

I gave each symbol in the syntax table a particular code as on operator. The word "PRINT" might be operator number 5 and "FOR" might be operator number 13, etc. A plus sign had it's code too. A symbol like a minus sign might have two different codes depending on whether it was prefix (like -5) or infix (like 9-6). A variable or a number was an operand. I pushed the operand references onto one stack and operator codes onto another. But the operator codes each had 2 different priorities telling my BASIC whether to push them on top of the topmost operator already on the stack, or to pop that one off and generate the output program from it. Each operator had a value for it's tendency to push others off, and a value for it's resistance to being pushed off. For example, plus tends to push divide off, causing the division to happen first. Strangely all this works.

Then I had to write one short routine for each of perhaps 100 operators. These included keywords like "PRINT", mathematical operators like 'plus', parenthesis, and other grammar symbols of BASIC.

It took a couple of months to get the BASIC to this shape, with an engine that ran the whole thing. Then I would define a Syntax sentence in the syntax table, along with any routines for any new operator symbols. I would test it, get it working, and move on to the next syntax sentence for the next BASIC statement. From this point on, things were very modular and I was only writing very short programs.

Well, the BASIC was a very big success. Especially when I was able to easily add statements and corresponding routines for color graphics and game commands in the Apple ][.

We shipped some apps with our early Apple ]['s. Apps like ColorMath (a flashcard program) and Breakout (a game I'd designed the hardware version of for Atari). These apps were on casette tapes in 1976, before floppy disks. Mike Markkula, who was our third and equal partner, was running marketing for us (and much more!). He, and some young programmers, and anyone else he could find, wrote our first checkbook program. It led to two items heading our 'projects to do' list at a staff meeting. This sort of program wanted floating point numbers (or a programmer like myself who would have preferred integers) and also a floppy disk for speed. These became my top two projects.

I rushed and got one of my favorite and most famous designs ever done in 2 weeks, working every day of Christmas vacation, 1977, including Christmas and New Years day. I'd never designed a floppy disk interface nor worked with one. Nor did I have a clue what was in them. I set out this blind and started designing stuff that would efficiently read and write floppy disks with the new Shugart 5" mechanism. I wound up with 5 chips one day doing the job, along with some low level 6502 software of my own. Randy Wigginton helped me with this project. My motivation was that Mike Markkula said that if we had the floppy ready to demo at the first CES show that was to permit personal computers to be a part, in Las Vegas, in January. I'd never been to Las Vegas, only dreamed of it. Well, I made the trip and the floppy was a success for Apple.

I next started working on a new floating point BASIC. My design style is to spend quite a bit of time thinking out every angle in my head and in rough sketches, and then to start coding. The first results aren't visible right away, but at the end they come up very quickly. Steve Jobs got concerned that I wasn't making enough progress. He even accused me of slacking and coming in at 10 AM in one staff meeting, but I pointed out that I'd been laying out our floppy PC Card (of which I'm extremely proud as I relayed it with one shift register shifting in the opposite direction of my first design after I discovered that would cut the PC board crossovers from 8 to 5, something nobody would ever see but that's the drive for perfection) and that I'd been leaving at 4 AM every morning, long after even the Houston brothers, Dick and Cliff, had left.

Somehow, we wound up with a Microsoft 6502 floating point BASIC one day. I installed it (which involved a lot back then) and tested it. Since it was already near completion, and only needed some graphics commands added for our Apple, our own effort was best dropped. Mine might turn out better in some regards, but wasn't worth the risk or effort. I have no idea if this BASIC was written by Microsoft or just found by them. My biggest disappointment was going to the awful string functions like LEFT$ (VAR, 5) and MID$ (VAR2,5,3) instead of my own, which were written VAR (1:5) and VAR2 (5;8) for the first 5 characters and characters 5 through 8 of a variable.

I forget how much we paid Microsoft for this BASIC.


Back

to General Letters Contents Page

Home | WozCam | Education | WozScape | Unuson | MacLinks | Friends | Business | Conventions | Festivals

©Unuson Corp. 2002 | Los Gatos, California | v3.0 | Last Updated:January 15, 2000  
Design by Al Luckow

Made With macintosh