Re: A83: Ti8xcc [82/83/83+/85/86]


[Prev][Next][Index][Thread]

Re: A83: Ti8xcc [82/83/83+/85/86]




Sorry, but this is a l-o-n-g mail.

> [referring to Small-C]
> 
> > PS: This is not another new C-compiler, It is just the 'best' I found
> > on TiCalc. And I've added some things from the other ones.
> 
> I don't agree with this at all.  After comparing the various C compilers
> for the Z80, the one that generates the best code is clearly TISCO; the
> Small-C compiler is *much* worse.  If anyone really wants examples, I can
> post some of them.

Well, let me see some examples...

The next thing, I agree that TISCO generates the best code, but:

1. TISCO hasn't got any compiler-sources with it, Ti8xcc does have these.
(TISCO is made back in 1998 so big chance that the sources have been
deleted in the mean time). I think this is a major disadvantage.

2. TISCO is made for the Ti-86 only, Ti8xcc is for the 86 and 83. It has a
more modular approach in the include files, so it can be easely ported to
the other calcs. I even think that without altering the source code it is
impossible to use TISCO for another calc type (it only uses the Ti86xxx.inc
files), although there is a quick hack for that (incs.tis).

3. TISCO uses a sort of mixed language, some Small-C, some C, and some
C++. very confusing sometimes, although it can be usefull. Ti8xcc holds
straight to the Small-C definitions (I think).

4. TISCO doesn't have good docs about how to use "inline assembly". How to
recieve/return variables in embeded asm. Ti8xcc does have these docs. (by
reading the includes from TISCO you can found it out yourself)

5. TISCO is built like an advanced assembler. Most instructions are not
'C', but more some other name for a (couple of) assembler instructions.
Ti8xcc is a 'true' Small-C compiler.

6. Ti8xcc peephole optimizer can be 'changed' (new optimizations can be
added), the one on TISCO is only accesible via the source code (which we
don't have)

7. BLA++ and BLA-- can only be used isolated in TISCO... Which means that
you can't increment a variable in a formula, you have to use another line
of
code to do that.

8. nearly all of TISCO is not finished, Ti8xcc is a bit more like a
'comercial' compiler.

9. Ti8xcc is NOT BETA (TISCO has the version number 0.0 hehehe...)


On the other hand:
1. TISCO has very good code-generating.

2. Although Ti8xcc is newer I didn't hear much form the makers of it, I
mailed them but I didn't get any replies (they use HotMail), only later on,
but I have to conclude that he is no longer interested in the job. (From
the other maker of Ti8xcc, I didn't hear a blimp). So there is no support
of the 'founders' on both compilers.

3. The peephole optimizer of TISCO doesn't change anything in inline
assembly, Ti8xcc first compiles everything, and after that puts all of it
through the optimizer. (both of these have pros and cons, but I think
TISCO's way is
better)

4. Ti8xcc doesn't have structs... Very bad... TISCO does have them :)

5. In TISCO you can (must) give routines a 'type' ('char', 8bit or 'int',
16bit). Ti8xcc doesn't even know that routines can have a type.

6. TISCO does 'dead code elemination'. Parts of the code that are never
used are not include in the final program.

	Henk Poley


PS: I found an e-mail adress at the bottom of TISCO's docs, I'm going to
e-mail the guy and ask for the sources. I hope his acount is still there
(and he is using it)




Follow-Ups: