Copy Link
Add to Bookmark
Report

Issue # 28 DTACK GROUNDED Newsletter - February 1984

THE TRASH-68 ARRIVES:

YES! A real, honest Trash-68 as specified at the end of page 16 in our newsletter #10, printed 20 months ago. Who woulda believed it?

It comes from Britain via the labs of Uncle Clive himself. Sinclair plans to introduce the model this spring via mail order ONLY (wait until he gets our bill for preparing his business plan - mutter, mumble), in Britain only. By summer he hopes to have ramped production up to 20,000 a month, at which time the little gem may be introduced in the U.S.

It has 128K, a 68008, two (tape) waferettes, and four applications packages (ominously, no BASIC was mentioned). The "retail" price (mail-order, remember) is expected to be in the $500 - $600 area, less CRT. Hot diggety! You know, we have always admired Uncle Clive. Let's hope he can get production levels up to the point where you and us can each buy one. We think it would make a perfect mass-market vehicle for a "polished" HALGOL.

OOPS! DEPT:

"The price for Inter68 is $50, not $40 as stated on p.22 of issue #27... the Jul/Aug issue of the "Journal of Pascal and Ada" reports Sage II compilation rates of 1200 lines per minute when using floppies and 1300 lines per minute using RAM disk (no list files were produced). Inter68 compiles 2000 lines per minute using floppies and well over 5000 lines per minute using RAM disk... May I suggest that you seriously consider advertising in JPA?" Thomas W., Munich W. Germany

DTACK GROUNDED advertise in a PASCAL/ADA rag? We are struck dumb. Make that speechless, we've been dumb for a long time now.

We passed your performance figures along to a local Sage dealer who has been bugging us about how wonderful

Page 1, Column 2

the Sage and the p-system operating system of SofTech's is, and he immediately decided that Inter68 was not real PASCAL. In fact, he decided he didn't know anything about it despite the 8 pages or so that we have devoted to it.

The real kicker is that he then demanded to know whether you were unfairly running at 12.5MHz. Apparently he is unaware that if one claims to be the fastest (and he did claim that the Sage was), one cannot count cycles. "Fastest" is an absolute, not a relative.

p-CODE FORTRAN:

Thomas W., whose address is on the front page of issue #27, has announced the availability of FORTRAN to run under Inter68. The package costs $40 and requires an Apple II, the Apple PASCAL and FORTRAN package in addition to a DTACK board (size unspecified, but probably the same required by Inter68) and Inter68 itself. We hope that Thomas will send us more information or perhaps a review by one of his fellow Germans - the potential user community in this case is so small that it may be difficult to get a truly independent review. (How many DTACK/PASCAL folks are also interested in p-code FORTRAN? Put another way, how many FORTRAN fans are gonna want to learn PASCAL and be willing to put up with p-code?)

(We might have the wrong guy - we lost the original announcement - but the European Area DSEx Herr Direktor will get your check to the right W. German without fail.)

TRAMEIL RESIGNS:

It's true! Kindly Uncle Jack has resigned, "for personal reasons." His successor is already lined up. It is an interesting coincidence that Apple's Markulla and Commodore's Trameil departed immediately after their respective companies reached $1 billion in sales (yes, Commodore sold over $1 billion in calendar 1983!). We hereby declare that our prediction of future sales of Commodore's new product, written before Trameil departed, is hereby null and void. (Have you noticed how Apple's profits have held up now that Markulla is gone?)

BORING STUFF:

Get rich, page 2. 32-bit micros, page 12. 16081 math chip, page 19B. Mackintosh, page 12B. Transportable assembly language, page 5B. HALGOL pages 8B, 16B, 17B. Mail page 20B. IBM ennui, page 2. Pricing policy (other) page 7. DSEx report, page 17. REDLANDS page 24 (honest).

Page 2, Column 1

UNIX STUFF:

Since we are not permitted to criticize UNIX, not being a regular UNIX user, please turn to pages 14-17 of Dec '83 Dr Dobbs and see a regular UNIX user criticizing UNIX more severely than we have.

You want the bad news? O.K., here is the bad news. You may have read about all the micro manufacturers standardizing on UNIX System 5, right? That's the one which, among other things, permits two users to modify a file simultaneously. Oh, yes, the bad news: Western Electric has just signed a contract with Digital Research to develop System 6, which happens to be file-compatible with - we do not make these things up, folks - CPM/86.

You see, AT&T is about to emerge from federal restraints which prevented it from competing in the computer business, including the personal or home computer business. What do homes have? Why, telephones. Who has the address list of all those home phone owners? You know darn well who. Who wants to lease a computer, for a low monthly sum, to all those folks who now use phones? You know that one too.

What you might not know is that AT&T has (in part) reached the same conclusions that your FNE has regarding the future of the mass-market UNIX system, and is covering its bet with CPM/86 compatible UNIX System 6. Why else the pact with Digital Research for System 6, we ask?

(A story predicting AT&T's home/personal computer strategy was printed in Sept '83 DATAMATION on page 70. The author assumed that housewives were going to use UNIX to re-calculate recipes. Sure.)

IBM PC WATCH:

We sense that 99% of the PCs are being purchased for purely three-piece suit purposes. Others, including several of you readers, have told us "Not so!", suggesting vistas of PCs in laboratories, PCs in schools, etc. Well, the editorial staff at Softalk magazine, the IBM edition, agree with us. The last three months one turns to the back of the magazine to read "Softalk presents the bestsellers" and sees 1-2-3 with its usual 36+% of the market, then two word processors, a data base management program and a communications package in the next four places. One sees Microsoft Flight Simulator, which is not really a game, as the highest-rated non-business software package in tenth place (and dropping) with 3.6% of the market. There is only one game (Zork I) in the Dec. list and it is in a three-way tie for last place with 1% of the market.

Page 2, Column 2

If you read the editorial material accompanying the bestseller list, you will immediately notice a sense of frustration on the part of the editorial writers. Last month they wrote about a spreadsheet, two word processors, a data base system and a communications package. This month the same. Two months ago the same. Next month, the same. WHOOPEE, HOW EXCITING! Two quotations from the Dec. bestsellers column:

"The overwhelming business orientation of the pc can be deduced from the weakening sales of Home Accountant Plus, which earlier was one of the leading software sellers. Inasmuch as no home finance package has come forth with a serious challenge to H.A.P., its relative weakness must be attributed more to the business orientation of the computer than to diminishing popularity or strengthened competition."

And: "1-2-3 is so strong, its market share is larger than that of all American car manufacturers combined. 1-2-3 is so dominant, it has a larger share than Standard Oil before it was broken up. 1-2-3 has a bigger market share of spreadsheets than IBM has of mainframes."

PCs in laboratories? Education? We will agree, but only after adding the phrase "all seven of them". Just turn and look inside the back cover of Softalk AND LOOK AT WHAT IS SELLING! The number of PCs being used by persons not wearing a tie and a vest is statistically insignificant.

For our obligatory harangue about the virtues of assembly language mass-market application programs, we turn to a December '83 issue of INFOWORLD. Volume 5, issue 51 to be exact. In the table of contents, under SOFTWARE, we find "Infoscope: A blindingly fast data-base manager". BLINDINGLY FAST? We like it already. So we turn to page 55, and right off we read, "'No higher-level languages spoken here,' laughs Jeff Garbers, a software designer for Microstuff." More:

"To illustrate Infoscope's speed, Garbers cites an advertisement taken out recently by another data-base-manager publisher. The ad claims that the competitor's product can alphabetically sort 1000 records in 59 seconds and boasts that this is five times the speed of dBASE II.

"'We can sort the same records in three seconds," Garbers states bluntly."

So why do we need a fast data base management program? "According to Garbers, the simple user interface and quick response time allows you to work with Infoscope data in an improvisational manner... 'you can explore,' he says."

Page 3, Column 1

Look, the three-piece-suit environment is a time-is-money environment. No manager in his right mind wants to wait unnecessarily for an answer. The key word in that last sentence is "UNNECESSARILY". If ALL the UNIX folks agree that they will bust their operating system, then the managers have no choice but to use some other operating system like MS-DOS. The managers have done that. If the managers want a fast integrated spreadsheet they have no current choice but to buy 1-2-3. SOME of them (ahem!) appear to be doing so.

And now we have a data-base program written by a guy who doesn't like HLL, and which sorts in three seconds what dBase II sorts in five minutes. O.K., P-code fans, go compete against that program with PASCAL. Write your PASCAL in C to keep Ma Bell happy. Write the C in COBOL to please the data processing managers. Write the COBOL in Ada to meet mil specs. Oh, yes: good luck! You're gonna need it.

DATING INFOWORLD:

You might have noticed that we did not give you the date of INFOWORLD Volume 5, Issue 51. That's because each edition of INFOWORLD has TWO dates. Also, two issues of INFOWORLD can have the same date and yet not be the same issue. Confusing? It sure as hell is!

(INFOWORLD places a later date on the store copies to give them a longer "shelf life". This stratagem will fool only, well, fools.)

BEN ROSEN WATCH:

Ben used to write a newsletter covering the small computer industry. Lately he has teamed up with some other venture capital guys and formed the "Sevin-Rosen" investment group. They are the money folks behind Compaq, Lotus and now an outfit in Santa Monica called "Deckhand" or something similar. Compaq is the quintessential PC clone, Lotus publishes an obscure spreadsheet called 1-2-3, and "Deckhand"? Well, it's like this:

Apple stole multiple windows - and a lot of employees - from Xerox's PARC. After filing the serial numbers off, Apple presented the concept as its own invention in LISA. Although sales of LISA and all those multiple windows have been, um, disappointing, lots of folks are excited about multiple windows. So Microsoft and Digital Research are battling with multi-window software packages. There is just one little problem: as of now the total number of applications programs which run with either the Microsoft package and the Digital Research package is - TADAA! - zero.

Being an ex-newsletter writer Rosen is quick to pick up on trends, so Sevin-Rosen raided the programming staff

Page 3, Column 2

of a computer outfit in Santa Monica and set them up as "Deckhand". "Deckhand" has its own multi-window software package (DesQ) AND there are four applications for it.

Some of the other venture capitalists are getting tired of Rosen getting most of the ink and a larger share of the profits than those others would like. A bright person might want to take advantage of that fact. How?

WANNA GET RICH?

You CAN, you know. Provided you are a good programmer, willing to go honey-dipping, and know how to approach a venture capitalist. All you have to do is write the next best-selling PC program. No, not next-to-best, the next, best. Since the fourth largest selling PC program will be a communications package, the third largest a data-base manager, and the second largest a word processor (soon word-processor cum spelling checker cum dictionary cum thesaurus) that means that you have to write an integrated spreadsheet and knock off 1-2-3.

How can you do that? Simple. 1-2-3 does not make use of hardware math superchargers, so it is a whole lot slower (when recalculating all the cells) than a spreadsheet that DOES. Using that 8087 socket doesn't sound so original? No, but nobody is taking advantage of that socket yet in a spreadsheet. Besides, our suggestion doesn't stop there.

You should not only make use of an 8087 for calculating most of the transcendentals, you should ALSO use a Nat Semi 16081 for performing the simple dyadic functions, such as A = B * C because it is 2 1/2 times faster than the 8087 (when working with the 8088, which is what we are talking about now). We remind you that the three-piece-suit marketplace is a time-is-money marketplace, and that 2 1/2 times speed advantage is IMPORTANT! Also, you will want that 2 1/2 - 1 edge over the unimaginative dummies who will just use the 8087.

If you will write an integrated spreadsheet in assembly and using BOTH the 8087 and the 16081, you are ALMOST a wealthy person. The final step is to know how to approach a venture capitalist. We happen to know how to do that, but we know that you won't believe us. So let us establish our credentials:

In 1968 the company in which we owned 45% of the stock was acquired by a conglomerate. The wedding was blessed by a Beverly Hills-based brokerage house, which naturally got 5% of the action. The final papers were signed in the north-of-Wilshire private residence of an assistant in that brokerage house, who oddly enough happened to collect works by the very same sculptor favored by the big cheese at the brokerage house.

Page 4, Column 1

In 1973, that same (former) assistant was living in the Soho district of London. Yes, the one in England. He was living there because he owed at least $600,000 that he couldn't pay. We know because $300,000 was owed to us. It seems that one heckuva recession hit in 1972, and the conglomerate suddenly became spectacularly unprofitable. No sweat, they had a long-term credit arrangement with a bank consortium. Then the president of the conglomerate pulled a truly momentous boner: he violated the credit agreement by buying another company for cash. That placed the conglomerate in technical violation of the credit agreement and the banks immediately pulled the plug. The stock dropped from $42 to $1, and that assistant happened to be holding our "put".

In 1973 the Soho district of London was where the high-priced call girls lived. We suppose an expatriate relative of the late, former Shah of Iran is living in that north-of-Wilshire former residence of that former assistant these days.

During the signing ceremony at that north-of-Wilshire residence in 1968 we were handed an original piece of sculpture to examine. It was bronze, about ten pounds as we recall. It was the lower torso of a woman, from the navel to halfway down the thighs. One of the thighs was lifted radically upward and a little way out, prominently displaying the genitalia. This is actually a famous piece of (modern) sculpture. We have seen photos of it in art books. That's books, plural. (It seems that modern sculptors cast about 50 numbered "originals" before destroying the mold.)

The above story is true. Now let us tell you the correct way to approach a venture capitalist with your entirely original idea. You say to him:

"How would you like to yank some hair out of Ben Rosen's nose?"

IBM FINANCIAL WATCH:

In early Dec, IBM's chief financial officer (Allen J. Krowe) stood up in front of some New York financial analysts (probably the same bunch Scully lied to a month earlier). He proceeded to make some uncharacteristically (for IBM) specific predictions for the coming year, 1984. Among other things, he predicted that IBM's shipments of personal computers would triple in 1994. Oh, yes: IBM has NEVER been known to deliberately lie to financial analysts. (Usually they just don't say much.)

Apparently all the financial analysts interpreted the IBM spokesman's words as meaning that sales of the PC

Page 4, Column 2

would triple in 1984. They believe more than 800,000 were shipped in 1983 and that lBM is predicting shipments of 2.5 million PCs in 1984. Now, those analysts are a lot smarter than we are but we interpret IBM's chief financial officer's prediction differently. We believe he was speaking of combined sales of PC, PCjr and Peanut.

If OUR interpretation is correct, pressure on the makers of PC clones will NOT be due to ready availability of the PC. (We trust that ALL of our readers understand that the continuing shortage of PCs is opening the door for those clones.) Pressure on the makers of the clones will come from the makers of other clones! There are too many of them. A store which already carries the Chameleon, Compaq and Eagle mostly won't be interested in carrying yet another brand - and there are MANY other brands, with more appearing daily.

Apparently IBM intends to refer to both of its new low-end models as the PCjr. We insist that they are sufficiently different to warrant differing names, so we will continue to refer to the littlest one, the one without a disk, as the Peanut. We don't think that IBM is going to sell many Peanuts, judged by mass-market standards. PCjrs MAY sell well, if they prove to be useful at home for persons who have PCs on their desks at work.

It might be well to keep in mind that the only personal computer that IBM has yet introduced which has done well in its ORIGINALLY TARGETED marketplace is the PC/XT. And the PC/XT is a minor variant of a computer which was originally targeted at the Apple II as a 16K cassette-based home computer. The success of Peanut and the PCjr is yet to be proven. We don't think the success of Peanut will EVER be proven.

The old doggerel goes, as you proceed through life, my friend, whatever be your goal, keep your eye upon the doughnut, and not upon the hole.

It would be a good idea to keep in mind that the continuing and increasing success of the PC is based on the fact that the computer is USEFUL in a business environment. The business environment is a TIME-IS-MONEY environment, and it always WILL be. Given a choice of several prettily-packaged but functionally equivalent application software, the one which runs fastest will be the one that sells into this market.

The businessmen who are buying 1-2-3 do not know about the wonderful theory behind HLLs such as maintainability and transportability nor do they give a damn how hard it is to find good assembly language programmers. They just want to get the job done, NOW. There really IS an opening for a faster integrated

Page 5, Column 1

spreadsheet, and it really IS a good idea to include a 16081 math chip with that package in addition to the 8087.

How did managers get along without these tools in the past? They had lots of high-priced flunkeys called middle managers to do the work. 1984 is the year when middle managers will begin to line up at the unemployment office. The lines will get longer in 1985. In 1990 there won't be any middle managers.

MILLIONS OF PROGRAMS:

Back in 1972 DATAMATION asserted that the number of payroll programs written actually exceeded the number of computers that had been sold. That was BPC (before personal computing). Lots of folks out of those old-fashioned data processing environments still think in that implied fashion. Reader John B is especially vociferous in asserting that it is simply not possible to program, in assembly, the massive number of applications programs that will be needed for the massive number of personal computers being sold.

WHAT massive numbers of programs? The IBM PC market needs ONE integrated spreadsheet, ONE data-base manager, ONE communications package, and TWO word-processing packages (WordStar and a WangWriter emulation - MANY secretaries and typists have been trained on a WangWriter wordprocessor). John B has it EXACTLY BACKWARDS: as more and more software-compatible computers are sold, there will be FEWER programs needed. The realities of the mass marketplace, will expel inefficient programs.

While everybody has their eyes on the hardware marketplace waiting for the shakeout to eliminate everybody but Ford, Chevy and Chrysler exactly such a shakeout is actively in progress behind their backs in the software marketplace. And it is driving the staff at (IBM) Softalk magazine nuts.

John B asserts that the office of the future is turning into silicon (true), that integrated office software will be needed (true), that such software is highly complex (true) and that, therefore, the silicon office MUST be programmed in HLL because the vast number of assembly language programmers that would otherwise be needed are not available (totally false). He even asserted that it was impractical to program such a complex program in assembly.

Sigh. First, the silicon office CAN be programmed in assembly. It HAS been. The CBM 8096 (that's the Commodore 8032 like we have but with an extra 64K of bank-select memory) was the largest-selling small business computer in England a while back because of an integrated office software package called (surprise?)

Page 5, Column 2

Silicon Office. That's about a 56K object code assembly language program. That's a non-trivial program, done COMPLETELY in assembly.

Secondly, we only need enough assembly language programmers to write ONE American-version "Silicon Office", NOT "thousands of programmers" because only ONE program will succeed in the evolving mass marketplace, and that is the one which works best, meaning fastest in that TIME-IS-MONEY environment.

(TWO wordprocessing programs are currently dominating the PC software marketplace because there are lots of folks familiar with Electric Pencil and its descendents (e.g. WordStar) and also lots of folks trained to use the Wang office products of which WangWriter is typical. Not surprisingly, sales of WangWriter (a dedicated word processing machine) have dropped way off lately because of competition from personal computers. Everyone at Digital Acoustics refers to the office Eagle II as "the word processor" as in, "can I use the word processor now?" One can purchase six Eagle IIs for the price of one WangWriter.)

We were not kidding earlier about you having an opportunity to become rich. 1-2-3 is not an optimal integrated spreadsheet since it does not make use of the 8087. That is going to prove Lotus' undoing one day when somebody else gets smart and yes, that WILL cause Ben Rosen some discomfiture. dBase II is a grotesque antique sitting there just waiting for somebody to knock it off (somebody may just HAVE). The two word processors are less vulnerable because they are ALREADY written in assembly, as good wordprocessors always have been. We don't know anything about the communications package.

Maybe you P-code enthusiasts can program a doughnut-formula program for your local doughnut shop?

The last outfit to try and make it big with Pascal was Apple Computer with a product called LISA. You all know how well LISA is selling.

[The following conversation with P-code Charlie is fictitious.]

PcC: Is that CBM 8096 STILL selling well in England?

FNE: Better than you might think. The British mags still carry large ads for the machine.

PcC: So what IS selling well in England?

FNE: The Victor 9000 in its Sirius guise and an obscure personal computer made by an outfit called IBM seem to lead the pack these days in the business market for small computers.

Page 6, Column 1

PcC: AHA! Both those machines use 8088s, and therefore are not compatible with the 6502 code that SILICON OFFICE is written in. So Bristol Software locked themselves out of the emerging 8088 marketplace by writing their integrated software package in 6502 code! What (if anything) is Bristol Software selling these days?

FNE: Actually, they're selling SILICON OFFICE for the Sirius and the IBM PC. And it's still written in assembly, so it still runs fast.

PcC: But assembly isn't transportable!

FNE: Apparently Bristol Software doesn't know that.

SHORT STUFF:

Tandy has a new personal computer called the Model 2000. Monroe, until recently a part of Litton Industries, has a new System 2000. The Tandy machine uses the Intel 80186 and so does the Monroe. The Tandy machine has 400 X 640 graphics and so does the Monroe. SAY! You don't suppose...

There is a lot of this going around. The new Leading Edge PC clone is the same machine as the Sperry PC clone. Neither company makes the clone; Mitsuwhatchamajigger in Japan makes it.

When two companies sell the same machine the price is the same, right? Well, no. It seems the Monroe name is worth about $700 (or 23% more) than the Tandy name. We don't know how much more the minicomputer folks at Sperry think the Sperry name is worth, and frankly we don't care.

(Actually, the Monroe machine includes a Z-80 card and the Tandy machine doesn't.)

TODAY IS DEC 26, and wow, look at the bargains being advertised in the L.A. Times. One of the bargains is a big ad offering LISA for sale for $5495. The ad is from an authorized Apple dealer, namely Computique, formerly Olympic Sales. To the several persons we know of who paid $9995, congratulations! To the rest of you: look for LISA at WAY under $5000 (discounted) before a year has passed. In fact, you may see LISA at a LIST price under $5000 before a year has passed.

It appears that those persons who suggested, upon LISA's introduction, that the computer was overpriced and could be sold for $6000 were correct.

Q & A TIME:

Q: Does the Grande have the "zero page" fix like the static board has?

Page 6, Column 2

A: Yes.

Q: Is the Grande fully socketed?

A: Yes, but the only sockets we guarantee (warrantee) are the ones we sell with DRAMS in them. On the other hand, we don't do anything silly like drill holes in the unpopulated sockets. Commodore really did that for a while over two years back. Honest.

Q: Is the Grande set up to use 256K DRAMS?

A: No. The second-generation 256Ks are not yet available, and WON'T BE at practical prices for two years. We don't know what the timing of those parts will be or how much bypassing will be required.

Q: Can the Grande be expanded beyond one megabyte?

A: Yes and no. Only one piggyback expansion board can be installed, so the basic board is indeed limited to a megabyte. But the expansion port permits up to another 15 megabytes to be installed IF DRAM expansion boards were available - and they aren't, yet. There's nothing hard about making memory expansion boards, each with its own piggyback board so that each is good for another megabyte.

But we do not make such expansion boards now nor do we have immediate plans to do so. When it comes to memory expansion boards, we let the marketplace guide us. Remember, we did not offer 128K expansion boards for the static RAM systems until some folks waved genuine coin-of-the-realm under our nose.

We pay (no pun intended) CLOSE attention to coin-of-the-realm. We also ignore idle inquiries.

Q: Has PHASE ZERO fixed their Apple-68000 cross-assembler to work with the Grande?

A: The PHASE ZERO cross-assembler actually runs entirely on the Apple. You don't need a 68000 board at all, so which one you have is irrelevant. The Applesoft file UPLOAD probably will not work with the Grande, but we have never - not once - used UPLOAD. If you remember that the PHASE ZERO assembler tacks eight extra bytes onto the front end of the object code, you will be all right.

Suppose that you have a PHASE ZERO object file on disk 2 assembled to run at $2000 on a DTACK board. These two lines will get the code into the 68000, using either UTIL4 (static board only) or UTIL7 (both static and dynamic RAM boards):

     200 PRINT CHR$(4);"BLOADCODE.OBJ,A$5FF8,D2" 
210 CALLQ:REM07 002000 6000 1800

Page 7, Column 1

Note that we load the code 8 bytes lower in memory than we send the code. This strips off the extra 8 bytes. The person writing the lines above is supposed to know that the code was assembled to run at $2000 in the 68000 and that there are 6K bytes ($1800) to send. If you don't know where the code is assembled to run and how big the file is, just execute line 200 and drop into the monitor. 5FF8.5FFF will print the address (4 bytes) and the code size (4 bytes).

Actually, we ordinarily execute line 200 (for instance) followed by:

     210 PRINT CHR$(4);"BSAVECODE.O,A$6000,L$1B00,D1"

This gets the object file on the destination disk in D1 without those extra bytes. All of the demo software we provide was prepared in this manner.

MORE PRICING STUFF:

Last issue we told you about our sales policy. This month we are going to tell you about somebody else's. The product to be discussed is real, the pricing ratios are real and the product plugs into an Apple II computer. But we have slightly changed the numbers (without changing the ratios) to disguise the product.

This product is nationally advertised, is sold in (some) retail stores and has a list price of $1500. Retailers pay $1000 for this product. We will suppose that you are a retailer who has purchased several of these devices for resale. One day someone comes into your store and thumbtacks a notice on your bulletin board. It seems the company which makes this gadget is giving a talk to the local Apple computer user's club and is offering a 30% discount on their product at this meeting - and 30% off $1500 is, um, $450 for a net price of $1050.

You (the retailer, remember) suddenly find competition only $50 more than YOU paid for that gadget! And they are advertising on YOUR bulletin board! Now, we KNOW how YOU feel about this. What we don't know is how our other readers feel. So, let's ask them:

THE TRUE PRICE OF THIS PRODUCT IS:

[ ] $1500
[ ] $1050
[ ] $1000
[ ] THIS IS CRAZY!

Those who checked the latter box are wrong. The fact is, the above (completely true) scenario is how the real world works. We at Digital Acoustics, who place one price and one price only on our products, are the ones who are crazy

Page 7, Column 2

In the last issue we told you we had an OEM customer who had spent $300,000 with us in the preceding year. What is an OEM customer if we have one price? One who pays $50 less per system (Grande) because he doesn't need manuals and demo disks and such. Yes, we DO offer the same terms to our other customers, so we continue to have just one price. Crazy, man!

THEM LONG LEAD TIMES:

Because we try hard to bring stuff to you as quickly as possible, our little rag has about as short a lead time as ANY (roughly) monthly publication. That means we personally do all the editing and don't take an extra two weeks for somebody else to carefully proof and format this newsletter. The result is a higher number of goofs than would otherwise be the case, but the shortest lead times around. Despite this, there are times when we are running nearly two issues ahead of you - even if you are a paid subscriber in the U.S.

While the Nth newsletter is at the printers, you will have finished reading issue N-1 and we will already be writing issue N+1. Imagine the lead times at a professionally produced, slick national magazine with advertisements. The editors will COMMONLY be working at least 4 months ahead of the reader. At least.

The reason we bring this up is a misunderstanding we had recently with a member of the editing staff of UNIX REVIEW. We have written in this newsletter that UNIX REVIEW did not carry anything of interest to the person who gets dirty hands on a UNIX keyboard. Well, that happened to be true of the first couple of issues, which were the ones we read most carefully.

There are now more issues out, and the last couple DEFINITELY DID have some stuff about the user. Evidently the magazine has changed its focus. Or expanded its focus as it added more staff, maybe. And remember that the editorial staff is working about four issues ahead of the readers, including your FNE. So that editorial staff member has probably seen SIX issues in progress with user-related material and doubtless thought your FNE was a dunderhead, which is true. But what we wrote was correct at the time we originally wrote it.

Nevertheless, it continues to be true that UNIX buyers are honchos shopping for a piece of gear to chain 32 peons to, and that UNIX users are mostly involuntary types who have been chained, during working hours, to a UNIX machine whether he/she likes it or not. No person not already familiar with UNIX could possibly read the tutorial on a UNIX text editor in the most recent issue of UNIX REVIEW and conclude that UNIX was desirable. (Some folks who ARE familiar with UNIX are gonna take strong exception to that last sentence. Sigh.)

Page 8, Column 1

IW QUESTIONS UNIX:

About 18 months after we told you that UNIX is unsuitable for the mass personal computer marketplace, INFOWORLD has come out with a cover story on the subject. While IW has not whole-heartedly adopted our viewpoint, they are a lot closer than the "UNIX IS COMING!" stuff that prevailed a year to a year and a half ago. IW asserts that 1984 is the year when UNIX will be placed before the mass-market public. We think it arrived in 1983 and has already been rejected.

Read the IW cover story yourself. It's the issue of a little kid framed in a huge floppy disk labeled UNIX. (Good luck running UNIX on a floppy disk, kid!) We will only mention one little item from the story, and that is the assertion that MS-DOS is migrating towards XENIX, which is UNIX less the 5 megabytes of useful utilities. The story by John Markoff asserts that IBM is moving away from MS-DOS (= PC-DOS) for that reason. You see, XENIX almost equals UNIX whose rights are owned by AT&T, and IBM and AT&T are headed for a shootout.

We mention this because others have pointed out Microsoft's public announcement that their MS-DOS (written in assembly and VERY popular) is headed towards UNIX (written in C for the chosen few), via XENIX. That public announcement was made at a time when Mini-Micro Systems magazine seriously predicted that Microsoft was going to sell THREE BILLION DOLLARS' worth of XENIX licenses in 1983 - and all the gurus (we ain't a guru) were shouting agreement.

Under such circumstances, if Bill Gates believed those predictions or even PART of them - and he evidently did - NATURALLY MS-DOS would be publicly announced to be moving towards UNIX, er, XENIX. Also checkbook balancing programs and recipe computing programs (the ones which tell you to use 2.333333333333 smidges of a seasoning for 7 people).

As soon as Bill Gates realizes that MS-DOS moving towards UNIX (er, XENIX) means bye, bye IBM, MS-DOS will execute an IMMEDIATE right turn. The trouble is, Bill doesn't catch on as quickly as he used to. Either he is getting senile or he is surrounded by too many yes-men. The last guy who said no to Bill happened to be the (then) president of Microsoft, Townes by name. Shortly after saying "no" to Bill, Townes was no longer employed by Microsoft. Bill Shirley, formerly personal computer sales manager for Radio Shack, now fills Townes' former position.

It is rumored that Shirley's mantra is "Yes, Bill. Yes, Bill. Yes, Bill..." No, the rumor does not assert that he is chanting to himself.

Page 8, Column 2

WELCOME ABOARD DEPT:

Another writer who has privately been highly critical of OUR opinion that UNIX is unsuited for the mass computer marketplace has finally noticed, in print yet, that those UNIX systems which are available (Fortune, Wicat, Tandy 16 etc etc) are not successful. But he thinks it's the price tag that is holding back buyers. Wrong. It is the 1200 page manual that inhibits the mass-market purchaser.

YOU WILL PAY ATTENTION:

Most of the readers of this newsletter are not typical members of the mass personal-computer marketplace. You will please give us credit for knowing this? UNIX is in fact a suitable operating system for full-time computer professionals, especially full-time programmers. Since many of you readers are in that latter category, UNIX may be the perfect operating system for YOU! Too bad you can't personally afford to buy a good UNIX-based machine - yet.

But even when hardware prices drop to $1.87 for a good UNIX-based machine, that 1200 page manual is going to keep UNIX a system suited exclusively for full time computer professionals.

As of today, UNIX has the additional handicap that the purchaser and the user are not the same persons.

HALGOL REPORT:

Having passed 12K of object code, HALGOL was becoming somewhat unwieldy to work with. Also, it was IMPOSSIBLE for TWO persons to work with the code. So, we broke the code up into four groups and arranged matters so that each of the four groups could be assembled independently of the others. And, by 'freezing' all but the last file of the disk, it is now possible for two persons to work on debugging and extensions to the code simultaneously.

Each disk contains a number of text files of source code, each of which "chains' to the next source file in the sequence. The first file on each disk, in general, contains some global "equates", a jump table to the important routines on the disk, and some other equates adapted from the jump tables on the other three disks. It is these jump tables which permit separate assembly of each of the four disks.

The first disk contains the floating point and transcendentals as printed in REDLANDS in issues #15 and #16. (They have been re-assembled and slightly modified.) Also, the first disk contains the floating-point print routine printed in issue #13, modified for use with the 62-bit FP format, and the numeric input

Page 9, Column 1

routine printed in issue #24. Along with a few miscellaneous tables, that comes to a little over 4K object code. The first disk contains mostly mature code which will change infrequently. As other portions of the HALGOL code achieve mature status, they will migrate to the first disk.

Incidentally, a 143K Apple II diskette can hold source code equivalent to about 7 or 8K of object code.

The second disk contains HALGOL run-time code. Pages 23 thru 28 of issue #17 contain some typical run-time code which is almost identical to the code we are still using. The second disk also includes the code used to LIST the run-time code along with some utility (or library) functions common to the LIST code.

The third disk contains the screen editor - something a lot of you Apple types have never used or seen - plus a bunch of library (or utility) routines that are used during program entry and editing.

The fourth disk contains the cold and warm start entry points plus the parsing code for the HALGOL commands and functions.

This reorganization took three weeks to accomplish, including improving the documentation (mostly the comments in the source listing but also a document listing the above information in much greater detail). It is now possible for a person with a 28K DTACK board to enter, list and run a HALGOL program. (If you have less than 28K, forget it!)

As Bruce C. wrote a few issues back, writing a real, honest programming language is not a simple task. In fact, he predicted that we would not be able to bring it off (a reasonable prediction assuming your FNE is the only person working on the language). Sorry, Bruce, we cheated. That is, we have a full-time computer science graduate whose sole duty is to implement HALGOL. AND, now that we have some hardware stuff out of the way for the time being, WE (your very own FNE) are getting OUR hands dirty on the code too. (Make that VERY dirty; we have actually skipped some NFL playoff games! That's clear proof that HALGOL has a high priority at Digital Acoustics!)

Incidentally, the combination of a relatively inexperienced programmer who is a computer science graduate (him) plus a very experienced, especially in assembly language, programmer with no knowledge of computer science seems to be working well. Both of us are happy with the way the project is going and we think YOU will be too, as soon as we can LOAD and GAVE a program and we have the LET (formula) function working. That's when we will send you your last free diskette.

Page 9, Column 2

SELECTING THE OUTPUT:

HALGOL includes much more sophisticated methods of redirecting the output to various devices, methods which are nevertheless simple to use. (The PR#1 and PR#0 that the Apple uses are unbearably crude.) It's like this: HALGOL provides three kinds of output, LIST, PRINT and SYS, or console output. Upon a cold start, all three are directed to the CRT. If you want to list your program on the printer, SELECT LIST 1 will direct program listings to device 1, the printer, instead of device 0, the CRT. Printed data and system output will continue to go to the CRT. If you want to re-direct listings to the CRT, key SELECT LIST 0. Unlike the Apple, hard copy is not duplicated on the CRT.

You can also SELECT PRINT #, either as a command or as a function (within a program). The device selected for printed data has no effect on where the system output (console) or where listing will go. Similarly, the SYSOUT can be selected: SELECT SYSOUT #.

So far only devices #0 and #1 (CRT and hard copy printer, respectively) have been implemented. We suppose it should be possible to print to a serial port or to a disk as well.

If you do not understand what we mean by system output, prompts and error messages are sent to the system output.

We will later implement SELECT INPUT. At the moment the keyboard is the only INPUT device, and will continue to be the cold-start default input device in the future. Other input devices? Why, a serial port comes to mind, no? If INPUT and PRINT can be selected as serial ports, a communications package could be written in HALGOL rather than assembly. (And to think that we have been unjustly maligned as being opposed to high level languages!)

How do we direct different kinds of output to different devices? Well, we have three 32-bit registers in memory called LISTER, PRINTER and SYSOUT. Each contains the address of the device driver code for the particular kind of output. To print a character we first make sure that the address contained in the register named PRINTER has been moved to scratch address register A5. Then we place the character to be printed in D7 and JSR (A5). Nothing to it.

THE ACTIVE DEVICE:

If you have been paying attention, you will probably have wondered whether we have three separate sets of utility routines (such as HEXPR), one for each kind of output. Nope. We have an additional 32-bit register

Page 10, Column 1

in memory called ACTIVE. When the LIST command is executed, the first thing that happens is that we MOVE.L LISTER,ACTIVE. The PRINT command and each PRINT function begin with MOVE.L PRINTER,ACTIVE. The system prompting and error reporting routines begin with MOVE.L SYSOUT,ACTIVE.

All of the output drivers simply move ACTIVE into scratch address register A5. Like we said, nothing to it. Right, Bruce?

Since all commands and functions ASSERT the appropriate ACTIVE device, there is never a necessity to concern oneself with RELINQUISHING ACTIVE, and we don't.

MINI-MICRO WATCH:

We simply LOVE the enormous quantity of factual information which can be found in Mini-Micro. In the Dec '83 issue on page 66 we discover that the number of single-user microcomputers DECLINED in 1983. The number of dedicated word-processing microcomputers (including our two Eagle IIs in our judgement) DECLINED in 1983. On the other hand, professional workstations showed modest growth in 1983 and multi-user systems showed stronger growth in 1983.

In the future, the former two categories are predicted to show continued decline, with the number of single-user systems declining almost to zero by 1988. In contrast, multi-user systems are predicted to show astonishing gains in the 1985-1988 time frame. The operating system for these multi-user systems, the ones showing astonishing gains? Why CP/M, of course. Yes, CP/M and NOT CP/86 or CP/68K or MS-DOS or even UNIX.

Let's see now: Mini-Micro is directed to an audience of folks who market multi-user systems but who HATE microcomputers like the IBM PC because they can't make any money off them. You don't suppose that this influenced those predictions a tad, do you?

(We just KNOW that about half of our readers will believe that we are making this up. Nope. Check page 66, Dec '83 Mini-Micro Systems magazine.)

Some of you may be wondering by now why Mini-Micro is so screwed up so often. Simple. Mini-Micro is a SALESMEN'S magazine (saleswomen too few in this area to be statistically significant). You strip the bullshit away from a salesman and all you have left is a tiny piece of lint. Salesmen lie as a matter of course; it's part of their job. We once spent a memorable hour at a table next to five real-estate salesmen early one Friday evening. In that time, they went through five rounds of drinks - on empty stomachs. With each round, the deals got larger and their voices grew louder. By the time we were ready to leave, the deals were up to

Page 10, Column 2

the $350,000 range (in 1976 dollars) and there were LOTS of those deals. When we called for our check, the waitress leaned over and whispered, "The big shots behind you are keeping separate checks!"

You will find no one at Mini-Micro magazine who is the least bit contrite over that ridiculous prediction that Microsoft was going to sell $3 BILLION in XENIX licenses in 1983 because that was salesmen's bullshit. Salesmen never worry about getting caught in last year's lie because they are busy pushing NEXT year's lie - such as sales of single-user micros dropping to near-zero by 1988.

Some of the stuff in Mini-Micro is actually correct. The trouble is, there is no way (strictly within the context of the magazine) to separate the bulishit from the stuff that is correct - and that, friends, means the salesmen are doing their job properly.

(Do you realize how many folks believe anything and everything they see in print?)

COMMODORE WATCH:

This is being written on Dec 29. By the time you are reading this, the Jan Las Vegas Consumer Electronics show will be over, and Commodore will have introduced two major new products. One will be the $695 Z8000 UNIX (well, COHERENT) machine. The other will be a machine midway between the C-64 and the new $69S UNIX machine, with lots and lots of built-in software via ROM. Don't be surprised if the $695 UNIX machine is introduced at $995. Remember, the C-65 was introduced at $595. Kindly Uncle Jack DOES like to skim a little cream before going to the REAL price.

Aside from "lots of ROM" we don't know much about the midrange machine except to agree with somebody's prediction (Uncle Jack's?) that it will outsell the C-64, which means that Commodore's sales and profits will continue (for a while) to double yearly. That means that 1994 is the year Commodore's sales surpass the Fortune 500 level. (Scuttlebutt says Apple is planning several hundred layoffs. Will Apple be the company on the Fortune 500 list that Commodore displaces whenever the Fortune editors get around to acknowledging Commodore's success?)

The cheap Z8000 UNIX machine will sell several tens of thousands of copies in the next year or so. Not the next month, the next year. By Uncle Jack's standards, that is a failure. It will attract a small band of fanatical followers, as the SuperPET has. (The SuperPET is another Commodore failure.) This small band will be the gullible chumps who think running UNIX (COHERENT) on floppy disks is a great idea, especially for less than $1000.

Page 11, Column 1

HEALTH ALERT:

The nation's suicide rate will increase dramatically toward the end of 1984 as all of the micro industry pundits who have been claiming that high prices were the only reason UNIX was not becoming popular auto-defenestrate.

APPLE III STUFF:

Several persons have asked us, including one of Digital Acoustic's employees, what is to happen with the Apple III now? We thought we explained that to you in the last issue.

The Apple III has been set up as an independent business unit so that its profitability, whether positive or negative, can be easily monitored. If the business unit continues (?) to be profitable, then the Apple III will continue to be sold. If it is unprofitable, the plug will be pulled. It is that simple.

The presence or absence of other products of the Apple Computer Co. is irrelevant. Profits are relevant. Setting up a product as an independent operating unit is a very obvious (to business persons) signal that the time has come for a product to make it on its own - or else. The person who will make the decision has absolutely no emotional attachment to the computer, having arrived at the Apple Co long after the development and introduction of the III was history.

Surely you do not think that the Apple III will last (be manufactured) forever? Surely you do not think that ANY product will be manufactured forever, especially a COMPUTER?

STRINGS AND THINGS:

In reply to our request for discussions of strings, we get a 13-page hand-written tutorial on the subject. (Fortunately, the author's handwriting is legible!) The author is Faithful Freeloader Tim L of Richland, WA. There is only one problem: Tim mentions fixed length strings only to dismiss them. The remainder of his tutorial is a discussion of the many ways of fighting the garbage collection problem.

(We just went back into those 15 pages to find a quotation to back up the above point. It seems Tim did not dismiss fixed strings, he just sort of slid by them.) Well, IEEE Spectrum magazine doesn't think it is possible to have string functions without garbage collection either. If we did not have TWELVE YEARS personal hands-on experience with a BASIC with no garbage collection we might agree.

Page 11, Column 2

Tim is no dummy though - he DOES point out, accurately, that a BASIC program is, in part, a collection of strings. And as the program is edited, "garbage" is indeed collected. The same is true of HALGOL, and a strategy is indeed required to collect the garbage in the program itself. (Make that semi-required. The major portion of the garbage is eliminated in real time as the program is edited.)

Tim does not mention owning a specific personal computer and so he may not know that Applesoft has a fatal, as in crash your program and burn your data, bug in its garbage collection routine. He may also not know that one of the more advanced techniques he mentioned to speed the process of garbage collection is standard equipment in our CBM 8032. And he obviously either does not know or does not appreciate that the problem can be avoided altogether when running a program.

Here are the principal arguments against fixed strings:

  1. A particular string may be umpteen-dozen bytes long on rare occasion. But I don't want to take up memory by DIMing the string umpteen-dozen bytes ALL the time! REPLY: If that string ever gets that long you will need that memory allocation THEN. If your computer has that much memory then, why not NOW?
  2. A particular string array may have a thousand entries only four bytes long and one entry umpteen dozen bytes long. REPLY: You have designed a particularly stupid data system. There are techniques to program around such exceptions, even in BASIC. But is that a REAL problem or just a knee-jerk reaction? You LIKE fatal bugs that bomb your program and eat your data?
  3. My mail-list program is DIMed for 40-byte strings and I have a 55-byte entry to make. REPLY: We have news for you. Your mailing labels are only 40 characters wide. We are much too tactful to tell you what to do with those other 15 bytes.

And if those arguments do not convince you then check Wang's growth and earnings for the past 12 years and consider that they did it on fixed strings. One of the cute little things Wang did along the way was to rip the office word-processing market away from IBM. Not only did they do it but they did it PERMANENTLY, making it stick. That's why one of the two leading word-processing programs for the IBM PC is an emulation of WangWriter, NOT an emulation of an IBM system. (And to think that some folks think you can't compete with IBM!)

BYTE WATCH:

Page 12, Column 1

Jan '84 BYTE magazine has a very good survey article on 32-bit microprocessors, beginning on p. 134. Considering the author draws his paycheck from Nat Semi, we were braced for a somewhat biased report, but that proved not to be the case. On the other hand, he chose to avoid performance comparisons entirely - and that happens to be our PRIMARY interest in 32-bit microprocessors (is there any other reason to go to 32 bits?) We find ourselves in full agreement with about 98% of what the author wrote, so let's discuss that other 2% briefly.

On p. 144 the author points out that the Nat Semi 32032 is fabricated using 3.5 micron design rules and contains about 70,000 transistors. (That happens to be almost identical to the Motorola 68000, which came along nearly four years earlier. Didn't we say something in the back of issue #4 about Nat Semi being a dollar short and a day late?) He then asserts that the device runs at 10 MHz and that faster devices are planned for 1984. The 32032 is, in fact, a 6MHz device. 10MHz versions are only available at Nat Semi's Fantasy Island franchise - ask for Mr. O'Rourke. FASTER than 10MHZ in 1984? Ho ho ho!

This is related to the next item: the author's flat assertion that all of the 32-bit microprocessors will outspeed all of the 16-bit generation. As a matter of fact, both the 12.5MHz 68000 and the 10MHz 68010, both of which are in quantity production, will comfortably outrun the 6MHz 32032, a part which is not yet in production.

(The alert reader will have noticed that Nat Semi does not offer 8MHz versions of the 16032 nor discuss 8MHz versions of the 32032 - a clear signal that 6MHz is in fact the top of the speed curve at this time. Remember, Motorola has sold 4,6,8, 10 and 12.5MHz versions of the 68000. It appears that 10MHz Nat Semi devices will have to await a major shrinkage of the mask, to 2.0 - 2.5 micron design rules. That is by no means a simple change.)

Also, remember the T.I. 9900 - a 16-bit microprocessor that is a BUNCH slower than the popular 8-bit micros. General Instruments and an obscure company named National Semiconductor ALSO made 16-bit micros that were notably slower than the 6502 and Z80. We suggest that there is no historic evidence to support the author's assertion that all 32-bit micros are faster than all 16-bit micros - and point out that we have offered a specific example where this is not the case.

We'd like to know more about Inmos' Transputer. It is apparently a non-von machine dedicated to multiprocessing using data-flow concepts to utilize parallelism (where possible) in (mostly) sequential programs. The problem is, every microprocessor that

Page 12, Column 2

has deviated from von Neumann design principles has proven to be a flop in performance - and yet, in each case, the deviation was for the express goal of INCREASED performance! You don't suppose there really IS such a thing as a free lunch, do you?

THAT BUSTED TRICYCLE:

3 Jan '83

"Attention: The Publisher

"Dear Sir,

"A copy of your Dec '83, issue #26 has been referred to my attention because of your article "The Busted Tricycle." We are very sorry that you did not promptly receive the information you requested. I am enclosing that data and, even though late, hope it will restore your faith in AMD, no matter what your position may be on the 286 vs. 68000 issue.

"My compliments on DTACK GROUNDED and best regards."

ADVANCED MICRO DEVICES

Daniel F. Barnhart
Manager, Marketing Services

Dan, did you know this year is 1984?

TRUE FACTS DEPT:

Courtesy of Dec '83 80 MICRO (page 262) we learn that one Steve Wozniak asserts that Mackintosh will arrive in November, cost $1200, and boggle everybody. In case you don't remember Steve, he is the failed rock concert promoter who tried to kid you that the US Festival featured a 50-50 mixture of rock and technology. In the next column we learn that IBM is prepared to upstage everyone by selling 100,000 Peanuts before XMAS. We will have to rely more heavily on 80 MICRO in the future for factual information. A $1200 Mackintosh! WOW!

The Wall Street Journal is suggesting that Mack will come in at $2,000 to $2,500 - the last figure more than double Steve's, as reported by 80 MICRO. Some folks think the WSJ is more reliable than 80 MICRO in matters which have a dollar sign in front.

FALSEHOODS DEPT:

Since the views to be presented here are contrary to the true facts listed above, this MUST be the falsehoods dept. First, let us define our version of a vanilla Mackintosh: 68000 CPU, 128K DRAM, two 3.5 inch Sony microfloppy disks, one parallel printer port, a

Page 13, Column 1

serial port and a mousehole WITH a monochrome monitor and four or five applications programs, something a mass-market personal computer needs these days.

Please take particular note that we are including TWO, not one (or zero) floppy disks and we are including the CRT in our basic configuration. One can get lower prices by leaving out the floppies and the monitor but the resulting system would not be very useful.

Before estimating Mack's price tag, is there something already on the marketplace similar to that configuration? There are some similarities to the Trash 80 Model 2000 that Tandy just introduced. Both are true 16-bit machines. Both have good graphics, although the Tandy has a larger CRT, 11 inches vs. 9 inches. The Tandy costs $2995 and did NOT require a substantial development cost for software. Apple DID have a VERY SUBSTANTIAL software development cost. The Tandy disks hold more data but are conventional 5 1/4 minifloppies, which are further down the learning curve where cost is concerned. If we were just comparing the 2000 and Mack, we would have to say that Mack would be priced higher, perhaps by $500 given management with similar pricing practices. That puts Mack at $3495.

There is a new machine from England which is an even closer match to Mack. The Apricot is a true 16-bit transportable machine with an 8086, 256K DRAM, a high resolution monochrome monitor and two Sony 3 1/2 inch microfloppies. It includes the printer port, a mousehole AND a built-in modem, not just a serial port. Again, Apricot's makers did not need a large investment in software. Price: $3190. That would put Mack at $3540 in our judgement, given management with similar pricing practices.

However, the only management with pricing practices similar to Apple's is Apple. So let's compare Mack to LISA. LISA costs $6995 when stripped of software. Remove the hard disk and you have $5395. LISA comes with a full gallon (one megabyte), the same as a loaded Grande. Strip a gallon Grande down to a pint (128K) and you save $1200. Apple uses a larger markup but WE use premium 150 nsec DRAM and we buy in smaller quantities. Let's knock $1500 off LISA in a 128K DRAM version, so we are now down to $3895 without software. Apple wants an extra $1200 for LISA with a full set of software, so that $3895 might be low for Mack WITH software, given Apple's usual pricing practices.

NOSTRADAMUS DEPT:

A wise prognosticator either makes vague predictions, or, if he MUST make specific predictions he makes certain the effective date is a LONG way in the future. We are obviously not wise because we are going to make a specific prediction whose effective date is 24 Jan

Page 13, Column 2

'84 - about a week after you are going to receive this issue. We are talking about Mackintosh, complete with two microfloppies, monochrome monitor, parallel and serial ports and mousehole. We fearlessly predict that a 128K Mack will list at $3695 and at $3995 with 256K. Those prices will include four or five application software packages and a BASIC written in PASCAL.

Our prediction dramatically differs from ANY rumor or leak which is now circulating. Well, you have about a week to find out how loudly you can laugh at your FNE, right? (If Mack comes in at $1200 like Wozniak says, your FNE will re-assume his original name and vigorously deny ever having written a newsletter.)

Oh, yes: about delivery. The WSJ asserts that Mack is already in mass production in that fully automated production facility in Fremont, CA. So, the WSJ continues, it will be readily available immediately after introduction. The WSJ continues that Apple has learned from the LISA fiasco, where availability lagged introduction by seven months.

We say you aren't going to be able to buy a Mackintosh for about six months after introduction. Why? Well, for starters the order for the 3.5 inch Sony microfloppies was not signed until November '83. You think Sony carries a few hundred thousand of those things on its shelf for immediate delivery?

COMPOUNDING THE FELONY:

Having shot off our - keyboard? - about Mackintosh's pricing, we might as well make some more predictions about Mack. Mack is going to be a true son of LISA. People who like the way LISA does things LOVE LISA. Folks who like to do things their own way - like us - do not like LISA at all. One of the problems LISA has is that not many of the folks who like it can afford it. This problem will be less severe with Mack, but you will probably have to fork over more than $4,000 for a Mack (sales tax, you know). Not many folks spend $4,000 without giving the matter significant thought.

We call your attention to the fact that the competition in this industry is a moving target. Mack's competition will not be ONLY the PC - take a good look at Tandy's 2000 with those big, big disks, and MS-DOS compatibility to boot. And the 2000 comes with a BASIC written in assembly!

We call your attention to the fact that the competition in this industry is a moving target. Mack's competition will not be ONLY the PC - take a good look at Tandy's 2000 with those big, big disks, and MS-DOS compatibility to boot. And the 2000 comes with a BASIC written in assembly!

So we have a $4,000 machine that you MAY love - and you may hate. How many of you are going to like being forced to do things Mack's way, we wonder? How many of those who DO like being forced to do things one way and one way only will be able and willing to fork over $4,000? For a machine that will almost certainly run more slowly than the Tandy 2000, and have smaller disk

Page 14, Column 1

capacity to boot? And not be able to run MS-DOS, unlike the 2000?

THE TRASH-68s:

Having missed this Christmas' selling season, the Odyssey folks are continuing to develop their rock-shooting 68008-based toy computer for the NEXT season, but on a low-key basis. A couple of folks got discouraged and have left Knoxville, but the project is definitely on and has been re-targeted for fall '84.

It turns out the other "cheap" 68000-based computer ain't. Cheap, that is. If you have not yet spotted the ads for the Dimension computer in BYTE and elsewhere, shame on you. The most important thing about that computer is that it will cost you over $5000 to turn on the power switch. Yes, we know the advertised price tag is $3995.

For $3995 you get the computer but that does not include the operating system, which is sold separately for $350 (CP/M-68K). AND that price does not include a CRT AND DIMENSION DOES NOT HAVE A CRT TO SELL YOU! Which means that lovely artist's rendition they use in their brochures and in the BYTE ads is a bunch of hokum, showing a matched monitor. Incidentally, with fairly high resolution graphics you ain't gonna buy a monitor at your local computer retail outlet for $79.95.

(The price list asserts at the top that CP/M-68K is included in the base price but CP/M-68K is ALSO listed further on in that price list as a $350 peripheral. The specification sheet does not include CP/M-68K in the software supplied, which is just a boot ROM with a BIOS and monitor tracer.)

So we will have to wait nearly a year for a Trash-68.

(We chatted with our colleague Ron Jeffries recently about the absence of a Trash-68 and relayed the status of the Oddysey project. He asked, "Did you know that Philips is having talks with Warner Communications over Atari?" Yes, we read about that, we replied. Why do you ask? "Well," Ron replied, "Philips just happens to own Magnavox, which owns Oddysey." We didn't know that, and it DOES make the low-key talks between Philips and Warner of more interest if Ron is correct about the ownership of Magnavox.)

DO IT OUR WAY:

Once upon a time a couple of guys started a computer company in a garage. The second version of their computer had a very simple operating system and a very simple (integer only) BASIC. Because the computer was very simple, it was possible for clever folks with

Page 14, Column 2

gumption (no squatters and howlers here) to make that computer do very original and clever things. This simple computer became such a huge success that the bankers started making the decisions, including that the company hire some folks who knew something about computers. The company did.

So when the company designed its third computer the experts made certain that anyone who used it would do things in the correct manner. The correct manner is, of course, the way the experts did things. (You read this in John Dvorak's InfoWorld column recently, as part of the interview with Wozniak.) For this and other reasons, that third computer never became very popular.

The company's fourth computer was given a female name rather than a number. It came with an operating system best described as a sable-lined strait jacket. If the jacket happened to fit you correctly, it is VERY comfortable. If the jacket does not fit, then it is a DAMNABLE strait-jacket!

And here comes number five, which is named after a particular variety of Apple for the time being. Number five will have a 68000 CPU, but will NOT be what this industry needs, which is a Trash-68. A Trash-68 is an Apple II with a 68000 CPU and a 16-bit data bus. A Trash-68 has a very simple operating system, a simple (integer?) BASIC and most important of all, a Trash-68 lets you do things YOUR way!

TRASH <> TRASH:

Some readers have mistakenly assumed that the term "Trash-68" is a put-down. To the contrary, we use it as a term of respect. The original Trash-80 was incredibly important and beneficial to the personal computer industry. And the personal computer industry in turn has been good to lots and lots of folks, both individuals (you and us, perhaps?) and companies.

Because the Trash-80 was simple and did things the way YOU wanted to, a LOT of Trash-80s were sold. Because a LOT of Trash-80s were sold, a LOT of software was written and some of that software was and is pretty darn good. Lots of the stuff running on the IBM PC today was originally written for the Trash-68.

THE 68000 CONSPIRACY:

There appears to be a continuing conspiracy to keep the 68000 out of the mass personal computer market. We cannot think of any other reason why a Trash-68 has not been on the market for at least the last 18 months. (Remember, we have been SHIPPING our DTACK boards for 26 months now!) An 8MHz Trash-68 would be 13 times faster than an Apple II or, if the video refresh RAM is

Page 15, Column 1

time-shared like the Apple II and LISA, 7 times faster than an Apple II. The manufacturing cost would be no more than $30 higher than a 128K IIe, and so it could be sold for no more than $100 more than that 128K IIe. If one were available, we'd buy it - and so would a couple of million others.

But there is a conspiracy. We spoke recently with a honcho at a software house which vends languages and operating systems for the 68000 as well as lesser CPUs such as the 6800. That software house makes a single-user single-tasking software system for the 6800 but NOT for the 68000. No sir! Their 68000 BASIC is a MULTI-TASKING language. When we expressed our strong desire for a simple, single-tasking BASIC, that honcho expressed shock, dismay and incredulity. If it's a 68000 you HAVE to have multi-tasking, he patiently explained. How will the guys in the instrument labs be able to use the computer otherwise, he asked?

Frankly, my dear, we don't give a damn about the guys in the instrument labs. Let them go buy a PDP-11 running RTX (or something) like they always have. We are just interested in what we and a couple of million others want. But his point - if it's a 68000 it HAS to be complex - continues to be the conventional wisdom. And that's why there are no Trash-68s yet.

(Do you realize that the industry is still stuck in the position we described on page 1 of issue #1 of our newsletter, 30 months ago?)

IT'S A 16-BIT CONSPIRACY!

That attitude is not limited to the 68000. It also appears to prevail amongst the Z8000 crowd and the (few) Nat Semi folks as well. Kindly Uncle Jack, who has made a large fortune for himself and for long-time holders of Commodore stock by selling simple systems, has just decided that his cheap Z8000 computer will run UNIX (well, a derivative). Using floppy disks, of course. Jack has thereby uncharacteristically done an enormous favor for his competitors, especially the Apple Computer Co. Absent a Trash-68, the next best inexpensive personal computer would be a Trash-8K. As we have told you, the Z8000 is a pretty good microprocessor, one that can run a simple software system (like the Apple II has) much, much faster than the 68000 can run a complex software system (like the Fortune, Sage, Lisa, Tandy 16 have).

This worries us just a tad. If even Kindly Uncle Jack is swallowing the "16 bits gotta be complex!" bullshit, perhaps our viewpoint is incorrect? We will know soon, because HALGOL is turning into reality. Halgol is a 68000 programming language designed to combine the user-friendly interactive environment common to BASIC (with a screen editor, yet!) with the run-time

Page 15, Column 2

efficiency of a compiled language designed to take advantage of the vast internal resources of the 68000, AND TO HELL WITH TRANSPORTABILITY!

What puzzles us is that we appear to be the only ones interested in doing that. We may be wrong but, as a British publication recently reported, "(FNE) is putting his company's money where his loud mouth is." We'll drink to that!

COMPLEX SOFTWARE DEPT:

The UNIX derivative that the Commodore Z8000 machine will use is Coherent, written by the Mark Williams company in Chicago. They offer Coherent for the IBM PC at $500 a copy. If you think Uncle Jack is going to pay more than $10 a copy for Coherent, get in touch. We'd love to take your money.

The Apple Computer Co has recently announced that LISA's operating system is being re-written (actually, the P-code is being compiled to native code) for greater speed. A 2-1 increase is expected. The thought of an OPERATING SYSTEM spending most of its time doing "powerful type checking" is, to us, disgusting. We all know that PASCAL types can't write programs correctly - why else all that interminable type checking? - but an OPERATING SYSTEM is supposedly debugged enough that type checking should not be necessary, hmmm?

Have you noticed that just about all of the 68000 machines that were crippled at introduction by high-level operating systems and BASICS have had their operating systems re-written in a desperate search for more speed - and the higher sales that would accompany that speed? Fortune re-wrote their operating system and removed the name UNIX from the result. LISA is dropping P-code in favor of native code. According to a Sage dealer, the Sage operating system is now native code instead of P-code. And we swear that the Tandy 16 software, all five bytes of it, got an upgrade a few months back.

Well, gee, if it's a 68000 the software just GOTTA be complex. Didn't we read that somewhere?

So what we will do is write HALGOL in PASCAL P-code to pacify the religious zealots, write the P-code in COBOL to make the big data-processing organizations happy and write the COBOL in ADA to meet mil specs. This will bring things to a halt very nicely. The language will come in two varieties; one excessively verbose for PASCAL fans and the other terse for C fans. Let's see now... things coming to a halt... we will call the first version COAGULATE and the second CLOT. Then we can try to re-write the HALGOL operating system in a desperate search for more speed just like everybody

Page 16, Column 1

else who uses the 68000. you gotta keep up with the Joneses, you know.

EXAMPLES:

A program module written in COAGULATE:

"Take that integer value which is intermediate between the numbers one and three and place it upon the position of most significance. Then take a like value and place it upon the position of most significance, thereby relegating the previous number to the penultimate position of most significance. Then perform a mathematical summation of the two values, removing each from the position of most significance. Finally, place the result of the mathematical summation in the position of most significance."

A complete program written in CLOT:

     : 2y >;

(We don't know what the example above does, but we are told that it replaces a 5,000 line APL program.)

HANDLING LABELS:

The best way to handle branches (nasty GOTOs) as well as (more socially acceptable) GOSUBS is to a named label. For instance, 'GOSUB "CALC SINH"' is a bit more understandable than GOSUB 35410, especially if you know what SINH is. You maybe prefer 'GOSUB "PRINT PAGE"'?

In writing a computer program, we must proceed one line at a time. Suppose one enters:

     210 GOSUB "PRINT LINE"

at a time when there is not yet a label named "PRINT LINE"? Do we issue an error message and toss out the line? Suppose the label DOES exist - but the line defining the label is later deleted from the program? What now, Charley Brown?

The incremental compiler concept as implemented in HALGOL acts a line at a time to provide apparent instantaneous response to the slow chemical computer in charge of the keyboard. Not even a 68000 is fast enough to re-compile an entire program, which might have 10,000 lines of code, in apparent instantaneous time. It is therefore unacceptable to require that the entire program be re-compiled, looking for GOTOs and GOSUBs, upon the deletion of a line containing a label. A different strategy is required, hopefully a more friendly one than tossing out line 210 above just because the label is not yet entered.

We believe that we have devised a workable and

Page 16, Column 2

sufficiently friendly strategy. See if you agree.

LABELS DONE CORRECTLY:

When compiling line 210 above, we search the label name table for a match to "PRINT LINE". When a match is not found, the label "PRINT LINE" is added to the end of the label name table and a dummy address is inserted in the corresponding element of the label address table. The dummy address points to an error message, "LABEL IS MISSING". The index of the new label is returned and stored in the HALGOL program along with the action address for GOSUB.

Later, when a line containing the label "PRINT LINE' is entered, the label name table is searched once more. If a match is found, we first check the corresponding entry in the label address table. If that address is the address of the error message, we just replace that address with the real address of the label in the program, and everything is copacetic. If we find a match for the variable name and the corresponding address is NOT the address of the error message, then we have a duplicate label situation and we report a fatal error (fatal for the particular line being entered, that is).

Given the above strategy, the otherwise horrendous problem of what to do if a line containing a label is DELETED from the program becomes trivial - we leave the label in the label name table but change the formerly valid corresponding address to point to the error message. VOILA!

After deleting the line containing the label, are there any references out there to the deleted label? We dunno. What we DO know is that if the program is run and a GOTO or GOSUB references that label, program execution will terminate and the "LABEL IS MISSING" error message will be issued.

Does this mean that extra "garbage" can accumulate in the label table? Yes. But no garbage accumulates in the HALGOL program nor does anything accumulate which can slow the execution of the HALGOL program.

We will later write a 'COLLECT" command which will remove the garbage from the various tables, but that command will not execute instantaneously even with a 12.5MHz 68000, and is best issued just before getting up and taking a stretch. Keep in mind that the total garbage ordinarily will amount to less than 3% of the total size of the program and tables and you will see that it is not a matter of great concern.

If you can figure a better label-handling strategy to fit an incremental-compiler environment, get in touch.

Page 17, Column 1

YE DE-SEX (ugh!) REPORT:

"I used my word processor (Magic Window II, also sold as Acewriter) to do an index for the Sensenig BASIC manual. MWII saves formatted files as binary files (versus unformatted-saved as a text file). It is a simple matter to load the binary file and delete some garbage (formatting data) at the first of the file), then (SB) split the block at the end of useful text. The file can now be (SS) saved as a Sensenig format block (up to 32K long) for safekeeping and further fiddling. While Chet's editor is reasonable for a line editor, I wanted a screen editor to do the index with lower case characters for readability, tabs, etc. and to speed up editing longer BASIC programs translated from other sources. Other word processors that use binary files probably work as well. I want to hear from others who do this experiment to get an idea which ones work. Applewriter may not be worth it - even if the textfile output is converted to binary, the result may have to be converted to ASCII before it will work.

"On the updated BASIC disk I have included a few new programs. The BENCHMARK from Creative Computing, January, p. 12 runs in 9.0 sec, same as Burroughs 820; compare to Saybrook 13 sec; Olivetti M20 13 sec; IBM PC 24 sec running single imprecision - almost 9 orders of magnitude less accuracy - 1.1E-2 (interestingly, all the 8088 clones are faster than the PC). Accuracy is 0.9E-10 (DEC VAX 11/780 double precision = 1.6E-10). D3.ORIG runs in 54 sec. COSINE draws a complex 3-D function from the cover of Myers "Microcomputer Graphics" in 40 sec (40+ minutes for Applesoft).

"Sensenig BASIC is really worth getting into, even though HALGOL is just about here. The (ID) (insert from disk) command allows the use of function or macro libraries. Since the product is a relocatable 68000 machine language program with no run-time code module (as with Applesoft compilers), I don't see why so me folks don't use it right now to simplify some of the drudgery of writing larger applications (write and compile subroutines, etc) !

"Plans are afoot to start compiling programming tips, bugs, "features", programs and such into a "leisurely quarterly" applications newsletter of DSEx which will tentatively be entitled 'The HALGOL Review'. [We just KNEW we wuz gonna get voted O-U-T OUT! - FNE] This will be distributed free for the foreseeable future to all DSEx members (if you have a disk, you're a member) and any board owner who is merely interested. Those who are merely interested in the boards or who might have some other 68000 product will be put on the mailing list as well until it starts to cripple my finances. HALGOL, Sensenig BASIC, Inter68, FORTH, C and whatever else we get going will be fair game. Anyone who wants to get on the mailing list may write

Page 17, Column 2

or telephone. Any programming tips of even the smallest magnitude (e.g. how to use your word processor to create source files) are welcome. Problems, questions and complaints can be aired, and all are free to help or comment.

"Let me know when you are close to distribution for the first version of HALGOL and I'll send some cash for disks. [HALGOL is NOT in the public domain - FNE] What are your latest thoughts on the documentation business ? If the documentation is printed and sent with the disk, I need new mailers, and a little extra on the disk charge for printing it. If it is on disk, there's the problem of guaranteeing that everyone can print it out (essentially need a program to do it included-Sensenig operating system does this). The initial documentation as well as the updates could be in REDLANDS, but I need to be able to distribute the updated documentation with updates of HALGOL. Have you considered sending me and Pete Soule, for example, preview copies for some "beta testing" before the thing enters its first release? We might catch some boo-boos or 'features' before the stone tablets are carved." Jeff H., Transcendent Director, DSEx

Boo-boos? In HALGOL? Jeff, surely you jest! - FNE

ADDING A HALGOL FUNCTION:

We have spent the last couple of weeks adding new functions to HALGOL. Some of them are pretty simple, like REM, which is the same as the BASIC REM function. Nevertheless, there are certain steps necessary for a function to be integrated into the HALGOL language. There is one additional step - a very simple one - that is necessary because of the limitations imposed by the small data storage capacity of the DISK II used by most of us Apple owners.

O.K., let's add REM to HALGOL.

First we need a unique name for our function. Is the name "REM" taken? No. So we add DC.B 3, ASC "REM' to the end of our table of HALGOL keywords, which is a linked ASCII string, Apple version. Well, almost to the end: don't forget the DC.B $00 (null) which terminates the table.

Then we add DC.W REM to the end of another table. This table is the table which contains the action address of all the HALGOL functions. Each entry in the HALGOL keyword name list has a corresponding entry in the action address table, and the Nth entry in one must match the Nth entry in the other. The best way to keep things in sequence is to add each new function to the end of the list. (Yes, we know this sounds dumb but we managed to get it wrong once yesterday!) Both of these tables are located on (Source) Disk #2.

Page 18, Column 1

The temporary (?) extra step is that an additional entry must be made in an additional matching table on Disk #4. This table is the address of the routine which compiles that particular function, checking for errors such as syntax errors. So we add DC.W EREM to the end of that table. The "E" stands for Edit, which is a shorter word than Compile.

Now that we have made matching entries in three tables, we must, as you might suspect, write some code. What code? Why, to (A) COMPILE (Edit) the function, (B) RUN the function, (C) LIST the function, and (D) another very simple and very tricky function - the ability to find the next HALGOL function, or "line" of code!

We assume that you understand the purpose of A, B, and C in the previous paragraph. Let us explain D more clearly. Given the address of the (start of the) 34th compiled HALGOL function in a HALGOL program, how do we find the (starting) address of the 35th function? One of the reasons for doing this is to subtract one address from the other, thus determining the memory size taken up by the function. We need this size to:

  1. Insert a function into a program.
  2. Delete a function from a program.
  3. Replace one function with another.

When replacing one function with another, we need to compare the sizes of the two functions. If the sizes are not the same, we will need to either expand or contract the HALGOL code.

And we will need to find the Nth function as a portion of the LIST command.

WHAT'S IN A NAME?

We have successfully evaded giving the code which finds the next function a name. Instead, we have named the POINTER to that code the "LINE LINK". The line link is a 16-bit pointer which is located immediately before the first word of the run-time code. In other words, at the action address for the function, minus 2. While we are at it, the LIST LINK is a 16-bit pointer which is located immediately before the LINE LINK, or at the action address minus 4. And we had originally intended for the EDIT LINK to be located immediately behind the LIST LINK, or at the action address minus 6. At this time the EDIT LINK is sort of a "vermiform appendix", having no function because a separate table has temporarily taken over its function on account of small, slow disks.

Here is the run-time code for REM, with links:

Page 18, Column 2

       DC.W      ENULL         ;DUMMY LINK 
DC.W LKEYSTR ;LIST LINK
DC.W ADDN ;LINE LINK
REM MOVE.W (A6)+,A5 ;FETCH REM LINK
ADDA.L A5,A6 ;NEXT ACTION ADR
JMP (A4) ;RETURN TO HALGOL

(Yes, we know this isn't the most exciting code in the world.) The link being fetched as the first line of the action code is the link in the compiled HALGOL code for REM that points at the next line. Since there are surely fewer than 32K characters in the REM comment field, a .W (word) move into A5 sign-extends B15, which is zero, into the high-order 16 bits of A5. So we have a dependable long-word value that we can add to the HALGOL program pointer A6. And that's all we have to do for the REM statement at run-time.

In this particular case, the action code does pretty much the same thing as the line link code. We are not going to show you the code for ADDN because it already existed, and what we are writing about here is HOW TO ADD A FUNCTION TO HALGOL, not how to write a complete language from scratch. We aren't going to show the code for the LIST LINK "LKEYSTR" either, because that code had ALSO been previously written (for PRINT "literal string").

HALGOL COMPILATION:

But EREM needed some new code. Before we get to that code, let us discuss the HALGOL compilation process in general. Our REM line looks like this:

     100 REM PROG START

(This is what the screen editor places in a buffer after a <CR>, or carriage return, is detected.) By examining the first character and discovering that it (the "1") is a numeric character, we know that the operator is inputting a HALGOL program line. The line number is evaluated as a 16-bit binary word, in this case $0064. This tells us the highest HALGOL line number is 65535.

This line number is stored as the first word in a temporary work buffer called "WRKBUF". The compilation for each line is done in this buffer.

Next we check whether the line number $0064 is already in the Line Number Table. It is not, so we A) store the line number at the end of the table (since the table is empty, it is stored in the first position at relative address $0000). B) We store the address in the HALGOL program where the line begins in the first position in the Line Number Address Table. C) We place a zero word ($0000) in the second word of the work buffer to indicate a new line. (This word is the

Page 19, Column 1

condition flag and is 'zero' for a new line or 'one' for an old line.) Next we place the index of the line number in the third word of the work buffer. The index of the first line number in the line number table is zero, the index of the second line number in the table is one, etc. D) We place the address in the line number table where the line is to be inserted (if a new line number) in the fourth word of the work buffer.

The above probably seems complex and in fact the explanation is much more complicated than the code. Here is the code which accomplishes the tasks in the preceding paragraph:

 ; STORE THE LINE NUMBER 

MOVE.W D1,(A3)+ ;STORE LINE #

; LOOK FOR LINE NUMBER IN "LINE NUMBER TABLE"

MOVEA.L LNTBLS,A4 ;START OF TABLE
JSR SRCH1 ;LOOKUP LINE #
MOVE.W D7,(A3)+ ;SAVE COND FLG
MOVE.W D3,(A3)+ ;SAVE INDEX
MOVE.W A4,(A3)+ ;SAVE INSERT ADR

Now that we have four words stored in the work buffer, we next look for a valid function name (such as LET) after the line number. If there is no valid function name, we check for a leading quote (") indicating a label. But in the case of LET we do in fact have a function name. The question is, what is the index of the function name (0, 1, 2, etc)? We have to search through the ASCII linked list that is the keyword name table to find the index.

Having found the index we double it and use it to look up the action address from the action address table on Disk 2. This action address is always stored as the fifth word in the work buffer. Next we use that same doubled index to look up the "edit" (compile) address in the edit link table on Disk 4 - this is the table that is sort of temporary. And then we do an indirect jump to that address and start executing compilation code!

Here is that code:

 EREM  ADDQ.W    #2,A3          ;PTR PAST REM LINK 
JSR INPTXT ;GET THE STRING
MOVE.W A3,D7 ;END POINTER
SUBI.W #WRKBUF+10,D7 ;SIZE OF TEXT
MOVE.W D7,WRKBUF+10 ;STORE REM LINK
BRA REWIND ;STORE HALGOL CODE

In the code above, A3 is a pointer to the temporary HALGOL work buffer, WRKBUF. This buffer already contains the line number, condition code, line index

Page 19, Column 2

and address of the line in the line number table plus the action address for REM, 5 words total, before we reach label EREM. That means we enter EREM with the work buffer pointer, A3, pointing at WRKBUF+10. This is where the link goes that is used at run time to skip over the text string. So we first just add 2 to point at WRKBUF+12 and call a subroutine that already existed to store the string in the buffer. This subroutine is smart enough, for example, to store an extra null ($00) at the end, if necessary, so that we come out of the subroutine with A3 pointing at an even address,

Next we move the pointer A3 to D7 and subtract the address of WRKBUF+10 from it, giving us the size of the string. We store this number in WRKBUF+10 as the link the run-time code uses to skip over the string.

We have covered all of the code needed except the LINE LINK and the LIST LINK. Here they are:

 ADDN   CLR.L   D0 
MOVE.W (A6)+,D0 ;SIZE OF PARM FIELD
ADD.L D0,A6 ;PTR TO NX LINE
JMP (A4) ;FIND NEXT LINE

In the above code, A6 is the pointer to the HALGOL compiled program but JMP (A4) does not, in this case, jump to the HALGOL code. Instead, it jumps back to a subroutine which is locating the Nth HALGOL line.

 LREM   JSR     LISTKEY     ;LIST THE KEYWORD 
ADDQ.L #2,A3 ;SKIP THE REM LINK
JSR LISTSTR ;LIST THE STRING
JMP LINFEED ;<CR> & DONE

And that, folks, is all the code that is needed to implement the REM function. Yes, we know it seems complex for such a simple function, but all of the elements must be in place for even the simplest function to work. It really wasn't a bit harder to install the LOCAL function (local variables) discussed in the last newsletter. Yes, HALGOL now has local variables that work!

GLITCH CITY:

There is an unexpected glitch in the Nat Semi 16081 math chip which may affect some operations. When sending multi-word data to the 16081, if a long delay is encountered between data words, the initial data may be lost. It is almost as though dynamic registers are being used inside the 16081.

This was called to our attention by (DELETED). We were asked to check and confirm this bug, as we can easily insert controlled delays between adjacent words while the 16032/16081 coprocessing system cannot.

Page 20, Column 1

We discovered that data was lost after a 60 millisecond delay in a cool room with lots of open-air ventilation. When we placed a sheet of paper over the 16081 to simulate the heat one might encounter in a crowded chassis, the data was lost after 20 milliseconds. Incidentally, this came as an unexpected surprise to the folks at (DELETED).

This has obvious implications for the sort of excessively-complex, multi-tasking environments favored by miniconputer-oriented systems organizations if Nat Semi does not correct the design. It is irrelevant to simple, single-tasking environments such as favored by - ahem - Digital Acoustics.

The following report was prepared by our young Project Engineer:

The 68000/16081 Interface

In issue #25 we published a schematic to interface the 16081 to the 68000. Since then we have learned more about the 16081; such as the duration of the SPC pulse can not exceed the value X+Y, where X is the period of the clock going to the 16081 and Y is (as far as we can tell) 30 nano-seconds. Because we use the 68000's Address Strobe to generate the SPC for the 16081, the length of the SPC pulse is affected by the number of wait states on the 68000. On our static ram board (Dtack Grounded) there are no wait states so the Address Strobe is low for approximately 185 nano-seconds. This is right at the edge of not working. On our dynamic ram board (Dtack Grande) there is one wait state on every memory cycle, which means that the Address Strobe and the SPC will be lengthened by 80 nano-seconds. This will not work.

There are two ways of fixing this problem. One is to increase the period of the clock going to the 16081. The second is to shorten the SPC pulse. Because it is not desirable to slow down the clock of the 16081, we chose the second method. What we did was to use a mono-stable triggered by the Address Strobe to generate the SPC pulse.

Once we could control the length of the SPC pulse, the question of how short can the pulse be. According to our 16081-6 spec sheet, the minimum SPC pulse width from the CPU is 100 nano-seconds. So we chose a value which meets the requirements of the 16081 and all of the set-up and hold time requirements of the system.

"...didn't realize newsletter was so unabashedly biased in favor of your company's stuff! What the heck are you TALKING about? Better send some sales literature.., and more on the 16081 board. (Just think, I worked on an OS for Trident subs!)" Brian C., Warminster PA

Page 20, Column 2

We gotta admit that issue #27 is a tough one to break a new subscriber in on, Brian. Perhaps we did not make it sufficiently clear that that remarkably high performance could be attained by ANY 12MHz 68000 - 6MHz 16081 combination. (Have you peeked at the title at the top of page 1?) We've shipped six to eight such combinations to real customers already. Who else is shipping? Hmmm? Incidentally, be advised that we have NEVER claimed to be unenthusiastic - FNE

P.S.: Do we get credit for letting other folks know how to use the 68000/16081 combo?

P.P.S. If you don't want to take newsletters in sequence just like everybody else, you will have to pay $2.50 for specified individual copies - just like everybody else. Look in the info sheet we sent you at the newsletter prices. The EMS review was in #21, incidentally.

(YES, WE GET MAIL!)

Too much in the past month, actually. We don't know whether it is the holiday season or what, but we have recently been getting more mail than we can handle. Not junk mail or mail from ignorant folks but thoughtful letters which clearly deserve thoughtful answers. Unfortunately, we simply have not had the time to answer all of them. There are just so many hours in the day - and night - and weekends. The general rule is, if you write asking yes-no type questions and enclose an SASE, you will get an answer. The two page essay type replies are no longer being written.

Since we are now writing HALGOL code, HALGOL documentation, HALGOL demo programs and this newsletter, this situation is not likely to change soon. If you are one of the deserving folks who are not getting an answer to their carefully written letters you have our sincere regrets if not apology - we only apologize when we goof, and this is not a goof.

If you desperately need information and cannot find it in this newsletter or elsewhere, you may be out of luck. (Perhaps we have simply accumulated so many fellow-travellers that we cannot provide one-on-one information to ANYBODY?)

"If you send gift cards - this is a Christmas gift from his daughters (Katie, Evie, & Betsy)." Sally Carbrey Raleigh NC

Hope you enjoy our rantings, Bruce.

"Fuel for the '8086 is hard to program' fire: an associate of mine is an experienced assembly language programmer. He has programmed virtually all the

Page 21, Column 1

micros: 1802, 8048, 8008, 8080, 8085, Z80, Z8000, etc. He owns an IBM PC and has written software for it. He feels that programming on the 8086 family takes 15-20% more effort than programming a Z80! This opinion is shared by everyone I have talked to. Segmentation is a real pain to program around." Max S., Thousand Oaks CA

Your associate owes it to himself (herself?) to get some experience programming the 68000, Max. It is (honest) VERY friendly. Sorry about bowdlerizing that last sentence - FNE

"I think you are wasting your time & effort developing HALGOL - suggest redirect to developing DTACK GROUNDED 68000/IBM PC simple operating system.

"I use APL on my IBM PC and believe that the addition of a 68000/16081 would be a natural. There are several APL packages around." A. L. J., Manhattan Beach CA

A.L., we just know without looking that we can't afford any of those 68000-APL packages. In addition, those packages are all designed to work on a specific operating system (definitely not OUR simple system!). HALGOL, and its operating system (which you are not supposed to notice is there!), will run equally well on the IBM or CBM-64 or Apple. Sorry, we're going to continue to waste our time & effort - FNE.

"...I have found in a big German electrical engineering magazine (that) DTACK GROUNDED made the headlines here.

"I would like to see published in the newsletter the sort of article that Mr. Soule wrote describing his monitor about, for example, MINDS 1.0 or the C compiler." Thomas W., Munich W. Germany

We'd like to see either descriptions or reviews of MINDS and C ourselves, Thomas. Unfortunately, somebody has to write them, and so far, nobody has. Did you notice that the German magazine spelled 'Eloi' correctly? - FNE

"My last newsletter said that Redlands started on p.29 and my newsletter cuts off with page 28. General error or was I slighted?" [Name and city withheld]

Sir, you have fallen for one of the oldest publishing gags around. The earliest recorded example is an edition of the Mt. Olympus Post-Dispatch, which carried the following:

"While Europa desperately tried to cover her ripped bodice, the bull pushed her backward onto a pile of hay. She watched in helpless terror as (continued on tablet 9)" There were, of course, only six tablets in that edition.

Page 21, Column 2

"Much of the current thought in Computer Academia reminds me of the Bauhaus schools, with Niklaus Wirth playing Walter Gropius. There is an increasing tendency toward parochial forms and a general contempt for the 'user'. Efficiency is a minor consideration next to the 'art' of programming and this 'art' is supposed to be revealed in the expression or style of the writing rather than the speed or size of the program itself.

"Such thinking may be possible in mainframe or academic environments but fails when a single user is waiting on a single computer. The current poor showing of various 16-bit machines in the marketplace is richly deserved. Perhaps those in the industry who take the public for granted will realize that the public is not as gullible as they think.

"...What ever happened to the mythical Case/Power Supply?" John W., Austin TX

The mythical Case had its structural strength problem solved in this past month. We are now getting quotations on the wooden end pieces and doodling uninspired renditions of stuff to be silk-screened onto the case to let others know what's inside. We hope you enjoy your half-gallon Grande and the math board - FNE.

"'Mal Hackson' gave a seminar at Northrup a couple of weeks ago. It was a bit early in the morning for me, but my associate Paul made it. ...Mal asked what kind of development system we were using for our 68K machine. Since I do most of the development on my DTACK board, Paul replied as such. Mal then looked at the field service rep for Northrup's Exorciser systems and asked, "should we support these people?

"You published a 'kit' for a high-performance 68K computer...

"Perhaps the reason you get more pro-HLL letters is that you are stating a fact that is so self-evident to those who agree with you that it not only does not warrant a response, but is downright boring to read about all the time ('the sky is blue', 'inflation is rising'). I disagree with the attitude 'since this processor runs ten times faster, we can use this HLL that runs 12 times slower and hardly sacrifice anything'. Boring subject. END." Nigel R., Torrance CA

Nigel, Mal was kidding - we think. Lots and lots of folks have written to us about that 'kit'. Apparently nobody noticed that it was proposed (written up) by Jeff H., the DSEx Director. Incidentally, Nigel, when you referred in your letter to 'OS-9 Level 2 being a multi-abuser' system, that should have been 'multi-user'. Watch your spelling.

Page 22, Column 1

We would like to get you into the same room as, for instance, John M. John makes his living programming on the very highest performance minicomputer made by a prominent minicomputer manufacturer. He writes "shoot the invaders" programs (REAL invaders, John works indirectly for the Pentagon writing war games). For the kinds of programs John writes, that top-of-the-line mini sometimes gets bogged down, so he is fully aware of the need for performance. And yet John thinks it doesn't matter that LISA is slow! John thinks LISA sells poorly because it costs too much. When we point out that the similarly priced IBM PC/XT sells very well indeed with an assembly-based operating system and an assembly-based BASIC, he says the sales are because of that three-letter logo.

Check the year's first issue of InfoWorld. Kathy Chin gives LISA's software an award for excellence, even though she acknowledges that LISA's sales are slow. Despite this, she asserts that LISA's software is successful! (Remind us to look up 'successful' in a good dictionary. Kathy is obviously using a different definition than the one we are thinking of.) Then turn to John Dvorak's column in the back of the same issue and see where he awards the 'Dubious Achievement Grand Prize' to LISA-compatible software packagers!

What we are saying, Nigel, is that there appears to be a bifurcation of beliefs - most folks are on one extreme or the other with few in the middle. Since sales of HLL-based machines are dismal to say the least, it appears that most folks are on OUR side, and that the other side appears large because they make a lot of noise. This has been our perception of the PASCAL freaks as well - there are very few but they make one hell of a lot of noise! - FNE

"Please entend my subscription to the 'Intel Terrorist's Newsletter', On the lighter side: HALGOL for LISA & MACK? How about a 'Mucho Grande' with a 68020, NEC 7220 graphics and a 16081 or 68881 math chip?" Chuck D., N. Hollywood CA

We prefer Macho Grande, Chuck. Lay some 68020s on us, and watch us go to work! HALGOL for LISA? Who can afford it? For MACK, the question is, has Apple written the operating system to permanently lock the user out of the supervisory mode? If they have, then no HALGOL for MACK - FNE

HALFTIME :

At halftime during the Redskins-49ers football game, there was a commercial for the HP touch-screen personal computer. As the operator touched the screen, some file folders slid by. When she took her hand away, a file folder labeled "Kapoor" was in the center of the screen. Ha ha. Last we heard, Mitch Kapoor, er, Kapor

Page 22, Column 2

was not poor. The other thing we noticed is that there were only THREE folder labels visible on the entire screen! (The last was Kapok and we did not catch the first - we must be losing a step.) Here we have an 80-column 24-line CRT and we can only get THREE names on the screen? Why do we feel it is sizzle, not steak, that is being sold?

Sit down in front of your personal computer. Reach out and put your finger on the CRT. Now hold it there for awhile. Hold it there. Hold it there for a while longer, now. How are you going to like to work a 40-hour week with one of these little jewels?

Saw a well-done ad (commercial) for the Tandy 2000. Saw 3 or 4 ads over the two football games for the IBM PC - all of them the ad that shows the tall stack of software. Didn't see a single ad for the Apple Computer Co.

AUUGGHH!

After carefully telling you about the two major Commodore computers to be announced in early Jan, and after explaining to you that the one which is being touted the loudest wasn't gonna sell, catastrophy struck! According to Electronic News, 2 Jan '84, somebody ELSE has correctly identified that the UNIX (well, COHERENT) keyboard machine ain't gonna sell. That somebody else is (sigh) Commodore.

Commodore has made a last-minute decision to not introduce the UNIX machine. It seems they went out and showed the prototype to a few of the folks "on the street" and the "folks on the street" went BLEAAHH! No software, no BASIC, and worst of all, no zero page for Jim Butterfield to document (inside joke exclusively for Pet types). Commodore may introduce this machine in another six months and then again they may not. We think, now that they have correctly identified that the machine won't sell, that they won't. Another UNIX machine has just bitten the dust. (It'll be test-marketed in West Germany, a small market where Commodore can't lose too much money.)

And we're mighty unhappy because we are going to have to continue to put up with the folks who think UNIX is not selling well because the boxes are too expensive. Obviously, Commodore is smarter than those folks,

How smart is Commodore? Smart enough to sell $425 million in the fourth calendar quarter! It's much to early for audited results, but it looks like they will make about $50 million after taxes in the fourth quarter. Will somebody please ask David Bunnell just exactly what kind of trouble Commodore is in? Would anybody like to compare the VERY BEST quarter the Apple Computer Co. has ever had in its history against

Page 23, Column 1

Commodore's most recent quarter? (Scully's gonna turn green when he sees that profit figure!)

LOOKING BACKWARDS:

Do you remember the frenzy of interest in Peanut before it was released? Have you noticed how little interest there is in the PCjr now that everybody knows about it - and its limitations? Well, if YOU haven't noticed, Electronic News has. They sent a team of reporters out to interview retailers about the on-going interest in jr. There isn't any.

And some folks think IBM can do no wrong!

[later] IBM has just announced their new operating system PC/IX, for Interactive Executive. It's a UNIX work-alike developed by a 125-employee software house in Santa Monica. Available in April for (choke) $900.

MORE MACKINTOSH:

When we predicted the price of Mack a month ago, we did not know that Apple had cleverly designed Mack so that only one microfloppy drive could be mounted internally. Everybody out there who likes to work with a single floppy drive, raise your hand. What? No hands? Is everybody asleep? Or (gasp!) is it possible that Apple has goofed - again?

YOU WILL SEND US MONEY II:

Most of your subscriptions expire with this issue. How can you possibly do without this sober, sedate, scruffy rag? (lf you do not know when your subscription expires, look for a number on the mailing label. If it is 28, then this is the last issue you will receive.)

PERMISSION TO COPY:

PERMISSION IS HEREBY granted to anyone whomever to make unlimited copies of any part or whole of this newsletter provided a copy of THIS page, with its accompanying subscription information, is included.

THE FOLLOWING TRADEMARKS ARE ACKNOWLEDGED: Apple, II, II+, IIe, soft, SOS, ProDOS, LISA, Mackintosh?: Apple Computer Co. Anybody else need a 172nd million ack, have your legal beagles send us the usual threat.

SUBSCRIPTIONS: Beginning with issue #19, subscriptions are $15 for 10 issues in the U.S. and Canada (U.S. funds), or $25 for 10 issues elsewhere. Make the check payable to DTACK GROUNDED. The address is:

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

Page 23, Column 2

ABOUT REDLANDS:

The code in REDLANDS this month is the real, working code to SAVE and LOAD HALGOL programs from the HALGOL environment. SAVE works by dumping the HALGOL program and all necessary pointers and tables into the host beginning at $6000 - that's easy. It then actually peeks into the 6502 code space and determines the location of the end of the existing BASIC program, which just happens to the the short Applesoft LOADER program (see the end of page 27). You probably know the end is marked by a $0000 "line link" and that the variables are stored immediately after that link.

SAVE then lifts the 64 bytes beginning with the $0000 link into the 68000 and places them in a temporary buffer. After calculating two MORE line links (the Applesoft variety) it takes the data found at the end of page 28 and stores it beginning at the position of the former $0000 link. This definitely over-writes some variable values, in case you were wondering. If you examine the data at the end of page 28, you will discover that it is two Applesoft-type program lines which save the binary HALGOL data found at $6000 and then performs a GOTO 63997. Line 63997 is the line immediately preceding the two new lines we are adding, and it just happens to be the line which jumps into the 6502 side of the very simple BIOS.

So, once the HALGOL code and the two new program lines are in the host, SAVE issues a CMD01 (return to BASIC). The 6502 now executes, in BASIC, the first of the two new lines, saving the named HALGOL program file as a binary file. Then the next line returns the 6502 to the simple monitor, and the SAVE command now restores those 64 bytes, erasing the two new program lines and restoring the variable values.

We haven't mentioned taking care-of the length of the binary file or the name of the file, but we do that, honest.

The LOAD program works pretty much the same way but not in the same order, of course. Commands 7 and 8 are deliberately written to mimic the CALLQ:REM07 and 08 that many of you are familiar with on the Applesoft side of the host:DTACK interface. In each case one places a 68000 address in A5, a host address in D6 and a byte count in D4. CMD8 sends bytes from the 68000 to the host, and CMD7 fetches bytes from the host to the 68000.

We are printing this code to serve as a guide for the gung-ho types among you who have DTACK boards, and to prove that we are making substantial progress with HALGOL for less gung-ho folks and for those who have not yet purchased a DTACK board, but are leaning.

Page 24

                           2          LIST 
3 ;-------------------
4 ;-- COMMAND: LOAD --
5 ;-------------------
6 ;
0054AA: 48E7FFFE 7 LOAD MOVEM.L D0-D7/A0-A6,-(A7) ;SAVE REGS
0054AE: 3C7C55B4 8 MOVE.W #LNAME,A6 ;PTR TO NAME FLD
0054B2: 4EB85542 9 JSR NAME ;SET UP PROG NAME
0054B6: 4EB8556E 10 JSR GETLINK ;GET HOST LINE LINK
11 ;
12 ; CALCULATE AND STORE THE LINE LINKS FOR THE
13 ; TWO LINES TO BE APPENDED TO THE BASIC PROG.
14 ;
0054BA: 3A7C55CB 15 MOVE.W #LLINK+1,A5 ;2ND LINE LINK
0054BE: 7231 16 MOVEQ #$31,D1 ;LINK OFFSET
0054C0: 4EB85614 17 JSR CSLINK ;CALC & STORE
0054C4: 3A7C55A5 18 MOVE.W #BLOAD+1,A5 ;1ST LINE LINK
0054C8: 7226 19 MOVEQ #$26,D1 ;LINK OFFSET
0054CA: 4EB85614 20 JSR CSLINK ;CALC & STORE
21 ;
22 ; LOAD THE PROGRAM FROM DISK TO THE HOST
23 ;
0054CE: 4EB85592 24 JSR LSPROG ;LOAD THE PROGRAM
25 ;
26 ; LOAD THE PROGRAM FROM THE HOST TO THE 68000
27 ;
0054D2: 367C3584 28 MOVE.W #CMD7,A3 ;PTR TO CMD7
0054D6: 4EB8550E 29 JSR SGTBLS ;PROG HOST TO 68K
30 ;
31 ; THE PROGRAM IS LOADED, NOW:
32 ;
33 ; 1) MARK THE END OF THE PROGRAM
34 ; 2) MARK THE END OF THE NAME TABLES
35 ; 3) MARK THE END OF THE LINE NUMBER TABLE
36 ; 4) CALC & STORE THE LINE COUNT
37 ;
0054DA: 20781584 38 MOVE.L SOH+4,A0 ;PROG END
0054DE: 30B8354E 39 MOVE.W END+2,(A0) ;APPEND END
0054E2: 2078159C 40 MOVE.L SOLBN+4,A0 ;LBL NAME TBL END
0054E6: 4210 41 CLR.B (A0)
0054E8: 207815AC 42 MOVE.L SOCN+4,A0 ;CONS NAME TBL END
0054EC: 4210 43 CLR.B (A0)
0054EE: 207815BC 44 MOVE.L SOVN+4,A0 ;FP NAME TBL END
0054F2: 4210 45 CLR.B (A0)
0054F4: 2078158C 46 MOVE.L SOLN+4,A0 ;LINE # TBL END
0054F8: 30BCFFFF 47 MOVE.W #$FFFF,(A0) ;HIGHEST LINE #
0054FC: 91F81588 48 SUB.L SOLN,A0 ;SUBTR TBL START
005500: 3008 49 MOVE.W A0,D0 ;2 * # LINES
005502: E248 50 LSR.W #1,D0 ;LINE COUNT
005504: 31C0154C 51 MOVE.W D0,NLINES
52 ;
005508: 4CDF7FFF 53 MOVEM.L (A7)+,D0-D7/A0-A6 ;RESTORE REGS
00550C: 4E75 54 RTS
55 ;

Page 25

                          57 ; TRANSFER A PROGRAM BETWEEN THE HOST AND 
58 ; THE 68000; THE DIRECTION DEPENDS ON A3.
59 ;
00550E: 7009 60 SGTBLS MOVEQ #9,D0 ;9 TABLES
005510: 3C7C1580 61 MOVE.W #SOH,A6 ;PTR TO POINTERS!
005514: 363C6000 62 MOVE.W #$6000,D3 ;HOST ADR TO D3
005518: 3C03 63 MOVE.W D3,D6 ;HOST ADR
00551A: 3A4E 64 MOVE.W A6,A5 ;ADR IN 68000
00551C: 3800 65 MOVE.W D0,D4
00551E: E74C 66 LSL.W #3,D4 ;8 BYTES PER TABLE
005520: 31C4151A 67 MOVE.W D4,COUNT ;INIT COUNT
005524: D644 68 ADD.W D4,D3 ;NEXT HOST ADR
005526: 4E93 69 JSR (A3) ;XFR 72 BYTES
005528: 5300 70 SUBQ.B #1,D0 ;XFR 8 TABLES
71 ;
00552A: 2A5E 72 SGTBL1 MOVE.L (A6)+,A5 ;TABLE ADR
00552C: 281E 73 MOVE.L (A6)+,D4 ;TABLE END
00552E: 3C03 74 MOVE.W D3,D6 ;HOST ADR
005530: 988D 75 SUB.L A5,D4 ;NUMBER OF BYTES
005532: 6708 76 BEQ SGTBL2 ;SKIP IF ZERO
77 ;
005534: D978151A 78 ADD.W D4,COUNT ;BYTE COUNT
005538: D644 79 ADD.W D4,D3 ;NEXT HOST ADR
00553A: 4E93 80 JSR (A3) ;XFR ONE TABLE
00553C: 5300 81 SGTBL2 SUB.B #1,D0 ;DECR TABLE COUNT
00553E: 66EA 82 BNE SGTBL1 ;XFR 8 TBLS
83 ;
005540: 4E75 84 RTS ;ALL BYTES XFR'D
85 ;
86 ; CLEAR THE NAME FIELD IN THE PROGRAM LINE
87 ;
005542: 3F0E 88 NAME MOVE.W A6,-(A7) ;PTR TO NAME FLD
005544: 7E20 89 MOVEQ #$20,D7 ;SPACE
005546: 7009 90 MOVEQ #9,D0 ;9 CHARS
005548: 1CC7 91 NAME1 MOVE.B D7,(A6)+ ;ONE SPACE
00554A: 5300 92 SUBQ.B #1,D0 ;DECR COUNT
00554C: 66FA 93 BNE NAME1 ;LOOP 9 TIMES
94 ;
95 ; CHECK FOR A NAME FIELD; LENGTH 1 - 8 CHARS
96 ;
00554E: 4EB858DA 97 JSR CHKFLDC ;GET PARM FIELD
005552: 0C050009 98 CMPI.B #9,D5 ;NAME > 8 CHARS ?
005556: 6506 99 BCS NAME2 ;OK IF > 9
100 ;
005558: 7E20 101 MOVEQ #32,D7 ;NAME TOO LONG
00555A: 4EF85A16 102 JMP ERROR ;REPORT ERROR
103 ;
104 ; STORE THE NAME IN THE "BSAVE" NAME FIELD
105 ;
00555E: 305F 106 NAME2 MOVE.W (A7)+,A0 ;PTR TO NAME FLD
005560: 1E1E 107 NAME3 MOVE.B (A6)+,D7 ;FETCH A CHAR
005562: 0207007F 108 ANDI.B #$7F,D7 ;MASK UPPER BIT
005566: 10C7 109 MOVE.B D7,(A0)+ ;STORE A CHAR
005568: 5305 110 SUBQ.B #1,D5 ;MORE CHARS?
00556A: 66F4 111 BNE NAME3 ;LOOP TIL DONE
112 ;
00556C: 4E75 113 RTS ;NAME SET UP
114 ;

Page 26

                         175 ;------------------- 
176 ;-- COMMAND: SAVE --
177 ;-------------------
178 ;
0055D8: 48E7FFFE 179 SAVE MOVEM.L D0-D7/A0-A6,-(A7) ;SAVE REGS
0055DC: 3C7C5654 180 MOVE.W #SNAME,A6 ;PTR TO NAME FLD
0055E0: 4EB85542 181 JSR NAME ;SET UP PROG NAME
182 ;
183 ; SAVE THE PROGRAM FROM THE 68000 TO THE HOST
184 ;
0055E4: 367C3588 185 MOVE.W #CMD8,A3 ;PTR TO CMD8
0055E8: 4EB8550E 186 JSR SGTBLS ;PROG TO HOST
187 ;
0055EC: 4EB8556E 188 JSR GETLINK ;GET HOST LINE LINK
189 ;
190 ; STORE THE BYTE COUNT IN THE BASIC PROG LINE
191 ;
0055F0: 3C38151A 192 MOVE.W COUNT,D6 ;BYTE COUNT
0055F4: 307C566C 193 MOVE.W #SLEN+4,A0 ;DEST
0055F8: 6126 194 BSR DOHEX4 ;CONV & STORE
195 ;
196 ; CALCULATE AND STORE THE LINE LINKS FOR THE
197 ; TWO LINES TO BE APPENDED TO THE BASIC PROG.
198 ;
0055FA: 3A7C5673 199 MOVE.W #SLINK+1,A5 ;2ND LINE LINK
0055FE: 7239 200 MOVEQ #$39,D1 ;LINK OFFSET
005600: 6112 201 BSR CSLINK ;CALC & STORE
005602: 3A7C5645 202 MOVE.W #BSAVE+1,A5 ;1ST LINE LINK
005606: 722E 203 MOVEQ #$2E,D1 ;LINK OFFSET
005608: 610A 204 BSR CSLINK ;CALC & STORE
205 ;
206 ; SAVE THE PROGRAM FROM THE HOST TO THE DISK
207 ;
00560A: 4EB85592 208 JSR LSPROG ;SAVE THE PROGRAM
209 ;
00560E: 4CDF7FFF 210 MOVEM.L (A7)+,D0-D7/A0-A6 ;RESTORE REGS
005612: 4E75 211 RTS ;SAVE DONE
212 ;





100 HOME : TEXT :P = 38383:Q = 0 - 102
110 PRINT CHR$ (4);"BLOADAPPLE.O,A$8600,D1"
120 PRINT CHR$ (4);"BLOADHALGOL.O,A$2000"
130 CALL 38359
140 CALL Q: REM 07 002000 2000 4000
500 CALL Q: REM 02 005210
63997 CALL 34304

Page 27

                         116 ; FIND THE END OF THE HOST PROGRAM BY TRACING 
117 ; THE BASIC LINE LINKS 'TIL $0000 IS FOUND.
118 ;
00556E: 31FC0801110 119 GETLINK MOVE.W #$0801,LINK ;1ST LINK ADR
120 ;
005574: 30381100 121 GETLINK1 MOVE.W LINK,D0 ;D0 = LAST LINK
005578: 3A7C1101 122 MOVE.W #LINK+1,A5 ;68000 ADR
00557C: 7802 123 MOVEQ #2,D4 ;TWO BYTES
00557E: 610C 124 BSR CMD7B ;GET NEXT LINK
005580: 11E51100 125 MOVE.B -(A5),LINK ;HIGH ORDER ADR
005584: 66EE 126 BNE GETLINK1 ;LOOP TIL ZERO
127 ;
128 ; END OF HOST PROG FOUND; SAVE THE NEXT 64
129 ; BYTES TEMPORARILY IN THE 68000'S "DBUFF".
130 ;
005586: 3A7C1104 131 MOVE.W #DBUFF,A5 ;68000 ADR
132 ;
133 ; GET 64 BYTES FROM THE HOST; HOST ADR IN D0
134 ;
00558A: 7840 135 CMD7A MOVEQ #64,D4 ;64 BYTES
00558C: 3C00 136 CMD7B MOVE.W D0,D6 ;D6 = HOST ADR
00558E: 4EF83584 137 JMP CMD7 ;EXIT VIA CMD7
138 ;
139 ; APPEND TWO NEW PROGRAM LINES TO THE END OF
140 ; THE HOST BASIC PROGRAM (BLOAD/SAVE, CALL).
141 ;
005592: 6108 142 LSPROG BSR CMD8A ;STORE 2 LINES
143 ;
144 ; EXIT TO BASIC SO THAT HOST CAN LOAD/SAVE PROG
145 ;
005594: 4EB8356C 146 JSR CMD1 ;EXIT TO BASIC
147 ;
148 ; RESTORE THE HOST CODE WHEN SAVE IS DONE
149 ;
005598: 3A7C1104 150 MOVE.W #DBUFF,A5 ;68000 ADR
151 ; RESTORE THE HOST CODE & LOAD/SAVE DONE
152 ;
153 ; SEND 64 BYTES TO THE HOST; HOST ADR IN D0
154 ;
00559C: 3C00 155 CMD8A MOVE.W D0,D6 ;D6 = HOST ADR
00559E: 7840 156 MOVEQ #64,D4 ;64 BYTES
0055A0: 4EF83588 157 JMP CMD8 ;EXIT VIA CMD8
158 ;
0055A4: 0000FEF9 159 BLOAD DC.L $0000FEF9 ;LINK, LINE#
0055A8: BAE72834 160 DC.L $BAE72834 ;?CHR$(4
0055AC: 293B2242 161 DC.L $293B2242 ;);"B
0055B0: 4C4F4144 162 DC.L $4C4F4144 ;LOAD
0055B4: 20202020 163 LNAME DC.L $20202020 ;9 CHAR NAME
0055B8: 20202020 164 DC.L $20202020
0055BC: 202C4124 165 DC.L $202C4124 ; ,A$
0055C0: 36303030 166 DC.L $36303030 ;HEX ADDRESS
0055C4: 2C204431 167 DC.L $2C204431 ;, D1"
0055C8: 2200 168 DC.W $2200 ;QUOTE, END
0055CA: 0000FFF9 169 LLINK DC.L $0000FFF9 ;LINK, LINE #
0055CE: AB363339 170 DC.L $AB363339 ;GOTO 639
0055D2: 3937 171 DC.W $3937 ;97
0055D4: 00000000 172 DC.L $00000000 ;END PROG MARK
173 ;

Page 28

                         214 ; SUBROUTINE;  CALC & STORE 1 BASIC PROG LINK 
215 ;
005614: D240 216 CSLINK ADD.W D0,D1 ;ADD LAST LINK
005616: 3E01 217 MOVE.W D1,D7
005618: E04F 218 LSR.W #8,D7 ;HIGH ORDER
00561A: 1A87 219 MOVE.B D7,(A5) ;STORE HI ORD
00561C: 1B01 220 MOVE.B D1,-(A5) ;STORE LO ORD
00561E: 4E75 221 RTS ;DONE
222 ;
223 ; CONVERT AND STORE A WORD (4 HEX CHARS)
224 ;
005620: 6106 225 DOHEX4 BSR DOHEX
005622: 6104 226 BSR DOHEX
005624: 6102 227 BSR DOHEX
005626: 4E71 228 NOP ;4 CHARS DONE
229 ;
230 ; CONVERT AND STORE A HEX DIGIT
231 ;
005628: 3E06 232 DOHEX MOVE.W D6,D7 ;NIBBLE TO D7
00562A: 6106 233 BSR HEXIT ;CONVERT TO HEX
00562C: 1107 234 MOVE.B D7,-(A0) ;STORE IT
00562E: E84E 235 LSR.W #4,D6 ;NEXT NIBBLE RDY
005630: 4E75 236 RTS ;DONE
237 ;
238 ; CONVERT A NIBBLE IN D7 TO HEXADECIMAL
239 ;
005632: 0207000F 240 HEXIT ANDI.B #$0F,D7 ;MASK D4-D7
005636: 06070030 241 ADDI.B #$30,D7
00563A: 0C07003A 242 CMPI.B #$3A,D7 ;NUMERIC?
00563E: 6502 243 BCS HEXITX ;SKIP IF SO
244 ;
005640: 5E07 245 ADDQ.B #7,D7 ;A - F
005642: 4E75 246 HEXITX RTS ;CONVERSION DONE
247 ;
005644: 0000FEF9 248 BSAVE DC.L $0000FEF9 ;LINK, LINE#
005648: BAE72834 249 DC.L $BAE72834 ;?CHR$(4
00564C: 293B2242 250 DC.L $293B2242 ;);"B
005650: 53415645 251 DC.L $53415645 ;SAVE
005654: 20202020 252 SNAME DC.L $20202020 ;9 CHAR NAME
005658: 20202020 253 DC.L $20202020
00565C: 202C4124 254 DC.L $202C4124 ; ,A$
005660: 36303030 255 DC.L $36303030 ;HEX ADDRESS
005664: 2C204C24 256 DC.L $2C204C24 ;, L$
005668: 30303030 257 SLEN DC.L $30303030 ;HEX LENGTH
00566C: 2C204431 258 DC.L $2C204431 ;, D1"
005670: 2200 259 DC.W $2200 ;QUOTE, END
005672: 0000FFF9 260 SLINK DC.L $0000FFF9 ;LINK, LINE #
005676: AB363339 261 DC.L $AB363339 ;GOTO 639
00567A: 3937 262 DC.W $3937 ;97
00567C: 00000000 263 DC.L $00000000 ;END PROG MARK
264 ;
00001100 265 LINK EQU $1100
00001104 266 DBUFF EQU $1104
267 ;

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT