everyone! I’m sharpening my assembly low-level skills and made myself a simple bootloader. I now made some routines and the entrypoint and successfully output a message however, I want to clear the screen so in outputting my message, it comes out clean. I’ve tried making a routine which clears the AX register, stores the content of address 0xb800 to BX then copying or MOVing the contents of the AX register.
like this:
vram equ 0xb800
xor ax, ax
mov bx, [vram]
mov bx, ax
int 10h
it successfully clears the screen but I have a problem, as shown on the picture, it stretches the text.

Then I searched for some answers. I didn’t found some answers because search results just gives me DOS interrupts to clear the screen.
But, I did try using INT 10, AH=07h but I don’t how to use it.
please lend me a hand thank you! 😀
>Solution :
The text gets ‘stretched’ because you setup for a 40-columns screen! You’ve written:
xor ax, ax <<<< This is video mode 0, so 40x25 16-color text int 10h
Use
mov 0003h
int 10h
to setup the 80×25 16-color text screen.