assemblyz80ti-basic

TI Assembly: differences between nostub, Ion, MirageOS, and z88dk C


I'm new to the TI programming platform. I hope to get some pointers on what's my best route for this.

I'm required to produce a series of arithmetic and graphing functions compatible across TI-83(p) and 84p models.

I was delighted to find a wealth of information available for this platform, but got overwhelmed by it. Also a lot of them are very old.

I believe BASIC isn't fit for my purpose.

The other option is z80 assembly. But I see there are three variants: nostub, Ion and MirageOS. Can I know if there are any differences between the three, especially considering the compatibility between above models. (I have a background of Microchip PIC development and find a considerable difference in the two assembly dialects.)

Also I've read about the z88dk C compiler, and would very much prefer to take this approach. But I'm not sure if the support for the TI platform is mature enough to be used by a person not knowing z80 assembly. Could any z88dk users comment on its reliability for the ti-8x platform.


Hmmm no answers. According to what I've seen z88dk is pretty useless. So there's no shying away from z80 asm. The Ion shell seems to fulfil the compatibility requirements: ti 83, 83+, 83se, 84+ and 84se.


Solution

  • I looks like you have probably found most of the information you need, but I'll add in my opinion.

    It's been a few years, but I used to dabble with programming TI and HP calculators. I don't really know from your post how computationally intensive the routines you need to write are. You say you don't think BASIC will work for you(without further details), but the first thing I would suggest is writing some simple tests to see if you will get acceptable performance using BASIC. If there a just a couple small performance critical parts of your code, you can do them in assembly and call them from BASIC using the Asm, AsmPrgm, and AsmComp commands.

    Unfortunately you will get terrible performance using BASIC, but if your particular application is not too computationally intensive it won't matter. You will find development much easier in BASIC, and it will be more compatible across calculators.

    If you can not get the performance you need in BASIC, or need lower level access to hardware, then going with assembly is really your only good option. When I was last developing for calculators, the C compilers for the Z80 based TIs were terrible, and from the little bit of searching I did today, it looks like they have not improved much(TIs m68k C compiler, however, is pretty good).

    If you have to go with assembly you will have to deal with the tediousness inherent to programming in any assembly language. In addition you will have to spend the time learning the differences between the different calculators to know what will be compatible across them, and make sure to test them well on each calculator since bugs in assembly can cause the entire calculator to crash and need to be rebooted.