I've revealed in the past my intention to make a Z80 tutorial, but I never really put pen to paper on it. In the past month or so, I started working on the meat of it, but never did a worthy introduction. Then I read Kerm Martian's introduction to his book, Programming the TI-83/84+. I then had a lightbulb moment. Why not open with a discussion of the calculator's power and encourage people to put aside the stereotypes about anything above the "average" with computers. I offer my opening segment below for critique. Please review and comment. Offer whatever you feel needs to be changed.

@Kerm...While your intro did give me my idea, I don't think I actually used any of your material. That being said, if you find anything too similar that you would like cited or removed, let me know.

Chapter 1: Your Calculator Unleashed

In today’s day and age, many of you are familiar with your iPods, iPads, and iPhones. You install and run applications on these mobile devices, using connectivity software such as iTunes, the Mac Store (on your Mac computer), and the App Store (on your Apple mobile device) to sync with your device. Even for those of you who do not use Apple products and prefer to go the route of the Windows phone, Android, Blackberry, or any other style of mobile device, you still use connectivity software designed to sync your device with your computer.

But did you know that there is another device that you use every day, for school, can be used in much the same way. You carry it in your backpack, only using it for the purposes that you have been taught to use it for, oblivious to its true power. It is your graphing calculator. There are two major brands of graphing calculators, Texas Instruments and Casio. This tutorial focuses on programming for the Texas Instruments line of Z80 calculators, the TI-83+ and the TI-84+ and their respective Silver Editions.

Your calculator is a programmable device. Unlike the calculators of old, which did not allow the user to install any third party software (often because there was not enough memory or not advanced enough hardware to support it). But, this is no longer the case. The calculators to which this tutorial refer are powerful. You may write programs, applications, and even third-party operating systems for them. These programs may be coded on your calculator, in the built-in language unofficially dubbed “TI-Basic”. However, this language lacks low-level function, such as the ability to control the hardware and to create and destroy variables in memory. For such functionality, we turn to Z80 assembly language, the central topic of this tutorial.

But, suppose you are not a programmer, but still want to unlock the full potential of your calculator. You can do this by visiting one of many TI-based websites and downloading the programs provided there. These websites are like the App Store, except you can get most of the calculator software for free. Just like your mobile devices, you use a special program to sync your TI calculator to your computer. This program is called TI Connect. Just like iTunes, TI Connect has a version for Windows and a version for Macintosh. Just like iTunes, TI Connect creates a special directory. In iTunes, it is called iTunes Media. In TI Connect, it is TI Downloads. Just like iTunes, you can add files to a library to send to your device. In iTunes, you drag it into your library, and the new files are synced to your device the next time you connect to your computer. In TI Connect, you select Send to TI Device and then select the files you want to send to your calculator. TI Connect can take backups of your calculator’s memory, just like iTunes can. Both of these programs fall under the category of connectivity software, thus it only makes sense that they should share many of the same capabilities.

Amongst my friends and other calculator users, a common consensus is that many of them would be willing to use programs that are available for their calculator to help them in classes, but that the prospect of downloading and installing a computer program, and sending the files to their calculator is a daunting concept. This is also a misconception typically associated with the world of computers, that anything more “technical” than average use is cryptic. I have just demonstrated that the usage of the TI brand of connectivity software is not so different from that of the Apple brand of connectivity software, iTunes, that we all know and love. If syncing your mobile devices is not a cryptic or otherwise daunting task, why on earth should syncing your calculator be?
This looks cool. Hope you get started on the teaching soon(I really need a tutorial).
This is an asm tutorial do you know that?
And asm is hard.
I know it's hard. I've tried to learn before.
Hard, but immensely fun Smile And, it helps with understanding higher-level languages (Though some argue that). I'll read this in a little while, after I finish my essay. So far, it seems pretty interesting (At least, the last two paragraphs do).
Quote:
If syncing your mobile devices is not a cryptic or otherwise daunting task, why on earth should syncing your calculator be?


*AHelper glares at TI-Connect
AHelper wrote:
Quote:
If syncing your mobile devices is not a cryptic or otherwise daunting task, why on earth should syncing your calculator be?


*AHelper glares at TI-Connect


Someone should make a version of calculator syncing software that actually has an interface like iTunes.

Edit: Wouldn't that require working with drawing windows and stuff? And understanding how to communicate with the usb port? Anyone know of any good references for this?

Edit2: Never mind.
ACagliano wrote:
AHelper wrote:
Quote:
If syncing your mobile devices is not a cryptic or otherwise daunting task, why on earth should syncing your calculator be?


*AHelper glares at TI-Connect


Someone should make a version of calculator syncing software that actually has an interface like iTunes.


You mean slow and unusable? Already done.
How about a version where you have all of the files in a folder, and it just "syncs" it. It's possible to do, actually. The problem is getting USB to work properly. I don't want to mess with libusb either atm.
graphmastur wrote:
How about a version where you have all of the files in a folder, and it just "syncs" it. It's possible to do, actually. The problem is getting USB to work properly. I don't want to mess with libusb either atm.
I think it's not too bad Smile I actually had this idea a while ago, but never got the time to implement it. I was planning to use Python, pynotify (inotify wrapper), and then TITools (by floppusmaximus) to actually do the sync. And Python wrappers for libusb. (Some kinda mix of all of this was my idea Razz)
aeTIos wrote:
This is an asm tutorial do you know that?
And asm is hard.


It's only hard because everyone convinces everyone else around the community that it's hard. It's actually pretty easy to work with and write programs with once you get in the mindset. Please don't try to discourage someone from trying it, or make the impression it's impossible to learn, before they've actually tried learning it and/or using it; with a mindset like that, no one gets anywhere. Thanks.

Keep in mind Spencer, we're glad to help people out in their journey learning z80 assembly, so try learning it, and we'll help you out along the way with understanding it (as long as you remain patient with it).
As an aside, and an extension Ashbad, I found assembly fairly easy to learn. It is the algorithms and some hardware stuff that I struggle with.
_player1537 wrote:
ACagliano wrote:
Someone should make a version of calculator syncing software that actually has an interface like iTunes.


You mean slow and unusable? Already done.
You win an internets from me for an epic double burn on both iTunes and TI-Connect.

I disagree that ASM is hard. It's not easy, but if you think about it methodically, I don't feel it's hard. Also, I'm happy to have inspired your introduction.
I'm hosting it on google docs. Commenting is open to all...feel free to go all grammar-nazi on it and suggest any edits. Please excuse some formatting issues...pictures and the word-TOC don't go in right.

link: https://docs.google.com/document/d/16kb_uChpEkaDiLcn2bz_FHQMGJtsLLa2MgvrZ9YX5Kk/edit
Hey, when programming an application, can I use bcall (_PutS) on text that is in the application without moving it to RAM, provided the Text is on the same page as the routine that is using PutS?
The bcall _PutS is going to be on a different page than the string in your app (even though it might be on the same page as the code that uses the bcall), so unfortunately you cannot do that.
Ok guys. I got the tutorial done. I just need help from the community on one of the Appendixes... I need a full list of the instructions in Z80, with processing times and battery usage. Tnx.
Instructions you say? http://wikiti.brandonw.net/index.php?title=Z80_Instruction_Set. Google is useful.
awesome AHelper. One thing missing from that list, though, is battery usage.

Edit: Here is what I wrote about Cemetech in the "Further Assistance" section. You guys approve?

Quote:
Further Assistance

If, at the conclusion of this tutorial, you still require assistance with topics, please visit one of the sites listed below:

1. Cemetech. http://www.cemetech.net
Cemetech is a leading TI calculator support forum with a very extensive collection of software that you can download. Cemetech is known for its members’ expertise with Z80 assembly, as well as for the releases of DoorsCS7, CALCnet 2.2 and others. The site is owned by Christopher Mitchell, alias Kerm Martian, and administrated by ....[insert here]...
I found the following tables EXTREMELY useful and easy to look at!

http://tinyurl.com/z80table (Compact color coded table)
http://tinyurl.com/z80chart (Zeda's more compact version)
  
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 2
» 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