AD49: Allocate sprite (RST $28)
| allocate_sprite |
AD49 |
PUSH HL |
|
AD4A |
PUSH DE |
|
AD4B |
PUSH BC |
|
AD4C |
LD HL,sprite_data |
|
AD4F |
LD DE,$000C |
|
AD52 |
LD BC,$2000 |
|
AD55 |
LD A,$7E |
| allocate_sprite_0 |
AD57 |
CP (HL) |
|
AD58 |
JR C,allocate_sprite_1 |
|
AD5A |
INC C |
|
AD5B |
ADD HL,DE |
|
AD5C |
DJNZ allocate_sprite_0 |
|
AD5E |
LD IX,$03E8 |
|
AD62 |
JR allocate_sprite_4 |
| allocate_sprite_1 |
AD64 |
PUSH HL |
|
AD65 |
BIT 7,(HL) |
|
AD67 |
JR Z,allocate_sprite_3 |
|
AD69 |
LD HL,allocated_sprites |
|
AD6C |
INC (HL) |
|
AD6D |
LD A,(HL) |
|
AD6E |
ADD A,L |
|
AD6F |
LD L,A |
|
AD70 |
JP NC,allocate_sprite_2 |
|
AD73 |
INC H |
| allocate_sprite_2 |
AD74 |
LD (HL),C |
| allocate_sprite_3 |
AD75 |
POP IX |
|
AD77 |
LD (IX+$07),$00 |
|
AD7B |
LD (IX+$03),$00 |
|
AD7F |
LD (IX+$04),$FF |
|
AD83 |
LD (IX+$08),$F8 |
| allocate_sprite_4 |
AD87 |
POP BC |
|
AD88 |
POP DE |
|
AD89 |
POP HL |
|
AD8A |
RET |