Product specifications

;
; RESET VALUE FOR ALCFS0 HELD IN TWO BYTE LOCATION
; ALCREV – ANIMATION LOOP COUNTER REFERENCE VALUE
;
;
; ALSO USES TABLE ASTFS0
; ANIMATION SEQUENCE TABLE FOR SPRITE 0
;
;
; THE ROUTINE USES THE TWO BYTE POINTER SOTP TO
; KEEP TRACK OF THE POSITION OF THE CURRENTLY
; ACCESSED PATTERN NUMBER
; THE RESET REFERENCE VALUE FOR THIS POINTER IS HELD
; IN THE TWO BYTE LOCATION SOTREV
;
; THE TWO BYTE VARIABLE SPOLOC IS THE VRAM ADDRESS
; OF THE PATTERN BYTE FOR SPRITE 0
;
ALCREV: DW 2000
ALCFS0: DW 2000
ASTFS0: DB 0,1,2,3,255
SOTREV: DW ASTFS0
SOTP: DW ASTFS0
SPOLOC: DW £1C02
;
ANIMAT: CALL AS0 ;Call animate sprite routine
JR ANIMAT ;Jump back to ANIMAT and
;perform next stage of animation
;
AS0: LD HL,(ALCFS0) ;Decrement descending loop
DEC HL ;counter contained in ALCFS0
LD (ALCFS0),HL ;and test to see if it is 0
LD A,H ;If ALCFS0 < > 0 then return
OR L ;to calling routine else
RET NZ ;drop through to AS0A
;
AS0A: LD HL,(ALCREV) ;Reset descending loop counter
LD (ALCFS0),HL ;from reference value
;contained in location ALCREV
LD HL,(S0TP) ;Test to see if animation
;sequence is at end
LD A, (HL) ;If condition is not true
CP 255 ;then goto AS0B else drop
JR NZ, (HL) ;through to AS0A1
;
AS0A1: LD HL, (S0TREV) ;Reset animation sequence
;string pointer using ref
LD (S0TP), HL ;value in S0TREV
LD A, (HL) ;and get first stage in sequence
ASOB: INC HL ;Move animation sequence
;string pointer on one
LD (S0TP), HL ;ready to display next pattern
;in sequence
LD DE,(SP0LOC) ;Set write to VRAM pointer to