[A83] Re: LCDBusy
[Prev][Next][Index][Thread]
[A83] Re: LCDBusy
In a message dated Mon, 19 Mar 2001 10:16:50 AM Eastern Standard Time, "Robert Maresh" <gardenerbm@netzero.net> writes:
<< Why do we use this routine: (33 clocks)
LCD_BUSY::
PUSH AF
inc hl
dec hl
POP AF
RET
When we could use this one: (32, could change it to be 33?)
LCD_BUSY:
halt
halt
halt
halt
halt
halt
halt
halt
ret
Sure, it's four bytes larger, but I thought halt saves on battery life. Is this one of TI's oversights, or am I completely wrong???
Bob Maresh
>>
The latter :-) While opcode tables list halt as 4 t-states, that's a very misleading statement. Sure it takes 4 t-states for the processor to load and process the opcode, but what halt actually DOES is wait for the next interrupt before continuing execution, which takes approximately 1/200th of a second. Your 8 halts would take a MUCH longer time to execute than any normal opcodes, because halts don't just execute through but rather serve like a timer. That's why they save battery power--the calculator sits and does nothing for 1/200th of a second.
You could use nops instead of halts if you actually wanted to save a t-state, but there's really no point to that...