The Atari 7800 ProSystem
Processor: 6502 (note: This is Atari's custom 6502 which can be halted to allow other devices to control the bus)
Speed: 1.79Mhz, drops to 1.19Mhz when the TIA or RIOT chips are accessed
ROM: built in 4K BIOS ROM, 32K Cartridge ROM space without bankswitching
Sound: TIA custom sound chip, same as the 2600
Graphics: MARIA custom graphics controller, 320x200 resolution with 256 colors.
I/O: Joystick and console switch IO handled byte 6532 RIOT and TIA
Ports: 2 Joystick ports, 1 Cartridge port, 1 expansion connector, Power in, RF output
Atari 7800 Progamming
This site has a lot of good information on 7800 programming including technical comparisons between the 7800 and other systems of the era.
Atari Historical Society
An excellent collection of original Atari documentation and source code for the 7800.
The Atari 7800 Developers Page
This site contains information on how to build your own Atari 7800 development system and how to work around the encryption key to make home-brew cartridges.
The Anarchistic Atari Page
This site has (among other things) a copy of the Atari 2600/7800 development system disks for the Atari ST, but there is some useful stuff in the devkit even if you don't have an ST.
AtariHQ's 2600/7800 section
Here you will find the Atari 7800 FAQ, an archive of Atari 7800 screen shots, and some pictures of the 7800 hardware.
Also check out my Atari 2600 page and 6502 processor page for more useful information.
The Encryption Issue
There was a myth surrounding the Atari 7800 for some time that the 7800 cartridges were encrypted. This had scarred a lot of people off attempting to emulate the system since there was no information available on this encryption. It turns out that this is basically false, the cartridges are not encrypted.
What started this rumor was the fact that all the 7800 cartridges have a validation key in them. There were two purposes for this key, the first was to allow the BIOS in the 7800 to determine if the cartridge in the slot was a 2600 cartridge or a 7800 cartridge. The second purpose was to prevent unauthorized companies making cartridges for the 7800 without Atari's approval. The key works like this; when the system starts up the BIOS performs a mathematical algorithm using the data in the cartridge and the encryption key. If this algorithm yields a valid result, then the cartridge must be a 7800 cart, the system is locked into 7800 mode and the cartridge it executed. If the algorithm fails, the system is locked into 2600 mode and the cartridge is executed.
This validation key in no way interferes with emulation. The validation code in the BIOS runs on the emulator and gives a valid result just like in a real 7800. What the key does prevent is someone making new 7800 carts that can be run on unmodified 7800's.
Some workaround where created for this problem, but finally in August of 2001 the real solution surfaced. First the folks at Classic Gaming Expo released the original Atari ST utility that was used to generate the validation code. Frank Palazzolo then used this file to help create a PC based utility for creating the validation code:
For more information on the encryption algorithm check out the Stella Mailing List archive. Check out the messages in November and December of 1998.
7800 Software Guide: PDF, Plain Text
PAL DEV System - Converting a PAL 7800 into a dev system (by Graham.J.Percy)
Cartridge Pinouts - This file describes the pinout of the cartridge port and the function of each of the pins
Memory Map - This file describes the memory map of the 7800.
Video System - A description I wrote of how the 7800 video systems works.
Cartridge List - This is a list of the 7800 cartridges I have opened up and what type the cart is (normal, Pokey, Supercart, etc)
7800 EPROM conversion - This document was written by Bruce Tomlin and describes how to modify the 7800 so that the BIOS ROM can be replaced with an EPROM.
US4026555: Television display control apparatus
US4112422: Method and apparatus for generating moving objects on a video display screen
US3728480: TELEVISION GAMING AND TRAINING APPARATUS
7800 BIOS - This is the source code for the 7800 BIOS ROM. It was originally commented by Keith Henrickson, and further commented by myself.
7800 Sprite - This is my first working piece of 7800 code. It puts a simple sprite on the screen and allows you to move it left and right with the joystick.
Robotron - This is the beginnings of a dis-assembly of the7800 Robotron cartridge. It's still very preliminary but it's a start. If anyone has anything to contribute to it please e-mail me.
Food Fight - This is a partial dis-assembly of the 7800 Food Fight cartridge.
Various - You can find the original Atari source code for a number of 7800 games here.
Here are some tools to get people started doing Atari 7800 development:
DASM.ZIP: This is an excellent 6502 cross assembler for MSDOS. It supports pretty much any feature you could want in an assembler including macros, and the ability to produce raw-binary files. Thanks to Bob Colbert for porting this assembler from the Amiga.
A78SIGN.zip: Utility created by Frank Palazzolo to create the validation signature in 7800 carts
MESS: Currently the best emulator to use to run 7800 images. If you are doing development work it would probably be worth compiling your own version of MESS with the debugger option enabled.
7800DEV: Development framework to get you started developing Atari 7800 programs.
V7800 was an Atari 7800 emulator that I wrote a few years ago. After a couple releases I merged V7800 into the multi-system emulator MESS (see below).. I currently have no plans to continue this standalone version since it was just temporary until the MESS version was released. It's not perfect and it's a little slow, but it is playable. Due to copyright reasons, I cannot provide ROM images. PLEASE DO NOT E-mail me looking for ROM images. All messages looking for ROM images will be promptly deleted. I will do my best to answer all other e-mails.
7800 ROM images can be found at: http://www.atariage.com
What's new in V0.12:
- now shuts down properly when started with -nosound
- Fixed VBLANK timing. Foodfight now works.
- Added support for 48K carts
- Added pause button
- Fixed holey DMA support. Lucasfilm logo is now better
- Replaced 6502 CPU core with Neil Bradley's ASM 6502 core. (Increased speed, and accuracy)
- Fixed handling of fire buttons.
- Implemented Debugger. (Only available in debug version).
Click here to download V7800 V0.12.
Platform: Windows, *nix, Mac
MESS is a multisystem emulator that emulates the 7800 as well as many other systems.
ProSystem EmulatorWeb Site: https://home.comcast.net/~gscottstanton/
Author: Greg Stanton
This is a very nice, easy to use emulator for Windows. The emulation accuracy is very high with only a few glitches here and there.
Web Site: http://emu7800.sourceforge.net/
Author: Mike Murphy
Platform: Windows (with .NET Framework installed)
This is another easy to use Windows emulator, that support both 7800 and 2600 games.