I’m starting to have a real concern about the RAM on the machine.
I’ve been casually working on a rather large program. Periodically noticing that program components that were working fine ceased to work.
At first I attributed it to my error. For example changing something in a common subroutine to repair a calling section in one program. Then discovering that another program that called the same subroutine now had a problem. Believable.
But, just discovered something that defies any reasonable explanation.
I downloaded a program from TI website that I wanted to incorporate into my program.
One “major’ change I wanted to make.
It used Alpha Variables (A B C etc)) where I prefer to create a List Variable with 26 elements. (Makes results more easily available to other programs without accidental corruption). So, "A" becomes List(1)
So, problem pops up. When I compare original source code to my code, many of the List Index numbers no longer match!?
Ex. Original was “N”
I had substituted List(14) 24th letter in alphabet
I am looking at my code now and it shows List(16) ??
Others are also off and the change is not consistent. Some are +2 others -1 etc.
view below on full screen PC as wrapping makes it hard to see on iPhone
Original
Code:
Mine Now (List is ⌊TRI)
Code:
Here's an older copy of My Source from a week ago.
Verifies that there has been corruption.
(2⌊TRI(14)cos(⌊TRI(18)))²-(4(⌊TRI(14)²-⌊TRI(15)²))→⌊TRI(24)
((2⌊TRI(14)cos(⌊TRI(18)))+√(⌊TRI(24)))/2→⌊TRI(16)
((2⌊TRI(14)cos(⌊TRI(18)))-√(⌊TRI(24)))/2→⌊TRI(13)
There was another strange occurrence with memory.
Thought I was running out of space. Uh Oh.
But the size of collected program parts didn’t seem to indicate that. There is apparently no “compress” thingy.
(there is a "GarbageCollect") but that is only for Archive memory)
So I did a factory reset and reloaded all 100+ components ( sized from few bytes to 3000-4000 bytes). Now had 64k of free space. WTF?
Searching Google and Cemetech site turned up no references to similar memory corruption
Yes, single dimension array.
Just remembered, there was another odd Array issue. Always was able to DIM the Array one time and just use it. But was having a problem where if I referred to the Array in another program I was getting an error indicating that the Array didn’t have that element.
Ex.
Dim List to 50 elements in program AAAA
Try to get element 10 OK in program BBBB
Try to get element 47 NG in program BBBB
Put a Dim statement in program BBBB
Try to get element 47 OK in program BBBB
Never had to that before and why would number of elements be changing.
Just remembered. I recently updated the PC interface program.
At the same time it updated the OS on the calculator. That may be what’s going on.
PS. Noticed that you can’t use an Array Element as the target for Input Statement.
Must use a simple Variable then store that to Array. That makes no sense.
I’ve been casually working on a rather large program. Periodically noticing that program components that were working fine ceased to work.
At first I attributed it to my error. For example changing something in a common subroutine to repair a calling section in one program. Then discovering that another program that called the same subroutine now had a problem. Believable.
But, just discovered something that defies any reasonable explanation.
I downloaded a program from TI website that I wanted to incorporate into my program.
One “major’ change I wanted to make.
It used Alpha Variables (A B C etc)) where I prefer to create a List Variable with 26 elements. (Makes results more easily available to other programs without accidental corruption). So, "A" becomes List(1)
So, problem pops up. When I compare original source code to my code, many of the List Index numbers no longer match!?
Ex. Original was “N”
I had substituted List(14) 24th letter in alphabet
I am looking at my code now and it shows List(16) ??
Others are also off and the change is not consistent. Some are +2 others -1 etc.
view below on full screen PC as wrapping makes it hard to see on iPhone
Original
Code:
(14) (18) (14) (15) (24)
| | | | |
(2 N cos(R ))²-(4( N ² - O ²))→ X
Mine Now (List is ⌊TRI)
Code:
(2⌊TRI(16)cos(⌊TRI(17)))²-(4(⌊TRI(16)²-⌊TRI(14)²))→⌊TRI(24)
| | | | |
Diff +2 -1 +2 -1 0
Here's an older copy of My Source from a week ago.
Verifies that there has been corruption.
(2⌊TRI(14)cos(⌊TRI(18)))²-(4(⌊TRI(14)²-⌊TRI(15)²))→⌊TRI(24)
((2⌊TRI(14)cos(⌊TRI(18)))+√(⌊TRI(24)))/2→⌊TRI(16)
((2⌊TRI(14)cos(⌊TRI(18)))-√(⌊TRI(24)))/2→⌊TRI(13)
There was another strange occurrence with memory.
Thought I was running out of space. Uh Oh.
But the size of collected program parts didn’t seem to indicate that. There is apparently no “compress” thingy.
(there is a "GarbageCollect") but that is only for Archive memory)
So I did a factory reset and reloaded all 100+ components ( sized from few bytes to 3000-4000 bytes). Now had 64k of free space. WTF?
Searching Google and Cemetech site turned up no references to similar memory corruption
Yes, single dimension array.
Just remembered, there was another odd Array issue. Always was able to DIM the Array one time and just use it. But was having a problem where if I referred to the Array in another program I was getting an error indicating that the Array didn’t have that element.
Ex.
Dim List to 50 elements in program AAAA
Try to get element 10 OK in program BBBB
Try to get element 47 NG in program BBBB
Put a Dim statement in program BBBB
Try to get element 47 OK in program BBBB
Never had to that before and why would number of elements be changing.
Just remembered. I recently updated the PC interface program.
At the same time it updated the OS on the calculator. That may be what’s going on.
PS. Noticed that you can’t use an Array Element as the target for Input Statement.
Must use a simple Variable then store that to Array. That makes no sense.