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

1

16

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.

Fagaceous answered 10/6, 2011 at 1:31 Comment(2)
Do you have choice of development language?Scalage
well I'd prefer C. But was wondering what's the best choice in terms of compatibility for the above models.Fagaceous
A
9

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.

Ashworth answered 14/6, 2011 at 19:32 Comment(2)
Greatly appreciate the feedback. Never thought of calling asm from basic. This could be useful. I think I'll fiddle with Basic before crossing it out. As you say maintaining compatibility in asm seems to require quite a bit of work and proficiency.Fagaceous
To be fair, the calculators are very similar and the majority of simple assembly will run across all the calculators with the same processor fine(such as just running calculations, unlike games that need to access the hardware more directly and do various tricks for performance). I just wanted to make sure you knew compatibility could be an issue, and didn't rule out BASIC too quickly.Ashworth

© 2022 - 2024 — McMap. All rights reserved.