[net.micro.atari] Book review: Atari ST Internals

mendoza@aero.ARPA (Lee Mendoza) (01/27/86)

----------- lineater offering -------------

     I have recently picked up the book "Atari ST Internals" by K. Gerits,
L. Englisch, and R. Bruckman; published by Abacus Software, cost $19.95.
The book covers a wide variety of subjects in its 446 pages, including
the integrated circuits (except the miscellaneous TTL parts), the hardware
interfaces, and the operating system.  Included in the book is a listing
of the 20 June 1985 BIOS.  In brief, it is a good addition to the developer's
kit, but no substitute for the documentation contained in the kit.

     The book is divided into three chapters, The Integrated Circuits; The
Interfaces; and The ST Operating System.  The first chapter is about 60 pages
long and provides cursory descriptions of each of the major circuits in the
ST.  The second chapter provides a 34 page description of the interfaces
available on the ST including the pinouts of the connectors and a schematic
diagram of each interface (except the cartridge).  The final chapter takes
up the main portion of the book and is contains descriptions of GEMDOS, BIOS,
XBIOS, Line-A calls, the exception and interrupt handling, the VT52 emulator,
the system variables, the 68000 instruction set and addressing modes.

----- start of long! review ------

     The first chapter gives very short and incomplete descriptions of the
custom chips (Glue, MMU, Shifter, and DMA) -- apparently the authors didn't
have any more info from Atari than we do.  The descriptions of the standard
parts are more complete, but less than one could obtain from data sheets.
Information on programming the standard parts (including the sound chip) are
provided.  A diagram of each chip is included, the only item missing is the
notch in the DIPs and the bevel on the leadless chip packs.  These diagrams
might help clear up some of the memory upgrade confusion.

     The second chapter provides a diagram showing the pinouts of the connect-
ors and a sort-of schematic.  The keyboard description is probably better than
the summation of the various documents provided in the developers kit.  It has
a listing of the keyboard commands and a program for dumping the keyboard ROM.
The diagram of the codes returned by each key is especially nice.  The manner
in which the chips are used is presented in this chapter, giving an insight
into the capabilities and limitations of the ST.  An example is that the
cartridge port cannot be written to (even if you bring out r/w lines) because
the Glue chip will generate a bus error.

     The third chapter is the real reason to buy this book.  The discussion of
the GEMDOS calls is probably better than the GEM DOS Spec. provided with the
developer's kit, but the examples are provided in assembler, not using a C
language binding.  This is probably not a major problem, as the bindings given
in the GEM DOS Spec. do not match the include file osbind.h anyway.  The
descriptions of the XBIOS calls include the C bindings, but once again the
examples are given in assembler.  This section is roughly the equivalent of
"A Hitchhiker's Guide to the BIOS" provided with the developer's kit.  The
real win in this book is the section which describes the graphics calls.  Here
14 of the 15 "line-A" calls are described.  The descriptions and examples are
much clearer than "The Long-Awaited Line 'A' Document."  The exception and
interrupt sections provide in one place information which is scattered through-
out the developer's kit (I think, I haven't found all the stuff in the kit
yet).  The listing of the system variables is more descriptive than the Guide,
but not as extensive in the interpretation of values.  One thing to note is
that the value of _hz_200 ($4ba) is correctly reported (as opposed to the
value $4bc given in the Guide).  The next section is a listing of 68000
instructions, ok for getting the general idea of the BIOS listing which
follows, but you won't be an assembler programmer after you're done reading
it.  The BIOS listing is old, and represents the version which was provided
when the ST was first made available in the U.S.  The listing suggests a way
to find out what the date of your version of TOS is:  using SID find the
value of _sysbase (longword at $4f2) display the beginning of the os and
examine the seventh longword.  It should have the date (mine has $11161985).
[If somebody has the TOS ROMs, please post the result.]

     In conclusion (finally!), I would recommend this book to developers and
even to non-developers.  It provides a reasonable description of the hardware
and software.  The major shortcoming is the lack of AES or VDI documentation,
but that is alluded to by the very last printed page -- an ad for "GEM
Programmers' Reference Atari ST," among others.  One missing item is an index.
This would have been real handy, but probably added an additional 20 pages.

------------------------------------------------------------------------------
Lee Mendoza (mendoza@aerospace.arpa)

note:  the opinions expressed above do not represent