Clarification (was: Re: A82: PROPOSAL: TI-82 "Enhancement" Project)


[Prev][Next][Index][Thread]

Clarification (was: Re: A82: PROPOSAL: TI-82 "Enhancement" Project)




This is a response to Dines' message, but I'm also going to take the
opportunity and not only respond to his letter, but try to clarify some
things in the process.

Dines Christy Justesen wrote:
> 
> To make this project work some one will have to open up their calc and
> find out which chip it uses to store the ROM in. Then someone has to find
> a new chip which can be used as a replacement for the old one (e.g. a 100%
> compatible chip).

Right, this is essentially what I stated even in my initial proposal.

"The most likely way that any new ROM could be incorporated into the
calc would be for some enterprising person to successfully integrate a
EEPROM unit into the calc, replacing the existing ROM." -- Me. ;-)

Now, my understanding of the newer EEPROMs are that they work just like
the regular one-burn ROM ICs in terms of how you read from them.  In
other words, no changes to the calculator should be needed in order for
it to read from a EEPROM chip of the same specs as the current ROM chip
(i.e., pins, voltage, memory, etc. must be same).  The advantage, of
course, is that we can re-program the chip.  And that, of course, is how
we get the new ROM on the calc. :-)

Also, someone correct me if I am wrong, but is it not true that in terms
of how one re-programs a double-"E"-PROM chip vs. a single-"E"-PROM
chip, it is much easier, faster, AND less expensive to re-program the
EEPROM?  I know that my PC motherboard has the capability of
re-programming it's "Flash" ROM chip on-the-fly.  In fact, I've even
heard stories about others who, having killed one motherboard's BIOS
with the wrong ROM image, have successfully used another working
motherboard to re-program a BIOS chip by quickly swapping chips while
the system was on, running the BIOS programming software, and swapping
the chip out.  Risky, but it's cheap, and it works. :-)  This might be
an alternative to those who do not wish to shell out $$$ on EEPROM
equipment.

Not long after I sent my proposal to the list, I opened up my own
calculator.  There are basically only four IC chips on the mainboard of
the calc.  The biggest one is a Toshiba-manufactured Z80 relative (I'm
not sure if it's a 'pure' Z80 or a Z180 because the rest of the markings
on my particular chip are marked-out).  The last three chips are all
pretty much the same size and have the same number of pins.  I found a
chip that has a marking of "256" which to me implies storage capacity. 
Dunno which function this chip serves, though, since the ROM we are
looking for is a 128K ROM chip, not 256K.  Also, 128K == 1M [megabit],
and I believe that ROM chips are more likely to be measured in terms of
megabits than kilobytes, so you may want to look for something of that
sort should you decide to open up your calc.  There is also another chip
which has "-8" at the end of a string of characters.  Something of that
sort would usually be found on a DRAM chip and it would usually indicate
the speed of the chip (in this case it would be "80 nanoseconds").  And
ANOTHER chip (don't know if it was either of the previous two chips
mentioned or not, dont' have the calc handy) was soldered onto a place
on the board that looked like it could accommodate a chip that was
longer than the one that resides there (the chip is four "pins" short). 
And one of these chips mentioned DID have a "(C) TI" marking on it.  The
rest weren't (visibly) TI chips.  So, maybe it's the TI chip that holds
the ROM?  Who knows. :-P

> Nathan suggested that the ROM was rewritten from scratch. I believe that
> is not possible, unless you only plan to include a few functions.

Hmmm, why not?  We've got the info for interfacing with most of the
hardware, it seems, so that's not a problem.

> Therefore the best solution is proably to modify the existing ROM, so it
> supports assembly, and things like that. The developers of the "new" ROM
> would then release a program which modifed a ROM dump so it included all
> the new features.
[snippage]
> A lot of the functions included in the TI82 ROM are slow, and it would be
> easy to write functions which where faster. If the project was done like I
> suggested, all the slow functions could be rewritten, giving you a faster
> TI82.

OK, no, this is not how it should be done.  Let me explain why not, and
what I had in mind in the first place.

First, we can't just go messing around with TI's ROM, enhancing it, and
then just handing out copies of our enhancements to everyone.  This
would violate copyright laws.

Now, if I understand your proposal correctly, what you are trying to say
is that to avoid the copyright issue, we would release a program that
would modify a person's ROM dump instead of distributing the ROM dump as
a whole.  Sort-of like a patch file.  This would STILL not work as 1)
our code is still based on TI's and 2) even if TI agreed to this, we
couldn't get it to cooperate with ALL the ROM versions out there because
it would be necessary for us to come up with patches for ALL the ROM
versions.  Puke. :-(

I think that it would be MUCH better if we just started from scratch. 
The reasons for this is that first, we avoid all copyright problems. 
Second, we would have MUCH more control over everything.  Third, we
wouldn't have to do any of the ridiculous things we are doing now to
support assembly.  Because we MUST share the RAM with TI-OS with the
current method of ASM, we are severely restricted.  Fourth, because of
our new-found control, we could be much more flexible in our
implementation.  I'll expand upon this point in a bit.  Fifth, because
all of the code would be our own original code (vs. derived from TI-OS),
we would have more freedom in terms of distribution.  We could even
release the code for others to hack on.  This couldn't be done if our
code was built off of TI-OS.  Sixth, it would be easier to start from
scratch, believe it or not.

Easier?  Why?  Well, again, there are several reasons.  First and
foremost again is copyright.  Second is compatibility.  It would be much
easier to provide compatibility with TI-OS if we started from scratch
because we wouldn't have to try to provide different versions of
Enhanced-OS for each of the different TI-OS versions.  Instead, if we
took the option of the dual-boot method I described in my original post,
then one could run any version of the old TI ROM that they had alongside
our OS without any modifications or special patch file.  Also, trying to
write new functionality and re-write existing functionality of an
existing OS can break compatibility in some cases.  I'd rather not worry
about that stuff, to be honest.

Now, in terms of implementation of the "Enhanced-OS", here is the way I
imagine it.  I don't just want a "warmed-over" revision of the TI
stuff.  I want something _flexible_!  Something that I can interface
with _my_ way.

Basically, Enhanced-OS will be mapped out in "layers", rather than just
one big OS.  Each of these layers (except for the base layer) could be
swapped for something else.  The base "kernel" would supply the basic
functions and drivers for the hardware (LCD, keyboard, ports, etc.). 
That's ALL.  We want a lean and mean kernel, folks. :-)  The second
layer would be the actual shell, be it a TI-OS-like shell, or a small
ASM menu shell, or whatever.  Basically, the shell would be just a
normal ASM program, except it would be automatically executed after the
kernel is finished booting.

This gives MAJOR flexibility that wouldn't be availible otherwise.  The
functions on your calculator could be implemented many ways.  The math
functions could be implemented as individual programs, or be part of the
shell (as it was with TI-OS), or they could be libraries, or whatever
suits your fancy.  Plus, there'd be competition now in the math programs
arena, as they'd be central to a successful OS.  This would give us more
choices and better programs than we had before.  Plus, we don't have to
be stuck with a TI-BASIC interface anymore if we don't want to.  Heck,
if anyone out there has HP envy, then write up a shell that does
"Reverse-Polish Notation"!

I really am not sure what you mean when you say that it would be hard to
write up a ROM/OS from scratch, Dines.  We've got most of the docs for
the hardware we need, most of which were supplied by you. :-)  The only
real complications here are a) the hardware upgrade to accommodate the
new OS and b) the dual-boot stuff, because two OSes can't share the same
memory space for data, so I suppose to do that we'd need to upgrade the
RAM capacity of the TI as well.  The Z80 can definitely address more
than 32K, so it's possible. :-)  We just gotta figure how to do it. ;-)

TTFN,

-- 
+-----+--------------------------------------------------+-----+
|     | Nathan Anderson - nathana@blarg.net   15 yrs old |     |
|     |         -== NUMERUS UNUS DOLATOR SUM ==-         |     |
|     +--------------------------------------------------+     |
|                                                              |
| +----------------------------------------------------------+ |
| | UNITY: Just Think(tm)                                    | |
| | http://www.blarg.net/~aerie/Unity/                       | |
| |                                                          | |
| | Webmaster, 4-H Computers of Snohomish County, WA         | |
| | http://4hcomp-sno-wa.home.ml.org/                        | |
+-+----------------------------------------------------------+-+


Follow-Ups: References: