;;; $889E: Enemy projectile block collision reaction - vertical ;;;
{
;; Parameters:
;;     $14: Enemy projectile Y velocity (used only for sign)
;;     $18: Target Y position
;;     $1A: Number of blocks left to check (0 if final (rightmost) block)
;;     $1C: Enemy projectile X radius
;;     $1E: Enemy projectile Y radius
;;     $20: Enemy projectile X block span
;;     $22: Target boundary position (top/bottom depending on sign of enemy projectile velocity)
;; Returns:
;;     Carry: Set if collision, clear otherwise

$86:889E DA PHX
$86:889F 8E C4 0D STX $0DC4 [$7E:0DC4] ;\
$86:88A2 4E C4 0D LSR $0DC4 [$7E:0DC4] ;} Current block index = [X] / 2
$86:88A5 BF 02 00 7F LDA $7F0002,x[$7F:00EA];\
$86:88A9 29 00 F0 AND #$F000 ;|
$86:88AC EB XBA ;|
$86:88AD 4A LSR A ;|
$86:88AE 4A LSR A ;} Execute [$8866 + (block type) * 2]
$86:88AF 4A LSR A ;|
$86:88B0 AA TAX ;|
$86:88B1 FC 66 88 JSR ($8866,x)[$86:858A];/
$86:88B4 FA PLX
$86:88B5 60 RTS
}