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

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

?? cirrus_vga.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
    default:#ifdef DEBUG_CIRRUS	printf("cirrus: inport sr_index %02x\n", reg_index);#endif	*reg_value = 0xff;	break;    }    return CIRRUS_HOOK_HANDLED;}static intcirrus_hook_write_sr(CirrusVGAState * s, unsigned reg_index, int reg_value){    switch (reg_index) {    case 0x00:			// Standard VGA    case 0x01:			// Standard VGA    case 0x02:			// Standard VGA    case 0x03:			// Standard VGA    case 0x04:			// Standard VGA	return CIRRUS_HOOK_NOT_HANDLED;    case 0x06:			// Unlock Cirrus extensions	reg_value &= 0x17;	if (reg_value == 0x12) {	    s->sr[reg_index] = 0x12;	} else {	    s->sr[reg_index] = 0x0f;	}	break;    case 0x10:    case 0x30:    case 0x50:    case 0x70:			// Graphics Cursor X    case 0x90:    case 0xb0:    case 0xd0:    case 0xf0:			// Graphics Cursor X	s->sr[0x10] = reg_value;	s->hw_cursor_x = (reg_value << 3) | (reg_index >> 5);	break;    case 0x11:    case 0x31:    case 0x51:    case 0x71:			// Graphics Cursor Y    case 0x91:    case 0xb1:    case 0xd1:    case 0xf1:			// Graphics Cursor Y	s->sr[0x11] = reg_value;	s->hw_cursor_y = (reg_value << 3) | (reg_index >> 5);	break;    case 0x07:			// Extended Sequencer Mode    case 0x08:			// EEPROM Control    case 0x09:			// Scratch Register 0    case 0x0a:			// Scratch Register 1    case 0x0b:			// VCLK 0    case 0x0c:			// VCLK 1    case 0x0d:			// VCLK 2    case 0x0e:			// VCLK 3    case 0x0f:			// DRAM Control    case 0x12:			// Graphics Cursor Attribute    case 0x13:			// Graphics Cursor Pattern Address    case 0x14:			// Scratch Register 2    case 0x15:			// Scratch Register 3    case 0x16:			// Performance Tuning Register    case 0x18:			// Signature Generator Control    case 0x19:			// Signature Generator Result    case 0x1a:			// Signature Generator Result    case 0x1b:			// VCLK 0 Denominator & Post    case 0x1c:			// VCLK 1 Denominator & Post    case 0x1d:			// VCLK 2 Denominator & Post    case 0x1e:			// VCLK 3 Denominator & Post    case 0x1f:			// BIOS Write Enable and MCLK select	s->sr[reg_index] = reg_value;#ifdef DEBUG_CIRRUS	printf("cirrus: handled outport sr_index %02x, sr_value %02x\n",	       reg_index, reg_value);#endif	break;    case 0x17:			// Configuration Readback and Extended Control	s->sr[reg_index] = (s->sr[reg_index] & 0x38) | (reg_value & 0xc7);        cirrus_update_memory_access(s);        break;    default:#ifdef DEBUG_CIRRUS	printf("cirrus: outport sr_index %02x, sr_value %02x\n", reg_index,	       reg_value);#endif	break;    }    return CIRRUS_HOOK_HANDLED;}/*************************************** * *  I/O access at 0x3c6 * ***************************************/static void cirrus_read_hidden_dac(CirrusVGAState * s, int *reg_value){    *reg_value = 0xff;    if (++s->cirrus_hidden_dac_lockindex == 5) {        *reg_value = s->cirrus_hidden_dac_data;	s->cirrus_hidden_dac_lockindex = 0;    }}static void cirrus_write_hidden_dac(CirrusVGAState * s, int reg_value){    if (s->cirrus_hidden_dac_lockindex == 4) {	s->cirrus_hidden_dac_data = reg_value;#if defined(DEBUG_CIRRUS)	printf("cirrus: outport hidden DAC, value %02x\n", reg_value);#endif    }    s->cirrus_hidden_dac_lockindex = 0;}/*************************************** * *  I/O access at 0x3c9 * ***************************************/static int cirrus_hook_read_palette(CirrusVGAState * s, int *reg_value){    if (!(s->sr[0x12] & CIRRUS_CURSOR_HIDDENPEL))	return CIRRUS_HOOK_NOT_HANDLED;    *reg_value =        s->cirrus_hidden_palette[(s->dac_read_index & 0x0f) * 3 +                                 s->dac_sub_index];    if (++s->dac_sub_index == 3) {	s->dac_sub_index = 0;	s->dac_read_index++;    }    return CIRRUS_HOOK_HANDLED;}static int cirrus_hook_write_palette(CirrusVGAState * s, int reg_value){    if (!(s->sr[0x12] & CIRRUS_CURSOR_HIDDENPEL))	return CIRRUS_HOOK_NOT_HANDLED;    s->dac_cache[s->dac_sub_index] = reg_value;    if (++s->dac_sub_index == 3) {        memcpy(&s->cirrus_hidden_palette[(s->dac_write_index & 0x0f) * 3],               s->dac_cache, 3);        /* XXX update cursor */	s->dac_sub_index = 0;	s->dac_write_index++;    }    return CIRRUS_HOOK_HANDLED;}/*************************************** * *  I/O access between 0x3ce-0x3cf * ***************************************/static intcirrus_hook_read_gr(CirrusVGAState * s, unsigned reg_index, int *reg_value){    switch (reg_index) {    case 0x00: // Standard VGA, BGCOLOR 0x000000ff      *reg_value = s->cirrus_shadow_gr0;      return CIRRUS_HOOK_HANDLED;    case 0x01: // Standard VGA, FGCOLOR 0x000000ff      *reg_value = s->cirrus_shadow_gr1;      return CIRRUS_HOOK_HANDLED;    case 0x02:			// Standard VGA    case 0x03:			// Standard VGA    case 0x04:			// Standard VGA    case 0x06:			// Standard VGA    case 0x07:			// Standard VGA    case 0x08:			// Standard VGA	return CIRRUS_HOOK_NOT_HANDLED;    case 0x05:			// Standard VGA, Cirrus extended mode    default:	break;    }    if (reg_index < 0x3a) {	*reg_value = s->gr[reg_index];    } else {#ifdef DEBUG_CIRRUS	printf("cirrus: inport gr_index %02x\n", reg_index);#endif	*reg_value = 0xff;    }    return CIRRUS_HOOK_HANDLED;}static intcirrus_hook_write_gr(CirrusVGAState * s, unsigned reg_index, int reg_value){#if defined(DEBUG_BITBLT) && 0    printf("gr%02x: %02x\n", reg_index, reg_value);#endif    switch (reg_index) {    case 0x00:			// Standard VGA, BGCOLOR 0x000000ff	s->cirrus_shadow_gr0 = reg_value;	return CIRRUS_HOOK_NOT_HANDLED;    case 0x01:			// Standard VGA, FGCOLOR 0x000000ff	s->cirrus_shadow_gr1 = reg_value;	return CIRRUS_HOOK_NOT_HANDLED;    case 0x02:			// Standard VGA    case 0x03:			// Standard VGA    case 0x04:			// Standard VGA    case 0x06:			// Standard VGA    case 0x07:			// Standard VGA    case 0x08:			// Standard VGA	return CIRRUS_HOOK_NOT_HANDLED;    case 0x05:			// Standard VGA, Cirrus extended mode	s->gr[reg_index] = reg_value & 0x7f;        cirrus_update_memory_access(s);	break;    case 0x09:			// bank offset #0    case 0x0A:			// bank offset #1	s->gr[reg_index] = reg_value;	cirrus_update_bank_ptr(s, 0);	cirrus_update_bank_ptr(s, 1);        break;    case 0x0B:	s->gr[reg_index] = reg_value;	cirrus_update_bank_ptr(s, 0);	cirrus_update_bank_ptr(s, 1);        cirrus_update_memory_access(s);	break;    case 0x10:			// BGCOLOR 0x0000ff00    case 0x11:			// FGCOLOR 0x0000ff00    case 0x12:			// BGCOLOR 0x00ff0000    case 0x13:			// FGCOLOR 0x00ff0000    case 0x14:			// BGCOLOR 0xff000000    case 0x15:			// FGCOLOR 0xff000000    case 0x20:			// BLT WIDTH 0x0000ff    case 0x22:			// BLT HEIGHT 0x0000ff    case 0x24:			// BLT DEST PITCH 0x0000ff    case 0x26:			// BLT SRC PITCH 0x0000ff    case 0x28:			// BLT DEST ADDR 0x0000ff    case 0x29:			// BLT DEST ADDR 0x00ff00    case 0x2c:			// BLT SRC ADDR 0x0000ff    case 0x2d:			// BLT SRC ADDR 0x00ff00    case 0x2f:                  // BLT WRITEMASK    case 0x30:			// BLT MODE    case 0x32:			// RASTER OP    case 0x33:			// BLT MODEEXT    case 0x34:			// BLT TRANSPARENT COLOR 0x00ff    case 0x35:			// BLT TRANSPARENT COLOR 0xff00    case 0x38:			// BLT TRANSPARENT COLOR MASK 0x00ff    case 0x39:			// BLT TRANSPARENT COLOR MASK 0xff00	s->gr[reg_index] = reg_value;	break;    case 0x21:			// BLT WIDTH 0x001f00    case 0x23:			// BLT HEIGHT 0x001f00    case 0x25:			// BLT DEST PITCH 0x001f00    case 0x27:			// BLT SRC PITCH 0x001f00	s->gr[reg_index] = reg_value & 0x1f;	break;    case 0x2a:			// BLT DEST ADDR 0x3f0000	s->gr[reg_index] = reg_value & 0x3f;        /* if auto start mode, starts bit blt now */        if (s->gr[0x31] & CIRRUS_BLT_AUTOSTART) {            cirrus_bitblt_start(s);        }	break;    case 0x2e:			// BLT SRC ADDR 0x3f0000	s->gr[reg_index] = reg_value & 0x3f;	break;    case 0x31:			// BLT STATUS/START	cirrus_write_bitblt(s, reg_value);	break;    default:#ifdef DEBUG_CIRRUS	printf("cirrus: outport gr_index %02x, gr_value %02x\n", reg_index,	       reg_value);#endif	break;    }    return CIRRUS_HOOK_HANDLED;}/*************************************** * *  I/O access between 0x3d4-0x3d5 * ***************************************/static intcirrus_hook_read_cr(CirrusVGAState * s, unsigned reg_index, int *reg_value){    switch (reg_index) {    case 0x00:			// Standard VGA    case 0x01:			// Standard VGA    case 0x02:			// Standard VGA    case 0x03:			// Standard VGA    case 0x04:			// Standard VGA    case 0x05:			// Standard VGA    case 0x06:			// Standard VGA    case 0x07:			// Standard VGA    case 0x08:			// Standard VGA    case 0x09:			// Standard VGA    case 0x0a:			// Standard VGA    case 0x0b:			// Standard VGA    case 0x0c:			// Standard VGA    case 0x0d:			// Standard VGA    case 0x0e:			// Standard VGA    case 0x0f:			// Standard VGA    case 0x10:			// Standard VGA    case 0x11:			// Standard VGA    case 0x12:			// Standard VGA    case 0x13:			// Standard VGA    case 0x14:			// Standard VGA    case 0x15:			// Standard VGA    case 0x16:			// Standard VGA    case 0x17:			// Standard VGA    case 0x18:			// Standard VGA	return CIRRUS_HOOK_NOT_HANDLED;    case 0x19:			// Interlace End    case 0x1a:			// Miscellaneous Control    case 0x1b:			// Extended Display Control    case 0x1c:			// Sync Adjust and Genlock    case 0x1d:			// Overlay Extended Control    case 0x22:			// Graphics Data Latches Readback (R)    case 0x24:			// Attribute Controller Toggle Readback (R)    case 0x25:			// Part Status    case 0x27:			// Part ID (R)	*reg_value = s->cr[reg_index];	break;    case 0x26:			// Attribute Controller Index Readback (R)	*reg_value = s->ar_index & 0x3f;	break;    default:#ifdef DEBUG_CIRRUS	printf("cirrus: inport cr_index %02x\n", reg_index);	*reg_value = 0xff;#endif	break;    }    return CIRRUS_HOOK_HANDLED;}static intcirrus_hook_write_cr(CirrusVGAState * s, unsigned reg_index, int reg_value){    switch (reg_index) {    case 0x00:			// Standard VGA    case 0x01:			// Standard VGA    case 0x02:			// Standard VGA    case 0x03:			// Standard VGA    case 0x04:			// Standard VGA    case 0x05:			// Standard VGA    case 0x06:			// Standard VGA    case 0x07:			// Standard VGA    case 0x08:			// Standard VGA    case 0x09:			// Standard VGA    case 0x0a:			// Standard VGA    case 0x0b:			// Standard VGA    case 0x0c:			// Standard VGA    case 0x0d:			// Standard VGA    case 0x0e:			// Standard VGA    case 0x0f:			// Standard VGA    case 0x10:			// Standard VGA    case 0x11:			// Standard VGA    case 0x12:			// Standard VGA    case 0x13:			// Standard VGA    case 0x14:			// Standard VGA    case 0x15:			// Standard VGA    case 0x16:			// Standard VGA    case 0x17:			// Standard VGA    case 0x18:			// Standard VGA	return CIRRUS_HOOK_NOT_HANDLED;    case 0x19:			// Interlace End    case 0x1a:			// Miscellaneous Control    case 0x1b:			// Extended Display Control    case 0x1c:			// Sync Adjust and Genlock    case 0x1d:			// Overlay Extended Control	s->cr[reg_index] = reg_value;#ifdef DEBUG_CIRRUS	printf("cirrus: handled outport cr_index %02x, cr_value %02x\n",	       reg_index, reg_value);#endif	break;    case 0x22:			// Graphics Data Latches Readback (R)    case 0x24:			// Attribute Controller Toggle Readback (R)    case 0x26:			// Attribute Controller Index Readback (R)    case 0x27:			// Part ID (R)	break;    case 0x25:			// Part Status    default:#ifdef DEBUG_CIRRUS	printf("cirrus: outport cr_index %02x, cr_value %02x\n", reg_index,	       reg_value);#endif	break;    }    return CIRRUS_HOOK_HANDLED;}/*************************************** * *  memory-mapped I/O (bitblt) * ***************************************/static uint8_t cirrus_mmio_blt_read(CirrusVGAState * s, unsigned address){    int value = 0xff;    switch (address) {    case (CIRRUS_MMIO_BLTBGCOLOR + 0):	cirrus_hook_read_gr(s, 0x00, &value);	break;    case (CIRRUS_MMIO_BLTBGCOLOR + 1):	cirrus_hook_read_gr(s, 0x10, &value);	break;    case (CIRRUS_MMIO_BLTBGCOLOR + 2):	cirrus_hook_read_gr(s, 0x12, &value);	break;    case (CIRRUS_MMIO_BLTBGCOLOR + 3):	cirrus_hook_read_gr(s, 0x14, &value);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区在线观看| 成人天堂资源www在线| 欧美韩国日本不卡| 欧美色综合天天久久综合精品| 国产成人在线视频免费播放| 中文字幕在线不卡一区| 日韩欧美的一区| 色噜噜狠狠色综合中国| 国产91精品久久久久久久网曝门| 精品盗摄一区二区三区| 91免费版在线| 国产精一区二区三区| 偷偷要91色婷婷| 最新高清无码专区| 337p日本欧洲亚洲大胆色噜噜| 久久国产三级精品| 一区二区三区日韩欧美| 日本一区二区三区视频视频| 欧美一区二区三区在线观看视频| 国内精品在线播放| 日韩**一区毛片| 一区二区成人在线观看| 国产精品妹子av| 久久综合色鬼综合色| 91精品久久久久久久99蜜桃| 在线免费观看日本欧美| 成人免费va视频| 国产成人免费xxxxxxxx| 精品一二三四在线| 日韩**一区毛片| 同产精品九九九| 一区二区三区91| 亚洲欧美日韩人成在线播放| 国产女主播一区| 久久久久久久久久久久久夜| 日韩欧美黄色影院| 日韩一卡二卡三卡四卡| 91精品久久久久久蜜臀| 777奇米成人网| 欧美一区二区视频观看视频| 在线成人av网站| 日韩一级完整毛片| 欧美成人a在线| 精品国产污污免费网站入口| 精品国产91亚洲一区二区三区婷婷| 成人在线综合网站| 粉嫩高潮美女一区二区三区| 粉嫩av亚洲一区二区图片| 国产乱人伦偷精品视频不卡| 国产精品一级在线| www.66久久| eeuss国产一区二区三区| 色综合一个色综合| 欧美性猛片xxxx免费看久爱| 欧美日韩在线免费视频| 91精品国产综合久久福利软件 | av在线不卡免费看| 成人一区二区在线观看| 91免费看视频| 欧美日韩中文字幕一区二区| 制服丝袜日韩国产| 精品国产乱码久久久久久闺蜜| 色哟哟欧美精品| 欧美日韩国产a| 26uuu另类欧美| 国产精品毛片高清在线完整版| 欧美女孩性生活视频| 欧美一区二区三区在线| 国产情人综合久久777777| 亚洲日本va午夜在线影院| 亚洲国产中文字幕在线视频综合| 国产精品久久久久一区| 亚洲愉拍自拍另类高清精品| 免费视频最近日韩| 国产美女娇喘av呻吟久久| 99re6这里只有精品视频在线观看| 久久www免费人成看片高清| 国产宾馆实践打屁股91| 91蜜桃免费观看视频| 欧美精品欧美精品系列| 久久精品欧美一区二区三区麻豆| 日韩欧美在线网站| 国产精品欧美一区二区三区| 一区二区免费在线播放| 精品无人码麻豆乱码1区2区| 91丨porny丨首页| 日韩天堂在线观看| 亚洲欧洲日韩一区二区三区| 奇米一区二区三区| 99精品视频免费在线观看| 5月丁香婷婷综合| 国产精品素人一区二区| 美腿丝袜亚洲一区| 91久久精品网| 久久亚洲欧美国产精品乐播| 亚瑟在线精品视频| 波多野结衣视频一区| 日韩欧美综合在线| 亚洲一区二区三区四区在线免费观看 | 婷婷久久综合九色综合伊人色| 亚洲精品一二三| 韩国精品一区二区| 日本精品一级二级| 中文字幕精品一区二区精品绿巨人 | 国产成+人+日韩+欧美+亚洲| 99re视频这里只有精品| 亚洲精品一区二区三区精华液 | 99国产精品99久久久久久| 欧美变态tickle挠乳网站| 亚洲中国最大av网站| www.日韩精品| 欧美精品一区二区三区蜜臀| 亚洲一区二区三区视频在线| www.成人在线| 精品福利视频一区二区三区| 亚洲成av人片在线| 91麻豆自制传媒国产之光| 国产午夜精品久久久久久久 | 亚洲成人av中文| 色婷婷综合视频在线观看| 国产亚洲人成网站| 奇米影视7777精品一区二区| 欧美蜜桃一区二区三区| 亚洲精品久久嫩草网站秘色| 国产精品一线二线三线| 这里只有精品电影| 亚洲成a人v欧美综合天堂 | 一本色道久久综合精品竹菊| 久久美女艺术照精彩视频福利播放| 国产精品久久国产精麻豆99网站| 亚洲精品老司机| 一本大道久久精品懂色aⅴ| 国产精品毛片高清在线完整版| 一区二区三区在线免费视频| 95精品视频在线| 1区2区3区精品视频| 不卡视频免费播放| 综合中文字幕亚洲| 色综合久久久久久久久| 亚洲欧美另类小说视频| 91在线播放网址| 一区二区在线观看免费视频播放| 美女高潮久久久| 欧美α欧美αv大片| 国内精品伊人久久久久av一坑| av亚洲精华国产精华| 成人欧美一区二区三区小说 | 亚洲123区在线观看| 91精品免费在线| 开心九九激情九九欧美日韩精美视频电影| 久久国产福利国产秒拍| 欧美一区中文字幕| 精彩视频一区二区三区| 国产欧美一区二区三区沐欲| 成人h精品动漫一区二区三区| 91精品国产色综合久久不卡电影| 国产精品免费久久| 色一区在线观看| 亚洲成人激情av| 26uuu精品一区二区| 国产一区二区日韩精品| 国产精品另类一区| 欧洲一区在线电影| 免费精品99久久国产综合精品| 日本高清不卡aⅴ免费网站| 婷婷中文字幕综合| 日韩精品中文字幕一区 | 国产精品91一区二区| 亚洲欧洲精品一区二区精品久久久| 捆绑变态av一区二区三区| 欧美国产禁国产网站cc| 色播五月激情综合网| 人人爽香蕉精品| 国产日韩欧美不卡| 欧美这里有精品| 秋霞成人午夜伦在线观看| 久久久电影一区二区三区| 色综合久久久久久久久久久| 麻豆精品视频在线观看视频| 国产精品美女一区二区在线观看| 国产乱子轮精品视频| 亚洲欧洲美洲综合色网| 欧美精品vⅰdeose4hd| 国产成人午夜99999| 亚洲制服丝袜在线| 国产婷婷一区二区| 欧美日韩国产综合久久| 国产乱人伦偷精品视频不卡| 亚洲国产视频一区| 久久婷婷久久一区二区三区| 欧美亚洲动漫精品| 国产成人av一区二区| 日本在线不卡视频| 亚洲日本电影在线| 久久蜜桃香蕉精品一区二区三区| 国产毛片一区二区| 亚洲v中文字幕| 中文字幕不卡在线观看| 51午夜精品国产| 在线观看日韩av先锋影音电影院|