+ ; --- animate start ---
+ mov cx, 3
+ mov di, sierp_verts
+ mov si, sierp_vel
+.loop:
+ mov bx, 4
+.xyloop:
+ mov ax, [di] ; grab vertex X
+ add ax, [si] ; add velocity X
+ jl .xout
+ cmp ax, [bx + bounds - 2]
+ jge .xout
+ jmp .skip_xflip
+.xout:
+ sub ax, [si] ; revert to previous X
+ neg word [si] ; negate velocity X
+.skip_xflip:
+ mov [di], ax ; update vertex X
+
+ ; to do the same for Y increment edi and esi by 2
+ add di, 2
+ add si, 2
+ sub bx, 2
+ jnz .xyloop
+
+ dec cx
+ jnz .loop
+ ; --- animate end ---
+