Re: A89: what can possibly be wrong?


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

Re: A89: what can possibly be wrong?




will you stop cross posting???? it gets annoying..... (i wish ticalc would
combine these lists anyways)

At 02:31 PM 10/17/99 EDT, you wrote:
>This is my keylib.asm library:
>
>    include "doorsos.h"
>    xdef    _ti89
>    xdef    _ti92plus
>    xdef    _library
>    xdef    keylib@0000
>keylib@0000:
>    tst.w   (doorsos::kb_vars+$1C)      ; has a key been pressed?
>    beq \put_zero           ; if not, go to put_zero
>    move.w  (doorsos::MaxHandles+$1E),d0    ; puts the value of the keypress 
>into d0
>    clr.w   (doorsos::kb_vars+$1C)      ; clear key buffer
>    bra \done               ; exits out
>\put_zero
>        move.w  #0,d0
>\done
>    rts
>    end
>
>However, when l try to call this library from an program, l either get the 
>message "function did not return a value" or "Illegal instruction" appears
on 
>the status line and the program exits.  lt seems to me that whether or not a 
>key is pressed that a value is moved into d0, but yet the messages say no.  
>What is happening?
>The C program is calling the library, and in doing so it stores whatever 
>keylib@0000 returns in d0 into another variable.
>
>--TurboSoft
>
>Visit the TURBOSOFT HOMEPAGE:  The most current Basic and C programs created 
>by TurboSoft for the 89, and the most 89 web links.
><A HREF="http://turbosoft.ticalc.org/">http://turbosoft.ticalc.org/</A>
>	include "doorsos.h"
>	xdef    _ti89
>	xdef    _ti92plus
>	xdef	_library
>	xdef	keylib@0000
>keylib@0000:
>	tst.w	(doorsos::kb_vars+$1C)		; has a key been pressed?
>	beq	\put_zero			; if not, go to put_zero
>	move.w	(doorsos::MaxHandles+$1E),d0	; puts the value of the keypress into d0
>	clr.w	(doorsos::kb_vars+$1C)		; clear key buffer
>	bra	\done				; exits out
>\put_zero
>        move.w	#0,d0
>\done
>	rts
>
>	end



Follow-Ups: References: