Re: A83: Contest II (MUL/DIV)...


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

Re: A83: Contest II (MUL/DIV)...




In accordance with the prophecy, Thomas J. Hruska uttered:

> FYI, I have a lot of patience, but it dwindles quickly when people start
> thinking the world revolves around them...especially programmers who slam
> beginners (or even "advanced" programmers), thus discouraging them from
> programming.  You too, Linus, were a beginner once, just as I was, and
> everyone else on this list.  We are programmers here...who help others.  I
> really wish you wouldn't slam/flame beginners...but that is only a wish
> <sigh>.

> BTW, I look forward to your entry in this contest!


I apologize for flaming beginner programmers.

What you're doing right now, writing TAZM "ideal" mode, is creating a cross
compiler for a completely new language. Although the language might be
somewhat similar to z80 asm (which I personally don't see as an advantage in
a high level language), it is not asm. Neither is it written in z80 asm, but
in, what is it, C/C++? Aimed at being compiled for a completely different
processor. And of course you wouldn't bother this list with stuff that isn't
strictly related to assembly language programming on the TI-83, would you? =)

I will not enter the contest, because I don't want to. (If anyone would like
to question my asm skills because of this, they are of course free to do so.)
My reasons for not entering are:

1. I think the object of the compo (ending up with a complete set of
multiplication and division macros) is totally useless for the ti-83 asm
programmer. Obviously, adapting your code to use different registers &
algorithms is better than relying on pre-written foolproof routines that will
divide, say, E by H, only it'll take an awful lot of more clock cycles than
dividing, say, BC by A. Designing your code to use BC and A would then be a
lot better, both for the performance of the final program, and for the course
of learning better asm. And that, as you so neatly pointed out, is why we're
here.

2. I don't feel like wasting my time on it. If I need to do a quick division
in a program, I tailor-make a routine for it, probably based on tables. If I
need a small routine, I use one of TI's ROM calls. But if I don't need such a
routine, I don't feel like writing one.

3. The rules of the competition are still rather mediocre. It is a well known
fact that signed and unsigned multiplications and divisions aren't made in
the same way. For example, 0x90 * 0x93 (both numbers unsigned) = 0x52b0,
whereas 0x90 * 0x93 (both numbers signed) = -0x70 * -0x6d = 0x70 * 0x6d =
0x2fb0.

Linus

- --- Linus Akesson ------------------------ http://linusworld.cjb.net --- -


    I am Bill Gates of Borg. Resistance is futile. You will be assimil-
          Error - General protection fault in module "BORG.EXE"



References: