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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bmp.c

?? epson 13506 driver code
?? C
?? 第 1 頁 / 共 4 頁
字號:
/**==========================================================================\
***  BMP.C - Demo program to show all colors & patterns on all modes
***  Copyright (c) 1997, 2001 Epson Research and Development, Inc.
***  All rights reserved.           
\*==========================================================================*/

#include <fcntl.h>
#include <io.h>
#include <math.h>
#include <malloc.h>

#if !defined(__GNUC__)

#pragma warning(disable:4032)  // disable warning: formal parameter 1 has different type when promoted
#include <conio.h>

#elif !defined(strcmpi)
#define strcmpi stricmp
#endif

#if defined(__GNUC__) && defined(INTEL_DOS)
#include <conio.h>
#include <unistd.h>
#endif

#include <string.h>
#include <stdlib.h>
#include <stdio.h>

#include "hal.h"
#include "BMP.h"
#include "appcfg.h"

/*-------------------------------------------------external functions------*/

/* Rotate90 Mode bit has moved in the 13506, so define a value so we don't have to */
/* search and replace again */
#define ROTATE90_MODE_BIT       0x40


/*
** The following definitions are for CalcDisplaySurfaceCombination()
*/
enum
   {
   SURFACE_NONE = -1,
   SURFACE_LCD0_CRTTV1 = 0,
   SURFACE_LCD0,
   SURFACE_CRTTV0,
   SURFACE_LCDCRTTV0,

   MAX_SURFACE_COMBINATIONS
   };

/*-------------------------------------------------external functions------*/

static const char Revision[] = "BMP.C=$Revision: 19 $";

/*----------------------------------------------------------variables------*/

/* ======= global variables ======== */
BYTE ImgBuf[2048];
int gbInitRegisters;
int gbImgCompress;

unsigned nBitsPerPixel[MAX_DISP_SURFACE];
unsigned SurfaceDisplayMode[MAX_DISP_SURFACE];
int LcdOrientation;
int DisplaySurfaceCombination;

int Orientation[MAX_DISP_SURFACE];

static int VerboseMode = FALSE;
int NumberOfSurfaces;
int CommonMemoryBlockForAllDisplays;
int ActiveSurfaceNumber;
char *filename[MAX_DISP_SURFACE];
int BmpCount;

/* ======== static variables ======== */
const char szVersion[] = "2.06";

/* ======== static functions ======== */
void PrintUsage(void);
unsigned Show13506(char *fname);
void CheckBpp(unsigned bpp);
void GetBMPInfo(char *fname, unsigned *width, unsigned*height, unsigned *BitsPerPixel);
unsigned ShowBMP(char *fname, unsigned DstX, unsigned DstY);
void seLineBlt( BYTE far *pImgBuf, unsigned ImgWidth, unsigned DstX, unsigned Y, unsigned VirtualWidth, unsigned PhysicalWidth, unsigned Bpp );
unsigned ShowCompressed( int ff, unsigned DstX, unsigned DstY, unsigned ImgH, unsigned ImgW, unsigned VirtualW, unsigned VirtualH, unsigned PhysicalWidth, unsigned Bpp );
unsigned ShowUncompressed( int ff, unsigned DstX, unsigned DstY, unsigned ImgH, unsigned ImgW, unsigned VirtualW, unsigned VirtualH, unsigned PhysicalWidth, unsigned Bpp );
void Translate( BYTE far *pImgBuf, unsigned LineWidth, unsigned Bpp );
void DisplaySurfaceHelp(void);

/*=========================================================main()=========*/

void DisplayBlank(BOOL activate)
{
   switch (seReadRegByte(REG_DISPLAY_MODE) & 0x07)
      {
      default:
      case LCD:
         seDisplayLcdBlank(activate);
         break;

      case CRT:
         seDisplayCrtBlank(activate);
         break;

      case TV:
      case TV | CRT:
         seDisplayTvBlank(activate);
         break;

      case LCD | CRT:
         seDisplayLcdBlank(activate);
         seDisplayCrtBlank(activate);
         break;

      case LCD | TV:
      case LCD | TV | CRT:
         seDisplayLcdBlank(activate);
         seDisplayTvBlank(activate);
         break;
      }
}

/*-------------------------------------------------------------------------*/

void WriteLut(unsigned surface, BYTE *pLut, int count)
{
   unsigned regDisplayMode;

   regDisplayMode = seReadRegByte(REG_DISPLAY_MODE);

   switch (CalcDisplaySurfaceCombination())
      {
      case SURFACE_NONE:
         break;

      case SURFACE_LCD0:
         if (surface == 0)
            seWriteLcdLut(pLut, count);
         break;

      case SURFACE_CRTTV0:
         if (surface == 0)
            {
            if (regDisplayMode & TV)
               seWriteTvLut(pLut, count);
            else
               seWriteCrtLut(pLut, count);
            }
         break;

      case SURFACE_LCD0_CRTTV1:
         if (surface == 0)
            seWriteLcdLut(pLut, count);
         else if (surface == 1)
            {
            if (regDisplayMode & TV)
               seWriteTvLut(pLut, count);
            else
               seWriteCrtLut(pLut, count);
            }
         break;

      case SURFACE_LCDCRTTV0:
         if (surface == 0)
            {
            seWriteLcdLut(pLut, count);
            seWriteCrtLut(pLut, count);
            }
         break;
      }
}

/*-------------------------------------------------------------------------*/

void DisplayResolution(void)
{
   unsigned x, y;
   unsigned regDisplayMode;

   regDisplayMode = seReadRegByte(REG_DISPLAY_MODE);

   switch (CalcDisplaySurfaceCombination())
      {
      case SURFACE_NONE:
         break;

      case SURFACE_LCD0:
         seGetLcdResolution(&x, &y);
         printf("LCD: %d * %d * %d Bpp\n", x, y, seGetLcdBitsPerPixel());
         break;

      case SURFACE_CRTTV0:
         seGetCrtResolution(&x, &y);
         printf("CRT/TV: %d * %d * %d Bpp\n", x, y, seGetCrtBitsPerPixel());
         break;

      case SURFACE_LCD0_CRTTV1:
      case SURFACE_LCDCRTTV0:
         seGetLcdResolution(&x, &y);
         printf("LCD: %d * %d * %d Bpp\n", x, y, seGetLcdBitsPerPixel());
         
         seGetCrtResolution(&x, &y);
         printf("CRT/TV: %d * %d * %d Bpp\n", x, y, seGetCrtBitsPerPixel());
         break;
      }
}

/*-------------------------------------------------------------------------*/

void FailBpp(int bpp)
{
   printf("\nERROR: Could not change to %d bits-per-pixel.\n", bpp);
   printf(  "       Check if there is sufficient memory for image(s).\n");
   exit(1);
}

/*-------------------------------------------------------------------------*/

void FailVirtual(void)
{
   printf("ERROR: Could not change to ");

   switch (LcdOrientation)
      {
      case LANDSCAPE:
      default:
         printf("LANDSCAPE\n");
         break;

      case ROTATE90:
         printf("SWIVELVIEW 90 DEGREES\n");
         break;

      case ROTATE180:
         printf("SWIVELVIEW 180 DEGREES\n");
         break;

      case ROTATE270:
         printf("SWIVELVIEW 270 DEGREES\n");
         break;
      }

   exit(1);
}

/*-------------------------------------------------------------------------*/

//
// bpp0=bits-per-pixel for first surface
// bpp1=bits-per-pixel for second surface
//
void SetBitsPerPixel(void)
{
   unsigned regDisplayMode = seReadRegByte(REG_DISPLAY_MODE);
   DWORD addr;
   unsigned bpp0, bpp1;
   unsigned width, height;
   unsigned LcdWidth, LcdHeight;
   unsigned CrtTvWidth, CrtTvHeight;
   unsigned ImgWidth, ImgHeight;

   switch (CalcDisplaySurfaceCombination())
      {
      case SURFACE_NONE:
         break;

      case SURFACE_LCD0:
         GetBMPInfo(filename[0], &ImgWidth, &ImgHeight, &bpp0);

         if (bpp0 == 24)
            bpp0 = 16;

         addr = seSetLcdBitsPerPixel(bpp0);

#ifdef INTEL_DOS
         if (addr == -1)
            FailBpp(bpp0);
#else
         if (addr == 0)
            FailBpp(bpp0);
#endif

         if (LcdOrientation & ROTATE90)
            {
            seWriteRegByte(REG_DISPLAY_MODE, seReadRegByte(REG_DISPLAY_MODE) | 0x40);
            seGetLcdResolution(&LcdWidth, &LcdHeight);

            if (seLcdVirtInit(LcdWidth, LcdHeight) != ERR_OK)
               FailVirtual();
            }
         break;

      case SURFACE_CRTTV0:
         GetBMPInfo(filename[0], &ImgWidth, &ImgHeight, &bpp0);

         if (bpp0 == 24)
            bpp0 = 16;

         if (regDisplayMode & TV)
            addr = seSetTvBitsPerPixel(bpp0);
         else
            addr = seSetCrtBitsPerPixel(bpp0);

#ifdef INTEL_DOS
         if (addr == -1)
            FailBpp(bpp0);
#else
         if (addr == 0)
            FailBpp(bpp0);
#endif
         break;

      case SURFACE_LCD0_CRTTV1:
         GetBMPInfo(filename[0], &ImgWidth, &ImgHeight, &bpp0);

         if (bpp0 == 24)
            bpp0 = 16;

         addr = seSetLcdBitsPerPixel(bpp0);

#ifdef INTEL_DOS
         if (addr == -1)
            FailBpp(bpp0);
#else
         if (addr == 0)
            FailBpp(bpp0);
#endif

         if (LcdOrientation & ROTATE90)
            {
            seWriteRegByte(REG_DISPLAY_MODE, seReadRegByte(REG_DISPLAY_MODE) | 0x40);
            seGetLcdResolution(&LcdWidth, &LcdHeight);

            if (seLcdVirtInit(LcdWidth, LcdHeight) != ERR_OK)
               FailVirtual();
            }

         if (BmpCount > 1)
            {
            GetBMPInfo(filename[1], &ImgWidth, &ImgHeight, &bpp1);

            if (bpp1 == 24)
               bpp1 = 16;
            }
         else
            bpp1 = bpp0;

         if (regDisplayMode & TV)
            addr = seSetTvBitsPerPixel(bpp1);
         else
            addr = seSetCrtBitsPerPixel(bpp1);

#ifdef INTEL_DOS
         if (addr == -1)
            FailBpp(bpp1);
#else
         if (addr == 0)
            FailBpp(bpp1);
#endif
         break;

      case SURFACE_LCDCRTTV0:
         GetBMPInfo(filename[0], &ImgWidth, &ImgHeight, &bpp0);

         if (bpp0 == 24)
            bpp0 = 16;

         addr = seSetLcdCrtBitsPerPixel(bpp0);

#ifdef INTEL_DOS
         if (addr == -1)
            FailBpp(bpp0);
#else
         if (addr == 0)
            FailBpp(bpp0);
#endif

         //
         // Create virtual space which is the larger of the two displays.
         //
         seWriteRegByte(REG_DISPLAY_MODE, seReadRegByte(REG_DISPLAY_MODE) & ~0x40);
         seGetLcdResolution(&LcdWidth, &LcdHeight);
         seGetCrtResolution(&CrtTvWidth, &CrtTvHeight);

         if (LcdWidth >= CrtTvWidth)
            width = LcdWidth;
         else
            width = CrtTvWidth;

         if (LcdHeight >= CrtTvHeight)
            height = LcdHeight;
         else
            height = CrtTvHeight;

         if (seLcdCrtVirtInit(width, height) != ERR_OK)
            FailVirtual();
         break;
      }
}

/*-------------------------------------------------------------------------*/

char *strDisplayArray[] = { "NONE", "LCD", "CRT", "LCD&CRT", "TV", "LCD&TV", "CRT/TV", "LCD&CRT/TV" };

char *GetCurrentDisplay(void)
   {
   return strDisplayArray[seGetSurfaceDisplayMode() & 0x07];
   }

/*-------------------------------------------------------------------------*/

int VirtInit(unsigned surface, DWORD width, DWORD height)
{
   unsigned regDisplayMode;

   regDisplayMode = seReadRegByte(REG_DISPLAY_MODE);

   switch (CalcDisplaySurfaceCombination())
      {
      case SURFACE_NONE:
         break;

      case SURFACE_LCD0:
         if (surface == 0)
            return seLcdVirtInit(width, height);
         break;

      case SURFACE_CRTTV0:
         if (surface == 0)
            {
            if (regDisplayMode & TV)
               return seTvVirtInit(width, height);
            else
               return seCrtVirtInit(width, height);
            }
         break;

      case SURFACE_LCD0_CRTTV1:
         if (surface == 0)
            return seLcdVirtInit(width, height);
         else if (surface == 1)
            {
            if (regDisplayMode & TV)
               return seTvVirtInit(width, height);
            else
               return seCrtVirtInit(width, height);
            }
         break;

      case SURFACE_LCDCRTTV0:
         if ((surface == 0) || (surface == 1))
            return seLcdCrtVirtInit(width, height);
         break;
      }

   return ERR_FAILED;
}

/*-------------------------------------------------------------------------*/

void DisplaySurfaceHelp(void)
{
   printf("\n"
          "\niDisplay | Surface 0    Surface 1"
          "\n---------------------------------"
          "\n    0    | LCD          ---"
          "\n    1    | CRT          ---"
          "\n    2    | TV           ---"
          "\n    3    | LCD & CRT    ---"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情文学综合插| 777久久久精品| 欧美一级二级在线观看| 国产精品欧美久久久久无广告| 午夜电影一区二区三区| eeuss鲁一区二区三区| 精品久久久久99| 五月激情综合色| 91久久人澡人人添人人爽欧美| 久久亚洲综合av| 麻豆精品国产传媒mv男同| 在线视频欧美区| 一区二区三区中文字幕精品精品| 国产成人精品影视| 久久先锋影音av鲁色资源| 蜜臀精品久久久久久蜜臀| 欧美日本乱大交xxxxx| 一区二区三区在线视频免费 | 国产一区91精品张津瑜| 欧美区在线观看| 91久久精品一区二区| 欧美精品在线视频| 日韩免费成人网| 亚洲电影在线播放| 91国在线观看| 亚洲免费在线播放| 欧美性淫爽ww久久久久无| 亚洲精品高清在线| 一本久道中文字幕精品亚洲嫩| 国产精品情趣视频| 99久久婷婷国产| 一区二区三区91| 欧美专区亚洲专区| 婷婷开心激情综合| 日韩午夜小视频| 极品美女销魂一区二区三区| 久久色视频免费观看| 国产在线精品免费av| 国产欧美精品一区二区三区四区 | 日韩你懂的在线观看| 免费日韩伦理电影| 精品久久久久久综合日本欧美| 国产美女在线精品| 亚洲日本电影在线| 欧美喷水一区二区| 久久99国产精品尤物| 日本一区二区三区国色天香 | 在线亚洲精品福利网址导航| 亚洲国产精品一区二区尤物区| 欧美日韩在线播| 久久国产尿小便嘘嘘尿| 亚洲国产精品av| 在线视频你懂得一区| 蜜桃视频一区二区三区在线观看| 久久青草国产手机看片福利盒子| 成人午夜精品一区二区三区| 亚洲激情综合网| 日韩欧美一二三| av中文字幕在线不卡| 亚洲小少妇裸体bbw| 精品国产区一区| 91麻豆福利精品推荐| 日韩激情av在线| 中文字幕欧美区| 欧美一区二区啪啪| 91在线看国产| 激情国产一区二区| 亚洲动漫第一页| 欧美激情在线观看视频免费| 欧美天天综合网| 国产**成人网毛片九色| 亚洲777理论| 中文字幕一区免费在线观看| 91精品国产91热久久久做人人| 国产 日韩 欧美大片| 日韩成人免费电影| 亚洲欧美日韩国产成人精品影院| 日韩欧美一级二级三级久久久| 色哟哟一区二区| 国产精品白丝jk白祙喷水网站| 亚洲成人自拍偷拍| 国产精品视频一二三| 精品日韩欧美一区二区| 欧美色视频一区| 波多野结衣亚洲一区| 国产一区在线观看麻豆| 三级欧美韩日大片在线看| 亚洲日本在线视频观看| 久久免费午夜影院| 欧美一级黄色大片| 欧美精品乱码久久久久久按摩| 不卡在线视频中文字幕| 国产在线国偷精品免费看| 久久精品国内一区二区三区| 亚洲综合色自拍一区| 亚洲欧美另类在线| 国产精品美女久久久久久久| 久久影音资源网| 日韩一区二区三区视频在线观看| 欧美日韩国产乱码电影| 欧美在线一区二区| 色8久久精品久久久久久蜜| 波多野结衣视频一区| 丁香网亚洲国际| 国产黄色成人av| 成人激情免费电影网址| 成人综合激情网| 成人av网站在线| 99久久久国产精品免费蜜臀| 成人激情动漫在线观看| 91小宝寻花一区二区三区| 一本久道久久综合中文字幕 | 亚洲国产精品久久艾草纯爱| 亚洲黄色录像片| 亚洲第一精品在线| 亚洲午夜一区二区| 天堂久久久久va久久久久| 石原莉奈在线亚洲二区| 久久精品国产精品亚洲红杏| 久99久精品视频免费观看| 精品一区二区国语对白| 国产成人午夜视频| 99精品1区2区| 欧美日韩一区小说| 欧美tk丨vk视频| 国产香蕉久久精品综合网| 国产精品美女久久久久久2018| 《视频一区视频二区| 亚洲午夜精品17c| 免费在线成人网| 国产成人精品免费视频网站| 99免费精品视频| 欧美日韩精品免费| 精品国产一区二区三区av性色| 久久久国产一区二区三区四区小说 | 欧美一区二区三区在线| 精品国产乱码久久久久久浪潮 | 日韩经典一区二区| 韩国一区二区在线观看| 99麻豆久久久国产精品免费| 欧美日韩在线免费视频| 欧美成人a∨高清免费观看| 国产亚洲综合在线| 亚洲综合在线观看视频| 久久草av在线| 91一区二区三区在线观看| 欧美一区二区三区免费大片| 国产精品成人在线观看 | 一区二区三区高清在线| 另类小说色综合网站| 91美女精品福利| 精品国产乱码久久久久久久久| 亚洲免费在线看| 国产自产2019最新不卡| 欧美体内she精高潮| 国产无人区一区二区三区| 亚洲成人资源在线| 成人动漫一区二区三区| 日韩欧美一区电影| 亚洲免费观看高清完整版在线 | 亚洲自拍偷拍综合| 国产一区二区福利| 欧美日本视频在线| 亚洲毛片av在线| 国产成人免费在线| 91精品国产aⅴ一区二区| 亚洲乱码国产乱码精品精98午夜| 精品系列免费在线观看| 欧美日韩一级片网站| 国产精品国产三级国产普通话蜜臀| 人人狠狠综合久久亚洲| 91黄色小视频| 国产精品青草综合久久久久99| 精品一区二区三区欧美| 欧美一区二区三区在| 亚洲福利视频一区二区| 色天使色偷偷av一区二区| 欧美国产一区在线| 国产精品一区不卡| 精品久久久久一区| 麻豆传媒一区二区三区| 欧美放荡的少妇| 亚洲成人免费看| 欧美三级韩国三级日本一级| 亚洲卡通动漫在线| 99国产精品国产精品久久| 国产女主播在线一区二区| 韩国成人在线视频| 精品国产123| 久久99精品久久只有精品| 欧美一区二区三区四区久久| 天堂一区二区在线| 91麻豆精品91久久久久同性| 日韩影院免费视频| 91精品国模一区二区三区| 强制捆绑调教一区二区| 欧美电影免费观看高清完整版在 | 日韩一区二区三区在线视频| 日韩在线一区二区| 日韩一区二区在线播放|