Jump to content
Larry

De-upgrading a 320K XE?

Recommended Posts

I have a 320K XE that I want to return to (near) stock condition. Currently, it has KM 41256-15 drams in it. I'd like to leave those, but do I need to bend up a pin on the ram chips to make it behave as 64 kbit chips? All of the other stuff is pretty easy to reverse, but a little voice in my head says that I need to do something to the ram chips. (?)

 

-Larry

 

Share this post


Link to post
Share on other sites

No, without the memory upgrade board (like Rambo, etc.) the 256K chips will work just like 64K chips. But if you would like some brand-new, fresh off a brand-new motherboard 64K chips, I'd be happy to trade for your 256K chips. As I did a 256K upgrade and want to push it up to 512K. If not, I'll use my 64K chips to push it to 320K.

Edited by Gunstar

Share this post


Link to post
Share on other sites

130xe. Thanks, but I'm going to keep it and the 256 chips. It was a Peterson-type upgrade, and I've already removed all the wiring additions. It is completely socketed.

 

Thanks for the info about not having to do anything special.

 

-Larry

Share this post


Link to post
Share on other sites

Very confused. I did the peterson 320k mod and put a switch on it 192k/320k never had a problem, even did the antic mod with the switch.. is there a specific problem that the 320k had to go?

Share this post


Link to post
Share on other sites

No, I wanted a "stocker" for compatibility reasons. No problem at all with the upgrade. And I also now have several external memory upgrades, so I don't need the internal 320K.

 

Edit: Completed the procedure and everything works good. Memory is verified good by tf_hh Sys-Check II. (What a nice device!)

 

-Larry

  • Like 2

Share this post


Link to post
Share on other sites

Not that it matters at this point, but I've had 256K, 320K and 512K internal upgrades and have NEVER had a compatibility issue due to extended memory. I understand if you want a stock machine, but what compatibility problems did you come across?

  • Like 1

Share this post


Link to post
Share on other sites

Not that it matters at this point, but I've had 256K, 320K and 512K internal upgrades and have NEVER had a compatibility issue due to extended memory. I understand if you want a stock machine, but what compatibility problems did you come across?

 

I had. My Databyte tape version of "The Tail of Beta Lyrae" did not work on my 256KB 800XL while it does work when I disable the upgrade. Probably this is because the game supports 4 joysticks (on Atari 400 & 800 models) and changes something to the port B register for reading joystick 3 and 4 that accidentally switches memory banks.

I can image that more games that support 4 joysticks have problems with port B extensions.

 

Robert

  • Like 1

Share this post


Link to post
Share on other sites

And that is why it would still fail on a 130XE......even if it is stock... You would have to mod the 130XE further and disable the extra Atari built 64K extended bank...

Share this post


Link to post
Share on other sites

I have a 320K XE that I want to return to (near) stock condition. Currently, it has KM 41256-15 drams in it. I'd like to leave those, but do I need to bend up a pin on the ram chips to make it behave as 64 kbit chips? All of the other stuff is pretty easy to reverse, but a little voice in my head says that I need to do something to the ram chips. (?)

 

Just de-install all additional parts and connect the pin 1 of each 41256 chip together and then to ground or +5V, whatever you like. Then it´s a standard 130 XE again. Watch out, some methods of making a 320 XE includes trace cutting of PB7, mostly below the PIA. After de-installation of all additional parts check pass from pin 17 (PIA) to pin 6 (MMU).

 

Jurgen

Edited by tf_hh

Share this post


Link to post
Share on other sites

 

I had. My Databyte tape version of "The Tail of Beta Lyrae" did not work on my 256KB 800XL while it does work when I disable the upgrade. Probably this is because the game supports 4 joysticks (on Atari 400 & 800 models) and changes something to the port B register for reading joystick 3 and 4 that accidentally switches memory banks.

I can image that more games that support 4 joysticks have problems with port B extensions.

 

That's interesting. The disk version doesn't seem to have that problem. Are you sure it was The Tail of Beta Lyrae and not Cohen's Tower? Cohen's Tower is known for not working on the 130XE, or XL models with more than 64K. It is not because of supporting 4 joysticks, it is related to the copy protection.

 

Share this post


Link to post
Share on other sites

 

Just de-install all additional parts and connect the pin 1 of each 41256 chip together and then to ground or +5V, whatever you like. Then it´s a standard 130 XE again. Watch out, some methods of making a 320 XE includes trace cutting of PB7, mostly below the PIA. After de-installation of all additional parts check pass from pin 17 (PIA) to pin 6 (MMU).

 

Jurgen

 

Hi Jurgen-

 

We are preventing the A8 line from floating?

 

-Larry

Share this post


Link to post
Share on other sites

 

I had. My Databyte tape version of "The Tail of Beta Lyrae" did not work on my 256KB 800XL while it does work when I disable the upgrade. Probably this is because the game supports 4 joysticks (on Atari 400 & 800 models) and changes something to the port B register for reading joystick 3 and 4 that accidentally switches memory banks.

I can image that more games that support 4 joysticks have problems with port B extensions.

 

Robert

Yes, of course, I totally forgot about the 800 games that use 4 ports.

 

But no matter what, you will encounter a few incompatibilities across the board, an 800 can't run anything more than 48K, XL/XE's have a few games besides the 4 port ones from the 800 that won't work, etc. But there are now a lot more (and in most cases better) programs that require extra memory than the few 4-port games that may be incompatible with it. Personally I can accept a few 4-port 800 games that may not work in favor of now dozens of 128K+ memory games that can't be used without extra memory.

 

People are losing out on a lot more software by returning computers to stock than a few 800 games gained. But to each their own.

Edited by Gunstar

Share this post


Link to post
Share on other sites

We are preventing the A8 line from floating?

 

Yes, that´s why I suggest to connect the pin 1s to GND or +5V. This degrades the 41256 to 4164 in a simple way.

 

Jurgen

  • Like 2

Share this post


Link to post
Share on other sites

 

That's interesting. The disk version doesn't seem to have that problem. Are you sure it was The Tail of Beta Lyrae and not Cohen's Tower.

 

 

Yes, it is the Tail of Beta Lyrae, I never had Cohen's Tower back in the day.

The Databyte tape version on AtariMania is the same as mine if you want to try.

 

In Altirra, configuration 800XL, 64 KB, XL-OS v3: Works

In Altirra, configuration 800XL, 128 KB, XL-OS v3: Hangs after loading

In Altirra, configuration 800XL, 128 KB, 400/800 OS A PAL: Works

 

Note that it works on an expanded 800XL with 400/800 OS. I believe this is because the 400/800 OS sets the port B as input (for the two extra joysticks) and in that state it won't affect port B memory extensions.

The XL OS sets port B as output (for enabling/disabling OS/Self test) and in that state it can affect port B memory extensions.You would expect that reading from port B register would not affect the port B output pins so it looks like the game does an unintentional write to the port B register.

 

Robert

Share this post


Link to post
Share on other sites

 

Yes, it is the Tail of Beta Lyrae, I never had Cohen's Tower back in the day.

The Databyte tape version on AtariMania is the same as mine if you want to try.

 

In Altirra, configuration 800XL, 64 KB, XL-OS v3: Works

In Altirra, configuration 800XL, 128 KB, XL-OS v3: Hangs after loading

 

Interesting because, again, the disk version doesn't have this problem. I was curious ...

 

Doesn't seem related to the 4 joysticks. Actually the game loader is aware of the XL (but not XE) hardware. The game initializes the whole hardware, writing $00 over the whole chipset range, before starting the game. Combine this with messing with PORTB for the purpose of disabling Basic, which is performed slightly different in the tape version than in the disk one.

Share this post


Link to post
Share on other sites

does it play on a 65xe without issues?

also about the floating issue for memory... wouldn't it be better to use +5 and or a limiting resistor to prevent strain if connecting to ground... I hated when memory upgrades first came out and no resistor was in the plans, only to see a year later everyone added them in (with good reason at that)

Edited by _The Doctor__

Share this post


Link to post
Share on other sites

does it play on a 65xe without issues?

 

I have no practical way to confirm it, but it should play at least as well as on an 800XL. Is there any difference at the software level between an 800XL and a 65XE?

Share this post


Link to post
Share on other sites

Doesn't seem related to the 4 joysticks. Actually the game loader is aware of the XL (but not XE) hardware. The game initializes the whole hardware, writing $00 over the whole chipset range, before starting the game. Combine this with messing with PORTB for the purpose of disabling Basic, which is performed slightly different in the tape version than in the disk one.

 

I've also looked into it with Altirra by setting "access breakpoint" on the port B data ($D301) and control register ($D303).

 

First the OS sets port B so that self-test and basic are disabled and no extended memory banks are selected. When the "Tail of Beta Lyrae" loading screen is started it writes #$FF to port B which disabled Basic if it was not yet disabled. Thus when loading, only the OS rom is active and both the CPU and ANTIC do not use extended memory.

 

When the game starts, there is a loop that puts #$00 in all registers between $D300-$D3FF. And this causes the problem because clearing the region causes a bank switch:

A=00 X=01 Y=00 S=F9 P=35 (   I C)  4E9B: 9D 00 D3 STA PORTA,X  [$D301]             // Enable Self-test and basic, disable OS, CPU and ANTIC use extended memory bank 4, no OS.
A=00 X=03 Y=00 S=F9 P=35 (   I C)  4E9B: 9D 00 D3 STA PORTA,X  [$D303]             // Port B register set to direction mode.
A=00 X=05 Y=00 S=F9 P=35 (   I C)  4E9B: 9D 00 D3 STA PORTA,X  [$D305 == $D301]    // Port B direction set to input, has as side effect that output gets high (FF): Disable self-test and basic, enable OS, CPU and ANTIC use normal memory.
A=00 X=07 Y=00 S=F9 P=35 (   I C)  4E9B: 9D 00 D3 STA PORTA,X  [$D307 == $D303]    // Port B register set to direction mode.
A=00 X=09 Y=00 S=F9 P=35 (   I C)  4E9B: 9D 00 D3 STA PORTA,X  [$D309 == $D301]    // Port B direction set to input.
A=00 X=0B Y=00 S=F9 P=35 (   I C)  4E9B: 9D 00 D3 STA PORTA,X  [$D30B == $D303]    // Port B register set to direction mode.
repeated...

After the "clear" loop, the port B control register is written with #$3C that puts port B data register back from direction mode in data mode.

 

But during the clear loop, self-test and basic are activated in iteration 1 and deactivated as side-effect again in iteration 5. But also extended memory is enabled in iteration 1 and deactivated again in iteration 5. But this code executes from $4E9B thus it switches itself out if extended memory is available and continues executing in the extended memory bank with a crash as result.

 

Robert

Share this post


Link to post
Share on other sites

 

Interesting because, again, the disk version doesn't have this problem. I was curious ...

Combine this with messing with PORTB for the purpose of disabling Basic, which is performed slightly different in the tape version than in the disk one.

 

I was also wondering why the disk version works as it has the same "clear" code at the same memory location ($4E9B) where also the extended memory resides. Thus you would expect it would crash as well.

But... the disk version loader has the same "clear code" but then at address $537 thus it also switches to the extended memory bank and back again by the clear of $D305 but it does not crash because the clear code is not in the extended memory region. The loader "clear code" leaves with port B set to input mode. Thus when the game executes the clear code at $4E9B, it won't switch banks because at that time port B is in input mode while in the tape version port B is at that moment in output mode.

 

This also explains why the tape version work on 128KB Atari when it has the 400/800 OS. The 400 OS sets port B to input mode (while the XL OS sets it to output mode) thus the "clear code" does not switch banks.

 

Robert

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.
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...