Author 
Message 

vic9317
Newbie
Joined: 16 Nov 2008 Posts: 26

Posted: 04 Oct 2011 04:43:37 pm Post subject: 


Hi  recently I encountered a question asking if the TI83/84/Plus/SE calculators could be modified to display more digits on screen. That got me thinking; the TI8x calcs display, I believe, about 10 digits on screen at a time, and internally hold 14 digits for calculations. Is this 14digit limit specifically implemented as part of the TIOS, or is it a limitation of the Zilog Z80 itself? If the former, then I imagine that it would be possible to modify the TIOS or create a new operating system that removes this limitation (if it has not already been done). If the latter, then I suppose the only way to hold more digits would be to use a better (higherbit?) processor. Is that correct? Which is the real case?
Thanks all. 

Back to top 


Sven.Thomas0
Active Member
Joined: 19 May 2009 Posts: 520

Posted: 05 Oct 2011 12:43:37 am Post subject: 


This is just a software limitation and it is possible to write your own code to handle more digits The Z80 has 8bit and a few 16bit operations and the Z80 calc models don't have a second CPU for floating points (I think some computers and whatnot do?) 

Back to top 


vic9317
Newbie
Joined: 16 Nov 2008 Posts: 26

Posted: 05 Oct 2011 06:03:11 pm Post subject: 


Thanks for replying, the information good to know. But now I'm curious: what is the physical limit number of digits the Z80 can handle? Furthermore, would you know of any programs/apps already in existence that do, in fact, allow the expansion of internally stored floating point digits (and possibly the number which can be displayed on screen)?
Once again, thanks. 

Back to top 


Sven.Thomas0
Active Member
Joined: 19 May 2009 Posts: 520

Posted: 07 Oct 2011 06:23:14 am Post subject: 


By physical limit... that depends on how deep you want to get into the programming. On a TI83+, there is about 24000 bytes of free RAM, so you can technically make a 48000 digit number. on the average TI84+SE, if you want to play with the extra RAM page, you can tack on another 32000 digits to bring the total to 80000 digits. However, if you get really lucky and have a special TI84+/SE, you might have all 8 RAM pages, giving you about 300 000 digits to work with :)
But again, that is dreaming really big. I believe I saw an app on TICalc that used arbitrary precision math, but I am not sure. 

Back to top 


vic9317
Newbie
Joined: 16 Nov 2008 Posts: 26

Posted: 07 Oct 2011 11:41:44 pm Post subject: 


Hmm, that's pretty interesting, thanks.
About the arbitrary precision math, you might be talking about Cabamap. It's great for calculating large numbers, but doesn't work with decimals, unfortunately.
I came across an example of where more precision is needed today (besides your typical 1E27 ones). When calculating log<sub>2</sub> 16, one could express it as log(16)/log(2), which returns the correct value of 4. However, performing int(log(16)/log(2)) yields 3 instead of the expected 4! This, of course, can be explained by the 14digit limit and precision errors. Are there any known methods/ways to get around a problem like this? 

Back to top 


Deep Thought
Advanced Newbie
Joined: 09 Jun 2009 Posts: 59

Posted: 08 Oct 2011 11:29:13 am Post subject: 


If you want less precision (and fewer precision errors), you can use round(). For example, round(log(16)/log(2), 10) rounds to the tenth decimal place. 

Back to top 


vic9317
Newbie
Joined: 16 Nov 2008 Posts: 26

Posted: 10 Oct 2011 05:12:04 pm Post subject: 


Ah, that'd be nice, but the goal is to get more precision with fewer precision errors. 

Back to top 


Deep Thought
Advanced Newbie
Joined: 09 Jun 2009 Posts: 59

Posted: 10 Oct 2011 05:22:53 pm Post subject: 


There will always be precision errors, unless you wrote your own floatingpoint calculation system with more digits per FP number. 

Back to top 


