Jump to content
IGNORED

7800 Development


kamakazi

Recommended Posts

Hey guys!

 

I originally started this thread under another topic. It was suggested that I post it here. Here's what is going on:

 

1st, I'm in the process of learning the 7800 console. I'm not using any emulation...I'm using an actual Atari 520ST and a 7800 console connected to each other by way of printer port and cartridge port. I'm new to assembly and someone has already suggested an online book based on learning the language. The help I have gotten so far has been tremendous and very much welcomed and appreciated.

 

2nd, the person supporting me is sending me actual Atari documentation on programming the 7800...and what I learn I would like to start another thread to post what I've learned (with some secrets kept for myself LOL). I was trying to find any and all information I could find surrounding development for the 7800. If anyone out there including those that have already posted, find or know anything about programming the 7800, please pass on the information.

 

Thanx in advance for the information.

  • Thanks 1
Link to comment
Share on other sites

Ok...I got some interesting links to sites that are very interesting. Those wanting to learn the 2600/7800 might find these sites useful. Here are the links:

 

7800 Software Guide

 

2600 Programming Standards

 

7800 Programming Standards

 

7800 Development Kit Documentation

 

7800 Development Kit Schematics

 

7800 Keyboard Programming Guide

 

7800 BIOS Source Code

 

7800 to 5200 Adapter Schematics

 

7800 Maria Specs

 

Supercart Schematics (Hat Trick)

 

Supercart Schematics (Jinks)

 

Standard Cart Schematics

 

Atari's MadMac Assembler Documentation

 

Some new information that might please any 5200, 7800 and Atari 8-Bit computer programmers alike...it's by far the best book on assembly language for the 6502 I've ever came across. While I'm holding an actual copy in my hands...here's a link to the online version of this book.

 

Assembly Language Programming For The Atari Computers

 

I hope that someone finds this information useful. I'm also posting them here as my own way of easily finding this information should I ever need it...MSN hasn't been very reliable here lately and I'm afraid I'll lose the email with these links. Any other information I come across I will post it here.

 

It was also noted that there are some links broken in the above list. Is anyone else having problems with these links? If so, as soon as I find new links, I will fix the broken links. Sorry for the inconvenience.

 

7800 Software Guide link is fixed...but in smaller print (Sorry).

 

Until these links are fixed...please go here:

 

Whimsey Atari Docs

 

In here you will find documents on the 2600 and 7800.

Edited by kamakazi
  • Like 1
Link to comment
Share on other sites

Here is some other links I found useful.

 

Sound Development Tool Guide

 

Also, this webpage link has actual Atari Development Software for creating 7800 programs on an actual Atari ST computer. There's also the DevCard ROM image here should you decide to create your own Development board.

 

7800 Development Information

 

Well...it's a start to 7800 Development. However, these websites that have information on the Devcard don't seem to have information on the cable that connected the ST to the kit. If anyone knows of this information, please send it along!

 

And since this seems to be starting out as a topic to find 7800 Development Stuff...here's a link to an on-line book to help those learn Assembly Language...I'll be using it as well.

 

Machine Language On-line Book

 

Hope this helps!

Edited by kamakazi
Link to comment
Share on other sites

If you want to develope games for the 7800 on your current computer, a good place to start is to download the files from below. Also, you will need to have a good editor...I suggest Crimson Editor.

 

These can also be used to develope games for the 2600 (with the exception of the 7800 emulator). This is for those who want to create 7800 games on their current PC...I'm choosing a different route. I just feel that programs would be better achieved on an actual Atari computer and 7800 than through emulation.

v7800r12.zip

DASM22010b.zip

Atari2600_1_10.zip

Link to comment
Share on other sites

Well...it's a start to 7800 Development. However, these websites that have information on the Devcard don't seem to have information on the cable that connected the ST to the kit. If anyone knows of this information, please send it along!

 

If I remember it's just a straight through 25 pin cable. I'm not at home right now so I can't double check.

 

Mitch

Link to comment
Share on other sites

If I remember it's just a straight through 25 pin cable. I'm not at home right now so I can't double check.

 

Mitch

 

If you would, let me know. Thanks, this is some information I was looking for. Wasn't sure if it might have been a special cable or not.

 

Also, I'm trying to locate this particular IC, C014795-12. It's U1 on the Devcard. Any help would be greatful. What would be even better would be finding this card intact...but what's the chances of that happening. Anyway, thanks Mitch for the info. Every little bit helps.

Link to comment
Share on other sites

Further research turned up where I heard of that IC before...here's what it is...hope someone out there knows where I might could find one.

 

C014795 PIA (6520) HF4795 6/2/1983 Peripherial Interface Adaptor used in 8-bit computers (DLB)

 

http://www.best-electronics-ca.com/custom-i.htm

 

Mitch

Link to comment
Share on other sites

DAN!! Thank you for the efforts you've put into finding and posting the information on Atari! The 7800 Devcard Schematic you made out is what I'm attempting now so I can have a TRUE, full Atari game development environment. And thanks to Mitch for the link. I'm on my way to developing yet. Another question...where could I find one of those Devboards...or how would you suggest I make the devcard that will plug into the 7800's cartridge port?

 

Thanks!

Link to comment
Share on other sites

DAN!! Thank you for the efforts you've put into finding and posting the information on Atari! The 7800 Devcard Schematic you made out is what I'm attempting now so I can have a TRUE, full Atari game development environment. And thanks to Mitch for the link. I'm on my way to developing yet. Another question...where could I find one of those Devboards...or how would you suggest I make the devcard that will plug into the 7800's cartridge port?

 

Thanks!

 

Great work. It is good to have all this information listed in one place.

 

One small problem with the "7800 Development Kit Schematics" file. U9 is listed as PAL16L8ACN device.

 

This means it will need some programming for the devboard to be of any use. There is no HDL (Hardware Description Language) file listed, in any of the files I have seen yet. This would be needed to allow this device to be programmed correctly.

 

 

EDIT----

Ignore comment about Missing file for PAL, I have just found it on www.7800.org (listed in a link above)

Edited by Sub(Function(:))
Link to comment
Share on other sites

 

Very interesting, on page 1, in the table, there is the following entry:

 

"GCC1722 - Bus System: 680x0"

 

Meaning that apparently, a successor to the 7800 with an 16bit 68k CPU was planned.

Probably more to do with what it was developed on. Since Atari (not GCC) designed the 7800 development system around the Atari ST computers which used the 68000, it's probably what that refers to.

 

Although I could be completly wrong about that (which I think I am).

 

Allan

Edited by Allan
Link to comment
Share on other sites

 

Very interesting, on page 1, in the table, there is the following entry:

 

"GCC1722 - Bus System: 680x0"

 

Meaning that apparently, a successor to the 7800 with an 16bit 68k CPU was planned.

Probably more to do with what it was developed on. Since Atari (not GCC) designed the 7800 development system around the Atari ST computers which used the 68000, it's probably what that refers to.

 

Although I could be completly wrong about that (which I think I am).

 

Yes, because it refers to a Maria chip revision (GCC1722) especially made for the 68k bus system, as the table indicated. This revision is also housed in a larger chip package (PLCC64 instead of DIP48), which could indicate a 16 bit data bus.

Link to comment
Share on other sites

I just got my hands on the holy grail of 2600/7800 Development! I haven't had much time to go over the 7800 portion (most of it is already here anyway). But it's all written by Atari with no missing characters or print. There's even mentioning about a 7800 Monitor (???). Some pretty cool stuff!

Link to comment
Share on other sites

Yes, because it refers to a Maria chip revision (GCC1722) especially made for the 68k bus system, as the table indicated. This revision is also housed in a larger chip package (PLCC64 instead of DIP48), which could indicate a 16 bit data bus.

 

GCC also did the Food Fight arcade game for Atari which was based on the 68000 processor. I wonder if they intended to use the 1722 version in arcade games?

 

Dan

Link to comment
Share on other sites

Yes, because it refers to a Maria chip revision (GCC1722) especially made for the 68k bus system, as the table indicated. This revision is also housed in a larger chip package (PLCC64 instead of DIP48), which could indicate a 16 bit data bus.

 

GCC also did the Food Fight arcade game for Atari which was based on the 68000 processor. I wonder if they intended to use the 1722 version in arcade games?

 

Dan

 

I doubt it, since at that time, Atari already had their own powerful 68000 arcade hardware (Marble Madness, Peter Pack Rat), and GCC alone probably could never have financed the development for further arcade games. But you are right, Food Fight is THE very first arcade game which uses an 68000 (1983), maybe that's why they perhaps thought it could be used in home video games so early? On the other hand, 680x0 is probably also a hint for the 68010. We'll probably never know fully what their plans were. But interesting nonetheless.

Link to comment
Share on other sites

Ok guys...here's a short example program for something to do with the 7800. According to this paperwork, the code is supposed to be "Improved Memory Display". See what you guys come up with...I couldn't get it to do anything.

 

     JSR HEX4
    LDA #16
    STA $F0
ST   JSR NWLN
    JSR SHMEM
    JSR BLANK
    LDY #0
LP   LDA (SAVPC),Y
    BPL BR
    LDA #'.'
BR   JSR OUTALL
    INY
    CPY #8
    BNE LP
    DEC $F0
    BNE ST
    RTS

 

This is supposed to be code for something to do with showing how the "monitor" interacts with the 7800. Not quite sure what this is but, seems interesting. Hope it helps others.

Link to comment
Share on other sites

Another interesting bit of information here for both 7800 and 2600 programmers alike. There is a way to set a "timer" in the 6532 chip. Here's what I've found...figured I'd share this much information to help get more games out from other homebrewers.

 

The PIA uses the same clock as the microprocessor so that one PIA cycle occurs for each machine cycle. The PIA can be set for one of four different "intervals", where each interval is some multiple of the clock (and therefore machine cycles). A value from 1 to 255 s loaded into the PIA which will be decremented by one at each interval. The timer can now be read by the microprocessor to determine elasped time for timing various software operations and keep the synchronized with the hardware (TIA chip).

 

The timer is set by writing a value (from 1 to 255) to the address of the desired interval setting according to the following table;

 

HEX ADDRESS INTERVAL MNEMONIC

$294 1 Clock TIM1T

$295 8 Clocks TIM8T

$296 64 Clocks TIM64T

$297 1,024 Clocks TIM1024T

 

For example, if the value of 100 were written to TIM64T ($296) the timer would decrement to 0 in 6400 clocks (64 clocks per interval x 100 intervals) which would also be 6400 microporcessor machine cycles.

 

Just shareing some more information for your favorite 2600/7800 console. Hope that this will spark some interest into creating more games for these consoles.

Link to comment
Share on other sites

Another interesting bit of information here for both 7800 and 2600 programmers alike. There is a way to set a "timer" in the 6532 chip. Here's what I've found...figured I'd share this much information to help get more games out from other homebrewers.

 

The PIA uses the same clock as the microprocessor so that one PIA cycle occurs for each machine cycle. The PIA can be set for one of four different "intervals", where each interval is some multiple of the clock (and therefore machine cycles). A value from 1 to 255 s loaded into the PIA which will be decremented by one at each interval. The timer can now be read by the microprocessor to determine elasped time for timing various software operations and keep the synchronized with the hardware (TIA chip).

 

The timer is set by writing a value (from 1 to 255) to the address of the desired interval setting according to the following table;

 

HEX ADDRESS INTERVAL MNEMONIC

$294 1 Clock TIM1T

$295 8 Clocks TIM8T

$296 64 Clocks TIM64T

$297 1,024 Clocks TIM1024T

 

For example, if the value of 100 were written to TIM64T ($296) the timer would decrement to 0 in 6400 clocks (64 clocks per interval x 100 intervals) which would also be 6400 microporcessor machine cycles.

 

Just shareing some more information for your favorite 2600/7800 console. Hope that this will spark some interest into creating more games for these consoles.

 

The timer (which is actually in the 6532 RIOT chip) is really important in 2600 programming but is generally not used in the 7800 because the clock speed to the 6532 shifts from 1.79Mhz to 1.19 Mhz when you read/write to it which would throw off the timing of the clock.

 

Dan

Link to comment
Share on other sites

Ok guys...here's a short example program for something to do with the 7800. According to this paperwork, the code is supposed to be "Improved Memory Display". See what you guys come up with...I couldn't get it to do anything.

 

     JSR HEX4
    LDA #16
    STA $F0
ST   JSR NWLN
    JSR SHMEM
    JSR BLANK
    LDY #0
LP   LDA (SAVPC),Y
    BPL BR
    LDA #'.'
BR   JSR OUTALL
    INY
    CPY #8
    BNE LP
    DEC $F0
    BNE ST
    RTS

 

This is supposed to be code for something to do with showing how the "monitor" interacts with the 7800. Not quite sure what this is but, seems interesting. Hope it helps others.

 

Hard to tell what it might do with out seeing the code for the subroutine call.s

 

Dan

Link to comment
Share on other sites

Like I said, Dan, I'm just now learning Assembly without any books of any kind...I now know what JSR stands for thanks to your post...Jump-Sub-Routine...right? I was just trying to post some codes passed on to me in hopes that someone would help me understand assembly better.

 

On a final note, those codes I posted were for use in the 7800 Monitor...not 6502 Assembly Language which is why I kept getting errors upon a DASM compile. See...I learned something! Does anyone know if DASM has an include file (or library file) for 7800 support? Or, in simpler terms...is there a 7800 library that will work with DASM for learning purposes until I get this Atari gear up and running?

Link to comment
Share on other sites

Actually no...

 

When the Atari-GCC deal was looking to go south and GCC wasn't going to get royalty payment for the design, nor payment for generating and encrypting games (GCC had a deal with the Warner owned Atari that they would encrypt all games and be paid a royalty for each game, it would've turned into a VERY lucrative deal for them)

 

GCC started to look to other avenues for the MARIA design, one being a potential version on a 68000 bus. It was only in spec's and never actually developed.

 

This was from directly talking with Doug Macrae and Steve Golson from GCC when I had everyone together for the 20th anniversary 7800 reunion up on Vintage Computer Fest East at Sun Computer Systems.

 

 

 

Curt

 

 

 

Very interesting, on page 1, in the table, there is the following entry:

 

"GCC1722 - Bus System: 680x0"

 

Meaning that apparently, a successor to the 7800 with an 16bit 68k CPU was planned.

Link to comment
Share on other sites

Ok guys. I need some ideas on what I'm doing. I just received a book called Assembly Language Programming for the Atari Computers. It's been by far the best source on assembly language for the 6502 I've found yet! However...it's based on the 8-bit computer and 5200 consoles that contained the ANTIC, GTIA (CTIA on some) and POKEY. While I am aware that games produced for the 7800 can in fact have the POKEY chip placed in them to offer better sounds, my main concern is the graphics chip MARIA. Is there any documentation that will teach me how to display graphics on the screen with the MARIA chip? Also, does the 7800 have ATASCII imbedded in any of its chipsets?

 

I know that there was someone on here that posted somewhere they actually used an ST with MADMAC for programming the 7800. If they are reading this or anyone with the same setup, please help. All I'm trying to do is get the 7800 to say "HELLO" using only Assembly Code. I currently have some code written, but the ST doesn't have a CD burner, nor does today's computers come with a floppy drive...so I can share the code I'm using. Also, the book is using code written on the ATARI ASSEMBLER/EDITOR CARTRIDGE.

 

My other questions are:

 

Those using the ST and MADMAC...how did you connect your ST to the 7800 for testing/debugging code?

Where can I find a copy of MADMAC?

My ST currently has only the 360k floppy drive...any ideas on where to find a hard drive?

 

I was also given a copy of Epyx's Art & Film Director program (new still in factory shrinkwrap). If any sprites or artwork are done in this program, can the 7800 reproduce them? Sorry guys, I'm NOT going to give away the secret of where I got this stuff.

 

Thanks in advance!

Edited by kamakazi
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...