I have great news for everyone with upgraded flash chips in their CE calculators! Previously, this type of upgrade was essentially useless, as TI-OS was only designed to work with the original 4MB, and no assembly programs took advantage of the extra memory either. I'm excited to announce that I'm releasing a patch manager that I've been working on for the past few weeks that changes this. It applies patches related to making TI-OS map up to (approx 11.4MB) of flash space dedicated to the archive. The patch manager is still in an early state, so there may be bugs.

I'm looking forward to seeing what will be done with all the extra memory! More details on the README

https://github.com/qnex0/ce-patch-manager


Great indeed, but release 1.0 was apparently removed before I could download it...
https://github.com/qnex0/ce-patch-manager/releases/tag/v1.0 😢
critor wrote:
Great indeed, but release 1.0 was apparently removed before I could download it...
https://github.com/qnex0/ce-patch-manager/releases/tag/v1.0 😢


I just made the realization that 12MB cannot be mapped so I pulled the release. Did all my tests using 8MB and was wrong to assume that 12MB would just work. It turns out that mapping 12MB causes 0x400000-0x7FFFFF to either become a mirror of 0x000000 or unmapped. A shame because the logic to patch both 8MB and 12MB + the Draw32 patch goes to waste. Either way, post has been updated and the release is back, only with 4MB less storage 🙃. Guess the multi boot feature really is needed now.
Is it a hardware or software issue for the 12MB ?
Just a consequence of the TI-eZ80 hardware memory map, right ?
My first guess on the 12MB issue is a possible misconfiguration of the Flash address mask register. The mask register doesn't set a range on the Flash addresses per se, it literally masks the address when accessing Flash. If it's not set to a power of 2, that can cause unwanted mirroring.

So if you used a mask of 0xBFFFFF for 12MB, that's going to reset bit 22 of every accessed Flash address which would cause 0x400000 to be a mirror of 0x000000. What should really be done is rounding it up to the next power of 2, which would be a mask of 0xFFFFFF in this case.

It should be noted that this does not affect the amount of eZ80 address space mapped to Flash, which is always 12MB. It would simply create a 1-to-1 mapping of eZ80 address to Flash address within the mapped area.
Wow, this is a very impressive project!
I've just installed it on my own CE, it works great 🙂
calc84maniac wrote:
My first guess on the 12MB issue is a possible misconfiguration of the Flash address mask register. The mask register doesn't set a range on the Flash addresses per se, it literally masks the address when accessing Flash. If it's not set to a power of 2, that can cause unwanted mirroring.

So if you used a mask of 0xBFFFFF for 12MB, that's going to reset bit 22 of every accessed Flash address which would cause 0x400000 to be a mirror of 0x000000. What should really be done is rounding it up to the next power of 2, which would be a mask of 0xFFFFFF in this case.

It should be noted that this does not affect the amount of eZ80 address space mapped to Flash, which is always 12MB. It would simply create a 1-to-1 mapping of eZ80 address to Flash address within the mapped area.


Wonderful! I set the mask to map 16MB of flash and it seems to be working properly now. I just made a v1.1 release that adds back the 12MB feature. Those who already installed v1.0 can simply send UPDATE.8xv to archive and launch the manager to update.
This is awesome! Is there any tutorial or guide on how to mod my CE to do this?
korbosoft wrote:
This is awesome! Is there any tutorial or guide on how to mod my CE to do this?

  1. Ensure hardware revision of your calc is M+ (last character or two at the end of the serial number). If it is older than rev M, steps 4-6 will be much more difficult.
  2. Obtain a ROM dump from your calc (using CEmu or [Web]TiLP)
  3. Patch the ROM dump using the "ce-rom-patcher" included in the release.
  4. Write the patched ROM image to the new (hopefully larger) flash chip using an EPROM programmer. W25Q128JVSIQ (16MB) or W25Q64JVSIQ (8MB) are safe bets. Boot sector must be unlocked.
  5. Remove the old flash chip
  6. Solder the new flash chip
  7. Hold ALPHA and hit the reset button to launch the patch manager, then apply the patch
Are you going to make a mac version?

What does this mean? How do I unlock it.
calcgeek: are you trying to upgrade the memory on your CE, because it does not matter if you aren't up to the challenge of soldering on a different chip.
I want to but it says it is locked. Look in the picture.
He means that if you don't solder a chip and possibly brick your CE, there's no way you can do this.
"Locked" just means that it can't be used.
So it's not possible for me to do it?
Not reasonably possible for you, if you tried to do it would be very unconventional and you would risk bricking your calc.
calcgeek wrote:
So it's not possible for me to do it?


You can still try it out in CEmu if you compile the expanded-flash branch. Then, use the -p flag in the ce-rom-patcher tool to pad the patched ROM file to 8MB, 16MB, or 32MB, which tells CEmu what virtual flash size to use.
I dont understand what your saying. Do I need to just drag files over and right -p, and if yes were do I write -p?
You'd need to manually build your own copy of CEmu from that git branch since it's not merged in master yet (once it is, you can download the build binaries directly from github)

Then do the patch thing with that CLI flag
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement