A83: more questions + some code


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

A83: more questions + some code




Hi everybody....

Here I have the code of one of mine routines.
It works in the following way.
In mem at the location

(attackingh)
  30 bytes
(unit1)
  10 bytes    unit1's data
(unit2)
  10 bytes
(unit3)
  10 bytes

So for that hero I loop 3 times for the first (de=30) second (de=40) and 
third (de=50) units. It draws each unit and then ret's....

I make ix pont to the attakingh then add the desired offset with de and then 
add other offsets with ix for the unit data....

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Draw_units:
	ld de,001Eh			; 30 -> e wich is my counter

left_unit_loop:				;
	push ix				; push 001
	ld (tmpw),ix			;


        ld ix,(attackingh) 		;  begin mem location
        add ix,de			;
        ld a,(ix+Nofunits)		;
	ld (tmp),a			;
	jr z,left_unit_loop2		;
        ld a,(ix+x)			;
	ld b,a			; x coordinate in to b
        ld a,(ix+y)			;
	ld c,a			; y in to c
        ld a,(ix+kind)			; and kind in to a

	cp 2d				;
	jr z,load_lich			; depending on                                             
            ; kind... i load the appropriate sprite

load_skeleton:
	ld ix,skeleton_grfx		;
	jr continue_1			;

load_lich:
	ld ix,lich_grfx			;


continue_1:

	push de				;push 002
	call convert_cur		;           converts bc to the                            
                                      ;right coordinates and puts
				;   it in to de

	call DRW_SPRW			; sprite routine
	call _grbufcpy_v		;


	pop de				;pop 002
	pop ix				;pop 001




left_unit_loop2:
	ld a,e				;
	cp 50				;
	jr z,left_unit_loop_end		; check if e is 50
	add a,10			                ; if not add 10
	ld e,a				;
	jr left_unit_loop		;

left_unit_loop_end:
	ret				;

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


The problem .....
When I call it once it works fine.
But if I call it a second time it bugs

I tried calling it twice and I called _dispHL after to verify if it wasn't 
looping infinetly but it came to that command and gave an
ERR: RESERVED
I'm out of ideas.... can anybody help ?
thanks.

any optimisation ?

Q2:
Do I have to push/pop ix before and after every time I use it ?


PS. sorry about the large e-mail....

()()()()()()()()()()()()()()()()    ()()()()()()
() www.homonerdicus.cjb.net  ()    ()visit me()
()()()()()()()()()()()()()()()    ()()()()()()


______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com