[A83] Re: Some questions on interrupts


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

[A83] Re: Some questions on interrupts




> 1. Is the rate of their occurrence really 200 per sec?
> My guess would be about 120-130, but I didn't really
> take the time to measure it. I just made a little
> user interrupt that would display a clock, timed
> it on a real TI-83, and it worked best when I chose
> to count one second for every 119 (or something
> similar, I don't remember the exact number) interrupts.

I did the same thing on the 86 a long time ago.  It was 176.  It will vary,
depending on the battery level (voltage).

> 2. What about the low byte of the interrupt address?
> I know that the high byte is in I and the low byte is
> an identifier of the hardware causing the interrupt
> - in theory. However, it seems that it is always 0
> on the 83. Could anyone tell me a safe method to
> determine this number?

I've thought about that before.  You would need to setup an interrupt table
that jumped to 256 different addresses.  There is probably a good scheme you
could use, but I haven't bothered to work it out.  You just have to assure
that every possible pair for all 257 places is a unique address:

00: $80 = $8080
01: $80 = $8081
02: $81 = $8180
03: $80 = $8082
04: $82 = $8280
05: $80 = $8083
06: $83 = $8380
07: $80 = $8084
08: $84

This won't work, because you will need more than one byte.  The easiest
thing to do would be to call the same address from every address, and use
the return address to calculate where it was called from.  This will require
three bytes per address.  Hopefully the 83's memory space will allow you to
easily build a table.  Good luck.

On the TI-86, it is values different than 0.  If you use a 256 byte table,
it will crash.  Don't trust VTI, it more than likely always use the same
value.






Follow-Ups: References: