So, how does the Zilog processor do division and square roots and stuff if it can only do AND functions?
The processor doesn't. It's all done in software.

I don't know about square roots, but as far as I know division is usually done a lot like long division by hand—a combination of shifting and subtracting.
But doesn't the processor actually compute the numbers?
GinDiamond wrote:
But doesn't the processor actually compute the numbers?
Yes, but it does much simpler operations than "take the square root of X". It can do addition, subtraction, bitwise and, or, xor, neg, and cpl. It can increment and decrement, push and pop to and from the stack, jump and call and loop.
KermMartian wrote:
Yes, but it does much simpler operations...bitwise and, or, xor, neg, and cpl. It can increment and decrement, push and pop to and from the stack, jump and call and loop.

Right, and what is all that?
Take this for example. By hand, do the square root of 2. On paper. Your brain doesn't have a sqrt operation. You can add, subtract like a pro (I hope). Multiplication and division takes a bit more time to do. For the calc, it does long division. By using these simple operations, it is able to calculate these more complex math functions. Please look at wikiti for logs, sqrts, division, and more in assembly.

Note that the CPU has no idea what a floating point number is. It is all done in asm.
It's actually quite ironic how the hardware of a calculator is really bad at math.
ben_g wrote:
It's actually quite ironic how the hardware of a calculator is really bad at math.
It's superb at math; it gets addition and subtraction operations right 100% of the time (as long as you don't throw gamma rays at it). Wink It's just not very good at advanced math unless you help it out. Of course, I get your point, and it is indeed ironic. Also ironic is that the Casio Prizm uses a version of the SH4 CPU that has its FPU removed.
KermMartian wrote:
Also ironic is that the Casio Prizm uses a version of the SH4 CPU that has its FPU removed.


Well, They either had to deal with the marginal front-end costs of having the system programmer to write a virtual FPU, or the constant piece price of a more expensive CPU. It was most likely just more cost effective to get the FPU-free models. I'm sure Casio failed to foresee a flourishing 3rd party developer scene though.

Once I started poking in to z80 ASM, I started to see just how dumb and rudimentary it was. But, when you have a small background in Brainf***, you can easily see how the economy of commands can be harnessed to achieve grand things. If you could get a z80 core fast enough, I'm sure you could run Crysis Wink
Whats an FPU?
And FPU is the Float Processing Unit. It usually provides hardware support for manipulating floating point numbers. Common fixtures of the FPU are aritmetic (+, -, /, *) square roots, powers, and sometimes trig functions. The purpose is to drastically speed up a CPU's FLOPS (FLoating point number Operations Per Second). Doing anything to a Floating point number requires quite a bit of processing power, so an FPU can speed up countless aplications that ely on them.

In case you're wondering, a floating point number is just a representation of a number that can vary in precision. The alternative is integers which are "fixed point" and don't vary in precision. a change of 1 unit to a float could mean a change of 100, or even .001, in the number it represents. A change of 1 unit to an integer will always mean a change in 1 in the number it represents.
Thanks for the explanation of a floating point number, I really didn't know what those were.

Is there a way to physically add an Ethernet port to an 84+?
GinDiamond wrote:
Thanks for the explanation of a floating point number, I really didn't know what those were.

Is there a way to physically add an Ethernet port to an 84+?
Man, you don't focus on anything for more than a few minutes, do you? You could, but making it actually do anything is a different question.
KermMartian wrote:
GinDiamond wrote:
Thanks for the explanation of a floating point number, I really didn't know what those were.

Is there a way to physically add an Ethernet port to an 84+?
Man, you don't focus on anything for more than a few minutes, do you? You could, but making it actually do anything is a different question.
Hardware mods that don't actually add hardware to the PCB aren't feasible. This does NOT include replacing the LCD (replace != add), backlighting (not a peripheral to the calc), or adding a PS/2 port (just injects to the IO port, doesn't add anything new to the PCB). Asking for an Ethernet port to a calc is like asking for HDMI output from a TV remote (the fun ones): just because something can compute doesn't mean you can make major changes to the PCB, especially when ASICs are used.
KermMartian wrote:
Man, you don't focus on anything for more than a few minutes, do you? You could, but making it actually do anything is a different question.


You're totally right. You should see how many game projects I'm working on at once! (about 20+, with all of the source codes up on the computer).

Anyway, back to the processor thing:
Could this processor work for the Ti-84+ if I replaced it with the native one?
http://circamicro.com/p-1517409-z8l18020psg-ic-20mhz-low-power-s180-64-dip.aspx
GinDiamond wrote:
Thanks for the explanation of a floating point number, I really didn't know what those were.

Is there a way to physically add an Ethernet port to an 84+?

I don't see why you couldn't use a USB ethernet controller. Of course, you would have to write an ethernet driver (probably either the over-compicated RNDIS (ick) or a simpler standard CDC eth driver), a TCP/IP stack, and software to take advantage of it. Most of that software would likely need to be written as a Flash app due to its size (TCP alone could be several kB or more, and that's using a small implementation like uIP). Good luck. Razz
GinDiamond wrote:

Anyway, back to the processor thing:
Could this processor work for the Ti-84+ if I replaced it with the native one?
http://circamicro.com/p-1517409-z8l18020psg-ic-20mhz-low-power-s180-64-dip.aspx


The problem with the TI-84+ is that the CPU, RAM, the memory controller, and probably some other stuff is all in a single, proprietary ASIC. You'd have to replace all of those components, and at that point, you may as well build yourself an entire custom device.
Well, with the newest calculators, yes. Smile I still have tons of TI-83+s that have discrete z80s in them, and I'm actually going to experiment with cutting the RST line on one of them to see if I can then execute past $c000, something that Benryves suggested to me long ago.
And, executing past register $c000 will do what?
1. $C000 is an address, not a register.
2. The reason assembly programs are limited to 8,811 bytes in size is because executing code beyond $C000 is prevented. (Since program code starts at $9D95, the maximum size for a program is $C000 - $9D95 = 8811.)
  
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
» Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
» View previous topic :: View next topic  
Page 5 of 8
» 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