/*
*********************************************************************************************************
* uC/GUI
* Universal graphic software for embedded applications
*
* (c) Copyright 2002, Micrium Inc., Weston, FL
* (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
* �C/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 : LCD13XX.C
Purpose : Driver for LCDs using a single Seiko Epson SED13XX controllers
This version supports a single LCD controller
in (almost) any hardware configuration. The following
derivatives are currently supported:
SED1352
SED1354
SED1356 (With/Without BitBlt engine support)
SED1374
SED1375
SED13806
Other Epson LCD controllers are very similar and could
be covered by this driver as well, but have not been
tested.
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------
3.00s 020724 JE a) LCD_L0_Init changed
3.00r 020708 JE a) Changed to work with 2bpp DDP bitmaps
3.00q 020705 JE a) Changed to work with 4bpp DDP bitmaps
3.00p 020705 JE a) Optimizations changed: LCD_L0_DrawVLine
3.00o 020703 JE a) Optimizations changed: LCD_L0_DrawVLine
3.00n 020624 JE a) Optimizations added for 4bpp, 16bit bus, LCD_SWAPXY:
LCD_L0_DrawVLine, DrawBitLine1BPP_Swap, DrawBitLine4BPP_Swap
3.00m 020506 JE a) LCD_FillRectBB changed to work with large
rectangles (width > 1024, heigth > 1024)
3.00l 020327 JE a) DrawBitLine1BPP for 16bit bus, 4bpp:
Compiler problem solved
3.00k 020319 JE a) DrawBitLine1BPP for 16bit bus, 4bpp optimized
3.00j 020222 JE a) Optimized version DrawBitLine16BPP added
b) Macro mapping LCD_SWAP_BYTE_ORDER changed
3.00i 020222 JE a) DrawBitLine1BPP_Swap, 16bit bus, 4bpp changed
b) LCD_L0_DrawVLine, 16bit bus, 4bpp changed
3.00h 020221 JE a) LCD_USE_32BIT_PNT added to support 32Bit offsets
b) XY2OFF changed to work with 32Bit offsets
c) BITBLT_SET_DESTINATION changed to work with 32Bit offsets
3.00g 020221 JE a) LCD_MSB_SHIFT & LCD_LSB_SHIFT removed
3.00f 020221 JE a) Remaining LCD_READ_MEM removed
b) WRITE_MEM changed for swapped mode
3.00e 020218 JE a) Use of READ_MEM, WRITE_MEM instead of
LCD_READ_MEM, LCD_WRITE_MEM
3.00d9 020129 JE a) DrawBitLine4BPP: Non optimized version used if
defined LCD_LUT_SEG
b) LCD_L0_DrawVLine, LCD_L0_FillRect:
BitBLT-versions not used if
defined LCD_LUT_SEG or LCD_LUT_COM
c) LCD_DrawBitmap1BPPBB: Not called if
defined LCD_LUT_SEG or LCD_LUT_COM
d) BitBLT support not used if
defined LCD_LUT_SEG or LCD_LUT_COM
3.00d8 020129 JE a) Bugfix: LCD_LUT_COM with 'space' now works
3.00d7 020124 JE a) DrawBitLine1BPP, 16bit bus, 1bpp optimized
3.00df 020123 JE a) LCD_L0_DrawHLine, 16bit bus, 1bpp,
LCD_SWAP_BYTE_ORDER added
3.00de 020123 JE a) LCD_L0_DrawHLine, 16bit bus, 1bpp optimized
3.00d4 020104 JE a) DrawBitLine8BPP, 16Bit bus, 4bpp optimized
3.00d3 011204 JE a) BitBLT support changed
3.00d2 011129 RS a) 4bpp opt. enabled also with LCD_LUT_COM
3.00d1 011115 JE a) Some casts inserted to avoid warnings
3.00d 011109 JE a) BitBLT support changed
3.00c9 011107 JE a) LCD_L0_DrawHLine 16bpp, 16bit changed
b) BPP mapping 15->16bpp removed to keep sure
LCD_NUMCOLORS works right
3.00c8 011016 JE a) Optimized DrawBitLine4BPP for 16 bit bus, 4 bpp mode
now supports LCD_SWAP_BYTE_ORDER
3.00c7 011016 RS a) DrawBitLine4BPP for 16 bit bus, 4 bpp mode changed
3.00c6 011016 JE a) Optimized version DrawBitLine4BPP for
16 bit bus, 4 bpp mode added
3.00c5 010926 JE a) Dummy read from BITBLT memory area inserted
to shutdown BITBLT-engine after operation
is finished
3.00c4 010925 JE a) #define SETNEXTPIXEL(c) SETNEXTPIXEL(c) deleted
b) LCD_L0_DrawVLine for 8bit BYW mode changed
c) GetPixelIndex changed
3.00c3 010925 JE a) Bugfixes: 8bit bus, LCD_MIRROR_Y, LCD_L0_Init
3.00c2 010925 JE a) Bugfixes: 16bit bus, LCD_MIRROR_Y
3.00c1 010914 RS a) LCDInt.h always included
3.00c 010905 RS a) DrawBitLine16BPP taken out via preprocessor
for non 16 bpp modes
3.00b3 010824 JE a) DrawBitLine16BPP ok
3.00b2 010824 JE a) DrawBitLine16BPP (no opt) added, not tested
3.00b1 010820 JE a) Bugfixes for LCD_MIRROR_Y, 16 bit bus, 4 bpp
3.00b 010820 RS a) Changes for 16bpp mode and non-EPSON controllers
3.00a4 010723 JE a) Optimization added for LCD_L0_DrawVLine for
16 bit bus, 4 bpp, SWAP_XY, MIRROR_Y
3.00a3 010718 JE a) Bugfix in LCD_L0_GetPixelIndex, LCD_SWAP_XY,
LCD_MIRROR_X and LCD_MIRROR_Y was not
supported
b) Bugfix: DrawBitLine8BPP, DrawBitLine4BPP:
LCD_SWAP_XY was not supported
3.00a2 010718 JE a) Bugfix in LCD_L0_GetPixelIndex, optimized
version for LCD_BUSWIDTH == 8
3.00a1 010515 RS a) SUperfluos compiler warnings eliminated
3.00a 010509 RS a) LUT init for 1374 fixed
3.00 010430 RS a) Optimizaion for 4bpp bitmaps in regular 8bpp
mode
2.02 010402 RS a) LCD_GetDevCaps removed from driver
(now LCD.c)
2.00f 001030 RS a) Optimization for 8bpp bitmaps without palette
in 16bit bus mode now also used if
COM LUT is being used -> mayor acceleration
if this configuration is used (VDO/BMW)
2.00e 001019 RS a) Optimization for 8bpp bitmaps without palette
in 16bit bus mode now also used if
COM LUT is being used -> mayor acceleration
if this configuration is used (VDO/BMW)
2.00d 001017 RS a) Video memory init removed from this driver
(normally done by LCD_Init in LCD.c)
2.00c 001013 RS a) 8bbp dd-bitmaps in 16bit bus, 4bpp configuration
accelerated (for use with memory devices)
2.00b 000925 RS a) Source cleaned up (no effect on code)
2.00a 000911 RS a) LCD_DATAADR introduced
2.00 000525 RS a) New interface supported.
b) Support for LCD_LUT_COM added
1.40a 000524 RS/JE a) 1 BPP bitmap draw fix: Misbehaved if
Backgroundcolor == Color
1.40 000516 RS a) LCD_GetColorIndex implemented
b) Support for simulation added
1.30l 0005