[comp.sys.atari.8bit] 800, 800XL

jhs@MITRE-BEDFORD.ARPA (01/11/87)

The best source I know of for the differences is Mapping The Atari, 1985
Revised Edition, Appendices 12 - 15, 18, and 19 (and maybe some other places).

Some differences that come to mind are:

1.  The 800XL uses a custom 6502 chip with built-in tri-state drivers and a
HALT input to make them disconnect the 6502 from the bus so ANTIC can take
over.  HALT is generated by ANTIC when it needs the bus.  The custom chip is
the famed "Sally" chip.  In the 800, the tri-state function is done with
external buffers.  This is transparent to software but makes some difference
if you want to make hardware modifications.  In particular, the 65802 CPU chip
from Western Design Center should drop right into an 800, giving a greatly
enhanced machine language instruction set, but in the 800XL it would require a
piggyback board with 800-style tri-state buffers.

2.  The memory map is slightly different.  Mapping The Atari details the
differences far better than I could do here.  One example I have run into is
that memory location 731 (decimal) on the 800XL is called NOCLIK; if it holds
a nonzero value, the keyboard click is disabled, but if it is zero the click
sound is generated for each keystroke.  On the 800, location 731 is unassigned
and there is no way to turn off the key click.
    Some old 800 software will refuse to run on the XL/XE machines unless you
first run the Translator Disk.  What this does is to switch out the ROM
containing the normal XL/XE O/S and load a copy of the old 800 O/S (more or
less) into the RAM which normally hides under the ROM.  Then you can boot your
old software and it will think it is running on an 800.
    If you run into this condition often and find it a nuisance to have to run
the Translator Disk every time, one solution would be to buy CDY's OMNIVIEW
O/S replacement chip.  This acts so much like the 800 O/S that most old
software will run perfectly without the Translator Disk.  OMNIVIEW also gives
you an 80-column display capability, improved floating point software that
will make your BASIC programs run noticeably faster, and built-in RAMdisk
handler (OMNIVIEW256 version) which turns the Newell 256KXL memory expansion
board into a RAMdisk that can be used with any version of DOS.  Oh yes, and
a free 80-column word processor is included as well.

3.  The 800XL of course has the parallel bus connector on the back, making it
possible to build custom interfaces to the CPU bus.  I believe there are
10Mbyte hard disks available that use this point of connection to obtain very
high transfer rates.

4.  The 800XL has only two joystick ports instead of the four on the old 800.
On both machines, a PIA chip (Parallel Interface Adapter) is used to run the
joystick ports.  Port A runs Joysticks 1 and 2 on both machines.  On the
800XL, PIA Port B is used to do some internal switching rather than
controlling Joysticks 3 and 4 as it does on the 800.  For example, Port B
is used to select O/S ROM or RAM in the upper 16K of memory (Bit 0), BASIC
on or off (Bit 1), and diagnostic ROM on/off (Bit 7).  Bits 2 through 6 are
used for memory bank switching in the 130XE and the Newell 256K memory
expansion board mentioned earlier.  The PIA Port B is accessed as memory
location 54017 (Hex $D301).

That's about all I can think of offhand.  Hope I hit the main points you
needed to know.

-John Sangster
jhs@mitre-bedford.arpa