X-Git-Url: http://git.mutantstargoat.com?p=bootboot;a=blobdiff_plain;f=bb.asm;fp=bb.asm;h=3f4bcd1debf141a33485c37ef5e29a87cbe43f50;hp=397bb3053154b28be9a62c0194cfb17ded1d8fac;hb=8f6f00a366b21dbbc84ca918bb9542f4221f8054;hpb=58f3c8759eb5a75795d83199d237f038f1d2cf4c diff --git a/bb.asm b/bb.asm index 397bb30..3f4bcd1 100644 --- a/bb.asm +++ b/bb.asm @@ -126,7 +126,22 @@ sector_2: cmp cx, 200 jnz .y_loop -; fix palette (256 colors) - +; setup grayscale palette (64 first colors because ramdac uses 6 bits / color so 2^6) +; ram dac (digital to analog converter) tis vga +; in a ^ register which index we want to write +; 3 writes in another ramdac register (data) +; ramdac feature: when you need to set a palette + mov al, 0 ; first index + mov dx, 3c8h ; ramdac index registe + out dx, al ; because io port (address) > 255 + inc dx ; ramdac data register: 3c9h +.pal_loop: + out dx, al ; r + out dx, al ; g + out dx, al ; b + inc al + test al, 3fh ; test with 3fh to keep the lowest 6 bits of al + jnz .pal_loop + .inf_loop: jmp .inf_loop