Jump to content
Sign in to follow this  
Slor

An OS that will run 800-only AND XE carts?

Recommended Posts

Surely there is a solution for this: I have an XL machine that I intend to use exclusively for running game cartridges. As everyone knows, there are some games (Demon Attack, K-Razy Kritters, etc.) that will not run on the XL OS without a translator, and there are some games (Ace of Aces, Desert Falcon, etc.) that will not run on an 800. In the latter case, I'm not exactly sure if there's an issue with OS-B itself or if it's purely because of the 64K memory requirement.

 

Now, I took my XL and followed a suggestion to replace the OS chip with BOSS XL since it was designed to allow the older software to run with the newer machines. It runs the old 800-only stuff quite well, but it fails to run the majority of XE games I've tried (Fight Night actually worked). I have tried versions 1.0 and 2.0 of BOSS XL with the same results. What I'm not sure about is if I've missed some specific way to boot BOSS XL in order to make the XE games work or it this is a limitation of the OS.

 

Bottom line, I would love to have this machine run all of the cartridges I have (or at least the vast majority of them), so I'm looking for any direction anyone can offer.

 

Thanks!

James

Share this post


Link to post
Share on other sites

The AtariMax 32in1 OS is probably the best solution.

 

Or, a mulitcart, then run "fixed" games from it.

 

Most software that had issues was pretty easily fixed. In most cases it was just jumping to illegal entry points in the OS, or using memory locations which shouldn't be altered.

 

I didn't think that there would be any games with problems on the 800, for any other reason than needing the extra memory.

Share this post


Link to post
Share on other sites

The AtariMax 32in1 OS is probably the best solution.

 

Or, a mulitcart, then run "fixed" games from it.

 

Most software that had issues was pretty easily fixed. In most cases it was just jumping to illegal entry points in the OS, or using memory locations which shouldn't be altered.

 

I didn't think that there would be any games with problems on the 800, for any other reason than needing the extra memory.

 

Thanks for the suggestions. I have the 32-in-1 in another machine (it's great), but I'm looking for doing as little as possible to move from one game to the next. Of course, the exception to that is I actually like to use the original carts as well. Not sure why - it's just my thing. :)

 

This reply did remind me to do something I had meant to do already, and that was to try the XE games on my XL with the 32-in-1 booted in OS-B. Lo and behold, it ran everything I tried in it. :) If the image Steven uses for the 32-in-1 is modified to be a 16-bit binary, then I should be able to get that from him and stick it in my game machine.

 

James

Share this post


Link to post
Share on other sites

The AtariMax 32in1 OS is probably the best solution.

 

Or, a mulitcart, then run "fixed" games from it.

 

Most software that had issues was pretty easily fixed. In most cases it was just jumping to illegal entry points in the OS, or using memory locations which shouldn't be altered.

 

I didn't think that there would be any games with problems on the 800, for any other reason than needing the extra memory.

 

Thanks for the suggestions. I have the 32-in-1 in another machine (it's great), but I'm looking for doing as little as possible to move from one game to the next. Of course, the exception to that is I actually like to use the original carts as well. Not sure why - it's just my thing. :)

 

This reply did remind me to do something I had meant to do already, and that was to try the XE games on my XL with the 32-in-1 booted in OS-B. Lo and behold, it ran everything I tried in it. :) If the image Steven uses for the 32-in-1 is modified to be a 16-bit binary, then I should be able to get that from him and stick it in my game machine.

 

James

 

Indeed! Thanks again for helping to knock my brain back into place. I pulled the OSB image from the 32-in-1, stuck it in the XL, and everything works just fine. This was actually the first thing I was going to try before I started messing with BOSS, and it's amazing how the easy things get away from you. The only thing that I can't do now is make use of the Galaxian image I put in place of built-in BASIC (since OSB doesn't know anything about built-in BASIC).

 

There's another OS for the 32-in-1 listed as "800 compatible". I wonder if it recognized the built-in BASIC rom. Guess I'll just have to see...

 

James

Share this post


Link to post
Share on other sites

I'd recommend the thing to do is to replace the ROM in the cart with a patched one where possible, drastic I know ;)

 

Since most carts don't have eprom boards in them, that wouldn't seem like the easiest thing to do. Only thing I'm willing to modify is the machine itself, and it seems that the 800 OS with 64K memory is the ticket.

 

I'm actually doing all this with a 600XL because it's the smallest of the bunch. I've upgraded the memory to 64K, swapped in the 800 OS, swapped in Galaxian for BASIC (in case I ever find an OS that will play everything AND support the built in cartridge rom), and I'm upgrading the video today. This compact machine should fit well on my game console rack. :)

 

James

Share this post


Link to post
Share on other sites

This compact machine should fit well on my game console rack. :)

 

Then I assume you have done the composite video output.

 

Or Metalguy's internal MyIDE. The OS version fits inside a 600xl

post-7833-1158423932_thumb.jpg

 

 

I too like the 600xl for its size. I have 4. 2 upgraded to 64k and I have 1 external 64k upgrade from Microbits. 1 with the composite mod. I just bought a PAL 600xl too. I did the ram upgrade, Metalguy did the composite. I probably could have done it, but I did not have all those parts. I think BEST has the full mod for only $12. You will lose the Channel 2-3 switch with that mod though. It should then look like the PAL 600xl ports.

 

He is working on a 256k upgrade for someone, but he has been busy with the MIO boards. If you are interested, let him know. He might give it more priority.

Edited by Almost Rice

Share this post


Link to post
Share on other sites

This compact machine should fit well on my game console rack. :)

 

Then I assume you have done the composite video output.

 

Or Metalguy's internal MyIDE. The OS version fits inside a 600xl

post-7833-1158423932_thumb.jpg

 

 

I too like the 600xl for its size. I have 4. 2 upgraded to 64k and I have 1 external 64k upgrade from Microbits. 1 with the composite mod. I just bought a PAL 600xl too. I did the ram upgrade, Metalguy did the composite. I probably could have done it, but I did not have all those parts. I think BEST has the full mod for only $12. You will lose the Channel 2-3 switch with that mod though. It should then look like the PAL 600xl ports.

 

He is working on a 256k upgrade for someone, but he has been busy with the MIO boards. If you are interested, let him know. He might give it more priority.

 

I have the parts for the A/V mod and will be installing them today (the one I got did come from Best, and it has a few more parts than the freenet mod). Also, I did a little more querying and found that Omnimon may be the best OS for me here. In my testing thus far, it has worked with both cartridge extremes and it of course will run the internal BASIC cartridge as well, so that'll most likely be the one.

 

How do you like the external RAM upgrade? I also got my ram parts from Best and chose to go with the internal mod to keep it as low profile as possible. 64K should be enough for me since this machine will be dedicated to running cartridge games. The other machines I use are loaded up with bigger ram, internal MyIDEs with CF cards, etc. etc.

 

James

Edited by Slor

Share this post


Link to post
Share on other sites

How do you like the external RAM upgrade? I also got my ram parts from Best and chose to go with the internal mod to keep it as low profile as possible.

 

The external defeats the purpose of having a 600xl. It makes it bulky and hard to use. I would rather use a 800xl than a 600 with external upgrade. I only got it because it was cheap. The internal ones I did using ram from a couple of dead XEGS. Then I only needed to jump 3 wires on the MB to the point in the computer.

 

64K should be enough for me since this machine will be dedicated to running cartridge games. The other machines I use are loaded up with bigger ram, internal MyIDEs with CF cards, etc. etc.

 

I see, then you would not need more than 64k in most cases. Have you tried to have both OSb and XE rom on 2 different chips and switching between the 2 for your problem with 400/800 carts and XL/XE cart?

something like this?

Share this post


Link to post
Share on other sites

64K should be enough for me since this machine will be dedicated to running cartridge games. The other machines I use are loaded up with bigger ram, internal MyIDEs with CF cards, etc. etc.

 

I see, then you would not need more than 64k in most cases. Have you tried to have both OSb and XE rom on 2 different chips and switching between the 2 for your problem with 400/800 carts and XL/XE cart?

something like this?

 

That's another switch I don't want to have to flip. :) At any rate, I got it built with Omnimon, and so far nothing I've put in it has failed to run. So, I'm calling it the 600XLGS (GS for Game System). It now has 64K RAM, A/V output, Omnimon XL OS, and built-in Galaxian. I can't think of much else that would need doing for this purpose, so I'm also calling it "done".

 

James

Edited by Slor

Share this post


Link to post
Share on other sites

If you are purist and picky, then you need multiple machines. There is no OS, translator, multi-OS solutions that can run all the software in all variants.

 

Some games, at least in its original (uncracked/unpatched) form, don't run on any XL/XE machine disregarding any OS or translator. And others, of course don't run on older pre-XL models. Some require a PAL machine, some an NTSC one.

Share this post


Link to post
Share on other sites

Hey anybody got an 8k Star Raiders Rom image that will go in place of the basic ROM? Im looking to put it in place of Missile Command in my XEGS.

 

I already got rid of missile command by just copying rev c basic over it in the EPROM.. But Star raiders would be even better.

Share this post


Link to post
Share on other sites
Hey anybody got an 8k Star Raiders Rom image that will go in place of the basic ROM? Im looking to put it in place of Missile Command in my XEGS.

 

I already got rid of missile command by just copying rev c basic over it in the EPROM.. But Star raiders would be even better.

I'm interested in this too.

 

The images of Star Raiders I have work in a cartridge but not as a replacement for the the 8K BASIC ROM (in my case a 800XL).

 

Many 8K images work but some don't, many activision cartridges for instance. I've always been curious why.

 

- Steve Sheppard

Share this post


Link to post
Share on other sites

The Star Raiders .ROM file on AtariMania seems to be exactly 8192 bytes, so should burn without modification.

Share this post


Link to post
Share on other sites

Does the XEGS Missile Command run in the Self-Test area 4000-7FFF?

So an 8K ROM would have to be 'Relocated' to $4000 from $A000?

Certainly do-able.

Share this post


Link to post
Share on other sites

Does the XEGS Missile Command run in the Self-Test area 4000-7FFF?

So an 8K ROM would have to be 'Relocated' to $4000 from $A000?

Certainly do-able.

 

Missile Command on the XEGS runs in the regular $A000-$BFFF area. The XEGS MMU additionally controls A13 when bit 6 on the PIA is selected to turn on that ROM area. This is the same concept of remapping the 2K self-test ROM area that would normally be at $D000-$D7FF to the usual $5000-$57FF.

Share this post


Link to post
Share on other sites

Hey anybody got an 8k Star Raiders Rom image that will go in place of the basic ROM? Im looking to put it in place of Missile Command in my XEGS.

 

I already got rid of missile command by just copying rev c basic over it in the EPROM.. But Star raiders would be even better.

 

Nice choice of internal game BTW.

Share this post


Link to post
Share on other sites
Hey anybody got an 8k Star Raiders Rom image that will go in place of the basic ROM? Im looking to put it in place of Missile Command in my XEGS.

 

I already got rid of missile command by just copying rev c basic over it in the EPROM.. But Star raiders would be even better.

I'm interested in this too.

 

The images of Star Raiders I have work in a cartridge but not as a replacement for the the 8K BASIC ROM (in my case a 800XL).

 

Many 8K images work but some don't, many activision cartridges for instance. I've always been curious why.

 

- Steve Sheppard

 

I would suspect that the carts that don't work are the ones that get control immediately (ie - diagnostic mode carts).

 

Lots of games use that mode, especially since some early cartridge games would even allow a cassette or disk to boot (which was an easy copy method).

 

Typically, a diagnostic mode cart will perform the system coldstart/warmstart itself, which involves writing zeros to all the hardware registers.

 

As such, PORTB could easily end up being set incorrectly.

Share this post


Link to post
Share on other sites
Hey anybody got an 8k Star Raiders Rom image that will go in place of the basic ROM? Im looking to put it in place of Missile Command in my XEGS.

 

I already got rid of missile command by just copying rev c basic over it in the EPROM.. But Star raiders would be even better.

I'm interested in this too.

 

The images of Star Raiders I have work in a cartridge but not as a replacement for the the 8K BASIC ROM (in my case a 800XL).

 

Many 8K images work but some don't, many activision cartridges for instance. I've always been curious why.

 

- Steve Sheppard

 

I would suspect that the carts that don't work are the ones that get control immediately (ie - diagnostic mode carts).

 

Lots of games use that mode, especially since some early cartridge games would even allow a cassette or disk to boot (which was an easy copy method).

 

Typically, a diagnostic mode cart will perform the system coldstart/warmstart itself, which involves writing zeros to all the hardware registers.

 

As such, PORTB could easily end up being set incorrectly.

 

Well, that's easy enough to check but what might I modify to make it work? Would I need to add instructions to set up PortB? Turn of the diagnostic cart mode? Change the init sequence?

 

This is killing me. I want my 800XL to boot to Star Raiders!

 

- Steve Sheppard

Share this post


Link to post
Share on other sites

 

Well, that's easy enough to check but what might I modify to make it work? Would I need to add instructions to set up PortB? Turn of the diagnostic cart mode? Change the init sequence?

 

This is killing me. I want my 800XL to boot to Star Raiders!

 

- Steve Sheppard

maybe the os jumps to a fixed point in the rom and doesnt use the cartridge vectors?

Share this post


Link to post
Share on other sites

At one point I modified the Star Raiders file so it would run properly on XL/XE computers for someone who wanted to run it off a maxflash cartridge.

 

Here it is in EXE and ROM format.

 

Steve

sr_xlxefix.zip

Share this post


Link to post
Share on other sites

I'd suggest just changing the Diag Mode bit (bit 7 of BFFD) to zero.

 

Diag uses the same vector as INIT for a normal cart, so the OS will perform a normal cold/warmstart, then JSR via ($BFFE) - no return will occur, but that is fine.

 

Most carts should handle that fine although there will be the E: device initialized as well as the OS database in low memory, and the IRQ/NMI vectors will be initialized.

 

I'd then suggest do a quick scan for references to $D300/$D301. If there is any code that writes zeros to that area, just pad it out with NOPs.

 

Such changes should be able to be tested first in the emulator (instead of flashing/burning EPROMs to test).

 

All ROM cartridges on the A8 use either or both the vectors at $BFFA and $BFFE - there is no "standard" entry point where you can just run a cart.

Share this post


Link to post
Share on other sites
I'd suggest just changing the Diag Mode bit (bit 7 of BFFD) to zero.
[Oops! Many typos. Fixed (hopefully]

 

The option byte is $80 making this a diagnostic cartridge but changing it to $0 had no effect.

Diag uses the same vector as INIT for a normal cart, so the OS will perform a normal cold/warmstart, then JSR via ($BFFE) - no return will occur, but that is fine.

 

Most carts should handle that fine although there will be the E: device initialized as well as the OS database in low memory, and the IRQ/NMI vectors will be initialized.

 

I'd then suggest do a quick scan for references to $D300/$D301. If there is any code that writes zeros to that area, just pad it out with NOPs.

I had already thought to search for references to $D301 but it did not occur to me to check $D300 (read on).

Such changes should be able to be tested first in the emulator (instead of flashing/burning EPROMs to test).

The real thing is almost as easy for me. My BASIC ROM is really a 32K static RAM with battery backup.

All ROM cartridges on the A8 use either or both the vectors at $BFFA and $BFFE - there is no "standard" entry point where you can just run a cart.

I found something interesting. If I use the Star Raiders image in Atari800Win Plus as the BASIC cartridge then the emulator claims that the CRC is unexpected, and then virtual Atari (not the emulator itself) crashes. This put me on the wrong track.

 

For a while I was wondering if there is a CRC or checksum done on a BASIC cartridge by the OS. This didn't seem likely as many other game cartridge images work fine in the place of BASIC.

 

Now to you suggestion, checking references to $D300, there was one store instruction. I changed it to NOPs but I have a question.

 

Here is the relavent portion of the cart INIT code (sorry about the formatting).

 

A162 LDA #$00 ; 2cyc ; A9 00

A164 TAX ; 2cyc ; AA

A165 STA $D000,X ;HPOSP0 ; 5cyc ; 9D 00 D0

A168 STA $D400,X ;DMACTL ; 5cyc ; 9D 00 D4

A16B CPX #$0F ; 2cyc ; E0 0F

A16D BCS $A172 ; 2cyc ; B0 03

A16F STA $D200,X ;AUDF1 ; 5cyc ; 9D 00 D2

A172 STA $D300,X ;PORTA ; 5cyc ; 9D 00 D3

A175 STA $0067,X ;MLTTMP+1 ; 5cyc ; 9D 67 00

A178 INX ; 2cyc ; E8

A179 BNE $A165 ; 2cyc ; D0 EA

 

Here is the patched code. (This is disassembly from the Atari800Win Plus monitor, BTW).

 

A162 LDA #$00 ; 2cyc ; A9 00

A164 TAX ; 2cyc ; AA

A165 STA $D000,X ;HPOSP0 ; 5cyc ; 9D 00 D0

A168 STA $D400,X ;DMACTL ; 5cyc ; 9D 00 D4

A16B CPX #$0F ; 2cyc ; E0 0F

A16D BCS $A172 ; 2cyc ; B0 03

A16F STA $D200,X ;AUDF1 ; 5cyc ; 9D 00 D2

A172 NOP ; 2cyc ; 1A

A173 NOP ; 2cyc ; 1A

A174 NOP ; 2cyc ; 1A

A175 STA $0067,X ;MLTTMP+1 ; 5cyc ; 9D 67 00

A178 INX ; 2cyc ; E8

A179 BNE $A165 ; 2cyc ; D0 EA

 

The orginal code would appear to loop 256 times as X register counts up from 0 and back to 0, setting many locations to an initial value of 0 (the contents of the accumulator). By simply using NOPs in place of STA $D300, X I'm preventing the initialization code from zeroing out locations $D300 thru $D3FF.

 

The patched code seems to work (in the emulator and my real 800XL) and I know there are hardware adresses not RAM but are there any bad consequences to not zeroing them?

 

Thanks for your help, Rybags!

 

I might have figured it all out for myself. Then again I might not have. LOL!

 

- Steve Sheppard

Edited by a8isa1

Share this post


Link to post
Share on other sites
At one point I modified the Star Raiders file so it would run properly on XL/XE computers for someone who wanted to run it off a maxflash cartridge.

 

Here it is in EXE and ROM format.

 

Steve

Thanks Steve!

 

I didn't see your message earlier. It might have save me some time! LOL!

 

Then again, there's nothing wrong with trying to work things out for oneself. I gain a little more understanding.

 

- Steve Sheppard

Edited by a8isa1

Share this post


Link to post
Share on other sites

Since you've changed the cart to a non-diagnostic, the OS zeroes the hardware registers anyway.

 

The cart would probably work fine if that entire subroutine was skipped.

Share this post


Link to post
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.

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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...