I have a Cirrus Logic gd5430 video card, and this is the bank switch code
i have used in the file vesa12.inc
set_bank:
cmp al,[0fff2h]
je retsb
cli
mov [offf2h],al
push ax
push dx
shl ax,12 ;ah=al*16 granularity=4k
mov dx,974
mov al,9
out dx,ax
pop dx
pop ax
retsb:
ret
all is displayed correctly with the exception of rectangles of only one color
that look like this:
___________________________............................................................
_____________........................................................________________
................................................_________________________________
_____________________________________________________________
____________________________________________________________
____________________________........................................................_________________.............................................................__________ .................................................________________________________ _____________________________________________________________
_=black, not drawed
.=color
coul somebody helpme to find where is the problem.
the video mode i´m testing is 640*480 24bpp and 2048 bytes per scan line, bank size is 64kb whith granularity of 4kb
|