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

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

?? ude506.c

?? S1D13506windml下的驅(qū)動(dòng)程序,支持vxworks5.4 支持tornado2.0 windml2.0
?? C
?? 第 1 頁 / 共 3 頁
字號:
/***************************************************************************
 *                                                                         * 
 *  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 */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2024国产精品| 国产日韩欧美不卡| 欧美色大人视频| 色婷婷av久久久久久久| 一本久久a久久精品亚洲| 盗摄精品av一区二区三区| 国产乱对白刺激视频不卡| 国内精品伊人久久久久av影院| 久久66热re国产| 久久99精品久久久久婷婷| 久久精品国产精品亚洲综合| 激情五月婷婷综合| 国产激情精品久久久第一区二区| 国产成人h网站| 93久久精品日日躁夜夜躁欧美| 精品国产一二三| 欧美日韩一区三区| 8v天堂国产在线一区二区| 日韩欧美一级二级三级久久久| 欧美成人bangbros| 国产欧美一区视频| 国产精品嫩草影院com| 综合在线观看色| 亚洲综合色区另类av| 日韩激情视频在线观看| 激情小说欧美图片| 国产成人精品免费| 91年精品国产| 欧美精选在线播放| ww久久中文字幕| 欧美国产综合色视频| 亚洲欧美激情在线| 偷窥少妇高潮呻吟av久久免费| 玖玖九九国产精品| 成人综合在线观看| 欧美少妇性性性| 日韩精品中午字幕| 国产精品久久久久久久久免费桃花| 一区二区三区色| 激情伊人五月天久久综合| 99精品视频在线观看免费| 欧美日韩日日夜夜| 国产婷婷一区二区| 亚洲综合丝袜美腿| 韩国毛片一区二区三区| 91免费国产视频网站| 欧美一区二区精美| 国产精品麻豆久久久| 偷窥国产亚洲免费视频| 成人看片黄a免费看在线| 欧美羞羞免费网站| 国产亚洲精品bt天堂精选| 亚洲自拍偷拍综合| 日本韩国一区二区| 精品久久久久久久久久久久久久久| 中文字幕精品在线不卡| 爽爽淫人综合网网站| 波多野结衣中文字幕一区二区三区| 欧美人成免费网站| 国产精品精品国产色婷婷| 天天影视涩香欲综合网| 成人激情免费网站| 日韩免费在线观看| 夜夜揉揉日日人人青青一国产精品| 国产呦精品一区二区三区网站| 欧美亚洲国产怡红院影院| 国产精品久久久久久亚洲伦| 精品一区二区三区在线播放视频 | www.亚洲激情.com| 91精品视频网| 一区二区在线观看免费 | 精品久久久久久综合日本欧美| 樱桃视频在线观看一区| 国产电影一区在线| 欧美成人a视频| 天天做天天摸天天爽国产一区| 一本久道中文字幕精品亚洲嫩| 欧美激情在线一区二区三区| 精品一区二区三区视频在线观看| 51精品国自产在线| 亚洲国产精品久久久久秋霞影院 | 国产精品福利一区二区| 精品一区二区三区久久| 欧美一区二区三区喷汁尤物| 亚洲综合色丁香婷婷六月图片| 99免费精品视频| 欧美韩国日本不卡| 国产精品一区二区在线观看不卡| 欧美一区二区福利视频| 午夜免费久久看| 欧美调教femdomvk| 午夜国产精品影院在线观看| 国产欧美日韩三级| 麻豆精品一二三| 欧美性大战xxxxx久久久| 亚洲免费观看视频| 99免费精品在线| 日韩毛片视频在线看| 国产99精品视频| 亚洲国产精品高清| 国产精品亚洲第一区在线暖暖韩国 | 国产乱一区二区| 欧美成人欧美edvon| 秋霞成人午夜伦在线观看| 777午夜精品视频在线播放| 午夜精品久久久久久久久久久| 在线精品视频一区二区| 亚洲第一二三四区| 欧美日韩一二区| 免费看日韩精品| 91精品国产综合久久久久久久久久 | 亚洲欧美日韩电影| 91免费版在线| 亚洲精品国产一区二区精华液 | 国内精品嫩模私拍在线| 亚洲精品一区在线观看| 国产呦精品一区二区三区网站| 国产日韩精品一区二区三区| www.一区二区| 一区二区三区欧美亚洲| 欧美在线免费观看视频| 丝袜亚洲另类欧美| 久久综合色一综合色88| 国产精品一级黄| 国产精品情趣视频| 色婷婷综合中文久久一本| 亚洲成a人在线观看| 日韩午夜激情视频| 国产成人精品亚洲日本在线桃色| 成人免费视频在线观看| 欧美三级三级三级爽爽爽| 欧美aaaaa成人免费观看视频| 久久影院视频免费| 99在线精品视频| 午夜影院在线观看欧美| 精品国产免费视频| 9久草视频在线视频精品| 亚洲一区二区av在线| 日韩精品一区二区三区在线观看 | 欧美视频在线观看一区二区| 日韩高清不卡一区二区三区| 日韩免费观看高清完整版在线观看| 国产精品亚洲а∨天堂免在线| 亚洲欧美日韩久久| 精品剧情在线观看| 99麻豆久久久国产精品免费| 性做久久久久久| 久久久国产一区二区三区四区小说 | 亚洲国产一区视频| 精品国产乱码久久久久久牛牛| www.在线欧美| 蜜臀av性久久久久蜜臀aⅴ四虎 | av在线不卡电影| 天天av天天翘天天综合网色鬼国产| 久久精品免视看| 欧美中文字幕一区二区三区亚洲| 另类小说综合欧美亚洲| 亚洲激情六月丁香| 精品日韩一区二区三区免费视频| 99精品久久只有精品| 蜜臀久久久99精品久久久久久| 国产精品久久三区| 欧美一区二区三区的| 色婷婷国产精品综合在线观看| 蜜桃av一区二区在线观看| 中文字幕一区二区日韩精品绯色| 欧美精品第一页| av动漫一区二区| 看国产成人h片视频| 韩国欧美国产一区| 亚洲精品国产视频| 久久久精品影视| 欧美一区二区三区思思人| 91福利视频久久久久| 懂色av中文一区二区三区| 美女久久久精品| 亚洲成人1区2区| 国产精品嫩草影院av蜜臀| 精品国产露脸精彩对白| 欧美日韩亚州综合| 日本伦理一区二区| 99久久综合色| 成人性生交大片免费看在线播放| 九色porny丨国产精品| 亚洲成人免费视| 亚洲乱码国产乱码精品精可以看| 国产日产欧美一区二区三区| 欧美一区二区在线观看| 欧美三电影在线| 99国产精品99久久久久久| 国产伦精品一区二区三区免费迷 | 国产精品福利一区| 国产人伦精品一区二区| 久久嫩草精品久久久精品一| 日韩午夜av电影| 在线播放日韩导航| 欧美三级在线播放| 在线视频中文字幕一区二区| 99精品在线免费| 91亚洲大成网污www|