Chuck Moore's Fireside Chat to SVFIG November 2004

I have a bran new laptop. It actually has a floppy disk, but it is a USB floppy and it won't boot colorforth. I tried to figure out why. It also has a USB Flash drive capability which it won't boot from either. I'd rather get the USB Flash working than the floppy, as long as I have one I can cope. But it wasn't worth bringing so I didn't bring it. Also I thought I would print out some foils so that at least I could show you some colorforth code. But for some reason I couldn't print out the foils last night at ten o'clock so I don't have foils either. So I will just talk, as long as my voice holds out.

I wasn't here last year. I think I was the year before. I probably mentioned that we were moving to Sierra City and we are indeed in Sierra City. And a little bit of promo, it is the nicest city in California, maybe in the country. That's not me saying it, this was an unsolicited accolade from a delivery man. It's a really nice place and if you have not been there you should at least drive though. It's on 49, the other side of Nevada City. It's most of the way to Truckee.

And Sierra Buttes, which is an 8600 foot rock climbing out from the bank of the North Yuba river. There's fishing and there's hiking and there's golf. It turns out just the other side of the mountain at Grey Eagle is a golf Mecca with, I think, five or six golf courses. And Frank Lloyd Wright architecture and million dollar homes and all kinds of nice stuff.

Sierra County is one of the rural counties in California with population of about 5000. No traffic problems, one county with no traffic. 49 is an amazing highway when you get this far up into the country. You can walk along the highway in the driving lane. Very little traffic. And one of things we like to do on a winter evening is come out from our home and walk downtown in the middle of the road and have dinner and walk back watching the stars. Very very nice dark skies.

It's a lovely place to live. I am actually not sorry that we moved from the bay area. I'm on the fire commission. Min belongs to the Lion's Club and she just joined the Chamber of Commerce with her weaving company. We belong to a hiking group called the Shoes.

It turns out that all these groups have the same people belonging to them. So it's different venues with the same conversation. One of our concerns is fire. It's a very nice place.

OK. There are three things I want to talk about. The first is a chip we got back, about two weeks ago. Jeff has been working with it. Did you say anything earlier? I don't want to be too repetitious. (No.) Well, there's not a whole lot I can say because this is all NDA material. I can tell you that we have a company, busy designing, marketing a new Forth chip. It's really a nice chip. I am sure that when you hear about it you will be impressed. But we did get the first chip back just a little while ago.

This is based upon design with OKAD 2. I have said a little bit about and I can say a little bit more. Basically OKAD 2 has the best simulator that I have ever encountered. This is a point one eight micrometer chip. ( 0.18u) It's rumored to be a difficult technology to cope with compared to say point eight micron. (0.8u) And it worked beautifully. The chip is working exactly as we expected it to. It has a number of problems that have to be worked out.

A whole bunch of people breathed a big sigh of relief when we powered up the first chip and saw signals. The company is called Async Array Devices. It is one of cluster of companies involved in all manner of stuff. Among that stuff is a patent lawsuit that you may have heard about. There are three lawsuits in which one is immanent and must precede all the others for all kinds of complicated reasons.

Lawsuits would not exist if somebody didn't think that there was money. So there is potential for money coming out of these lawsuits in a few years down the road. It is my first close encounter with this sort of litigation, civil litigation. You put your Annie in the pot and you get to take your chances on the draw. People are requesting jury trial. Juries are unpredictable. That's why there requesting them, because perhaps their case isn't as good as they wish it were. It is expensive. It is tedious. It is long drawn out process.

One interesting aspect of our judicial system which I didn't appreciate is the pressure to settle rather than actually going to trial. And that pressure comes mostly comes from the judge who doesn't want to have to hold the trial. It's far too expensive and all the judges sort of get together on this and agree.

You go to settlement conferences. You go to mediation, all kinds of arrangements to try to avoid the cost of the trial, which is born by society in general not the litigants. And that all takes months and years to work out.

I know there has been some publicity on this. When people mention the court case it's Patriot Scientific Vs. Charles H. Moore. So I am majorly involved in this. If you don't remember, Patriot Scientific produced the ShBoom Microprocessor ten years ago.

I am giving a deposition on Monday which is why I'm here. Of course I would be here anyway because it is only five hours from Sierra City. But this all makes it convenient.

Some of the other lawsuits involve computer manufacturers. Patriot sued the Japanese laptop manufacturers for patent infringement. Intel sued Patriot in defense of their customers Patriot then sued me, and Dan Lecrone and TPL. I have half interest in the patent that Patriot is prosecuting.

Baroque, complex, obscure, it is the sort of thing that you wished hadn't happened. And it wouldn't have happened if these patents had been allowed to sit on the shelf. We will see what happens. It would be nice if some money were to fall from heaven and maybe get spread around a little bit.

In any kind of lawsuit lawyers fees are preposterous. It's a nice gamble whether you will come out ahead. Somebody maybe will, but everybody?

OK. What I have been doing apart from designing chips and worrying about patents, I've working on colorforth.

Colorforth is the basis of OKAD 2. Colorforth is a very very nice version of Forth. Not to everyone's taste, some people don't like color. But the features and capabilities that it has just please me immensely.

(Yes, but you're biased!)

Everyone recognizes that any testimony is going to be biased and you just have to filter out the bias.

I am working on a new version of colorforth. It was due out six months ago, maybe it will be out six months from now, which is going to be smaller, simpler, cleaner, faster. What happens is I oscillate between depression and elation as to what colorforth can do on a PC. The PC is an absolutely insane environment. The more you know about it the more you realize that it, it, it's incredible.

I have been working mostly with USB. I really am not fond of USB, but USB is where it's at. I have at least accomplished something. I can read and write files on a USB Flash card. Or I thought I could until last night when one of the files was not communicating with the PC properly. And I think I have done some fairly reasonable things in order to make that happen. I might as well share some of them with you.

Also I discovered that my new digital camera has exactly the same USB interface as the Flash drive does because basically it has a Flash card inside of it and it is all formatted the same. So I can communicate with my camera now at no extra cost.

I would like to communicate with a USB keyboard and with some of the other USB devices. And I haven't figured out how to do that yet. If anyone knows, for instance, what the communication protocol is between the PC and the keyboard, that would be very nice to know. I have seen the generics of that, but I have never seen the details like the first thing you send is this character string and the first thing you get back is this character string.

I can boot from a USB device on one of my three computers. But I can't on the other two and I have to figure out why, what the difference is. Does anybody know about when booting from a USB Flash drive how many sectors are read? Classically boot code booted one sector, 512 bytes, and then you carried on from there. All of the drive formats have three sectors, zero one and two, reserved for booting purposes. My suspicion is that maybe more than one is used because it is very hard to fit a boot into one sector, USB is that complicated.

So I've got a Flash drive and I would like to access it in colorforth and I don't want to mess around too much with files and things. I just want to read continuous blocks. A block is a thousand bytes, a block is two sectors. So what I did, I wrote something that writes the FAT table, the File Allocation Table, just allocates the entire flash drive. And it does it twice for the second FAT table. And altogether on my 64meg flash that uses one meg. It's compatible. Windows doesn't mind that everything has been allocated. You can't add anything to it because it will say DISK FULL but that's as far as it cares. So having allocated everything, I make some entries into the directory that point to various entry points in this sixty-four megabyte string. And I put a size on it. The size doesn't really matter except that Windows likes it. Because the size of a file the difference between one entry point and the next entry point basically.

I've got three files. I've got colorforth, a GDS file for design of a chip, and I have got an image file. I can have more. I can't have a whole lot more because really I've only got one sector for directory. I think I have more at zero cost just by stringing out another particular sector behind this one. But I will have to try that sometime.

Filenames must be caps, and cannot be longer than six characters, the old original DOS naming conventions because anything else is horrendously complicated. This is FAT 32. The cluster are 1 sector, it is possible to have larger clusters and reduce the size of the FAT table. It is possible to have only one FAT table instead of two FAT tables. All of this can be played with and I just haven't bothered yet. I've got something that works and it costs me a megabyte and that's relatively cheap.

So with this format I am completely compatible with Windows. I can plug in my little Flash drive, I can write to it, I can startup Windows, it can read from it, it can write to it, I can read it back. I've got an interface to Windows through these Flash drives.

Some of the people in our company, how do phrase this most accurately, would prefer that colorforth ran under Windows. So they have made this happen. And they can run colorforth and OKAD quite happily in a Window of Windows. It took a little work because things kept going wrong with absolute addressing. But it seems to be working now and indeed you get the same results in Windows as you can running native colorforth. It is even faster in Windows because drawing the pictures using the AGP 8 is faster. (It also runs faster if you reduce the size of the graphics output window.) I can't use the AGP 8 interface because no one will tell me how it works. It must be initiated by the video card not by the CPU. SO unless I know how to tell the video card to start AGP 8 I can't use it. I lack that information.

But one of my new computers has got the PCI Express version of the PCI bus. And that will not require AGP 8, it is just blazingly fast all on its own so I will be using that.

Unfortunately it isn't quite that simple. There's something on the Pentium called MTRR and the way BIOS sets up this array of values is non-optimal for my purposes. Now this array of about 64 or so registers is involved in memory caching. It describes six different ways for caching different regions of memory and the default is no caching. And that option is what is relavant for video memory mapped way up in non existent memory.

I need to change it to write combining or some other option but I haven't got around to doing that. There are a things I haven't got around to doing for a bunch of reasons some of which are interesting. I get up in the morning and I turn on my computer and I look at my email. This is the responsible thing to do, right, because I am communicating with other people.

I had a bad spot about two weeks ago. Sierra City has telephones, and as far as I can find out that is all that it will every have. So I have a satellite dish, I have a satellite disk for television and a Direct Way for communicating with the Internet as of three or four months ago. I recently got it upgraded to the gateway. The upgrade is beautiful, it's much simpler, faster, easier to use. I can interface to the Internet in colorforth because it is an Ethernet link and I know how to do Ethernet. I just have to do it. But, there are few little problems, a little fine tuning.

I can't send large files, I can't upload large files. This computer was configured for me by one of the smart guys in the company who knows everything about networking. I have three PCs, and their networked, they're wirelessly networked, but they can't talk to each other. I had trouble uploading large files and it isn't clear why. I've got Norton Anti-virus going so when a file gets uploaded Norton gets in there and starts scanning to see if there is anything bad happening. And somewhere along the process a timeout and whether it is Norton or whether it is my gateway or whether it is my ISP at the other end of the satellite link it isn't clear yet. And again, I don't have time to sort all these things out. I don't even have time to invite someone else to come up to my home and sort them all out for me because that is certainly not distraction free. But in the long run it will get sorted out. I will have a nice, I think it was 384 kilobits per second download.

(question about other services)

The problem is that there are two of us in Sierra City who have Direct Way. Many more have dialup access. I would have to say most people don't have a computer. Most have a cell phone. There will never be DSL. Some of the outer parts of the county have got something called high speed wireless, it isn't clear what it is, but it will never get to us. There is no customer base. There is no motivation to string fiber optic or anything in a community of, a nice community of retired gold miners and fishermen. It's not the thing that's going to happen.

The beautiful thing is that you can have a satellite dish and you can be independent of the infrastructure. It's fairly expensive but it works. (question about fire station.) We have repeater on the other side of the river, unfortunately the repeater blew its fuse about the time of the first snowstorm. The only way to get to it now is snowmobile and if too much time passes you are going to have to dig down through the snow to the repeater to get at it. We have a siren. We are hoping to get new radios. New radios are available because of TSA? And they will provide grants to communities to upgrade their radio communications. We've got a problem, the fire department needs to communicate with the forest service and with the state police and with the county sheriffs. And I think that there are two forest services involved and all of them are different. One of the reasons I am on the fire commission, we'll move into the twenty-first century.

(comment about emergency radios.)

We have a very dedicated fire chief who is on top of all these things. I think in time I can learn more about the tradeoffs. I have a four year term. It is an elected office. Nobody wanted to run, so I was elected by default. But still. I'm computer literate you see, and actually I am the treasurer. Which means that I can fill out all the forms.

(Your CAD system really turns out chips that have a potential to work? Right?)

It does indeed. And it isn't even finished yet.

(Are they still telling you that it can't be real and we don't believe in it and we've got run it through these other things that will double check everything.) (Chuck chuckles.)

Well yes, to a certain extent yes, but, in the position I'm in there is no person with enough authority to say it, so I get to do it my way. But if my way doesn't work I'm dead, and I'm very pleased that it does.

It is running, maybe not faster then I expected but we are using it in a way I had not expected, running longer simulations. I was thinking we would run half a dozen instructions but we are running hundreds of instructions and seeing things happen in great detail that is very reassuring. And the simulator says it works. The problem is there are many, many things to simulate, many threads through the hardware and we haven't simulated them all yet. Much better when we can get a chip and run them all full speed instead of simulating them at one millionth the speed? A billionth?

(What do you have to watch out for mostly, is it timing or propagation or leakage across wires or?)

Coupling capacitance is probably a priority which I have not addressed. It's something I should worry about but there's nothing I can do about it, and so, its just something to worry about. Mostly it's timing. Mostly it's assuring that memory timing is correct and generous enough that you get memory read and written correctly. And as we discovered at iTV, it is not just that every instruction executes correctly, but that all pairs of instructions execute correctly. We have found a number of interactions between this instruction and that and I just sit back and say what! How can that possibly be, and you chase it down, and yeah, this left a little ghost trail behind it and it became a problem.

(Do you use the simulator to find these things after you've attributed them?)

The simulator shows all of these, yes. Yes exactly, and you need some hints as to where to look. There are two simulators, one I call hardsim which is doing transistor level simulation of the chip and the other is softsim which does an instruction level simulation of your software. So one checks out the software and you can run it for millions of instructions and the other checks out the hardware and as long as this softsim is accurate in predicting how the instructions will work it's a good tool. I have designed a little design rule checking capabilities.

Just in case everybody doesn't know, OKAD II builds a chip by describing it. OKAD I built a chip by putting gates on an array of gates. It was very much a hand designed effort. Now I have a description of the chip, the description is in Forth, and its hierarchical and you can describe it pretty compactly. It turn out that I had a surprise six months ago when we reached the point where we were to program on chip rom. The on chip rom doubled the size of the description because it was absolutely unstructured. All you could do was describe a flattened version of every interconnect involved in the programming. So hierarchical descriptions are effective. It has also evolved over the last three years and has gotten probably unGodly complex because, rather then go back and reorganize things from the ground up, I keep adding another layer. At some time I'm going to have to go back and say this isn't the way to do it. So it's a factoring problem. I think I have a very good factoring but its not the best possible factoring. I'm curious to know what the best would be.

(Dr. Ting: Do you have the basic specification of the chip and OKAD II would take that description of the specification and generate the GDS file?)

No, I don't have a logic description, I have a physical description. this is an AND gate and I want to put it there and I want to repeat that process a thousand times. So I'm describing the geometry, from the geometry I extract the schematic and logical device.

(Its kind of like the way you did it before?)

It's just one step removed in abstraction. Actually, I still take the description and construct a tiled layout of the chip. Now the tiled layout is an abstraction. It has one 32-bit word for every one of 16 million tile positions. And that contains the information necessary to generate the GDS file. And that is the description. Now, my source code is a description of the description, and it's a second order abstraction and I don't like that level of complexity but it does seem to be an effective way of doing it. Actually, I'm thinking about a third level of description, a third order description, a description of the description of the description. It will be even more compact and more malleable. We will see how that works out, maybe in the next year. Certainly in the next year we will have chips that will be inexpensive chips so perhaps I'll bring them here and give each of you as many as you want, for whatever reason you may want.

(What if you want the second one?)

Then you will have to spend a buck or two.

(Are we going to have general purpose versions of the ones you develop or are these special purpose things?)

This is as general purpose version of a chip I can make. The company so far is not interested in selling chips, they are interested in selling applications. As well as Abe said earlier, the market for Forth chips is not there, the market for devices that do clever things certainly is.

(Chuck, can you tell us a little bit about how this description process works? I can't see how your Forth concept, your Forth philosophies, your Forth words, work? You have a series of things for a word to do, number crunch or whatever to do, now how do you get this idea of how a description of the layout from the Forth word? What are you doing?)

It would be best if I were to show you some code. Let me see if I can construct an inverter for you. An inverter is an N-transistor and a P-transistor. They're near one another with a gap in between. Now the transistor is constructed by putting up a diffusion region.

In this case it's going to be 3 tiles high and 1 tile wide of diffusion. And then on the other side a P-transistor with 2 tiles wide by 3 tiles wide and then you draw a poly gate across between them. I just say, draw this diffusion then draw this diffusion and draw a line between them. Draw a piece of metal between them. Hook the other ends to the power busses. Now you have an inverter. It takes a line of code.

You do the same for a NAND-gate, an OR-gate, and a PASS-gate, and a latch and all the other kind of gates you need. You have a basic kind of a library of things that you can position in this big array. And the first thing you do of course is you take the latches and you make a register out of it. And this chip has 18-bit data width so you string 18 latches across and now you have a register. You might want to replicate the register a bunch of times and then you want to interconnect things including drivers. So you just gradually build up all of this level.

(Do you put numbers with each description? How do you glue them together?)

The glue is a vector on the stack. The vector is a number, with the high order half word a Y coordinate and low order half of the word the X coordinate. So there's these numbers on the stack that I can say DUP and do something with it and DROP and then I get back to where I was. So these are kind of relative addresses, they are manipulative addresses.

I have words called X, Y, and V, that will modify that address. X will add something to the X coordinate, Y will add to the Y coordinate and V is a vector add of both X and Y together. So I can manipulate this position in the layout. Then the gate, when I reference a gate like an inverter, it expects its location to be on the stack and puts itself there. So it's very much stack oriented. It's very much many forth words. So far I've got about a thousand, twelve hundred words.

There's many different kinds of inverters. There's the inverter, which I described before. There's an inverter zero, which is the same except it does not have power connections. It's going to get its power connections in some kind of non-standard way. There's an inverter zero zero that doesn't have the substrate well contacts associated with it. There's a two inverter, which is twice as wide as the one inverter.

(That leads to another question. Whats the lowest level of this? This is like writing high level forth words in terms of primitives that you define for these transistors. Now what if you want to make some new twist on a device? Is there something that's equivalent to writing assembly code?)

There are, in the 32-bit token that represents a tile, some bit fields, typically 4-bits for each layer. If you wanted to actually put a star at a particular coordinate, instead of one of the other things I've constructed, you could just assign one of the 16 bit patterns to be a star and draw a star at that location. So yes, that will be the most primitive level and if you wanted to you could go down and fiddle things at that level but in fact you can't since all 16 values have been assigned. So without expanding to something larger, say 64 bit words from 32 bit words, there is no room for growth at the most primitive level. But there doesn't need to be because I can do anything you can do in silicon in these 4 bits. You perhaps have seen the OKAD I pictures. These look much the same.

Colorful layers superimposed on one another. I have a very great disagreement with the rest of the industry that uses say, Mentor Graphics. They can draw layouts. But they draw them with pattern areas and transparent colors so that you can see your red layer and your blue layer and in between it becomes yellow. I find that absolutely incomprehensible.

My layers overlay one another opaquely, and they are all brightly colored and they are all solid and this is not popular. This is not the way other people are used to looking at things but it's the way I like to look at them. I can peel off layers very easily whereas, it is much harder for them to peel off layers and look underneath. And there are tricks to avoid needing to look underneath layers. So I get these geometrical things I can work with.

Now, there is an analogy with DNA and proteins. DNA is the description of a protein, and our cell machinery does that translation. If you have a protein and now you would like to change it a little bit, you figure out the kind of protein change you want. Then you've got to go back to the DNA and figure out what kind of DNA change you can make to cause that protein change. And that is not trivial, to go backwards.

Likewise in this layout, I will find a problem. I say this trace is going there and it should go here. I've got to go back in the description of how traces are routed and change it. First I have to find the place where in this about 200 kilobytes of code that trace describes. Sometimes it's very difficult to find it, so I need a better tool, I need a tool which will let me point to the trace and will search the database and show me where that trace was created. (note* this was done in the time between this presentation and the transcription of it.) The one way conversion from DNA to protein is pretty transparent, but the back conversion is Lamarkian evolution and is impossible.

(Has much changed over the years in dealing with boundaries and things like that or is the same old thing?)

We are running our prototypes through MOSIS same as I did 10, 15 years ago? The interface to MOSIS has not changed at all. The price is 5 times what it was. The turnaround is just as uncertain and unpredictable as it was. So no, that process has not changed much. The next step has. Once we get prototypes that we like through MOSIS, we have to have them make wafer runs. At .18 microns your NRE starts at half a million dollars. So you have to have half a million dollars to put on the table before you can get more than a hundred parts.

(What do you give them?)

A GDS file. Same as I used to. My old designs had GDS files about 3 megabytes. My current designs are about 3 megabytes. It's a lot easier now because you can just high-speed them to Los Angeles. It is completely feasible for me, with my satellite dish, to sit in the Sierra and watch the sunset and communicate with the world. Let's see, is that all I had intended to say? If any of you have a great idea you want to implement by all means get in touch with Async Array Devices, sign an NDA and talk to them about it.

I mean nothing is secret, it's just not for public disclosure. It will be publically release I imagine, in some fashion, some day. I may be involved with it on the podium. I'm not in charge of that aspect of things. I am the CTO. I imagine that means the Chief Technology Officer.

(Jeff Fox: I think it's planned for April of next year at some microprocessor conference.)

Oh, OK. The sooner out the better as far as I'm concerned. It's very interesting.

(How big is the company?)

A dozen?

(A little more.)

More than a dozen.

(Can you say anything about what the application might be?)

I keep asking the marketing people that same question and they keep saying it's the same as it was last year. This and this and this, but no we don't have a customer exactly. But we are doing this on kind of spec, and saying one of these guys, we are talking with a dozen guys, one of these guys will come in and give us the most favorable deal. And that probably won't happen till they see a prototype. Nobody is willing to invest in technology. I mean no application oriented company can afford to develop technology. And technology has got to be developed by investors in advance of applications. We've tried it both ways, none of them work very well but anything else doesn't work at all.

(I remember a year or two a go you were doing everything on the chip including driving the video. Is this thing just going to be so powerful that it can do multiple things? Is this thing going to be inside of a washing machine, or a car, or in a computer, or airplane?)

Yep, yep. It is high speed, it is low power. I personally think it will be wearable. Computer applications will be very exciting.

(George Perry: We have a little more time, carry on.)

I've said everything I'm inclined to say but I'll answer questions.

(Two questions about the use of the chips. One of them is the applications are under NDA now, but once those products come out will you be able to identify your company as the source or the part?)

I should thing so.

(OK, the second question is when you get to the point of production quantities of chips for someone, and one of the other prospects decides they want to design a new chip, do you go back to a new layout of that chip, customer specific, half a million bucks on the table? Or can you just take some of the same chips and use them? Is it one customer or one mask or what?)

I don't think so. Certainly a willingness of the special requirements but hopefully we have a general purpose processor that we can use in a variety of applications.

(You talked about on chip ROM. Is it old fashion mask ROM, what you see is what you get, and if they don't like it, tough?)

Our rule is to put in ROM things which are of general value to all users, but mostly you program the RAM.

(Ok so there will be a variety of customers and maybe we can follow them around. So we might be able to use them if we found some)

The unwillingness to sell chips is mostly a nuisance factor. You people would all like maybe one or two chips but you are not going to buy a million, so why bother. If you really want chips I could probably give you chips.

(OK, well, I now know how to get one of them, and I now know how to get a million of them, but how can I get 200 of them?)

That's a problem. The other thing is, from talking to my son the other day, about a reference to a company who wanted to get into the microcomputer business but didn't really know what they were getting into. And that reminded me of Harris who got into the microcomputer business, and got out of the microcomputer business, even though they had a world class product. Just because the support costs, the level of effort required to support a microprocessor is huge.

That's a problem we need to address. How many guys are we going to have on a hot line in India to answer your questions from programmers. We really don't want to do that either so we will have to see how it plays out.

(Suggest that it is a black box and here's how you learn about it?)

OK, this is a Forth processor. It only has 28 instructions, something like that. How long does it take to learn 28 instructions? We had a couple of our people attend a forth class taught by Elizabeth Rather. It was a one week course. In the end they were exhausted. These were some people with some familiarity with programming.

(Thats the problem right there! [laughter])

One, they didn't learn colorforth. Two, they didn't learn machineforth. They learned ansi forth, so theres still a learning curve beyond that.

(John Rible: Equivalent to that, how long does it take humans or people to learn the 26 letters of the alphabet and combine them in useful combinations, meaningful combinations? If you add space and period. It is a pretty interesting process. I'm talking kindergarten right, so it's the same sort of thing)

Thats a very interesting comparison. I hadn't appreciated that.

(John Rible: It is a different form of literacy.)

(question)

(John Rible: One of the problems with Harris is they did not know how to support it. The people there were of such a mindset they could not wrap their minds around it. I was responsible for the technology transfer from Novix to Harris. A week after we sent them the first things, we found out there was a bug in the multiply and divide stack and a week that we sent a change. Their people did not listen to us, because they already had the technology transferred. Six months or more later, they found out there was a problem. Well their hardware person designed a way to fix that problem that involved having some hidden latches that there was no way to program. What it meant was, you could repeat instructions, but you could not stop in between those repeated instructions because there was internal state that you could not get restored. It took one of their people six months to characterize what that problem was.)

(John Rible: Now things like that add to your costs because you can't explain it to the customer why it doesn't work. You can't, you don't know how to characterize it and you don't know what to do until you have characterized it. And they lost all kinds of sales. They spent millions of dollars, just throwing it down the drain, because they would not listen to outside experts. And then that hardware designer, within a few months, quit, and went to a different company and they lost all continuity with that particular internal design person.)

I had not heard that story, very interesting.

(You were starting to talk about how efficient you were in the morning with e-mail, do you want to go down that path a little? Your morning routine?)

Starting off, I've got to be very careful getting involved with Windows. I can get so angry and frustrated that after an hour that the days is ruined. [laughter] And I've got three computers, two are always on. One running colorforth. One running windows and they're netted and I have a couple networking devices. The system is getting more complicated which means it takes more attention on my part to make it functional.


Online videos of this presentation are available in the Streaming Video Theater in WMV format.

Fireside Chat 2004 44MB 115kbps quality)

Fireside Chat 2004 110MB 256kbps quality)

(MWV files are 320x240 low frame rate.)

In the UltraTechnology Online Store there is a DVD (720x480 32-bit color full frame rate) version of the presentation.

DVD sample file 3MB, only 4 seconds of DVD video!