亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
51精品秘密在线观看| 国产精品福利电影一区二区三区四区 | 蜜臀av在线播放一区二区三区| 日韩av一二三| 99re这里只有精品视频首页| 欧美一卡2卡3卡4卡| 亚洲乱码精品一二三四区日韩在线 | 综合中文字幕亚洲| 久久99国产精品麻豆| 欧美日韩精品欧美日韩精品一| 国产欧美精品一区| 久久丁香综合五月国产三级网站| 日本韩国欧美国产| 中文字幕一区不卡| 成人中文字幕在线| 欧美一区二区观看视频| 亚洲一区av在线| 色综合久久六月婷婷中文字幕| 久久精品亚洲麻豆av一区二区| 日本美女一区二区三区视频| 91九色最新地址| 亚洲男人的天堂在线aⅴ视频| 国产一区 二区| 精品福利av导航| 中文字幕一区二区三区在线观看| 狠狠狠色丁香婷婷综合激情| 日韩一级成人av| 日韩一区欧美二区| 欧美一区二视频| 日韩av网站在线观看| 欧美喷潮久久久xxxxx| 亚洲一区二区高清| 欧美亚洲综合色| 一区二区三区四区高清精品免费观看| 高清shemale亚洲人妖| 欧美va日韩va| 韩国欧美国产一区| 欧美激情一区二区三区不卡| 国产福利一区在线| 中文在线免费一区三区高中清不卡| 国内精品国产三级国产a久久| 日韩一区二区影院| 国产乱码精品一区二区三区av| 精品动漫一区二区三区在线观看 | 亚洲欧美综合另类在线卡通| 国产高清不卡二三区| 中文字幕第一区二区| 成人国产亚洲欧美成人综合网| 国产精品色哟哟| 99国产欧美另类久久久精品 | 日韩精品电影一区亚洲| 91精品国产一区二区人妖| 男人的天堂久久精品| 精品成a人在线观看| 国产精品一区二区久久不卡 | 在线视频你懂得一区| 一区二区激情视频| 欧美一区二区三区在| 国产制服丝袜一区| 国产精品福利电影一区二区三区四区 | 制服丝袜亚洲精品中文字幕| 日韩精品成人一区二区三区| 久久在线观看免费| 91啪九色porn原创视频在线观看| 亚洲午夜精品一区二区三区他趣| 欧美色老头old∨ideo| 视频一区欧美精品| 国产亚洲va综合人人澡精品| 色婷婷久久综合| 蜜桃av一区二区三区| 国产精品嫩草影院com| 欧美狂野另类xxxxoooo| 国产精品1区2区3区在线观看| 亚洲欧美日韩系列| 精品国产乱码久久| 欧美亚洲综合久久| 国产成人午夜电影网| 亚洲一区免费在线观看| 国产亚洲精品福利| 欧美浪妇xxxx高跟鞋交| 丁香激情综合国产| 免费人成精品欧美精品| 亚洲美女淫视频| 久久综合99re88久久爱| 欧美日韩免费电影| 暴力调教一区二区三区| 久久不见久久见免费视频7| 亚洲精品你懂的| 精品国产成人在线影院| 欧美少妇xxx| 99久久777色| 国产综合一区二区| 水野朝阳av一区二区三区| 中文欧美字幕免费| 欧美精品一区视频| 欧美人体做爰大胆视频| 色8久久精品久久久久久蜜| 国产乱子伦视频一区二区三区 | 日韩一级完整毛片| 91激情五月电影| 国产成人在线影院| 美国欧美日韩国产在线播放| 亚洲成人高清在线| 亚洲精品精品亚洲| 国产精品色眯眯| 久久免费电影网| 精品欧美黑人一区二区三区| 6080国产精品一区二区| 欧美日韩久久久| 欧美日韩视频在线观看一区二区三区| 91啪亚洲精品| 在线观看精品一区| 欧美在线观看你懂的| 一本到一区二区三区| 91麻豆国产在线观看| 91女厕偷拍女厕偷拍高清| 91污在线观看| 色妹子一区二区| 欧美特级限制片免费在线观看| 欧美综合一区二区三区| 欧美精品在欧美一区二区少妇| 欧美日韩久久久久久| 欧美一区二区精品| 日韩精品一区在线| 26uuu精品一区二区三区四区在线| 欧美精品一区二区三区四区| 久久尤物电影视频在线观看| 久久综合久久99| 国产精品久久久久婷婷二区次| 国产精品毛片大码女人| 亚洲欧洲在线观看av| 亚洲午夜视频在线观看| 天堂资源在线中文精品| 裸体在线国模精品偷拍| 韩国精品一区二区| 岛国av在线一区| 色婷婷亚洲综合| 欧美一区二区三区爱爱| 国产午夜亚洲精品羞羞网站| 欧美韩日一区二区三区四区| 亚洲一区二区欧美| 久久国产欧美日韩精品| 成人午夜激情视频| 欧美主播一区二区三区美女| 7777精品久久久大香线蕉| 久久久久久久久久久久久女国产乱| 国产日韩亚洲欧美综合| 亚洲免费观看高清在线观看| 天堂成人免费av电影一区| 美女网站色91| 粉嫩高潮美女一区二区三区| 91蝌蚪porny九色| 在线播放国产精品二区一二区四区| 欧美一二三四区在线| 中文欧美字幕免费| 日韩国产欧美视频| 国产麻豆午夜三级精品| 欧美三级一区二区| 国产欧美在线观看一区| 性做久久久久久久久| 激情小说欧美图片| 91久久免费观看| 久久嫩草精品久久久精品| 亚洲国产一区二区在线播放| 狠狠色狠狠色合久久伊人| 欧美色综合天天久久综合精品| 精品美女一区二区| 伊人色综合久久天天人手人婷| 精品在线一区二区三区| 色综合天天综合网天天看片| 精品国产麻豆免费人成网站| 亚洲综合久久av| 丁香六月综合激情| 2021中文字幕一区亚洲| 亚洲成av人片在线观看| 成人av资源站| 欧美经典三级视频一区二区三区| 日韩精品一级二级| 色欧美88888久久久久久影院| 久久综合资源网| 麻豆成人91精品二区三区| 91黄色在线观看| 日韩伦理电影网| 成人一区二区三区视频| 精品国产乱码久久久久久久| 日本sm残虐另类| 欧美视频在线观看一区| 国产精品国产三级国产普通话99| 久久精品国产99国产精品| 欧美日韩免费高清一区色橹橹 | 激情图片小说一区| 欧美日韩一级大片网址| 亚洲精品中文在线| 91麻豆蜜桃一区二区三区| 中文字幕在线不卡视频| 国产不卡一区视频| 亚洲国产精品国自产拍av| 国产一区91精品张津瑜| 久久精品视频网| 大胆欧美人体老妇|