previous:
De Maiskoek/Bits and Pieces
MCCW issue 91, January/February 2000
Back to contents
next:
The MSX World Expo ‘99 report
...a report...
Linking a TI-83 to an MSX

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.

 
Laurens Holst
 
Directory
Let’s get on with it
Yes, MSX is cool
Software
Q & A
Where to get


References
1. http://datax.cjb.net/
2. http://www.ticalc.org/
3. http://www.ti-files.org/
4. http://www.calc.org/
5. http://tcpa.calc.org/


TI-83 specifications
  • 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


Figure 2: Texas Intruments TI-83


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.

Figure 1: 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.

Software
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 [1], 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 case — 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 [2], but don’t forget The TI-Files [3] either, it’s a bit ‘underground’, cool! And also visit Dimension-TI [4], 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 [5] — TI Calculator Programming Alliance —, of which I am also a member. And ofcourse, not to forget, my homepage, Grauw @ Ble [1].

     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 game-in-development Angel.

previous:
De Maiskoek/Bits and Pieces
MSX Computer & Club Webmagazine
issue 91, January/February 2000
next:
The MSX World Expo ‘99 report