First you are trying to draw to screen like its one big buff like mode 13h, you can not do this as vesa1 uses banks, which means the screen is div into 64k chucks.
If you take my example screen size and times it = 307200 thata a bit more than 64k
So you write 64k to 0a000h than you switch to the next bank, that what this does:
Code: Select all
window:
mov ax,4f05h
mov bx,0
int 10h
xor bx,bx
ret
Note whats in DX on call this function, is the bank we want, starting with bank 0 ( in the above case we need 5 banks to fill screen ).
Once we swich bank we write another 64k to 0a000h and so on.
Something like this:
As your in realmode you limted to 64k, so this mode uses 1 boxs 64k in size, you need to swich boxs eg:
********box0****
64k
********box1****
64k
********box2****
64k
********box3****
64k
********box4****
64k
****************