; Plots a pixel on mode13 surface data.
;
; Parameters:
; - Surface data pointer [ebp+8]
; - Pixel X position [ebp+12]
; - Pixel Y position [ebp+14]
; - Pixel color [ebp+16]
vid_set_pixel_mode13:
push ebp
mov ebp, esp
xor eax, eax
mov ax, [ebp+14] ; Set ax to y position
shl eax, 8 ; Shift eight bits to the left
xor ebx, ebx
mov bx, [ebp+14] ; Set bx to y position
shl ebx, 6 ; Shift six bits to the left
add eax, ebx ; eax = (y<<8)+(y<<6)
add eax, [ebp+12] ; eax = (y<<8)+(y<<6)+x
add eax, [ebp+8]
mov edi, eax ; Set data index
xor eax, eax
mov al, byte[ebp+16] ; Set value
stosb ; Store pixel
leave
ret