X-Git-Url: https://eleni.mutantstargoat.com/git/?p=bootboot;a=blobdiff_plain;f=bb.asm;fp=bb.asm;h=397bb3053154b28be9a62c0194cfb17ded1d8fac;hp=fee43e4a37922f50ac73891a975e64c84d611610;hb=1f613730ec728a23dd0471d9ab0f60931ea9e19f;hpb=32ae013dd1e0f660e80aea5928dba4064f5843e3 diff --git a/bb.asm b/bb.asm index fee43e4..397bb30 100644 --- a/bb.asm +++ b/bb.asm @@ -96,7 +96,7 @@ clearscreen: ret saved_drive_num: - db 0 ; declare byte 0 + db 0 ; define byte 0 ; assembler trick: write as many 0 needed to fill 510 bytes ; $ <- means here @@ -104,7 +104,29 @@ saved_drive_num: dw 0aa55h sector_2: - mov ax, 5 - call clearscreen +; disp palette + mov ax, 0a000h ; video segment points to video memory + mov ds, ax + mov bx, 0 ; video offset + mov cx, 0 ; y +.y_loop: + mov dx, 0 ; x +.x_loop: + mov ax, dx + test ax, 0ff00h ; lower 8 bits 0, highest 1, Z flag is set while < 256, test = and but doesnt change ax + jz .skip_clear_ax + mov al, 0 +.skip_clear_ax: + mov [bx], al ; pixel written on screen + inc bx ; increment + inc dx + cmp dx, 320 + jnz .x_loop + inc cx + cmp cx, 200 + jnz .y_loop + +; fix palette (256 colors) + .inf_loop: jmp .inf_loop