-; Lowest yet: 277
+; Lowest yet: 270
bits 16
%ifdef BOOTSECT
add ax, 1000h
mov es, ax
- ; setup palette for the effect
- ; - bg color (0)
- ; - shadow color (1)
- ; - fractal color (2)
-
-
mainloop:
call animate
dw 1, 1
dw -1, 1
dw -1, -1
+bounds dw 200 - SHADOW_OFFS
+ dw 320 - SHADOW_OFFS
+
animate:
mov cx, 3
mov di, sierp_verts
mov si, sierp_vel
.loop:
+ mov ebx, 2
+.xyloop:
mov ax, [di] ; grab vertex X
add ax, [si] ; add velocity X
jl .xout
- cmp ax, 320-SHADOW_OFFS
+ cmp ax, [ebx * 2 + bounds - 2]
jge .xout
jmp .skip_xflip
.xout:
; to do the same for Y increment edi and esi by 2
add di, 2
add si, 2
- mov ax, [di] ; grab vertex Y
- add ax, [si] ; add velocity Y
- jl .yout
- cmp ax, 200-SHADOW_OFFS
- jge .yout
- jmp .skip_yflip
-.yout:
- sub ax, [si] ; revert to previous Y
- neg word [si] ; negate velocity Y
-.skip_yflip:
- mov [di], ax ; update vertex Y
+ dec bx
+ jnz .xyloop
- add di, 2
- add si, 2
dec cx
jnz .loop
ret