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

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

?? lcd6642x.c

?? 這是我移植到GBA游戲機上的uCGUI3.24 可以通過模擬器仿真
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*
*********************************************************************************************************
*                                                uC/GUI
*                        Universal graphic software for embedded applications
*
*                       (c) Copyright 2002, Micrium Inc., Weston, FL
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*              礐/GUI is protected by international copyright laws. Knowledge of the
*              source code may not be used to write a similar product. This file may
*              only be used in accordance with a license and should not be redistributed
*              in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File        : 
Purpose     : 
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------
1.04f   020204 JE     a) Hardwareinterface routines renamed:
                         ...REG01 -> ...A1, ...REG00 -> ...A0
1.04e   010706 JE     a) Bugfixes in DrawBitLine1BPP_Swap
1.04d   010627 JE     a) Bugfix in DrawBitLine1BPP_Swap
1.04c   010420 JE     a) Defaults for config switches added
1.04b   010418 JE     a) Accelerations of DrawVLine changed 
                         for using with cache
                      b) LCD_L0_DrawBitmap changed
1.04a   010417 RS     a) DrawVLine for "Philips mode" accelerated
1.04    010411 JE     a) 2bpp bitmaps accelerated
                      b) 1bpp bitmaps accelerated
1.02    010406 JE     a) Use of cache completed
                      b) DrawVLine optimized
1.00    010401 RS     a) Major work ...
0.02    010314 JE     a) REORG0 changed
                      b) _GetPixel0 & _GetPixel0 changed
                      c) Superfluous macro definitions SETPIXEL, ... deleted
                      d) PHYS_... new to handle rotation
0.01    010313 JE     a) Initialisation changed
0.00    001019 RS     Start of development
---------------------------LIST OF CONFIG SWITCHES--------------------
The following is a list of additional configuration switches for this
driver. These switches might not be listed in the manual, because
the manual mainly covers the general config switches which are
supported by all drivers.
----------------------------------------------------------------------
define ----------------------Explanation------------------------------
LCD_OPTIMIZE                 Controls the use of optimized routines.
LCD_CACHE                    If active cache is used
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
none
---------------------------END-OF-HEADER------------------------------
*/

#include <string.h>             /* for memset */
#include <stddef.h>           /* needed for definition of NULL */
#include "LCD_Private.h"      /* private modul definitions & config */
#include "GUI_Private.h"
#include "GUIDebug.h"
#include "LCD_0.h"            /* Defines for first display */

#if   ((LCD_CONTROLLER == 66420) | (LCD_CONTROLLER == 66421)) \
      && (!defined(WIN32) | defined(LCD_SIMCONTROLLER))



/*
  ********************************************************************
  *
  *                  ID translation table
  *
  ********************************************************************

This table contains 0, 1, 2, ... and serves as translation table for DDBs

*/

#define INTS(Base)  Base+0,Base+1,Base+2,Base+3,Base+4,Base+5,   \
                    Base+6,Base+7,Base+8,Base+9,Base+10,Base+11, \
                    Base+12,Base+13,Base+14,Base+15

static const LCD_PIXELINDEX aID[] = {
  INTS(0),
  #if LCD_MAX_LOG_COLORS > 0x10
    INTS(0x10),
  #endif
  #if LCD_MAX_LOG_COLORS > 0x20
    INTS(0x20),
    INTS(0x30),
  #endif
  #if LCD_MAX_LOG_COLORS > 0x40
    INTS(0x40),
    INTS(0x50),
    INTS(0x60),
    INTS(0x70),
  #endif
  #if LCD_MAX_LOG_COLORS > 0x80
    INTS(0x80),
    INTS(0x90),
    INTS(0xa0),
    INTS(0xb0),
    INTS(0xc0),
    INTS(0xd0),
    INTS(0xe0),
    INTS(0xf0)
  #endif
};

/*
        *********************************************************
        *                                                       *
        *           Defaults for configuration                  *
        *                                                       *
        *********************************************************
*/

#ifndef LCD_XORG0
  #define LCD_XORG0     (0)     /* leftmost position covered by this controller */
#endif

#ifndef LCD_YORG0
  #define LCD_YORG0     (0)     /* topmost position covered by this controller */
#endif

#ifndef LCD_STATIC
  #define LCD_STATIC static
#endif

#ifndef LCD_CACHE
  #define  LCD_CACHE (0)
#endif

#ifndef LCD_FIRSTSEG0
  #define LCD_FIRSTSEG0   (0)     /* Contr.0: first segment line used */
#endif

#ifndef LCD_LASTSEG0
  #define LCD_LASTSEG0    (LCD_XSIZE_PHYS-1)    /* Contr.0: last segment line used */
#endif

#ifndef LCD_FIRSTCOM0
  #define LCD_FIRSTCOM0   (0)     /* Contr.0: first com line used */
#endif

#ifndef LCD_LASTCOM0
  #define LCD_LASTCOM0    (LCD_YSIZE_PHYS-1)     /* Contr.0: last com line used */
#endif

#ifndef LCD_NUM_CONTROLLERS
  #define LCD_NUM_CONTROLLERS           (1)
#endif

#ifndef LCD_SUPPORT_CHECKINIT
  #define LCD_SUPPORT_CHECKINIT         (0)
#endif

#ifndef LCD_OPTIMIZE
  #define LCD_OPTIMIZE                (1)
#endif

/*      *********************************************************
        *                                                       *
        *              Controller dependend values              *
        *                                                       *
        *********************************************************
*/

#define MAX_REGS   18
#if (LCD_CONTROLLER == 66420)
  #define MAX_SEGS   160
  #define MAX_COMS   80
#elif (LCD_CONTROLLER == 66421)
  #define MAX_SEGS   160
  #define MAX_COMS   100
#endif

/*
        *********************************************************
        *                                                       *
        *           Compiler specific settings                  *
        *                                                       *
        *********************************************************
*/

#ifdef WIN32   /* Avoid warnings in MS-compiler */
  #pragma warning(disable : 4761)  // warning C4761: integral size mismatch in argument; conversion supplied
#endif

/*
        *********************************************************
        *
        *           Defines for simulation
        *
        *********************************************************
*/

#ifdef WIN32
  U8 SIM_Read00(void);
  U8 SIM_Read01(void);
  U8 SIM_Read10(void);
  U8 SIM_Read11(void);
  void SIM_Write00(U8 Data);
  void SIM_Write01(U8 Data);
  void SIM_Write10(U8 Data);
  void SIM_Write11(U8 Data);
/* Write data */
  #undef  LCD_WRITE_A0
  #define LCD_WRITE_A0(Data) SIM_Write00(Data)
  #undef  LCD_WRITE_A1
  #define LCD_WRITE_A1(Data) SIM_Write01(Data)
  #if LCD_NUM_CONTROLLERS > 1
    #undef  LCD_WRITE_A0C1
    #define LCD_WRITE_A0C1(Data) SIM_Write10(Data)
    #undef  LCD_WRITE_A1C1
    #define LCD_WRITE_A1C1(Data) SIM_Write11(Data)
  #endif  /* LCD_NUM_CONTROLLERS > 1 */
/* Read data */
  #undef  LCD_READ_A0
  #define LCD_READ_A0(Data) Data = SIM_Read00()
  #undef  LCD_READ_A1
  #define LCD_READ_A1(Data) Data = SIM_Read01()
  #if LCD_NUM_CONTROLLERS > 1
    #undef  LCD_READ_A0C0
    #define LCD_READ_A0C0(Data) Data = SIM_Read10()
    #undef  LCD_READ_A1C0
    #define LCD_READ_A1C0(Data) Data = SIM_Read11()
  #endif  /* LCD_NUM_CONTROLLERS > 1 */
#endif

/*
        *********************************************************
        *
        *          Remap ...A0, ...A1 -> ...CMD, ...DATA
        *
        *********************************************************
*/

#define LCD_WRITE_REG00 LCD_WRITE_A0
#define LCD_WRITE_REG01 LCD_WRITE_A1
#define LCD_READ_REG00  LCD_READ_A0
#define LCD_READ_REG01  LCD_READ_A1
#if LCD_NUM_CONTROLLERS > 1
  #define LCD_WRITE_REG10 LCD_WRITE_A0C1
  #define LCD_WRITE_REG11 LCD_WRITE_A1C1
  #define LCD_READ_REG10  LCD_READ_A0C1
  #define LCD_READ_REG11  LCD_READ_A1C1
#endif

/*
        *********************************************************
        *                                                       *
        *          Internal types                               *
        *                                                       *
        *********************************************************
*/

#define PIXELCOLOR U8
#define BKCOLOR LCD_BKCOLORINDEX
#define   COLOR LCD_COLORINDEX

/*
        *********************************************************
        *                                                       *
        *          Support for Segment/COMLUTs                  *
        *                                                       *
        *********************************************************
*/

/* For compatibility with older configs, define defaults */
#ifndef LCD_SUPPORT_COMTRANS
  #define LCD_SUPPORT_COMTRANS 0
#endif
#ifndef LCD_SUPPORT_SEGTRANS
  #define LCD_SUPPORT_SEGTRANS 0
#endif

#if LCD_SUPPORT_COMTRANS
  extern LCD_TYPE_COMTRANS LCD__aLine2Com0[LCD_LASTCOM0-LCD_FIRSTCOM0+1];
#endif

#if LCD_SUPPORT_SEGTRANS
  extern LCD_TYPE_SEGTRANS LCD__aRow2Seg0[LCD_LASTSEG0-LCD_FIRSTSEG0+1];
#endif

/*
        *********************************************************
        *                                                       *
        *           Macro calculations                          *
        *                                                       *
        *********************************************************
*/

#define LCD_MSB_SHIFT       (8-LCD_LSB_SHIFT)

/* Define number of used coms/segments per controller */
#define LCD_NUM_SEGS0 (LCD_LASTSEG0-LCD_FIRSTSEG0+1)
#define LCD_NUM_COMS0 (LCD_LASTCOM0-LCD_FIRSTCOM0+1)
#if (LCD_NUM_CONTROLLERS >1)
  #define LCD_NUM_SEGS1 (LCD_LASTSEG1-LCD_FIRSTSEG1+1)
  #define LCD_NUM_COMS1 (LCD_LASTCOM1-LCD_FIRSTCOM1+1)
#endif

/* Define total number of used coms/segments */
#if (LCD_NUM_CONTROLLERS ==1)
  #define LCD_NUM_SEGS LCD_NUM_SEGS0
  #define LCD_NUM_COMS LCD_NUM_COMS0
#elif (LCD_NUM_CONTROLLERS ==2)
  #define LCD_NUM_SEGS (LCD_NUM_SEGS0+LCD_NUM_SEGS1)
  #define LCD_NUM_COMS (LCD_NUM_COMS0+LCD_NUM_COMS1)
#endif

#define LCD_MEMSIZE ((LCD_BITSPERPIXEL*LCD_VXSIZE/LCD_BUSWIDTH)*(LCD_VYSIZE+LCD_NUM_EMPTY_LINES))

#define LCD_NUM_PAGES (LCD_NUM_COMS+7)/8

/*
        *********************************************************
        *                                                       *
        *      Configuration switch checking                    *
        *                                                       *
        *********************************************************

Please be aware that not all configuration errors can be captured !

*/

/* Check number of controllers */
#if ((LCD_NUM_CONTROLLERS >1) || (LCD_NUM_CONTROLLERS <0))
  #error "More than 1 controller not supported by this driver"
#endif

#if (!defined(LCD_INIT_R00)) | (!defined(LCD_INIT_R01))
  #error You have to define init values in the configuration for Registers 0,1
         /* Drivers needs to know as these values can not be read back ! */
#endif


/*********************************************************************
*
*           Static variables
*
**********************************************************************
*/

static struct {
  U8 ConReg0;
  U8 ConReg1;
  U8 x,y;
  #if LCD_CACHE
    U8 aaVMem[MAX_COMS][MAX_SEGS/4];  /* video memory */
  #endif
} aState[LCD_NUM_CONTROLLERS];

/*
        *********************************************************
        *                                                       *
        *              Macros, standard                         *
        *                                                       *
        *********************************************************

These macros can be found in any LCD-driver as they serve purposes
that can be found in any class of LCD-driver.
*/

#if (!LCD_SWAP_XY) && (!LCD_MIRROR_X) && (!LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) x,y
#elif (!LCD_SWAP_XY) && (!LCD_MIRROR_X) && (LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) x,LCD_YSIZE_PHYS-1-(y)
#elif (!LCD_SWAP_XY) && (LCD_MIRROR_X) && (!LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) LCD_XSIZE_PHYS-1-(x),y
#elif (!LCD_SWAP_XY) && (LCD_MIRROR_X) && (LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) LCD_XSIZE_PHYS-1-(x),LCD_YSIZE_PHYS-1-(y)
#elif (LCD_SWAP_XY) && (!LCD_MIRROR_X) && (!LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) y,x
#elif (LCD_SWAP_XY) && (LCD_MIRROR_X) && (!LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) y,LCD_XSIZE-1-(x)
#elif (LCD_SWAP_XY) && (!LCD_MIRROR_X) && (LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) LCD_YSIZE-1-(y),x
#elif (LCD_SWAP_XY) && (LCD_MIRROR_X) && (LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) LCD_YSIZE-1-(y),LCD_XSIZE-1-(x)
#else
  #error unsupported configuration
#endif

/*
        *********************************************************
        *                                                       *
        *       Macros for internal use                         *
        *                                                       *
        *********************************************************
*/

#if (LCD_SUPPORT_COMTRANS)
  #if (LCD_MIRROR_Y)
    #error LCD_MIRROR_Y not supported with COMTrans !
  #endif
  #if (LCD_MIRROR_X)
    #error LCD_MIRROR_X not supported with COMTrans !
  #endif
#endif

#define XORPIXEL_DATA(x, y,c)  XorPixel_Data(x,y,c)

#if (!LCD_SUPPORT_COMTRANS && !LCD_SUPPORT_SEGTRANS)
  #define SETPIXEL(x, y, c)  _SetPixel(x, y, c)
  #define GETPIXEL(x, y)     _GetPixel(x,y)
  #define XORPIXEL(x, y)     XorPixel(x,y)
  #define XORPIXEL_DATA(x, y,c)  XorPixel_Data(x,y,c)
#elif (LCD_SUPPORT_COMTRANS && !LCD_SUPPORT_SEGTRANS)
  #if (!LCD_SWAP_XY)
    #define SETPIXEL(x, y, c)  _SetPixel(x,LCD__aLine2Com0[y], c)
    #define GETPIXEL(x, y)     _GetPixel(x,LCD__aLine2Com0[y])
    #define XORPIXEL(x, y)      XorPixel(x,LCD__aLine2Com0[y])
  #else
    #define SETPIXEL(x, y, c)  _SetPixel(y,LCD__aLine2Com0[x], c)
    #define GETPIXEL(x, y)     _GetPixel(y,LCD__aLine2Com0[x])
    #define XORPIXEL(x, y)      XorPixel(y,LCD__aLine2Com0[x])
  #endif
#elif (!LCD_SUPPORT_COMTRANS && LCD_SUPPORT_SEGTRANS)
  #if (!LCD_SWAP_XY)
    #define SETPIXEL(x, y, c)  _SetPixel(LCD__aRow2Seg0[x],y, c)
    #define GETPIXEL(x, y)     _GetPixel(LCD__aRow2Seg0[x],y)
    #define XORPIXEL(x, y)      XorPixel(LCD__aRow2Seg0[x],y)
  #else
    #define SETPIXEL(x, y, c)  _SetPixel(LCD__aRow2Seg0[y],x, c)
    #define GETPIXEL(x, y)     _GetPixel(LCD__aRow2Seg0[y],x)
    #define XORPIXEL(x, y)      XorPixel(LCD__aRow2Seg0[y],x)
  #endif
#elif (LCD_SUPPORT_COMTRANS && LCD_SUPPORT_SEGTRANS)
  #if (!LCD_SWAP_XY)
    #define SETPIXEL(x, y, c)  _SetPixel(LCD__aRow2Seg0[x],LCD__aLine2Com0[y], c)
    #define GETPIXEL(x, y)     _GetPixel(LCD__aRow2Seg0[x],LCD__aLine2Com0[y])
    #define XORPIXEL(x, y)      XorPixel(LCD__aRow2Seg0[x],LCD__aLine2Com0[y])
  #else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区久久不卡| 久久久久久夜精品精品免费| 国产一区二区不卡老阿姨| 综合av第一页| 久久久www免费人成精品| 欧美日韩在线播放三区四区| 蜜臀a∨国产成人精品| 亚洲五码中文字幕| 国产精品黄色在线观看| 久久久青草青青国产亚洲免观| 3d动漫精品啪啪一区二区竹菊| www.爱久久.com| 欧美日韩国产电影| 国产毛片精品国产一区二区三区| 亚洲成人黄色小说| 婷婷国产在线综合| 亚洲图片欧美色图| 亚洲国产一区二区视频| 亚洲国产aⅴ成人精品无吗| 日韩精品一级二级| 国产精品1区2区| 色天使色偷偷av一区二区| 欧美日韩另类国产亚洲欧美一级| 欧美一卡2卡三卡4卡5免费| 久久久久久久久蜜桃| 国产精品高潮呻吟久久| 偷拍与自拍一区| 国产一区二区三区不卡在线观看| 99国产精品久久久久久久久久| 欧美日韩1区2区| 欧美激情综合网| 午夜日韩在线观看| 成人网在线播放| 欧美丝袜第三区| 久久这里只有精品视频网| 亚洲日本va午夜在线电影| 日本中文字幕不卡| 99国产一区二区三精品乱码| 91精品午夜视频| 中文字幕中文字幕一区| 日韩电影在线免费观看| aaa国产一区| 日韩精品一区二区三区在线播放| 亚洲视频图片小说| 麻豆91小视频| 欧美体内she精高潮| 国产人成亚洲第一网站在线播放| 亚洲不卡av一区二区三区| 国产成人一级电影| 日韩欧美国产三级电影视频| 亚洲综合久久av| 成人中文字幕合集| 日韩欧美国产一区二区三区| 亚洲综合一二区| 波多野结衣在线一区| 欧美大片一区二区三区| 亚洲成人免费av| 在线看国产一区二区| 国产精品的网站| 丁香网亚洲国际| 国产亚洲欧美激情| 国产在线一区观看| 欧美变态凌虐bdsm| 日韩精品欧美精品| 欧美猛男超大videosgay| 亚洲激情欧美激情| 色噜噜夜夜夜综合网| 日韩毛片精品高清免费| av在线这里只有精品| 中文成人av在线| 成人性生交大片免费| 久久久精品天堂| 国产成人综合亚洲网站| 亚洲资源中文字幕| 在线一区二区三区做爰视频网站| 国产精品萝li| 91年精品国产| 亚洲最大色网站| 欧美日韩一区二区三区四区五区| 亚洲一二三专区| 欧美精品久久久久久久久老牛影院 | 一区二区三区资源| 日本电影欧美片| 亚洲国产sm捆绑调教视频| 欧美三级中文字幕| 免费人成在线不卡| 久久日韩精品一区二区五区| 国产精品羞羞答答xxdd| 国产精品麻豆久久久| 在线观看日韩一区| 日本欧美一区二区三区乱码| 日韩三级视频在线观看| 国产一区二区三区免费看| 欧美激情自拍偷拍| 欧洲一区二区av| 青青国产91久久久久久| 精品成人a区在线观看| 国产不卡高清在线观看视频| 亚洲欧美国产三级| 538prom精品视频线放| 精东粉嫩av免费一区二区三区| 国产精品久久久久久久午夜片| 色www精品视频在线观看| 日韩av在线播放中文字幕| 国产女人18毛片水真多成人如厕| 色综合天天做天天爱| 奇米精品一区二区三区四区| 久久九九99视频| 欧美性色黄大片| 国产精品亚洲一区二区三区妖精| 中文字幕亚洲一区二区av在线| 欧美性大战久久久久久久蜜臀| 老司机一区二区| 中文字幕欧美三区| 欧美日韩在线直播| 国产99一区视频免费| 亚洲成人先锋电影| 国产精品夫妻自拍| 精品区一区二区| 欧美色综合网站| 成人国产精品免费网站| 奇米一区二区三区av| 亚洲人成人一区二区在线观看| 欧美一区二区三区四区在线观看| 99久久精品99国产精品| 韩国欧美国产一区| 日韩激情一二三区| 亚洲午夜私人影院| 国产精品久久久久久福利一牛影视 | 97久久久精品综合88久久| 久久成人综合网| 天天色天天操综合| 亚洲一区中文在线| 亚洲视频免费在线观看| 久久久国产精品午夜一区ai换脸| 欧美一区二区女人| 欧美日韩亚洲综合| 欧美一区二区三区婷婷月色| 欧美网站大全在线观看| 99久久精品99国产精品| 成人理论电影网| 国产成人精品免费一区二区| 久久超碰97中文字幕| 蜜桃传媒麻豆第一区在线观看| 午夜精品视频一区| 午夜电影一区二区三区| 亚洲国产精品精华液网站| 一区av在线播放| 一区二区三区久久| 亚洲午夜免费福利视频| 亚洲一区视频在线| 亚洲九九爱视频| 亚洲精品美国一| 亚洲精品国产精品乱码不99| 综合电影一区二区三区 | 久久精品一区二区| 26uuu国产一区二区三区| 久久夜色精品国产噜噜av| 2020国产精品自拍| 精品91自产拍在线观看一区| 久久亚洲欧美国产精品乐播| 2021久久国产精品不只是精品 | 91视视频在线直接观看在线看网页在线看| 国产精品性做久久久久久| 国产成人精品亚洲日本在线桃色| 国产·精品毛片| 成人黄色软件下载| 欧美在线一二三四区| 69久久99精品久久久久婷婷| 91麻豆精品国产91久久久久久| 欧美一激情一区二区三区| 26uuu精品一区二区三区四区在线| 国产视频亚洲色图| 亚洲欧美成人一区二区三区| 亚洲1区2区3区视频| 免费三级欧美电影| 成人小视频免费在线观看| 色综合天天性综合| 欧美人牲a欧美精品| 久久久一区二区三区捆绑**| 中文字幕一区二区三区av| 亚洲影院理伦片| 老司机午夜精品| 99精品欧美一区二区三区小说| 欧美亚洲国产一区二区三区| 日韩女优av电影在线观看| 国产精品电影一区二区三区| 日韩电影免费在线| 成人不卡免费av| 欧美一级搡bbbb搡bbbb| 国产精品传媒入口麻豆| 日韩高清在线不卡| 福利91精品一区二区三区| 色屁屁一区二区| 久久久精品国产99久久精品芒果| 亚洲伦理在线免费看| 国产伦精品一区二区三区视频青涩 | 日韩avvvv在线播放| 粉嫩高潮美女一区二区三区| 欧美性猛交xxxx乱大交退制版|