Omnimaga: The Coders Of Tomorrow
Welcome, Guest. Please login or register.
 
Omnimaga: The Coders Of Tomorrow
19 June, 2013, 12:23:14 *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
   home   news downloads projects tutorials misc forums rules new posts irc about Login Register  
+-OmnomIRC

You must Register, be logged in and have at least 40 posts to use this shout-box! If it still doesn't show up afterward, it might be that OmnomIRC is disabled for your group or under maintenance.

Note: You can also use an IRC client like mIRC, X-Chat or Mibbit to connect to an EFnet server and #omnimaga.

Pages: [1] 2   Go Down
  Print  
Author Topic: ERR: VERSION -  (Read 1853 times) Bookmark and Share
0 Members and 1 Guest are viewing this topic.
thepenguin77
z80 Assembly Master
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: Yesterday at 05:33:45
Date Registered: 14 December, 2009, 04:21:52
Location: Purdue
Posts: 1490


Topic starter
Total Post Ratings: +778

View Profile
« on: 02 August, 2010, 21:58:19 »
+2

I was reading the topic about backing up your groups, when I just went, duh, I know what is happening. After a little abuse to my calculator's flash, I managed to pull my own ERR:VERSION. It's actually very simple if you know what you are doing.

Flash is made of sectors, each sector is 65,536 bytes long. Then each sector is split into 4 pages of 16,384 each. When you archive stuff, it is stuck where ever there is room while trying to be efficient. This means that data is allowed to run over one page onto the next, (not a sector boundary though). The only problem is that it is rather annoying to see if the data crosses a page boundary. Normally this is not a problem as TI checks to see if the data crosses the boundary. But if the 9 byte header which has to be processed byte by byte crosses a boundary, ERR:VERSION. This is TI's way of saying since the chance of this happening is only 3*9/65535 = .04%, we just won't bother with it.

Pretty soon I'll be looking to see how this can be patched, I'd imagine it's not too hard, but I'll see what I can do.

Here is the proof of concept screen shot.

Edit:
    Whoa, the problem is a lot worse than I thought, that was a completely blank group that it made. It has a flash header, but no data, just FF's.


* errVersion.gif (186.72 KB, 192x128 - viewed 3759 times.)
« Last Edit: 02 August, 2010, 22:11:08 by thepenguin77 » Logged

zStart v1.3.012 6-10-2013  zStart fully works on 83+BE's (except custom font)
All of my utilities
TI-Connect Help
You can build a statue out of either 1'x1' blocks or 12'x12' blocks. The 1'x1' blocks will take a lot longer, but the final product is worth it.
       -Runer112
meishe91
Super Ninja
Members
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 10 June, 2013, 04:31:49
Date Registered: 05 March, 2010, 05:39:48
Posts: 2965


Total Post Ratings: +102

View Profile WWW
« Reply #1 on: 02 August, 2010, 22:07:59 »
0

I'm to tired to really understand what you said but from the sound of it basically we are seeing TI's laziness once again?
Logged





For the 51st time, that is not my card! (Magic Joke)
matthias1992
LV6 Super Member (Next: 500)
******
Offline Offline

Gender: Male
Last Login: 28 May, 2012, 01:54:05
Date Registered: 02 July, 2010, 22:52:13
Location: The Netherlands
Posts: 414


Total Post Ratings: +28

View Profile
« Reply #2 on: 03 August, 2010, 01:35:11 »
0

Basically we are seeing Ti being very very undescriptive. Err: Version wouldn't make you guess that the header of a group was split over 2 Flash pages wouldn't it? Err: Flash or Err: Header or Err: Boundary would have been better. Secondly it indeed shows Ti being lazy about getting the header always in the right place, makes me wonder if data actually is at all neatly packed of any prm or app in flash rom. Would there be FF's between several apps? that would indicate that Ti is even more lazy then I initialy thought. Does make something as rudimentary as a garbage collector needed though.
Logged

MASM xxxxxxxxxx aborted | SADce ====:::::: 40% -Halted until further notice| XAOS =====::::: 50% -Units done| SKYBOX2D engine ========== 100% -Pre-alpha done. Need to  document it and extend |

~Those who dream by day are cognizant of much more than those who dream by night only. -Sir Edgar Allen Poe-
Raylin
Godslayer
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: 25 February, 2013, 17:03:58
Date Registered: 01 July, 2009, 22:55:16
Location: In the City of Labyrinth
Posts: 1405


Total Post Ratings: +53

View Profile WWW
« Reply #3 on: 03 August, 2010, 01:59:00 »
0

So, wait.
How did you trigger this error?
Logged

Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm








Phantom Sanctuary: Sins of the Savior [==........] 20%
Quigibo
The Executioner
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 31 May, 2013, 10:48:29
Date Registered: 22 January, 2010, 05:02:37
Location: Los Angeles
Posts: 2022


Total Post Ratings: +1019

View Profile
« Reply #4 on: 03 August, 2010, 02:02:53 »
0

What makes groups different than programs and the other variable types though?  Because I'm pretty sure those can have headers on the page boundary.
« Last Edit: 03 August, 2010, 02:03:33 by Quigibo » Logged

___Axe_Parser___
Today the calculator, tomorrow the world!
Builderboy
Physics Guru
LV13 Extreme Addict (Next: 9001)
*************
Offline Offline

Gender: Male
Last Login: Today at 08:32:53
Date Registered: 20 April, 2009, 00:28:53
Location: Ravenholm
Posts: 5645


Total Post Ratings: +589

View Profile
« Reply #5 on: 03 August, 2010, 02:17:08 »
0

My guess is that TI just was too lazy to write in the check for Group names in the ungrouping routine?  Or it happened so infrequently that they never even knew the bug existed.
Logged

thepenguin77
z80 Assembly Master
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: Yesterday at 05:33:45
Date Registered: 14 December, 2009, 04:21:52
Location: Purdue
Posts: 1490


Topic starter
Total Post Ratings: +778

View Profile
« Reply #6 on: 03 August, 2010, 05:54:29 »
0

I have found one source of the problem. When the OS makes the group, it stores the start page and address in a temporary memory location. It then loads them in the OS specified page and address spot. The only problem is that the routine it calls to setup the group header, happens to also use the temporary memory location. So what happens is that the page gets first put by the main program, then increased by the header program, and finally the main program grabs it and raises it again! These ERR:VERSION groups actually start at the beginning of one page, and restart at the beginning of the next.

What worries me is that the best way to fix the problem was actually to NOP 15 bytes. Not only that, TI went through and optimized this section for 2.53. That means they looked at it, saw nothing wrong, and continued on.

But that's only half the problem! After I patched it up to make the groups, it can't read them. The group was definitely created successfully because GrpTool can read it. Plus it was readable after it got relocated on a garbage collect. TI just doesn't want us to use groups.

So, wait.
How did you trigger this error?
I GC'd to erase all memory. Then I filled the first flash page up until it only had 3 bytes left. (Flash isn't truly erased until GC it is just marked dirty). Then I made a group.

What makes groups different than programs and the other variable types though?  Because I'm pretty sure those can have headers on the page boundary.
What makes them different is that they have very specific code that creates and reads them! The ERR:VERSION groups function normally anywhere else, unless they corrupted the next page.

Now I'm off to find part two of this horrible group handling.

Edit:
   Found the second one, it only occurs if the group starts <4 bytes from the end of a page. TI almost did it right, they checked for page crosses, it's just that they assumed that it wouldn't change pages.

Edit 2:
   For those that want to jump the gun, I finished the patch for 2.53. Tomorrow I'll have to make one for 2.43, maybe the 83+ and SE too if I can find some roms. It won't run on anything but, 2.53. Don't run it if you know your batteries are low and especially don't pull a battery. I was even nice enough to make it so that it won't say ROM failed in the self test.

* VERSN253.8XP (0.96 KB - downloaded 65 times.)
* versn253.z80 (7.84 KB - downloaded 44 times.)
« Last Edit: 03 August, 2010, 06:34:31 by thepenguin77 » Logged

zStart v1.3.012 6-10-2013  zStart fully works on 83+BE's (except custom font)
All of my utilities
TI-Connect Help
You can build a statue out of either 1'x1' blocks or 12'x12' blocks. The 1'x1' blocks will take a lot longer, but the final product is worth it.
       -Runer112
Raylin
Godslayer
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: 25 February, 2013, 17:03:58
Date Registered: 01 July, 2009, 22:55:16
Location: In the City of Labyrinth
Posts: 1405


Total Post Ratings: +53

View Profile WWW
« Reply #7 on: 03 August, 2010, 07:44:45 »
0

One last question:

Is this error something someone would run into practically or is it from stress test only?
« Last Edit: 03 August, 2010, 15:11:31 by Raylin » Logged

Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm








Phantom Sanctuary: Sins of the Savior [==........] 20%
Art_of_camelot
The matrix has you.. ಠ_ಠ
Support Staff
LV12 Extreme Poster (Next: 5000)
*
Offline Offline

Last Login: Today at 11:18:50
Date Registered: 30 August, 2008, 04:55:55
Location: Dr. Light's Laboratory
Posts: 4507


Total Post Ratings: +154

View Profile WWW
« Reply #8 on: 03 August, 2010, 08:28:29 »
0

@Raylin: I don't use groups (There have been issues that turned me off of using them), but this does actually happen sometimes. It's poor programming on TI's part really.
Logged

Projects:
TBA! Coming to an 83+ near you!

NerdTests.com says I'm a Cool Nerd King.  Click here to take the Nerd Test, get nerdy images and jokes, and write on the nerd forum!


Deep Thought
So much to do, so much time, so little motivation
Administrator
LV13 Extreme Addict (Next: 9001)
*
Offline Offline

Gender: Male
Last Login: 17 June, 2013, 03:12:44
Date Registered: 19 May, 2009, 08:00:00
Location: The Universe
Posts: 7832


Total Post Ratings: +713

View Profile WWW
« Reply #9 on: 03 August, 2010, 10:38:10 »
0

I have no idea if this applies or not, but does a defragmentation fix the ERR:VERSION? I once grouped a project and it ended up with that bug, then accidentally deleted MirageOS, and the group suddenly worked again.
Logged




Lionel Debroux
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: Today at 09:24:00
Date Registered: 17 December, 2009, 09:37:25
Location: France
Posts: 1916

Total Post Ratings: +215

View Profile WWW
« Reply #10 on: 03 August, 2010, 16:02:33 »
0

This looks like another unofficial patch to fix TI's bugs... people, keep them going Smiley
Logged

Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TILP and TIEmu.
Co-admin of TI-Planet.
FinaleTI
Believe in the pony that believes in you!
Coder Of Tomorrow
LV10 31337 u53r (Next: 2000)
*
Offline Offline

Gender: Male
Last Login: 02 June, 2013, 22:43:20
Date Registered: 04 June, 2010, 00:34:27
Location: Alteria
Posts: 1818


Total Post Ratings: +118

View Profile WWW
« Reply #11 on: 03 August, 2010, 16:48:04 »
0

Awesome! I can't wait for the 2.43 version! ERR:VERSION caused me to lose quite a bit of stuff over the years, so this is great!
Logged





So, yeah, I have a blog now. Nothing special, just your average ghost town.

Spoiler for Projects:
Spoiler for Pokemon TI:
Map engine is going to be redone from scratch, since I was lacking in organization last time. With a project as big as Pokemon, planning and organization is key, so that will probably be the brunt of the work done on this project for the time being.

Spoiler for Nostalgia:
Being worked on. Nothing really new to put here, but it's being worked on.

Spoiler for Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack.

Spoiler for Nostalgia Origins: Sky's Story:
Currently on hold. I am unsure of whether this will remain DCS7 Hybrid BASIC or if it will use Batlib, Grammer or perhaps Axe.
This may see more progress once a demo of Nostalgia is released.
thepenguin77
z80 Assembly Master
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: Yesterday at 05:33:45
Date Registered: 14 December, 2009, 04:21:52
Location: Purdue
Posts: 1490


Topic starter
Total Post Ratings: +778

View Profile
« Reply #12 on: 03 August, 2010, 18:04:40 »
+9

Here is the fix for 2.43.

While we're on the topic of protecting groups, I also added in two more programs. For 2.43 and 2.53 respectively, these stop the OS from deleting all your groups during press to test. It has always bothered me that it disables all your programs, and then deletes all your groups.

As far as these patches go, they are all undo-able. When you run them, a menu pops up with a fix and unfix option.

* VERSN243.8XP (0.98 KB - downloaded 67 times.)
* NODEL253.8XP (0.88 KB - downloaded 48 times.)
* NODEL243.8XP (0.88 KB - downloaded 44 times.)
Logged

zStart v1.3.012 6-10-2013  zStart fully works on 83+BE's (except custom font)
All of my utilities
TI-Connect Help
You can build a statue out of either 1'x1' blocks or 12'x12' blocks. The 1'x1' blocks will take a lot longer, but the final product is worth it.
       -Runer112
calcdude84se
Needs Motivation
Members
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 14 May, 2013, 16:12:14
Date Registered: 21 April, 2010, 04:20:59
Posts: 2207


Total Post Ratings: +62

View Profile
« Reply #13 on: 05 August, 2010, 18:15:48 »
0

Wow I missed this entire thread x.x
Nice to see someone else fixing TI's problems Tongue
I'm getting the patch right now. Good job! +1 for you. Cheesy
Logged

"People think computers will keep them from making mistakes. They're wrong. With computers you make mistakes faster."
-Adam Osborne
Bug me about PartesOS. I might just need reminding.
ztrumpet
The Rarely Active One
LV13 Extreme Addict (Next: 9001)
*************
Offline Offline

Gender: Male
Last Login: 11 June, 2013, 05:10:51
Date Registered: 08 November, 2009, 21:10:12
Location: Michigan
Posts: 5688


Total Post Ratings: +360

View Profile
« Reply #14 on: 05 August, 2010, 19:59:41 »
0

Woah!  I missed it too.  It's wonderful to see you fixing the problems.  Thank you! +1 also! Grin
Any chance of a 83+SE Patch? Cheesy
Logged

Pages: [1] 2   Go Up
  Print  
 
Jump to:  

Powered by EzPortal
Powered by MySQL Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Powered by PHP
Page created in 0.349 seconds with 29 queries.
Skin by DJ Omnimaga edited from SMF default theme with the help of tr1p1ea.
All programs, games and songs avaliable on this website are property of their respective owners.
Best viewed in Opera, Firefox, Chrome and Safari with a resolution of 1024x768 or above.