EASy68K Home

DTACK GROUNDED #11
July 1982

DTACK GROUNDED, The Journal of Simple 68000 Systems
Issue # 11 July 1982 Copyright Digital Acoustics, Inc

ON THE FRONT PAGE OF OUR LAST NEWSLETTER we asserted that the support for Pascal for our 68000 attached processor was going to come from the Pascal programmers. It is only fair that we reprint (with permission) the following letter on THIS issue's front page:

"I have had my DTACK GROUNDED board hooked up to my Apple II for about two months now and I am truly impressed by its performance. My only reservation so far is the inability of the MC68000 to access the Apple internal memory. I foresee this as being a possible limitation in updating the Hires memory pages when programming real-time complex graphics displays. However, one cannot have everything in a 'simple' system and a few moments thought reveal the complexity of an architecture of this type.

"My main computing interests involve programming in Pascal and my first task after an amusing interlude playing with the software supplied was to patch your floating point routines into the Pascal P-code interpreter. This proved easier than anticipated despite the different floating point number internal representation; only a 24 bit mantissa and 'excess $7E' representation of the exponent in Pascal.

"If you are familiar with the UCSD P machine you will no doubt know that arithmetic operands are passed on the evaluation stack (in the Apple II the 6502 machine stack) to the interpreter math and the transcendental function routines. In my current implementation the four byte packed fp number is popped off the stack and transferred to the DTACK board for unpacking and manipulation. Repacking after transfer back of the result takes place in the 6502 but this process is simple and fast. These above operations involved relocation and modification of your 68000 code and in the case of the fp repacking routine the thought of relocating all the code after SENACC was too much to bear (oh! for a few small gaps in your code). This assisted Pascal has now run for a month with no discernible problems.

Page 1, Column 2

"Modification of the code to take advantage of the shorter mantissa will await my already ordered ASM68K. So will the inclusion of more math routines e.g. the integer divide and multiply appear to be prime examples. Eventually I hope to include a double precision floating point and a fast but simple hires plotting package.

"The speed increase is about 2X depending of course on the program. My fastest Pascal 60000 assisted version of the MTU D3 program runs in about 7mins 30secs. If you thought HPLOT routines ran slow then try Pascal Turtlegraphics! (Turtlegraphics does, however, have some clever comprehensive features that account for and compensate for its slowness.) Patching in the 68000 PLOT routine drops this time to 3mins 2secs. This I consider a very respectable time for a compiled program in P-code being only a factor of 4 slower than your comparable D3.68K machine code version.

"If you are interested in the steps necessary to adapt your floating point package to the Apple II Pascal environment give me a call."

Alan D. Wood
856 W. Natal Ave.
Mesa, AZ 85202

TO TELL YOU THE TRUTH, Alan, we don't know much about Pascal. We do know that its original male designer (Linda, we don't know what ever happened to Kathleen Jensen, the other designer of Pascal), Niklaus Wirth, has abandoned Pascal. The best known original proponent of Pascal in this country, Dr. Kenneth Bowles, has abandoned Pascal. And we have altogether too many letters in our Dtack correspondence file, including yours, which complain directly or indirectly about insufficient numerical resolution in Pascal.

Therefore, your idea of adding a double precision floating point package to your Pascal sounds like a good idea indeed. Perhaps you (Alan) will let US support YOU in your efforts to enhance Apples' UCSD Pascal. What we can do is provide you with the double precision floating point package since we are (shortly) going to develop that 61 bit package with a 48 bit mantissa that we talked about in issue #1.

In addition, our Microsoft compatible F.P. package carries around a lot of excess baggage that is not needed in a single precision package with a 24 bit mantissa. Let me suggest that you provide us with documentation on the exact format of the Pascal single precision F.P. number; we think we can perform the needed modifications easier than you can.

Finally, we are glad that YOU plan to enhance Turtlegraphics because that is outside of our area of expertise.

Page 2, Column 1

PRESIDENT LYNDON JOHNSON once noted that there were two kinds of hound dogs. If dinner was seriously late one kind would head out into the brush and scare up some dinner itself. The other kind would sit on its haunches and howl for dinner to be brought to it. Lyndon then observed that he preferred the former over the latter. So do we. Lyndon was NOT talking about hound dogs, of course. Neither are we.

It has become evident to us that the vast majority of personal computer owners are the sort who sit FIRMLY on their haunches and howl for their programs to be brought to them. Fortunately for all of us, there are a SIGNIFICANT number of personal computer users of the inverse persuasion. In addition to the work Alan is doing, Jack Haller has written a 68000 Forth which runs on the CBM 8032 and Gary Landis and a friend have together written a 68000 assembler which runs under Apple Pascal. WE, as you all know, have provided some programming support in the math and three dimensional graphics areas, plus an educational 68000 assembler which does NOT require a Dtack board to run. We have begun to define, in writing, a 68000 BASIC which will be finalized next spring unless somebody else beats us to it. Cascade Graphics now has three programmers putting in 120 hours a week (collectively) to support Apple Pascal and Pascal graphics on the 68000. This last effort is of course proprietary.

We are selling a significant number of fully loaded (92K) boards to financial houses and stock analysts who are, for now, developing their own applications software. This task will be MUCH easier now that a real 68000 cross-assembler is available for the Apple. It is possible that that cross-assembler will be adapted to the Pet before long. If so (when so) it will be announced here.

So if you are an assembly language programmer and are interested in fast processors with a large linearly addressable memory space, you probably ought to buy one of our boards soon. Or, of course, an equivalent board from a competitor. In fact, if you are RICH you might consider buying one of the 100 or so 68000 based minicomputers that have been announced. On the other hand, if you ARE rich we told you to GET LOST back on page 1 of issue 1. How come you have stuck around?

Actually, it is a good thing that there are so many people who are not now interested in buying a board. We don't know what we would do if tomorrow's mail brought 500,000 Dtack board orders! However, you should be advised that our April (Dtack) dollar volume was 50% greater than the best preceding month and that May was 50% better than April! Since this is being written on May 31, we don't have a feel yet for June, but Cascade Graphics plans to announce their 68000 supercharger, one 92K board and one 128K expansion board, around July.

Page 2, Column 2

All this means you can forget about your Dtack board being an orphan. The question at hand is, how fast will the software base expand? THAT, in turn, will determine how fast our sales expand which in turn will determine how fast the software base expands! We are NOT now selling boards to the squatters and howlers; we are selling to the ones who do a little programming themselves!

The fact that we are going to compete with ourselves by offering a variety of different kinds of 68000 boards at various price, performance and memory sizes but with COMMON memory maps and bootstrap ROMS will help this process. We have ordered a production lot of 100 ea. 128K RAM expansion boards, by the way. How much is a 220K system which runs at 12.5 MHz? $2418 base price, FOB Santa Ana, CA. We realize that ain't cheap, but it IS large and fast. Let us not mince words; it is the FASTEST extant microprocessor board.

If you can accept something slower, we will be selling a VERY inexpensive 68008 board around the end of this year. It will even have DMA! But no memory of its own, of course.

A SUMMARY: We are pleased with our progress. Although our market has developed more slowly than we had anticipated, the 68000 market as a whole has ALSO developed more slowly than we anticipated. We are now positioned exactly where we had anticipated being with respect to the rest of the high performance 16 bit marketplace. In fact, we may be a little better off than originally anticipated; we had not expected to ship 12 MHz (or faster) boards this early.

WHY SUCH SLOW DEVELOPMENT? We felt last summer that there would be a relatively large number of programmers and hardware hackers who would want to get their mitts on a real, working 68000 board as quickly as an affordable one became available. It turns out there were a lot fewer of them than we expected, and one heck of a lot higher proportion of 'squatters and howlers' than we expected.

Our opinion is that it is this unexpectedly high proportion of 'squatters & howlers' that has slowed down the development of the 68000 small computer market. That INCLUDES those $8000 (typical) minicomputers! It is evident that there are only three classes of 68000 based equipment manufacturers who are going to survive the next 18 months: those which are very well financed (Apple, Tandy); those which have low enough expenses that they can survive on lower sales (us, maybe Cromemco and a few others); or where the survival of the company is not determined exclusively by 68000 system sales (us, Apple, Tandy and Cromemco).

Maybe the paragraph above will help you select a 'survivable' 68000 vendor?

Page 3, Column 1

Why 18 months? It is going to take that long to develop a large enough 68000 software base to satisfy the 'squatters & howlers', that's why! So those new startup companies which were established exclusively to sell 68000 based systems are going to have a very, very difficult time surviving the next 18 months. That is because 100 different companies are going to try to slice a MUCH SMALLER THAN EXPECTED marketplace into 100 tiny pieces. But those which DO survive are going to have an ENORMOUSLY profitable market 18 months hence when the S & H boys climb on the 68000 bandwagon!


The scenario above is a linear projection of the 68000 marketplace as it now exists. In our opinion, there are at least a couple of NON-LINEAR events on the horizon! The biggest non-linear event coming up is the introduction of the 68008 at the end of this year. This processor, when mated with the Apple II and its hardware compatible successor (the rumored Super II, reported in the Wall Street Journal) will be SO INEXPENSIVE that the S&H boys will jump on the bandwagon with no more available software than WE will have at this years' end!

And, of course, there will be 26 other companies besides us selling 68008 boards. THEIRS will come in prettily colored plastic boxes with a retail markup (and with lots of announced but unavailable software). OURS will come with real working (but limited quantity) software, in a brown cardboard box, WITHOUT a retail markup! So ours will be both cheaper and more usable, initially (we suspect that some of those 26 other companies are going to rip off some of our software).

The 68008 will also very likely cause some company, perhaps a new startup, to introduce a true 68XXX-based personal computer such as we described in our last newsletter. We see the introduction of the 68008 as having an ENORMOUS IMPACT on the 68XXX marketplace. This is a non-linear event which is DEFINITELY going to happen!

The OTHER non-linear event has some maybes: we think that in either six or twelve months WE are going to have a significant effect on the 68000 marketplace! That's six OR twelve months, one or the other.

Here is the twelve month scenario: We fulfill our hardware plans as published last issue by the end of the year as scheduled. While we are doing this, we develop a double precision F.P. software package with 14 decimal digit resolution and incorporate it into a 'programmable calculator'-like language. We know that this is readily do-able because we DID IT once already for the 6502 and we also did a primitive 68000 version that worked - if you have a Dtack board, you will also have a source listing on red paper entitled "Motorola 60000 Three Dimensional Plot Demo". That happens to be the source code for program "D3.FAST". If you will turn to line 686, address $1380, you will see the beginning of the threaded interpreter. Turn to line 1098, address $1516 and you will see the actual 'programmable calculator'-like code which executes the algorithm of the (originally MTU) demonstration program.

Page 3, Column 2

And we plan to incorporate into this package many of the functions of BASIC. And as we said earlier, we are ALREADY documenting how certain things must work in a 68000 BASIC (consider, for example, how the array and other variable memory allocation must be handled when THREE bytes are needed to specify an arbitrary memory location!). So, 6 months from now we use income generated by sales of Dtack boards to hire two or three programmers to assist in turning the 'programmable calculator' package into a BASIC. This BASIC would be compatible with our existing 'attached processor' configuration AND the 68008 board. Which means it would be compatible with those OTHER 26 companies' boards!

So how do we 'lock' our 60000 BASIC so that the customers of those other companies couldn't use it? SURPRISE! We DON'T lock it!

Here is our plan: we will publish the 68000 BASIC in book form INCLUDING THE SOURCE CODE! Then we publish the object code on a floppy disk with a clearly readable copyright notice. Since the disk will be purposefully not locked, lots of people will naturally RIP IT OFF! Do we reach for our shotgun? No, we SMILE! Because everybody who rips off the disk will buy our book within two weeks! Do we smile in PUBLIC? No, we write nasty letters to the editors of the various personal computer magazines deploring the dirty rats who are stealing our software! The letters would let everyone know that it is POSSIBLE to rip off the software, of course (in effect free advertising for the book!).

What is the SIX month scenario? Simple. Somebody ELSE publishes that BASIC. And makes lots of money selling books. And we make lots of money selling boards to run the software published in that book.

Under the 12 month scenario, we might wind up making more money publishing the book than on hardware sales. If you think this scenario is familiar, you are right! It was the rampant theft of Altair BASIC which put Bill Gates and Microsoft where they are today. The difference is, he really didn't want people to steal his software but WE really DO want people to steal ours!

If the published BASIC is a GOOD BASIC, and if theft is permitted through benign neglect, the 68XXX marketplace would be (profitably) shaken up! To the mutual benefit of everyone involved EXCEPT the priesthood jealously guarding their secret, sacred BASIC source code!

Page 4, Column 1

SELECTED SHORT SUBJECTS:

FROM ELECTRONICS MAGAZINE, Jun 16 '82: "Intel Corp.'s iAPX-432 is making a second debut early next year in the form of an improved chip set designed to deal with the two major complaints from customers: the 32-bit microprocessor is too slow and too hard to program."

Heck, if the only problem with the 432 is that it is too slow and too hard to program, we are sorry we said all those bad things about it. There are more important microprocessor attributes than speed and programmability! And as soon as we can think of one, we will publish it right here.

THE 1000- PIECE PRICE FOR THE INTEL 8087 JUST DROPPED from $320 to $150! Which means the small quantity price is about $250 and now affordable! The same article (in Electronic News, Jun 7) quoted an Intel spokesman as saying that the price is expected to be halved AGAIN by year's end! It seems the company was surprised by the enthusiastic reception for the part, and they have been in effect forced to learn to produce that big part efficiently. Having learned to produce the part efficiently, they are thoughtfully passing the savings on to the customer. We examined the article VERY carefully to see where it mentioned the faster (and formerly cheaper) National 16081. But the article did NOT mention the 16081, so we assume that a marketing stance versus the competition was NOT involved in the repricing??

We have MUCH MORE enthusiasm for an 8087 accessory (or two) for our 68000 board at Intel's new lower prices. Five hundred bucks was a bit much.

OUR 68000 BOARD WITH ONE OR TWO 8087s will make a marvelous array processor and general number cruncher for engineering and scientific applications. By a remarkable coincidence, we have just received an announcement of a new newsletter entitled "ACCESS: A journal for engineering and scientific applications of microcomputers." They want $16 for 6 issues (1 year). Three bucks buys a sample issue. Canada $20, elsewhere $32 (U.S. funds). The address is:

P.O. Box 12847
Research Triangle Park NC 27709

We have subscribed but have not yet received any copies. Review next newsletter if for real. Or you can take your chances like us.

Page 4, Column 2

WE HOPE "ACCESS" IS MORE TRUTHFUL than the most recent newsletter we received from North Carolina. There is this outfit which makes a 68000 board using dynamic RAM as an attached processor for their 6502 computer. We just received Volume 1, issue #1 of their newsletter on their 6502 computer system. On page 2, they announce that they offer "...simply the most powerful add-on CPU board available ANYWHERE for ANY personal computer." Your faithful newsletter editor immediately called the firm and challenged its president to a duel, creampuffs at 20 paces! JUST HOW, we asked, could that dynamic RAM board be faster than OUR 12.5MHz static RAM board? It turns out that their board is, well, NOT the fastest. The claim DOES make MARVELOUS advertising copy, though. We have offered, in exchange for a mere month's supply of Heineken Special Dark, to keep the name of Micro Technology Unlimited and its president David Cox secret.

A CLIPPING FROM ONE OF THE ELECTRONIC INDUSTRY NEWSPAPERS: "Former International Memories, Inc. marketing vice-president Frank Iazzetta has put together a business plan for a start-up that would develop, market and distribute an 8-inch fixed/removable Winchester disk drive priced under $2000." That is presumably less controller, but Winchester controllers are becoming available in the $1000 range. And a fixed/removable configuration certainly solves the backup problem!

Other Winchester manufacturers have ALSO announced fixed/removable configurations. We just may be interfacing one of them to our 68000 board before long.

WE HAVE BEEN ACCUSED OF BRAGGING ABOUT OUR 12.5MHz boards. Ridiculous! Your faithful newsletter editor is a mild, unassuming person who would NEVER stoop so low as to adopt the obviously unattractive posture of a braggart. It is merely that we wish you to be aware that we, and WE ONLY, are shipping real working 12.5MHz systems. Not Apple. Not Tandy. Not Cromemco. (Definitely not MTU!) Not even that big frog with a 32 bit processor or Sage with their 2MIPS system. If you want to buy a 12.5MHz 68000 board today, you have one choice and one choice only: DTACK GROUNDED.

That's not bragging, is it?

THE ELECTRONIC INDUSTRY NEWSPAPERS ARE NOW RUNNING DOUBLE PAGE ADS featuring the National 16032 microprocessor family. The ad clearly describes the 32 bit registers used by the 16032. But we read the ad twice, read it sideways and even upside down, looking for HOW MANY 32 bit registers were on board. Nada. Now, you don't suppose they were avoiding revealing that they have a LOT FEWER 32 bit registers than the 68000, which has SIXTEEN each 32 bit registers?

Page 5, Column 1

WE HAVE THIS CUSTOMER IN MINNEAPOLIS who has one of our 92K boards, the slow 8MHz variety. He and four other acquaintances are evidently cooperating in adapting our Apple compatible board to the OSI (Ohio Scientific) system. Apparently these five individuals comprise four programmers and a grunt, er, hardware type. I have a RAPIDLY AGING letter from one of the programmers which states unconditionally that they would have FOUR (4) (IV) high level languages up and running on our board within TWO MONTHS! compiled Basic, XPLO, Forth and UCSD Pascal. The writer even signed his name!

Now, before WE would write a letter claiming to implement four high level languages in two months we would clip the words out of a newspaper, ransom note style! The two months will be up before newsletter #12 is due, of course. Let us point out that we can be bribed to conceal incriminating evidence reasonably inexpensively. But these guys are nuts! They claim for instance to have a Cray 1 in the basement. Now who, we ask, would have a Cray 1 in their basement in Minneapolis? What's that? You say the University of Minnesota has a Cray 1 in its basement? Hmm...

HITACHI IS EXPECTED TO ANNOUNCE A 64K STATIC RAM this summer. (A tip of the hat to Warren Andrews of EET.) Organized 8K X 8, the part will apparently be just like the 2K X 8 6116, only four times bigger. Incidentally, the 6116 is completely pin compatible with the Toshiba 2016 we use in our static RAM boards. The reason we don't use the Hitachi part is that it is CMOS, and Digital Acoustics does not use CMOS parts unless the parts come (more or less permanently) wrapped in a metal case. The problem is you can walk across a wool rug on a dry day, reach out and touch a CMOS part and DESTROY IT. This is definitely a case where you should NOT 'reach out and touch someone, er, something'!

So we will wait for an 8K X 8 NMOS part from Toshiba.

ON JUN 17 WE SUCCESSFULLY FIRED UP A 220K SYSTEM for the first time. That is a fully loaded 92K 68000 board (Apple variety) and a fully loaded 128K expansion board. The total current drain was 2.0 Amps. That is not a specification; that is what this first system measured. Most of that current drain is due to the various 74LS245 and 74LS640 buffers, which are (if truth be known) power hogs. Those two parts are just alike except that the 640 inverts and the 245 doesn't.

If you are planning to eventually go to a 220K Dtack system on your Apple buy a 3A 5 volt supply. We definitely DO NOT recommend powering the 220K system from the Apple (unless you have spent $219 for that heavier duty power supply available from a third party).

The auxiliary power supply we provide with the Pet compatible board IS a 3 Amp regulated supply (cool down, you Apple types; it uses the Pet power transformer!). What we do not know yet is whether it is possible to get the expansion board inside the Pet case with the 68000 board. In fact, we do not even know whether the various Pets have the same internal dimensions! But we should be starting to get some answers soon.

Page 5, Column 2

WE MUST CONSERVE OUR RAM RESOURCES CAREFULLY, RIGHT? Conserving RAM is like being for motherhood and against sin. Why, Dr. Dobbs Journal was founded on an attempt to fit a useful BASIC interpreter into the smallest possible RAM. Anybody still got Dr. Dobbs, Volume 1 besides us? Check it out. Times they are a-changing! Today, RAM (in the quantities and speeds appropriate to the 6502 and Z80) is ridiculously cheap. Let us repeat that: RAM for the 6502 and Z80 is RIDICULOUSLY CHEAP!

There is this outfit in Georgia called QUADRAM which makes a 64K byte printer buffer which they will sell for $295 in retail stores. This means the retail stores pay about $180 for that 64K buffer! Now, what does a 64K printer buffer do which could not be done in its absence? NOTHING! It is merely a SLIGHT convenience which takes a slow printer (like the MX100 being used to print this newsletter) a little easier to live with. Are we knocking the QUADRAM product? No, we are going to buy one of those buffers very soon ourselves! Our point is, 64K RAM is now RIDICULOUSLY CHEAP! In fact, QUADRAM must be selling a lot of those buffers because they have introduced a SECOND print buffer which goes all the way up to 512K (as we recall)!

Speaking of the Pet, Commodore themselves offer TWO (different and incompatible) methods of adding an extra 64K RAM to the Pet. Programs written for one of the 'big Pets' will not work on the other.

And we have just read about the Cramapple modification, which removes the 48 ea 16K RAMS on the Apple mother board and replaces them with 64K RAMS. For under four hundred bucks you get an extra (bank selected) 144K for your Apple, selected through the annunciator port. And you may have noticed that some companies have 256K bank selected memory expansion boards on the market.

All of these methods of expanding the memory capacity of the Apple II are mutually incompatible, of course. This means you are probably going to have to write your OWN software to figure out how to use all that stuff. And if you have not written 'bank-select' software yet, you've got a great big unpleasant surprise coming! Actually USING that extra RAM which can ONLY be accessed thru bank selection is tremendously difficult, even if the bank selection process were standardized. IT IS NOT EVEN REMOTELY STANDARDIZED!

Since lots of 256K expansion boards and lots of Cramapple modifications are being sold and there is absolutely NO commercial software, where does that leave us? It leaves us with a lot of unusable RAM, that's where it leaves us! And guess what? The Fujitsu 256K dynamic RAM may make a commercial appearance before years' end! Anybody want to buy a cheap two megabyte printer buffer for their MX80? Anybody want to buy a one megabyte memory expansion board for the Apple II?

Page 6, Column 1

WHAT SENSIBLE PERSON, WE ASK, WOULD WANT TO WRITE COMMERCIAL SOFTWARE FOR A MEGABYTE BANK-SELECT 6502?

(The 256K dynamic RAM chip will initially be expensive.)


SOME OF YOU ARE BY NOW WONDERING what this has to do with the 68000, which, rumor has it, is the primary concern of this newsletter. It is like this, guys and Linda: to make effective use of a large RAM (regardless of the price of that RAM) we need a computing element with a large linearly addressable memory space. Like the 16.7 MEGABYTE linearly addressable memory space which the 68000 (and our Dtack boards) have. We have already told you that the 68000 is about four times easier to program in assembly language than the 6502. That was without bank select. If you use ANY VARIETY bank select technique WHATEVER with a 6502, the assembly language becomes about 20 times harder to program than the 68000. And the bank select process (on the Apple II) MUST be done in assembly language.

You want to brag about your disk emulator which came with your big RAM board or modification? We SPIT on your disk emulator which is a mere four or five times faster than the abysmally slow DOS 3.3 and which loses data when the power is interrupted even momentarily! (We never claimed we were sanitary, folks.)

We have read several articles about the Apple III and its bank-select memory. The operating system for the III, SOS, is aptly named but not for the reasons intended by the Apple Computer Company. Now, most of those articles on the Apple III are evidently MEANT to be friendly. With friends like those, the III don't need enemies, folks.

The Data General NOVA was designed when memory was godawful expensive, as was the PDP11 series and the 8080. Memory was still expensive when the 6502 came along and when the 8086 made its commercial appearance (and the 68000 was being designed). The fact that the 68000 has more than a 64K address range is NOT due to the foresight of the Motorola folks in re RAM pricing!

The 68000 was designed when a megabyte of RAM was horribly expensive in personal computer terms. That's O.K., the 68000 was NOT repeat NOT designed for personal computer use! (The 6809 WAS originally designed for personal computer use.) The 68000 was originally designed as a cost-is-no-object replacement for the PDP11/45. The fundamental architectural decisions on such matters as the size of the address registers were probably made circa 1976. In 1976 4K RAMS reigned; the 16Ks did not appear, as we recall, until near the end of the year and at a horribly high price. In 1976 YOU, chum, were NOT going to personally buy a megabyte!

Page 6, Column 2

Like we said, times have changed. The chip cost for a megabyte of RAM is now under a kilobuck. That means a commercial megabyte can be bought for less than the price of a new compact car. And, like we said before, you can get an extra 144K for your Apple via the Cramapple route for under $400. The fact that there is no way to USE all that extra RAM for a practical purpose is irrelevant.

Our thesis is this: AS AN ACCIDENT OF HISTORY, we have an extraordinarily high performance microprocessor which has a huge linearly addressable memory space at just the time that more memory is affordable by an individual than can be effectively used by the older generation microprocessors. Quarter megabyte memories with 68000 processors on board will shortly be available for less than the price of a high end video tape recorder, home user variety. (MTU claims they are shipping their attached processor for the MTU 130 6502 based computer system already.)

And get this: within two to three years you will be able to buy a megabyte of RAM on a single board with a 68000, from us, for less than a kilobuck. True, it will be dynamic RAM, which is known to be less than 100% reliable. When will we begin the layout of this monster? We already have. Our dynamic RAM board will use 64K dynamics initially but the layout will (very possibly) INCLUDE provisions for the extra address line into pin 1 which is the ONLY layout difference between the 64K and 256K dynamic RAMs!

NOBODY, but NOBODY, is going to write 6502 application programs for one megabyte bank-select RAM systems! Not ever. Which means somebody IS going to write application programs for 68000 one megabyte RAM systems. Why? Because there are shortly going to be a LOT of one megabyte RAM systems around, that's why!

Now we are going to discuss how we got ourselves (that's you and us) into this fix, and what problems we will have to look out for in the future:


IN THE BEGINNING WAS THE TRANSISTOR, a remarkably useful device. The Japanese made a dandy little radio using them called the REGENCY. A company called Control Data made a computer called the 6600 using them and delivered it in 1964. In A SINGLE MICROSECOND that computer could perform two 60 bit fp multiplies, an fp divide, an fp add, an integer add and have time left over for two increment, one shift, one boolean and one branch operation! (THOSE OF YOU WHO HAVE BEEN BRAGGING THAT YOUR DTACK BOARD IS FASTER THAN THE MAINFRAMES BACK IN 1965 WILL PLEASE STOP!) The 6600 did that with discrete silicon transistors, NOT integrated circuits! (ICs were available but were too slow!)

Page 7, Column 1

Way back in 1952 Sydney Darlington applied for a patent on a method of fabricating two interconnected transistors on the same semiconductor blank. He was later awarded U.S. patent #2,663,806 and nothing has been the same since.

At the 1960 IRE (International Radio Engineers) convention, TI introduced the type 502 integrated flip-flop for $400. At the 1961 IRE show Fairchild had THEIR integrated flip-flop for $120. In 1965 Fairchild introduced a flip-flop for the unheard-of low price of $2.70 ea, quantity 100 and promised to deliver the part for a buck in large quantities within 3 months. Today, each of the 16,384 bits in the Toshiba static RAM we use is in fact a flip-flop! Imagine the astonishment of those pioneers if they had been told that flip-flops would routinely sell for less than 0.05 CENTS in 1982!

We now skip forward to 1976, which more or less marks the beginning of the personal computer industry. (If you will promise not to bring up the earlier Altair, we promise not to show you the invoice for our personal BASIC-in-ROM computer with a 64 character by 16 line CRT which we took delivery of, at home, in 1972.)

In 1976 1K static and 4K dynamic RAMs were reasonably priced. Beginning roughly in 1979, 4K static and 16K dynamic RAMs were reasonably priced. Today (1982), 16K static and 64K dynamic RAMs are reasonably priced. In constant dollars, we have about sixteen times the RAM capacity in 1982 that we had in 1976. Those of you who are mathematically inclined will recognize that we have a clear trend that says the amount of memory per constant dollar doubles every eighteen months!

Many consumer items are UNIT markets. If you are a middle class American adult then raincoats, lamps, toasters and asparagus tips are bought as units. That is, you buy what you need and then quit. If the price of toasters drops by a factor of ten, you do NOT buy nine more toasters. RAM for personal computers is NOT a unit market. The casual hacker will generally have two days' wages worth of RAM and the serious hacker about two weeks' wages worth.

In 1976 the casual hacker had a 4K system and the serious hacker about 16K. Today the casual hacker has a 64K system and the serious hacker (Apple division) has a Cramapple or Sirius Systems RAM expansion. Both of which are unusable unless you like disk drives which dump data on power down or a momentary power glitch.

MAKING THE REASONABLE ASSUMPTION that this trend will continue for a while, in 1988 the casual hacker will have a one megabyte RAM and the serious hacker 4 megabytes! The occasional affluent hacker or small business will begin to feel cramped by the 16.7 megabyte addressing limitation of the 68000!!

Page 7, Column 2

IT IS NOT ABSOLUTELY NECESSARY TO ANTICIPATE EVENTS, of course. You can always react to them after they happen. Have you bought a buggy whip lately? Or one of those six-mile-per-gallon five thousand pound Mercury station wagons? When NOBODY correctly anticipates future trends, you and a few hundred (or a few hundred thousand) of your fellow workers become unemployed as manufacturing plants shut down. Or you wait in line a long time to buy gas.

Look: the fundamental architectural decisions on the 68000 microprocessor were made in 1976 or 1977 at the very latest. The part became commercially available in Nov. of 1980. It is possible that a significant amount of applications software (in quantity suitable to attract the 'squatters and howlers') will not be available for another 18 months, which takes us up to the end of 1983 or the beginning of 1984. The real mass market for the 68000 will not begin until that time. So we are looking at 3 or more years from product outline to commercial introduction and another 3 or more years from commercial introduction to a useful (to the mass market) amount of software support.

It also means that the persons responsible for product definition of a brand spanking new microprocessor TODAY (such as the recently announced Intel 32 bit iAPX386) really should think about conditions in 1988. For instance, just how much memory will typical systems have at that time. It is NOT ridiculous to speculate about conditions in 1988!

Any business, even a small business like us, has to have a short range and a long range game plan. In the short range you sell today the product that is available today and also watch your cash flow. In the long range you develop products and a marketing strategy to expand the business. In business as in life you grow or you die.

The very largest businesses do their long range planning on a ten year basis; anything longer range than that is speculation. We are a MUCH SMALLER business and our long range planning is done about one year ahead, for now. We do SPECULATE further ahead than one year!

Now it is time to talk about YOU!


How far ahead do you plan your career? If you are a technical type such as engineer, technician or programmer you probably plan at least two years ahead. How much demand is there going to be two years from now for assembly language programmers on the 6502 or Z80? If you (or your company) now make your living this way, isn't it tine to plan ahead? After all, nobody in the world is now making a living programming the Intel 4004 or 4040, right?

Page 8, Column 1

HERE IS A SALES PITCH: We believe that we are currently the ONLY company selling an economical 68000 training tool to the mass market which is ALSO useful and ALSO supported by (some) software and even a newsletter. (Well, we admitted that we had to try to sell TODAY the hardware we have TODAY, didn't we?)

We've got lots more to discuss about RAMs, but it is time for a little comic relief.


WE HAVE A LONG-TIME COHORT and friend who is an engineer and also well-off. He would like to get our newsletter, he says, but isn't sure it is worth $15. We, in turn, refuse to part with the newsletter absent payment. His son, by the way, is close to graduation as an electrical engineer and owns a CBM 8032.

We have several other personal friends who are interested in microprocessors and in the 68000. NONE of them have received all of the newsletters absent payment of $15 for six issues. You see, we had to decide early in the game which of our friends, acquaintances and professional associates would receive free copies and which would not. We resolved the matter by simply deciding that EVERYBODY PAID! Sure cuts down on those tough decisions!

On the other hand, THAT decision and other related decisions as to how we were going to run our (Dtack) business has resulted in some INTERESTING phone calls. We will share some of these calls with you here. These are all REAL phone calls, SLIGHTLY exaggerated and with the names changed to protect the guilty!

The first call was placed by Ms. Sleekly Efficient, the executive secretary for Gordon Stufftshirt. We were informed that Gordon was a very important personage, being vice president in charge of paper clips, memo pads and carbon paper for Enormously Amalgamated Motors. Then, instead of putting the call through to Gordon, Ms. Sleekly waited. Finally, we asked what the problem was. Ms. Sleekly stated that "You have not yet acknowledged how important Mr. Stufftshirt is." What do you mean, we asked. A vice president in charge of paper clips? Everyone knows how important a vice-president is. After that statement she put Stufftshirt on the line.

"It has come to my attention that you are publishing a newsletter on the 68000", G.S. said forthrightly. Guilty as charged, we replied. "How many do you have in print?" B.S. asked. Six, we admitted. "Send them right over. It sounds interesting." said G.S. Sure, we replied, as soon as you send us $15. You see, that is the subscription rate for six issues.

Page 8, Column 2

"I am going to have to have a talk with my executive secretary!" stormed G.S. "I have specifically insisted that the people I call be made aware of my importance. Are you aware that you are speaking to a VICE PRESIDENT of EAM?" Actually, Ms. Efficient made us aware of that fact, we answered. "Then you should know that an important personage such as myself cannot be expected to pay $15 for a newsletter!" G.S. snapped. How much ARE you going to pay, then? $50? we asked. At that point the telephone company must have had a problem, because we lost the connection.

"Hello! This is Incredibly Intelligent, PhD., with Technocrat University. I have heard you are making a 68000 board which works with the Apple." That's right, we replied. "I would like to know more about your board, how it interfaces with the Apple, what the clock rate is, how much memory is available and such."

Our newsletter #2 covers those points in detail, we replied. Since you are practically local, if you will send us $15 you will receive the first few newsletters within 48 hours, including issue #2. You will then have the answers to all of those questions, plus some others you have not thought of.

"You do not understand. I need a 68000 board to swiftly digitize the philately ptarmigonian corteses. Once I do this I will be immediately regarded with a Nobel prize, since my work is important."

It is always good to hear from persons whose work is important, we replied. Our work is not important since we are merely trying to make a living. Since we are trying to take a living and you are not paying for this phone call, this phone call is going to end SOON. Would you like the address where you should send your $15?

"Your attitude is unacceptable. You clearly do not understand the importance of my work. Since you do not understand it, I will achieve my Nobel prize by other means. Goodbye forever!" fumed Dr. Intelligent as he hung up.

A few minutes later, we received a call from Bruce Underling, the manager of Previously Bent Paperclips at Enormously Amalgamated Motors. Bruce came to the point right away: "I think you should know that my boss, Mr. Stufftshirt, is VERY unhappy with you. You DO realize how important he is, don't you?" You have NO idea how impressed we are by a vice president in charge of paper clips and memo pads, we replied. "Don't forget the carbon paper!" Bruce cautioned. "My boss wants you to clearly understand that an important personage such as himself should NOT have to pay for you newsletter. You should be HONORED to have Gordon's interest." We would be even MORE honored to receive Gordon's check in the amount of $15, we replied. With that, we lost the phone connection again.

Page 9, Column 1

We received another call right away. "This is Professor Formfiller at Einstein University. Is it true that you are making a 68000 attached processor for the Apple II?" he asked. Yep, we replied (we were running out of words for the day). "That's good," he said. "We are positive that we are going to need to purchase 23,741 of your boards to equip our sophomore physics lab. There is just one thing we need," he added. A dozen free sample boards, we ventured? "Three dozen, really. How did you know what we needed, though?"

It was a lucky guess. We have never spoken to a university professor before, we replied. Prof. Formfiller then asked, "How soon are you going to send..." At that point the connection was broken again, closer to our end that time. The phone company was sure having a bad day!

When we arrived at work the next day, there was a message that Al Systemsmanager had phoned. Al works for Enormously Amalgamated Motors, but in a technical capacity. Since we have known Al for quite a while, we returned his call as soon as we had our first cup of coffee. Al, you old reprobate, we asked, just what have you been up to lately?

"Actually, I'm calling about Gordon Stufftshirt. His nose is pretty severely bent out of shape. Weren't you kinda rough on him yesterday?" Al asked. Gordon thought he should get for free something we SELL, we replied. As you very well know since we remember cashing YOUR $15 check! Right? we asked, rhetorically.

"Well, actually, I'm the guy who called Gordon's attention to you." Al stated. "Since Gordon is further up the corporate ladder than I am, I thought you might make an exception in his case." You've got it backwards, we replied. When YOU wanted to subscribe to our newsletter, you gave us a personal check. All Gordon has to do is tell his secretary to cut a company check for a lousy fifteen bucks. If he is too important to do that, he is ALSO too important to read our crummy newsletter.

After discussing some other stuff, we both went back to work.

Later that morning we received a call from Prof. Bitbanger of Rutherford B. Mayes University. "Are you guys in production on your Apple compatible 68000 board yet?" he asked. Only for the past three months, we replied. "Good. I will have the University purchasing office order a board." stated the Professor.

There is this one small problem, we replied. We do not accept purchase orders. "Oh, yes. I read that in one of your first newsletters. Surely you make an exception in the case of a university?" asked Prof. Bitbanger.

Page 9, Column 2

No, we replied. You may be interested to know that in the nine years we have been in business, less than 3% of our sales have been to universities but 50% of the attempts to shaft us have been made by universities or their employees! we replied truthfully. In fact, we continued, if you know Prof. (name deleted) of (name deleted) University, please tell that S.O.B. that we are awaiting payment of our $2000. (Note: since that phone conversation we have collected the $2000 by going to the other professor's department head.)

"Well, in that case, I guess I will have to process a special cash purchase order. Let's see now, $495 plus $15 for issues 7 thru 12 of the newsletter and how much for shipping?" asked Prof. Bitbanger. That will be $510 if you already have the 68000, we replied. If you send the entire amount in advance, we pay the shipping charges. There is this one little thing, we continued. "Yes?" inquired the Prof.

Isn't your application IMPORTANT? we asked. "That's hard to say. I need the board for a research project. If the project works out, I think it will be important. If it doesn't work out, and research projects sometimes don't, then it WON'T be important." Prof. Bitbanger added, "It's only the engineers who can start a project knowing in advance that the result will work."

Thanks a lot! May your milk always be curdled! we replied. (Some of our engineering projects don't work.)


We HAVE sold some boards to university professors. They represent about 7% of our total board sales, in fact. However, the Intelligents and Formfillers sees to be highly visible. We are a small, unimportant company. Maybe that explains why we get along best with small, unimportant people?

WE THINK THAT ANOTHER PROBLEM is, there are a heck of a lot of people out there who cannot effectively read (!). Maybe Incredibly Intelligent, PhD's problem is that he is exclusively a VERBAL communicator? And knows it?


MORE DYNAMIC RAM STUFF:

Many of our readers have wondered why we use static RAM when it is obvious that dynamic RAM is significantly less expensive. We have given you the short form of that answer in the past: the static RAM is far more reliable and typically faster (a desirable attribute at 12.5 MHz!). We believe that we have now provided enough background information that a more complete answer will be understandable.

Page 10, Column 1

THE TWO-YEAR RULE OF FOUR:

It is an historic fact that static RAMs cost four times as much per bit as dynamic RAMs AT THE CHIP LEVEL. At the SYSTEM level, the price advantage is about 1.8 to 1 if we insist on the same speed as affordable static RAM, or about 2.5 to 1 if we use typical speed dynamics, which are slower than affordable statics. The reason the system level advantage is less is that dynamic RAM requires complex, expensive support circuitry not needed by static devices.

The assertion we have just made assumes the following: use of parity but not error detection and correction, memory size optimized for the dynamics (how do you make a 4K RAM system using 64K dynamics?) and memory sized correctly for the personal computer market this year and next (128 to 256K).

Now, we have explicitly admitted that the dynamics are four times less costly than the statics at the chip level. That's the 'four' part of 'the two-year rule of four'. But if any reader thinks that the SYSTEM level price differential is four to one, then that reader obviously knows nothing about dynamic RAM circuit design. If you are going to argue about that 2.5 system level ratio which we assert, please do your homework THOROUGHLY first!

Now, we have explained that memory historically becomes four times cheaper every three years. Two years is 2/3 of three years, no? Now, what is four raised to the 2/3 power? A tiny bit over 2.5, that's what!

Which means that at the SYSTEM level, the same number of bytes now available using garden variety dynamic RAMs can be purchased two years from now using faster and much more reliable static RAMs. And that is the 'two-year rule' part of 'the two-year rule of four'.

So, if you can afford more RAM than you can use today with dynamic devices, you will be able to afford more RAM than you can use two years from now using fast, reliable static devices. Since we use our personal computers for business purposes (MAINLY for business purposes) the balance tips for us in the direction of static RAM. Especially since we add memory to our personal computer(s) as we need it rather than all at once. That DOES cut down on the cost differential.

For various reasons, you may prefer to sacrifice some speed and some reliability to get a big cheap memory now. That's why we are, right now, beginning the design of a dynamic RAM version of our board.

HOW MUCH RELIABILITY DO WE SACRIFICE, JOHNNY? Several of our readers have correctly pointed out that in some applications, memory errors are acceptable if they are sufficiently infrequent. You say ask, "what is the error rate for a 256K dynamic RAM using 64K chips?" We'll tell you: we don't know (apologies to Tevye).

Page 10, Column 2

The fact is, the error rate to be expected using 64K dynamic chips is controversial. A lot of smart, knowledgeable people (notably including persons employed by vendors of those 64K chips) claim the error rate is vanishingly small. A lot more smart, knowledgeable people (notably including people who absolutely require reliable data) claim the error rate is unacceptably large and also unpredictable. Unpredictable means varying from one manufacturer to another and also from one batch to another within a given company.

Your faithful newsletter editor is a circuit design engineer by profession. He also has more than a few year's experience at that profession, plenty of time to develop a deep respect for the senior engineer known as Murphy. Murphy's Law asserts that if anything can go wrong, it will, and at the worst possible moment! Stated another way, experienced circuit design engineers learn to be pessimists, not optimists. Having admitted our bias, let us point you at the single most complete and authoritative work on the subject: "Rethinking the 256-kb RAM" by Robert Bernhard in May 1982 COMPUTER Magazine, the IEEE publication.

That article is itself a seven page summary of problems encountered in 16K, 64K and 256K RAM design, including the reasons many of the preliminary 256K designs are being re-worked. If you are looking at dynamic RAM reliability using rose colored glasses, we strongly urge that you read this article. You will learn, for instance, that the metallization layers used to make the chip are themselves significant sources of alpha particles (and are consequently BENEATH the polymide coating that is now universally used). You will also learn that there are MANY error sources that are unrelated to alpha particles!

The article must be STUDIED, not read. We have gone over it three times to make sure that we did not miss something important. Our interpretation of the facts presented in this article, plus information gathered from other sources since the 16Ks appeared on the scene, is that there is absolutely no meaningful 'estimated time to bit failure' which can be applied to a PARTICULAR 256K dynamic RAM board, serial number such-and-such. What we CAN guarantee is that you WILL get errors if you do not use error detection and correction, which is more expensive than static RAM at the 256K byte level.


We certainly aren't salesmen. Salesmen NEVER admit the existence of problems! But here we are admitting that a board we will offer for sale has problems.

Page 11, Column 1

What is a major feature of the IBM personal computer? Parity error detection, that's what! Now, why does IBM include parity error detection? They are using unreliable dynamic RAM, that's why! What's that, you say. The great IBM corporation would NEVER permit errors in one of their wonderful computers?

Chum, this is the way it is: the IBM is known by EVERYONE by now to have a divide error which produces an error of a FACTOR OF TEN! And they aren't going to fix it! Still, we can clearly see the superior logic of THEIR promotional methods... let's see now... a moment while we slip on our blue suede salesman's shoes and sequined sporty jacket...

STEP RIGHT UP, LADIES AND GENTLEMEN! Buy your world's greatest 68000 boards with (optional) *** PARITY ERROR PROTECTION *** ... you know, we don't feel natural or comfortable doing this...


MICRO Magazine is getting serious about the 68000. Beginning with a special 68000 edition in Sept, they are currently planning to have a steady continuation of monthly coverage after that, along with the old standbys 6502 and 6809. They are actively seeking application and software-related articles about the 68000. If you think you would like to contribute to their efforts, contact Phil Baley or Lawrence Kepple at MICRO. Address is PO BOX 6502, Chelmsford MA 01824.

The problem is there is no extant 'stable' of 68000 authors yet. If you like to write and you know something about the 68000, this could be an opportunity. We suggest that you do not, for now, submit a 3-page article on how the 68000 performs a 32 bit add...

Why the shortage of articles despite those 100 outfits which have introduced 68000-based minicomputers? Simple. To the minicomputer boys, EVERYTHING is a top secret!

WE HAVE RECEIVED SEVERAL VERY USEFUL replies to our inquiry about random number generators. In the same spirit, we ask that you keep us informed about any articles (not press releases of yet another minicomputer) about the 68000. We will, in turn, pass the information along here.


Page 11, Column 2

As we said, we received lots of useful inputs from our readers about the random number problem. What we are going to do here is mix what we already knew with what we learned from those inputs, and give you the short course in random numbers. First, we restrict ourselves to a finite number representation, such as the two possible values determined by a coin flip, the six possible results of the toss of a single die (singular of dice), or the 4.3E9 possible values given a 32 bit mantissa, like in the Pet or in Applesoft.

As a mental exercise, let us consider a hypothetical polyhedron with ten equal sides or facets. Let us assign values of 0, 1, 2... 9 to these ten sides. Now we roll the polyhedron just like casting dice. We arbitrarily stipulate that the chances of any one side coming up on a particular roll are exactly the same as any of the other sides. This is ONE necessary condition for a 'random' number generator.

Let us suppose that on the last roll, the number 3 facet appeared. On the very next roll, which we have not yet made, what is the possibility that the number 3 facet will appear again? Exactly one in ten. It DOES NOT MATTER what the last roll, or random number was. That is ANOTHER necessary condition to a true 'random' number generator.

If we had a polyhedron with 2exp32 (4.3E9) equal facets, we would have a very nice random number generator for the Microsoft compatible floating point package. Now, that is a little bit impractical. But IF we had one, we would discover that it would be possible for the same facet to appear twice in a row. The odds against this would be 4.3E9-1 to one. In fact, if we do NOT have the occasional repetition (with the correct statistical frequency) then we do NOT have a truly random number generator.

BUT THE USUAL COMPUTER RANDOM NUMBER GENERATOR operates by computing the NEXT random number using the LAST random number as a 'seed'. This means that if two numbers appear twice in a row once, they will repeat FOREVER. (If the seed generates itself, there is never any different result.) Therefore, a good computer 'random' number generator CANNOT BE TRULY RANDOM, assuming a 'seed' algorithm is used. These computer random number generators are properly called 'pseudorandom' number generators. Which means the statistical distribution has many of the properties of truly random numbers except that the same number NEVER appears twice in a row.

Now we are in big trouble! We must be certain that our 'pseudorandom' number generator is NEVER truly random, because if we get the same number twice in a row, we will get that number forever. The problem is more subtle than that, naturally. Let us suppose that a seed S produces a sequence which results in an identical seed S on the 342nd iteration. In that case, we have a sequence which is 342 numbers long and will repeat forever. Not only is such a sequence not random, it is also not pseudorandom. It is in fact remarkably DETERMINATE, an attribute we are trying to avoid! This is the fatal problem of the algorithms which use the least significant bits of the logarithm, for instance.

Page 12, Column 1

When we disassembled the Microsoft 'random number' algorithm, it looked cute, simple and very possibly problem-ridden. One of the letters we received asserts that short-cycle repetitions occur for certain seeds. While we have not personally confirmed this, it definitely is not surprising based on what we know about random number generators.


OK, WE KNOW WHAT not TO DO. WHAT NOW? Well, if we know that there are 4.3E9 possible random numbers in our Microsoft F.P. package, we need to assure ourselves that there are no 'short cycles'. Consider this point carefully: the SHORTEST acceptable cycle is 4.3E9 long! This means that once one of the possible 'random' numbers appears, all of the other numbers must appear before the original number can repeat. Given finite resources, can we assure this? Fortunately, yes!

It turns out that the boys with the big, fast computers have figured out methods of creating a pseudo-random number sequence USING HARDWARE! This involves a collection of shift registers, inverters and exclusive-OR gates. A common application of the hardware is to generate a 'white noise' audio signal. Although we have been familiar with this approach for about ten years, one of our readers (Hal Chamberlin of MTU) has called a 32 bit implementation to our attention. Since these hardware configurations are readily converted to software equivalents, we now have a nice, well behaved pseudo-random number generator as soon as we make this one small correction:

What we want is a uniform distribution from $00000000 to $FFFFFFFF, hexadecimal. The shift register approach provides a uniform distribution from $00000001 to $FFFFFFFF since the number zero is a forbidden state (honest!). So all we have to do is come up with a clever way to include zero as a possible number. We then take the 32 bit integer, place it in the mantissa and assign the exponent equal to zero ($80) and normalize the floating point number. Voila! A well behaved, reliable pseudo-random number generator.

About three replies referenced Knuth, Vol 2 Chapt 3. The above is written BEFORE checking that reference, intentionally. Let us explain:

Page 12, Column 2

'Knuth' is Donald E. Knuth, once of Stanford University. In 1968 he published the first volume in what was projected to be a seven-volume series on 'the art of computer programming'. He managed to write three of the volumes before he became bored and went off to do something else. It is our personal opinion that the quality of the writing is, well, uneven. The exposition an sorting in Vol 3 is so excellent that this writer could not imagine writing a sort package or writing about sorting without direct reference to Vol 3. (We were astonished to discover that Jim Strasea, who has written a very good 6502 sort package not only did not use Knuth Vol 3 but had not even HEARD of Knuth!) On the other hand, the writeup on Chebyshey approximations in Vol 1 leaves a great deal to be desired.

Therefore, we chose to write this PRIOR to checking Knuth Vol 2 so that we would be sure to use our own terms and expressions rather than giving the impression of plagiarizing Knuth. If we made any big mistakes, we are sure that we will hear about them from you folks!

MORE SHORT SUBJECTS:

WE HAVE JUST RECEIVED (as we go to print) a copy of an article from the Jun '82 Computer Architecture News, a publication of the ACM. The title is "A Performance Evaluation of The Intel iAPX 432. The article benchmarks the iAPX 432 (4MHz) against the VAX11/780, the 68000 (16MHz), the 68000 (8MHz) and the 8086 (5MHz). Four algorithms were tested; string search, sieve, 'puzzle' and Ackermann's function (if you don't know, don't ask!). The 8MHz 68000 was run on a Dual Systems machine with TWO WAIT STATES (wonderful!).

The VAX and 68000 were both tested using two Pascals and a C language. The 8086 was tested using only one Pascal. The 432 was tested using three different ADAs (reputed to be its native language and hence optimum). The performance of all benchmarks was normalized against the performance of the VAX running VMS Pascal. A performance figure GREATER than one indicates BETTER performance than the VAX VMS Pascal. We are listing here the BEST performance for each machine:

                  search    sieve    puzzle   acker
   VAX11/78O        1.0      1.2      1.2      2.1
 68000 (16MHz)      1.1      1.3      1.3      3.6
 68000 (8MHZ)       0.3      0.4      0.36     0.86
  8086 (5MHz)       0.2      0.3      0.3      0.9
   432 (4MHz)       0.1      0.08     0.07     0.04

DO YOU SEE WHAT WE SEE?

DID YOU SAY 16MHz? Yep. Motorola will now sell you a 16MHz 68000 provided you can live with a reduced temperature range.

THE HISTORICAL DATA ON SEMICONDUCTOR DEVELOPMENT from 1952 to 1961 was taken from the 25th anniversary issue of Electronic News. The information on the Control Data 6600 came from Chapter 39 of the book "COMPUTER STRUCTURES: READINGS AND EXAMPLES" edited by C. Gordon Bell and Allen Newell, McGraw-Hill 1971.

Page 13, Column 1

A SHORT, QUICK REVIEW of the Phase Zero assembler: we have used it to assemble our floating point package, 2K bytes' object code, and we like it. The reader should keep in mind that this is the FIRST time this writer has ever used an assembler which he did not write himself. We used the DOS TOOLKIT editor; the folks at Phase Zero took the reasonable attitude that there were ENOUGH Apple II disk-based editors around; why try to re-invent the wheel? So their assembler is just that: an assembler.

DOS TOOLKIT has the advantage, for us, that it includes a 6502 assembler. This gives us the ability to distribute source code in machine readable form for both the 6502 and the 68000 if you ALSO have these two software packages. It should be noted that it is NOT necessary to have a Dtack board to use either package.

The Phase Zero assembler (a brand new package, remember) has one definite bug and a couple of annoying 'features' which we feel should be corrected. The bug first: of all instructions, the MOVEQ instruction is not treated correctly! MOVEQ #$B0,D0 will correctly be assembled as $7080 but there will be an error message which states that there is an overflow in the numeric field! This erroneous error message will occur whenever B7 is equal to one (decimal values 128 to 255). This is, flatly, an error which obviously will be corrected soon. In the meantime, enter that code as DC.W $7080. This is easy enough to assemble in your head: the first hex digit is always 7. The second hex digit is twice the register number. The final two hex digits represent the data to be moved into the register. MOVEQ #192,D5? That's DC.W $7AC0. Simple, yes?

Now about those 'features':

The 68000 has an ADD instruction which either adds an effective address ({ea}) to a data register or else adds a data register to an {ea}. In both cases, all of the sensible {ea}s are legal (one does NOT add a data register INTO immediate data!). In fact, when adding an {ea} into a data register, EVERY addressing code is legal. To quote from the 68000 User's Manual, page B5: "...all addressing modes are allowed."

However, there are times when you will want to add immediate data into, say, a memory location. Since this is a fairly frequent requirement, Motorola includes the ADDI instruction, which adds immediate data into an {ea}. All of the {ea}s which make sense are legal, specifically including data registers. This means, of course, that there are two separate ways to add immediate data into a data register. Both methods are legal; each has its individual op code. For instance:

 DC7C AAAA       ADD.W #$AAAA, D6  and

 0646 AAAA       ADDI.W #$AAAA, D6

Page 13, Column 2

are two separate instructions which perform the same task but using different op codes. For reasons known only to themselves, the Phase Zero folks have decided that the first of those two examples is WRONG! We quote from their assembly manual: "...the first argument of an ADD instruction is not supposed to be an immediate-mode number; you are supposed to use ADDI instead."

So, when the Phase Zero assembler detects an ADD instruction with immediate data as the source operand (first argument), it instead assembles the op code for an ADDI instruction. One consequence of this is that the object code of our floating point package does NOT match the object code generated by the Phase Zero assembler for the same code.

What's even worse, the Phase Zero assembler will IMPROVE your code. Say that you want to assemble SUB.W #2,D0, whose hex code is 907C 0002 (four bytes) and which requires 10 clocks to execute. Is this what you get? No, the Phase zero assembler decides that you made a mistake and instead generates the code for SUBQ.W #2,D0. The hex code is 5540 (two bytes) and the instruction executes in four clock cycles, six clocks faster than what was intended. This has obvious disastrous implications if you are doing real time programming. (This criticism is not valid for code written for our Dtack boards, which are NOT intended for real time applications. But the Phase Zero assembler is NOT limited to use with our Dtack boards.)

Another consequence of all these 'improvements' is that 68000 code disassembled from elsewhere will NOT, in general, be reassembled back into identical object code. We think these 'features' of the Phase Zero assembler need to be fixed. At the very minimum, it should be possible to optionally inhibit these 'improvements'.

The assembler supports 'chaining' files if you have lots of code to assemble. However, a single file can contain WELL OVER 1000 lines of annotated source code, over 2K bytes' object code. We know; we have files that large already. There is a CONFIGURE program which will adapt ASSEM68K to your particular printer. Our Apple II printer is an MX80 and we did not need to run that module.

This is not, as far as we can tell, a macro assembler and it does not support conditional assembly. Macros are FAR less important to the 68000 than the 6502 since the 68000 performs functions directly; the 6502 needs to figure out HOW to perform functions and THAT is where macros come in handy.

The Phase Zero assembler works, by and large it works well, and you are NOT going to find an alternate available at a price smaller than the down payment on an Oldsmobile. At $95 it is an outstanding value.

Page 14, Column 1

AN ACQUAINTANCE RECENTLY TOLD US that he used to belong to an Apple user group, but quit in short order. It seems club meetings started when the dumb, rich member showed up with nice Apple II software which he had legally purchased. The SOLE ACTIVITY at the meeting was COPYING that software so that all the OTHER members could have it at a modest price (the cost of the disk). As soon as all the software purchased by the dumb rich guy had been copied, the members would all look around blankly and begin to walk out the door. Translation: almost all the members were S & H boys.

LET HIM WHO IS WITHOUT SIN CAST THE FIRST STONE. We do not claim to be lily-pure in the above regard. The corporate 'we' tries hard to be honest. We do NOT use software for business purposes which we have not purchased. But we admit that some of the software which we have purchased was initially evaluated in a 'liberated' version.

The personal 'we' is middling honest. Since we don't like to shoot rocks, most of the personal software we use is oriented toward electrical engineering, so we have to write most of it ourselves. If we have the occasional piece of software which doesn't belong to us, well, we give away quite a bit of the software we write to anyone who is interested. We try to balance the 'take' with some 'give'.

But we do not admire those who take, take, take.

WHY INSULT POTENTIAL CUSTOMERS? This newsletter is NOT read by the typical S & H type. For one thing, it contains too many words with more than two syllables. For another, anyone who is interested, right now, in the 68000 cannot be described as 'squatting and howling'. It takes WORK to get out in front and learn about a new, complex processor. Every last one of the S & H boys is a FOLLOWER. Perfect cannon fodder.

Right now there are not enough of YOU folks (68000 types) to form clubs of the sort where warm bodies show up to yak and exchange notes (and yes, programs). But if you would like to encounter a kindred spirit, go to a FORTH interest group (FIG) meeting. If an S & H type ever wandered into one of those meetings by accident, he certainly left within five minutes!

Anybody who programs in FORTH is by definition intelligent, alert and self-confident. They may also have slightly twisted minds - after all, they do everything backwards - but they are NOT dull. Very few FORTH programmers watch Gilligan's Island reruns. Most will admit that FORTH has many of the characteristics of a religion, including (but not limited to) proselytizing, a major prophet, schisms and the willingness to argue over obscure aspects of dogma.

Page 14, Column 2

You can be confident that no one at a FIG meeting is going to walk up to you wearing a 3-piece suit and try to sell you some life insurance. You will find no Rotarians, no members of the Junior Chamber of Commerce and relatively few Republicans. On the other hand, you will find several members who write FORTH programs to shoot rocks! (Not everyone is a dull and stodgy non-rock shooter like us.)

HOWEVER, OUR ADMIRATION OF FORTH is limited to the efficiency of the threaded run-time package and the interesting people who are FORTH programmers. We DETEST writing programs backward, and we also detest programming systems which are designed to inhibit self-documentation, as the FORTH 'screens' are. FORTH is commonly recognized as a 'write only' language.

In this issue's REDLANDS you will find the opening shot of what is going to be a concerted effort on our part to bring the run-time efficiency of threaded code and the usefulness of being able to extend the language (equivalent to designing new keywords in BASIC) to people who cannot bring themselves to think backwards and who like documentation. There will also be fewer arguments over obscure aspects of dogma; our motto is 'There Is Much To Be Said For Things Which Work.'

ACKNOWLEDGEMENTS: Apple; singular, II, III and soft are trademarks of the Apple Computer Co. Pet and CBM are trademarks of Commodore Business Machines. VAX11/780 is a trademark of the Digital Equipment Co. DTACK GROUNDED is OUR trademark. UCSD Pascal is a trademark of the Board of Regents of the University of California.

SUBSCRIPTIONS: You can subscribe by sending $15/6 issues U.S. and CANADA or $25/6 issues elsewhere. Tell us which issue number to begin with. Make the check out to DTACK GROUNDED. The address is:

DTACK GROUNDED
1415 E. McFadden, Ste. F
SANTA ANA CA 92705

REDLANDS IS BACK! Last month we threatened, er, promised to print a threaded 'programmable calculator-like' language featuring very little interpretive overhead and with user-extendable macros. VOILA! The next page is part of the 'interpreter'. You will kindly note that the heart of the interpreter is labelled "F__TH", which is clearly NOT the same as "FORTH"!. The last page is part of the program which was (is) used in our demonstration program D3.68K. However, the code has been re-assembled using the Phase Zero assembler. So you have an example of our 'programmable calculator' language, how it is used, and a sample printout of the new assembler all at once. Unless, of course, you are too cheap to subscribe to this rag (the red paper is impossible to photocopy).

Code Listing 1

                          1          OPT     P=68000,BRS,FRS
001380                    2          ORG     $001380
                          3
                          4 * 'BEGIN' IS ENTRY POINT TO THE THREADED
                          5 * INTERPRETER.  A6 IS THE PROGRAM POINTER,
                          6 * A4 IS DEDICATED TO JUMP BACK TO F__TH
                          7
001380  3C7C 1516         8 BEGIN    MOVE.W  #START,A6      START ADDR
001384  387C 1388         9          MOVE.W  #F__TH,A4
                         10
001388  3A5E             11 F__TH    MOVE.W  (A6)+,A5       FETCH ACTION ADDR
00138A  4ED5             12          JMP     (A5)           JMP TO ACTION ADR
                         13
                         14 * 'LOAD' LOADS THE ACCUMULATOR WITH THE CONTENT OF
                         15 * THE LOCATION DEFINED BY THE VARIABLE NAME.
                         16
00138C  3A5E             17 LOAD     MOVE.W  (A6)+,A5       POINT A5 AT VAR
00138E  31DD 1902        18          MOVE.W  (A5)+,S1
001392  21D5 1904        19          MOVE.L  (A5),M1
001396  4278 1908        20          CLR.W   G1             CLEAR GUARD BYTE
00139A  4ED4             21          JMP     (A4)           RET TO F__TH
                         22
                         23 * 'STORE' STORES THE ACCUMULATOR INTO THE
                         24 * LOCATION DEFINED BY THE FOLLOWING NAME.
                         25
00139C  3A5E             26 STORE    MOVE.W  (A6)+,A5       POINT A5 AT VAR
00139E  4EB8 1536        27          JSR     ROUND          ROUND GUARD
0013A2  3AC0             28          MOVE.W  D0,(A5)+
0013A4  2A81             29          MOVE.L  D1,(A5)
0013A6  4ED4             30          JMP     (A4)           RET TO F__TH
                         31
                         32
                         33 * 'ADD' ADDS THE ACCUMULATOR TO THE CONTENT
                         34 * OF THE VARIABLE WHOSE NAME FOLLOWS 'ADD'
                         35 * AND LEAVES THE RESULT IN THE ACCUMULATOR.
                         36
0013A8  305E             37 ADD      MOVE.W  (A6)+,A0       POINT A0 AT VAR
0013AA  4EB8 11DC        38          JSR     FPADD
0013AE  4ED4             39          JMP     (A4)           RET TO F__TH
                         40
                         41 * 'SUB' SUBTRACTS THE ACCUMULATOR FROM THE
                         42 * VALUE LOCATED AT THE FOLLOWING VARIABLE
                         43 * NAME AND LEAVES THE RESULT IN THE ACCUMULATOR.
                         44
0013B0  305E             45 SUB      MOVE.W  (A6)+,A0       POINT A0 AT VAR
0013B2  4EB8 11D6        46          JSR     FPSUB
0013B6  4ED4             47          JMP     (A4)           RET TO F__TH
                         48
0013B8  305E             49 MULT     MOVE.W  (A6)+,A0       POINT A0 AT VAR
0013BA  4EB8 12F6        50          JSR     FPMUL
0013BE  4ED4             51          JMP     (A4)           RET TO F__TH
                         52
                         53 * 'DIV' DIVIDES THE ACCUMULATOR INTO THE
                         54 * VARIABLE WHOSE NAME FOLLOWS AND LEAVES THE
                         55 * RESULT IN THE ACCUMULATOR.
                         56
0013C0  305E             57 DIV      MOVE.W  (A6)+,A0       POINT A0 AT VAR
0013C2  4EB8 13B4        58          JSR     FPDIV
0013C6  4ED4             59          JMP     (A4)           RET TO F__TH
                         60
                         61 * ADD, SUB, MULT, DIV DO NOT CHANGE THE CONTENTS
                         62 * OF THE VARIABLE WHOSE NAME FOLLOWS THOSE FUNCTIONS
                         63
   # 000011D6            64 FPSUB    EQU     $0011D6
   # 000011DC            65 FPADD    EQU     $0011DC
   # 000012F6            66 FPMUL    EQU     $0012F6
   # 000013B4            67 FPDIV    EQU     $0013B4
   # 00001516            68 START    EQU     $001516
   # 00001536            69 ROUND    EQU     $001536
   # 00001902            70 S1       EQU     $001902
   # 00001904            71 M1       EQU     $001904
   # 00001908            72 G1       EQU     $001908

Code Listing 2

                          1          OPT     P=68000,BRS,FRS
001516                    2          ORG     $001516
                          3
                          4 * FIRST GENERATE THE HIRES ADR LOOKUP TABLE
                          5
001516  14AC              6 START    DC.W    TABGEN
                          7
                          8 * INITIALIZE Z FOR FIRST LOOP
                          9
001518  138C             10          DC.W    LOAD
00151A  15DC             11          DC.W    K7
00151C  13C8             12          DC.W    CHS            CHANGE SIGN
00151E  139C             13          DC.W    STORE
001520  15EC             14          DC.W    Z              Z = - K7
                         15
                         16 * CALC Z4 = K4 + K5 * Z
                         17
001522  138C             18 LOOP1    DC.W    LOAD
001524  15EC             19          DC.W    Z              Z TO ACC
001526  13B8             20          DC.W    MULT
001528  15D4             21          DC.W    K5             ACC = Z * K5
00152A  13A8             22          DC.W    ADD
00152C  15D0             23          DC.W    K4             ACC = Z4
00152E  139C             24          DC.W    STORE
001530  15F4             25          DC.W    Z4             STORE IN Z4
                         26
                         27 * CALC Z6 = Z4 + K6
                         28 * NOTE THAT ACC STILL EQUALS Z4
                         29
001532  13A8             30          DC.W    ADD
001534  15D8             31          DC.W    K6             ACC = Z4 + K6
001536  139C             32          DC.W    STORE
001538  15F8             33          DC.W    Z6             STORE Z6
                         34
                         35 * CALC Z2 = Z SQUARED
                         36
00153A  138C             37          DC.W    LOAD
00153C  15EC             38          DC.W    Z              Z TO ACC
00153E  13B8             39          DC.W    MULT
001540  15EC             40          DC.W    Z              ACC = Z * Z
001542  139C             41          DC.W    STORE
001544  15F0             42          DC.W    Z2             Z2 = Z * Z
                         43
                         44 * CALC L = SQR(K0 - Z2)
                         45 * NOTE THAT ACC STILL EQUALS Z2
                         46
001546  13B0             47          DC.W    SUB
001548  15C0             48          DC.W    K0             ACC = K0 - Z2
00154A  13BC             49          DC.W    SQR            ACC = SQR(K0-Z2)
00154C  139C             50          DC.W    STORE
00154E  15FC             51          DC.W    L              L = SQR(K0-Z2)
001550  13C8             52          DC.W    CHS            ACC = -L
001552  139C             53          DC.W    STORE
001554  1600             54          DC.W    X              X = -L
                         55
                         56 * NOTE THAT THE ABOVE CODE IS SIMPLY A SEQUENCE
                         57 * OF ACTION ADDRESS WHICH ARE USUALLY (BUT
                         58 * NOT ALWAYS) FOLLOWED BY A VARIABLE NAME.
                         59
                         60 * TABGEN, CHS (CHANGE SIGN) AND SQR ARE EXCEPTIONS
                         61
   # 0000138C            62 LOAD     EQU     $00138C
   # 0000139C            63 STORE    EQU     $00139C
   # 000013A8            64 ADD      EQU     $0013A8
   # 000013B0            65 SUB      EQU     $0013B0
   # 000013B8            66 MULT     EQU     $0013B8
   # 000013BC            67 SQR      EQU     $0013BC
   # 000013C8            68 CHS      EQU     $0013C8
   # 000014AC            69 TABGEN   EQU     $0014AC
   # 000015C0            70 K0       EQU     $0015C0
   # 000015D0            71 K4       EQU     $0015D0
   # 000015D4            72 K5       EQU     $0015D4
   # 000015D8            73 K6       EQU     $0015D8
   # 000015DC            74 K7       EQU     $0015DC
   # 000015EC            75 Z        EQU     $0015EC
   # 000015F0            76 Z2       EQU     $0015F0
   # 000015F4            77 Z4       EQU     $0015F4
   # 000015F8            78 Z6       EQU     $0015F8
   # 000015FC            79 L        EQU     $0015FC
   # 00001600            80 X        EQU     $001600