[A83] Re: Sprites in 83+ ASM


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

[A83] Re: Sprites in 83+ ASM




* You call the sprite, not jump to it.
* Put a ret at the end of the routine? (possible)
* Call a screen copy after displaying the sprite.


>From: "Steve Watson" <fif_freak00@hotmail.com>
>Reply-To: assembly-83@lists.ticalc.org
>To: assembly-83@lists.ticalc.org
>Subject: [A83] Re: Sprites in 83+ ASM
>Date: Sat, 10 Mar 2001 20:49:04 -0700
>
>
>Well, I still have yet to see a working routine!  Joe, the last routine you
>sent didn't work.  And here's the source to prove it:
>
>.NOLIST
>#define EQU .equ
>#define equ .equ
>#define END .end
>#include "custinc.inc"
>.LIST
>	.org 9D95h
>	B_CALL(_homeup)
>	B_CALL(_clrfull)
>	B_CALL(_grbufclr)
>	ld	b,8
>	ld	l,10
>	ld	a,10
>	ld	ix,sprite
>	jp	putSprite
>	B_CALL(_getkey)
>	ret
>
>;DRAW A SPRITE
>;b=Size of Sprite
>;l=Y coord.
>;a=X coord.
>;ix holds pointer
>
>putSprite:
>	ld	e,l
>	ld	h,$00
>	ld 	d,h
>	add 	hl,de
>	add 	hl,de
>	add	hl,hl
>	add	hl,hl
>	ld	e,a
>	and	$07
>	ld	c,a
>	srl	e
>	srl	e
>	srl	e
>	add	hl,de
>	ld	de,gbuf
>	add	hl,de
>putSpriteLoop1:
>sl1:	ld	d,(ix)
>	ld 	e,$00
>	ld 	a,c
>	or	a
>	jr	z,putSpriteSkip1
>putSpriteLoop2:
>	srl	d
>	rr	e
>	dec	a
>	jr	nz,putSpriteLoop2
>putSpriteSkip1:
>	ld	a,(hl)
>	xor	d
>	ld	(hl),a
>	inc	hl
>	ld	a,(hl)
>	xor	e
>	ld	(hl),a
>	ld	de,$0B
>	add	hl,de
>	inc	ix
>	djnz	putSpriteLoop1
>
>sprite:
>	.db %00111100
>	.db %01000010
>	.db %10001001
>	.db %10000101
>	.db %10000101
>	.db %10000001
>	.db %01000010
>	.db %00111100
>
>.end
>end
>_________________________________________________________________
>Get your FREE download of MSN Explorer at http://explorer.msn.com
>
>
>

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com