A86: ASM Clear-Up
[Prev][Next][Index][Thread]
A86: ASM Clear-Up
I apologize to those who don't care if I learn ASM or 
not. I also apologize for the length of this message. 
 
I didn't want to clutter your mailboxes 
with tons of messages so I put it in one. 
 
 
Many of you advanced ASM 
programmers may think I'm ignorant, and I am, to the ASM language. I'm unclear 
on bit rotation, incrementing and decrementing.
 
If I have %00000000 and increment it, what do I 
have? Is it %00000001?
 
If I have %00000000 and decrement 
it, what do I have? Is it %11111110?
 
If I use my on-calc hex converter and I convert 
10 to hex I get Ah. I understand
that A=10, B=11, C=12, D=13, E=14 and F=15. The $ 
takes place of the h right? So Ah really equals $10 right. But if I convert 16 
to hex I get 10h. How? Do binary numbers come into play?  Some examples in 
a fair tutorial I read were that 59=3bh and thus equals $ff
 
 
Does anyone actually know the ASCII code for the 
TI calculators? I'm familiar with that of the PC because I've been programming 
in Q-BASIC for around 3 years. (I got bored.) For example, is A still 65, B 66, 
C 67. I know the syntax is not the same (in QB PRINT 
CHR$(ascii-code).
 
 
This is the first coding I tried. I 
compile it with Assembly Studio 86. It compiled correctly but it didn't work 
correctly on the calc. It didn't print the text. I then compile it with make86p 
and it worked. Does anyone know why?
 
#include 
"asm86.h"                        
; include file
#include 
"ti86asm.inc"                    
; include file
.org 
_asm_exec_ram                      
; .org $d748 (in ti886asm.inc)
call_clrLCD                                   
; calls the clrLCD ?rom? function
ld hl, 
$00                                     
; stores $00 in h, $00 in l
ld 
(_curRow),hl                             
; stores 0 in _curRow, 0 in _curCol
ld 
hl,string                                   
; loads string into the HL register
call_puts                                     
; puts "This is example text." on the screen
ret                                             
; returns to TI-OS or a shell
string:                                        
; label for string
.db "This is example 
text.",0            
; actual string text
.end                                           
; end of program
 
From what 
I understand of ASM this should work. But I don't know why it doesn't. This 
little bit of code is basically what is in Dux Gregis' tutorial. I figured I 
should give him a little credit for his time. 
 
What does the ',0' mean after the 
string text? I see it often but don't actually know the point. 
 
 
I've been experimenting with the 
TI-BASIC Sprites and I sort of understand the concept but I don't quite get it. 
I guess with a little practice I will. I wonder why TI didn't include some sort 
of way (like the TI-85) to find the correct pixel that you need. I think the 
syntax is something like call_nextpixel. (Mind you that I'm not sure at all and 
I'm very new to ASM. If it's wrong, ignore it.)
 
 
Thanks again for your time (if you read). 
:)
 
I'll probably write a few more messages in time. 
I'm learning ASM moderately fast so...
 
 
 
 
This message was written by Chris 
Flanigan.