I began developing this software in another thread, and it's grown into something much larger than I originally expected it to be.

With all the people unable, unwilling, or lacking the technical knowledge to open up their calculators and report what components are inside, I wrote Z80Test to poke around the insides and correlate both documented and undocumented behavior back to the hardware that produces it. The TI-83 (and compatibles), TI-83 Plus, TI-83 Plus Silver Edition, TI-84 Plus series (NOT the TI-84 Plus CE), and TI-86 are supported; the TI-73 and TI-82 are works in progress. It can uniquely identify any ASIC used in all supported calculators, identify the display driver used, and even differentiate the Zilog Z84C00 and the Toshiba T84C00 clone!

Z80Test can be called from TI-BASIC programs (although it is slow), and results are returned in list L1. A TI-BASIC program bundled in the GitHub release, BZ80TEST, interprets these results for you, and briefly explains what each test did. Additional documentation, along with expected results for known hardware, will be posted on GitHub when I get around to it. Note that BZ80TEST alters L1, so if you're asked to provide L1, break BZ80Test at the first screen of info or just run Z80Test directly. The version of BZ80Test included after Version 7 preserves the contents of L1, so it is no longer necessary to run Z80Test directly if only L1 is needed!

If you update Z80Test, be sure to update BZ80Test as well!

Results from BZ80Test are generally sufficient in nearly all cases. In the event you're asked to directly run Z80Test, or you don't have BZ80Test, follow these instructions. From the TI-83 Plus series, TI-84 Plus series, or TI-86 home screen, grab the Asm( token from the CATALOG, select Z80TEST from the PRGM menu, and press ENTER. You should have `Asm(prgmZ80TEST` on the home screen. Press ENTER, the screen will flicker, and results will appear in list L1. For the TI-83 and TI-82 STATS, grab the Send( token from the CATALOG, press 9, then select Z80TEST from the PRGM menu. You should have `Send(9prgmZ80TEST` on the home screen. Press ENTER, the screen may flicker, and results will appear in list L1.

If you have a supported calculator that's not a TI-84 Plus C Silver Edition, and you simply want to check what components are inside without having to look through results tables, CalcInfo provides a simple, no-nonsense output of your calculator's main components. Both BZ80Test and CalcInfo require Z80Test to be installed, but CalcInfo does not require BZ80Test and vice-versa.

Screen flickering on grayscale calculators is normal, as Z80Test turns off the LCD during the LCD tests.

An additional program, FlashFun, can coarsely identify your Flash chip if you're using a TI-83 Plus or TI-84 Plus series monochrome calculator. There might be cases where it clears your RAM (since it relies on flash unlocking), so don't run it on anything important without a backup. If BFLASHFN (the results interpreter) doesn't give any output, let us know what's in L1! If FlashFun fails to unlock flash, and your calculator miraculously doesn't RAM clear, L1 will be unchanged from its previous value.

Please submit your Z80Test/BZ80Test results!
You can submit your results to my Google Forms page here!
This information is used to correlate hardware revisions to hardware configurations. Responses are anonymous, and submitted info does not uniquely identify your calculator.
Z80Test/BZ80Test Version 7 has been released! Version 7 improves the LCD busy delay test to give a more consistent result, and slightly reduces the amount of screen flickering. BZ80Test has been updated to clear the display after each screenful of information, making data entry into the Google Forms page much easier.

If you update Z80Test, be sure to update BZ80Test as well!
I'm putting results in this spreadsheet as they arrive. Converting Google Forms output of raw BZ80Test results into individual components is not an automated process, so you won't see your calculator appear in this spreadsheet immediately upon submitting.

At the moment, the sheet is pretty barren. If you're reading this (or even if you aren't) and you own a compatible calculator, go submit your results!
Apparently Z80Test crashes on Z180-based TI-83s. I'll have to look into what test is crashing.
I've been "working" on figuring out why Z80Test isn't working on TI-73. So far, I've figured out a couple of things:
  • Emulation was more painful than I expected. WabbitEmu won't load Flash apps to a TI-73, jsTIfied doesn't want to emulate a TI-73, and TI-83 Plus Flash Debugger is a pain in the rear to use (although it does have its occasional moments of usefulness).
  • TI-83 Plus Flash Debugger appears to use hardcoded paths during installation, which was probably fine 23 years ago but not anymore. Check your PATH environment variable! This is probably among the reasons why Brass doesn't find Wappsign on my Win10 x64 system.
  • BrandonW's Swan is a functional and reliable way to run assembly on apparently every TI-73 OS; I've tested 1.3004, 1.60, and 1.91 with good results.
  • Either I'm using the _CreateRList/_CreateReal bcalls wrong, or you can't use them in programs executed by Swan.
  • In the current version (7) of Z80Test, L1name is left undefined as I don't know what it's supposed to be; the TI-83 Plus value may be correct on TI-73 as well. Since I don't have a working program to verify whether _CreateRList even works, I don't have a way of knowing if that's the only issue.
  • A possible alternative would be loading the parts of code needed for writing TI variables into asm_exec_ram, then jumping to there.
  • Another possible alternative is to create a FlashApp version of Z80Test/BZ80Test. This is a lot of work, but would have zero third-party dependencies.
  • A bug in either TI-OS or Swan leads to a reproducible issue where running a program that overruns execution in asm_exec_ram and enters ramCode ends up deleting the OS; leftover code in ramCode swaps the boot code page in place of Swan's page, and the ret at the end of that routine jumps to a boot code routine that erases flash sectors containing TI-OS. I plan on patching both Swan and Z80Test to mitigate this, and I've already translated Swan's source code from ZDS to Brass.

I've spent the last few days working on getting program templates set up for both Mallard-compatible assembly programs and Flash apps, and isolating specific routines that cause problems on the TI-73. There's not a whole lot of documentation to work with in regards to TI-73 stuff.

If I can't immediately resolve all of my problems I've encountered with the TI-73, it may have to receive its own version of Z80Test. Either way, the execution procedure and BZ80Test are going to be quite different.
CVSoft wrote:
I've been "working" on figuring out why Z80Test isn't working on TI-73. So far, I've figured out a couple of things:
  • Emulation was more painful than I expected. WabbitEmu won't load Flash apps to a TI-73, jsTIfied doesn't want to emulate a TI-73, and TI-83 Plus Flash Debugger is a pain in the rear to use (although it does have its occasional moments of usefulness).

TilEm has been a useful testing and debugging tool during testing of routines.

CVSoft wrote:
  • BrandonW's Swan is a functional and reliable way to run assembly on apparently every TI-73 OS; I've tested 1.3004, 1.60, and 1.91 with good results.
  • Either I'm using the _CreateRList/_CreateReal bcalls wrong, or you can't use them in programs executed by Swan.

This is indeed the case. I don't know what's broken, it's beyond my pay grade to figure it out. Relocating the entire assembly program to asm_exec_ram does not fix this.

CVSoft wrote:
  • In the current version (7) of Z80Test, L1name is left undefined as I don't know what it's supposed to be; the TI-83 Plus value may be correct on TI-73 as well. Since I don't have a working program to verify whether _CreateRList even works, I don't have a way of knowing if that's the only issue.
  • A possible alternative would be loading the parts of code needed for writing TI variables into asm_exec_ram, then jumping to there.
  • Another possible alternative is to create a FlashApp version of Z80Test/BZ80Test. This is a lot of work, but would have zero third-party dependencies.

The only way I will be able to move forward with the Z80Test TI-73 version will be to create a flashapp with its own source code.
How long does this program take since my 99O TI-83 pretty much hangs until I press on, then RAM gets corrupted?

I thought it might have been the calc however I just installed and played through Desolate which uses almost all memory ... it doesn't use many romcalls however. Normal math operation seems ok?

I'm about to see if this thing has the MLT instruction.
  
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
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement