LcdDrv.c
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:46k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Copyright Notice
  37.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  38.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  39.  *  (It is illegal to remove this copyright notice from this software or any
  40.  *  portion of it)
  41. *******************************************************************************/
  42. /*******************************************************************************
  43.  *
  44.  * Filename:
  45.  * ---------
  46.  * LcdDrv.c
  47.  *
  48.  * Project:
  49.  * --------
  50.  *   MediaTeck GSM
  51.  *
  52.  * Description:
  53.  * ------------
  54.  *   This Module defines the LCD driver routines.
  55.  *
  56.  * Author:
  57.  * -------
  58.  * -------
  59.  *             
  60.  *
  61.  * HISTORY
  62.  * -------
  63.  * Created On 05 Dec
  64.  *------------------------------------------------------------------------------
  65.    
  66.  
  67. *******************************************************************************/
  68. #ifndef MMI_ON_WIN32
  69. //------- Include Files -----------------------------
  70. //#include "stdafx.h"                                           // For windows compilation
  71. #include "lcdDr.h"      /* Hardware Address, Command Words, Software Macro's and Routines */
  72. /* gShadowBuffer is defined in GUI */
  73. extern uint16 gShadowBuffer[LCDrHEIGHT][LCDrWIDTH];
  74. /* gShadowBuffer for refrence purpose only */
  75. #if 0
  76. /* under construction !*/
  77. /* under construction !*/
  78. /* under construction !*/
  79. /* under construction !*/
  80. /* under construction !*/
  81. /* under construction !*/
  82. /* under construction !*/
  83. /* under construction !*/
  84. /* under construction !*/
  85. /* under construction !*/
  86. /* under construction !*/
  87. /* under construction !*/
  88. /* under construction !*/
  89. /* under construction !*/
  90. /* under construction !*/
  91. /* under construction !*/
  92. /* under construction !*/
  93. /* under construction !*/
  94. /* under construction !*/
  95. /* under construction !*/
  96. /* under construction !*/
  97. /* under construction !*/
  98. /* under construction !*/
  99. /* under construction !*/
  100. /* under construction !*/
  101. /* under construction !*/
  102. /* under construction !*/
  103. /* under construction !*/
  104. /* under construction !*/
  105. /* under construction !*/
  106. /* under construction !*/
  107. /* under construction !*/
  108. /* under construction !*/
  109. /* under construction !*/
  110. /* under construction !*/
  111. /* under construction !*/
  112. /* under construction !*/
  113. /* under construction !*/
  114. /* under construction !*/
  115. /* under construction !*/
  116. /* under construction !*/
  117. /* under construction !*/
  118. /* under construction !*/
  119. /* under construction !*/
  120. /* under construction !*/
  121. /* under construction !*/
  122. /* under construction !*/
  123. /* under construction !*/
  124. /* under construction !*/
  125. /* under construction !*/
  126. /* under construction !*/
  127. /* under construction !*/
  128. /* under construction !*/
  129. /* under construction !*/
  130. /* under construction !*/
  131. /* under construction !*/
  132. /* under construction !*/
  133. /* under construction !*/
  134. /* under construction !*/
  135. /* under construction !*/
  136. /* under construction !*/
  137. /* under construction !*/
  138. /* under construction !*/
  139. /* under construction !*/
  140. /* under construction !*/
  141. /* under construction !*/
  142. /* under construction !*/
  143. /* under construction !*/
  144. /* under construction !*/
  145. /* under construction !*/
  146. /* under construction !*/
  147. /* under construction !*/
  148. /* under construction !*/
  149. /* under construction !*/
  150. /* under construction !*/
  151. /* under construction !*/
  152. /* under construction !*/
  153. /* under construction !*/
  154. /* under construction !*/
  155. /* under construction !*/
  156. /* under construction !*/
  157. /* under construction !*/
  158. /* under construction !*/
  159. /* under construction !*/
  160. /* under construction !*/
  161. /* under construction !*/
  162. /* under construction !*/
  163. /* under construction !*/
  164. /* under construction !*/
  165. /* under construction !*/
  166. /* under construction !*/
  167. /* under construction !*/
  168. /* under construction !*/
  169. /* under construction !*/
  170. /* under construction !*/
  171. /* under construction !*/
  172. /* under construction !*/
  173. /* under construction !*/
  174. /* under construction !*/
  175. /* under construction !*/
  176. /* under construction !*/
  177. /* under construction !*/
  178. /* under construction !*/
  179. /* under construction !*/
  180. /* under construction !*/
  181. /* under construction !*/
  182. /* under construction !*/
  183. /* under construction !*/
  184. /* under construction !*/
  185. /* under construction !*/
  186. /* under construction !*/
  187. /* under construction !*/
  188. /* under construction !*/
  189. /* under construction !*/
  190. /* under construction !*/
  191. /* under construction !*/
  192. /* under construction !*/
  193. /* under construction !*/
  194. /* under construction !*/
  195. /* under construction !*/
  196. /* under construction !*/
  197. /* under construction !*/
  198. /* under construction !*/
  199. /* under construction !*/
  200. /* under construction !*/
  201. /* under construction !*/
  202. /* under construction !*/
  203. /* under construction !*/
  204. /* under construction !*/
  205. /* under construction !*/
  206. /* under construction !*/
  207. /* under construction !*/
  208. /* under construction !*/
  209. /* under construction !*/
  210. /* under construction !*/
  211. /* under construction !*/
  212. /* under construction !*/
  213. /* under construction !*/
  214. /* under construction !*/
  215. /* under construction !*/
  216. /* under construction !*/
  217. /* under construction !*/
  218. /* under construction !*/
  219. /* under construction !*/
  220. /* under construction !*/
  221. /* under construction !*/
  222. /* under construction !*/
  223. /* under construction !*/
  224. /* under construction !*/
  225. /* under construction !*/
  226. /* under construction !*/
  227. /* under construction !*/
  228. /* under construction !*/
  229. /* under construction !*/
  230. /* under construction !*/
  231. /* under construction !*/
  232. /* under construction !*/
  233. /* under construction !*/
  234. /* under construction !*/
  235. /* under construction !*/
  236. /* under construction !*/
  237. /* under construction !*/
  238. /* under construction !*/
  239. /* under construction !*/
  240. /* under construction !*/
  241. /* under construction !*/
  242. /* under construction !*/
  243. /* under construction !*/
  244. /* under construction !*/
  245. /* under construction !*/
  246. /* under construction !*/
  247. /* under construction !*/
  248. /* under construction !*/
  249. /* under construction !*/
  250. /* under construction !*/
  251. /* under construction !*/
  252. /* under construction !*/
  253. /* under construction !*/
  254. /* under construction !*/
  255. /* under construction !*/
  256. /* under construction !*/
  257. /* under construction !*/
  258. /* under construction !*/
  259. /* under construction !*/
  260. /* under construction !*/
  261. /* under construction !*/
  262. /* under construction !*/
  263. /* under construction !*/
  264. /* under construction !*/
  265. /* under construction !*/
  266. /* under construction !*/
  267. /* under construction !*/
  268. /* under construction !*/
  269. /* under construction !*/
  270. /* under construction !*/
  271. /* under construction !*/
  272. /* under construction !*/
  273. /* under construction !*/
  274. /* under construction !*/
  275. /* under construction !*/
  276. /* under construction !*/
  277. /* under construction !*/
  278. /* under construction !*/
  279. /* under construction !*/
  280. /* under construction !*/
  281. /* under construction !*/
  282. /* under construction !*/
  283. /* under construction !*/
  284. /* under construction !*/
  285. /* under construction !*/
  286. /* under construction !*/
  287. /* under construction !*/
  288. /* under construction !*/
  289. /* under construction !*/
  290. /* under construction !*/
  291. /* under construction !*/
  292. /* under construction !*/
  293. /* under construction !*/
  294. /* under construction !*/
  295. /* under construction !*/
  296. /* under construction !*/
  297. /* under construction !*/
  298. /* under construction !*/
  299. /* under construction !*/
  300. /* under construction !*/
  301. /* under construction !*/
  302. /* under construction !*/
  303. /* under construction !*/
  304. /* under construction !*/
  305. /* under construction !*/
  306. /* under construction !*/
  307. /* under construction !*/
  308. /* under construction !*/
  309. /* under construction !*/
  310. /* under construction !*/
  311. /* under construction !*/
  312. /* under construction !*/
  313. /* under construction !*/
  314. /* under construction !*/
  315. /* under construction !*/
  316. /* under construction !*/
  317. /* under construction !*/
  318. /* under construction !*/
  319. /* under construction !*/
  320. /* under construction !*/
  321. /* under construction !*/
  322. /* under construction !*/
  323. /* under construction !*/
  324. /* under construction !*/
  325. /* under construction !*/
  326. /* under construction !*/
  327. /* under construction !*/
  328. /* under construction !*/
  329. /* under construction !*/
  330. /* under construction !*/
  331. /* under construction !*/
  332. /* under construction !*/
  333. /* under construction !*/
  334. /* under construction !*/
  335. /* under construction !*/
  336. /* under construction !*/
  337. /* under construction !*/
  338. /* under construction !*/
  339. /* under construction !*/
  340. /* under construction !*/
  341. /* under construction !*/
  342. /* under construction !*/
  343. /* under construction !*/
  344. /* under construction !*/
  345. /* under construction !*/
  346. /* under construction !*/
  347. /* under construction !*/
  348. /* under construction !*/
  349. /* under construction !*/
  350. /* under construction !*/
  351. /* under construction !*/
  352. /* under construction !*/
  353. /* under construction !*/
  354. /* under construction !*/
  355. /* under construction !*/
  356. /* under construction !*/
  357. /* under construction !*/
  358. /* under construction !*/
  359. /* under construction !*/
  360. /* under construction !*/
  361. /* under construction !*/
  362. /* under construction !*/
  363. /* under construction !*/
  364. /* under construction !*/
  365. /* under construction !*/
  366. /* under construction !*/
  367. /* under construction !*/
  368. /* under construction !*/
  369. /* under construction !*/
  370. /* under construction !*/
  371. /* under construction !*/
  372. /* under construction !*/
  373. /* under construction !*/
  374. /* under construction !*/
  375. /* under construction !*/
  376. /* under construction !*/
  377. /* under construction !*/
  378. /* under construction !*/
  379. /* under construction !*/
  380. /* under construction !*/
  381. /* under construction !*/
  382. /* under construction !*/
  383. /* under construction !*/
  384. /* under construction !*/
  385. /* under construction !*/
  386. /* under construction !*/
  387. /* under construction !*/
  388. /* under construction !*/
  389. /* under construction !*/
  390. /* under construction !*/
  391. /* under construction !*/
  392. /* under construction !*/
  393. /* under construction !*/
  394. /* under construction !*/
  395. /* under construction !*/
  396. /* under construction !*/
  397. /* under construction !*/
  398. /* under construction !*/
  399. /* under construction !*/
  400. /* under construction !*/
  401. /* under construction !*/
  402. /* under construction !*/
  403. /* under construction !*/
  404. #endif /* 0 */ 
  405. /* ----------------------------------------------------------------------------
  406.    Function   :  void LCDrINIT(void)
  407.    Description:  This function Initilizes LCD parameters.
  408.    Input      :  NULL
  409.    Output     :  None
  410.    ------------------------------------------------------------------------------- */
  411. /*****************************************************************************
  412.  * FUNCTION
  413.  *  LCDrINIT
  414.  * DESCRIPTION
  415.  *  
  416.  * PARAMETERS
  417.  *  void
  418.  * RETURNS
  419.  *  void
  420.  *****************************************************************************/
  421. void LCDrINIT(void)
  422. {
  423.     /*----------------------------------------------------------------*/
  424.     /* Local Variables                                                */
  425.     /*----------------------------------------------------------------*/
  426.     /*----------------------------------------------------------------*/
  427.     /* Code Body                                                      */
  428.     /*----------------------------------------------------------------*/
  429.     *(volatile uint16*)0x8001000c = 0x6106; /* This is needed by PLUTO Engineers to resolve timing issues */
  430.     // If we use Preprosser -DUT_ON_TARGET in build enviornment, we have
  431.     // execute above instruction. 
  432.     // IMPORTANT : For other cases this instruction is not needed.                
  433.     LCDrDISCONTROL();                       /* display settings */
  434.     LCDrSETCOMSCAN();                       /* scanning flow */
  435.     LCDrCTRLOSCON();                        /* oscillator ON */
  436.     LCDrGENSLPOUT();                        /* Sleep Out */
  437.     LCDrVOLTLEVEL(0x28);                    /* Voltage Set     2a to 16 */
  438.     LCDrTEMPERATUREGRAD();                  /* Set Temperature Gradiants */
  439.     LCDrPOWERCNTL(0x0f);                    /* ON all refrence voltages to LCD */
  440.     LCDrSetDATANORCTL();                    /* Column direction, RGB pattern */
  441.     LCDrINVERSE()                           /* ? Inverse LCD RAM Contents before displaying */
  442.         LCDrblockClear(0, 0, LCDrWIDTH - 1, LCDrHEIGHT - 1);    /* Clear LCD RAM fill 000H */
  443.     LCDrDISPON();                           /* LCD Display ON */
  444. }
  445. /* ----------------------------------------------------------------------------
  446.    Function   :  void LCDrDISCONTROL(void)
  447.    Description:  This function Initilizes LCD Display parameters.
  448.    Input      :  NULL
  449.    Output     :  None
  450.    ------------------------------------------------------------------------------- */
  451. /*****************************************************************************
  452.  * FUNCTION
  453.  *  LCDrDISCONTROL
  454.  * DESCRIPTION
  455.  *  
  456.  * PARAMETERS
  457.  *  void
  458.  * RETURNS
  459.  *  void
  460.  *****************************************************************************/
  461. void LCDrDISCONTROL(void)
  462. {
  463.     /*----------------------------------------------------------------*/
  464.     /* Local Variables                                                */
  465.     /*----------------------------------------------------------------*/
  466.     /*----------------------------------------------------------------*/
  467.     /* Code Body                                                      */
  468.     /*----------------------------------------------------------------*/
  469.     LCDrCtrlWrite(LCDrDISCTL);
  470.     LCDrDataWrite(0xF); /* ONLY FLICKER NO MOTION // Clock Dividing 2 div, 8 drive pattern */
  471.     //      LCDrDataWrite(0xE);                             // ONLY FLICKER NO MOTION
  472.     //      LCDrDataWrite(0xA);                             // VERY BAD
  473.     //      LCDrDataWrite(0xD);                             // SAME AS E F
  474.     //      LCDrDataWrite(0x3);                             // fllicker and motion
  475.     //      LCDrDataWrite(0x0);                             // fllicker and motion
  476.     LCDrDataWrite(LCDrDISCTL_160DUTY);  /* Duty / module on block basis 160/4-1 = 39 */
  477.     LCDrDataWrite(LCDrDISCTL_11H);      /* 10 lines to be inversely highlited */
  478.     /* LCDrDataWrite(0xf);                          // flickering increases */
  479. }
  480. /* ----------------------------------------------------------------------------
  481.    Function   :  void LCDrSETCOMSCAN(void)
  482.    Description:  This function Initilizes LCD Display Scan parameter.
  483.    Input      :  NULL
  484.    Output     :  None
  485.    ------------------------------------------------------------------------------- */
  486. /*****************************************************************************
  487.  * FUNCTION
  488.  *  LCDrSETCOMSCAN
  489.  * DESCRIPTION
  490.  *  
  491.  * PARAMETERS
  492.  *  void
  493.  * RETURNS
  494.  *  void
  495.  *****************************************************************************/
  496. void LCDrSETCOMSCAN(void)
  497. {
  498.     /*----------------------------------------------------------------*/
  499.     /* Local Variables                                                */
  500.     /*----------------------------------------------------------------*/
  501.     /*----------------------------------------------------------------*/
  502.     /* Code Body                                                      */
  503.     /*----------------------------------------------------------------*/
  504.     LCDrCtrlWrite(LCDrCOMSCN);
  505.     LCDrDataWrite(0x2); /* scan direction 1 -> 80, 81 -> 160 */
  506. }
  507. /* ----------------------------------------------------------------------------
  508.    Function   :  void LCDrVOLTLEVEL(uint8 voltage)
  509.    Description:  This function Initilizes LCD voltage parameters.
  510.    Input      :  NULL
  511.    Output     :  None
  512.    ------------------------------------------------------------------------------- */
  513. /*****************************************************************************
  514.  * FUNCTION
  515.  *  LCDrVOLTLEVEL
  516.  * DESCRIPTION
  517.  *  
  518.  * PARAMETERS
  519.  *  voltage     [IN]        
  520.  * RETURNS
  521.  *  void
  522.  *****************************************************************************/
  523. void LCDrVOLTLEVEL(uint8 voltage)
  524. {
  525.     /*----------------------------------------------------------------*/
  526.     /* Local Variables                                                */
  527.     /*----------------------------------------------------------------*/
  528.     /*----------------------------------------------------------------*/
  529.     /* Code Body                                                      */
  530.     /*----------------------------------------------------------------*/
  531.     LCDrCtrlWrite(LCDrVOLCTR);  /* 0x2a-0x16 */
  532.     LCDrDataWrite(voltage);     /* set voltage */
  533.     LCDrDataWrite(0x02);        /* resistance ratio */
  534.     //      LCDrDataWrite(0x30);
  535.     //      LCDrDataWrite(0x7);
  536. }
  537. /* ----------------------------------------------------------------------------
  538.    Function   :  void LCDrTEMPERATUREGRAD(void)
  539.    Description:  This function Initilizes LCD temperature parameters.
  540.    Input      :  NULL
  541.    Output     :  None
  542.    ------------------------------------------------------------------------------- */
  543. /*****************************************************************************
  544.  * FUNCTION
  545.  *  LCDrTEMPERATUREGRAD
  546.  * DESCRIPTION
  547.  *  
  548.  * PARAMETERS
  549.  *  void
  550.  * RETURNS
  551.  *  void
  552.  *****************************************************************************/
  553. void LCDrTEMPERATUREGRAD(void)
  554. {
  555.     /*----------------------------------------------------------------*/
  556.     /* Local Variables                                                */
  557.     /*----------------------------------------------------------------*/
  558.     /*----------------------------------------------------------------*/
  559.     /* Code Body                                                      */
  560.     /*----------------------------------------------------------------*/
  561.     LCDrCtrlWrite(LCDrTMPGRD);  /* temperature Gradient */
  562.     LCDrDataWrite(0x00);
  563.     LCDrDataWrite(0x32);
  564.     LCDrDataWrite(0x10);
  565.     LCDrDataWrite(0xfe);
  566.     LCDrDataWrite(0xdc);
  567. }
  568. /* ----------------------------------------------------------------------------
  569.    Function   :  void LCDrPOWERCNTL(uint8 data)
  570.    Description:  This function controls LCD power parameters.
  571.    Input      :  0xF -> All power ON
  572.    0x0 -> All refrence voltage OFF
  573.    Other depending upon requirement 
  574.    Output     :  None
  575.    ------------------------------------------------------------------------------- */
  576. /*****************************************************************************
  577.  * FUNCTION
  578.  *  LCDrPOWERCNTL
  579.  * DESCRIPTION
  580.  *  
  581.  * PARAMETERS
  582.  *  data        [IN]        
  583.  * RETURNS
  584.  *  void
  585.  *****************************************************************************/
  586. void LCDrPOWERCNTL(uint8 data)
  587. {
  588.     /*----------------------------------------------------------------*/
  589.     /* Local Variables                                                */
  590.     /*----------------------------------------------------------------*/
  591.     /*----------------------------------------------------------------*/
  592.     /* Code Body                                                      */
  593.     /*----------------------------------------------------------------*/
  594.     LCDrCtrlWrite(LCDrPWRCTR);  /* Power Control */
  595.     LCDrDataWrite(data);        /* All Ckts ON -> F, OFF -> 00 */
  596. }
  597. /* ----------------------------------------------------------------------------
  598.    Function   :  void LCDrSetDATANORCTL(void)
  599.    Description:  This function Initilizes LCD Display Data parameters.
  600.    Input      :  NULL
  601.    Output     :  None
  602.    ------------------------------------------------------------------------------- */
  603. /*****************************************************************************
  604.  * FUNCTION
  605.  *  LCDrSetDATANORCTL
  606.  * DESCRIPTION
  607.  *  
  608.  * PARAMETERS
  609.  *  void
  610.  * RETURNS
  611.  *  void
  612.  *****************************************************************************/
  613. void LCDrSetDATANORCTL(void)
  614. {
  615.     /*----------------------------------------------------------------*/
  616.     /* Local Variables                                                */
  617.     /*----------------------------------------------------------------*/
  618.     /*----------------------------------------------------------------*/
  619.     /* Code Body                                                      */
  620.     /*----------------------------------------------------------------*/
  621.     LCDrCtrlWrite(LCDrDATCTL);
  622.     LCDrDataWrite(0x2); /* Column direction, Normal dis */
  623.     LCDrDataWrite(0x1); /* RGB Arrangement */
  624.     LCDrDataWrite(0x4); /* 16bit mode for RGB type B */
  625. }
  626. /* ----------------------------------------------------------------------------
  627.    Function   :  void LCDrClearAll(void)
  628.    Description:  This function clears LCD RAM buffer to 00H.
  629.    Input      :  NULL
  630.    Output     :  None
  631.    ------------------------------------------------------------------------------- */
  632. /*****************************************************************************
  633.  * FUNCTION
  634.  *  LCDrClearAll
  635.  * DESCRIPTION
  636.  *  
  637.  * PARAMETERS
  638.  *  void
  639.  * RETURNS
  640.  *  void
  641.  *****************************************************************************/
  642. void LCDrClearAll(void)
  643. {
  644.     /*----------------------------------------------------------------*/
  645.     /* Local Variables                                                */
  646.     /*----------------------------------------------------------------*/
  647.     /*----------------------------------------------------------------*/
  648.     /* Code Body                                                      */
  649.     /*----------------------------------------------------------------*/
  650.     LCDrblockClear(0, 0, LCDrWIDTH - 1, LCDrHEIGHT - 1);
  651. }
  652. /* ----------------------------------------------------------------------------
  653.    Function   :  void LCDrblockClear(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
  654.    Description:  This function writes 0x00H in LCD RAM buffer from x1, y1 to x2, y2 location.
  655.    Input      :  x1, x2 (column addres)
  656.    y1, y2 (page address)
  657.    Output     :  None
  658.    ------------------------------------------------------------------------------- */
  659. /*****************************************************************************
  660.  * FUNCTION
  661.  *  LCDrblockClear
  662.  * DESCRIPTION
  663.  *  
  664.  * PARAMETERS
  665.  *  x1      [IN]        
  666.  *  y1      [IN]        
  667.  *  x2      [IN]        
  668.  *  y2      [IN]        
  669.  * RETURNS
  670.  *  void
  671.  *****************************************************************************/
  672. void LCDrblockClear(uint16 x1, uint16 y1, uint16 x2, uint16 y2)
  673. {
  674.     /*----------------------------------------------------------------*/
  675.     /* Local Variables                                                */
  676.     /*----------------------------------------------------------------*/
  677.     uint16 LCDrx;
  678.     uint16 LCDry;
  679.     /*----------------------------------------------------------------*/
  680.     /* Code Body                                                      */
  681.     /*----------------------------------------------------------------*/
  682.     LCDrSetPageAddr((uint8) y1, (uint8) y2);
  683.     LCDrSetColAddr((uint8) x1, (uint8) x2);
  684.     LCDrWrStart();
  685.     for (LCDry = y1; LCDry <= y2; LCDry++)      /* Y Coordinate Page Addresses */
  686.         for (LCDrx = x1; LCDrx <= x2; LCDrx++)  /* X Coordinate Column Addresses */
  687.         {
  688.             LCDrRAMWrite(0x0F00);
  689.         }
  690. }
  691. /* ----------------------------------------------------------------------------
  692.    Function   :  void LCDrDrawRectangle(uint16 x1,uint16 y1,uint16 x2,uint16 y2, uint16 data)
  693.    Description:  This function draw rectangle on the LCD from location x1, y1 to x2, y2 with data.
  694.    Input      :  x1, x2
  695.    y1, y2
  696.    data  
  697.    Output     :  None
  698.    ------------------------------------------------------------------------------- */
  699. /*****************************************************************************
  700.  * FUNCTION
  701.  *  LCDrDrawRectangle
  702.  * DESCRIPTION
  703.  *  
  704.  * PARAMETERS
  705.  *  x1          [IN]        
  706.  *  y1          [IN]        
  707.  *  x2          [IN]        
  708.  *  y2          [IN]        
  709.  *  data        [IN]        
  710.  * RETURNS
  711.  *  void
  712.  *****************************************************************************/
  713. void LCDrDrawRectangle(uint16 x1, uint16 y1, uint16 x2, uint16 y2, uint16 data)
  714. {
  715.     /*----------------------------------------------------------------*/
  716.     /* Local Variables                                                */
  717.     /*----------------------------------------------------------------*/
  718.     uint16 LCDrx;
  719.     uint16 LCDry;
  720.     /*----------------------------------------------------------------*/
  721.     /* Code Body                                                      */
  722.     /*----------------------------------------------------------------*/
  723.     LCDrSetPageAddr((uint8) y1, (uint8) y2);    /* Page Address */
  724.     LCDrSetColAddr((uint8) x1, (uint8) x2);     /* Column Address */
  725.     LCDrWrStart();                              /* Write Command */
  726.     for (LCDry = y1; LCDry <= y2; LCDry++)      /* Filling the LCD RAM */
  727.         for (LCDrx = x1; LCDrx <= x2; LCDrx++)
  728.         {
  729.             LCDrRAMWrite(data);
  730.         }
  731. }
  732. /* ----------------------------------------------------------------------------
  733.    Function   :  void LCDrBlockWrite(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
  734.    Description:  This function writes in LCD RAM from location x1, y1 to x2, y2 of shadow buffer.
  735.    Input      :  x1, x2
  736.    y1, y2
  737.    Output     :  None
  738.    ------------------------------------------------------------------------------- */
  739. /*****************************************************************************
  740.  * FUNCTION
  741.  *  LCDrBlockWrite
  742.  * DESCRIPTION
  743.  *  
  744.  * PARAMETERS
  745.  *  x1      [IN]        
  746.  *  y1      [IN]        
  747.  *  x2      [IN]        
  748.  *  y2      [IN]        
  749.  * RETURNS
  750.  *  void
  751.  *****************************************************************************/
  752. void LCDrBlockWrite(uint16 x1, uint16 y1, uint16 x2, uint16 y2)
  753. {
  754.     /*----------------------------------------------------------------*/
  755.     /* Local Variables                                                */
  756.     /*----------------------------------------------------------------*/
  757.     uint16 LCDrx;
  758.     uint16 LCDry;
  759.     /*----------------------------------------------------------------*/
  760.     /* Code Body                                                      */
  761.     /*----------------------------------------------------------------*/
  762.     LCDrSetPageAddr((uint8) y1, (uint8) y2);    /* Page Address */
  763.     LCDrSetColAddr((uint8) x1, (uint8) x2);     /* Column Address */
  764.     LCDrWrStart();                              /* Write Command */
  765.     for (LCDry = y1; LCDry <= y2; LCDry++)      /* Filling the LCD RAM */
  766.         for (LCDrx = x1; LCDrx <= x2; LCDrx++)
  767.         {
  768.             LCDrRAMWrite(gShadowBuffer[LCDry][LCDrx]);
  769.             /* LCDrDelay(); */
  770.         }
  771. }
  772. /* ----------------------------------------------------------------------------
  773.    Function   :  void LCDrblockRead(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
  774.    Description:  This function reads data from LCD RAM from location x1, y1 to x2, y2 in shadow buffer.
  775.    Input      :  x1, x2
  776.    y1, y2
  777.    Output     :  None
  778.    ------------------------------------------------------------------------------- */
  779. /*****************************************************************************
  780.  * FUNCTION
  781.  *  LCDrblockRead
  782.  * DESCRIPTION
  783.  *  
  784.  * PARAMETERS
  785.  *  x1      [IN]        
  786.  *  y1      [IN]        
  787.  *  x2      [IN]        
  788.  *  y2      [IN]        
  789.  * RETURNS
  790.  *  void
  791.  *****************************************************************************/
  792. void LCDrblockRead(uint16 x1, uint16 y1, uint16 x2, uint16 y2)
  793. {
  794.     /*----------------------------------------------------------------*/
  795.     /* Local Variables                                                */
  796.     /*----------------------------------------------------------------*/
  797.     uint16 LCDrx;
  798.     uint16 LCDry;
  799.     /*----------------------------------------------------------------*/
  800.     /* Code Body                                                      */
  801.     /*----------------------------------------------------------------*/
  802.     LCDrSetPageAddr((uint8) y1, (uint8) y2);
  803.     LCDrSetColAddr((uint8) x1, (uint8) x2);
  804.     LCDrRdStart();
  805.     for (LCDry = y1; LCDry <= y2; LCDry++)
  806.         for (LCDrx = x1; LCDrx <= x2; LCDrx++)
  807.         {
  808.             /* gShadowBuffer[LCDrx][LCDry]=LCDrbg; */
  809.             LCDrRAMRead(gShadowBuffer[LCDry][LCDrx]);
  810.         }
  811. }
  812. /* ----------------------------------------------------------------------------
  813.    Function   :  void LCDrSetPageAddr(uint8 startPage, uint8 endPage)
  814.    Description:  This function sets start and end page address for LCD RAM read or write.
  815.    Input      :  start
  816.    stop page address
  817.    Output     :  None
  818.    ------------------------------------------------------------------------------- */
  819. /*****************************************************************************
  820.  * FUNCTION
  821.  *  LCDrSetPageAddr
  822.  * DESCRIPTION
  823.  *  
  824.  * PARAMETERS
  825.  *  startPage       [IN]        
  826.  *  endPage         [IN]        
  827.  * RETURNS
  828.  *  void
  829.  *****************************************************************************/
  830. void LCDrSetPageAddr(uint8 startPage, uint8 endPage)
  831. {
  832.     /*----------------------------------------------------------------*/
  833.     /* Local Variables                                                */
  834.     /*----------------------------------------------------------------*/
  835.     /*----------------------------------------------------------------*/
  836.     /* Code Body                                                      */
  837.     /*----------------------------------------------------------------*/
  838.     LCDrCtrlWrite(LCDrPASET);
  839.     LCDrDataWrite(startPage);
  840.     LCDrDataWrite(endPage);
  841. }
  842. /* ----------------------------------------------------------------------------
  843.    Function   :  void LCDrSetColAddr(uint8 startColumn, uint8 endColumn)
  844.    Description:  This function sets start and end column address for LCD RAM read or write.
  845.    Input      :  start
  846.    stop column address
  847.    Output     :  None
  848.    ------------------------------------------------------------------------------- */
  849. /*****************************************************************************
  850.  * FUNCTION
  851.  *  LCDrSetColAddr
  852.  * DESCRIPTION
  853.  *  
  854.  * PARAMETERS
  855.  *  startColumn     [IN]        
  856.  *  endColumn       [IN]        
  857.  * RETURNS
  858.  *  void
  859.  *****************************************************************************/
  860. void LCDrSetColAddr(uint8 startColumn, uint8 endColumn)
  861. {
  862.     /*----------------------------------------------------------------*/
  863.     /* Local Variables                                                */
  864.     /*----------------------------------------------------------------*/
  865.     /*----------------------------------------------------------------*/
  866.     /* Code Body                                                      */
  867.     /*----------------------------------------------------------------*/
  868.     LCDrCtrlWrite(LCDrCASET);
  869.     LCDrDataWrite(startColumn);
  870.     LCDrDataWrite(endColumn);
  871. }
  872. /* ----------------------------------------------------------------------------
  873.    Function   :  void LCDrDISPartial(uint8 startBlock, uint8 endBlock)
  874.    Description:  This function display the partial LCD RAM content specified by start and end block address.
  875.    Input      :  start and end block address
  876.    Output     :  None
  877.    ------------------------------------------------------------------------------- */
  878. /*****************************************************************************
  879.  * FUNCTION
  880.  *  LCDrDISPartial
  881.  * DESCRIPTION
  882.  *  
  883.  * PARAMETERS
  884.  *  startBlock      [IN]        
  885.  *  endBlock        [IN]        
  886.  * RETURNS
  887.  *  void
  888.  *****************************************************************************/
  889. void LCDrDISPartial(uint8 startBlock, uint8 endBlock)
  890. {
  891.     /*----------------------------------------------------------------*/
  892.     /* Local Variables                                                */
  893.     /*----------------------------------------------------------------*/
  894.     /*----------------------------------------------------------------*/
  895.     /* Code Body                                                      */
  896.     /*----------------------------------------------------------------*/
  897.     LCDrCtrlWrite(LCDrPTLIN);
  898.     LCDrDataWrite(startBlock);
  899.     LCDrDataWrite(endBlock);
  900. }
  901. /* ----------------------------------------------------------------------------
  902.    Function   :  void LCDrDISPartialExit(void)
  903.    Description:  This function is called to exit from the partial mode.
  904.    Input      :  NULL
  905.    Output     :  None
  906.    ------------------------------------------------------------------------------- */
  907. /*****************************************************************************
  908.  * FUNCTION
  909.  *  LCDrDISPartialExit
  910.  * DESCRIPTION
  911.  *  
  912.  * PARAMETERS
  913.  *  void
  914.  * RETURNS
  915.  *  void
  916.  *****************************************************************************/
  917. void LCDrDISPartialExit(void)
  918. {
  919.     /*----------------------------------------------------------------*/
  920.     /* Local Variables                                                */
  921.     /*----------------------------------------------------------------*/
  922.     /*----------------------------------------------------------------*/
  923.     /* Code Body                                                      */
  924.     /*----------------------------------------------------------------*/
  925.     LCDrCtrlWrite(LCDrPTLOUT);
  926. }
  927. /* ----------------------------------------------------------------------------
  928.    Function   :  void LCDrConfAREAScroll(uint8 topBlock, uint8 bottomBlock, uint8 noOfBlocks, uint8 areaMode)
  929.    Description:  This function is called for scroll option.
  930.    Input      :  top block      ->    upper fixed area   
  931.    bottom block   -> lower fixed area
  932.    no of blocks   ->    number of blocks to be moved
  933.    areaMode    -> mode of moving LCDrCENTERSCROLL, LCDrTOPSCROLL 
  934.    LCDrBOTTOMSCROLL, LCDrALLSCROLL
  935.    Output     :  None
  936.    --------------------------------------------------------------------------------- */
  937. /*****************************************************************************
  938.  * FUNCTION
  939.  *  LCDrConfAREAScroll
  940.  * DESCRIPTION
  941.  *  
  942.  * PARAMETERS
  943.  *  topBlock        [IN]        
  944.  *  bottomBlock     [IN]        
  945.  *  noOfBlocks      [IN]        
  946.  *  areaMode        [IN]        
  947.  * RETURNS
  948.  *  void
  949.  *****************************************************************************/
  950. void LCDrConfAREAScroll(uint8 topBlock, uint8 bottomBlock, uint8 noOfBlocks, uint8 areaMode)
  951. {
  952.     /*----------------------------------------------------------------*/
  953.     /* Local Variables                                                */
  954.     /*----------------------------------------------------------------*/
  955.     /*----------------------------------------------------------------*/
  956.     /* Code Body                                                      */
  957.     /*----------------------------------------------------------------*/
  958.     LCDrCtrlWrite(LCDrASCSET);
  959.     LCDrDataWrite(topBlock);
  960.     LCDrDataWrite(bottomBlock);
  961.     LCDrDataWrite(noOfBlocks);
  962.     LCDrDataWrite(areaMode);
  963. }
  964. /* ----------------------------------------------------------------------------
  965.    Function   :  void LCDrScrollStart(uint8 startBlock)
  966.    Description:  This function is used to start scrolling.
  967.    Input      :  start block address
  968.    Output     :  None
  969.    ------------------------------------------------------------------------------- */
  970. /*****************************************************************************
  971.  * FUNCTION
  972.  *  LCDrScrollStart
  973.  * DESCRIPTION
  974.  *  
  975.  * PARAMETERS
  976.  *  startBlock      [IN]        
  977.  * RETURNS
  978.  *  void
  979.  *****************************************************************************/
  980. void LCDrScrollStart(uint8 startBlock)
  981. {
  982.     /*----------------------------------------------------------------*/
  983.     /* Local Variables                                                */
  984.     /*----------------------------------------------------------------*/
  985.     /*----------------------------------------------------------------*/
  986.     /* Code Body                                                      */
  987.     /*----------------------------------------------------------------*/
  988.     LCDrCtrlWrite(LCDrSCSTART);
  989.     LCDrDataWrite(startBlock);
  990. }
  991. /* ----------------------------------------------------------------------------
  992.    Function   :  void LCDrSize(uint16 *outLCDWidth,uint16 *outLCDHeight)
  993.    Description:  This function return LCD height and width.
  994.    Input      :  NULL
  995.    Output     :  None
  996.    ------------------------------------------------------------------------------- */
  997. /*****************************************************************************
  998.  * FUNCTION
  999.  *  LCDrSize
  1000.  * DESCRIPTION
  1001.  *  
  1002.  * PARAMETERS
  1003.  *  outLCDWidth         [?]     
  1004.  *  outLCDHeight        [?]     
  1005.  * RETURNS
  1006.  *  void
  1007.  *****************************************************************************/
  1008. void LCDrSize(uint16 *outLCDWidth, uint16 *outLCDHeight)
  1009. {
  1010.     /*----------------------------------------------------------------*/
  1011.     /* Local Variables                                                */
  1012.     /*----------------------------------------------------------------*/
  1013.     /*----------------------------------------------------------------*/
  1014.     /* Code Body                                                      */
  1015.     /*----------------------------------------------------------------*/
  1016.     *outLCDWidth = LCDrWIDTH;
  1017.     *outLCDHeight = LCDrHEIGHT;
  1018. }
  1019. /* ----------------------------------------------------------------------------
  1020.    Function   :  void LCDrTest(void)
  1021.    Description:  This function test different modes of LCD.
  1022.    Input      :  NULL
  1023.    Output     :  None
  1024.    ------------------------------------------------------------------------------- */
  1025. /*****************************************************************************
  1026.  * FUNCTION
  1027.  *  LCDrTest
  1028.  * DESCRIPTION
  1029.  *  
  1030.  * PARAMETERS
  1031.  *  void
  1032.  * RETURNS
  1033.  *  void
  1034.  *****************************************************************************/
  1035. void LCDrTest(void)
  1036. {
  1037.     /*----------------------------------------------------------------*/
  1038.     /* Local Variables                                                */
  1039.     /*----------------------------------------------------------------*/
  1040.     /*----------------------------------------------------------------*/
  1041.     /* Code Body                                                      */
  1042.     /*----------------------------------------------------------------*/
  1043.     LCDrBlockWrite(0, 0, LCDrWIDTH - 1, LCDrHEIGHT - 1);
  1044. #if 0
  1045. /* under construction !*/
  1046. /* under construction !*/
  1047. /* under construction !*/
  1048. #endif /* 0 */ 
  1049.     /* LCDrCTRLOSCOFF(); */
  1050.     //      LCDrDISPOFF();
  1051.     //  LCDrPOWERCNTL(0x00);
  1052.     //      LCDrGENSLPIN();
  1053.     /* 
  1054.      * LCDrCtrlWrite(LCDrASCSET);
  1055.      * LCDrDataWrite(10);
  1056.      * LCDrDataWrite(10);
  1057.      * LCDrDataWrite(20);
  1058.      * LCDrDataWrite(01);
  1059.      * 
  1060.      * LCDrCtrlWrite(LCDrSCSTART);
  1061.      * LCDrDataWrite(10);
  1062.      */
  1063.     /*
  1064.      * LCDrDrawRectangle(0,5,LCDrWIDTH-1,25,   0x0F00);
  1065.      * 
  1066.      * LCDrDrawRectangle(0,30,LCDrWIDTH-1,50,  0x00F0);
  1067.      * 
  1068.      * LCDrDrawRectangle(0,55,LCDrWIDTH-1,75,  0x000F);
  1069.      * 
  1070.      * LCDrDrawRectangle(0,80,LCDrWIDTH-1,100, 0x0FF0);
  1071.      * 
  1072.      * LCDrDrawRectangle(0,105,LCDrWIDTH-1,125,0x00FF);
  1073.      * 
  1074.      * LCDrDrawRectangle(0,130,LCDrWIDTH-1,150,0x0F0F);
  1075.      * 
  1076.      * LCDrDrawRectangle(0,155,LCDrWIDTH-1,160,0x0FFF);
  1077.      * 
  1078.      * 
  1079.      * L1_LCDrOFF();
  1080.      * LCDrCtrlWrite(LCDrPWRCTR); // Power Control  
  1081.      * LCDrDataWrite(0x0000);     // All Ckts ON
  1082.      * 
  1083.      * LCDrCtrlWrite(LCDrPWRCTR); // Power Control  
  1084.      * LCDrDataWrite(0x0f);    // All Ckts ON
  1085.      * 
  1086.      * L1_LCDrON();
  1087.      */
  1088. }
  1089. /* amit not required */
  1090. /* ----------------------------------------------------------------------------
  1091.    Function   :  LCDrDelay
  1092.    Description:  This function gives delay.
  1093.    Input      :  NULL
  1094.    Output     :  None
  1095.    ------------------------------------------------------------------------------- */
  1096. /*****************************************************************************
  1097.  * FUNCTION
  1098.  *  LCDrDelay
  1099.  * DESCRIPTION
  1100.  *  
  1101.  * PARAMETERS
  1102.  *  void
  1103.  * RETURNS
  1104.  *  void
  1105.  *****************************************************************************/
  1106. void LCDrDelay(void)
  1107. {
  1108.     /*----------------------------------------------------------------*/
  1109.     /* Local Variables                                                */
  1110.     /*----------------------------------------------------------------*/
  1111.     uint16 delay;
  1112.     /*----------------------------------------------------------------*/
  1113.     /* Code Body                                                      */
  1114.     /*----------------------------------------------------------------*/
  1115.     for (delay = 0; delay < 300; delay++)
  1116.     {
  1117.     }
  1118. }
  1119. /* ----------------------------------------------------------------------------
  1120.    Function   :  LCDrTestColours
  1121.    Description:  This function test colours on LCD.
  1122.    Input      :  NULL
  1123.    Output     :  None
  1124.    ------------------------------------------------------------------------------- */
  1125. /*****************************************************************************
  1126.  * FUNCTION
  1127.  *  LCDrTestColours
  1128.  * DESCRIPTION
  1129.  *  
  1130.  * PARAMETERS
  1131.  *  void
  1132.  * RETURNS
  1133.  *  void
  1134.  *****************************************************************************/
  1135. void LCDrTestColours(void)
  1136. {
  1137.     /*----------------------------------------------------------------*/
  1138.     /* Local Variables                                                */
  1139.     /*----------------------------------------------------------------*/
  1140.     /*----------------------------------------------------------------*/
  1141.     /* Code Body                                                      */
  1142.     /*----------------------------------------------------------------*/
  1143.     LCDrDrawRectangle(0, 5, LCDrWIDTH - 1, 25, 0x0F00);
  1144.     LCDrDrawRectangle(0, 30, LCDrWIDTH - 1, 50, 0x00F0);
  1145.     LCDrDrawRectangle(0, 55, LCDrWIDTH - 1, 75, 0x000F);
  1146.     LCDrDrawRectangle(0, 80, LCDrWIDTH - 1, 100, 0x0FF0);
  1147.     LCDrDrawRectangle(0, 105, LCDrWIDTH - 1, 125, 0x00FF);
  1148.     LCDrDrawRectangle(0, 130, LCDrWIDTH - 1, 150, 0x0F0F);
  1149.     LCDrDrawRectangle(0, 155, LCDrWIDTH - 1, 160, 0x0FFF);
  1150. }
  1151. /* ----------------------------------------------------------------------------
  1152.    Function   :  LCDrTestWritep
  1153.    Description:  This function is for testing.
  1154.    Input      :  x1, x2, y1, y2
  1155.    Output     :  None
  1156.    ------------------------------------------------------------------------------- */
  1157. /*****************************************************************************
  1158.  * FUNCTION
  1159.  *  LCDrTestWritep
  1160.  * DESCRIPTION
  1161.  *  
  1162.  * PARAMETERS
  1163.  *  x1                      [IN]        
  1164.  *  y1                      [IN]        
  1165.  *  x2                      [IN]        
  1166.  *  y2                      [IN]        
  1167.  *  shadow_bufferTest       [IN]        
  1168.  * RETURNS
  1169.  *  void
  1170.  *****************************************************************************/
  1171. void LCDrTestWritep(uint16 x1, uint16 y1, uint16 x2, uint16 y2, uint16 shadow_bufferTest)
  1172. {
  1173.     /*----------------------------------------------------------------*/
  1174.     /* Local Variables                                                */
  1175.     /*----------------------------------------------------------------*/
  1176.     uint16 LCDrx;
  1177.     uint16 LCDry;
  1178.     /*----------------------------------------------------------------*/
  1179.     /* Code Body                                                      */
  1180.     /*----------------------------------------------------------------*/
  1181.     LCDrSetPageAddr((uint8) y1, (uint8) y2);    /* Page Address */
  1182.     LCDrSetColAddr((uint8) x1, (uint8) x2);     /* Column Address */
  1183.     LCDrWrStart();                              /* Write Command */
  1184.     for (LCDry = y1; LCDry <= y2; LCDry++)      /* Filling the LCD RAM */
  1185.         for (LCDrx = x1; LCDrx <= x2; LCDrx++)
  1186.         {
  1187.             LCDrRAMWrite(gShadowBuffer[LCDry][LCDrx]);
  1188.         }
  1189. }
  1190. #endif /* MMI_ON_WIN32 */ 
  1191. /* -----------------------------------------------------------------------------------------------------------------
  1192.    End Of File LcdDrv.c
  1193.    -------------------------------------------------------------------------------------------------------------------- */