X-Git-Url: https://eleni.mutantstargoat.com/git/?p=bootboot;a=blobdiff_plain;f=bb.asm;fp=bb.asm;h=a3f6011d3c0278dd8ebcb6b8f33315e33a140583;hp=d9d1fe61dec99dfbc3cabc76949ab51c8ab86ae8;hb=cea09d56763a162983df97d8494340398bcdcf30;hpb=eedb54d946e0bac346e0b737ccbd7f224f0cd9a4 diff --git a/bb.asm b/bb.asm index d9d1fe6..a3f6011 100644 --- a/bb.asm +++ b/bb.asm @@ -135,14 +135,23 @@ sector_2: ; disable all interrupts (for bios to not read the keyboard) cli -main_loop: - mov ax, 0a000h + ; ds on 0 because rand uses it for accesses to mem + xor ax, ax mov ds, ax + mov ax, 0a000h + mov es, ax +main_loop: +; wait for vblank + mov dx, 3dah + in al, dx + and al, 8 ; the 4th bit is 1 when we are in the vertical blanking period + jz main_loop + xor bx, bx ; mov bx, 0 to clear the register .static_loop: call rand and ax, 3fh ; last six bits of eax (see rand) - mov [bx], al + mov [es:bx], al ; [] -> bx offset and default segment ds we change it to es inc bx cmp bx, 64000 ; num pixels jnz .static_loop