Would you like to have your TI-83 to communicate with your MSX? Let Laurens Holst tell you how to do this in a very easy and cheap way.
Let’s get on with it
Yes, MSX is cool
Q & A
Where to get
- Z80 processor @ 6 MHz
- 256 kB rom
- 32 kB ram, of which ± 27 kB free
- Display of 96×64, black/white
- Slow display-controller with its own vram
For some time, Texas Instruments has a series of graphical calculators on the
market. Those calculators can be linked to a pc by using a special cable.
However, Texas Intrument’s ‘official’ cable is very, very expensive, so some
amateur users started making their own ‘alternative’ cables, which require
special software, but are much cheaper. Well, if that can be done for pc, then
why shouln’t it be possible for MSX?
Let’s get on with it
Since I am the proud owner of a TI-83, I started to get to work. The first
mission was to construct my own cable especially for MSX, since the pc-cable
will not work on MSX because it uses two statusbits for input, while MSX only has
one statusbit for input. In addition, the connector is incompatible, so you
will need an adapter anyway. However, I modelled it after the TI parallel link
for the pc. Well, now the decision, what port should we use? Ofcourse, the
most ultimate port in the world of MSX, always easy to reach — well... —, yes,
the joystick-port! This port can be set to use four pins for input, and three
pins for output, and that perfectly fits our wishes, because we only need two
input-pins and two output-pins.
Mind you: a 2.5 mm jack is a tiny little
bit smaller than a ‘normal’ jack used with a headphone. In addition, not all
of them fit in a TI-calculator, because the hull often is too wide. Therefore, I
recommend you to take your TI with you to the electronics shop and try at
location if the jack fits well enough.
Well, with the result of that I started to try sending bytes back and forth.
After trying some stuff based on a rom-dump program and the respective
C-source for the pc-side program I ultimately succeeded to recieve bytes.
Being so far, I ofcourse knew quite a lot about this link-cable of the
calculator, and I had an idea to simplify my TI 2 MSX cable. I will explain
it. A link-cable only has two wires, and the TI can use the same port for
both reading and writing. However, a printerport hasn’t got pins fit for as
well recieving as sending, and that problem was solved using some diodes.
But, as you might already know, pins 5 and 6 — the ‘firebutton-pins’ — of the
joystickport can be used for reading as well as writing. A joystick uses the read-function,
JoyNet and my first version of the TI2MSX-cable uses the write-function. But
what if I just use both at the same time, just like the TI-calculators do...
that might just work.
Yes, MSX is cool
Well then, some resoldering, and yes, it works! So the MSX-version of the
TI-linkcable now really is so easy to make, it cannot become
easier! Because now it has become nothing more than a simple adapter. That is
advantage nr. one compared to the pc... The other advantages? Well, on the
pc’s printerport — and the MSXes as well, by the way —, when it’s not used, the
pins are enabled by default (=set to 0), which does have its logic by the
way, because it indicates the last sent byte was a 0. But if you connect a TI
to such a connector, the TI thinks that, since the pin is enabled, a byte is
being transmitted, and it will start the transmission protocol. Which will
however not get any response and after a few seconds it times out. And that
will happen over and over again, which slows down the calculator drastically.
However, the outputpins on the MSX’s joystickport are, in the standard
environment, always disabled (=set to 1), which results in the possibility to
link your TI to your MSX whenever you want, without any difficulties. Exept
when your MSX is off, which is a very bad thing.
Advantage number three of the MSX is that the MSX can ofcourse perfectly
fulfill this job, so it would be a shame not to use your MSX for that. In my
case for example I have (almost) unlimited access to my MSX, while I have to
share the pc, of which the startup-sequence also takes too long, with other
family members. And it’s ofcourse ideal to switch on your MSX right before you
go to school to quickly upload that one game, or make a fast backup.
Uhmm... okay, where were we... Ah, yes, the software. I continued with that
— some saw the ‘recieve’-part working at the Bussum ‘99 fair —, and ultimately
the program TransMSX, downloadable from my homepage , came out of it. Now
already version 1.2, supporting the TI-82 as well and having very useful
options like the use of wildcards or dropping the file-extension (read more about
that in the enclosed readme file). It has no nice GUI yet, but
it will in version 2.0, which will take a while to finish, because it’s quite
a lot of work. However, it is definately useful, because using such a GUI would
enable you to easily group or ungroup programs — grouping is putting multiple
programs in one file —, protect and unprotect programs and also within a group,
merge groups, send a single file from an entire group, send multiple single
files or multiple groups, etcetera, etcetera, etcetera.
Q & A
And now some questions you probably would like to see answered: why aren’t the
other calculators of TI not supported yet? Well, Texas Instruments has brought
multiple types of graphical calculators on the market which can roughly
be devided in three groups: first, the series TI-82, TI-83 and TI-83+, fairly
cheap calculators for use in high school, with a low-resolution display. Next,
there are the TI-85 and TI-86, with more functions and a higher display
resolution (however still based on a Z80), and ultimately, the TI-92, TI-92+
and the TI-89, of which the last one is (almost) equal to a TI-92+ only in a
more compact form — like the 8× series — to let it be allowed on exams. It has
a lot of functions, also three-dimensional fuctions, a high-resolution dispay
and a 68000 processor. The later modelnumbers are — excluding the last
improvements of the earlier models within the group, and the bios is also
built up from the same source with new improvements everytime. Because of
that, programs can quite easily be converted to other calculators within the
same group, and the link also uses almost the same protocol. As a result fo
that, the link-software can also be adapted quite easily. However, the
high-level protocol of other ‘groups’ of calculators is, although the
low-level protocol — used for sending and recieving bytes — is the same,
unfortunately, despite the resemblance, not compatible.
But then why doesn’t the TI-83+ work yet? The reason for that is that I
only have a TI-83, and I can only test my stuff on that. The TI-82 protocol
wasn’t hard, since the TI-83 protocol is upwards compatible with the TI-82’s,
and the TI-83 also has some sending-functions with which it ‘simulates’ a
TI-82, so that was easy to test (try it yourself, you will see that the files
recieved from one of those functions will get a .82?-extension). However, a
TI-83+ has quite some new functions, and also internally alot has changed,
using flashrom as additional memory etc, and since I haven’t got any
documentation about that yet and no model for testing either, I don’t dare to
trust it will simply ‘work’.
Where to get
As you probably already knew, or else already have understood, you can also
store programs in the 27 kB ram the TI-83 has. Where to get them from? Well,
that’s an easy question to answer, from the internet! There are a few big,
also officially recognized pages with all programs available on it, the most
well-known — and best-looking — of them is ticalc.org , but don’t forget The
TI-Files  either, it’s a bit ‘underground’, cool! And also visit
Dimension-TI , not a very good archive but they have cool contests and
good articles. Apart from some casual programmers there are also programming
groups, like the TCPA  — TI
Calculator Programming Alliance —, of which I am
also a member. And ofcourse, not to forget, my homepage, Grauw @ Ble .
Lo, behold, once again (?) the end of this article. Next time I will tell you
about my other programs for the TI-83 and the MSX, for example MSX83Dev, a
small program with which you can write TI-83 programs on your MSX and convert
the code to TI-83 format (.83P), and MSXNukes, an MSX-version of the terribly
asocial, unusually destructive program TINUKE, with which you can reset
another TI via the linkcable. I will also tell you a little about my TI-83