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
|