Compare commits

...

2 commits

3 changed files with 19 additions and 23 deletions

View file

@ -8,17 +8,23 @@ putpixel:
push ecx
push edi
cld
; check pixel is in screen
mov ebx, [ebp+12] ;y
cmp ebx, [mbootinfo.fb_height]
jge .done
mov ecx, [ebp+8] ;x
cmp ecx, [mbootinfo.fb_width]
jge .done
; Destination
mov edi, [mbootinfo.fb_addr]
mov eax, [mbootinfo.fb_pitch]
mul dword [ebp+12] ;y
mul dword ebx ;y
add edi, eax
mov eax, [ebp+8] ;x
movzx ebx, byte [mbootinfo.fb_bytespp]
mul ebx
mov eax, ecx ;x
movzx ecx, byte [mbootinfo.fb_bytespp]
mul ecx
add edi, eax
@ -26,13 +32,8 @@ putpixel:
mov eax, [ebp + 16]
; Poke videomemory
stosb
stosb
stosb
cmp [mbootinfo.fb_bpp], 24
je .done
stosb
cld
rep stosb
.done:
pop edi
pop ecx

View file

@ -45,12 +45,6 @@ mbootgetinfo:
add esi, 4
mov al, [esi]
cmp al, 32
je .bppokay
cmp al, 24
je .bppokay
jmp mbootunsupportedfbbpp
.bppokay:
mov [mbootinfo.fb_bpp], al
inc esi

View file

@ -11,8 +11,9 @@ MB_HEADER_FLAGS equ MB_PAGE_ALIGN or MB_MEMORY_INFO or MB_VIDEO_REQUEST
MB_HEADER_FLAGS equ MB_PAGE_ALIGN or MB_MEMORY_INFO or MB_VIDEO_REQUEST or MB_AOUT_KLUDGE
MB_CHECKSUM equ -(MB_HEADER_MAGIC + MB_HEADER_FLAGS)
VWIDTH equ 1024
VHEIGHT equ 768
VWIDTH equ 640
VHEIGHT equ 480
VDEPTH equ 24
multiboot:
dd MB_HEADER_MAGIC
@ -26,7 +27,7 @@ multiboot:
dd 0 ; video mode_type (0:fb, 1:txt) (set flags[2]!)
dd VWIDTH ; video width
dd VHEIGHT ; video height
dd 24 ; video depth
dd VDEPTH ; video depth
start:
; Setup stack
@ -103,8 +104,8 @@ start:
mov ebx, 767
mov ecx, 1023
push 0xff
push 767
push 1023
push 479
push 639
call putpixel
add esp, 3*4