Contact

Dan Boris

dboris@comcast.net

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The Atari 7800 was the follow-up to Atari's less then successful 5200. The 7800 was developed in 1984 but was shelved by Atari until 1986 when they brought it out to compete with the Nintendo Entertainment Systems (NES). Were as the 5200 borrowed it's technology from the 8-bit computer line, the 7800 was an entirely new design, but was still backwards compatible with the Atari 2600. The 7800 has all of the 2600 hardware in it, but when running in 7800 mode it uses an entirely different graphics chip (the MARIA) and has expanded RAM and cartridge space.

System Specs

Links

The Encryption Issue

Technical Files

Patents

Development Tools

Source Code

Emulation


System Specs:

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

RAM: 4K

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


Links

The Atari 7800 Tech Center

This site has a collection of 7800 technical information gathered from all over the net. I also has a good document that address the "encryption problem", see below for more on that.

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.

Lee Krueger's Atari 7800 Page

Instructions on how to do a composite video mod on a 7800 and how to add a B/W switch to the system

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 screenshots, 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 (Cracked!)

There has been a myth surrounding the Atari 7800 for some time that the 7800 carts were encrypted. This has scarred a lot of people off attempting to emulate the system since there was no info available on this encryption. It turns out that this is basically false, the carts are not encrypted.

What started this rumor was the fact that all the 7800 carts 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 cart in the slot was a 2600 cart or a 7800 cart. The second purpose was to prevent unauthorized companies making carts for the 7800 without Atari's approval. The key works like this; when the system starts up the BIOS performs executes mathematical algorithm using the data in the cart and the encryption key. If this algorithm yields a valid result, then the cart must be a 7800 cart, the system is locked into 7800 mode and the cart it executed. If the algorithm fails, the system is locked into 2600 mode and the cart 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 originial 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:

a78sign.zip

For more information on the encryption algorithm check out the Stella Mailing List archive. Check out the messages in November and December of 1998.


Technical Files

Atari Historical Society 7800 Section - Contains "Maria" specifications document, OS source listing, and other useful 7800 documents.

Converting a PAL 7800 into a Development System - By Graham.J.Percy

Atari Documents Depot - This site has copies of the official Atari 7800 programming documentation.

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.


Patents

US4026555: Television display control apparatus

US4112422: Method and apparatus for generating moving objects on a video display screen

US3728480: TELEVISION GAMING AND TRAINING APPARATUS

USRE028598: TELEVISION GAMING APPARATUS AND METHOD


Development Tools

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 emualtor 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 enable.d

7800DEV: Development framework to get you started developing Atari 7800 programs.


Source Code

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.


Emulation

All the current work I am doing on 7800 emulation is being done as part of the multi-system emulator MESS. 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.emuviews.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.


Last modified 9/22/2000