Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

32kB x 8 bit static RAM expansion module for TI-74 BASICALC or TI-95 PROCALC

132 views
Skip to first unread message

Lorenz Born

unread,
Mar 5, 2020, 1:53:43 PM3/5/20
to
Dear all,

I had the unique opportunity to buy a pocket TI-95 PROCALC calculator
together with a Math Statistics, a Chemical Engineering library module,
a PC-324 printer and a PC interface for around $40 here in Switzerland.

Now I'm considering how the internal memory of only 8kByte could be
expanded with a RAM memory module (RAM cartridge) with 32 kByte. In my
opinion, this should work, since a ROM expansion (ROM cartridge) with a
memory size of 32 kByte was also available for the TI-95 PROCALC calculator.

What do you think about that? Has anyone worked with such a RAM
extension before? Probably built by yourself. Of course, I would have to
develop it first. I imagine using a SAMSUNG KM62256CLG-7L (see
https://app.ultralibrarian.com/details/Samsung/KM62256CLG-7L?uid=93ce5ab184e94c09)
32k x 8 bit low power CMOS static RAM (70ns).

Would anyone other than me be interested in such a 32 kByte RAM
cartridge? Thanks in advance for any help or comments.

Best regards,
Lorenz
--
Lorenz Born
lorenz<dot>born<at>gmail<dot>com
The computer gets faster! --Moore--

Tom Lake

unread,
Mar 6, 2020, 9:30:33 AM3/6/20
to
I had a rare TI 32K cartridge. It was directly usable on the TI-74 but to use all 32K on the 95, you needed to do some manipulation:

To allow full access:
(numbers are in Hex)

Store 20 in BFFC
Store 7F in BFF4

Key-by-key method:

1. Enter Hex Mode by pressing CONV, BAS (on function key), HEX (on function key)
2. Enter System mode by pressing FUNC, SYS (on function key), YES (on function key)
3.Type 2,0
4. Press STB (on function key)
5. Type 2nd, B (on HYP key), 2nd, F (on RCL key), 2nd, F (on RCL key), 2nd C (on INCR key)
6. Type 7, 2nd F (on RCL key)
7. Type 2nd B (on HYP key), 2nd F (on RCL key), 2nd F (on RCL key), 4

Now when you do a CAT of the file space on the cartridge, it will show 32752 bytes free. You can remove the cartridge, insert other cartridges,
even press reset or insert the 32K cart in another machine. The number of free bytes on that 32K cart will still be correct.
The number of free bytes is stored on the cartridge.

Lorenz Born

unread,
Mar 6, 2020, 11:32:37 AM3/6/20
to
Tom, thank you for the very detailed explanation! This is new and very
interesting for me. What else is saved in the last 16 bytes of the
cartridge port memory map? Do you possibly know more about this? And why
the two values #20 in BFFC and #7F in BFF4? Can these two hexadecimal
values be explained? At the moment I don't see any connection with the
memory size of 32768 bytes.
--
Lorenz Born, Switzerland
"The computer gets faster!" -- Gordon E. Moore

Tom Lake

unread,
Mar 6, 2020, 4:38:09 PM3/6/20
to
7F20 hex is decimal 32544. That's the memory size of the 32K cartridge after some bytes (224 decimal bytes) are taken for housekeeping. Since this is an 8-bit machine, you have to enter the hex value in two parts - 20 which is the LSB (least significant byte) and 7F which is the MSB (most significant byte)

I don't have any other information about data in the cartridge port. Sorry!

Lorenz Born

unread,
Mar 7, 2020, 5:03:35 AM3/7/20
to
On 2020-03-06 22:38, Tom Lake wrote:
> On Friday, March 6, 2020 at 11:32:37 AM UTC-5, Lorenz Born wrote:
>> On 2020-03-06 15:30, Tom Lake wrote:
...
>> Tom, thank you for the very detailed explanation! This is new and very
>> interesting for me. What else is saved in the last 16 bytes of the
>> cartridge port memory map? Do you possibly know more about this? And why
>> the two values #20 in BFFC and #7F in BFF4? Can these two hexadecimal
>> values be explained? At the moment I don't see any connection with the
>> memory size of 32768 bytes.
>
> 7F20 hex is decimal 32544. That's the memory size of the 32K cartridge after
> some bytes (224 decimal bytes) are taken for housekeeping. Since this is an
> 8-bit machine, you have to enter the hex value in two parts - 20 which is
> the LSB (least significant byte) and 7F which is the MSB (most significant byte)
>
> I don't have any other information about data in the cartridge port. Sorry!
>
Tom, thanks again for your patience and answering my questions! In the
meantime, my clarifications based on the TI-95 ROM listings (see
http://www.rskey.org/CMS/index.php/the-library/13) have shown the
following in the table below.

xx = value not (yet) known
specific hexadecimal value applies to a 32kB module (RAM cartridge)

-------+-----+----------------------------------------------------
address|value|function, description or assumption
-------+-----+----------------------------------------------------
BFF0 | xx | unknown yet or no function
-------+-----+----------------------------------------------------
BFF1 | xx | unknown yet or no function
-------+-----+----------------------------------------------------
BFF2 | xx | probably MSB of used space (byte) in directory
-------+-----+----------------------------------------------------
BFF3 | xx | LSB of used space (byte) in directory
-------+-----+----------------------------------------------------
BFF4 | 7F | MSB of free bytes in cartridge (for 32kB)
-------+-----+----------------------------------------------------
BFF5 | FF | LSB of free bytes in cartridge (for 32kB)
-------+-----+----------------------------------------------------
BFF6 | xx | MSB of number of files (in cartridge)
-------+-----+----------------------------------------------------
BFF7 | xx | LSB of number of files (in cartridge)
-------+-----+----------------------------------------------------
BFF8 | 4E | character "N" \
-------+-----+------------------ |
BFF9 | 45 | character "E" > name of cartridge (?)
-------+-----+------------------ |
BFFA | 57 | character "W" /
-------+-----+----------------------------------------------------
BFFB | xx | info byte of cartridge
-------+-----+----------------------------------------------------
BFFC | 20 | cartridge memory size in kB (20h=32d)
-------+-----+----------------------------------------------------
BFFD | xx | MSB of entry address of cartridge
-------+-----+----------------------------------------------------
BFFE | xx | LSB of entry address of cartridge
-------+-----+----------------------------------------------------
BFFF | 6A | signature byte of cartridge
-------+-----+----------------------------------------------------

Knowledge gained by analyzing the files rom-cd1.asm and rom-cd3.asm. But
not yet fully understood everything.

Perhaps this is also of interest to you. I am now trying to use the
TI-95 statistical library module to find out which values are available
at the addresses above -- if any. Maybe new insights may arise here.

BR Lorenz

Tom Lake

unread,
Mar 7, 2020, 9:04:16 AM3/7/20
to
On Saturday, March 7, 2020 at 5:03:35 AM UTC-5, Lorenz Born wrote:
It looks like you don't need to reserve those 224 bytes after all. You'd just need to change these three locations by entering the byte in the second column:

> BFF4 | 7F | MSB of free bytes in cartridge (for 32kB)
> -------+-----+----------------------------------------------------
> BFF5 | FF | LSB of free bytes in cartridge (for 32kB)
-------+-----+----------------------------------------------------
> BFFC | 20 | cartridge memory size in kB (20h=32d)
> -------+-----+----------------------------------------------------

Thanks for the link!

Tom L
0 new messages