Re: A86: first program
[Prev][Next][Index][Thread]
Re: A86: first program
The reason it moves up when you display in the lower-right corner is that it
wraps around to the next line and actually scrolls the screen up! Try
displaying some other stuff and then doing that and you'll see what I mean.
You can temporarily disable scrolling by doing
res appAutoScroll,(iy+appFlags)
at the beginning of the program. But be sure to do
set appAutoScroll,(iy+appFlags)
before the ret statement or else your calculator will crash at the home
screen when it needs to scroll!
As for the character not changing, I'm not entirely sure, but I would suggest
changing all your _clrLCD's to _clrScrn's, since _clrScrn clears out the text
shadow (which keeps track of all the characters that are currently displayed
on the screen), so it may be interfering...
In a message dated 2/18/2001 8:17:00 PM Eastern Standard Time,
cws@madison.tds.net writes:
I recently wrote this program that moves a character around the
screen. When you press prgm, the character changes. I am having a few
problems with it though. 1. When I move to the 6th row in the last
collumn, it moves up one. After the next move it goes to where it should
be. Any ideas why? 2. the character change part works fine on vti, but
not on my calculator. When I press prgm, the character changes but the
next time I move, it changes back to what it was originaly 'Y'. These
are probably just be dumb beginner mistakes, but if someone could help
that would be great.
#include "ti86asm.inc"
.org _asm_exec_ram
call _clrLCD
call _homeup
ld hl,(_curRow)
jr output
Loop:
call _getkey
cp kRight
jr z,move_right
cp kDown
jr z,move_down
cp kLeft
jr z,move_left
cp kUp
jr z,move_up
cp kPrgm
jr z,change_char
cp kExit
jr nz,Loop
ret
move_right:
ld hl,(_curRow)
ld a,h
cp 20
jr z,Loop
inc h
jr output
move_down:
ld hl,(_curRow)
ld a,l
cp 7
jr z,Loop
inc l
jr output
move_left:
ld hl,(_curRow)
ld a,h
cp 0
jr z,Loop
dec h
jr output
move_up:
ld hl,(_curRow)
ld a,l
cp 0
jr z,Loop
dec l
jr output
output:
ld (_curRow),hl
push hl
call _clrLCD
ld hl,string
call _puts
pop hl
ld (_curRow),hl
jr Loop
change_char:
ld a,(string)
inc a
ld (string),a
ld hl,(_curRow)
jr output
string:
.db "Y",0
----
Jonah Cohen
<ComAsYuAre@aol.com>
http://jonah.ticalc.org