Jump to content
IGNORED

Internal memory mod


jrhodes

Recommended Posts

Starting this thread as a place to discuss systems with the internal memory mod, and questions or issues associated with this setup.

Feel free to ask your internal memory mod related questions here.

 

First question:

Can this mod be installed with a toggle switch, to turn off the internal memory mod if wanted?

 

Second question:

Can a SAMS setup be installed internally?

  • Like 1
Link to comment
Share on other sites

3 hours ago, jrhodes said:

Starting this thread as a place to discuss systems with the internal memory mod, and questions or issues associated with this setup.

"the internal memory mod" or "an internal memory mod" - did you have a particular one in mind as there are several (assuming you're referring to 32K in the console)?

 

The one I put together (http://www.stuartconner.me.uk/ti/ti.htm#32k_memory_expansion) has a switch to disable it. It's probably possible with any of the 32K mods, although you might need to tweak the mod circuit slightly to fit it.

  • Like 3
Link to comment
Share on other sites

13 minutes ago, Stuart said:

"the internal memory mod" or "an internal memory mod" - did you have a particular one in mind as there are several (assuming you're referring to 32K in the console)?

 

The one I put together (http://www.stuartconner.me.uk/ti/ti.htm#32k_memory_expansion) has a switch to disable it. It's probably possible with any of the 32K mods, although you might need to tweak the mod circuit slightly to fit it.

I intended this thread as a catch all for all different versions.

Since you say your version can definitely have a switch installed, that is the one i would do, if i ever did it.

  • Like 2
Link to comment
Share on other sites

Several of the 32K-in-the-console mods have on-off switches, and some are also able to switch speeds (using two different clock crystals), and may be able to switch between 16-bit and 8-bit memory modes. I'm pretty sure Mainbyte, Hexbus, Tursi, and Stuart all have nice options detailed on their sites. There are also a couple of innovative threads here on AtariAge.

 

There is not an option available to put SAMS into the console.

  • Like 2
Link to comment
Share on other sites

The one I have adds 64 K RAM in the console. It's all at 16 bit wide bus. Thus you can have your workspace anywhere. It's as fast as console RAM pad anyway.

The 32 K covering the area for the normal memory expansion is on by default. If switched off, any external memory expansion (in the PEB) will be visible instead. So by switching off the internal memory, you go back to 8-bit speed, but also has a second page of 32 K RAM.

The remaining 32 K RAM in the console can be switched on in 8 K banks. Thus you can overlay all other areas in the console with RAM. This includes console ROM, DSR space etc.

Of course, you can't return to a normally operating machine with memory and all VDP ports and stuff at >8000 - >9FFF replaced with RAM. You'll crash immediately. But inside your own program, your can turn on that bank and use it as some buffer memory, or whatever, as long as you disable it before returning to the console. Another options is to transfer a part of your program to that area. Then, when your assembly program is called, you can enable that area, run your program there, jump back to your program elsewhere and disable the memory before you return. This means you can have space for up to 32 K of software, in your own assembly program, which is all loaded and can be accessed by just a toggling of some CRU bits.

You can also copy all console ROM to RAM, then switch in the RAM. Now you can modify all interrupt vectors and such stuff. You can for example use the timer in the TMS 9901 to create an interrupt to a scheduler, if you want to run a multitasking assembly program with pre-emptive task switching.

Another possibility is to have a contiguous 64 K RAM area in the machine, if you temporarily need to manage a lot of data.

These different banks are all switched in and out by CRU bits at >0400, so all this can be done under software control.

 

This is my own design. I never made any PCB, though, so it's all soldered in piggy-back on existing circuits in the console.

I've also never used a Commodore 64 in any depth, but I do know it had a similar capability. It could be 64 K RAM, but not at the same time as having access to all system services.

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

Although I posted it already in another thread, once again this is the mod I used with my TI-99/4A before switching to the Geneve.

 

The red and yellow buttons do not belong to the expansion but are used for resetting and triggering the LOAD interrupt. The switch turns off the wait state generation when accessing the 32K memory.

 

I seem to vaguely remember that this could be from the Wiesbaden group and that they offered to install it if you sent the mainboard to them.

Int32k.jpg

  • Like 3
Link to comment
Share on other sites

I got the basic idea to my design from somebody who installed 64 K RAM, but only used half of it. The reason for installing 64 K was simply that the memory chips were 8 bit wide. So that design used 16 K from each 32 K chip, to get a 16 bit wide memory data bus.

Seeing that, I thought I could improve on the design by adding the logic which would allow the use of all of the memory in the chips.

  • Like 4
Link to comment
Share on other sites

That's the advantage.

When running programs where both the code and the workspace is in expansion RAM, the speed increase with 16-bit access is roughly 110%. I found that signifcant enough to do the job with installing the 16-bit memory. And then some, since I actually added 64 K RAM to the existing 32 K RAM upgrade, not just replaced the standard memory expansion.

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

I know, we've discussed your memory mod a couple of times before. :)

 

I also upgraded my daily use console back in the day, then used it to run a BBS where the extra speed helped it keep up with the modem as well as granted me faster build times.

 

But these days, my TI is not my daily use console and I'm more interested in making sure my software will run the same way that it will run on most people's machines.

 

  • Like 5
Link to comment
Share on other sites

  • 7 months later...
On 9/2/2021 at 10:58 AM, apersson850 said:

The one I have adds 64 K RAM in the console. It's all at 16 bit wide bus. Thus you can have your workspace anywhere. It's as fast as console RAM pad anyway.

The 32 K covering the area for the normal memory expansion is on by default. If switched off, any external memory expansion (in the PEB) will be visible instead. So by switching off the internal memory, you go back to 8-bit speed, but also has a second page of 32 K RAM.

The remaining 32 K RAM in the console can be switched on in 8 K banks. Thus you can overlay all other areas in the console with RAM. This includes console ROM, DSR space etc.

Of course, you can't return to a normally operating machine with memory and all VDP ports and stuff at >8000 - >9FFF replaced with RAM. You'll crash immediately. But inside your own program, your can turn on that bank and use it as some buffer memory, or whatever, as long as you disable it before returning to the console. Another options is to transfer a part of your program to that area. Then, when your assembly program is called, you can enable that area, run your program there, jump back to your program elsewhere and disable the memory before you return. This means you can have space for up to 32 K of software, in your own assembly program, which is all loaded and can be accessed by just a toggling of some CRU bits.

You can also copy all console ROM to RAM, then switch in the RAM. Now you can modify all interrupt vectors and such stuff. You can for example use the timer in the TMS 9901 to create an interrupt to a scheduler, if you want to run a multitasking assembly program with pre-emptive task switching.

Another possibility is to have a contiguous 64 K RAM area in the machine, if you temporarily need to manage a lot of data.

These different banks are all switched in and out by CRU bits at >0400, so all this can be done under software control.

 

This is my own design. I never made any PCB, though, so it's all soldered in piggy-back on existing circuits in the console.

I've also never used a Commodore 64 in any depth, but I do know it had a similar capability. It could be 64 K RAM, but not at the same time as having access to all system services.

I was asking about this very issue over in the development thread on the GIF source code.  Seems like I found the answer.   Are there more details on this modification?

Link to comment
Share on other sites

On 9/2/2021 at 9:58 AM, apersson850 said:

The one I have adds 64 K RAM in the console. It's all at 16 bit wide bus. Thus you can have your workspace anywhere. It's as fast as console RAM pad anyway.

The 32 K covering the area for the normal memory expansion is on by default. If switched off, any external memory expansion (in the PEB) will be visible instead. So by switching off the internal memory, you go back to 8-bit speed, but also has a second page of 32 K RAM.

The remaining 32 K RAM in the console can be switched on in 8 K banks. Thus you can overlay all other areas in the console with RAM. This includes console ROM, DSR space etc.

Of course, you can't return to a normally operating machine with memory and all VDP ports and stuff at >8000 - >9FFF replaced with RAM. You'll crash immediately. But inside your own program, your can turn on that bank and use it as some buffer memory, or whatever, as long as you disable it before returning to the console. Another options is to transfer a part of your program to that area. Then, when your assembly program is called, you can enable that area, run your program there, jump back to your program elsewhere and disable the memory before you return. This means you can have space for up to 32 K of software, in your own assembly program, which is all loaded and can be accessed by just a toggling of some CRU bits.

You can also copy all console ROM to RAM, then switch in the RAM. Now you can modify all interrupt vectors and such stuff. You can for example use the timer in the TMS 9901 to create an interrupt to a scheduler, if you want to run a multitasking assembly program with pre-emptive task switching.

Another possibility is to have a contiguous 64 K RAM area in the machine, if you temporarily need to manage a lot of data.

These different banks are all switched in and out by CRU bits at >0400, so all this can be done under software control.

 

This is my own design. I never made any PCB, though, so it's all soldered in piggy-back on existing circuits in the console.

I've also never used a Commodore 64 in any depth, but I do know it had a similar capability. It could be 64 K RAM, but not at the same time as having access to all system services.

i'd like to see more information on this, maybe we could make a PCB for easy modification. 

 

 

  • Like 1
Link to comment
Share on other sites

The upgrade I did was daunting. I ruined a couple motherboards before I upped my HeathKit-level soldering skills sufficiently, and obtained good enough equipment and magnification, to pull it off. The successful efforts (two boards) took about 4 hours each. I'll have to run them 100 years to earn that time back. Of course, none of this is about efficiency. What it was really about was the idea of the 9900 running wild and free, no wait states or multiplexer.  

 

http://www.mainbyte.com/ti99/16bit32k/32kconsole.html

  • Like 2
  • Haha 2
Link to comment
Share on other sites

 Maybe if someday @Ksarul gets the time and the motivation, he could do the tops radio supply 16-bit mod - while it is daunting, the daughter board only requires you put in a socket where the 9900 is - I think that would be easier to test and manage then a lot of the connections on the motherboard....

 

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