[A83] Re: im 2


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

[A83] Re: im 2




> From: David Phillips <david@acz.org>

> > I know, but I brought up the issue again, because my routine really needs
> > to be as fast as possible. Every tstate counts. So I thought, by splitting
> > it up into several routines, which are randomly called, each routine could
> > be faster than when I had to put them together and built in a counter.

> What are you doing that is so time critical?

Can't really tell yet :)

> Your logic doesn't make any sense.  Having less control over your program
> doesn't make it faster.

Now I actually have three routines. Each interrupt another one is called and the order in which that happens doesn't really matter. I do that by implementing a counter which counts from 1 to 3. If I could make an interrupt vector table with 3 pointers instead of one, I wouldn't have to implement that counter, which could safe me a few clock cycles. Not much, but as I said, every tstate counts.

> > As far as I know now, the lower bit seems to be more 1 than 0. Also, when
> > I use a _getcsc/halt loop in the main program, the lowest bit seems to be
> > always 1, resulting in aligned addresses. Don't ask me why that is.

> How are you reading the value?  I don't have any proof, but reading the
> register might always return the same value, or a different one than the
> calc uses when an interrupt occurs.  The only way to really test it is to
> put in different interrupt routines at different addresses, and see what
> happens.  Or put garbage in half the bytes, and see if it crashes.

I used two routines. One at 8587h and one at 8785h. Then I made a vector table at 8600h-8700h. One time I let it start with 85h(,87h,85h,87h,...) and the other time with 87h(,85h,...) and saw what happent.
-----------------------------------------------------
Mail.be, Free WebMail and Virtual Office
http://www.mail.be