[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