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