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

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

?? ude506.c

?? S1D13506windml下的驅(qū)動(dòng)程序,支持vxworks5.4 支持tornado2.0 windml2.0
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/***************************************************************************
 *                                                                         * 
 *  UDE506.C -- S1D13506 16 bpp WindML display driver.                     * 
 *  Copyright (c) 2000, 2001 Epson Research and Development, Inc.          *
 *  All Rights Reserved                                                    *
 *                                                                         *
 *  THIS SOURCE CODE IS FOR TEST ONLY.                                     *
 *                                                                         *
 ***************************************************************************/

/* includes */
#include "udepson.h"


/*
 * uglEpson16BitDevCreate
 */
UGL_UGI_DRIVER * uglEpson16BitDevCreate
(
    UGL_ORD    instance,
    UGL_UINT32 notUsed0,	/* intLevel */
    UGL_UINT32 notUsed1		/* intVector */
)
{
    UGL_EPSON_DRIVER   * pEpsonDriver;
    UGL_GENERIC_DRIVER * pGenDriver;
    UGL_UGI_DRIVER     * pDriver = UGL_NULL;
    UGL_STATUS           status  = UGL_STATUS_ERROR;
    UGL_UINT16           pciBus;
    UGL_UINT16           pciDevice;
    UGL_UINT16           pciFunc;

    pEpsonDriver = (UGL_EPSON_DRIVER   *)UGL_CALLOC(1, sizeof(UGL_EPSON_DRIVER ));

    if (UGL_NULL != pEpsonDriver)
    {

	/* Determine if chip is supported and present */
	if ( pciFindDevice ( UGL_EPSON_PCI_VENDOR_ID, UGL_EPSON_PCI_DEV_ID, 
			     instance, &pciBus, &pciDevice, &pciFunc) == OK 
           )
	{
	    pEpsonDriver->chipType = UGL_EPSON_PCI_DEV_ID;
	    pEpsonDriver->pciBus = pciBus;
	    pEpsonDriver->pciDevice = pciDevice;
	    pEpsonDriver->pciFunc = pciFunc;
	    pEpsonDriver->busType = UGL_EPSON_PCI;

	    status = UGL_STATUS_OK;
	}
	else
	{
	    status = UGL_STATUS_ERROR;
	}

	if ( status == UGL_STATUS_ERROR )
        {
	    UGL_FREE( pEpsonDriver );
	    return( UGL_NULL );
        }


	pGenDriver = (UGL_GENERIC_DRIVER *) pEpsonDriver;
        pDriver    = (UGL_UGI_DRIVER *)     pGenDriver;


	/* Initialize the driver (mandatory) */
        uglUgiDevInit(pDriver);
        uglEpson16BitModeSet( pDriver, pDevModes );

	/* Set Standard Driver API Functions */
        pDriver->bitmapCreate		= uglGeneric16BitBitmapCreate;
	pDriver->modeSet	          = uglEpson16BitModeSet;
	pDriver->info                     = uglEpson16BitInfo;
 	pDriver->modeAvailGet             = uglEpson16BitModeAvailGet;
        pDriver->destroy                  = uglEpson16BitDevDestroy;
	pDriver->cursorShow               = uglEpsonCursorShow;
	pDriver->cursorHide               = uglEpsonCursorHide;
	pDriver->cursorMove               = uglEpsonCursorMove;
        if ( ((UGL_UINT32)pEpsonModeTable->Flags) & mfHWBLT )
        pDriver->bitmapBlt                = uglEpson16BitBitmapBlt;
        else
        pDriver->bitmapBlt                = uglGeneric16BitBitmapBlt;
        pDriver->bitmapDestroy	          = uglGeneric16BitBitmapDestroy;
        pDriver->bitmapRead	          = uglGeneric16BitBitmapRead;
        pDriver->bitmapWrite	          = uglGeneric16BitBitmapWrite;
        pDriver->bitmapStretchBlt         = uglGeneric16BitBitmapStretchBlt;
        pDriver->monoBitmapBlt            = uglGeneric16BitMonoBitmapBlt;
        pDriver->monoBitmapCreate         = uglGeneric16BitMonoBitmapCreate;
        pDriver->monoBitmapDestroy        = uglGeneric16BitMonoBitmapDestroy;
        pDriver->monoBitmapRead           = uglGeneric16BitMonoBitmapRead;
        pDriver->monoBitmapWrite          = uglGeneric16BitMonoBitmapWrite;
        pDriver->monoBitmapStretchBlt     = uglGeneric16BitMonoBitmapStretchBlt;
        pDriver->transBitmapBlt           = uglGeneric16BitTransBitmapBlt;
        pDriver->transBitmapCreate        = uglGenericTransBitmapCreate;
        pDriver->transBitmapDestroy       = uglGenericTransBitmapDestroy;
        pDriver->transBitmapRead	  = uglGenericTransBitmapRead;
        pDriver->transBitmapWrite	  = uglGenericTransBitmapWrite;
        pDriver->transBitmapStretchBlt    = uglGenericTransBitmapStretchBlt;
	pDriver->transBitmapCreateFromDdb = uglGenericTransBitmapCreateFromDdb;
	pDriver->colorAlloc		  = uglGenericColorAllocDirect;
	pDriver->colorFree		  = UGL_NULL;
        pDriver->clutSet		  = UGL_NULL;
	pDriver->clutGet		  = UGL_NULL;
	pDriver->colorConvert             = uglGeneric16BitColorConvert;
	pDriver->cursorBitmapCreate       = uglGenericCursorBitmapCreate;
	pDriver->cursorBitmapDestroy      = uglGenericCursorBitmapDestroy;
	pDriver->cursorInit               = uglGenericCursorInit;
	pDriver->cursorDeinit             = uglGenericCursorDeinit;
	pDriver->cursorImageGet           = uglGenericCursorImageGet;
	pDriver->cursorImageSet           = uglGenericCursorImageSet;
	pDriver->cursorPositionGet        = uglGenericCursorPositionGet;
	pDriver->cursorOff                = uglGenericCursorOff;
	pDriver->cursorOn                 = uglGenericCursorOn;
	pDriver->ellipse                  = uglGenericEllipse;
	pDriver->gcCopy                   = uglGenericGcCopy;
	pDriver->gcCreate                 = uglGenericGcCreate;
	pDriver->gcDestroy                = uglGenericGcDestroy;
	pDriver->gcSet                    = uglGenericGcSet;
	pDriver->line                     = uglGenericLine;
        pDriver->pixelGet                 = uglGeneric16BitPixelGet;
        pDriver->pixelSet                 = uglGeneric16BitPixelSet;
	pDriver->polygon                  = uglGenericPolygon;
	pDriver->rectangle                = uglGenericRectangle;
	pDriver->memPoolCreate            = uglGenericMemPoolCreate;
	pDriver->memPoolDestroy           = uglGenericMemPoolDestroy;
#ifdef INCLUDE_UGL_DOUBLE_BUFFERING
	pDriver->pageCopy                 = uglGenericPageCopy;
	pDriver->pageCreate               = uglGenericPageCreate;
        pDriver->pageDestroy              = uglGenericPageDestroy;
	pDriver->pageDrawGet              = uglGenericPageDrawGet;
	pDriver->pageDrawSet              = uglEpsonPageDrawSet;
	pDriver->pageVisibleGet           = uglGenericPageVisibleGet;
	pDriver->pageVisibleSet           = uglGenericPageVisibleSet;
#endif /* INCLUDE_UGL_DOUBLE_BUFFERING */

	/* Set Generic Driver Functions */
        pGenDriver->bresenhamLine         = uglGeneric16BitBresenhamLine;
        pGenDriver->fbPixelGet            = uglGeneric16BitFbPixelGet;
        pGenDriver->fbPixelSet            = uglGeneric16BitFbPixelSet;
 	pGenDriver->fill                  = uglGenericFill;
	pGenDriver->hLine	          = uglGeneric16BitHLine;
	pGenDriver->rectFill              = uglGenericRectFill;
	pGenDriver->vLine                 = uglGeneric16BitVLine;
	pGenDriver->gpWait                = uglEpsonGpWait;
    }

    uglEpsonDisplayBuildNum(szVersion);

    return (pDriver);
}



/*
 *  uglEpsonDisplayBuildNum - show build number 
 */
UGL_LOCAL void uglEpsonDisplayBuildNum ( const char * szVersion )
{
    UGL_EPSON_BUILD   epsonBuild;
    char            * version;
    char              temp[5];

    epsonBuild.first_num   = 1;

    strncpy ( temp, szVersion+11, 5); 

    if ( ( version = (char *) strrchr(temp, '$')) != NULL )
    {
       version[0] = 0; 
       strncpy ( epsonBuild.second_num, temp, 5); 
    }

   printf( "\nEPSON S1D13506 16BPP WindML 2.0 Display Driver: Build %d.%d%s \n",epsonBuild.first_num, 
             buildNum, epsonBuild.second_num);
}



/*
 *  uglEpson16BitDevDestroy - Destroy instances of display drivers.
 */
UGL_STATUS uglEpson16BitDevDestroy
(
    UGL_UGI_DRIVER * pDriver
)
{
    UGL_GENERIC_DRIVER * pGenDriver = (UGL_GENERIC_DRIVER *)pDriver;

    if ( pDriver )
    {
	/* Clear the screen */
	memset( pGenDriver->fbAddress, 0x0, pDriver->pMode->width * 
	        pDriver->pMode->height * (pDriver->pMode->colorDepth / 8) );
	/* Delete any extensions */
	uglGenExtAllDelete( pDriver );

	/* Deinitialize the driver (mandatory) */
	uglUgiDevDeinit(pDriver);
	UGL_FREE(pDriver->pPageZero->pDdb);
	UGL_FREE(pDriver->pPageZero);

	/* Free the driver */
	UGL_FREE(pDriver);

	return (UGL_STATUS_OK);
    }

    return ( UGL_STATUS_ERROR );

}



/*
 *  uglEpson16BitInfo - Retrieve information about the graphics stack and drivers.
 */
UGL_STATUS uglEpson16BitInfo
(
    UGL_UGI_DRIVER * pDriver,
    UGL_INFO_REQ     infoRequest,
    void           * info
)
{
    UGL_GENERIC_DRIVER *pGenDriver = (UGL_GENERIC_DRIVER *) pDriver;

    if ( pDriver->pMode == UGL_NULL ) return( UGL_STATUS_ERROR );

    switch (infoRequest)
    {
	case UGL_FB_INFO_REQ:
	{
	    UGL_FB_INFO *fbInfo = (UGL_FB_INFO *)info;
	    fbInfo->width       = pEpsonModeTable->Width;
	    fbInfo->height      = pEpsonModeTable->Height;
	    fbInfo->fbAddrs     = pGenDriver->fbAddress;
	    fbInfo->dsMemAmount = 0;
	    fbInfo->flags       = UGL_FB_PAGING_ENABLED;
	}
	break;

	case UGL_COLOR_INFO_REQ:
	{
	    UGL_COLOR_INFO *colorInfo = (UGL_COLOR_INFO *)info;
	    colorInfo->cmodel         = UGL_CMODEL_DIRECT;
	    colorInfo->cspace         = UGL_CSPACE_RGB;
	    colorInfo->depth          = pEpsonModeTable->Bpp;
	    colorInfo->clutSize       = 0;
	    colorInfo->flags          = 0;
	}
	break;

	case UGL_MODE_INFO_REQ:
	    {
	    UGL_MODE_INFO * modeInfo = (UGL_MODE_INFO *)info;
            modeInfo->width = pEpsonModeTable->Width;
            modeInfo->height = pEpsonModeTable->Height;
            modeInfo->colorDepth = pEpsonModeTable->Bpp;
            modeInfo->clutSize = 0;
            modeInfo->colorModel = UGL_DIRECT;
            modeInfo->colorFormat = UGL_RGB565;
            modeInfo->fbAddress = pGenDriver->fbAddress;
            modeInfo->displayMemAvail = 0;
	    modeInfo->flags = UGL_MODE_PAGING_ENABLED;
	    }
	    break;

	case UGL_EXT_INFO_REQ:
	    {

            #ifdef INCLUDE_UGL_JPEG
	    UGL_EXT_INFO * extInfo = (UGL_EXT_INFO *)info;
	    int version;
	    if (strcmp(extInfo->name, UGL_EXT_JPEG_NAME) == 0)
		{
		extInfo->pExt = (void *)uglGenJpegInit (
			       pDriver, &version);
		extInfo->version = version;
		}
	    else
            #endif /* INCLUDE_UGL_JPEG */

		return (UGL_STATUS_ERROR);
	    }
	    break;

	default:
	    return( UGL_STATUS_ERROR );
    }

    return( UGL_STATUS_OK );
}



/*
 *  uglEpsonGpWait - Wait for BitBLT to complete.
 */
UGL_STATUS uglEpsonGpWait
(
    UGL_GENERIC_DRIVER * pDriver
)
{
    UGL_UINT8  regData = 0;

    while (1)
    {
      regData = *(volatile unsigned short *) ( BITBLT_CTRL0 + pciBaseAddress );

      if ( 0 == (regData & 0x80) )
         break;
    }

    pDriver->gpBusy = UGL_FALSE;

    return( UGL_STATUS_OK );
}



/*
 * uglEpson16BitFrameToFrameBitBlit - Both source and destination are in video memory.
 */
UGL_LOCAL void uglEpson16BitFrameToFrameBitBlit 
(
    UGL_UGI_DRIVER * pDriver, 
    UGL_UINT16     * pSourceData,
    UGL_RECT       * pSourceRect,
    UGL_ORD          sourceStride,
    UGL_UINT16     * pDestData, 
    UGL_RECT       * pDestRect,
    UGL_ORD          destStride
)
{
    UGL_GENERIC_DRIVER  * pGenDriver = (UGL_GENERIC_DRIVER *)pDriver;
    UGL_RASTER_OP         rasterOp = pGenDriver->gc->rasterOp;
    UGL_UINT16            overLapType = 0;
    UGL_UINT16            width;
    UGL_UINT16            height;
    UGL_UINT16            phase=0;
    UGL_UINT16            screenStride = pDriver->pMode->width * BYTES_PER_PIXEL;
    volatile UGL_UINT16 * bltAddress = (UGL_UINT16 *) (pciBaseAddress + 0x100000);
    UGL_UINT16          * sourceAddr = (UGL_UINT16 *) pSourceData; 
    UGL_UINT16          * destAddr   = (UGL_UINT16 *) pDestData;


    /* program the Source Address Register */
    phase = (UGL_UINT32)sourceAddr & 1;

    uglWriteByte( ( BITBLT_SRCE_ADDRESS_REG0 + pciBaseAddress ), phase ); 
    uglWriteByte( ( BITBLT_SRCE_ADDRESS_REG1 + pciBaseAddress ), 0 ); 
    uglWriteByte( ( BITBLT_SRCE_ADDRESS_REG2 + pciBaseAddress ), 0 ); 


    /* program the Destination Address Register */
    uglWriteByte( ( BITBLT_DEST_ADDRESS_REG0 + pciBaseAddress ), ( UGL_UINT32)destAddr         );
    uglWriteByte( ( BITBLT_DEST_ADDRESS_REG1 + pciBaseAddress ), ( (UGL_UINT32)destAddr) >> 8  ); 
    uglWriteByte( ( BITBLT_DEST_ADDRESS_REG2 + pciBaseAddress ), ( (UGL_UINT32)destAddr) >> 16 ); 

    /* program the Width and Height Register */
    height = UGL_RECT_HEIGHT(*pSourceRect); 
    width  = UGL_RECT_WIDTH(*pSourceRect);

    uglWriteByte( ( BITBLT_WIDTH_REG0  + pciBaseAddress ), width  - 1  );
    uglWriteByte( ( BITBLT_WIDTH_REG1  + pciBaseAddress ), (width  - 1)>>8  );
    uglWriteByte( ( BITBLT_HEIGHT_REG0 + pciBaseAddress ), height - 1 );
    uglWriteByte( ( BITBLT_HEIGHT_REG1 + pciBaseAddress ), (height - 1)>>8 );

    /* program the Memory Address Offset Register */
    uglWriteByte( ( BITBLT_MEM_OFF0 + pciBaseAddress ), screenStride/2); 
    uglWriteByte( ( BITBLT_MEM_OFF1 + pciBaseAddress ), (screenStride/2)>>8);

    /* color depth select */
    uglWriteByte( ( BITBLT_CTRL1 + pciBaseAddress ), 0x01); //16bpp

    /* move BitBLT */
    if (overLapType==0x2 || overLapType==0x3)
       uglWriteByte( ( BITBLT_OP + pciBaseAddress ), 0x03); //negative direction  
    else
       uglWriteByte( ( BITBLT_OP + pciBaseAddress ), 0x02); //positive direction  

    uglWriteByte( ( BITBLT_ROP + pciBaseAddress ),   0x0C ); //ROP

    // Wait for blt engine ready
    uglEpsonGpWait(pGenDriver);

    /* Engage the blt engine */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本丝袜连裤袜办公室| 91老师片黄在线观看| 国产伦精品一区二区三区免费迷| 成人在线视频一区| 欧美亚洲一区二区在线| 777亚洲妇女| 中文字幕不卡在线观看| 亚洲午夜在线视频| 色网站国产精品| 欧美日韩五月天| 久久久亚洲精品一区二区三区 | 五月天一区二区| 国产综合成人久久大片91| 99久久国产综合精品色伊| 欧美一区二区视频免费观看| 欧美激情一区二区三区全黄| 天天综合网 天天综合色| 粉嫩绯色av一区二区在线观看| 在线免费观看日韩欧美| 亚洲精品一区在线观看| 一区二区三区在线视频播放| 美女诱惑一区二区| 99在线热播精品免费| 欧美一卡2卡三卡4卡5免费| 国产精品美女久久久久久| 天天综合网天天综合色| 99视频超级精品| 久久亚洲一区二区三区明星换脸 | 日本精品视频一区二区三区| 日韩一区二区三区av| 一区在线中文字幕| 久久99久久99精品免视看婷婷| 99精品国产热久久91蜜凸| 欧美电视剧在线看免费| 亚洲国产视频一区| 99在线热播精品免费| 欧美精品一区二区高清在线观看| 亚洲国产日韩精品| 成人免费毛片a| 精品国精品国产| 日韩电影一区二区三区| 91在线视频18| 国产欧美精品日韩区二区麻豆天美| 午夜伊人狠狠久久| 色综合中文字幕国产 | 久久国产夜色精品鲁鲁99| 91麻豆国产在线观看| 久久久久久久久久久99999| 亚洲五月六月丁香激情| 99riav一区二区三区| 久久精品夜夜夜夜久久| 免费亚洲电影在线| 制服丝袜在线91| 亚洲自拍偷拍综合| 91一区在线观看| 国产日产精品1区| 久久99国产精品久久| 欧美一区二区视频在线观看2020| 亚洲一区二区影院| 9色porny自拍视频一区二区| 久久久噜噜噜久久中文字幕色伊伊| 日本少妇一区二区| 色婷婷av一区| 亚洲欧美综合色| 成人综合婷婷国产精品久久蜜臀| 精品1区2区在线观看| 乱中年女人伦av一区二区| 欧美日韩久久一区二区| 一区二区三区加勒比av| bt欧美亚洲午夜电影天堂| 国产精品女主播av| 成人国产精品免费观看视频| 欧美国产精品劲爆| 不卡的av电影在线观看| 国产精品久久久久三级| 不卡一区在线观看| 18成人在线视频| 91麻豆免费在线观看| 亚洲欧美一区二区视频| 色综合av在线| 一区二区三区精密机械公司| 欧美亚洲国产一区二区三区 | 欧美日韩在线免费视频| 亚洲国产视频在线| 欧美剧在线免费观看网站| 日韩在线一二三区| 日韩三级免费观看| 国内偷窥港台综合视频在线播放| 久久综合色8888| 丁香网亚洲国际| 亚洲精品视频免费观看| 欧美午夜精品一区二区三区| 日韩成人免费看| 精品处破学生在线二十三| 国产超碰在线一区| 亚洲视频资源在线| 欧美天天综合网| 奇米一区二区三区| 中文字幕乱码亚洲精品一区| 97se亚洲国产综合自在线| 亚洲一级二级在线| 91精品国产综合久久久蜜臀粉嫩 | 欧美日韩日本视频| 免费日本视频一区| 国产日产欧美一区二区三区 | 亚洲一区二区高清| 欧美伦理视频网站| 国产麻豆欧美日韩一区| 亚洲欧美日韩人成在线播放| 欧美日韩精品欧美日韩精品一| 欧洲av在线精品| 亚洲国产日韩a在线播放性色| 精品久久99ma| 99精品偷自拍| 裸体一区二区三区| 国产精品久久久久久久裸模| 欧美日韩国产首页在线观看| 国产麻豆91精品| 亚洲电影在线免费观看| 久久精品夜色噜噜亚洲aⅴ| 色婷婷久久综合| 狠狠色丁香久久婷婷综合_中| 一区二区中文字幕在线| 欧美一级国产精品| 99免费精品在线| 人人狠狠综合久久亚洲| 亚洲男人电影天堂| 精品99一区二区| 欧美亚洲国产bt| 高清成人在线观看| 日韩精品一二三四| 亚洲视频在线观看一区| 精品国产在天天线2019| 91福利小视频| 成人激情校园春色| 日本不卡一区二区| 亚洲免费在线视频| 国产亚洲欧美色| 911精品国产一区二区在线| 成人国产亚洲欧美成人综合网| 蜜臀久久99精品久久久久久9| 亚洲视频一二三区| 欧美激情中文字幕| 91精品国产综合久久久久久久久久| 成年人国产精品| 国产精品一区二区在线观看不卡| 亚洲成a人v欧美综合天堂下载| 国产精品免费aⅴ片在线观看| 日韩欧美国产一二三区| 在线观看日韩精品| 99在线精品一区二区三区| 经典三级一区二区| 视频一区二区三区入口| 1000部国产精品成人观看| 久久免费偷拍视频| 91精品免费观看| 欧美日韩精品是欧美日韩精品| 99国产精品视频免费观看| 国产福利一区在线观看| 青青草伊人久久| 舔着乳尖日韩一区| 亚洲v中文字幕| 玉米视频成人免费看| 国产精品区一区二区三| 久久精品综合网| 欧美mv日韩mv| 精品少妇一区二区三区在线视频| 欧美区在线观看| 欧美日韩精品一区二区在线播放| 色综合久久99| 91色九色蝌蚪| 99久久精品国产毛片| jlzzjlzz欧美大全| 成人视屏免费看| 成人性生交大片免费看中文网站| 国产成人福利片| 国产福利精品导航| 国产成人免费在线观看不卡| 国产真实乱对白精彩久久| 久久99久久久久| 久久www免费人成看片高清| 久久精品国产亚洲5555| 日本视频一区二区| 男女男精品视频| 久久精品国产一区二区三| 免费观看在线色综合| 国内偷窥港台综合视频在线播放| 麻豆91免费观看| 国产一区二区伦理| 国产精品一色哟哟哟| 国产99久久久精品| 成人av电影免费在线播放| 91原创在线视频| 欧美亚洲国产一区二区三区va| 欧美日韩高清一区二区三区| 欧美高清你懂得| 久久综合色之久久综合| 国产婷婷一区二区| 日韩伦理免费电影| 亚洲成在线观看|