From 5d0f7f94295e7a09e23dbf5b69ca965af0da3e8e Mon Sep 17 00:00:00 2001 From: Eleni Maria Stea Date: Tue, 5 Jan 2021 21:42:26 +0200 Subject: [PATCH] fixed the speed in vertical motion of lovebug --- bb.asm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/bb.asm b/bb.asm index c28880e..743dc9f 100644 --- a/bb.asm +++ b/bb.asm @@ -177,6 +177,9 @@ main_loop: ; draw lovebug mov di, (200 - 32) * 320 + 160 - 16 mov ax, [num_frames] + shr ax, 2 ; /4 + cmp ax, 200 - 32 + jz .end mov bx, ax shl ax, 8 shl bx, 6 @@ -190,11 +193,15 @@ main_loop: call blit32 ; wait for vblank -.vsync: +.vsync_blank: mov dx, 3dah in al, dx + and al, 8 + jnz .vsync_blank +.vsync_visible: + in al, dx and al, 8 ; the 4th bit is 1 when we are in the vertical blanking period - jnz .vsync + jz .vsync_visible ; copy backbuffer to video memory push es @@ -211,8 +218,9 @@ main_loop: pop es inc word [num_frames] - cmp word [num_frames], 200 - 32 - jz .end +; moved above: +; cmp word [num_frames], 200 - 32 +; jz .end in al, 64h ; 60h = keyb data port, 64h = keyb status port and al, 1 ; 1 = OUTBUF_FULL = the keyb controller out buf is full -- 1.7.10.4