/* Update video memory and the pixel buffer */ VGA_Latch pixels; pixels.d=((Bit32u*)vga.mem.linear)[start]; pixels.d&=vga.config.full_not_map_mask; pixels.d|=(data & vga.config.full_map_mask); ((Bit32u*)vga.mem.linear)[start]=pixels.d; Bit8u * write_pixels=&vga.mem.linear[VGA_CACHE_OFFSET+(start<<3)]; Bit32u colors0_3, colors4_7; VGA_Latch temp;temp.d=(pixels.d>>4) & 0x0f0f0f0f; colors0_3 = Expand16Table[0][temp.b[0]] | Expand16Table[1][temp.b[1]] | Expand16Table[2][temp.b[2]] | Expand16Table[3][temp.b[3]]; //*(Bit32u *)write_pixels=colors0_3; host_writed((HostPt)write_pixels,colors0_3); temp.d=pixels.d & 0x0f0f0f0f; colors4_7 = Expand16Table[0][temp.b[0]] | Expand16Table[1][temp.b[1]] | Expand16Table[2][temp.b[2]] | Expand16Table[3][temp.b[3]]; //*(Bit32u *)(write_pixels+4)=colors4_7; host_writed((HostPt)(write_pixels+4),colors4_7); if (wrapping && GCC_UNLIKELY( start < 512)) { //*(Bit32u *)(write_pixels+512*1024)=colors0_3; //*(Bit32u *)(write_pixels+512*1024+4)=colors4_7; host_writed((HostPt)(write_pixels+512*1024),colors0_3); host_writed((HostPt)(write_pixels+512*1024+4),colors4_7); }