jeff@jplpub1.jpl.nasa.gov (Jeff Skaletsky) (07/17/87)
Alternate subject: DTACK's DBASIC: Insanity or *the Answer*? I haven't seen anything come across on Hal Hardenburgh's new BASIC for the ST, so I thought I'd post my initial impressions: First a little background. Hal Hardenburgh is an obviously bright, ascerbic chap who you might want to characterize a a *little* opinionated about computers and the world in general. He first started a company called Digital Acoustics, which designed and marketed coprocessor cards for the Apple II that contained a then brand new chip, the Motorola 68000. Hal discovered early on that the Motorola chip would run like the proverbial bat out of hell if it had it's DTACK pin (10) grounded, so that the chip would run with no wait states. He claims to be the first to have shipped the 68000 as part of a product. (hope I remembered that right!) Apparently, in the course of doing business selling the original DTACK boards (later offered for the IBM PC) and maintaining communications with customers, Hal started to send out DTACK GROUNDED, a reasonably technical newsletter aimed at people interested in the 68000 chip, but which also would stray into whatever other areas Hal would care to comment on, doing this with a great deal of style and wit. My first notice of Hal was when John Dvorak, another cynical but crack industry critic, mentioned DTACK GROUNDED in his column when quoting one of Hal's pearls. A few years ago, Hal suddenly decided that the responsibility of putting out a regular newsletter (he charged $15 a year) was interfering with his work too much, so he refunded appropriate amounts of money to his readers, informing them that they were now a part of a mailing list that was fixed; no one would be added or deleted, and whenever Hal felt like it he would write another issue and send it out. Hal called it the DTACK Junk Mail Flyer. In it, Hal would detail his business activities, laugh at politicians and computer industry leaders, and attack Apple and it's relatively new Macintosh, since it was a computer that had Hal's favorite chip yet ran abominably slowly with an interface Hal considered brain-damaged. In the Junk Mail Flyer, Hal started talking about the brand new Atari ST. Here was a computer done right, for a price that people could afford! One of the most memorable DTACKs for me was when Hal did some arithmetic in terms of "bang for the buck" on computers, with Crays, Vaxes, PC/ATs, etc., and the ST won hands down (big news, huh?) Though Hardenburgh seems to have little love for Jack Tramiel (whom he calls Kindly Uncle Jack), he gave him kudos for going with the right chip and building a decent computer around it. GEM and TOS, however, earned Hal's disdain. Here was another user interface that slowed the performance of an otherwise fine machine. If you haven't figured it out yet, Hal is into SPEED. Back when the DTACK boards were selling briskly, Hal wrote a programming language called HALGOL, which he claimed to be a fast, accurate language, somewhat ALGOL-like. At first, it was a compiler. HALGOL was shipped free with the DTACK boards. Hal decided to turn HALGOL into a super fast BASIC for the ST. He correctly saw that the market for 68000 add-on boards was dwindling, and obviously liked what Phillipe Kahn did with Turbo Pascal in terms of marketing. So now, after some time in development (he says it was the manual that really took so long), TWO newly renamed DBASIC MANUALS (bound like the Turbo Pascal manuals) arrive in the mailbox of each newsletter subscriber, gratis (1,660 total). And, a month or so later, arrives with a mess of disk labels and yet another short newsletter. Hal LOVES writing, obviously. 400 Atari user groups also are receiving 10 manuals (seven will receive 50) and disks. The deal? Make as many copies of the disk as you have copyrighted labels, and give them out to anyone. Distribute the fewer number of manuals as you see fit. Each disk label has a phone number on it. Anyone who likes what is on the disk may order a manual for $39.95. Hal figures that the seven thousand (!) free manuals will act as "seed", and the soon-to-be huge number of DBASIC copies floating around will pique enough people's interest that he should soon sell a mess of manuals (he had 17,682 printed). Definitely the strangest marketing idea since PC-Write's scheme of cutting owners in for a commission on any copies "sold" with the owners' serial number on it. So, after all this, what about DBASIC? Well, it's as strange as it's author. Ever used an Apple II? If so, things will look rather familiar. First of all, it DOES NOT USE TOS OR GEM. AT ALL! Even the disk formats are different, giving 10% more disk space and allowing the drives to load information MUCH faster than TOS/GEM. Want to write or read a TOS disk? DBASIC gives you assembly language disk primitives to read and write sectors, with short BASIC routines to call them. How fast is DBASIC? Hal gives you benchmarks both on disk and in the newsletter, and though he warns you about benchmarks designed to represent the *best* parts of a product, he nevertheless uses LDW's benchmarks to show that DBASIC is indeed fast (though not in certain areas), in some respects faster than compiled C code! I noticed in particular the speed in which DBASIC writes to the screen. "Grasping the metal of the machine" is the term Hal uses to decribe his approach to the language. DBASIC uses eight bytes to represent floating point numbers, and his floating point algorithms date back to HALGOL days: he refers to them as "mature." There is graphics support for all three resolutions, too. The manual is good, and is also the largest DTACK GROUNDED issue yet, chock full of "Halisms." This BASIC is pretty much not compatible with any others, though some parts of what Hal calls "Bellevue BASIC" remain. It is BASIC, no mistake about that, with required line numbers, a "screen oriented" editor (move the cursor to the line you want to change, insert, delete, replace, hit <return>), GOTOS and GOSUBs with support for LABELS (GOTO SORT is legal) as well. Hal's also added a few things that I consider to be excellant: Text Arrays, which are linked strings of varying length in one array, and special functions to manipulate them, such as TXAPP, TXDEL, TXINS, TXREP, TXLOC, and TXGET. Standard string array support (and N-dimensioned integer and floating point arrays, too) is also included, with the advantage of being able to specify the string array length (and therefore conserve memory). All arrays may be DIMensioned dynamically, too. Also: the assembler Hal used to write DBASIC is on the disk (though it is not compatible for a C compiler, for example: it does use the standard Motorola mnemonics and style), a sample line editor, a README program (more newsletter!), and COPY, BACKUP, and FORMAT routines for the DBASIC "operating system." Please don't miss this point: You *BOOT* DBASIC, create system or data disks, (no fragmenting of disk files whatsoever. And, more Hardenbergh reasoning: you never delete files, just SCRATCH them; later, you can UNSCRATCH them or COPY the disk so the SCRATCHed files stay behind. He says: since you never have to buy a 99.95 Horton (sic) DOS Utility whose chief purpose is to undelete files, DBASIC costs you 39.95 minus 99.95, or MINUS $60.00 :-)), give out the system with your programs....forget the hard disks, etc. Someone will have to write a communications routine within DBASIC and it's assembler (extensive CALL/JUMP support), as well as spreadsheets, word processors, etc. What Hal and his newly renamed DTACK GROUNDED Inc (Wanna buy a good name for a compact disk company? Call him...) didn't do is write a COMPLETE TOS/DBASIC conversion utility; they expect the hackers to supply that, and I think that may turn off some potential paying customers. So will the *NO SUPPORT* policy. That's right! Hal is *PUBLISHING* DBASIC, not licensing it, so it's like buying a book- there will be bugs and typos, but you are expressly allowed to simply make a copy of any new version of the software; but you'll have to shell out the full amount for the next version of the manual. You may report bugs by mail, and he'll send a new disk to the first reporter of a bona fide bug. He's expecting the user community to support each other; the order-takers at the phone number are ONLY that. What do you expect from a company of four, he asks. The bottom line? So far, I like it. I kinda like the relatively spartan OS supplied, and have visions of people contributing all kinds of interesting software written for it. From my preliminary first few hours of use, it's pretty decent to program in, and I like the file access (no OPEN or PRINT#n, just DATA{SAVE,-LOAD} filename,arraynames or BSAVE/BLOAD filename, address). But I'm not sure yet how usable it will be without the TOS access, communications support, etc., though I'm sure that stuff will be coming from programmers. And it sure is weird to be in the environment of an Apple II on my Atari ST!!! ************************************************************** Some benchmarks from the Newsletter (relatively verbatim here: please don't flame me for typos, etc.): These benchmarks were prepared by LDW and published in an (apparently uncopyrighted) ad on page 45 of the May, 1987 ST Applications magazine. DBASIC added by DTACK Grounded. All times in seconds. (Interactive BASICs) (Compiled) DBASIC GFA FAST NEW ST GFA LDW Philon Softworks A. 1 Million empty FOR/NEXT Loops: 17.6 48.1 66.0 303.0 17.1 6.7 12.2 379.0 B. Integer Calculations 50.1 527.0 526.0 1100.0 168.2 4.3 111.0 2542.0 C. Float Benchmark 10.0 10.2 6.0 15.5 8.7 3.5 30.2 150.0 D. Calc. standard BYTE magazine benchmark (May 85) 3.56 6.0 7.2 16.3 3.5 2.8 8.2 22.0 E. Sieve benchmark size 7000; determine first 1651 primes 0.87 14.0 16.0 38.27 1.3 1.8 1.5 33.6 F. Screen output 1000 strings of 70 characters (50 x 20 lines) 9.66 23.3 256.0 226.63 21.9 13.9 58.2 62.1 (Compiled C's) DBASIC Megamax MWC A. 1 Million empty FOR/NEXT Loops: 17.6 5.7 6.7 B. Integer Calculations 50.1 6.1 6.3 C. Float Benchmark 10.0 58.8 37.2 D. Calc. standard BYTE magazine benchmark (May 85) 3.56 11.9 10.4 E. Sieve benchmark size 7000; determine first 1651 primes 0.87 0.46 0.48 F. Screen output 1000 strings of 70 characters (50 x 20 lines) 9.66 63.0 42.7 Note on C&D: DBASIC uses a double precision floating point format while the other BASICS use a single precision floating point format, except for GFA, which uses a 1 1/2 (6 byte) precision. Now, from the next page: "The secret to winning at benchmarking is to make sure that the things your program is good at are, um, well-represented. For instance, the LDW BASIC compiler is very good at integer arithmetic, so *three* of the six benchmarks LDW used in their ad feature integers (A,B, and E). I can make DBASIC beat any ST C compiler 99 out of 100 tries; I can also make a good ST compiler beat DBASIC 99 out of 100 tries. If you wanta win you gotta choose your benchmarks good. Here, I am going to use a different approach, and examine catagories of performance (goes on to do so in a narrative manner)." ************************************************************** The phone number given on the disk is (501)989-9576 (Santa Fe, NM). But don't expect any technical info from that number; it is only an order desk. Contact your local user group if you are interested in obtaining the disk. I have no connection nor financial interest, etc... A dwarf is passing out somewhere in Detroit! |Jeff Skaletsky - Jet Propulsion Laboratory, Pasadena, CA (818)354-7677| |jeff@jplpub1.jpl.nasa.gov -or- elroy!jplpub1!jeff@csvax.caltech.edu|