[00:01.970 --> 00:02.510] Hi there. [00:02.670 --> 00:04.850] As soon as my slides are up, I'll show them. [00:05.450 --> 00:08.970] I've got a little experience getting back to big machines. [00:09.250 --> 00:14.510] I started with System 370s, Big Iron, and I couldn't really lug one in and have anyone sign it today. [00:14.550 --> 00:19.330] So I would like to express some thanks to Steve Wozniak, who started my way and many others with the Apple II home machine. [00:19.970 --> 00:30.850] First, Richard Cheshire, like many of us, have also had some novel and interesting experiences with phone systems, which also was a launch board for all kinds of exciting adventures. [00:31.310 --> 00:32.850] Some documented and some not. [00:34.530 --> 00:47.130] He's also going to bring up some slides about the IMSAI and the Model 33 teletype, all close to our hearts, and then Wozniak will do an impromptu of any choices he wants to discuss, and perhaps he'll briefly tell us something about Wheels of Zeus. [00:49.270 --> 00:49.750] Okay. [00:49.750 --> 00:54.850] I'll ask Richard Cheshire to start speaking briefly, and time comes, I'll do a little presentation as well. [00:55.230 --> 00:55.610] I'm good. [00:56.010 --> 00:56.470] Chesh? [00:57.430 --> 00:57.910] Hi. [00:58.070 --> 00:58.410] Thanks. [01:02.780 --> 01:03.600] Thank you very much. [01:04.040 --> 01:05.040] I still can't. [01:05.260 --> 01:10.120] I love coming up here every two years and, you know, receiving all your adulation, and I can never figure out why. [01:10.520 --> 01:18.420] I figure it's just my name is out in all those really ancient, decrepit, old text files about the bad old days, and that, you know, anyway. [01:19.240 --> 01:26.340] What I would like to ask, if somebody could figure out the character points I would have in the gaming world, because I don't keep track gaming. [01:26.880 --> 01:29.220] Email it to me at cheshire at 2600.com. [01:29.220 --> 01:31.140] I'd like to see how many charisma points you think I should have. [01:33.960 --> 01:41.360] Back in the bad old days, I got started with phones, and things, and teletypes. [01:41.740 --> 01:47.840] I heard that there were these personal computers coming out, and I was fascinated at science fiction conventions. [01:48.520 --> 01:59.280] I hung out with people from New England and wound up living in Boston, because I put on a computer games exhibit at the Bosco Science Fiction Convention, wound up working for a company up there. [02:01.140 --> 02:05.460] They went out of business six months after they hired me, because they just couldn't handle all the growth they were getting. [02:07.280 --> 02:11.380] Then the store opened up, up in Burlington, called The Computer Store. [02:12.120 --> 02:20.600] They had an amazing new machine called the Altair 8800, working on an Intel 8080 chip. [02:21.100 --> 02:23.940] And you would go in, if we could have the first slide please. [02:24.040 --> 02:24.560] In 30 seconds. [02:24.640 --> 02:25.800] In 30 seconds, okay. [02:25.800 --> 02:32.320] Now, unfortunately, Sam has only been able to find an IMSAI 8080 with the front panel. [02:32.920 --> 02:54.500] Again, I worked on the Altairs, and what we used to do was we would, using the front panel switches, load in a 24-step bootstrap, directly in machine language, that would then load BASIC from paper tape off the Model 33 teletype. [02:54.680 --> 02:57.900] Now you know why they're referred to as the bad old days. [02:59.300 --> 03:01.680] Then we got something in from Albuquerque. [03:02.020 --> 03:04.000] BASIC came on cassette tape. [03:04.540 --> 03:19.460] You had to change three or four of the instructions at the end of the 24 steps, but it still took 24 steps, loading in the bits by each switch being one bit, and then hitting the load button. [03:19.680 --> 03:22.720] We're still trying to bring that up so we can show you what those switches look like. [03:23.720 --> 03:42.260] But you would load in the address, you know, mark it as the address, then load in the contents for that address, and then hit load and next, and it would then go to the next address, and you'd have the lights on top with the address, and then what it contained. [03:43.060 --> 03:51.500] You would load it up 24 times to hit that load next button until it was in, and then you hit the button of the switch mark, run. [03:52.260 --> 04:04.660] And all that little bootstrap program did was read in the data from the paper tape, load it into memory above that, and then jump to the start of that program, which was BASIC. [04:06.300 --> 04:08.260] BASIC was a funny little language. [04:08.380 --> 04:11.680] It was written by a young twerp kid named Gates. [04:11.980 --> 04:14.740] I don't know if he's ever, you know, come to much from that. [04:14.940 --> 04:31.820] But the thing is that my job that got me to New England, I was working on deck equipment, PDP-8s, PDP-10s, and PDP-11s primarily. [04:32.300 --> 04:42.060] And you know, this flavor of BASIC that this Gates kid came up with as Altair BASIC, sure looked a lot like BASIC plus under RSTS-E for the PDP-11. [04:42.700 --> 04:44.660] Is there a look and feel issue here? [04:45.280 --> 04:45.880] Anyway. [04:48.740 --> 04:50.820] We're getting close to getting that graphic up. [04:53.000 --> 04:55.480] But I did want to show you... [04:56.200 --> 04:56.880] Okay. [04:58.180 --> 05:00.360] Up comes the PowerPoint presentation. [05:01.960 --> 05:04.140] And there's the IMSAI 8800. [05:08.340 --> 05:09.020] Okay. [05:09.440 --> 05:16.980] You have your address switches, and then load address to get you to the address that you have marked in the switches. [05:17.500 --> 05:22.400] Then you would set the switches to what you wanted to be the contents of that memory location. [05:23.520 --> 05:29.740] When you finally had it all in the machine, you hit the run button, and the lights would flicker and flash and, you know, all that cool neat computer stuff. [05:30.600 --> 05:33.240] And the stuff that made it into movies because it was visual. [05:33.700 --> 05:38.160] That's why I always saw magtapes spinning because, well, these are motion pictures, right? [05:38.260 --> 05:39.960] So you needed something like that for motion. [05:39.960 --> 05:43.260] And so that's why I always saw those things. [05:43.780 --> 05:46.180] But that's how you loaded the bootstrap in. [05:46.280 --> 05:49.340] And then if we go to the next slide with the Model 33 teletype. [05:49.560 --> 05:50.860] You see the paper tape. [05:52.000 --> 05:56.180] And the paper tape punch was in pure ASCII. [05:56.440 --> 06:00.740] The teletype corporation was only 50% owned by AT&T. [06:01.000 --> 06:06.600] But the other 50% was owned by Western Electric Corporation, which was wholly owned by AT&T. [06:06.600 --> 06:07.320] ASCII. [06:07.400 --> 06:08.300] Don't ask me. [06:08.420 --> 06:09.500] I'm not a corporate lawyer. [06:09.860 --> 06:18.920] But ASCII came out at a time when the American Standard Code for Information Interchange became how computers talk to each other. [06:19.660 --> 06:21.880] Before that, the Hollerith Code. [06:22.340 --> 06:30.060] Each of you, when you registered, when you got your badges for this convention, will receive a Hollerith card, an IBM card properly encoded. [06:30.320 --> 06:30.980] There it is. [06:30.980 --> 06:36.120] And those cards are in a code called EBCDIC. [06:36.380 --> 06:38.320] Extended Binary Interchange, whatever it was. [06:38.820 --> 06:40.980] But you can Google it and find out what it means. [06:42.160 --> 06:45.360] But for real computers, they talk ASCII. [06:45.580 --> 06:48.000] The American Standard Code for Information Interchange. [06:48.180 --> 06:49.280] And that's how it went in. [06:49.420 --> 06:59.400] And the control character codes of control Q to start paper tape reader, and control S to stop paper tape reader, is how you always worked on the bulletin boards for a while. [06:59.640 --> 07:07.680] Because control S to stop paper tape reader, well, when data is coming across from a remote computer, it looks like somebody just put on the paper tape and started it up. [07:07.820 --> 07:11.640] So you send the control S to stop the reader for a bit, so your buffer can handle it. [07:11.900 --> 07:13.520] And then control Q to start it back up again. [07:15.460 --> 07:19.460] These became useful concepts in the microcomputer world. [07:19.460 --> 07:22.040] And also in the microcomputer world, something interesting. [07:22.420 --> 07:27.380] In the mainframe computer world, you had a computer operator. [07:27.540 --> 07:29.160] You had a program librarian. [07:29.480 --> 07:32.340] You had the programmers themselves. [07:32.340 --> 07:36.020] You had people to handle the printouts. [07:36.420 --> 07:47.460] I also worked in a Rube room at one large corporation, very early in my computing career, where we just took the printouts, which were 8-ply, and decollated them or decollated them. [07:47.460 --> 07:49.200] We had a large machine. [07:50.480 --> 07:56.100] Each one would go into their own pile and a roller to roll up the carbon paper that was between each sheet. [07:56.720 --> 07:58.960] And all these different functions in a computer room. [07:59.100 --> 08:02.340] When you had a microcomputer, you did all those jobs. [08:02.480 --> 08:04.220] You were the computerist. [08:05.420 --> 08:07.820] And so I kind of took that as my title. [08:07.960 --> 08:09.880] I am a consulting computerist. [08:11.620 --> 08:13.140] And that's how I hocked myself. [08:13.300 --> 08:15.640] And no one's ever bought it, but it's fun. [08:15.640 --> 08:17.300] And it's nice to play semantics sometimes. [08:18.720 --> 08:22.280] From the paper tape, I think I'll turn it over to Steve and see if he has any cool stories. [08:22.620 --> 08:22.880] Great. [08:23.100 --> 08:23.960] Well, yeah. [08:24.220 --> 08:27.220] I got kind of started back with, like you mentioned, punch cards. [08:27.400 --> 08:30.020] We had punch cards in college, and we'd run our programs through. [08:30.360 --> 08:31.860] Boy, I remember one good story. [08:31.880 --> 08:46.820] When it was finals time, everybody that used the computer would punch the holes on the cards for you. [08:46.920 --> 08:47.900] And that was just part of life. [08:48.140 --> 08:54.200] At finals time, you'd show up and there was a huge waiting line of people to get on the card punches. [08:54.320 --> 08:55.140] They were all in use. [08:55.500 --> 08:56.600] Every one of them was in use. [08:56.680 --> 09:02.500] And you'd have to wait an hour, an hour and a half sometimes, just to get your turn to type one iteration of your program. [09:03.340 --> 09:07.440] So, well, I had, I was really a touch typist on these card punches. [09:07.720 --> 09:18.720] And you'd hit the asterisk key and something, or there was a little key you had to hit with your left little finger next to the space bar, and other keys, like the D key and the E key, and you'd get parentheses and percent signs. [09:18.940 --> 09:20.960] Well, I did it all by touch instead of look. [09:21.380 --> 09:27.040] So what I did was I went over, nobody was using these older model 19 card punches. [09:27.340 --> 09:36.120] I went over to them and discovered that if I punched by touch without looking at the keyboard, it typed the wrong characters, but it punched the right holes. [09:37.060 --> 09:38.360] So I never had to wait. [09:38.540 --> 09:40.260] So that was one of my little gimmicks in college. [09:40.960 --> 09:44.320] And, you know, there were, I think there were like millions of people. [09:44.480 --> 09:50.900] Well, I think millions, but let's say hundreds of thousands, maybe a million people that were like myself, hoping for the day we could own our own computers. [09:50.940 --> 10:01.220] Because when we went to work for a company, we would, you know, go up to, write a program on paper and turn it over, go up to a window, give it to some, usually a gal typing away on a key punch. [10:01.220 --> 10:03.120] She turns it into a deck of cards. [10:03.380 --> 10:08.700] We'd pick up the deck of cards from her and go over to a window and submit them to the computer department. [10:08.880 --> 10:12.900] And they would run our program and we'd show up later and get a printout with our name on it. [10:13.240 --> 10:15.980] And it was like, you're using this company's computer. [10:16.040 --> 10:18.860] It was so far above us in value. [10:19.040 --> 10:20.860] It was like the technology over the human. [10:21.160 --> 10:23.420] The technology was more costly and more important. [10:23.420 --> 10:29.100] But we, somehow there were a lot of us that just wished we had our own computer and we were the owner of it. [10:29.200 --> 10:33.240] And could decide what it was used for and when and do quick jobs whenever we felt like. [10:33.540 --> 10:34.900] And we'd been sitting around. [10:35.180 --> 10:36.740] And so the homebrew computer started up. [10:36.840 --> 10:38.840] And the M-Sci computer had been introduced. [10:39.080 --> 10:48.940] And it told a lot of us that understood ones and zeros and logic and gates and chips, that this stuff we understood was all of a sudden affordable. [10:48.940 --> 10:51.940] You could buy the M-Sci computer for $400. [10:52.480 --> 10:54.100] It looked like an airplane cockpit. [10:54.300 --> 10:57.660] You kind of had to study computers to know how to build it and use it. [10:57.800 --> 10:58.940] So it was for hobbyists. [10:59.680 --> 11:01.800] It wasn't for the average Joe in the street. [11:02.440 --> 11:04.480] But it was affordable because it was $400. [11:05.480 --> 11:08.520] Well, that was for 256 bytes of RAM. [11:09.140 --> 11:15.800] So it had a ton of slots to plug in all the pieces you needed to have a real useful computer. [11:15.940 --> 11:18.380] A computer you could write a program on in BASIC. [11:18.380 --> 11:23.380] You had to buy a teletype that cost maybe surplus $1,200. [11:23.800 --> 11:26.820] Maybe new $3,000 for the ASR33 teletype. [11:26.980 --> 11:30.300] The slowest, clunkiest 10 characters a second it could type. [11:30.740 --> 11:33.740] A machine in the world with an awful keyboard that was uppercase only. [11:34.420 --> 11:36.060] And it was so expensive. [11:36.240 --> 11:39.600] You had to buy RAM cards to get up to 4K of RAM to run BASIC. [11:39.860 --> 11:41.620] And those RAM cards were extremely expensive. [11:41.620 --> 11:43.000] And they'd plug into slots. [11:43.200 --> 11:46.000] And they all had to have switches on them to set their addresses. [11:46.000 --> 11:48.900] You had to be a real techie to do this stuff. [11:49.080 --> 11:53.860] So it wasn't for the masses, but there were still a lot of us that now saw that we were closer. [11:54.080 --> 11:55.320] And we could somehow get there. [11:55.520 --> 12:05.440] To a lot of us, buying a $400 computer, toggling a bunch of switches on the front, and punching buttons to load them into memory was greatest thing in the world. [12:05.440 --> 12:07.340] It was a computer that could run programs. [12:07.480 --> 12:09.500] It didn't matter that it did anything useful. [12:09.880 --> 12:11.820] So there had to be a transition step. [12:12.000 --> 12:21.540] Somehow, between this machine that could do nothing useful, but it was a computer and satisfied our goals of our life, we had to make a transition to a machine that could do what we really wanted to do. [12:21.720 --> 12:27.680] We really wanted to write those programs we wrote in college and for fun at our work, that played games even. [12:27.680 --> 12:32.580] And Bill Gates, actually, you know, it's amazing, but I mean, he's kind of known for basically being a businessman. [12:32.740 --> 12:35.200] At least he had a technical start, like myself. [12:35.620 --> 12:40.160] I mean, I kept it up for life, but he actually did write a basic or with somebody else. [12:40.180 --> 12:43.760] And that was, you know, kind of a little bit admirable in our club of people. [12:43.860 --> 12:47.600] And we largely had a social conscience that was roughly equivalent to the people here. [12:47.740 --> 12:51.380] We came from the same walks of society as the people in this room right now looking around. [12:51.540 --> 12:54.840] We dressed the same and, you know, we didn't have money, which was fortunate. [12:54.840 --> 12:56.700] But actually, he was one of those heroes. [12:56.880 --> 12:57.900] He had written a basic. [12:58.360 --> 13:00.260] Every single person in the room knew that name. [13:00.360 --> 13:04.620] And, you know, it's like he'd gotten fame for a little project that some of us were smart enough to do. [13:05.780 --> 13:07.180] And it was very inspirational. [13:07.740 --> 13:17.620] So, you know, I did a lot of thinking watching these complicated, expensive machines with all the cards plugged in, especially if you ever wanted something like graphics on a screen or color. [13:17.840 --> 13:21.380] You'd have to plug in two cards that had more chips than the whole M-Sci computer. [13:21.380 --> 13:25.220] You know, I started thinking, well, fortunately, it was real lucky. [13:25.280 --> 13:39.520] I was one of those people that many years before had pieced together some chips that were given to me and managed to build a little computer with switches and lights and load buttons and you toggled it in bit by bit and you got a program in it and it really ran and flickered some lights. [13:39.680 --> 13:49.260] Maybe all it did was take two switches as binary or four switches as binary, four other switches as binary and multiply two numbers together and display an 8-bit binary result on some lights. [13:49.340 --> 13:50.380] Maybe that's all it did. [13:50.540 --> 13:53.580] But I knew it was a computer and was so delighted with it. [13:53.660 --> 13:57.140] I was real lucky to have gone through the step that was now available to everyone. [13:57.540 --> 14:02.660] Because I was trying to think, how do you really get to what you really want in the end is always further off. [14:02.840 --> 14:04.580] You really want solutions in life. [14:04.720 --> 14:06.040] And I wanted BASIC. [14:06.040 --> 14:08.400] I had never programmed in BASIC. [14:08.500 --> 14:09.680] I had never studied the language. [14:09.820 --> 14:10.780] I didn't know its syntax. [14:11.080 --> 14:17.280] But I could sniff the wind with Bill Gates' BASIC and I could tell that was going to be the popular language for small, low-cost computers. [14:17.560 --> 14:19.700] Because, mainly because you could run games in it. [14:19.800 --> 14:22.960] There were books of 101 games written in BASIC, that sort of thing. [14:23.940 --> 14:25.940] So, the important thing, what do you need? [14:26.040 --> 14:27.380] What's the absolute minimum? [14:27.580 --> 14:28.460] I was a minimizer. [14:28.680 --> 14:36.020] What's the minimum cost you can get things down to that could run a machine that could actually let you type in it? [14:36.020 --> 14:37.000] Type in a program in BASIC. [14:37.160 --> 14:42.080] The two programs I wanted to type in were games, like Wumpus, that were text-based games. [14:42.240 --> 14:48.580] It types, you know, a phrase of text and you answer yes or no and try this quadrant for Star Trek and whatever. [14:48.740 --> 14:49.460] Those were fun. [14:49.660 --> 14:51.840] Those were the most amazing things you could do back in those days. [14:51.980 --> 14:54.200] Just like the greatest computer games of today. [14:54.800 --> 15:01.480] And I also wanted to write little simulations that simulated logic for my designs at work at Hewlett Packard. [15:01.800 --> 15:14.860] God, would I be a hero if I had a computer on my desk that I could type on and get answers back immediately instead of signing up for the company computer and putting cards in or whatever and entering programs and then waiting for my output and then turning it over to someone else? [15:15.120 --> 15:16.560] God, that was a slower process. [15:16.700 --> 15:19.200] I really wanted to do these great things myself. [15:19.660 --> 15:21.820] And what was the minimum configuration? [15:22.060 --> 15:30.880] The minimum types of chips, of memory, of processors, of input and output that you could do that would satisfy those two little needs. [15:31.180 --> 15:32.700] Games and work simulations. [15:33.140 --> 15:35.860] And it boiled down to you would need 4K of RAM. [15:36.460 --> 15:38.360] 4K of RAM wasn't quite affordable. [15:38.540 --> 15:42.400] Like I said, that first IMSAI had 256 bytes of RAM. [15:42.680 --> 15:43.840] That's where it had to start. [15:44.280 --> 15:46.620] 4K of RAM was just becoming affordable. [15:47.080 --> 15:49.020] Had to choose the new dynamic RAM. [15:49.420 --> 15:54.400] Took a little extra thinking to design circuits to keep its memory, but boy, that was worth it. [15:54.500 --> 15:57.340] And it saved chips to use the right kind of RAM. [15:57.500 --> 16:00.500] Had to find a decent processor of the day at a decent price. [16:01.040 --> 16:03.040] Lucked into a processor at 20 bucks. [16:03.820 --> 16:03.980] You know? [16:04.200 --> 16:09.020] And so the biggest step of all, though, I didn't want to toggle these switches and lights. [16:09.380 --> 16:11.320] So I put in a human keyboard. [16:11.800 --> 16:15.680] Now that wasn't really a very complete step towards humanizing the computer. [16:15.960 --> 16:22.760] It wasn't going to give you a computer that all of a sudden this computer typed English and other computers typed ones and zeros binary. [16:23.700 --> 16:30.700] Because all I wanted this keyboard to do, I wanted to write a 256-byte program in ROM, which I did. [16:30.820 --> 16:34.720] And it took two chips back then to have a 256-byte program in ROM. [16:34.920 --> 16:35.480] It was that hard. [16:35.640 --> 16:36.700] These little problems that we had. [16:37.060 --> 16:40.760] And all it would do is let you type base 16 numbers. [16:41.000 --> 16:44.280] 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. [16:44.480 --> 16:50.040] Type in hexadecimal and get the data into memory a little faster than toggling it up on switches. [16:50.200 --> 16:52.200] But it was still a geeky binary system. [16:52.380 --> 16:57.660] But it was just replace that front panel with switches and lights with a keyboard that's human. [16:57.800 --> 16:58.540] That was a step. [16:59.240 --> 17:01.600] Eventually, somebody can write a language. [17:01.620 --> 17:09.520] If you build enough technology at the basis, somebody can develop a technology to take it to where you can get it to run a programming language. [17:09.700 --> 17:13.780] With the Apple II computer, it was the first computer, we actually put the entire BASIC in ROM. [17:14.080 --> 17:18.300] So when you turned on the power switch, beep, you were typing in BASIC. [17:18.800 --> 17:22.080] I mean, God, I just wish something like that ever existed today. [17:22.200 --> 17:23.620] We've gone backwards in a lot of ways. [17:24.020 --> 17:26.720] It just made the computer so accessible and interesting. [17:27.500 --> 17:30.840] But you needed to... so you needed a lot of things to work out right. [17:30.960 --> 17:32.000] You needed a low-cost... [17:32.000 --> 17:32.820] Oh, input-output. [17:32.980 --> 17:34.200] A teletype was too expensive. [17:34.640 --> 17:39.840] The only output device that was free in anyone's life like my own was your home TV. [17:40.460 --> 17:42.020] So you start with the home TV. [17:42.180 --> 17:44.220] Yeah, there's limitations to TV signals. [17:44.380 --> 17:48.400] You can only put about 40 characters across the screen and be able to read them. [17:48.660 --> 17:53.520] Um, and it's, you know, it's... there were no input... there were no video in back in those days. [17:53.780 --> 17:54.920] TVs didn't have video in. [17:55.040 --> 18:01.640] So you had to be a hobbyist to snake it in or you had to build, uh, a transmitter with no laws back in those days. [18:01.900 --> 18:02.740] Um, a modulator. [18:02.820 --> 18:04.100] I'd been a ham radio operator. [18:04.360 --> 18:08.900] And I really respected ham radio as having taught us how we're the protectors of the airwaves. [18:08.980 --> 18:10.420] We use them for good things, you know. [18:10.500 --> 18:17.400] We not only, you know, jump in in emergencies and give people communication, but we... we prevent spurious emissions. [18:17.800 --> 18:23.780] Those extra inner... extra radio signals in the air that cause interference with people who need to use radio for good things. [18:24.300 --> 18:35.160] And boy, when it came a time that we developed the Apple II with the company, and we had to get the signals into a TV on channel 3, I just had a little... a big ethical principle. [18:35.380 --> 18:36.720] I just wouldn't allow us to do it. [18:37.100 --> 18:40.740] Because there was no law saying what levels could you transmit on. [18:40.920 --> 18:42.720] It's not right to build transmitters. [18:42.840 --> 18:44.840] So we actually had to get an outside company. [18:44.960 --> 18:52.340] Marketing did this without telling me that they were arranging it all and telling them where we were shipping Apple IIs, but got this outside company to develop the modulator. [18:52.480 --> 18:58.800] I just didn't wanna... didn't wanna... just... I was too scared to be doing these... some things are just sort of... you shouldn't do. [18:59.340 --> 19:06.240] Anyway, um, the Apple I took the big step towards sort of a human keyboard, which suggested what was next. [19:06.380 --> 19:07.900] And what was next was I sniffed the air. [19:08.340 --> 19:11.800] Has anyone written a basic for the 6502 microprocessor? [19:12.200 --> 19:18.960] Like, Bill Gates had a basic, and eventually, um, Tom Pittman would have tiny, tiny basic for... I forget which machine. [19:19.100 --> 19:20.580] Maybe... maybe even the 6502. [19:20.760 --> 19:21.920] And nobody had done it. [19:22.240 --> 19:22.880] Oh, my gosh. [19:23.080 --> 19:30.440] You know, when you're shy and you can't talk to people, the way you get into conversations is by doing great things, and people come up and want to see what you've done, and you explain it. [19:30.600 --> 19:31.020] You know? [19:31.380 --> 19:33.300] So, that... I thought, this is gonna be great. [19:33.400 --> 19:34.900] I'm gonna write the first basic. [19:35.140 --> 19:37.840] Of course, I've never taken a class in writing languages. [19:38.120 --> 19:40.240] And I've never read books on writing languages. [19:40.800 --> 19:44.520] But, you know, I've sort of struggled in my head to try to figure some techniques out. [19:44.700 --> 19:47.160] I sat down, and it... unbelievable. [19:47.440 --> 19:50.340] The hardest job, the most hours I spent in designing that first computer. [19:50.480 --> 19:53.220] The Apple I was writing the basic for it. [19:53.320 --> 19:54.080] Many more hours. [19:54.180 --> 20:01.020] I wasn't really a programmer as much as a hardware guy, and my software was low level, kind of the way you develop like software, like hardware. [20:01.500 --> 20:02.280] Very tricky. [20:02.540 --> 20:10.340] Thousands of little lines of code you have to keep in your head, and get them all right, and think of another idea, and a bug that you might have, and something that might come up, and rearrange the code. [20:10.600 --> 20:12.660] Now the code, I couldn't afford an assembler. [20:12.840 --> 20:14.000] You know how you write a program? [20:14.340 --> 20:15.180] And you assemble it. [20:15.280 --> 20:16.100] And you got your output. [20:16.820 --> 20:29.400] What we had in those days, a lot of the people using even the M size, had little cards that told you if you wanted an instruction that added A to this location in memory, you had to type in one O, you had to convert it to a certain set of ones and zeros. [20:30.040 --> 20:32.200] Well, that was all I could use, was use the card. [20:32.360 --> 20:42.700] I would write the program on the left-hand side of a page, use my little cards and figure out what the ones and zeros were going to be over on the right-hand side of the page, and basically hand wrote the entire basic that way. [20:42.900 --> 20:46.140] If you had a jump, you had to guess how many bytes it was jumping over. [20:46.740 --> 20:49.960] You didn't have... okay, let's say you got a program done. [20:50.120 --> 20:51.920] It was in certain locations in your ROM. [20:52.320 --> 20:55.600] Everything was coded to start at a hard address in a ROM I was making. [20:56.280 --> 21:01.500] And if I had to go back and rewrite a routine and add code to it, I couldn't stretch everything else out. [21:01.600 --> 21:03.580] I'd be stretching out 4K of program. [21:03.760 --> 21:04.740] The basic got that huge. [21:04.880 --> 21:10.300] And I was really good at typing base 16 so I could actually type 4K in in about 40 minutes, get it all into the computer. [21:10.740 --> 21:15.900] I'd sit in the back of the Homebrew Computer Club, the very back row because it was right up next to an electrical outlet. [21:16.080 --> 21:22.420] I'd sit there during the meeting typing my basic in, debugging a couple more bits of routines, unplug it, I lose everything. [21:24.240 --> 21:27.680] So it was really an amazing process to get this basic done. [21:27.880 --> 21:29.380] But I had a big advantage. [21:29.640 --> 21:33.900] I had not only designed hardware, I had written the software, all of it for the computer. [21:34.260 --> 21:35.960] You can make changes in your head. [21:36.060 --> 21:38.020] This would be a neat thing to add to the computer. [21:38.120 --> 21:38.840] A step to take. [21:39.020 --> 21:44.520] And because it's one person, you don't have to go through committees that sit down what each one of them is going to do and how they're going to communicate. [21:44.860 --> 21:51.840] You just add something into the basic one day, re-burn the ROM, and come back and change the hardware if you have to. [21:51.960 --> 21:52.400] Add a chip. [21:52.800 --> 21:55.580] So it was real easy to get things developed extremely fast. [21:55.760 --> 22:00.260] I would estimate two to ten times as fast as, you know, projects are developed today. [22:00.420 --> 22:02.680] If you can find, you know, one engineer that can kind of do it all. [22:03.080 --> 22:04.780] So I had that luck going for me. [22:04.940 --> 22:07.940] The Apple II came about very quickly after the Apple I. [22:08.200 --> 22:10.740] And it was, you know, thinking about other things I'd done. [22:10.980 --> 22:16.340] One of them was working at Atari, a company in Los Gatos, California started the arcade game revolution. [22:17.120 --> 22:17.960] And they had Pong. [22:18.200 --> 22:19.080] And I built my own Pong. [22:19.280 --> 22:21.600] And Steve Jobs came to me and got me to design Breakout. [22:21.700 --> 22:22.800] Any of you remember Breakout? [22:25.950 --> 22:26.350] Yeah. [22:27.150 --> 22:32.090] You recognize that as one of the foremost, the actual foremost steps in arcade games ever. [22:32.250 --> 22:33.730] Breakout was such a huge hit. [22:34.010 --> 22:36.410] Nolan Bushnell was tired of games with more and more chips. [22:36.550 --> 22:41.130] They wanted me to design one while Steve Jobs came to me with the project because I could design it in a few chips. [22:41.690 --> 22:45.870] And actually my design was, they kind of had to redesign it there because they couldn't understand my design. [22:45.990 --> 22:46.510] It was so clever. [22:47.130 --> 22:47.730] But that was typical. [22:48.410 --> 22:49.010] That happens. [22:49.870 --> 22:52.130] But anyway, I went into the lab four days and nights. [22:52.330 --> 22:53.970] Steve Jobs and I both got mononucleosis. [22:54.130 --> 22:55.250] Didn't shut down our lives. [22:55.410 --> 22:59.430] And that's an amazing time to develop a game when it's in hardware, not software. [22:59.710 --> 23:01.210] They had no microprocessor games. [23:01.410 --> 23:04.850] I heard hints that there was going to be a microprocessor game. [23:05.190 --> 23:08.670] Well, in Breakout that they had, they had colored strips of plastic over the screen. [23:08.810 --> 23:10.630] So the bricks looked colored a little. [23:10.830 --> 23:13.590] And I thought, whoa, wouldn't it be neat to do it really in color? [23:14.010 --> 23:18.050] And someday, wouldn't it be neat to program a microprocessor, a million instructions a second? [23:18.230 --> 23:20.470] You could play a game at that speed. [23:20.650 --> 23:23.550] You know, a real arcade games where things move. [23:23.710 --> 23:26.590] Not type in little words like, you know, the wumpus is near you. [23:28.030 --> 23:35.110] So the Apple II was, you know, some good design work, but also it was largely adding color. [23:35.230 --> 23:36.110] It was a huge element. [23:36.310 --> 23:37.030] But you know what? [23:37.070 --> 23:37.870] I wrote the basic. [23:38.090 --> 23:44.590] I could go back into the basic and add a little routine that draws a colored line of a vertical or horizontal line of a certain color. [23:45.090 --> 23:45.750] Because I had written the basic. [23:45.770 --> 23:46.630] I could do that instantly. [23:46.970 --> 23:49.910] And then go back to the hardware and add the chips that make it right there. [23:50.090 --> 23:55.350] And I could add some chips for paddles and then go to the software and write the routines and put it into the basic as well. [23:55.730 --> 24:01.950] So I had huge advantages jumping over the whole machine and getting anything done very easily and quickly. [24:03.690 --> 24:08.470] I wanted this computer, the Apple II, to be able to play games like arcade games. [24:08.570 --> 24:08.950] Don't know why? [24:09.050 --> 24:10.230] I had designed Breakout, right? [24:10.390 --> 24:10.930] At Atari. [24:11.190 --> 24:16.470] I wanted to design the possibility, could you program it on a computer, a microprocessor? [24:17.410 --> 24:21.250] Somewhere along the lines, I thought, I wonder if you could program a game. [24:21.330 --> 24:22.470] Well, you also needed graphics. [24:22.610 --> 24:25.770] You needed big solid color blocks on the screen to play Breakout. [24:26.510 --> 24:27.830] Smaller ones for high res. [24:28.130 --> 24:30.970] Just design those in with games in mind totally. [24:31.210 --> 24:36.070] I thought, I wonder if you could program a game like Breakout in basic. [24:36.630 --> 24:38.290] Basic is a much slower language. [24:38.530 --> 24:42.770] Basic sees a command that says add one to the number of dollars. [24:43.010 --> 24:51.030] And it goes through hundreds and even thousands of little microprocessor statements to do that simple little function because it's what's called an interpreted language. [24:51.270 --> 24:55.830] It analyzes your statements line by line and then goes out and runs a program that gets them done. [24:56.750 --> 25:01.030] So the basic was going to be too slow for games or not. [25:02.050 --> 25:05.810] And, you know, this was going to make computers so human and give them a new view. [25:06.090 --> 25:09.550] I sat down one day and added the commands to my basic for color. [25:10.030 --> 25:21.010] And then I sat down in my little apartment in Cupertino where I had, you know, big huge boxes full of mice, pet mice laying on the floors and wires snaked into the home TV and, you know, the whole geeky approach. [25:21.150 --> 25:27.810] And I sat down and I decided to write the little basic steps now that I had enough hardware and software to draw a line of bricks. [25:28.490 --> 25:28.890] Okay? [25:29.070 --> 25:30.470] Real easy for loop in basic. [25:31.030 --> 25:32.230] And draw eight lines of bricks. [25:32.630 --> 25:33.670] And make them alternate colors. [25:33.930 --> 25:36.890] And decide if they're going to be spaced differently or next to each other. [25:37.270 --> 25:39.150] Change a couple little for loop commands. [25:39.450 --> 25:40.190] And you know what? [25:40.230 --> 25:41.110] I don't like the colors. [25:41.310 --> 25:41.990] Yellow and brown. [25:42.230 --> 25:42.990] Didn't work out. [25:43.170 --> 25:44.190] Let me try blue and green. [25:44.630 --> 25:45.710] Let me try blue and red. [25:45.930 --> 25:52.690] Yellow... I'm sorry, colored TVs don't always look that good with the few color choices when you only have like eight colors but... or 16 colors, I mean. [25:53.250 --> 26:00.050] So it took a little while, like three minutes, to go through about, you know, thirty variations and get some nice colors that I like the most. [26:00.270 --> 26:02.550] And then program a paddle in basic. [26:02.830 --> 26:07.410] And make it slide up and down according to your pot command that you turned in basic. [26:07.630 --> 26:13.130] And then program a ball that goes and bounces with certain angles and reflects correctly and debug the program a little. [26:13.310 --> 26:16.930] And you wind up with a basic program that's only about twenty lines long. [26:17.270 --> 26:21.030] And it's the whole game that would normally take three man months to develop in hardware. [26:21.270 --> 26:24.110] And I had played with hundreds of variations of it. [26:24.710 --> 26:28.450] And those hundreds of variations would have taken my entire life to do in hardware. [26:28.810 --> 26:30.250] I called Steve Jobs over. [26:30.490 --> 26:32.090] Sat him down next to me on the floor. [26:32.270 --> 26:35.470] And I was almost shaking a quiver and I said, oh my God, Steve, you gotta see this. [26:35.630 --> 26:38.350] Now that games are software, the world's gonna change. [26:38.470 --> 26:39.290] Never be the same. [26:39.850 --> 26:40.650] And that was a great day. [26:40.890 --> 26:46.990] Now, at one point, I went down to the Homebrew Computer Club where, of course, I gave everything out and talked about my... and demonstrated my project. [26:47.170 --> 26:49.830] And there was my friend John Draper, Captain Crunch. [26:50.450 --> 26:52.290] Well, I thought, you know, this will be great. [26:52.450 --> 26:55.690] The first time I'm gonna show off... there he is back there somewhere, John. [26:56.250 --> 26:59.630] So I thought I'd show off my... he doesn't know this story either. [27:00.070 --> 27:00.930] But he was a victim. [27:02.190 --> 27:06.210] I thought I'd show off my breakout game playing on my Apple II little board. [27:06.310 --> 27:09.030] A little tiny board with about thirty chips or twenty chips on it. [27:09.390 --> 27:11.670] And it was... I used to like to impress people. [27:11.790 --> 27:14.970] And now I had a color game on a machine. [27:15.330 --> 27:16.450] Not just some color demos. [27:16.870 --> 27:19.070] And this was gonna, like, theoretically blow people away. [27:19.210 --> 27:21.470] And the first demo, public demo, was at the Homebrew Computer Club. [27:21.630 --> 27:23.690] Well, I put a little sneaky thing into this program. [27:23.850 --> 27:31.130] If you type control Z, it would go into a mode where the paddle jiggled a little but always lined up with the ball. [27:31.270 --> 27:31.950] Never missed it. [27:32.630 --> 27:40.450] So I got John Draper, who'd never played arcade games in his life, I don't think, on this pot trying to hit a ball with a paddle. [27:41.010 --> 27:42.850] And I... and I hit control Z. [27:43.070 --> 27:50.150] And wherever he turned the pot, right or wrong directions, it seemed to jiggle a little, to fool it, to fake him out, but it would always hit the ball. [27:50.510 --> 27:56.630] And he... everybody watched that John play in this game as it got faster and faster for about ten minutes and he won. [28:00.010 --> 28:01.150] So, there you go. [28:04.610 --> 28:05.050] Okay. [28:05.250 --> 28:05.530] Okay. [28:05.670 --> 28:07.030] That's... that's probably enough for now. [28:07.270 --> 28:08.930] So, um, you know, pass it back. [28:09.290 --> 28:09.710] Okay. [28:10.590 --> 28:11.850] Also, um, is this live? [28:12.050 --> 28:12.450] This device? [28:13.550 --> 28:13.870] Okay. [28:13.990 --> 28:14.970] I don't need it yet, but I will soon. [28:15.230 --> 28:15.710] Hi there. [28:15.970 --> 28:20.210] Um, I'd like to show you just a few slides, talk a little bit about the future of the past of computing. [28:21.090 --> 28:26.650] Um, the Replica 1, some of you may or may not be familiar with, is a functional Apple 1 clone. [28:26.830 --> 28:35.190] So if you spend, say, ten or twenty or fifty grand for an Apple 1 that you're fortunate enough to obtain, um, people I've heard who have them sometimes are scared to turn them on. [28:35.330 --> 28:40.630] They don't want to pop a capacitor, they don't want to breathe on it wrong, um, and a lot are behind glass. [28:40.990 --> 28:48.730] Well, this man, Mr. Briel has replicated basically an Apple 1, uh, probably a ninety-eight, ninety-nine percent accurate one from what I understand. [28:48.930 --> 28:49.990] I haven't gotten my hands on one yet. [28:50.230 --> 28:55.850] And you throw yourself on there a modern power supply, a modern keyboard, you've got an Apple 1 to play with. [28:55.970 --> 28:59.850] I think this sort of thing is a wonderful device going towards the future of the past of computing. [29:00.190 --> 29:11.350] Actually, it's a real good retro one because it even had the same oddball connectors for connecting eight wires to a keyboard and, uh, um, the way it connects to the monitor and to the transformers. [29:11.490 --> 29:12.910] So, it was really kind of true. [29:13.310 --> 29:14.590] And I'm going to move... [29:15.090 --> 29:17.390] How do you handle the system chips? [29:18.030 --> 29:22.550] Uh, I believe it's got, um, the ROM, it's got appropriate ROM, I believe. [29:23.030 --> 29:27.210] Actually, if I could, I'd like to just, I want to make sure that I get through my material and we'll handle questions at the end. [29:27.550 --> 29:28.690] But I will have time. [29:29.550 --> 29:31.550] Um, I want to talk briefly about emulators. [29:31.710 --> 29:32.970] Apple 2 systems and software. [29:33.350 --> 29:36.530] Uh, if you go to virtualapple.com, you don't even have to load your own software. [29:36.750 --> 29:39.430] It's online Java and they've got hundreds of discs there. [29:39.550 --> 29:41.290] You can run any Apple software you want virtually. [29:42.090 --> 29:42.850] Literally virtually. [29:43.790 --> 29:45.230] Um, Apple Win. [29:45.370 --> 29:47.470] I'm going to show you a demo here of Apple Win on my notebook. [29:47.810 --> 29:52.510] Um, I'm also going to do a very brief distributed, emulated, multiple Apple 2 processing demo. [29:53.010 --> 29:55.250] We've got multiple Apple 2's acting cooperatively. [29:57.430 --> 30:00.490] And also, there's Apple CE for pocket PCs. [30:00.850 --> 30:05.350] I've got about 60 discs full of Apple software running on my iPack. [30:05.590 --> 30:09.690] So when I'm not running mini-stumbler, I'm playing Apple Adventure and Apple Trek. [30:10.690 --> 30:16.390] Uh, also, if you ever want to annoy your boss when he wants a spreadsheet and you don't want to deliver it to him, give it to him InvisiCalc. [30:20.790 --> 30:24.470] Um, this will be my distributed processing demo. [30:24.730 --> 30:26.730] Uh, the first step is an initialization. [30:26.850 --> 30:27.910] I'm opening a text file. [30:28.050 --> 30:30.550] I'm from any given emulated system. [30:31.250 --> 30:33.710] Open, write, put out a zero into a text file. [30:34.370 --> 30:35.170] Close it out. [30:35.470 --> 30:36.350] That's a number. [30:37.650 --> 30:42.610] What I'm doing is to set up a threaded calculation, is I'm opening this file called data. [30:42.770 --> 30:43.710] I'm reading a number. [30:43.770 --> 30:44.990] In this case, it's starting at zero. [30:45.250 --> 30:46.010] I'm closing it. [30:46.110 --> 30:48.670] I'm opening it for write, adding one and closing it. [30:49.230 --> 30:50.370] I am using timing. [30:50.530 --> 30:54.150] I'm starting each Apple's boot a few seconds apart, and I have a delay loop. [30:54.570 --> 31:03.830] So if you can have end processors, as long as you avoid a race condition by setting up a suitable timing interval, each one's going to read and write independently, adding to an increment. [31:04.030 --> 31:05.290] This is a proof of concept. [31:05.290 --> 31:06.350] It's a basic case. [31:06.710 --> 31:08.270] And you wouldn't do it for a simple problem. [31:08.350 --> 31:10.730] But for a complex problem, it would be faster than one Apple. [31:11.110 --> 31:17.990] And again, you have to work, if you do this on actual hardware, you need an interconnected bus and a mutual exclusion solution. [31:18.550 --> 31:19.810] But I'll show you this. [31:20.030 --> 31:20.830] It is working. [31:21.750 --> 31:22.870] So simple and basic. [31:23.750 --> 31:23.870] Yeah. [31:26.090 --> 31:28.770] Then I'm going to discuss the AppleCat, and we're going to go on to questions. [31:29.850 --> 31:32.310] Actually, I'll do the AppleCat, just so I don't have to leave this application. [31:33.170 --> 31:35.010] A number of you may know the AppleCat. [31:35.110 --> 31:36.670] It was a wonderful little device. [31:36.970 --> 31:39.870] I'll just read off some of the options with some of the standard software you could get. [31:40.090 --> 31:45.630] You could dial multi-frequency or touch tones, render busy signals, rings, dial tones, howlers. [31:47.350 --> 31:51.590] Some of our friends up here might be familiar with the payphone nickel sounds, dime and quarter. [31:52.470 --> 31:54.910] I don't know how many of us took the Apple to the payphone. [31:55.750 --> 32:00.750] With cheeseboxing, you could emulate a payphone in your home, trick the switch, and really confuse them. [32:01.650 --> 32:02.590] There was a ROM. [32:02.730 --> 32:04.810] You could program it to recognize the touch tones. [32:05.590 --> 32:08.970] It would make loop tones, teleconferencing signals. [32:09.650 --> 32:11.250] Very easily programmable. [32:11.690 --> 32:23.670] And unfortunately, I will say that if when you buy one of those little phone cards now, you dial an 800 number and then put in about 50 digits or 100 digits before you can dial your number, well, they used to be five-digit codes. [32:24.070 --> 32:29.150] And due to a few people on the AppleCat, I think that was the start of getting off the five-digit access cone for phone networks. [32:32.500 --> 32:35.600] Okay, I'll do a little distributed processing demo and we'll go on to questions. [32:44.320 --> 32:47.340] Okay, I'm going to bring up the Apple emulator. [32:50.040 --> 32:52.480] I'm going to bring up a faster one on a local drive, actually. [32:57.280 --> 33:00.140] And this is all going to be online, so you'll have the links for all this material. [33:05.780 --> 33:07.060] I'm rebooting my Apple. [33:08.520 --> 33:09.980] I'm loading a program called Zero. [33:12.120 --> 33:12.920] I'm running it. [33:13.400 --> 33:14.700] I've just zeroed out a file. [33:15.920 --> 33:19.600] Now, I'm going to create... that's in... Apple 1. [33:19.780 --> 33:20.840] Now, I'm going to bring up another Apple. [33:20.860 --> 33:21.780] I'm going to call it Apple 2. [33:23.600 --> 33:26.860] I'm loading up my demo, and I'm going to sit it there. [33:26.940 --> 33:28.940] Let that processor sit idle, that system sitting. [33:31.500 --> 33:34.100] That's another processor that's going to sit there, another Apple system. [33:37.260 --> 33:40.000] That's another Apple system that's going to work on this distributed problem. [33:40.160 --> 33:42.120] I'm going to pop up one more, just for good measure. [33:42.220 --> 33:42.880] We're going to have four. [33:43.780 --> 33:47.400] And if I time it right, we're not going to have any race conditions, they won't be stepping on each other. [33:51.480 --> 33:53.340] And they're all working off of one shared file. [33:55.980 --> 34:03.400] Okay, I'm booting that apple, I'm booting that apple, I'm booting that apple, and I'm booting this apple. [34:03.680 --> 34:05.860] That took a long time, half a second each. [34:06.360 --> 34:08.560] And now they're running at the real time of the original apple. [34:08.680 --> 34:10.440] If you want, you can run this at 100 frames a second. [34:11.160 --> 34:14.500] And I've got four apples, each counting independently. [34:14.500 --> 34:16.540] On the same data set. [34:19.950 --> 34:29.010] So you've got, that seems to be the first series, second series, third series, and fourth series, all on one shared simulated drive. [34:30.110 --> 34:30.910] Race condition. [34:32.710 --> 34:36.330] 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, no race condition. [34:37.350 --> 34:38.790] 10, okay, it happens. [34:39.010 --> 34:40.310] I did it a little fast, I'm live. [34:40.550 --> 34:44.190] If I timed it, if I counted to 3 between doing each one, then we could avoid races. [34:44.330 --> 34:45.710] Okay, we're having a race every few cycles. [34:46.470 --> 34:50.230] But it's proof of concept, and I'll live with one race condition out of there. [34:50.990 --> 34:51.490] I'll let it run. [34:52.670 --> 34:54.330] I think that leaves, I'm not going to do this again. [34:54.510 --> 34:55.810] I'd rather use the time for questions. [34:56.050 --> 34:59.750] But the code is there if anyone wants to play with it, and I think this might be a good time to move on to questions. [35:02.050 --> 35:05.410] And please use the microphone in the center so that our internet listeners can... [35:05.410 --> 35:07.830] Actually, if I may, is this live? [35:07.950 --> 35:09.650] Can we route power to this just for one second? [35:09.650 --> 35:11.430] Yeah, just hit the source button. [35:15.720 --> 35:16.180] Okay. [35:16.560 --> 35:18.160] Yeah, I hit the source button. [35:19.080 --> 35:20.200] Did you just plug in anything? [35:20.580 --> 35:20.760] Yeah. [35:21.620 --> 35:22.280] I hit source. [35:26.820 --> 35:28.100] I wired it wrong. [35:28.280 --> 35:29.760] Okay, we'll move on to questions. [35:29.900 --> 35:32.040] But basically, I have the link up there. [35:32.620 --> 35:36.460] You can take Apple disks, which are in a standard format for PC platforms now. [35:36.960 --> 35:39.780] You can load up about as many as you'd want on any of these devices. [35:40.240 --> 35:41.480] And walk around, you've got your Apple Adventure. [35:41.600 --> 35:42.320] You've got your games. [35:42.360 --> 35:46.700] And if you do a call negative 151, you drop right to machine language. [35:47.180 --> 35:50.860] You can boot to the integer basic and do an F666 go. [35:51.180 --> 35:53.680] And you're an assembler, a mini assembler as well. [35:56.140 --> 35:59.020] If this gets going live, we'll kick in the last few minutes. [36:01.300 --> 36:02.700] That was for the IPAC. [36:04.320 --> 36:05.460] Yeah, Pocket PC. [36:07.900 --> 36:09.740] I haven't got that for POM yet that I know of. [36:10.420 --> 36:10.820] Gotcha. [36:16.080 --> 36:18.480] Hey, go ahead to your question, please. [36:19.460 --> 36:20.800] This question is for Steve. [36:21.260 --> 36:37.880] And your participation and vocal support for the individual contributor in the technology and individuals pursuing curiosity and having an opportunity to participate, not just as members of a large corporation or legendary. [36:38.200 --> 36:44.280] And I think the hacker and computer community in general owes you a huge thanks for that. [36:44.720 --> 36:45.280] Thanks. [36:45.480 --> 36:52.500] Yeah, in general, you know, it's been so deep in my soul not to lose your values as you go through even business success. [36:52.840 --> 37:01.260] And I'm very proud also, whenever the subject comes up, I'm not really into working real hard on issues and political things and that kind of work. [37:01.420 --> 37:06.160] But I'm so proud of having been one of the funders, founders, original board members of the EFF. [37:06.720 --> 37:08.260] Well, given that, I... [37:13.870 --> 37:15.830] There's just a lot of right and wrong. [37:16.050 --> 37:17.530] And it's, you know, hard to deal with. [37:18.150 --> 37:39.610] I wonder if you could offer us a little perspective from that obvious position as to the legacy of Apple as a corporation's policy of closed hardware and software and specifically the separation of the development tools from the Apple OS environment, from the package typically delivered to the end user. [37:39.790 --> 37:44.410] The development tools are a separate and very expensive tool chain. [37:44.790 --> 37:56.010] And until the recent integration of the BSD-derived kernel with Mac OS X, there were no third party development tools whatsoever available for the Apple environment. [37:56.630 --> 37:57.310] Could you... [37:57.310 --> 37:58.250] How did that evolve? [37:58.510 --> 38:07.830] And then ultimately, maybe you could speak to some of the litigation where Apple has sued smaller defendants under the DMCA. [38:08.370 --> 38:08.990] Okay. [38:09.210 --> 38:11.350] I can't refer to the latter question. [38:11.610 --> 38:13.550] But I'm just not knowledgeable really. [38:13.890 --> 38:15.510] I don't have a strong opinion. [38:16.410 --> 38:27.230] But, you know, Apple started out with this open computer where everything I had learned was really from openness of reading other computer manuals, reading other people's programs, being able to learn on my own. [38:27.610 --> 38:37.350] And our president, Mike Scott, and myself just tried to expound that and make everything possible for other people to attach in and design their own great things for the Apple II. [38:37.590 --> 38:42.970] And every year, it just blew me away what kind of hardware boards they'd come up with and what kind of programs. [38:43.470 --> 38:46.030] And it was really a sphere of openness. [38:46.390 --> 38:50.130] And Steve Jobs, right from the start, kind of wanted a closed system. [38:50.270 --> 38:51.790] And it might go back to little personal things. [38:51.910 --> 38:55.210] Like, we had an argument over how many boards should be in the Apple II. [38:55.490 --> 38:56.670] He wanted two boards. [38:56.730 --> 38:58.030] All you need is a printer and a modem. [38:58.230 --> 39:00.150] Like, you define your product and that's it. [39:00.230 --> 39:01.190] And it stays that way forever. [39:01.430 --> 39:02.870] I've been around computers my whole life. [39:02.930 --> 39:05.190] People plug all sorts of things in you'd never think of. [39:05.230 --> 39:06.270] And they want lots of boards. [39:06.690 --> 39:07.850] And I fought him on that. [39:07.930 --> 39:10.770] But I didn't really fight him for the right reason. [39:10.770 --> 39:14.570] Which is, you want to leave a lot of openness and space for people to expand. [39:14.930 --> 39:20.410] I really, personally, I had designed this clever circuit that decoded all eight boards with one chip. [39:20.530 --> 39:22.630] And all boards with a second set of addresses with another chip. [39:22.890 --> 39:28.810] And I'd saved about 40 chips you'd have to put in doing it the IMSAI way with toggle switches for addresses and all that. [39:29.050 --> 39:31.630] And I was so proud of my little design that saved so many chips. [39:31.730 --> 39:32.390] I wouldn't give it up. [39:32.650 --> 39:35.870] If we go down to two slots, I don't get as much credit as if we have eight. [39:36.550 --> 39:37.990] For that internally. [39:38.370 --> 39:39.690] So it was kind of funny. [39:39.850 --> 39:44.990] But I was always into all this openness because I saw all these companies that were like a family and a community. [39:45.190 --> 39:49.090] All these people that were doing ads for the Apple II and they were part of us. [39:49.170 --> 39:50.130] And they were with us. [39:50.330 --> 39:59.050] But there was a lot of influence in the company to know, kind of always control everything and get as much of the software and whatever locked up to where we got the profits from it. [39:59.050 --> 40:10.510] And by about the 80s, around the time John Scully came in, boy, all the Apple executive team was pretty solidly against clones, against having hardware. [40:10.710 --> 40:15.150] You know, I felt that our biggest assets were our software and let the hardware be anywhere. [40:15.410 --> 40:17.730] Because Microsoft model was starting to work so well. [40:19.330 --> 40:26.530] But yeah, they were pretty much for keeping things as closed as possible and proprietary and that was the success, the road to the greatest profits. [40:26.530 --> 40:27.430] Now, it may be. [40:27.610 --> 40:30.710] Apple is such an incredibly successful company, you can't put that down. [40:31.130 --> 40:34.190] Apple has the most incredible leadership products. [40:34.330 --> 40:39.710] And really taking the masses into the newer technologies, they're doing a better job than anyone else. [40:39.810 --> 40:40.650] A little more expensive. [40:42.390 --> 40:44.270] So I can't come up with an answer. [40:44.370 --> 40:45.650] Is there a right or a wrong? [40:46.090 --> 40:49.750] I was just sort of the, kind of a lone person for the openness. [40:50.130 --> 40:52.450] I guess I was kind of wondering what your perspective was through that experience. [40:52.690 --> 40:55.110] And maybe, do you have any comments regarding the recent? [40:55.270 --> 40:56.110] Are you aware of any? [40:56.110 --> 41:06.210] Was there a political switch within the structure of the corporation recently that led to the adoption of the Darwin and the BSD-derived kernel and the porting of X to the Apple desktop? [41:07.350 --> 41:13.630] There's, there's, it's too complicated a situation as to Apple buying next from Steve Jobs and all that. [41:14.390 --> 41:18.390] I don't think, I think it was kind of a waste of money, but it wasn't enough money to really matter. [41:18.390 --> 41:22.490] And now, now looking back, it's, we've got a, such a great operating system. [41:22.630 --> 41:26.050] I'm glad that that purchase happened, even at whatever high price. [41:26.590 --> 41:33.830] Um, you know, I just, I think that, uh, there was a lawsuit against Microsoft. [41:34.950 --> 41:35.930] Antitrust, it was called. [41:36.390 --> 41:37.390] What is antitrust? [41:38.390 --> 41:44.250] Well, it's, you know, you've got a monopoly position and you decide to use your monopoly to gather other markets. [41:44.250 --> 41:46.770] Let's say you had all the gas stations in the United States. [41:46.930 --> 41:51.730] You said, I'm gonna start building a car company and change the gas stations to only work with my cars. [41:51.990 --> 41:53.330] General Motors, you're out of business. [41:53.470 --> 41:54.150] Ford, you're out of business. [41:54.690 --> 41:56.170] That's, that's what antitrust is. [41:56.410 --> 41:57.810] Is it right or is it wrong? [41:58.110 --> 42:01.790] Is there a fence that you cross over and you're the bad guy or are you the good innovator? [42:02.390 --> 42:05.570] Microsoft did every single thing in the world to cross that fence. [42:05.670 --> 42:10.370] There wasn't one thing a company could have done more than they did in the case of, like, browser, um, Internet Explorer. [42:11.350 --> 42:12.390] So, they're pretty guilty. [42:12.550 --> 42:17.470] But if you read the finding of facts, it defines why they are a monopoly even though there are companies like Apple. [42:17.910 --> 42:20.730] Well, actually, if you really look at it closely, Apple's a monopoly. [42:21.050 --> 42:23.110] People know what kind of computer they're gonna buy now. [42:23.250 --> 42:23.930] It's the one you're using. [42:24.130 --> 42:27.170] You're gonna go back and buy a Mac and you know if you're a Mac person or a PC person. [42:27.350 --> 42:28.710] And really, it's not a competition. [42:28.870 --> 42:31.690] You go to the same store and, hmm, compare them side by side. [42:31.850 --> 42:32.630] It's not that way. [42:32.810 --> 42:38.250] So really, Apple's a monopoly, but because they have a low market share, they get away with not being accused of antitrust. [42:38.250 --> 42:40.570] Apple is just music program, it's Apple's. [42:40.770 --> 42:41.510] You know, they're all great. [42:41.690 --> 42:42.450] They happen to be all... [42:42.450 --> 42:47.610] It's a great world when you have a kind of like a real good dictator, you know, that does good things for you. [42:47.830 --> 42:48.890] It's a great music program. [42:49.010 --> 42:49.190] It's ours. [42:49.310 --> 42:50.230] The video program's ours. [42:50.370 --> 42:58.410] You know, all the software that you really need, you kind of get from Apple and other little third parties lost a lot of ability to succeed there. [42:58.570 --> 43:14.490] Well, I think that we're lucky to have you as a very high profile and as a wealthy and successful high-tech businessman to represent the position of openness among your peers as CTOs and CEOs of expensive corporations. [43:15.490 --> 43:15.770] Because there aren't... [43:15.770 --> 43:16.830] I don't like being called wealthy. [43:17.030 --> 43:18.110] There aren't many... [43:18.110 --> 43:20.130] Well, I think compared to most of the people here, you are. [43:21.110 --> 43:21.130] Yeah. [43:22.570 --> 43:23.750] We need to find more questions. [43:23.750 --> 43:24.290] Yes, but I... [43:24.290 --> 43:27.910] Thank you for your time and thank you for your representation for open source. [43:28.550 --> 43:28.670] Okay. [43:28.830 --> 43:34.410] And while the next question's being asked, what I'll do is I'll take the liberty of booting up Apple Adventure as well. [43:34.410 --> 43:35.830] So we won't mind that background. [43:36.150 --> 43:37.670] Please, what's your question, please? [43:37.890 --> 43:39.590] Steve, I have a real quick question for you. [43:39.810 --> 43:41.410] What have you learned from the kids? [43:44.610 --> 43:45.490] I don't think... [43:45.490 --> 43:46.910] I don't know how many times... [43:47.490 --> 43:48.010] It's funny. [43:48.070 --> 43:51.710] If I take a fourth grader and start teaching computers to them, well, back when I was good. [43:51.910 --> 43:54.590] I mean, nowadays, kids are always so far ahead of me, it's not even funny. [43:55.310 --> 43:57.290] Also, the operator says, I understood everything. [43:57.410 --> 43:58.630] Could tell you how to fix this and that. [43:58.810 --> 44:01.710] And I would teach the kids and answer their questions when they're fourth graders. [44:01.710 --> 44:08.210] By the time they're fifth graders, half the time I'll be scratching my head about something in front of a kid and they'll say, oh, here's how you do it. [44:09.070 --> 44:11.630] So I learned a lot of, you know, a lot of the little... [44:11.630 --> 44:15.410] all the little small things that are in any computer. [44:16.070 --> 44:18.570] Shortcuts, the ways to do things that you can't know them all. [44:18.650 --> 44:19.790] There's 10,000 of them. [44:19.850 --> 44:20.670] How can one might know them all? [44:20.790 --> 44:23.070] So they were sharper than me in a lot of those areas. [44:23.270 --> 44:24.890] But I don't really call that the learning. [44:24.890 --> 44:28.350] It was really more of just a feeling and a feeling of wonderment. [44:28.430 --> 44:30.510] Whenever they learned something and got excited... [44:30.510 --> 44:32.950] Oh, my God, that's incredible you can do that. [44:33.170 --> 44:35.250] That's the best thing a teacher could ever have. [44:35.650 --> 44:41.150] A teacher is really rewarded when the kids learn and when you have a day in class and they didn't seem to get it. [44:41.290 --> 44:42.150] Those were my worst days. [44:42.310 --> 44:45.710] I'd go home and I'd be in a frowning mood and I'd think about it. [44:45.790 --> 44:51.130] But I was so lucky I wasn't part of a school district that had a schedule and you had to teach on certain days and go on to the next subject. [44:51.330 --> 44:53.970] I could go back and tackle the same subject if I failed. [44:54.250 --> 44:58.510] Because as a teacher, you don't want to fail with a child. [44:58.630 --> 45:00.070] You want to get every single one. [45:00.150 --> 45:00.750] That's the right way. [45:01.570 --> 45:02.190] Thank you. [45:04.250 --> 45:08.210] Thanks for choosing the 6502 and later the 68,000 Motorola series. [45:08.350 --> 45:11.210] Why did you choose those over the Intel series of chips? [45:11.390 --> 45:16.150] The Intel had no way to buy it as a normal person and it was a $400 chip. [45:16.150 --> 45:17.270] I didn't have the money. [45:17.270 --> 45:34.930] I found out as a Hewlett Packard employee I could buy a Motorola chip for the 6800 for $40 and then MOS Technology introduced this microprocessor, the 6502, with a lot of addressing additions and fewer instructions. [45:35.310 --> 45:39.930] Well, I had come from a background of really appreciating addressing modes to the max. [45:40.070 --> 45:47.990] The IBM 360 was like the dream machine of my life because of the way that every instruction used a reference address plus an offset and I love that kind of thing. [45:48.150 --> 45:51.190] So I really thought this was the best processor going and it was. [45:51.270 --> 45:52.970] The 6502 and they were selling it for $20. [45:53.350 --> 45:55.890] But you could actually bring a $20 bill and buy one. [45:56.090 --> 45:59.070] You didn't have to have all these credit forms from a company and all this stuff. [45:59.270 --> 46:03.150] There was no way to buy microprocessors back then or any real, any chips really. [46:03.510 --> 46:05.370] Electronic stores just had transistors. [46:05.970 --> 46:07.570] So it was sold in a good way. [46:07.710 --> 46:13.250] A bunch of us from the Homebrew Computer Club went to an event in San Francisco, bought our own microprocessor chips. [46:14.470 --> 46:19.830] And boy, that was a big marketing, incredible success really. [46:20.050 --> 46:24.710] If you look at how many embedded processors around the world now are 6502 based. [46:25.050 --> 46:26.850] Ones that grew up with tons of other companies. [46:27.590 --> 46:29.910] Just unbelievable quantity of them and they're all good. [46:32.350 --> 46:35.430] Speaking of cheap and easy hardware, I was curious, just a quick opinion poll. [46:36.570 --> 46:38.590] TRS-80, Trash 80 versus Commodore 64. [46:38.870 --> 46:40.570] Which one do you like, up or down, across the board? [46:41.410 --> 46:42.450] I never had one. [46:44.250 --> 46:48.550] Well, I came from the Intel environment so I played with the Trash 80. [46:48.690 --> 46:53.290] In fact, I still to this day carry my Trash 80 Model 100. [46:56.050 --> 47:00.310] When everything else in my life breaks down, I throw in four double A's and I keep on going. [47:01.110 --> 47:10.470] However, a good example of a closed system like the Commodore PET versus Apple's open system that could actually expand to enough memory for a floppy disk or enough memory for VisiCalc. [47:11.410 --> 47:15.390] I personally like the TRS-80 Model 1, which was a nice early one. [47:15.550 --> 47:18.310] I liked it was a very basic machine, no pun intended. [47:19.090 --> 47:21.030] I like the COCO, the color computer. [47:21.270 --> 47:27.190] But after that, I pretty much go Apple II and actually for the big iron family, System 370. [47:28.130 --> 47:30.070] And it's always fun to drop someone else's deck of cards. [47:30.250 --> 47:31.790] But that's another talk. [47:32.690 --> 47:34.470] Actually, we only have about four minutes left. [47:34.510 --> 47:38.990] So I'll ask each one of us up here to maybe comment for one to two minutes on something of interest. [47:39.330 --> 47:40.930] And I'll start with Cheshire, please. [47:42.970 --> 47:45.830] Well, I need to plug my little hyper book. [47:46.310 --> 47:47.470] Of course, there are secrets. [47:47.630 --> 48:05.270] They're in the manual, which are my various exploits over the years, including my week in Homestead, Florida after Hurricane Andrew as a ham operator, some other interesting side lights, a couple stories about Cap'n Crunch, and phone-freaking, my Telex exploits. [48:05.270 --> 48:09.690] This is available for $15, and I'll be downstairs in the registration area later in the afternoon. [48:11.610 --> 48:18.730] All I can say is what I've learned over the years is stuff I've picked up from reading manuals, from talking with people, from exploring. [48:19.570 --> 48:21.650] And keep your minds open for exploring. [48:22.230 --> 48:22.810] Thank you. [48:23.170 --> 48:23.750] Thank you. [48:25.870 --> 48:26.230] Yeah. [48:27.250 --> 48:27.610] Well... [48:27.610 --> 48:28.870] For me... [48:28.870 --> 48:30.330] You can go back, I'll close it. [48:30.690 --> 48:32.250] Yeah, for me, I got... [48:32.950 --> 48:44.250] I'd love to go back and get back into my Apple IIs if I had time for one more thing to add in my life, because I read emails from friends that do that, and they have the greatest time in their life going back and discovering what that world was. [48:44.650 --> 48:45.730] How do you recreate it? [48:45.770 --> 48:47.230] What do people do for electronics today? [48:47.310 --> 48:50.570] How do they hook their own chips together in their garage and write their own little programs? [48:50.570 --> 48:53.190] And it's so hard to come up with the answers that work. [48:53.430 --> 48:56.570] But I think it might happen in the near future with robotics. [48:56.850 --> 49:05.230] The motors, the parts, the technology, the understanding, the number of people that are interested in them, the quality of the advanced robots with artificial intelligence is so great. [49:05.370 --> 49:11.190] I think that even from schools on up, that's got a potential to be the next home erector set, where you build your own things. [49:11.290 --> 49:12.210] You get to really work on them. [49:12.390 --> 49:16.670] So the robots are coming, and my only other advice would be back up your hard disk. [49:17.490 --> 49:18.690] And I think... [49:21.830 --> 49:33.190] What I think I'd like to comment on is, for me, one thing that really drove me into security long term was when I was working in Apple IIs, it wasn't just the flexibility in the machine language. [49:33.190 --> 49:39.770] It's that you were capable, sophisticated enough and rich enough that you could have disk protection systems, and you could analyze them and break them. [49:39.850 --> 49:47.490] My favorite single disk problem was the Captain Copies Copy Program's disk with a series of track editors, and this is before you typed in the name of the system. [49:47.490 --> 49:55.530] And you could put in parameters, you could figure out where people put data in on the half track, where they modify the D5A96 headers, D5ADB. [49:55.770 --> 49:57.230] I hope I'm bringing back some memories. [49:57.410 --> 50:02.390] But that was, for me, the earliest real hacking that I could remember and work with. [50:02.490 --> 50:03.410] And anyone could do it. [50:03.430 --> 50:08.370] You could be 12 years old and do an intellectually rewarding hack, and at the end have a software system. [50:08.370 --> 50:12.690] At the computer clubs, oh, everybody showed up with boxes full of floppy disks. [50:12.870 --> 50:18.550] Every game in the world and every useful program, they wanted their copy of it, and they had to copy others and figure out how to do it. [50:18.710 --> 50:22.570] I think we increased the intelligence of the world so greatly that it repaid them. [50:23.350 --> 50:25.750] The concept is, share the knowledge. [50:26.170 --> 50:27.090] Thank you very much. [50:27.170 --> 50:30.010] I think that's a wonderful closing note, and thank you very much. [50:30.010 --> 50:32.050] We appreciate the opportunity. [50:41.460 --> 50:46.960] Coming up in just a few minutes is Urban Exploring, Hacking the Physical World, and then after that will be Jello Biafra. [50:47.560 --> 50:49.520] I just got word that they found Jello. [50:51.060 --> 50:53.700] He was evidently MIA somewhere. [50:55.660 --> 51:00.080] And also, they're going to be simulcasting Jello downstairs. [51:01.400 --> 51:04.380] So if this gets too crowded, you can head downstairs. [51:06.160 --> 51:12.500] Also, for those of you on this front row right here, for Jello speech is going to be press. [51:13.880 --> 51:15.120] Just the first row. [51:16.200 --> 51:23.900] So anybody that's sitting in this first row for the next panel, you'll have to vacate your seat after that. [51:24.820 --> 51:27.420] This came from the Pentagon or somewhere. [51:27.620 --> 51:29.720] I'm just giving you the information. [51:29.720 --> 51:30.180] Sorry.