;hl=ix+head
pop de ;ix+tail
- ld a,(gameCar)
- and _dataMulti
- jr nz,safewormsizedone
-; or a
+ or a
sbc hl,de
ld a,l
rr h
rra
inc a
ld (ix+grow),a
-safewormsizedone:
+ ld de,10
+ call DecScore
ld h,(ix+head+1)
ld l,(ix+head)
ld (ix+tail+1),h
inc (ix+died)
dec (ix+lives)
- push af
- ld de,10
- call DecScore
- pop af
ret nz ;HandleWorm done
ld a,(gameCar)
and _datalivel
dec d
ret
-;------------------------------------------------------
-; CLEM's FIND_PIXEL
-; by Clem
-;
-; 131 cycles 28 bytes (b,c) to hl:a destroyes: none
-;------------------------------------------------------
-
-FindPixel:
- ld h,ScrBuffer/$800
- ld a,c
- add a,a
- add a,a
- ld l,a ;hl=$3f00+4*y
- ld a,b
- rra
- add hl,hl
- rra
- add hl,hl ;hl=$fc00+16*y
- add hl,hl
- rra ;a=x/8
- or l
- ld l,a
- ld a,b
- and 7
- cpl
- rlca
- rlca
- rlca
- ld (FP_Bit),a
- xor a
-FP_Bit =$+1
- set 0,a
- ret
-
-;FindPixel: ;bc to ahl + de gone
+FindPixel: ;bc to ahl + de gone
push de
push bc
ld a,b
ld d,offsets_table/256
ld h,0
ld l,c
- add hl,hl ;2y
- add hl,hl ;4y
- add hl,hl ;8y
- add hl,hl ;16y
- add hl,hl ;32y
+ add hl,hl
+ add hl,hl
+ add hl,hl
+ add hl,hl
+ add hl,hl
ld a,b
and %11111000
rra
Level =$+1
DispBuffer =$+2 ;912 bytes
-ScrBuffer = $8000 ;-$A1FF (32x256)
+ScrBuffer = $8200 ;-$A1FF (32x256)
SinCosTable = $A200 ;-$A300 (4x64)
;-----------------------------