Public feed #725753

Something

public text v1 · immutable
Raw Edit
·published 2007-10-04 17:52 UTC
rendered paste body
class VGA_UnchainedEGA_Handler : public VGA_UnchainedRead_Handler {
public:
        template< bool wrapping>
        void writeHandler(PhysPt start, Bit8u val) {
                Bit32u data=ModeOperation(val);
                /* Update video memory and the pixel buffer */
                VGA_Latch pixels;
//              pixels.d=((Bit32u*)vga.mem.linear)[start];
pixels.d=host_readd((HostPt)(&((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;
host_writed((HostPt)(&((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);
                }
        }