Jump to content
IGNORED

How close is the 5200 hardware and program language to these in the Atari400 and 800?


Recommended Posts

Is it considered easy or difficult to reprogram games for the Atari 400 or 800 as to run with professional quality on a 5200 system?

 

Are there big differences in

1) hardware

2) program language?

 

I’m very ‘layman’ as to programming and hardware.

 

If its possible, please, describe or explain in quite straightforward or common terminology.

 

Edited by Giles N
Link to comment
Share on other sites

IMO, virtually identical. The only difference chip wise is there is no PIA chip that handles the joysticks, instead they use the POKEY keyboard chip to read user input. There is also a limit on the OS in that it doesn't have many features other then a built in character set.

 

This means you must treat any program you make like you are programming a 16k 400/800 with no joysticks and only keyboard input. One chip, the main hardware difference is the POKEY is mapped at $E800, this doesn't make a huge difference when you program as you can just change the memory locations you write and read to allow for the different addresses.

 

What I do/did was set up everything on a real 800xl but you could do it with an emulator. For instance, let's say you want to use Graphics mode 0. You set ramtop to 16k and do a Graphics(0) call. You then you the display list pointer to save out the display list and it will be right for a 5200. Works that way for any graphics mode IIRC.

 

Because of the lack of OS support, all I/O to the screen has to be done under program control. You can't just use the OS PUT/GET commands. If you want to take advantage of the 32k cart space available, then you would want to put anything that is static in the cart and leave it there. For example, if you use a redefined character set, there is no need to put it in the lower 16k RAM area, you would just keep it in the cart and point the 5200 to it there.

 

It really isn't that much harder to use a 5200 because for most things 800 you aren't using the OS anyway. The OS screen I/O is kind of slow, so most everyone uses direct screen writes and reads anyway.

 

Here is Phaeron's memory map.

$F000-FFFF ROM (4K)

$E800-EFFF POKEY

$E000-E7FF Expansion

$D500-DFFF Unmapped

$D400-D4FF ANTIC

$D000-D3FF Unmapped

$C000-CFFF GTIA

$4000-BFFF Cartridge

$0000-3FFF RAM (16K)

Edited by ricortes
Added Phaeron memmap
  • Like 1
Link to comment
Share on other sites

Antic addresses are the same since it has the full bus and does it's own decoding.  GTIA and Pokey are different since they require external decode + chip select.

 

Lack of OS support on 5200 IMO is a minor problem considering that most cartridge based 800 games made very little use of the OS.

The character set is present in both cases.  Screen/keyboard IO in most 800 games was done by hitting the hardware directly rather than using the OS.

Such was the tradition for many home computers and consoles of that timeframe and continued through the life of Amiga and ST.

 

The main considerations are that the 5200 has only the 16K of RAM and that no external storage is available (disk, tape), and that the sticks and keypads are significantly different to the computer insofar as reading them.

 

Languages - assembly tends to be the choice for 5200 since it has less dependence on runtime libaries and the like which could fairly quickly swallow up Rom space.

In theory Basic programs could be ported over - that's something I've been wanting to try.  But it would require some OS extensions, FP and converted Basic processor living in a 32K Rom.  The Basic program itself would be injected and run from Ram.

  • Like 1
Link to comment
Share on other sites

3 minutes ago, Rybags said:

Antic addresses are the same since it has the full bus and does it's own decoding.  GTIA and Pokey are different since they require external decode + chip select.

 

Lack of OS support on 5200 IMO is a minor problem considering that most cartridge based 800 games made very little use of the OS.

The character set is present in both cases.  Screen/keyboard IO in most 800 games was done by hitting the hardware directly rather than using the OS.

Such was the tradition for many home computers and consoles of that timeframe and continued through the life of Amiga and ST.

 

The main considerations are that the 5200 has only the 16K of RAM and that no external storage is available (disk, tape), and that the sticks and keypads are significantly different to the computer insofar as reading them.

 

Languages - assembly tends to be the choice for 5200 since it has less dependence on runtime libaries and the like which could fairly quickly swallow up Rom space.

In theory Basic programs could be ported over - that's something I've been wanting to try.  But it would require some OS extensions, FP and converted Basic processor living in a 32K Rom.  The Basic program itself would be injected and run from Ram.

Do you have any idea how many 5200s are out in the wild? I tried booting my on a plate 5200 recently and it seems to have given up the ghost.

 

But yes, could'a, should'a, would'a. I mean with a 32k of cart space, you could stick an 800/400 OS + BASIC and still have room for 14k of other stuff. The POKEY SIO is brought out on the expansion connector so another could'a, should'a, would'a. No excuse for me as it is something I could'a, should'a, would'a done but for getting into a dozen other things like sailing and restoring motorcycles. 

Link to comment
Share on other sites

How many out there?  The Wiki article mentions a million and I'd not be surprised if that's an inflated figure.

 

The expansion port - from what I gather there was never anything made to utilize it.  It'd be fairly trivial to allow cassette operation, but disk would be a little more complex.

Since there's no PIA, motor control and command lines aren't available so would have to be provided by some alternate means.

Link to comment
Share on other sites

Options dilemma. Hard to tell what people would want since I think most people just opt for ~Atari Classic expanded cart. If it just copied the disk handler from the 800 with DISKINV<?$E453?> and made storage the responsibility of the CART/programmer, it should work with something like RespeQT since it doesn't use the Command line me thinks. You would be limited to a 8 meg disk!<sic> Lost of couple of computers so I don't even think I have a working development system at the moment. Just saying a slug now and can't be of much help. :)

Link to comment
Share on other sites

Hi,

 

   I'm just curious what you would need to add an SIO (compatible) connector? I guess you would need some sort of bootstrap code in a cartridge for SIOV support, and some way to supply Command line functionality to the SIO connector, how complicated would that be in terms of an expansion connector/bridge?

Edited by E474
Link to comment
Share on other sites

Most of the wiring should be simple - the Command line is needed though.

I seem to remember something about fast Pot scan mode being able to pull the paddle lines low so maybe that in conjunction with a joystick port adaptor could be used as well as the expansion port?

 

Or maybe best to just use the expansion port.  There's the "Enable E0" line which could probably be used in conjunction with a latch IC to provide the IO bit for Command.

 

The SIO code would reside in the cartridge and shouldn't take up too much space, probably under 1/2 a K.

Link to comment
Share on other sites

Mostly agree on Command line in that if you wanted to use 90%+ of Atari stuff like a 1050 it is essential. Looking at the schematic, the only thing needed for a simple interface to a RS232 protocol would be a chip like the 1489 or one of the ttl to USB chips like the FTDI offerings. An IDE 36 contact edge connector and either wire wrap or prototype board. IMO: It REALLY looks like a designers dream from a capability standpoint. I mean it brings the system clocks and has an interrupt line, everything is already wired with a terminating resistor, that kind of stuff. If I have it right, the substitutions of connections vs an 800 serial bus would be

pin 12 SIO DATA IN

pin 15 SIO DATA OUT

pin 1 &/or 36 5V

pin [3, 11, 28, 34] Ground

https://atariage.com/5200/archives/schematics/Schematic_5200_IO_Low.html

The use of 800 OS serial control. Well it could just be lifted right out of 800 OS with a text editor and cleaned up to run from cart space but as Rybags points points out, it is set to use the handshaking lines. Ditto for SIO2PC and Atari Classics in that they both rely on the Command line. Someone recently posted some code for bypassing the OS and use direct reads and writes to the POKEY chip, I can't recall who. In that mode on the lowest level I believe you poll the POKEY chip rather then write IRQ code. That is, you would just write a byte to the POKEY chip and wait for it to ACK completion of send in its register. Ditto for receive, just read the POKEY register to see if it has a byte ready. 

Edited by ricortes
DOH! Misspelled out
Link to comment
Share on other sites

Curious about something, while this is topic has gone toward making a 5200 more like the Atari 8bit computers, only thing I can think of that's missing going the opposite way (making the Atari 8-bit computers more like the 5200) would be the cartridge port and the joystick port.

 

How plausible would it be to go that route to make a 800/5200 hybrid?  Maybe throw in a VCS adapter to get 2600 playback :)

Link to comment
Share on other sites

On 8/27/2019 at 8:57 AM, leech said:

Curious about something, while this is topic has gone toward making a 5200 more like the Atari 8bit computers, only thing I can think of that's missing going the opposite way (making the Atari 8-bit computers more like the 5200) would be the cartridge port and the joystick port.

 

How plausible would it be to go that route to make a 800/5200 hybrid?  Maybe throw in a VCS adapter to get 2600 playback :)

It would be really hard w/o some extensive work under the hood. Making a simple plug in adapter to read the 5200 carts would be easy with a little bit of work but the 32k of address space just won't fit into an 8 bit's memory map. You would have to modify the 8 bit to something like copy the first 16k of ROM into RAM and let the remainder reside in CART space. Keyboard input vs joystick would probably be a little silly i.e. pressing q for up, z for down, ... not sure as I have never done key codes on a 5200.

 

Just a by the by. OCD kicked in and I ordered parts for a 5200 expansion adapter. Just some proto board with enough fingers and a 36 pin edge card connector. I used to have a lot of left over 1489s laying around but seem to have misplaced them. *IF*<big if> I do put soldering iron to contacts I will be back begging for someone to risk their real 5200 to see if we can get it talking RS232. I'll take a look at getting my 5200 to work, little chance of that as it has suffered greatly from improper storage. It was never much of a system anyway, just a populated board I got surplus for $7.50 at Halted Specialties.

Link to comment
Share on other sites

Ok, I never had a 400 or 800.

 

Checked out some gameplay-videos.

 

Here I post screenshots with titles.’

 

Anyone here know if these are good games?

 

Anyone who’s played them?

 

Remember them?

 

What are they like (1-10)? 

 

Did the developers miss out on not releasing for the 5200?

A49DA302-A60E-466B-A329-C0CDA202B74A.jpeg

DDDBDD3A-7C90-43B4-A712-B433725D22DA.png

76C78DE3-FBF2-4272-BB86-AD30D526EE2E.jpeg

BEA74E0C-86AB-45F8-A93E-E675405EDAE0.jpeg

C576B9A8-EF0D-4E6E-A5F8-FCF6706BC097.jpeg

655AD98A-C5F2-4EB2-979B-25E03342935D.jpeg

0AAF4FC0-33D3-4502-AE61-36C83FD9F0E7.jpeg

CBBF4FFE-BFEA-4823-929C-38F729F6D51B.jpeg

113C415B-5DD2-43ED-993B-D55B40F370F4.jpeg

6192F878-7FF4-4171-B0F2-80D846467DAC.jpeg

3B698F7B-5E0A-4005-A696-7C2F0C031507.jpeg

EEFD66FA-5CBA-4B12-A5E3-A735E69453AA.jpeg

E9FD9AD2-FB40-4329-93E9-67A3C67BCCFE.jpeg

C60698CE-B528-4AB7-B767-DAF8D7394BDB.jpeg

F92BD41B-78D8-46CD-BD96-842F688B3D55.jpeg

FB2790F6-F5F1-4650-AAE5-127CF2803BAA.jpeg

A2F0FA25-9124-4C19-9B2F-8B23267BE67F.jpeg

AAF2A4B1-2214-4BD4-A761-91752889CCDA.jpeg

2F978077-59E3-497B-A5B2-2623202A02EA.jpeg

EBC8DFDF-DE52-4DB7-B5A5-FA2D90ABF9B5.jpeg

EA29041C-F0CB-430D-940C-8E9B1A093BFE.jpeg

02C035AA-A255-4BA6-B7C1-E9013FE0F0E6.jpeg

2DD3D8DD-6029-4AE9-AADC-9DA5404DCCBE.jpeg

AA17EC73-30CC-4697-8D0E-C94672CA1176.jpeg

2E295BA0-A067-4EDC-8FA2-2F24DFC94A2D.jpeg

090CF440-5845-49EF-8F93-71B83B3E2EB7.png

57DFB6B1-7544-4A71-B686-9BFF8CDAED21.jpeg

3205392A-D512-4457-97E7-9D6E9359ED2E.png

BBE97090-0446-4CD3-9850-6B4A5825EEBD.jpeg

B47B20F5-9E83-4D59-8720-2E75DBA5CE33.jpeg

9499DD2B-9C41-470C-BAAD-42E2C52A2680.jpeg

91D27241-98E4-48CA-A070-43CBED748B1E.jpeg

3CEFA52D-96C2-4E70-A001-1CC8D2B16BB4.jpeg

1AAFB5D8-6691-42DC-ACB0-BA96FE8B67F5.jpeg

71464485-C1C1-41F0-9904-325C3D8127FB.jpeg

DF0FDB8A-5B39-4D46-8F59-5453E267D4B8.jpeg

Link to comment
Share on other sites

On 8/28/2019 at 11:10 AM, ricortes said:

It would be really hard w/o some extensive work under the hood. Making a simple plug in adapter to read the 5200 carts would be easy with a little bit of work but the 32k of address space just won't fit into an 8 bit's memory map. You would have to modify the 8 bit to something like copy the first 16k of ROM into RAM and let the remainder reside in CART space. Keyboard input vs joystick would probably be a little silly i.e. pressing q for up, z for down, ... not sure as I have never done key codes on a 5200.

 

Just a by the by. OCD kicked in and I ordered parts for a 5200 expansion adapter. Just some proto board with enough fingers and a 36 pin edge card connector. I used to have a lot of left over 1489s laying around but seem to have misplaced them. *IF*<big if> I do put soldering iron to contacts I will be back begging for someone to risk their real 5200 to see if we can get it talking RS232. I'll take a look at getting my 5200 to work, little chance of that as it has suffered greatly from improper storage. It was never much of a system anyway, just a populated board I got surplus for $7.50 at Halted Specialties.

Huh, I thought the 5200 only had 16k.  Certainly would be nice to get something that sort of just auto-converted software back and forth, but I do think it'd be sweet to be able to use the analog sticks on the Atari 8bits.  If only for certain games that could benefit from them.

Link to comment
Share on other sites

On 9/1/2019 at 11:54 AM, leech said:

Huh, I thought the 5200 only had 16k.  Certainly would be nice to get something that sort of just auto-converted software back and forth, but I do think it'd be sweet to be able to use the analog sticks on the Atari 8bits.  If only for certain games that could benefit from them.

Right, only 16k RAM BUT the carts have 32k address space. Natively the 800XL only has room for 16k of cart space. Probably a lot of ways to do it, all tough. You would need some way of banking the 5200 cart in an XL to read out the 16k that isn't normally accessible. Somebody hot could probably do it. Something like a latch/decoder circuit like the OSS Supercarts<74ls74 + decoding of Phase 2 clock<?> and cartridge select line> to bank it, a bit of program to copy the 16k that can't be addressed to the XL RAM area, switch to the upper 16k of the cart in to appear in the normal XL/5200 area. You would probably have to see if the XL could run the 5200 OS ROM w/o crashing since it uses different vectors IIRC.

 

The thing is some Atari 800 cassette programs were converted to CARTs. All they did from the cart was add a bit of code to copy the program to low RAM i.e. $1000-$4000 like they may have been loaded from a cassette, then jump to the code.

 

IDK, if someone was to say do something like an Infocom game, you could probably program it in C and assemble it to run at ~$600-$3FFF. All the unchangeable maps, DLs, and responses could remain in the CART and run from there. 

 

You can use old analog joysticks from IBM/Apple on an 8 bit, just need to rewire them for different resist/caps. Not a lot of stuff could be used with them though. I think Blazing Paddles and maybe Rambrant.

Link to comment
Share on other sites

  • 4 weeks later...
On 8/24/2019 at 8:50 PM, Rybags said:

Most of the wiring should be simple - the Command line is needed though.

I seem to remember something about fast Pot scan mode being able to pull the paddle lines low so maybe that in conjunction with a joystick port adaptor could be used as well as the expansion port?

 

Or maybe best to just use the expansion port.  There's the "Enable E0" line which could probably be used in conjunction with a latch IC to provide the IO bit for Command.

 

The SIO code would reside in the cartridge and shouldn't take up too much space, probably under 1/2 a K.

We discussed this a few years ago. I had figured out how to generate -COMMAND without adding extra hardware:

 

Link to comment
Share on other sites

On 8/24/2019 at 9:06 AM, Giles N said:

Is it considered easy or difficult to reprogram games for the Atari 400 or 800 as to run with professional quality on a 5200 system?

 

Are there big differences in

1) hardware

2) program language?

 

I’m very ‘layman’ as to programming and hardware.

 

If its possible, please, describe or explain in quite straightforward or common terminology.

 

Article on the differences:

http://www.atarihq.com/danb/files/52analog.pdf

 

  • Thanks 1
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...