[comp.sys.atari.st] DTACK's DBASIC: Grasping the Metal Firmly, or TOS?- what's TOS?

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|