Product specifications
; NO OTHER REGISTER SET UP REQUIRED ON ENTRY
; NO REGISTERS AFFECTED ON EXIT
;
CENLTL: DW 0 ;Screen address of byte in SPRP5
CENLTR: DW 0 ;Screen address of byte in SPRP6
CENLBL: DW 0 ;Screen address of byte in SPRP8
CENLBR: DW 0 ;Screen address of byte in SPRP9
;
SPRP1: DB 0 ;Top left hand corner
SPRP2: DB 0 ;Top middle
SPRP3: DB 0 ;Top right hand corner
SPRP4: DB 0 ;Left middle
SPRP5: DB 0 ;Top left quadrant centre
SPRP6: DB 0 ‘Top right quadrant centre
SPRP7: DB 0 ;Right middle
SPRP8: DB 0 ;Bottom left quadrant centre
SPRP9: DB 0 ;Bottom right quadrant centre
SPRP10: DB 0 ;Bottom left hand corner
SPRP11: DB 0 ;Bottom middle
SPRP12: DB 0 ;Bottom right hand corner
;
DOT: CALL SETUHL ;Set up HL to contain sprite X/Y coords
;(See routine SETUHL)
;
DOT1: PUSH HL ;Save HL register pair
CALL DOTSUB ;Map X/& coords in HL register pair
;onto pattern background
;Screen address of point in DE register
;pair and character value underneath
;point in Acc on exit
POP HL ;Retrieve saved HL register pair
LD (SPRP1),A ;Store character value under top left
;hand corner of sprite in SPRP1
;
DOT2: LD A,H ;Increment X coord in register
ADD A,7 ;H by 7 to move onto top middle point
LD H,A ;of sprite
PUSH HL ;Save HL register pair
CALL DOTSUB ;(See description in section DOT1)
POP HL ;Retrieve saved HL register pair
LD (SPRP2),A ;Store character value under top middle
;point of sprite in SPRP2
;
DOT3: LD A,H ;Increment X coord in register
ADD A,8 ;H by 8 to move onto top right hand
LD H,A ;corner of sprite
PUSH HL ;Save HL register pair
CALL DOTSUB ;(See description in section DOT1)
POP HL ;Retrieve saved HL register pair
LD (SPRP3),A ;Store character value under top right
;hand corner of sprite in SPRP3