Re: A85: Problems


[Prev][Next][Index][Thread]

Re: A85: Problems



At 09:30 PM 11/8/97 -0700, Chris James wrote:

There are several things wrong:

>Well, I was trying to write my first zshell program, but it didn't seem to
>work right.  In fact, it doesn't work at all.  I was trying to display one
>pixel, and by pressing the arrow keys it would move around.  But instead, a
>bunch of boxes keep getting displayed, and the only way I can stop it is by
>pressing 'on' twice.  The first press turns off the calculator, and the
>second press turns it back on with all the weird characters on the screen
>(but still operational).  Please help me correct my problem.  Here is the
>asm file:
>
>#include "TI-85.H"
>
>	.org
>	.db "Move around",0
>
>init:
>
>	ld a,4
>	ld (5),a

** This should be out (5),a  (Right now, you're actually trying to write 04
to the ROM :) ).

>	ld a,10
>	ld ($800C),a
>	ld ($800D),a

** This will work, but in the future you should probably use different RAM
locations.  $800C and $800D are the text cursor positions.  And if you want
to write a value to two adjacent locations in ROM, it's more size efficient
to do:

  ld hl,$0A0A    ;0Ah = 10d
  ld ($800C),hl

>
>draw:
>	ROM_CALL(CLEARLCD)
>	ld a,($800C)
>	ld b,a
>	ld a,($800D)
>	ld c,a
>        CALL_(PlotPixel)    
>
>key:
>
>	call GET_KEY
>	cp $04
>	jp z,up
>	cp $01
>	jp z,down
>	cp $02
>	jp z,left
>	cp $03
>	jp z,right
>	cp $37
>	ret z
>	jp nz,key

** Every one of these should be jr's instead of jp's.  (i.e. jr z,up and jr
nz,key).  Quick optimization:

key:
  call GET_KEY
  cp $37
  ret z
  cp $01
  jr z,down
  cp $02
  jr z,left
  cp $03
  jr z,right
  cp $04
  jr nz,key

up:  ;continue from here

>
>up:
>	ld a,($800D)
>	inc a
>	ld ($800D),a
>	jr draw
>
>down:
>	ld a,($800D)
>	dec a
>	ld ($800D),a
>	jr draw
>
>left:
>	
>	ld a,($800C)
>	dec a
>	ld ($800C),a
>	jr draw
>
>right:
>	ld a,($800C)
>	inc a
>	ld ($800C),a
>	jr draw
>
>end:
>	.end

** The .end should be at the VERY end of your program, after PlotPixel.
Right now, PlotPixel probably isn't making it into the string.

>
>PlotPixel:
>  	 ROM_CALL(FIND_PIXEL)
>        ld de,$FC00
>        add hl,de
>        or (HL)
>        ld (HL),a
>        ret         
>
>
--
Brian Leech
butvis@mindspring.com
ICQ UIN: 1355611




References: