This is an archived, read-only copy of the United-TI subforum , including posts and topic from May 2003 to April 2012. If you would like to discuss any of the topics in this forum, you can visit Cemetech's z80 & ez80 Assembly subforum. Some of these topics may also be directly-linked to active Cemetech topics. If you are a Cemetech member with a linked United-TI account, you can link United-TI topics here with your current Cemetech topics.

This forum is locked: you cannot post, reply to, or edit topics. Z80 & 68k Assembly => z80 & ez80 Assembly
Author Message
benryves


Active Member


Joined: 23 Feb 2006
Posts: 564

Posted: 19 Jan 2009 04:05:28 pm    Post subject:

I've tried two different busy routines. The first is as follows:

Code:
Busy:
-   in a,($10)
   or a
   jp m,-
   ret

The second is as follows:

Code:
Busy:
   push af
   call $000B
   pop af
   ret

Neither appears to work on the TI-84+ in 15MHz mode (there is LCD corruption), though supposedly they work in 6MHz mode. Is there some difference between the TI-83+ and TI-84+ LCD driver hardware? (Both methods work fine on my regular TI-83+).
Back to top
FloppusMaximus


Advanced Member


Joined: 22 Aug 2008
Posts: 472

Posted: 20 Jan 2009 07:29:53 pm    Post subject:

Why the push/pop in one case and not the other?

The latter should certainly work (as it's the same thing the OS does); as far as I know the former works as well. If I remember correctly, the 84+ uses a T6K04, which is a slightly enhanced, but compatible, version of the T6A04.

What in particular are you doing that leads to corruption? Have you changed any of ports 29-2F (or have you used ALCDFIX?)
Back to top
benryves


Active Member


Joined: 23 Feb 2006
Posts: 564

Posted: 20 Jan 2009 07:55:22 pm    Post subject:

FloppusMaximus wrote:
Why the push/pop in one case and not the other?
From the TI-83+ SDK documentation:
Quote:
Use a CALL LCD_BUSY_QUICK, where LCD_BUSY_QUICK is equated to 000Bh. This is a new entry point that does not require the system overhead of a B_CALL. This call also works on earlier TI-83 Plus versions, but runs slightly faster than the required 10us and modifies the z/nz status flag. To use this on all versions, wrap it in another routine that saves and restores the flag register.

Quote:
What in particular are you doing that leads to corruption? Have you changed any of ports 29-2F (or have you used ALCDFIX?)
No, I don't touch ports 29-2F, and I haven't used ALCDFIX. I have no corruption on my calculator (regular TI-83+), and am going on bug reports from TI-84+ users.
Back to top
FloppusMaximus


Advanced Member


Joined: 22 Aug 2008
Posts: 472

Posted: 20 Jan 2009 08:37:30 pm    Post subject:

OK, but you do realize, don't you, that the other routine destroys not only the zero flag, but all of the other flags and the accumulator as well?
Back to top
benryves


Active Member


Joined: 23 Feb 2006
Posts: 564

Posted: 21 Jan 2009 05:17:37 am    Post subject:

I do indeed. Smile If that were a problem it wouldn't work on the TI-83+ either.

I've already got some throttling code that slows down the Z80 to 6MHz when the program is waiting for key input so maybe those will make a difference. Cheers for your help, though!
Back to top
magicdanw
pcGuru()


Calc Guru


Joined: 14 Feb 2007
Posts: 1110

Posted: 21 Jan 2009 11:51:04 pm    Post subject:

Why throttle the cpu? Just write a zero to port 20h. Or is that what you meant by throttling code?
Back to top
benryves


Active Member


Joined: 23 Feb 2006
Posts: 564

Posted: 22 Jan 2009 09:50:06 am    Post subject:

That is what I mean, but it's slightly more managed than that. There's a SlowDown and a SpeedUp routine and the idea is that you can nest them (and you only return to full speed when SpeedUp has been called as many times as SlowDown was). There's also an option to cap the top speed at 6MHz, which is useful for testing.
Back to top
Display posts from previous:   
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
    »
» View previous topic :: View next topic  
Page 1 of 1 » All times are UTC - 5 Hours

 

Advertisement