亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cirrus_vga.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):
	break;    case (CIRRUS_MMIO_BLTFGCOLOR + 0):	cirrus_hook_read_gr(s, 0x01, &value);	break;    case (CIRRUS_MMIO_BLTFGCOLOR + 1):	cirrus_hook_read_gr(s, 0x11, &value);	break;    case (CIRRUS_MMIO_BLTFGCOLOR + 2):	cirrus_hook_read_gr(s, 0x13, &value);	break;    case (CIRRUS_MMIO_BLTFGCOLOR + 3):	cirrus_hook_read_gr(s, 0x15, &value);	break;    case (CIRRUS_MMIO_BLTWIDTH + 0):	cirrus_hook_read_gr(s, 0x20, &value);	break;    case (CIRRUS_MMIO_BLTWIDTH + 1):	cirrus_hook_read_gr(s, 0x21, &value);	break;    case (CIRRUS_MMIO_BLTHEIGHT + 0):	cirrus_hook_read_gr(s, 0x22, &value);	break;    case (CIRRUS_MMIO_BLTHEIGHT + 1):	cirrus_hook_read_gr(s, 0x23, &value);	break;    case (CIRRUS_MMIO_BLTDESTPITCH + 0):	cirrus_hook_read_gr(s, 0x24, &value);	break;    case (CIRRUS_MMIO_BLTDESTPITCH + 1):	cirrus_hook_read_gr(s, 0x25, &value);	break;    case (CIRRUS_MMIO_BLTSRCPITCH + 0):	cirrus_hook_read_gr(s, 0x26, &value);	break;    case (CIRRUS_MMIO_BLTSRCPITCH + 1):	cirrus_hook_read_gr(s, 0x27, &value);	break;    case (CIRRUS_MMIO_BLTDESTADDR + 0):	cirrus_hook_read_gr(s, 0x28, &value);	break;    case (CIRRUS_MMIO_BLTDESTADDR + 1):	cirrus_hook_read_gr(s, 0x29, &value);	break;    case (CIRRUS_MMIO_BLTDESTADDR + 2):	cirrus_hook_read_gr(s, 0x2a, &value);	break;    case (CIRRUS_MMIO_BLTSRCADDR + 0):	cirrus_hook_read_gr(s, 0x2c, &value);	break;    case (CIRRUS_MMIO_BLTSRCADDR + 1):	cirrus_hook_read_gr(s, 0x2d, &value);	break;    case (CIRRUS_MMIO_BLTSRCADDR + 2):	cirrus_hook_read_gr(s, 0x2e, &value);	break;    case CIRRUS_MMIO_BLTWRITEMASK:	cirrus_hook_read_gr(s, 0x2f, &value);	break;    case CIRRUS_MMIO_BLTMODE:	cirrus_hook_read_gr(s, 0x30, &value);	break;    case CIRRUS_MMIO_BLTROP:	cirrus_hook_read_gr(s, 0x32, &value);	break;    case CIRRUS_MMIO_BLTMODEEXT:	cirrus_hook_read_gr(s, 0x33, &value);	break;    case (CIRRUS_MMIO_BLTTRANSPARENTCOLOR + 0):	cirrus_hook_read_gr(s, 0x34, &value);	break;    case (CIRRUS_MMIO_BLTTRANSPARENTCOLOR + 1):	cirrus_hook_read_gr(s, 0x35, &value);	break;    case (CIRRUS_MMIO_BLTTRANSPARENTCOLORMASK + 0):	cirrus_hook_read_gr(s, 0x38, &value);	break;    case (CIRRUS_MMIO_BLTTRANSPARENTCOLORMASK + 1):	cirrus_hook_read_gr(s, 0x39, &value);	break;    case CIRRUS_MMIO_BLTSTATUS:	cirrus_hook_read_gr(s, 0x31, &value);	break;    default:#ifdef DEBUG_CIRRUS	printf("cirrus: mmio read - address 0x%04x\n", address);#endif	break;    }    return (uint8_t) value;}static void cirrus_mmio_blt_write(CirrusVGAState * s, unsigned address,				  uint8_t value){    switch (address) {    case (CIRRUS_MMIO_BLTBGCOLOR + 0):	cirrus_hook_write_gr(s, 0x00, value);	break;    case (CIRRUS_MMIO_BLTBGCOLOR + 1):	cirrus_hook_write_gr(s, 0x10, value);	break;    case (CIRRUS_MMIO_BLTBGCOLOR + 2):	cirrus_hook_write_gr(s, 0x12, value);	break;    case (CIRRUS_MMIO_BLTBGCOLOR + 3):	cirrus_hook_write_gr(s, 0x14, value);	break;    case (CIRRUS_MMIO_BLTFGCOLOR + 0):	cirrus_hook_write_gr(s, 0x01, value);	break;    case (CIRRUS_MMIO_BLTFGCOLOR + 1):	cirrus_hook_write_gr(s, 0x11, value);	break;    case (CIRRUS_MMIO_BLTFGCOLOR + 2):	cirrus_hook_write_gr(s, 0x13, value);	break;    case (CIRRUS_MMIO_BLTFGCOLOR + 3):	cirrus_hook_write_gr(s, 0x15, value);	break;    case (CIRRUS_MMIO_BLTWIDTH + 0):	cirrus_hook_write_gr(s, 0x20, value);	break;    case (CIRRUS_MMIO_BLTWIDTH + 1):	cirrus_hook_write_gr(s, 0x21, value);	break;    case (CIRRUS_MMIO_BLTHEIGHT + 0):	cirrus_hook_write_gr(s, 0x22, value);	break;    case (CIRRUS_MMIO_BLTHEIGHT + 1):	cirrus_hook_write_gr(s, 0x23, value);	break;    case (CIRRUS_MMIO_BLTDESTPITCH + 0):	cirrus_hook_write_gr(s, 0x24, value);	break;    case (CIRRUS_MMIO_BLTDESTPITCH + 1):	cirrus_hook_write_gr(s, 0x25, value);	break;    case (CIRRUS_MMIO_BLTSRCPITCH + 0):	cirrus_hook_write_gr(s, 0x26, value);	break;    case (CIRRUS_MMIO_BLTSRCPITCH + 1):	cirrus_hook_write_gr(s, 0x27, value);	break;    case (CIRRUS_MMIO_BLTDESTADDR + 0):	cirrus_hook_write_gr(s, 0x28, value);	break;    case (CIRRUS_MMIO_BLTDESTADDR + 1):	cirrus_hook_write_gr(s, 0x29, value);	break;    case (CIRRUS_MMIO_BLTDESTADDR + 2):	cirrus_hook_write_gr(s, 0x2a, value);	break;    case (CIRRUS_MMIO_BLTDESTADDR + 3):	/* ignored */	break;    case (CIRRUS_MMIO_BLTSRCADDR + 0):	cirrus_hook_write_gr(s, 0x2c, value);	break;    case (CIRRUS_MMIO_BLTSRCADDR + 1):	cirrus_hook_write_gr(s, 0x2d, value);	break;    case (CIRRUS_MMIO_BLTSRCADDR + 2):	cirrus_hook_write_gr(s, 0x2e, value);	break;    case CIRRUS_MMIO_BLTWRITEMASK:	cirrus_hook_write_gr(s, 0x2f, value);	break;    case CIRRUS_MMIO_BLTMODE:	cirrus_hook_write_gr(s, 0x30, value);	break;    case CIRRUS_MMIO_BLTROP:	cirrus_hook_write_gr(s, 0x32, value);	break;    case CIRRUS_MMIO_BLTMODEEXT:	cirrus_hook_write_gr(s, 0x33, value);	break;    case (CIRRUS_MMIO_BLTTRANSPARENTCOLOR + 0):	cirrus_hook_write_gr(s, 0x34, value);	break;    case (CIRRUS_MMIO_BLTTRANSPARENTCOLOR + 1):	cirrus_hook_write_gr(s, 0x35, value);	break;    case (CIRRUS_MMIO_BLTTRANSPARENTCOLORMASK + 0):	cirrus_hook_write_gr(s, 0x38, value);	break;    case (CIRRUS_MMIO_BLTTRANSPARENTCOLORMASK + 1):	cirrus_hook_write_gr(s, 0x39, value);	break;    case CIRRUS_MMIO_BLTSTATUS:	cirrus_hook_write_gr(s, 0x31, value);	break;    default:#ifdef DEBUG_CIRRUS	printf("cirrus: mmio write - addr 0x%04x val 0x%02x (ignored)\n",	       address, value);#endif	break;    }}/*************************************** * *  write mode 4/5 * * assume TARGET_PAGE_SIZE >= 16 * ***************************************/static void cirrus_mem_writeb_mode4and5_8bpp(CirrusVGAState * s,					     unsigned mode,					     unsigned offset,					     uint32_t mem_value){    int x;    unsigned val = mem_value;    uint8_t *dst;    dst = s->vram_ptr + offset;    for (x = 0; x < 8; x++) {	if (val & 0x80) {	    *dst = s->cirrus_shadow_gr1;	} else if (mode == 5) {	    *dst = s->cirrus_shadow_gr0;	}	val <<= 1;	dst++;    }    cpu_physical_memory_set_dirty(s->vram_offset + offset);    cpu_physical_memory_set_dirty(s->vram_offset + offset + 7);}static void cirrus_mem_writeb_mode4and5_16bpp(CirrusVGAState * s,					      unsigned mode,					      unsigned offset,					      uint32_t mem_value){    int x;    unsigned val = mem_value;    uint8_t *dst;    dst = s->vram_ptr + offset;    for (x = 0; x < 8; x++) {	if (val & 0x80) {	    *dst = s->cirrus_shadow_gr1;	    *(dst + 1) = s->gr[0x11];	} else if (mode == 5) {	    *dst = s->cirrus_shadow_gr0;	    *(dst + 1) = s->gr[0x10];	}	val <<= 1;	dst += 2;    }    cpu_physical_memory_set_dirty(s->vram_offset + offset);    cpu_physical_memory_set_dirty(s->vram_offset + offset + 15);}/*************************************** * *  memory access between 0xa0000-0xbffff * ***************************************/static uint32_t cirrus_vga_mem_readb(void *opaque, target_phys_addr_t addr){    CirrusVGAState *s = opaque;    unsigned bank_index;    unsigned bank_offset;    uint32_t val;    if ((s->sr[0x07] & 0x01) == 0) {	return vga_mem_readb(s, addr);    }    addr &= 0x1ffff;    if (addr < 0x10000) {	/* XXX handle bitblt */	/* video memory */	bank_index = addr >> 15;	bank_offset = addr & 0x7fff;	if (bank_offset < s->cirrus_bank_limit[bank_index]) {	    bank_offset += s->cirrus_bank_base[bank_index];	    if ((s->gr[0x0B] & 0x14) == 0x14) {		bank_offset <<= 4;	    } else if (s->gr[0x0B] & 0x02) {		bank_offset <<= 3;	    }	    bank_offset &= s->cirrus_addr_mask;	    val = *(s->vram_ptr + bank_offset);	} else	    val = 0xff;    } else if (addr >= 0x18000 && addr < 0x18100) {	/* memory-mapped I/O */	val = 0xff;	if ((s->sr[0x17] & 0x44) == 0x04) {	    val = cirrus_mmio_blt_read(s, addr & 0xff);	}    } else {	val = 0xff;#ifdef DEBUG_CIRRUS	printf("cirrus: mem_readb %06x\n", addr);#endif    }    return val;}static uint32_t cirrus_vga_mem_readw(void *opaque, target_phys_addr_t addr){    uint32_t v;#ifdef TARGET_WORDS_BIGENDIAN    v = cirrus_vga_mem_readb(opaque, addr) << 8;    v |= cirrus_vga_mem_readb(opaque, addr + 1);#else    v = cirrus_vga_mem_readb(opaque, addr);    v |= cirrus_vga_mem_readb(opaque, addr + 1) << 8;#endif    return v;}static uint32_t cirrus_vga_mem_readl(void *opaque, target_phys_addr_t addr){    uint32_t v;#ifdef TARGET_WORDS_BIGENDIAN    v = cirrus_vga_mem_readb(opaque, addr) << 24;    v |= cirrus_vga_mem_readb(opaque, addr + 1) << 16;    v |= cirrus_vga_mem_readb(opaque, addr + 2) << 8;    v |= cirrus_vga_mem_readb(opaque, addr + 3);#else    v = cirrus_vga_mem_readb(opaque, addr);    v |= cirrus_vga_mem_readb(opaque, addr + 1) << 8;    v |= cirrus_vga_mem_readb(opaque, addr + 2) << 16;    v |= cirrus_vga_mem_readb(opaque, addr + 3) << 24;#endif    return v;}static void cirrus_vga_mem_writeb(void *opaque, target_phys_addr_t addr,                                  uint32_t mem_value){    CirrusVGAState *s = opaque;    unsigned bank_index;    unsigned bank_offset;    unsigned mode;    if ((s->sr[0x07] & 0x01) == 0) {	vga_mem_writeb(s, addr, mem_value);        return;    }    addr &= 0x1ffff;    if (addr < 0x10000) {	if (s->cirrus_srcptr != s->cirrus_srcptr_end) {	    /* bitblt */	    *s->cirrus_srcptr++ = (uint8_t) mem_value;	    if (s->cirrus_srcptr >= s->cirrus_srcptr_end) {		cirrus_bitblt_cputovideo_next(s);	    }	} else {	    /* video memory */	    bank_index = addr >> 15;	    bank_offset = addr & 0x7fff;	    if (bank_offset < s->cirrus_bank_limit[bank_index]) {		bank_offset += s->cirrus_bank_base[bank_index];		if ((s->gr[0x0B] & 0x14) == 0x14) {		    bank_offset <<= 4;		} else if (s->gr[0x0B] & 0x02) {		    bank_offset <<= 3;		}		bank_offset &= s->cirrus_addr_mask;		mode = s->gr[0x05] & 0x7;		if (mode < 4 || mode > 5 || ((s->gr[0x0B] & 0x4) == 0)) {		    *(s->vram_ptr + bank_offset) = mem_value;		    cpu_physical_memory_set_dirty(s->vram_offset +						  bank_offset);		} else {		    if ((s->gr[0x0B] & 0x14) != 0x14) {			cirrus_mem_writeb_mode4and5_8bpp(s, mode,							 bank_offset,							 mem_value);		    } else {			cirrus_mem_writeb_mode4and5_16bpp(s, mode,							  bank_offset,							  mem_value);		    }		}	    }	}    } else if (addr >= 0x18000 && addr < 0x18100) {	/* memory-mapped I/O */	if ((s->sr[0x17] & 0x44) == 0x04) {	    cirrus_mmio_blt_write(s, addr & 0xff, mem_value);	}    } else {#ifdef DEBUG_CIRRUS	printf("cirrus: mem_writeb %06x value %02x\n", addr, mem_value);#endif    }}static void cirrus_vga_mem_writew(void *opaque, target_phys_addr_t addr, uint32_t val){#ifdef TARGET_WORDS_BIGENDIAN    cirrus_vga_mem_writeb(opaque, addr, (val >> 8) & 0xff);    cirrus_vga_mem_writeb(opaque, addr + 1, val & 0xff);#else    cirrus_vga_mem_writeb(opaque, addr, val & 0xff);    cirrus_vga_mem_writeb(opaque, addr + 1, (val >> 8) & 0xff);#endif}static void cirrus_vga_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val){#ifdef TARGET_WORDS_BIGENDIAN    cirrus_vga_mem_writeb(opaque, addr, (val >> 24) & 0xff);    cirrus_vga_mem_writeb(opaque, addr + 1, (val >> 16) & 0xff);    cirrus_vga_mem_writeb(opaque, addr + 2, (val >> 8) & 0xff);    cirrus_vga_mem_writeb(opaque, addr + 3, val & 0xff);#else    cirrus_vga_mem_writeb(opaque, addr, val & 0xff);    cirrus_vga_mem_writeb(opaque, addr + 1, (val >> 8) & 0xf

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美亚洲| 欧美精品一区二区久久婷婷 | 国产精品视频一二三| 成人av在线资源网站| 亚洲精品乱码久久久久久黑人 | 国产一区二区网址| 中文字幕欧美国产| 精品视频在线免费观看| 日韩av电影天堂| 国产精品夫妻自拍| 这里只有精品免费| 成人免费视频免费观看| 日韩国产在线观看一区| 国产视频一区二区三区在线观看| 久久激情五月激情| 国产精品久久久久影院色老大 | 欧美日韩三级在线| 国产精品69毛片高清亚洲| 亚洲综合在线视频| 2021中文字幕一区亚洲| 欧洲精品在线观看| 丁香六月综合激情| 日本欧美韩国一区三区| 亚洲三级免费电影| 久久夜色精品国产欧美乱极品| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美午夜电影网| 蜜桃视频一区二区| 成人手机在线视频| 精一区二区三区| 香蕉成人伊视频在线观看| 国产精品美女久久久久aⅴ国产馆| 欧美日韩成人综合在线一区二区| 国产美女一区二区| 日韩av电影免费观看高清完整版在线观看| 亚洲视频免费在线| 欧美激情一区二区三区全黄| 日韩欧美一区二区久久婷婷| 精品1区2区3区| 99久久精品免费| 国产精品一区二区在线观看不卡 | 成人av免费在线观看| 极品尤物av久久免费看| 日韩高清国产一区在线| 亚洲国产视频一区二区| 亚洲男人都懂的| 日本一区二区成人在线| 国产亚洲综合色| 2023国产精华国产精品| 欧美r级在线观看| 日韩精品专区在线影院观看| 欧美日韩精品三区| 欧美精品第1页| 欧美日韩色综合| 欧美日韩国产不卡| 91捆绑美女网站| 国产成人综合自拍| 久久爱www久久做| 老色鬼精品视频在线观看播放| 亚洲一级不卡视频| 亚洲丶国产丶欧美一区二区三区| 亚洲毛片av在线| 亚洲欧洲精品成人久久奇米网| 久久精品男人的天堂| 久久亚洲捆绑美女| 精品福利一二区| 久久久久成人黄色影片| 久久精品综合网| 国产日产精品一区| 久久精品男人天堂av| 中文一区二区在线观看| 亚洲欧洲一区二区三区| 日本一区免费视频| 亚洲欧美综合色| 亚洲欧美一区二区三区孕妇| 亚洲男人的天堂一区二区| 亚洲精品国产品国语在线app| 亚洲美女视频在线观看| 亚洲电影一区二区| 免费成人美女在线观看| 国产美女在线观看一区| 紧缚奴在线一区二区三区| 久久99在线观看| 国产91丝袜在线播放0| 色综合视频一区二区三区高清| 色婷婷av一区二区三区软件| 亚洲永久免费av| 天天做天天摸天天爽国产一区| 五月天亚洲精品| 国产一区二区主播在线| 99久久99久久精品免费看蜜桃 | 成人精品国产一区二区4080| 99久久综合狠狠综合久久| 91福利精品第一导航| 91精品国产一区二区三区蜜臀| 日韩精品一区在线| 国产精品免费免费| 亚洲一区中文日韩| 狠狠久久亚洲欧美| 91色视频在线| 日韩欧美视频在线| 国产精品国产馆在线真实露脸| 一区二区三区日韩精品视频| 亚洲国产精品久久久久婷婷884 | 成人在线视频首页| 精品视频一区三区九区| 久久蜜桃av一区精品变态类天堂| 亚洲欧洲三级电影| 亚洲影院免费观看| 国产一区二区女| 91久久免费观看| 制服丝袜亚洲色图| 国产精品―色哟哟| 免费观看成人av| 色94色欧美sute亚洲线路一ni| 日韩午夜在线影院| 一区二区三区在线视频观看| 石原莉奈在线亚洲三区| 成人av一区二区三区| 日韩三级在线观看| 欧美精品久久天天躁| 国产精品国产三级国产普通话蜜臀| 亚洲欧洲精品天堂一级| 成人avav在线| 久久在线免费观看| 久久狠狠亚洲综合| 在线播放91灌醉迷j高跟美女| 中文字幕在线免费不卡| 成人中文字幕电影| 久久久一区二区三区捆绑**| 一区二区三区免费网站| 99精品视频在线观看| 久久精品免视看| 国产宾馆实践打屁股91| 欧美精品一区二区三区在线 | 亚洲国产cao| 欧美三级中文字| 亚洲免费电影在线| 风间由美性色一区二区三区| 欧美大片拔萝卜| 日韩av一区二| 91麻豆精品国产91久久久| 亚洲一区二区欧美日韩| 国产成人一区在线| 日韩视频不卡中文| 日韩av成人高清| 日韩一区二区免费在线电影| 亚洲18色成人| 欧美日韩久久一区| 五月天亚洲婷婷| 欧美精品第1页| 日本欧美大码aⅴ在线播放| 欧美日韩精品一区二区三区蜜桃 | 洋洋av久久久久久久一区| 国产精品1区二区.| 久久免费看少妇高潮| 美女精品一区二区| 日韩欧美一区在线| 国产综合色精品一区二区三区| 91精品蜜臀在线一区尤物| 天堂va蜜桃一区二区三区漫画版| 欧洲精品中文字幕| 调教+趴+乳夹+国产+精品| 欧美精品高清视频| 久久不见久久见中文字幕免费| 日韩精品中文字幕一区二区三区| 日韩激情视频在线观看| 欧美韩国日本综合| 在线观看亚洲专区| 精品无码三级在线观看视频| ...av二区三区久久精品| 欧美日韩国产色站一区二区三区| 国内精品嫩模私拍在线| 亚洲色图.com| 欧美电视剧免费全集观看| 成人av资源在线观看| 日韩精品一级中文字幕精品视频免费观看 | 亚洲国产另类av| 久久久蜜桃精品| 91视频国产观看| 久久电影网电视剧免费观看| 中文字幕在线观看不卡视频| 欧美日韩国产不卡| 成人国产视频在线观看| 视频在线观看一区| 国产精品毛片无遮挡高清| 欧美高清一级片在线| 成人动漫一区二区在线| 麻豆国产91在线播放| 日韩理论片中文av| 日韩欧美电影一二三| 欧美综合天天夜夜久久| 国产高清在线观看免费不卡| 亚洲6080在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 亚洲一区二区五区| 欧美激情在线一区二区三区| 日韩激情av在线| 夜夜精品浪潮av一区二区三区| 久久精品一区二区三区四区|