ticalc.org
Basics Archives Community Services Programming
Hardware Help About Search Your Account
   Home :: Programming :: Columns and Tutorials :: TI-83 Assembly Logs Vol. 5
TI-83 Assembly Logs Vol. 5

by Phil

Editor's note: The information contained in this article may be outdated and/or inaccurate.

INTRODUCTION

Hi all. Thanks for supporting my Logs by eMailing me. Because of your support, I have decided to release this as a sort-of Log 5, but really it's a FAQ and Answer file from the mal I've recieved since I've started. (I suppose I was a little lazy, and I didn't have enough time to get enough ideas up to write a new log.)

QUESTION 1, Batch File?

"Phil, why on Earth do you delete all those things in the object file in stead of using those handy pre-made programs that will do everything for you?"

Well, it's not like I have anything against those nifty programs that make my life easier (as a matter of fact, I have used one on a number of occations). I just Remember that the first time I tried the program, it failed. This meant that I needed a new way to do things. I found out exactly what the program did, and I went and did it manually. I then published it in my logs, not remembering that there was an easier way to do these things. If you can get a hold of some of the programs in question, I'm sure you can use them with out any consiquence to your programs. In fact, I incourage you to get any program that makes ASM easier.

QUESTION 2, Inverting Text?

"Say, Phil, I just got and on top there is some funny looking text. It has a black background and the text on top is white. Is there any easy way I can do this in my programs?"

That funny looking text is called "inverted text", and I really didn't want to tell you about this part of ASM until my next REAL log, but all the letters I recieved about this led me to tell you of it now. There are certian "switches" that you can set and reset in ASM that allow you to do different thind with a single command. One of these "switches" is "textinverse", under the "textflags" catigory. In order to set the "switch", or flag, you use the command 'set', and to reset, 'res'. The exact line that you would use (which would be before the 'call _vputs' or call _puts') would be:

	set textinverse,(iy+textflags)
After the 'call _vputs' or 'call _puts' command, you reset the flag with the line:
	res textinverse,(iy+textflags)
In my next REAL log, I'll make sure I'll explain this more in detail, but for now, that answers the question.

QUESTION 3, ZASMLOAD and SQUISH?

"Say, when I open certian files in my TI-83 Program Editor, all I see are a bunch of garbage commands, and I cant run it on my 83 with the 'Send9(prgm)' command. What of that?*"

Well, if you see a file that looks like the one described above, you've found a SQUISHed program. SQUISH is a program that takes an ASM program in hex machine-op code and converts it into ASCII charicters. If you view a program like this (which you can only view in a computer based editor because SQUISH automatically protects the program) you will see the calculators translation of the ASCII charicters, which happens to be a bunch of jargon commands thrown together. These programs are only useful if you have another program that "disassembles" the ASCII text, and the only ones I know of are ZASMLOAD and AShell 83, which uses ZASMLOAD's routines. All that SQUISH does is makes the program take up less memmory when you are running it, meaning you can, in theory, run programs up to 26000 bytes in size. AShell 83 can only run SQUISHed programs, so if you want to program for AShell, I suggest you download SQUISH.ZIP at Ticalc.org, and read the instructions.

QUESTION 4, Sprite Commands?

"All right, what's a sprite, and how do I use one?"

A sprite is graphical object that the calculator can read, display, and delete like a block of text (sort of). The most popular sprite routines around use a simple eight byte block as a sprite. This would be constructed of eight binary bytes, or 64 ones and zeros. For an example, this in binary:

	11111111
	10000001
	10111101
	10100101
	10111101
	10100101
	10000001
	11111111
would look like this as a sprite:
	########
	#      #
	# #### #
	# #  # #
	# #### #
	# #  # #
	#      #
	########

Now, I'm no expert at sprites. In fact, I rarely use them. If you need help on displaying them, I'm not the one to turn to. The best sprite routines out there belong to a programmer by the name of Movax, allowing you to do normal sprites, which can be deleted and displayed, or XOR sprites, which allow sprites to be layed on top of eachother like so: (The above sprite and a clone, placed one pixel to the right, and one down, both styles)

Normal:

	########
	#########
	###### ##
	###### ##
	###### ##
	###### ##
	###  # ##
	#########
	 ########

XOR:

	########
	####### #
	###### ##
	##### ###
	### #####
	##### ###
	## #  ###
	# #######
	 ########

You might have an artistic mind like mine and see what each method does. In any case, you should experiment with each. The files can be found at Ticalc.org, and have instructions for using them in the source code. Good luck.

QUESTION 5, Okay Wise Guy

"Okay, wise guy, what gives you the right to call yourself a master at TI-83 ASM and make these Logs, eh?"

Well, actually, I never have called myself a "master" at anything. I'm just an amature ASM programmer. The difference is, I read everyone else's guides, and I made the information easier to understand. When I first started, Ahmed was still working on his sixth Journal, and if you read those, you will understand why it was confusing for someone who has not even heared of ASM. As for what gives me the right to make these Logs, well, I sat down at a computer and began to type one day. You can do that too, and I'm looking forward to seeing a new series of guides pop up giving thanks to my Logs.


ICQ: 1385910

Thanks for your time, and I'll see you in my next REAL ASM Log! -Phil

  Copyright © 1996-2012, the ticalc.org project. All rights reserved. | Contact Us | Disclaimer