I'm reconstructing my Assembly OS(the first one that I've tried to do), but now using VESA modes. I'm doing all correct to use it, moving the value 4F02h to AX, then setting the new mode by moving the value 103h to BX and then calling the 10h interrupt to make the things happen, like this:
Code: Select all
[BITS 16] ; 16 bit code generation
[ORG 0x7C00] ; ORGin location is 7C00
mov ax, 4F02h
mov bx, 103h
int 10h
mov si, welcome
call print_string
welcome db 'Welcome to My OS!', 0Dh, 0Ah, 0
print_string:
lodsb ; grab a byte from SI
or al, al ; logical or AL by itself
jz .done ; if the result is zero, get out
mov ah, 0Eh
int 10h ; otherwise, print out the character
jmp print_string
.done:
ret
times 510-($-$$) db 0
dw 0xAA55
Then my questions are:
- What is the problem?
- What I need to do to solve it?
Nathan Paulino Campos