1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi // Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi // No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi // modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi // supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi // Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi // Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi // obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi // such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi // MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi // confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi // third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi // kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi // without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi // intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi // and in conformity with any international standard. You agree to waive any
38*53ee8cc1Swenshuai.xi // claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi // incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi // In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi // consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi // revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi // You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi // even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi // request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi // parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi // services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi // MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi // ("Services").
52*53ee8cc1Swenshuai.xi // You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi // writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi // disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi // or otherwise:
58*53ee8cc1Swenshuai.xi // (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi // mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi // (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi // including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi // of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi // (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi // of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi // Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi // settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi // Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi // Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi // with the said Rules.
72*53ee8cc1Swenshuai.xi // The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi // be English.
74*53ee8cc1Swenshuai.xi // The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2006-2010 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // (��MStar Confidential Information��) by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
94*53ee8cc1Swenshuai.xi
95*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
96*53ee8cc1Swenshuai.xi ///
97*53ee8cc1Swenshuai.xi /// file drvMfc.c
98*53ee8cc1Swenshuai.xi /// @brief Mfc Driver Interface
99*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc.
100*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
101*53ee8cc1Swenshuai.xi
102*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
103*53ee8cc1Swenshuai.xi // Include files
104*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
105*53ee8cc1Swenshuai.xi #include <unistd.h>
106*53ee8cc1Swenshuai.xi #include <sys/time.h>
107*53ee8cc1Swenshuai.xi #include "mdrv_mfc.h"
108*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
109*53ee8cc1Swenshuai.xi #include "madp.h"
110*53ee8cc1Swenshuai.xi #endif
111*53ee8cc1Swenshuai.xi #include "mdrv_mfc_fb.h"
112*53ee8cc1Swenshuai.xi #include "mdrv_mfc_init.h"
113*53ee8cc1Swenshuai.xi #include "mdrv_mfc_scalerop.h"
114*53ee8cc1Swenshuai.xi #include "mdrv_mfc_scalerip.h"
115*53ee8cc1Swenshuai.xi #include "mdrv_mfc_film.h"
116*53ee8cc1Swenshuai.xi #include "mdrv_mfc_panel.h"
117*53ee8cc1Swenshuai.xi #include "mdrv_mfc_mcu.h"
118*53ee8cc1Swenshuai.xi #include "pnl_lceall.h"
119*53ee8cc1Swenshuai.xi
120*53ee8cc1Swenshuai.xi #define MFC_SPIF_SLAVE_ID 0x3
121*53ee8cc1Swenshuai.xi #define MFC_REG_DEBUG(x) //x
122*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
123*53ee8cc1Swenshuai.xi // Global Variables
124*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
125*53ee8cc1Swenshuai.xi MST_MFC_SYS_INFO_t gmfcSysInfo;
126*53ee8cc1Swenshuai.xi static U8 u8MFCInitStatus=0;
127*53ee8cc1Swenshuai.xi static U16 gPreInputVFreq=6000;
128*53ee8cc1Swenshuai.xi /*
129*53ee8cc1Swenshuai.xi DECLARE_MUTEX(MFC_MUTEX);
130*53ee8cc1Swenshuai.xi #define MUTEX_LOCK() down(&MFC_MUTEX)
131*53ee8cc1Swenshuai.xi #define MUTEX_UNLOCK() up(&MFC_MUTEX)
132*53ee8cc1Swenshuai.xi */
133*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
134*53ee8cc1Swenshuai.xi // Local Variables
135*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
136*53ee8cc1Swenshuai.xi static U8 MFC_BIN[] =
137*53ee8cc1Swenshuai.xi {
138*53ee8cc1Swenshuai.xi 0x02,0x2d,0xd9,0x02,0x33,0x99,0xe4,0xff,0x02,0x3a,0xd3,0x02,0x34,0x41,0x12,0x37,0xcf,0x22,0x32,0x02,0x35,0x80,0x12,0x36,0xa1,0x90,0x40,0xf2,0xef,0xf0,0x60,0x02,0x7f,0x01,0x22,0x02,0x2c,0x7b,0x02,0x2d,0x32,0x22,0x22,0x02,0x00,0x12,0x12,0x0d,0xbf,0xc3,0x94,0x04,0x40,0x06,0xef,0xd3,0x94,0x7c,0x40,0x19,0xef,0xc3,0x94,0x04,0x50,0x04,0x7d,0x04,0x80,0x02,0x7d,0x7c,0x12,0x05,0x34,0x90,0x40,0x07,0xe0,0xfd,0x7f,0x3c,0x02,0x01,0x3e,0xc3,0x90,0x40,0x15,0xe0,0x94,0x32,0x12,0x0e,0x67,0x50,0x41,0x12,0x0d,0xbf,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0x12,0x0e,0x83,0x40,0x06,0xed,0x24,0x80,0xfd,0x80,0x03,0x12,0x0e,0x8e,0x12,0x0f,0xa3,0x12,0x10,0xf0,0x50,0x16,0x12,0x0e,0xfd,0x50,0x11,0x7d,0x80,0x12,0x05,0x24,0x7d,0xbe,0x12,0x05,0x34,0x7d,0x01,0x7f,0x4d,0x02,0x01,0x3e,0x12,0x0d,0xbf,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0x12,0x0e,0x83,0x40,0x06,0xed,0x24,0x80,0xfd,0x80,0x03,0x12,0x0e,0x8e,0x12,0x0f,0xa3,0xc3,0xef,0x94,0x10,0xee,0x64,0x80,0x94,0x80,0x50,0x58,0x90,0x40,0x3c,0xe0,0xfe,0xa3,0xe0,0xff,0x90,0x40,0x2e,0xe0,0xfc,0xa3,0xe0,0xfd,0x9f,0xec,0x9e,0x40,0x08,0xed,0x9f,0xff,0xec,0x9e,0xfe,0x80,0x15,0x90,0x40,0x2e,0xe0,0xfe,0xa3,0xe0,0xff,0xc3,0x90,0x40,0x3d,0xe0,0x9f,0xff,0x90,0x40,0x3c,0xe0,0x9e,0xfe,0xc3,0xef,0x94,0x2c,0xee,0x94,0x01,0x50,0x1d,0x90,0x40,0x3d,0xe0,0x94,0xd0,0x90,0x40,0x3c,0xe0,0x94,0x07,0x40,0x0f,0x7d,0x80,0x7f,0x3c,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x40,0x7f,0x3d,0x80,0x12,0xe4,0xfd,0x12,0x05,0x24,0xe4,0xfd,0x7f,0x3d,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x51,0x7f,0x4d,0x7e,0x26,0x12,0x3b,0xaa,0x12,0x0e,0xc4,0x60,0x1e,0x12,0x0e,0xcb,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0xef,0xd3,0x94,0x6c,0x40,0x04,0x7d,0x7c,0x80,0x08,0xef,0x24,0x10,0xfd,0x80,0x02,0x7d,0x10,0x7f,0x54,0x7e,0x29,0x12,0x3b,0xaa,0xc3,0x90,0x40,0x34,0xe0,0x94,0x01,0x50,0x04,0xe4,0xfd,0x80,0x02,0x7d,0x80,0x7f,0x53,0x7e,0x29,0x12,0x3b,0xaa,0x12,0x0d,0xe1,0xd3,0x9e,0x40,0x02,0x80,0x02,0xaf,0x06,0xef,0xc3,0x94,0x06,0x50,0x03,0x02,0x02,0x76,0x90,0x40,0x07,0xe0,0xff,0x12,0x0d,0xec,0xc3,0x9e,0x50,0x02,0x80,0x02,0xaf,0x06,0xef,0xd3,0x94,0x02,0x40,0x03,0x02,0x02,0x76,0x12,0x0d,0xe1,0xc3,0x9e,0x50,0x02,0x80,0x02,0xaf,0x06,0x90,0x40,0x07,0xe0,0xfe,0xc3,0x99,0xf9,0x12,0x10,0x6c,0x90,0x40,0x11,0xe0,0xc3,0x9e,0x13,0x13,0x13,0x54,0x1f,0xfe,0xd3,0x9d,0x40,0x02,0x80,0x02,0xae,0x05,0xc3,0xee,0x9f,0xc3,0x94,0x04,0x50,0x03,0x02,0x02,0x76,0x12,0x0e,0xcb,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0xef,0xd3,0x94,0x10,0x40,0x7b,0xd3,0x90,0x40,0x15,0xe0,0x94,0x1e,0x12,0x0e,0x67,0x40,0x6f,0xd3,0x90,0x40,0x31,0xe0,0x94,0x0a,0x12,0x0f,0x03,0x40,0x63,0x90,0x40,0x34,0xe0,0xfe,0xa3,0xe0,0xff,0xd3,0x94,0xf4,0xee,0x94,0x01,0x40,0x53,0xef,0x94,0x10,0xee,0x94,0x27,0x50,0x4b,0x12,0x0f,0x87,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0xef,0x75,0xf0,0x04,0xa4,0xff,0xd3,0x74,0xff,0x9f,0xe5,0xf0,0x12,0x0d,0xda,0x40,0x19,0x12,0x0e,0xcb,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0xc3,0x74,0xff,0x9f,0x25,0xe0,0x25,0xe0,0xff,0x80,0x02,0x7f,0x00,0xef,0x44,0x02,0xfd,0x7f,0x35,0x7e,0x29,0x12,0x3b,0xaa,0x7d,0xf0,0x7f,0x3f,0x80,0x04,0x7d,0xf0,0x7f,0x35,0x7e,0x29,0x12,0x3b,0xaa,0x90,0x41,0x9b,0xe0,0x70,0x77,0x12,0x0d,0xbf,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0xef,0xd3,0x94,0x18,0x40,0x1d,0x12,0x0e,0xc4,0x60,0x18,0x12,0x0d,0xbf,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xfd,0x80,0x43,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xfd,0x80,0x39,0x12,0x0d,0xbf,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0xef,0xc3,0x94,0x14,0x50,0x1b,0x12,0x0d,0xbf,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0xef,0x24,0x28,0xfd,0x80,0x02,0x7d,0x3c,0x7f,0x57,0x02,0x03,0x86,0x12,0x0d,0xbf,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0xef,0xd3,0x94,0x18,0x40,0x1f,0x12,0x0e,0xc4,0x60,0x1a,0x12,0x0d,0xbf,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,
139*53ee8cc1Swenshuai.xi 0xff,0x8f,0x11,0x80,0x3b,0x12,0x0d,0xbf,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0xef,0xc3,0x94,0x14,0x50,0x1c,0x12,0x0d,0xbf,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0xef,0x24,0x28,0xf5,0x11,0x80,0x03,0x75,0x11,0x3c,0xc3,0x74,0x40,0x95,0x11,0xfd,0x7f,0x39,0x7e,0x29,0x12,0x3b,0xaa,0xe5,0x11,0x24,0x40,0xfd,0x7f,0x3b,0x7e,0x29,0x12,0x3b,0xaa,0x90,0x40,0x4e,0xe0,0x70,0x43,0x90,0x40,0x92,0xe0,0x60,0x2b,0x90,0x40,0x91,0xe0,0x60,0x25,0x12,0x10,0x35,0x70,0x17,0xa3,0xe0,0x54,0x7f,0xff,0xbf,0x40,0x0f,0xc3,0x12,0x0e,0x61,0x50,0x09,0x7d,0x60,0x12,0x05,0x2c,0x7d,0xc3,0x80,0x14,0xe4,0xfd,0x12,0x05,0x2c,0xe4,0xfd,0x80,0x0b,0x7d,0x04,0x7f,0x9a,0x7e,0x29,0x12,0x3b,0xaa,0xe4,0xfd,0x7f,0x9b,0x7e,0x29,0x12,0x3b,0xaa,0x12,0x0e,0x0c,0x30,0xe0,0x64,0xc3,0x90,0x40,0x15,0xe0,0x94,0x28,0x12,0x0e,0x67,0x50,0x58,0xc3,0x90,0x40,0x40,0xe0,0x94,0x01,0x50,0x4f,0x90,0x40,0x46,0xe0,0x70,0x02,0xa3,0xe0,0x70,0x45,0x90,0x41,0x08,0xe0,0x70,0x3f,0x90,0x40,0x2e,0xe0,0x70,0x02,0xa3,0xe0,0x70,0x35,0x12,0x10,0x35,0x70,0x30,0x12,0x10,0x63,0x70,0x2b,0x7f,0xfd,0x12,0x05,0x48,0x50,0x07,0x7f,0xfc,0x12,0x05,0x48,0x40,0x1d,0xc3,0x90,0x40,0x3d,0xe0,0x94,0x40,0x90,0x40,0x3c,0xe0,0x94,0x00,0x50,0x0e,0x90,0x41,0x0b,0xe0,0xc3,0x94,0x05,0x50,0x0a,0xe0,0x04,0xf0,0x80,0x05,0xe4,0x90,0x41,0x0b,0xf0,0x90,0x41,0x0b,0xe0,0xd3,0x94,0x04,0x40,0x3f,0x7b,0x01,0xe4,0xfd,0x7f,0x80,0x7e,0x20,0x12,0x39,0xe5,0x7d,0x10,0x12,0x05,0x3c,0x7d,0x08,0x7f,0xa2,0x7e,0x20,0x12,0x3b,0x0b,0x7d,0x08,0x7f,0x84,0x7e,0x20,0x12,0x3b,0xaa,0x7b,0x01,0x7d,0x01,0x7f,0x80,0x7e,0x20,0x12,0x39,0xe5,0x90,0x41,0x08,0x74,0x01,0xf0,0xe4,0xa3,0xf0,0xa3,0xf0,0x90,0x40,0x48,0xe0,0x44,0x40,0xf0,0x90,0x41,0x09,0xe0,0xc3,0x94,0x80,0x50,0x07,0xa3,0xe0,0xc3,0x94,0xfa,0x40,0x27,0x7d,0x20,0x12,0x05,0x3c,0x7d,0x0c,0x7f,0xa2,0x7e,0x20,0x12,0x3b,0x0b,0x7d,0x10,0x7f,0x84,0x7e,0x20,0x12,0x3b,0xaa,0xe4,0x90,0x41,0x08,0xf0,0xa3,0xf0,0xa3,0xf0,0x90,0x40,0x48,0xe0,0x44,0x80,0xf0,0x90,0x41,0x08,0xe0,0xb4,0x01,0x11,0x7f,0x96,0x7e,0x20,0x12,0x00,0x0e,0xef,0x30,0xe0,0x06,0x90,0x41,0x09,0xe0,0x04,0xf0,0x90,0x41,0x08,0xe0,0xb4,0x01,0x06,0x90,0x41,0x0a,0xe0,0x04,0xf0,0x12,0x0e,0xcb,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0xef,0xc3,0x94,0x04,0x50,0x1f,0x12,0x0d,0xbf,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0xef,0xd3,0x94,0x08,0x40,0x04,0x7d,0x02,0x80,0x02,0x7d,0x12,0x7f,0x16,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7f,0x3c,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7f,0x9a,0x7e,0x29,0x12,0x3b,0xaa,0x22,0x7f,0x3d,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7b,0x7f,0x7f,0x82,0x7e,0x20,0x12,0x3b,0x0b,0x7b,0x0f,0x22,0x7e,0x29,0x12,0x00,0x0e,0xef,0xd3,0x94,0x40,0x22,0x90,0x40,0x9b,0xe0,0x60,0x6e,0x12,0x0e,0x0c,0xff,0x30,0xe0,0x07,0x90,0x40,0x55,0xe0,0xfe,0x80,0x05,0x90,0x40,0x56,0xe0,0xfe,0x90,0x40,0xa2,0xe0,0xd3,0x9e,0x40,0x17,0xe0,0xfe,0xef,0x30,0xe0,0x07,0x90,0x40,0x55,0xe0,0xff,0x80,0x05,0x90,0x40,0x56,0xe0,0xff,0xc3,0xee,0x9f,0x80,0x01,0xe4,0x90,0x40,0xa2,0xf0,0x12,0x0e,0x0c,0xff,0x30,0xe0,0x07,0x90,0x40,0x53,0xe0,0xfe,0x80,0x05,0x90,0x40,0x54,0xe0,0xfe,0x90,0x40,0xa3,0xe0,0xd3,0x9e,0x40,0x17,0xe0,0xfe,0xef,0x30,0xe0,0x07,0x90,0x40,0x53,0xe0,0xff,0x80,0x05,0x90,0x40,0x54,0xe0,0xff,0xc3,0xee,0x9f,0x80,0x01,0xe4,0x90,0x40,0xa3,0xf0,0x90,0x40,0x07,0xe0,0xff,0xd3,0x94,0x04,0x40,0x13,0xef,0x94,0xfa,0x50,0x0e,0xa3,0xe0,0x54,0x7f,0xff,0x94,0x04,0x40,0x05,0xef,0x94,0x7a,0x40,0x08,0x90,0x40,0xa4,0x74,0x01,0xf0,0x80,0x05,0xe4,0x90,0x40,0xa4,0xf0,0x12,0x0f,0x6d,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x03,0x12,0x10,0x3c,0x8f,0x12,0x90,0x40,0xa6,0x12,0x0f,0x4e,0xfe,0xd3,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x0a,0x12,0x0d,0xbf,0x90,0x40,0xa6,0xe0,0xc3,0x9f,0xff,0x8f,0x13,0x90,0x40,0x9b,0xe0,0x60,0x50,0x90,0x40,0xa3,0xe0,0xc3,0x94,0xe6,0x50,0x47,0x90,0x40,0x30,0xe0,0xfe,0xa3,0xe0,0x78,0x05,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xff,0xc3,0x94,0x05,0xee,0x94,0x00,0x50,0x02,0x80,0x02,0x7f,0x05,0xc3,0x74,0x05,0x9f,0xfd,0x12,0x11,0x01,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xff,0xc3,0x94,0x05,0xee,0x94,0x00,0x50,0x02,0x80,0x04,0x7e,0x00,
140*53ee8cc1Swenshuai.xi 0x7f,0x05,0xc3,0x74,0x05,0x9f,0x2d,0xff,0x90,0x40,0xa3,0xe0,0x2f,0xf0,0x90,0x40,0xa2,0xe0,0xc3,0x94,0xdc,0x40,0x03,0x02,0x07,0xec,0x90,0x40,0xa4,0xe0,0x60,0x1c,0x12,0x11,0x01,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0x12,0x10,0x26,0x94,0x0a,0x40,0x03,0x75,0x11,0x0a,0x90,0x40,0xfa,0x74,0x01,0x02,0x07,0xd1,0x12,0x0d,0xe1,0xd3,0x9e,0x40,0x02,0x80,0x02,0xaf,0x06,0xef,0xc3,0x94,0x06,0x50,0x03,0x02,0x07,0x50,0x90,0x40,0x07,0xe0,0xff,0x12,0x0d,0xec,0xc3,0x9e,0x50,0x02,0x80,0x02,0xaf,0x06,0xef,0xd3,0x94,0x03,0x40,0x03,0x02,0x07,0x50,0x12,0x0d,0xbf,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0x12,0x0e,0x83,0x40,0x06,0xed,0x24,0x80,0xfd,0x80,0x03,0x12,0x0e,0x8e,0x12,0x0f,0xa3,0xef,0x78,0x06,0xce,0xa2,0xe7,0x13,0xce,0x13,0xd8,0xf8,0xfd,0x12,0x0e,0x0c,0xfc,0x30,0xe0,0x04,0x7f,0x05,0x80,0x02,0x7f,0x04,0x12,0x0f,0xb3,0x80,0x05,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0x2d,0xfd,0xec,0x30,0xe0,0x04,0x7f,0x05,0x80,0x02,0x7f,0x04,0x90,0x40,0x30,0x12,0x0f,0xb6,0x80,0x05,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0x12,0x0e,0xc2,0x60,0x04,0x7e,0x00,0x80,0x02,0x7e,0x01,0x12,0x10,0x24,0x94,0x08,0x40,0x03,0x75,0x11,0x08,0x90,0x40,0xfa,0x74,0x04,0x02,0x07,0xd1,0x12,0x0d,0xbf,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0x12,0x0e,0x83,0x40,0x06,0xed,0x24,0x80,0xfd,0x80,0x03,0x12,0x0e,0x8e,0x12,0x0f,0xa3,0xef,0x78,0x06,0xce,0xa2,0xe7,0x13,0xce,0x13,0xd8,0xf8,0xfd,0x12,0x0e,0x0c,0xfc,0x30,0xe0,0x04,0x7f,0x05,0x80,0x02,0x7f,0x06,0x12,0x0f,0xb3,0x80,0x05,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0x2d,0xfd,0xec,0x30,0xe0,0x04,0x7f,0x05,0x80,0x02,0x7f,0x03,0x90,0x40,0x30,0x12,0x0f,0xb6,0x80,0x05,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0x12,0x0e,0xc2,0x60,0x04,0x7e,0x00,0x80,0x02,0x7e,0x01,0x12,0x10,0x24,0x94,0x0a,0x40,0x03,0x75,0x11,0x0a,0x90,0x40,0xfa,0x74,0x05,0xf0,0x90,0x40,0x49,0xe0,0x54,0xef,0xf0,0x90,0x40,0x9b,0xe0,0x60,0x0d,0x90,0x40,0xa2,0xe0,0x25,0x11,0xf0,0x90,0x40,0xf9,0xe5,0x11,0xf0,0x12,0x19,0x13,0x90,0x40,0xb7,0xef,0xf0,0x12,0x16,0xf6,0x90,0x40,0xee,0xef,0xf0,0x12,0x00,0x16,0x90,0x40,0xb6,0xef,0xf0,0xa3,0xe0,0x60,0x0a,0x12,0x10,0xfa,0x7f,0xfe,0x12,0x38,0xd0,0x80,0x22,0x12,0x2f,0x09,0x8f,0x11,0xe5,0x11,0x60,0x10,0x12,0x38,0xd0,0x90,0x40,0xb7,0x74,0xfe,0xf0,0x12,0x10,0xfa,0x7d,0x08,0x80,0x02,0xe4,0xfd,0x7f,0x22,0x7e,0x26,0x12,0x3b,0xaa,0x12,0x14,0x39,0xac,0x07,0x90,0x40,0x07,0xe0,0xfe,0xb4,0x80,0x16,0xa3,0xe0,0x54,0x7f,0xfd,0xbd,0x40,0x0e,0x90,0x40,0xce,0xe0,0xc3,0x94,0xff,0x50,0x0a,0xe0,0x04,0xf0,0x80,0x05,0xe4,0x90,0x40,0xce,0xf0,0x90,0x40,0xa5,0xe0,0xb5,0x06,0x17,0xa3,0xe0,0xfe,0x12,0x0f,0x50,0xb5,0x06,0x0e,0x90,0x40,0xcf,0xe0,0xc3,0x94,0xff,0x50,0x0a,0xe0,0x04,0xf0,0x80,0x05,0xe4,0x90,0x40,0xcf,0xf0,0x90,0x40,0x9b,0xe0,0x60,0x0f,0x90,0x40,0x07,0xe0,0x90,0x40,0xa5,0xf0,0x12,0x0f,0x50,0x90,0x40,0xa6,0xf0,0x12,0x0e,0xc4,0x60,0x0e,0x90,0x40,0xed,0xe0,0xc3,0x94,0xff,0x50,0x20,0xe0,0x04,0xf0,0x80,0x1b,0x90,0x40,0xed,0xe0,0xff,0xd3,0x94,0x0a,0x40,0x05,0x74,0x09,0xf0,0x80,0x0c,0xef,0xd3,0x94,0x00,0x40,0x06,0x90,0x40,0xed,0xe0,0x14,0xf0,0x90,0x40,0x11,0xe0,0xff,0x90,0x40,0xbd,0xe0,0xfe,0xd3,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x0c,0x90,0x40,0xbd,0xe0,0xff,0x90,0x40,0x11,0xe0,0xc3,0x9f,0xff,0x90,0x40,0xc4,0xef,0xf0,0x90,0x40,0x10,0xe0,0xff,0x90,0x40,0xbf,0xe0,0xfe,0xd3,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x0c,0x90,0x40,0xbf,0xe0,0xff,0x90,0x40,0x10,0xe0,0xc3,0x9f,0xff,0x90,0x40,0xc5,0xef,0xf0,0x90,0x40,0x13,0xe0,0xff,0x90,0x40,0xc1,0xe0,0xfe,0xd3,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x0c,0x90,0x40,0xc1,0xe0,0xff,0x90,0x40,0x13,0xe0,0xc3,0x9f,0xff,0x90,0x40,0xc6,0xef,0xf0,0x90,0x40,0x12,0xe0,0xff,0x90,0x40,0xc2,0xe0,0xfe,0xd3,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x0c,0x90,0x40,0xc2,0xe0,0xff,0x90,0x40,0x12,0xe0,0xc3,0x9f,0xff,0x90,0x40,0xc7,0xef,0xf0,0x90,0x40,0xbf,0xe0,0xa3,0xf0,0x90,0x40,0xbd,0xe0,0xa3,0xf0,0x90,0x40,0x10,0xe0,0x90,0x40,0xbf,0xf0,0x90,0x40,0x11,0xe0,0x90,0x40,0xbd,0xf0,0x90,0x40,0x12,0xe0,0x90,0x40,0xc2,0xf0,0x90,0x40,0x13,0xe0,0x90,0x40,0xc1,0xf0,0x90,0x40,0xae,0xe0,0xff,0xa3,0xe0,0xa3,0xcf,0xf0,0xa3,0xef,0xf0,0x90,0x40,0x14,0xe0,0xff,0xa3,0xe0,0x90,0x40,0xae,0xcf,
141*53ee8cc1Swenshuai.xi 0xf0,0xa3,0xef,0xf0,0x90,0x40,0x40,0xe0,0xff,0xa3,0xe0,0x90,0x40,0xb2,0xcf,0xf0,0xa3,0xef,0xf0,0x90,0x40,0x46,0xe0,0xff,0xa3,0xe0,0x90,0x40,0xb4,0xcf,0xf0,0xa3,0xef,0xf0,0x90,0x40,0x30,0xa3,0xe0,0x90,0x40,0xb9,0xf0,0x90,0x40,0x3a,0xe0,0xff,0xa3,0xe0,0x90,0x40,0xbb,0xcf,0xf0,0xa3,0xef,0xf0,0x12,0x0e,0xc4,0x90,0x40,0xc3,0xf0,0xaf,0x04,0x22,0x75,0x15,0x01,0x75,0x16,0x01,0xe4,0xf5,0x17,0x90,0x40,0x7c,0xe0,0x04,0xff,0x90,0x40,0x93,0xe0,0xfe,0xef,0x8e,0xf0,0x84,0x90,0x40,0x7c,0xe5,0xf0,0xf0,0x7f,0xfd,0x7e,0x29,0x12,0x00,0x0e,0x8f,0x11,0x7f,0xfc,0x7e,0x29,0x12,0x00,0x0e,0x8f,0x12,0x7f,0xff,0x7e,0x29,0x12,0x00,0x0e,0x8f,0x13,0x7f,0xfe,0x7e,0x29,0x12,0x00,0x0e,0x8f,0x14,0xe5,0x12,0xc3,0x94,0x01,0x40,0x02,0x15,0x12,0xe5,0x14,0xc3,0x94,0x01,0x40,0x02,0x15,0x14,0xe5,0x17,0x70,0x07,0xe5,0x11,0xc3,0x94,0xf0,0x40,0x04,0x7f,0x00,0x80,0x02,0xaf,0x11,0x8f,0x11,0xe5,0x17,0x70,0x07,0xe5,0x12,0xc3,0x94,0xf0,0x40,0x04,0x7f,0x00,0x80,0x02,0xaf,0x12,0x8f,0x12,0xe5,0x17,0x70,0x07,0xe5,0x13,0xc3,0x94,0xf0,0x40,0x04,0x7f,0x00,0x80,0x02,0xaf,0x13,0x8f,0x13,0xe5,0x17,0x70,0x07,0xe5,0x14,0xc3,0x94,0xf0,0x40,0x04,0x7f,0x00,0x80,0x02,0xaf,0x14,0x8f,0x14,0xe4,0xfd,0x12,0x10,0x7b,0xe0,0x52,0x16,0x12,0x10,0x86,0xe0,0x52,0x15,0x0d,0xbd,0x04,0xf0,0x12,0x0f,0x72,0x94,0x80,0x40,0x06,0xee,0x24,0x80,0xfe,0x80,0x0a,0x90,0x40,0x07,0xe0,0xfe,0xc3,0x74,0x80,0x9e,0xfe,0xee,0xd3,0x94,0x04,0x50,0x04,0x7e,0x01,0x80,0x02,0x7e,0x00,0xe5,0x16,0x5e,0x90,0x40,0x91,0x12,0x0d,0xbe,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0xef,0xd3,0x94,0x04,0x50,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0xe5,0x15,0x5f,0x90,0x40,0x92,0xf0,0xe4,0xfd,0x12,0x0f,0xc6,0xe0,0xff,0x24,0x02,0xfb,0xe4,0x33,0xfa,0x12,0x0f,0xd1,0xe0,0xd3,0x9b,0xea,0x12,0x0d,0xda,0x40,0x2c,0x12,0x0e,0x4a,0xe0,0xf9,0x24,0x02,0xfb,0xe4,0x33,0xfa,0xd3,0xef,0x9b,0xea,0x12,0x0d,0xda,0x40,0x18,0xe9,0x24,0x04,0xff,0xe4,0x33,0xfe,0x12,0x0f,0xd1,0xe0,0x12,0x0d,0xd7,0x40,0x08,0x12,0x0f,0x2d,0x74,0x01,0xf0,0x80,0x05,0x12,0x0f,0x2d,0xe4,0xf0,0x0d,0xed,0x64,0x04,0x70,0xb2,0xe4,0xfd,0xed,0x60,0x04,0x64,0x01,0x70,0x3f,0x12,0x0f,0xaa,0x12,0x0d,0xc7,0x40,0x03,0x02,0x0b,0xc0,0x12,0x10,0x91,0xe9,0x12,0x0d,0xd7,0x50,0x75,0x12,0x10,0x03,0x12,0x0d,0xc7,0x50,0x6d,0x12,0x10,0x91,0xe9,0x12,0x0d,0xd7,0x50,0x17,0x12,0x0e,0x99,0xe0,0xff,0xc3,0x94,0xff,0x50,0x06,0x12,0x0f,0x57,0x02,0x0b,0xb9,0x7e,0x00,0x7f,0xff,0x02,0x0b,0xb9,0x02,0x0b,0xc0,0x12,0x0f,0xaa,0xf5,0x83,0xe0,0xf9,0x24,0x01,0x12,0x0d,0xcd,0x50,0x3c,0xec,0x12,0x0f,0x58,0xe9,0x12,0x0d,0xd7,0x50,0x32,0x12,0x10,0x03,0xf5,0x83,0xe0,0xf9,0x24,0x01,0x12,0x0d,0xcd,0x50,0x24,0xec,0x12,0x0f,0x58,0xe9,0x12,0x0d,0xd7,0x50,0x1a,0x12,0x0e,0x99,0xe0,0xff,0xc3,0x94,0xff,0x50,0x05,0x12,0x0f,0x57,0x80,0x04,0x7e,0x00,0x7f,0xff,0x12,0x0e,0x99,0xef,0xf0,0x80,0x05,0x12,0x0e,0x99,0xe4,0xf0,0x74,0x11,0x2d,0xf8,0xe6,0x70,0x1a,0x12,0x0f,0xdc,0xe0,0xff,0xc3,0x94,0xff,0x50,0x05,0x12,0x0f,0x57,0x80,0x04,0x7e,0x00,0x7f,0xff,0x12,0x0f,0xdc,0xef,0xf0,0x80,0x05,0x12,0x0f,0xdc,0xe4,0xf0,0x0d,0xed,0x64,0x04,0x60,0x03,0x02,0x0b,0x30,0x90,0x40,0x68,0xe0,0xff,0x24,0x80,0xfb,0xe4,0x33,0xfa,0xe5,0x11,0x12,0x0f,0x38,0x50,0x05,0x12,0x0e,0xdd,0x40,0x17,0x90,0x40,0x69,0xe0,0xff,0x24,0x80,0xfb,0xe4,0x33,0xfa,0xe5,0x12,0x12,0x0f,0x38,0x50,0x3b,0x12,0x0e,0xdd,0x50,0x36,0x90,0x40,0x6a,0xe0,0xff,0x24,0x40,0xfb,0xe4,0x33,0xfa,0xe5,0x13,0x12,0x0f,0x38,0x50,0x09,0xe5,0x82,0x24,0x40,0x12,0x0e,0xe1,0x40,0x29,0x90,0x40,0x6b,0xe0,0xff,0x24,0x40,0xfb,0xe4,0x33,0xfa,0xe5,0x14,0x12,0x0f,0x38,0x50,0x09,0xe5,0x82,0x24,0x40,0x12,0x0e,0xe1,0x40,0x0e,0xe4,0xfd,0x12,0x0e,0x44,0xef,0xf0,0x0d,0xbd,0x04,0xf7,0x02,0x0c,0xc3,0xe4,0xfd,0xed,0x60,0x04,0x64,0x01,0x70,0x23,0x12,0x0f,0x2d,0xe0,0x60,0x02,0x80,0x21,0x12,0x0e,0x99,0xe0,0xd3,0x94,0x20,0x50,0x38,0x74,0x11,0x2d,0xf8,0xe6,0x12,0x10,0x92,0x12,0x0e,0x4a,0x12,0x10,0x99,0x50,0x2d,0x80,0x26,0x12,0x0f,0x2d,0xe0,0x60,0x07,0x12,0x0e,0x4a,0xe4,0xf0,0x80,0x1e,0x12,0x0e,0x99,0xe0,0xd3,0x94,0x20,0x50,0x10,0x74,0x11,0x2d,0xf8,0xe6,0x12,0x0f,0x58,0x12,0x0e,0x4a,0x12,0x10,0x99,0x50,0x05,0x12,0x0e,0x44,0xef,0xf0,0x0d,0xed,0x64,0x04,0x70,0xa5,0x90,0x40,0x93,0xe0,0x14,
142*53ee8cc1Swenshuai.xi 0xff,0x90,0x40,0x7c,0xe0,0x6f,0x60,0x03,0x02,0x0d,0x78,0xfd,0x12,0x0f,0xaa,0xf5,0x83,0xe0,0xff,0x12,0x10,0x03,0xf5,0x83,0xef,0xf0,0x74,0x11,0x2d,0xf8,0xe6,0xff,0x12,0x0f,0xaa,0xf5,0x83,0xef,0xf0,0x0d,0xbd,0x04,0xe1,0xe4,0xfd,0x12,0x0f,0xc6,0xe0,0xff,0x12,0x0f,0xd1,0xef,0xf0,0x12,0x0e,0x4a,0xe0,0xff,0x12,0x0f,0xc6,0xef,0xf0,0x0d,0xbd,0x04,0xe8,0x7d,0x03,0x74,0x84,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0xe0,0xff,0x12,0x10,0x7b,0xef,0xf0,0x74,0x88,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0xe0,0xff,0x12,0x10,0x86,0xef,0xf0,0xdd,0xdc,0x12,0x0e,0xcb,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0xef,0xc3,0x94,0x04,0x50,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x90,0x40,0x85,0xef,0x12,0x0d,0xbe,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0xef,0xc3,0x94,0x04,0x50,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x90,0x40,0x89,0xef,0xf0,0xc3,0x90,0x40,0x15,0xe0,0x94,0x32,0x12,0x0e,0x67,0x50,0x39,0x12,0x0d,0xbf,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0x12,0x0e,0x83,0x40,0x06,0xed,0x24,0x80,0xfd,0x80,0x03,0x12,0x0e,0x8e,0x12,0x0f,0xa3,0x12,0x10,0xf0,0x50,0x0e,0x12,0x0e,0xfd,0x50,0x09,0xe4,0x90,0x40,0x68,0xf0,0xa3,0xf0,0xa3,0xf0,0x22,0xf0,0x90,0x40,0x08,0xe0,0x54,0x7f,0xff,0x22,0xf5,0x83,0xe0,0xf9,0x24,0x02,0xff,0xe4,0x33,0xfe,0x74,0x11,0x2d,0xf8,0xe6,0xfc,0xd3,0x9f,0xee,0x64,0x80,0xf8,0x74,0x80,0x98,0x22,0x90,0x40,0x10,0xe0,0xf9,0x90,0x40,0x07,0xe0,0xff,0xc3,0x99,0x13,0x13,0x13,0x54,0x1f,0xfe,0x90,0x40,0x11,0xe0,0xc3,0x9f,0x13,0x13,0x13,0x54,0x1f,0xff,0x22,0x90,0x40,0x07,0xe0,0xff,0xc3,0x74,0x80,0x9f,0xff,0x22,0xf0,0x90,0x40,0x0c,0xe0,0xc4,0x54,0x0f,0x22,0x90,0x40,0x0c,0xe0,0x13,0x13,0x13,0x54,0x1f,0x22,0x90,0x40,0x0c,0xe0,0xff,0x13,0x13,0x13,0x54,0x1f,0x22,0x90,0x40,0x38,0xe0,0xfe,0xa3,0xe0,0xff,0x90,0x40,0x37,0xe0,0x2f,0xff,0x90,0x40,0x36,0xe0,0x3e,0xfe,0x7c,0x00,0x7d,0x05,0x02,0x1c,0xd2,0x74,0x11,0x2d,0xf8,0xe6,0xff,0x74,0x68,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0x22,0x90,0x40,0x55,0xec,0xf0,0x90,0x40,0x50,0xe0,0xfc,0x22,0xd3,0x90,0x40,0x15,0xe0,0x94,0x64,0x90,0x40,0x14,0xe0,0x94,0x00,0x22,0xaa,0x06,0xab,0x07,0xe0,0xff,0x90,0x40,0xa8,0x7e,0x00,0xe0,0xfc,0xa3,0xe0,0xfd,0x12,0x1c,0xd2,0xd3,0x22,0x7e,0x00,0x90,0x40,0x07,0xe0,0xfd,0xd3,0x94,0x80,0x22,0x90,0x40,0x07,0xe0,0xfd,0xc3,0x74,0x80,0x9d,0xfd,0x22,0x74,0x7d,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0x22,0x90,0x40,0xac,0xe0,0xfe,0xa3,0xe0,0xff,0x90,0x40,0xab,0xe0,0x2f,0xff,0x90,0x40,0xaa,0xe0,0x3e,0x90,0x40,0x59,0xfe,0xe0,0xfd,0x7c,0x00,0x02,0x1c,0xd2,0x2d,0xff,0x90,0x40,0x09,0xe0,0x54,0x03,0x22,0x90,0x40,0x07,0xe0,0xff,0xd3,0x94,0x80,0x22,0x90,0x40,0x0c,0xe0,0xff,0xc4,0x54,0x0f,0x22,0xe5,0x82,0x24,0x80,0xfb,0xe5,0x83,0x33,0xfa,0xc3,0xef,0x9b,0xe4,0x9a,0x22,0xfc,0xa3,0xf0,0xa3,0xeb,0xf0,0xec,0xa3,0xf0,0x90,0x40,0x57,0x74,0x02,0xf0,0xa3,0x22,0x90,0x40,0x31,0xe0,0x94,0x05,0x90,0x40,0x30,0xe0,0x94,0x00,0x22,0x90,0x40,0x0d,0xe0,0xff,0x54,0x07,0x25,0xe0,0xfe,0xef,0x13,0x13,0x13,0x54,0x01,0x2e,0x24,0x03,0x75,0xf0,0x05,0x84,0xaf,0xf0,0xef,0x14,0x22,0xef,0x13,0x13,0x13,0x54,0x1f,0x22,0x74,0x8d,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0x22,0xf5,0x82,0x75,0x83,0x00,0xc3,0x9b,0xe5,0x83,0x9a,0x22,0xe0,0xc4,0x13,0x13,0x13,0x54,0x01,0xfd,0x7e,0x2c,0x22,0xe0,0xff,0x90,0x40,0x08,0xe0,0x54,0x7f,0x22,0xef,0x24,0x01,0xff,0xe4,0x33,0xfe,0x22,0xd3,0x90,0x40,0x17,0xe0,0x94,0x0a,0x90,0x40,0x16,0xe0,0x94,0x00,0x22,0x90,0x40,0xa5,0xe0,0xff,0x90,0x40,0x07,0xe0,0xfe,0xd3,0x22,0xd3,0x90,0x40,0x15,0xe0,0x94,0x2c,0x90,0x40,0x14,0xe0,0x94,0x01,0x22,0x90,0x40,0x07,0xe0,0xff,0x94,0x80,0x22,0xff,0x7c,0x00,0x7d,0x7f,0x12,0x1c,0xd2,0xc3,0x90,0x40,0x35,0xe0,0x9f,0x90,0x40,0x34,0xe0,0x9e,0x22,0xed,0x2f,0xff,0xe4,0x3e,0xfe,0x22,0x74,0x74,0x2d,0xf5,0x82,0xe4,0x34,0x40,0x22,0x90,0x40,0x14,0xe0,0xfe,0xa3,0xe0,0xa8,0x07,0x08,0x22,0xef,0xf0,0x90,0x40,0x50,0xe0,0xff,0x22,0x74,0x6c,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0x22,0x74,0x70,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0x22,0x74,0x81,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0x22,0xef,0x24,0x48,0xff,0xe4,0x33,0xfe,0xc3,0xef,0x94,0x7c,0xee,0x64,0x80,0x94,0x80,0x22,0x90,0x40,
143*53ee8cc1Swenshuai.xi 0x50,0xf0,0x7d,0xff,0x7f,0xa9,0x7e,0x29,0x22,0x74,0x78,0x2d,0xf5,0x82,0xe4,0x34,0x40,0x22,0xd3,0x90,0x40,0x43,0xe0,0x94,0x00,0x90,0x40,0x42,0xe0,0x94,0x00,0x22,0xe0,0xfc,0xa3,0xe0,0x2f,0xff,0xec,0x3e,0xfe,0x22,0xef,0x2e,0xf5,0x11,0x90,0x40,0xf8,0xf0,0xd3,0x22,0x90,0x40,0x48,0xe0,0x54,0xf0,0x22,0x90,0x40,0x07,0xe0,0x64,0x80,0x22,0x90,0x40,0x07,0xe0,0xff,0x90,0x40,0xa5,0xe0,0xc3,0x9f,0xff,0x22,0x90,0x40,0xa5,0xe0,0xfe,0x90,0x40,0x07,0xe0,0xfd,0xd3,0x9e,0x22,0x90,0x40,0x07,0xe0,0xfe,0x90,0x40,0xa5,0xe0,0xc3,0x9e,0xfe,0x22,0xa3,0xe0,0x54,0x7f,0x64,0x40,0x22,0xe0,0xfe,0x13,0x13,0x13,0x54,0x1f,0xfd,0x22,0xa3,0xf0,0xa3,0x74,0x02,0xf0,0xa3,0x22,0x74,0x85,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0x22,0x74,0x89,0x2d,0xf5,0x82,0xe4,0x34,0x40,0xf5,0x83,0x22,0xec,0x24,0x02,0xff,0xe4,0x33,0xfe,0x22,0xe0,0xfb,0xc3,0xef,0x9b,0x74,0x80,0xf8,0x6e,0x98,0x22,0x90,0x40,0x6b,0xe0,0xc3,0x94,0x08,0x22,0xfe,0xe0,0x2f,0xff,0xe4,0x3e,0xfe,0xef,0x25,0xe0,0x22,0xe0,0xc4,0x13,0x13,0x13,0x54,0x01,0x22,0x24,0x90,0xfd,0xe4,0x33,0xfc,0xe0,0xd3,0x9d,0xec,0x22,0x90,0x40,0x15,0xe0,0x9f,0x90,0x40,0x14,0xe0,0x9e,0x22,0x90,0x40,0x04,0xe0,0x64,0x78,0x22,0xe4,0x33,0x54,0x01,0x33,0x33,0x33,0x54,0xf8,0x22,0xac,0x06,0xef,0x54,0xfe,0xf0,0xec,0x54,0x7f,0x22,0xd3,0xef,0x94,0x04,0xee,0x64,0x80,0x94,0x80,0x22,0x90,0x40,0xa2,0x74,0xf0,0xf0,0x22,0x90,0x40,0x14,0xe0,0xfe,0xa3,0xe0,0x78,0x06,0x22,0x90,0x40,0x3a,0xe0,0xfe,0xa3,0xe0,0x78,0x07,0x22,0xc3,0xee,0x64,0x80,0x94,0x80,0x50,0x03,0x02,0x11,0xdd,0xd3,0xef,0x94,0x02,0xee,0x64,0x80,0x94,0x80,0x40,0x03,0x02,0x11,0xdd,0xad,0x07,0xed,0x25,0xe0,0xfc,0x24,0x08,0xfb,0x90,0x40,0x5c,0xf0,0xec,0x24,0x04,0x12,0x0e,0xec,0x74,0x0d,0xf0,0x74,0x0b,0x12,0x10,0x73,0x74,0x0a,0x12,0x0e,0x59,0xb4,0x04,0x06,0xed,0x24,0x03,0xfc,0x80,0x19,0xec,0xb4,0x03,0x06,0xed,0x24,0x04,0xfc,0x80,0x0f,0x90,0x40,0x50,0xe0,0xb4,0x02,0x06,0xed,0x24,0x05,0xfc,0x80,0x02,0x7c,0x09,0x12,0x0e,0x55,0xb4,0x04,0x04,0x7c,0x0a,0x80,0x15,0xec,0xb4,0x03,0x04,0x7c,0x0a,0x80,0x0d,0x90,0x40,0x50,0xe0,0xb4,0x02,0x04,0x7c,0x09,0x80,0x02,0x7c,0x08,0x90,0x40,0x53,0x12,0x0e,0x58,0xb4,0x04,0x06,0xed,0x24,0x03,0xfc,0x80,0x19,0xec,0xb4,0x02,0x06,0xed,0x24,0x04,0xfc,0x80,0x0f,0x90,0x40,0x50,0xe0,0xb4,0x01,0x06,0xed,0x24,0x07,0xfc,0x80,0x02,0x7c,0x0a,0x90,0x40,0x56,0x12,0x0e,0x58,0xb4,0x04,0x05,0x7c,0x0a,0x02,0x13,0x74,0xec,0xb4,0x02,0x04,0x7c,0x09,0x80,0x0d,0x90,0x40,0x50,0xe0,0xb4,0x01,0x04,0x7c,0x08,0x80,0x02,0x7c,0x06,0x02,0x13,0x74,0xc3,0xef,0x94,0x03,0xee,0x64,0x80,0x94,0x80,0x50,0x03,0x02,0x12,0xa8,0xd3,0xef,0x94,0x05,0xee,0x64,0x80,0x94,0x80,0x40,0x03,0x02,0x12,0xa8,0xef,0x24,0xfd,0xfd,0x25,0xe0,0xfc,0x24,0x1b,0xfb,0x90,0x40,0x5c,0xf0,0xec,0x24,0x08,0x12,0x0e,0xec,0x74,0x0b,0xf0,0x74,0x09,0x12,0x10,0x73,0x74,0x0a,0x12,0x0e,0x59,0xb4,0x04,0x06,0xed,0x24,0x05,0xfc,0x80,0x19,0xec,0xb4,0x03,0x06,0xed,0x24,0x06,0xfc,0x80,0x0f,0x90,0x40,0x50,0xe0,0xb4,0x02,0x06,0xed,0x24,0x06,0xfc,0x80,0x02,0x7c,0x09,0x12,0x0e,0x55,0xb4,0x04,0x04,0x7c,0x0a,0x80,0x15,0xec,0xb4,0x03,0x04,0x7c,0x09,0x80,0x0d,0x90,0x40,0x50,0xe0,0xb4,0x02,0x04,0x7c,0x08,0x80,0x02,0x7c,0x07,0x90,0x40,0x53,0x12,0x0e,0x58,0xb4,0x04,0x06,0xed,0x24,0x05,0xfc,0x80,0x19,0xec,0xb4,0x02,0x06,0xed,0x24,0x06,0xfc,0x80,0x0f,0x90,0x40,0x50,0xe0,0xb4,0x01,0x06,0xed,0x24,0x08,0xfc,0x80,0x02,0x7c,0x0a,0x90,0x40,0x56,0x12,0x0e,0x58,0xb4,0x04,0x04,0x7c,0x0a,0x80,0x15,0xec,0xb4,0x02,0x04,0x7c,0x07,0x80,0x0d,0x90,0x40,0x50,0xe0,0xb4,0x01,0x04,0x7c,0x07,0x80,0x02,0x7c,0x05,0x02,0x13,0x74,0xc3,0xef,0x94,0x06,0xee,0x64,0x80,0x94,0x80,0x50,0x03,0x02,0x13,0x7a,0xd3,0xef,0x94,0x08,0xee,0x64,0x80,0x94,0x80,0x40,0x03,0x02,0x13,0x7a,0xef,0x24,0xfa,0xfd,0x75,0xf0,0x08,0xa4,0x24,0x32,0x90,0x40,0x5c,0xf0,0xed,0x25,0xe0,0x25,0xe0,0xfc,0x24,0x12,0xa3,0xf0,0xec,0x24,0x26,0xa3,0xf0,0xed,0x25,0xe0,0x25,0xe0,0x24,0x10,0x12,0x0e,0xf3,0x74,0x09,0xf0,0x12,0x10,0x73,0x74,0x05,0x12,0x0e,0x59,0xb4,0x04,0x06,0xed,0x24,0x07,0xfc,0x80,0x19,0xec,0xb4,0x03,0x06,0xed,0x24,0x08,0xfc,0x80,0x0f,0x90,0x40,0x50,0xe0,0xb4,0x02,0x06,0xed,0x24,0x08,0xfc,0x80,0x02,0x7c,0x09,0x12,0x0e,0x55,0xb4,0x04,0x04,0x7c,0x0a,0x80,0x15,0xec,0xb4,0x03,0x04,0x7c,0x09,0x80,0x0d,0x90,0x40,
144*53ee8cc1Swenshuai.xi 0x50,0xe0,0xb4,0x02,0x04,0x7c,0x05,0x80,0x02,0x7c,0x03,0x90,0x40,0x53,0x12,0x0e,0x58,0xb4,0x04,0x04,0x7c,0x07,0x80,0x0e,0xec,0xb4,0x02,0x04,0x7c,0x09,0x80,0x06,0x90,0x40,0x50,0xe0,0x7c,0x0a,0x90,0x40,0x56,0x12,0x0e,0x58,0xb4,0x04,0x04,0x7c,0x0a,0x80,0x15,0xec,0xb4,0x02,0x04,0x7c,0x06,0x80,0x0d,0x90,0x40,0x50,0xe0,0xb4,0x01,0x04,0x7c,0x05,0x80,0x02,0x7c,0x03,0x90,0x40,0x54,0xec,0xf0,0x22,0xc3,0xef,0x94,0x09,0xee,0x64,0x80,0x94,0x80,0x50,0x03,0x02,0x14,0x38,0xd3,0xef,0x94,0x0a,0xee,0x64,0x80,0x94,0x80,0x40,0x03,0x02,0x14,0x38,0xef,0x24,0xf7,0xfd,0x90,0x40,0x5c,0x74,0x40,0xf0,0xa3,0x74,0x28,0xf0,0xa3,0x74,0x40,0xf0,0x74,0x28,0x12,0x0e,0xf3,0x74,0x08,0xf0,0xa3,0xf0,0xa3,0x74,0x04,0xf0,0xa3,0x04,0x12,0x0f,0xbf,0xb4,0x04,0x06,0xed,0x24,0x09,0xff,0x80,0x10,0xef,0xb4,0x03,0x06,0xed,0x24,0x09,0xff,0x80,0x06,0x90,0x40,0x50,0xe0,0x7f,0x0a,0x90,0x40,0x55,0x12,0x0f,0xbe,0xb4,0x04,0x04,0x7f,0x0a,0x80,0x15,0xef,0xb4,0x03,0x04,0x7f,0x08,0x80,0x0d,0x90,0x40,0x50,0xe0,0xb4,0x02,0x04,0x7f,0x03,0x80,0x02,0x7f,0x01,0x90,0x40,0x53,0x12,0x0f,0xbe,0xb4,0x04,0x04,0x7f,0x07,0x80,0x0e,0xef,0xb4,0x02,0x04,0x7f,0x09,0x80,0x06,0x90,0x40,0x50,0xe0,0x7f,0x0a,0x90,0x40,0x56,0x12,0x0f,0xbe,0xb4,0x04,0x04,0x7f,0x0a,0x80,0x15,0xef,0xb4,0x02,0x04,0x7f,0x03,0x80,0x0d,0x90,0x40,0x50,0xe0,0xb4,0x01,0x04,0x7f,0x02,0x80,0x02,0x7f,0x01,0x90,0x40,0x54,0xef,0xf0,0x22,0x90,0x40,0xa2,0xe0,0xff,0xd3,0x94,0xe6,0x40,0x05,0xe4,0xfb,0x02,0x16,0xe4,0x90,0x40,0xa7,0xe0,0x70,0x03,0x02,0x14,0xfd,0xe4,0x90,0x40,0xf7,0xf0,0x90,0x40,0xf6,0xf0,0x90,0x40,0xf5,0xf0,0x90,0x40,0x49,0xe0,0x54,0xf0,0x12,0x0e,0x0b,0xfe,0x30,0xe0,0x07,0x90,0x40,0x5c,0xe0,0xfd,0x80,0x05,0x90,0x40,0x5e,0xe0,0xfd,0xef,0xd3,0x9d,0x50,0x15,0x90,0x40,0x52,0xe0,0xff,0x94,0x03,0x50,0x07,0x90,0x40,0xee,0xe0,0xfd,0x80,0x02,0x7d,0x00,0xed,0x60,0x05,0x90,0x40,0xac,0x80,0x31,0xee,0x30,0xe0,0x07,0x90,0x40,0x5d,0xe0,0xfe,0x80,0x05,0x90,0x40,0x5f,0xe0,0xfe,0x90,0x40,0xa2,0xe0,0xc3,0x9e,0x50,0x11,0xef,0x94,0x03,0x50,0x04,0x7f,0x00,0x80,0x05,0x90,0x40,0xee,0xe0,0xff,0xef,0x60,0x05,0x90,0x40,0xaa,0x80,0x03,0x90,0x40,0xa8,0xe4,0x75,0xf0,0x01,0x12,0x1d,0x39,0x12,0x2e,0x72,0xab,0x07,0x90,0x40,0xaa,0xe0,0xfe,0xa3,0xe0,0xff,0xa3,0x12,0x10,0x1a,0x90,0x40,0xa8,0x12,0x10,0x1a,0xd3,0xef,0x94,0xc8,0xee,0x94,0x00,0x50,0x03,0x02,0x16,0xf3,0xe4,0x90,0x40,0xa7,0xf0,0x90,0x40,0xa2,0xf0,0x02,0x16,0xf3,0x12,0x0e,0xd4,0xf9,0x30,0xe0,0x23,0x90,0x40,0x50,0xe0,0xfe,0xb4,0x04,0x04,0x7e,0x1e,0x80,0x2d,0xee,0xb4,0x03,0x04,0x7e,0x1f,0x80,0x0d,0x90,0x40,0x50,0xe0,0xb4,0x02,0x04,0x7e,0x22,0x80,0x02,0x7e,0x24,0x80,0x16,0x90,0x40,0x50,0xe0,0xfe,0xb4,0x04,0x04,0x7e,0x1e,0x80,0x0a,0xee,0xb4,0x02,0x04,0x7e,0x38,0x80,0x02,0x7e,0x58,0xee,0xfd,0x33,0x95,0xe0,0xfc,0x90,0x40,0xa3,0xe0,0xd3,0x9d,0xec,0x12,0x0d,0xda,0x50,0x03,0x02,0x15,0xec,0x90,0x40,0xf5,0xe0,0x70,0x03,0x02,0x15,0xec,0x90,0x40,0x50,0xe0,0xfe,0x64,0x04,0x70,0x03,0x02,0x15,0xec,0xe4,0x90,0x40,0xa3,0xf0,0x90,0x40,0xf7,0x04,0xf0,0xee,0x70,0x09,0x7b,0x01,0x90,0x40,0x4f,0xf0,0x02,0x16,0xf3,0xee,0xb4,0x01,0x0d,0x90,0x40,0x4f,0xe0,0x70,0x07,0x7b,0x01,0x04,0xf0,0x02,0x16,0xf3,0x90,0x40,0x50,0xe0,0xb4,0x01,0x0c,0x90,0x40,0x4f,0xe0,0xb4,0x01,0x05,0x7b,0x01,0x02,0x16,0x8e,0x90,0x40,0x50,0xe0,0xfe,0xb4,0x01,0x0c,0x90,0x40,0x4f,0xe0,0xb4,0x02,0x05,0x7b,0x02,0x02,0x16,0xf3,0xee,0xb4,0x02,0x19,0x12,0x0f,0x26,0x30,0xe0,0x05,0x7b,0x04,0x02,0x16,0xf3,0xe9,0x30,0xe0,0x05,0x7b,0x03,0x02,0x16,0xf3,0x7b,0x04,0x02,0x16,0xf3,0x90,0x40,0x50,0xe0,0xff,0xb4,0x03,0x05,0x7b,0x04,0x02,0x16,0xf3,0xef,0x64,0x04,0x60,0x03,0x02,0x16,0xf3,0x7b,0x04,0x02,0x16,0xf3,0xe9,0x30,0xe0,0x28,0x90,0x40,0x50,0xe0,0xff,0xb4,0x04,0x04,0x7f,0x2e,0x80,0x15,0xef,0xb4,0x03,0x04,0x7f,0x42,0x80,0x0d,0x90,0x40,0x50,0xe0,0xb4,0x02,0x04,0x7f,0x70,0x80,0x02,0x7f,0x50,0xef,0x33,0x95,0xe0,0xfe,0x80,0x1e,0x90,0x40,0x50,0xe0,0xff,0xb4,0x04,0x0a,0x7c,0x00,0x7d,0x2e,0x7e,0x00,0x7f,0x2e,0x80,0x0c,0xef,0x7e,0x00,0xb4,0x02,0x04,0x7f,0x58,0x80,0x02,0x7f,0x88,0x90,0x40,0xa2,0xe0,0x12,0x0d,0xd7,0x50,0x03,0x02,0x16,0xd0,0x90,0x40,0xf5,0xe0,0x70,0x03,0x02,0x16,0xd0,0x90,0x40,0x49,0xe0,0x44,0x0f,0xf0,0xe4,0x90,0x40,0xa2,0xf0,0x90,0x40,0xf6,0x04,0x12,0x0f,0xbf,
145*53ee8cc1Swenshuai.xi 0x64,0x04,0x70,0x17,0xe9,0x30,0xe0,0x05,0x7b,0x03,0x02,0x16,0xf3,0x12,0x0e,0x14,0x30,0xe0,0x04,0x7b,0x02,0x80,0x7e,0xe4,0xfb,0x80,0x7a,0xef,0xb4,0x03,0x04,0x7b,0x02,0x80,0x72,0x90,0x40,0x50,0xe0,0xff,0xb4,0x02,0x0a,0x7b,0x01,0x90,0x40,0x4f,0x74,0x02,0xf0,0x80,0x60,0xef,0xb4,0x01,0x0e,0x90,0x40,0x4f,0xe0,0xb4,0x02,0x07,0x7b,0x01,0x74,0x01,0xf0,0x80,0x4e,0x90,0x40,0x50,0xe0,0xb4,0x01,0x0d,0x90,0x40,0x4f,0xe0,0xb4,0x01,0x06,0x7b,0x01,0xe4,0xf0,0x80,0x3a,0x90,0x40,0x50,0xe0,0xff,0xb4,0x01,0x09,0x90,0x40,0x4f,0xe0,0x70,0x03,0xfb,0x80,0x29,0xef,0x70,0x26,0xfb,0x80,0x23,0x90,0x40,0xf6,0xe0,0x70,0x18,0xa3,0xe0,0x70,0x14,0x12,0x2e,0x72,0xab,0x07,0x90,0x40,0xf5,0x74,0x01,0xf0,0x90,0x40,0x49,0xe0,0x54,0xf0,0xf0,0x80,0x05,0x90,0x40,0x50,0xe0,0xfb,0xaf,0x03,0x22,0xd3,0x90,0x40,0x15,0xe0,0x94,0xe8,0x90,0x40,0x14,0xe0,0x94,0x03,0x40,0x0d,0x90,0x40,0xef,0xe0,0x94,0xff,0x50,0x0a,0xe0,0x04,0xf0,0x80,0x05,0xe4,0x90,0x40,0xef,0xf0,0x90,0x40,0xed,0xe0,0xc3,0x94,0x0a,0x50,0x0b,0x90,0x40,0xef,0xe0,0x94,0x02,0x40,0x0f,0x7f,0x05,0x22,0x90,0x40,0xef,0xe0,0xd3,0x94,0x05,0x40,0x03,0x7f,0x05,0x22,0x12,0x0e,0xc4,0xfe,0xc3,0x94,0x03,0x50,0x34,0x12,0x0e,0xd4,0x30,0xe0,0x0e,0x90,0x40,0x31,0xe0,0x94,0x2c,0x90,0x40,0x30,0xe0,0x94,0x01,0x50,0x12,0x12,0x0f,0x26,0x30,0xe0,0x1a,0xd3,0x90,0x40,0x31,0xe0,0x94,0x96,0x12,0x0f,0x03,0x40,0x0e,0x90,0x40,0xf1,0xe0,0xc3,0x94,0x08,0x50,0x0d,0xe0,0x04,0xf0,0x80,0x08,0x90,0x40,0xf1,0xe0,0x60,0x02,0x14,0xf0,0x90,0x40,0xf1,0xe0,0xd3,0x94,0x03,0x40,0x03,0x7f,0x08,0x22,0x90,0x40,0x06,0xe0,0xff,0x64,0x01,0x60,0x08,0xef,0x64,0x02,0x60,0x03,0x02,0x19,0x10,0xee,0xc3,0x94,0x03,0x40,0x26,0x90,0x40,0xc3,0xe0,0x94,0x03,0x40,0x1e,0x90,0x40,0x14,0xe0,0x70,0x02,0xa3,0xe0,0x60,0x51,0x90,0x40,0x16,0xe0,0x70,0x02,0xa3,0xe0,0x70,0x0a,0x90,0x40,0x18,0xe0,0x70,0x02,0xa3,0xe0,0x60,0x3d,0x90,0x40,0xed,0xe0,0xff,0xc3,0x94,0x0a,0x50,0x0e,0x90,0x40,0x10,0xe0,0xfe,0xa3,0xe0,0xc3,0x9e,0xd3,0x94,0x24,0x50,0x13,0xef,0xc3,0x94,0x0a,0x40,0x1f,0x90,0x40,0x10,0xe0,0xff,0xa3,0xe0,0x9f,0xd3,0x94,0x38,0x40,0x12,0x12,0x0f,0x79,0x40,0x0d,0x90,0x40,0xf0,0xe0,0x94,0x0a,0x50,0x0d,0xe0,0x04,0xf0,0x80,0x08,0x90,0x40,0xf0,0xe0,0x60,0x02,0x14,0xf0,0x90,0x40,0xf0,0xe0,0xd3,0x94,0x05,0x40,0x03,0x7f,0x01,0x22,0x90,0x40,0xed,0xe0,0xfe,0xc3,0x94,0x0a,0x40,0x10,0x90,0x40,0x12,0xe0,0xff,0xa3,0xe0,0x9f,0xd3,0x94,0x40,0x40,0x03,0x7f,0x02,0x22,0x90,0x40,0x09,0xe0,0xfd,0x54,0x03,0xc3,0x94,0x03,0x40,0x08,0x90,0x40,0xc3,0xe0,0x94,0x03,0x50,0x29,0xee,0xc3,0x94,0x0a,0x50,0x14,0x12,0x0e,0x0c,0x20,0xe0,0x0e,0x90,0x40,0x15,0xe0,0x94,0xc8,0x12,0x0e,0x67,0x40,0x12,0x7f,0x03,0x22,0xd3,0x90,0x40,0x15,0xe0,0x94,0xf4,0x12,0x0f,0x80,0x40,0x03,0x7f,0x03,0x22,0x90,0x40,0x16,0xe0,0xfe,0xa3,0xe0,0xff,0xd3,0x94,0x64,0xee,0x94,0x00,0x40,0x09,0xd3,0x12,0x10,0xca,0x40,0x03,0x7f,0x04,0x22,0x90,0x40,0x11,0xe0,0xff,0xb4,0xff,0x13,0x90,0x40,0x10,0xe0,0x70,0x0d,0x90,0x40,0x13,0xe0,0xb4,0x7f,0x06,0x90,0x40,0x12,0xe0,0x60,0x3c,0x12,0x0e,0x60,0x40,0x37,0x12,0x0f,0x5f,0x40,0x32,0xed,0x54,0x03,0x94,0x03,0x50,0x2b,0x90,0x40,0x13,0xe0,0xc3,0x94,0x78,0x50,0x15,0x90,0x40,0x12,0xe0,0x94,0x08,0x40,0x0d,0xef,0x94,0xf8,0x50,0x08,0x90,0x40,0x10,0xe0,0x94,0x08,0x50,0x0d,0x12,0x10,0x35,0x60,0x08,0x12,0x10,0x0c,0x40,0x03,0x7f,0x09,0x22,0x12,0x0e,0x14,0xfe,0x30,0xe0,0x14,0xd3,0x90,0x40,0x31,0xe0,0x94,0x32,0x12,0x0f,0x03,0x40,0x08,0x12,0x0e,0x60,0x40,0x03,0x7f,0x0a,0x22,0xee,0x30,0xe0,0x14,0xd3,0x90,0x40,0x31,0xe0,0x94,0x14,0x12,0x0f,0x03,0x40,0x08,0x12,0x0f,0x79,0x40,0x03,0x7f,0x0b,0x22,0x7f,0x00,0x22,0x12,0x37,0xd6,0x8f,0x14,0x12,0x38,0xfa,0xef,0x70,0x06,0x90,0x40,0xd1,0xf0,0x80,0x0a,0x90,0x40,0xd1,0xe0,0xf4,0x60,0x03,0xe0,0x2f,0xf0,0x90,0x40,0xd1,0xe0,0xd3,0x94,0x16,0x40,0x0d,0xa3,0xe4,0xf0,0xa3,0x74,0x0f,0xf0,0xa3,0x74,0x01,0xf0,0xff,0x22,0x90,0x40,0xd4,0xe0,0xb4,0x01,0x1c,0x90,0x40,0xd2,0xe0,0x70,0x02,0xa3,0xe0,0x60,0x0d,0x90,0x40,0xd2,0x74,0xff,0xf5,0xf0,0x12,0x1d,0x39,0x7f,0x01,0x22,0xe4,0x90,0x40,0xd4,0xf0,0x90,0x40,0x10,0xe0,0xff,0xa3,0xe0,0xfe,0xc3,0x9f,0x40,0x5f,0xa3,0xe0,0xfd,0xa3,0xe0,0xfc,0x9d,0x40,0x56,0xee,0xb4,0xff,0x0a,0xef,0x70,0x07,0xec,0xb4,0x7f,0x03,0xed,0x60,0x5a,0xd3,0x90,0x40,0x15,0xe0,0x94,
146*53ee8cc1Swenshuai.xi 0x20,0x90,0x40,0x14,0xe0,0x94,0x03,0x40,0x4b,0xd3,0x90,0x40,0x17,0xe0,0x94,0x64,0x12,0x0f,0x66,0x40,0x3f,0x12,0x0e,0xc4,0x94,0x03,0x50,0x38,0x90,0x40,0x13,0xe0,0xc3,0x94,0x78,0x50,0x18,0x90,0x40,0x12,0xe0,0x94,0x08,0x40,0x10,0x90,0x40,0x11,0xe0,0x94,0xf8,0x50,0x08,0x90,0x40,0x10,0xe0,0x94,0x08,0x50,0x17,0x12,0x10,0x35,0x60,0x12,0x12,0x10,0x0c,0x40,0x0d,0x90,0x40,0xcd,0xe0,0x94,0x18,0x50,0x0d,0xe0,0x04,0xf0,0x80,0x08,0x90,0x40,0xcd,0xe0,0x60,0x02,0x14,0xf0,0x90,0x40,0xc5,0xe0,0xff,0x90,0x40,0xc4,0xe0,0x2f,0xff,0xe4,0x33,0xfe,0x90,0x40,0xc6,0xe0,0x7c,0x00,0x2f,0xff,0xec,0x3e,0xfe,0x12,0x10,0x1c,0x12,0x0e,0xc4,0x60,0x03,0x02,0x1a,0xaf,0x90,0x40,0x11,0xe0,0xb4,0xff,0x16,0x90,0x40,0x10,0xe0,0x70,0x10,0x90,0x40,0x13,0xe0,0xb4,0x7f,0x09,0x90,0x40,0x12,0xe0,0x70,0x03,0x02,0x1a,0xaf,0x90,0x40,0xbd,0xe0,0xb4,0xff,0x13,0x90,0x40,0xbf,0xe0,0x70,0x0d,0x90,0x40,0x13,0xe0,0xb4,0x7f,0x06,0x90,0x40,0x12,0xe0,0x60,0x68,0x90,0x40,0xbf,0xe0,0xfd,0x90,0x40,0x10,0xe0,0xf9,0x2d,0xfd,0xe4,0x33,0xfc,0x90,0x40,0xc0,0xe0,0x7a,0x00,0x2d,0xfd,0xea,0x3c,0xfc,0xc3,0xed,0x94,0x80,0xec,0x64,0x80,0x94,0x80,0x50,0x43,0xe9,0x90,0x40,0x11,0x12,0x10,0xbf,0x12,0x0d,0xda,0x40,0x37,0x90,0x40,0xbf,0xe0,0x90,0x40,0xbd,0x12,0x10,0xbf,0x12,0x0d,0xda,0x40,0x28,0x12,0x0e,0x60,0x40,0x23,0x12,0x0f,0x5f,0x40,0x1e,0xd3,0xef,0x94,0x10,0xee,0x94,0x00,0x40,0x15,0x90,0x40,0x07,0xe0,0x64,0x7c,0x60,0x0d,0x90,0x40,0xe1,0xe0,0x94,0x08,0x50,0x0d,0xe0,0x04,0xf0,0x80,0x08,0x90,0x40,0xe1,0xe0,0x60,0x02,0x14,0xf0,0x12,0x0e,0xc4,0x70,0x17,0x12,0x0f,0x6d,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x03,0x12,0x10,0x3c,0xef,0xd3,0x94,0x80,0x40,0x03,0x7f,0x07,0x22,0x90,0x40,0x07,0xe0,0xff,0xd3,0x94,0x02,0x40,0x13,0xef,0x94,0xfe,0x50,0x0e,0xa3,0xe0,0x54,0x7f,0xff,0x94,0x02,0x40,0x05,0xef,0x94,0x7e,0x40,0x25,0xd3,0x90,0x40,0x15,0xe0,0x94,0x00,0x12,0x0f,0x80,0x40,0x19,0xd3,0x90,0x40,0x17,0xe0,0x94,0x20,0x12,0x0f,0x66,0x40,0x0d,0x90,0x40,0x30,0xe0,0x70,0x02,0xa3,0xe0,0x60,0x03,0x7f,0x09,0x22,0x7f,0x00,0x22,0x90,0x41,0x00,0xe0,0x60,0x03,0x02,0x1b,0xe2,0x90,0x41,0x04,0xe0,0x70,0x09,0x90,0x40,0xb7,0xe0,0x60,0x03,0x02,0x1b,0xe2,0x90,0x40,0xa7,0xe0,0xff,0x64,0xfe,0x70,0x03,0x02,0x1b,0xe2,0x90,0x41,0x03,0xe0,0x6f,0x60,0x06,0xef,0x60,0x03,0x02,0x1b,0xe2,0x90,0x40,0x0a,0x12,0x0f,0x70,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x0c,0x90,0x40,0x07,0xe0,0xff,0x90,0x40,0x0a,0xe0,0xc3,0x9f,0xff,0xef,0xc3,0x94,0x10,0x50,0x1f,0x90,0x40,0x0b,0x12,0x0f,0x4e,0xfe,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x0a,0x12,0x0d,0xbf,0x90,0x40,0x0b,0xe0,0xc3,0x9f,0xff,0xef,0xc3,0x94,0x08,0x40,0x62,0x90,0x40,0x2a,0xe0,0xfe,0xa3,0xe0,0xff,0x90,0x40,0x3c,0xe0,0xfc,0xa3,0xe0,0xfd,0xd3,0x9f,0xec,0x9e,0x40,0x08,0xed,0x9f,0xff,0xec,0x9e,0xfe,0x80,0x15,0x90,0x40,0x3c,0xe0,0xfe,0xa3,0xe0,0xff,0xc3,0x90,0x40,0x2b,0xe0,0x9f,0xff,0x90,0x40,0x2a,0xe0,0x9e,0xfe,0xc3,0xef,0x94,0xf4,0xee,0x94,0x01,0x50,0x26,0x90,0x40,0x3e,0xe0,0xfe,0xa3,0xe0,0x78,0x02,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xff,0xc3,0x90,0x40,0x3d,0xe0,0x9f,0x90,0x40,0x3c,0xe0,0x9e,0x50,0x08,0x90,0x41,0x01,0x74,0x01,0xf0,0x80,0x13,0x90,0x41,0x01,0xe0,0x60,0x08,0x90,0x40,0x9b,0xe0,0x60,0x07,0x80,0x00,0xe4,0x90,0x41,0x01,0xf0,0x90,0x41,0x01,0xe0,0x60,0x35,0x7b,0x04,0xe4,0xfd,0x7f,0x74,0x7e,0x26,0x12,0x39,0xe5,0x90,0x26,0x75,0x74,0x0f,0xf0,0x90,0x26,0x7b,0x74,0x05,0xf0,0x90,0x26,0x73,0x74,0x40,0xf0,0x90,0x26,0x72,0x74,0x80,0xf0,0x90,0x40,0xfd,0x74,0x40,0xf0,0xa3,0x74,0x80,0xf0,0x90,0x41,0x01,0x74,0x01,0xf0,0x80,0x56,0x12,0x0d,0xbf,0x90,0x40,0xfd,0xe0,0xfe,0xd3,0x9f,0x40,0x05,0xee,0x9f,0xff,0x80,0x09,0x90,0x40,0xfd,0x12,0x0f,0x4e,0xc3,0x9f,0xff,0xef,0xc3,0x94,0x06,0x7b,0x04,0x40,0x04,0x7d,0x01,0x80,0x02,0xe4,0xfd,0x7f,0x74,0x7e,0x26,0x12,0x39,0xe5,0x12,0x0f,0x50,0x90,0x40,0xfd,0xf0,0x90,0x40,0x07,0xe0,0x90,0x40,0xfe,0xf0,0x90,0x26,0x75,0x74,0x0a,0xf0,0x90,0x26,0x7b,0x14,0xf0,0x90,0x26,0x73,0xe4,0xf0,0x90,0x26,0x72,0xf0,0x90,0x41,0x01,0xf0,0x90,0x41,0x01,0xe0,0xa3,0xf0,0x90,0x40,0xa7,0xe0,0x90,0x41,0x03,0xf0,0x90,0x40,0xb7,0xe0,0x90,0x41,0x04,0xf0,0x12,0x0e,0xd4,0x30,0xe0,0x04,0x7f,0x03,0x80,0x0c,0x12,0x0f,0x26,0x30,0xe0,0x04,0x7f,0x02,0x80,0x02,0x7f,0x01,0x90,0x40,0xff,0xe0,0x6f,0x60,0x04,0x7e,
147*53ee8cc1Swenshuai.xi 0x01,0x80,0x02,0x7e,0x00,0x90,0x41,0x00,0xee,0xf0,0x90,0x40,0xff,0xef,0xf0,0x22,0xef,0x8d,0xf0,0xa4,0xa8,0xf0,0xcf,0x8c,0xf0,0xa4,0x28,0xce,0x8d,0xf0,0xa4,0x2e,0xfe,0x22,0xbc,0x00,0x0b,0xbe,0x00,0x29,0xef,0x8d,0xf0,0x84,0xff,0xad,0xf0,0x22,0xe4,0xcc,0xf8,0x75,0xf0,0x08,0xef,0x2f,0xff,0xee,0x33,0xfe,0xec,0x33,0xfc,0xee,0x9d,0xec,0x98,0x40,0x05,0xfc,0xee,0x9d,0xfe,0x0f,0xd5,0xf0,0xe9,0xe4,0xce,0xfd,0x22,0xed,0xf8,0xf5,0xf0,0xee,0x84,0x20,0xd2,0x1c,0xfe,0xad,0xf0,0x75,0xf0,0x08,0xef,0x2f,0xff,0xed,0x33,0xfd,0x40,0x07,0x98,0x50,0x06,0xd5,0xf0,0xf2,0x22,0xc3,0x98,0xfd,0x0f,0xd5,0xf0,0xea,0x22,0xc5,0xf0,0xf8,0xa3,0xe0,0x28,0xf0,0xc5,0xf0,0xf8,0xe5,0x82,0x15,0x82,0x70,0x02,0x15,0x83,0xe0,0x38,0xf0,0x22,0xef,0x2b,0xff,0xee,0x3a,0xfe,0xed,0x39,0xfd,0xec,0x38,0xfc,0x22,0xe8,0x8f,0xf0,0xa4,0xcc,0x8b,0xf0,0xa4,0x2c,0xfc,0xe9,0x8e,0xf0,0xa4,0x2c,0xfc,0x8a,0xf0,0xed,0xa4,0x2c,0xfc,0xea,0x8e,0xf0,0xa4,0xcd,0xa8,0xf0,0x8b,0xf0,0xa4,0x2d,0xcc,0x38,0x25,0xf0,0xfd,0xe9,0x8f,0xf0,0xa4,0x2c,0xcd,0x35,0xf0,0xfc,0xeb,0x8e,0xf0,0xa4,0xfe,0xa9,0xf0,0xeb,0x8f,0xf0,0xa4,0xcf,0xc5,0xf0,0x2e,0xcd,0x39,0xfe,0xe4,0x3c,0xfc,0xea,0xa4,0x2d,0xce,0x35,0xf0,0xfd,0xe4,0x3c,0xfc,0x22,0x75,0xf0,0x08,0x75,0x82,0x00,0xef,0x2f,0xff,0xee,0x33,0xfe,0xcd,0x33,0xcd,0xcc,0x33,0xcc,0xc5,0x82,0x33,0xc5,0x82,0x9b,0xed,0x9a,0xec,0x99,0xe5,0x82,0x98,0x40,0x0c,0xf5,0x82,0xee,0x9b,0xfe,0xed,0x9a,0xfd,0xec,0x99,0xfc,0x0f,0xd5,0xf0,0xd6,0xe4,0xce,0xfb,0xe4,0xcd,0xfa,0xe4,0xcc,0xf9,0xa8,0x82,0x22,0xb8,0x00,0xc1,0xb9,0x00,0x59,0xba,0x00,0x2d,0xec,0x8b,0xf0,0x84,0xcf,0xce,0xcd,0xfc,0xe5,0xf0,0xcb,0xf9,0x78,0x18,0xef,0x2f,0xff,0xee,0x33,0xfe,0xed,0x33,0xfd,0xec,0x33,0xfc,0xeb,0x33,0xfb,0x10,0xd7,0x03,0x99,0x40,0x04,0xeb,0x99,0xfb,0x0f,0xd8,0xe5,0xe4,0xf9,0xfa,0x22,0x78,0x18,0xef,0x2f,0xff,0xee,0x33,0xfe,0xed,0x33,0xfd,0xec,0x33,0xfc,0xc9,0x33,0xc9,0x10,0xd7,0x05,0x9b,0xe9,0x9a,0x40,0x07,0xec,0x9b,0xfc,0xe9,0x9a,0xf9,0x0f,0xd8,0xe0,0xe4,0xc9,0xfa,0xe4,0xcc,0xfb,0x22,0x75,0xf0,0x10,0xef,0x2f,0xff,0xee,0x33,0xfe,0xed,0x33,0xfd,0xcc,0x33,0xcc,0xc8,0x33,0xc8,0x10,0xd7,0x07,0x9b,0xec,0x9a,0xe8,0x99,0x40,0x0a,0xed,0x9b,0xfd,0xec,0x9a,0xfc,0xe8,0x99,0xf8,0x0f,0xd5,0xf0,0xda,0xe4,0xcd,0xfb,0xe4,0xcc,0xfa,0xe4,0xc8,0xf9,0x22,0xe4,0x93,0xfc,0x74,0x01,0x93,0xfd,0x74,0x02,0x93,0xfe,0x74,0x03,0x93,0xff,0x22,0x90,0x40,0x04,0xe0,0x64,0x3c,0x70,0x6b,0x12,0x0e,0x1e,0xfe,0x30,0xe0,0x10,0xef,0xc4,0x13,0x54,0x07,0x20,0xe0,0x04,0x7f,0x01,0x80,0x1a,0x7f,0x00,0x80,0x16,0x12,0x0e,0x0c,0x30,0xe0,0x17,0xa3,0xe0,0x54,0x07,0xff,0x60,0x03,0xbf,0x02,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x90,0x40,0x9b,0xef,0xf0,0x80,0x06,0x90,0x40,0x9b,0x74,0x01,0xf0,0xe4,0x90,0x40,0x9c,0xf0,0xee,0x30,0xe0,0x08,0x90,0x40,0x0c,0xe0,0xc4,0x02,0x1f,0xf6,0x12,0x0e,0x0c,0x30,0xe0,0x16,0xa3,0xe0,0x54,0x07,0xff,0x64,0x04,0x60,0x03,0xbf,0x01,0x05,0x7f,0x01,0x02,0x1f,0xea,0x7f,0x00,0x02,0x1f,0xea,0xe4,0x02,0x1f,0xf9,0x12,0x0e,0x1e,0xfe,0x30,0xe0,0x17,0xef,0xc4,0x13,0x54,0x07,0x20,0xe0,0x0b,0xa3,0x12,0x0e,0x17,0x20,0xe0,0x04,0x7f,0x01,0x80,0x3b,0x7f,0x00,0x80,0x37,0x12,0x0e,0x0c,0x30,0xe0,0x22,0xa3,0xe0,0xff,0x54,0x07,0xfd,0x70,0x06,0x12,0x0f,0x26,0x30,0xe0,0x0c,0xbd,0x02,0x0d,0x90,0x40,0x0d,0x12,0x0e,0x17,0x30,0xe0,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x80,0x0f,0x90,0x40,0x0d,0x12,0x0e,0x17,0x20,0xe0,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x90,0x40,0x9b,0xef,0xf0,0xee,0x30,0xe0,0x1a,0x90,0x40,0x0c,0xe0,0xc4,0x13,0x54,0x07,0x20,0xe0,0x0b,0xa3,0x12,0x0e,0x17,0x30,0xe0,0x04,0x7f,0x01,0x80,0x2a,0x7f,0x00,0x80,0x26,0x12,0x0e,0x0c,0x30,0xe0,0x27,0xa3,0xe0,0xff,0x54,0x07,0xfe,0x70,0x06,0x12,0x0f,0x26,0x20,0xe0,0x0c,0xbe,0x03,0x0d,0x90,0x40,0x0d,0x12,0x0e,0x17,0x20,0xe0,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x90,0x40,0x9c,0xef,0xf0,0x80,0x05,0xe4,0x90,0x40,0x9c,0xf0,0x12,0x0e,0x1e,0x30,0xe0,0x17,0xef,0xc4,0x13,0x54,0x07,0x30,0xe0,0x0b,0xa3,0x12,0x0e,0x17,0x30,0xe0,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x80,0x27,0x12,0x0e,0x0c,0x30,0xe0,0x27,0xa3,0xe0,0xff,0x54,0x07,0xfe,0xbe,0x04,0x06,0x12,0x0f,0x26,0x20,0xe0,0x0c,0xbe,0x02,0x0d,0x90,0x40,0x0d,0x12,0x0e,0x17,0x20,0xe0,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x90,0x40,0x9d,0xef,0xf0,0x22,0x90,0x40,0x0d,0xe0,
148*53ee8cc1Swenshuai.xi 0x13,0x13,0x13,0x54,0x01,0x90,0x40,0x9d,0xf0,0x22,0x12,0x0d,0xbf,0xd3,0x94,0x40,0x40,0x06,0xef,0x24,0xc0,0xff,0x80,0x08,0x12,0x0d,0xbf,0xc3,0x74,0x40,0x9f,0xff,0x12,0x0e,0x83,0x40,0x06,0xed,0x24,0x80,0xfd,0x80,0x03,0x12,0x0e,0x8e,0x12,0x0f,0xa3,0xd3,0xef,0x94,0x08,0xee,0x64,0x80,0x94,0x80,0x40,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x90,0x40,0x61,0xef,0xf0,0x60,0x25,0x12,0x0e,0x29,0xac,0x06,0xad,0x07,0x90,0x40,0x3a,0xe0,0x25,0xe0,0xff,0xe4,0x33,0xfe,0xd3,0xed,0x9f,0xec,0x9e,0x40,0x0d,0x90,0x40,0x63,0xe0,0x94,0x18,0x50,0x0d,0xe0,0x04,0xf0,0x80,0x08,0x90,0x40,0x63,0xe0,0x60,0x02,0x14,0xf0,0x90,0x40,0x61,0xe0,0xf9,0x60,0x27,0x12,0x0e,0x29,0xaa,0x06,0xab,0x07,0x90,0x40,0x3a,0xe0,0xff,0x7e,0x00,0x7d,0x03,0x12,0x1c,0xd2,0xd3,0xeb,0x9f,0xea,0x9e,0x40,0x0d,0x90,0x40,0x64,0xe0,0x94,0x18,0x50,0x0d,0xe0,0x04,0xf0,0x80,0x08,0x90,0x40,0x64,0xe0,0x60,0x02,0x14,0xf0,0xe9,0x60,0x2b,0x12,0x0e,0x29,0xac,0x06,0xad,0x07,0x90,0x40,0x3a,0xe0,0x7e,0x00,0x78,0x02,0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0xff,0xd3,0xed,0x9f,0xec,0x9e,0x40,0x0d,0x90,0x40,0x65,0xe0,0x94,0x18,0x50,0x0d,0xe0,0x04,0xf0,0x80,0x08,0x90,0x40,0x65,0xe0,0x60,0x02,0x14,0xf0,0x90,0x40,0x65,0xe0,0xd3,0x94,0x04,0x40,0x04,0x7f,0x03,0x80,0x1c,0x90,0x40,0x64,0xe0,0xd3,0x94,0x04,0x40,0x04,0x7f,0x02,0x80,0x0f,0x90,0x40,0x63,0xe0,0xd3,0x94,0x04,0x40,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x90,0x40,0x62,0xef,0xf0,0xbf,0x03,0x0b,0x12,0x21,0x55,0xf0,0x44,0x40,0xf0,0x44,0x80,0xf0,0x22,0x90,0x40,0x62,0xe0,0xb4,0x02,0x08,0x12,0x21,0x55,0xf0,0x44,0x40,0x80,0x2f,0x90,0x40,0x62,0xe0,0xb4,0x01,0x16,0x7d,0x08,0x7f,0x2e,0x7e,0x2c,0x12,0x3b,0xaa,0x7f,0x03,0x12,0x31,0x8f,0x90,0x40,0x4a,0xe0,0x44,0x20,0x80,0x0f,0x7d,0x18,0x7f,0x2e,0x7e,0x2c,0x12,0x3b,0xaa,0x90,0x40,0x4a,0xe0,0x54,0xdf,0xf0,0x54,0xbf,0xf0,0x54,0x7f,0xf0,0x22,0x7d,0x08,0x7f,0x2e,0x7e,0x2c,0x12,0x3b,0xaa,0x7f,0x02,0x12,0x31,0x8f,0x90,0x40,0x4a,0xe0,0x44,0x20,0x22,0x7d,0x03,0x75,0x11,0x03,0x7f,0x03,0x7c,0x03,0xe4,0xf5,0x12,0xf5,0x13,0xf5,0x14,0xf5,0x15,0x90,0x40,0x92,0xe0,0xfe,0x60,0x06,0x90,0x40,0x91,0xe0,0x70,0x4b,0xee,0x60,0x24,0x90,0x40,0x68,0xe0,0xc3,0x94,0x08,0x40,0x04,0x7e,0xfe,0x80,0x02,0xae,0x05,0xad,0x06,0x90,0x40,0x69,0xe0,0xc3,0x94,0x08,0x40,0x04,0x7e,0xfe,0x80,0x02,0xae,0x11,0x8e,0x11,0x80,0x24,0x90,0x40,0x91,0xe0,0x60,0x1e,0x90,0x40,0x6a,0xe0,0xc3,0x94,0x08,0x40,0x04,0x7e,0xfe,0x80,0x02,0xae,0x07,0xaf,0x06,0x12,0x10,0xa4,0x40,0x04,0x7e,0xfe,0x80,0x02,0xae,0x04,0xac,0x06,0x90,0x40,0x7d,0xe0,0xd3,0x94,0x20,0x40,0x11,0x90,0x40,0x81,0xe0,0xd3,0x94,0x20,0x40,0x08,0x90,0x40,0x92,0xe0,0x60,0x02,0xe4,0xfd,0x90,0x40,0x7e,0xe0,0xd3,0x94,0x20,0x40,0x12,0x90,0x40,0x82,0xe0,0xd3,0x94,0x20,0x40,0x09,0x90,0x40,0x92,0xe0,0x60,0x03,0xe4,0xf5,0x11,0x90,0x40,0x7f,0xe0,0xd3,0x94,0x20,0x40,0x11,0x90,0x40,0x83,0xe0,0xd3,0x94,0x20,0x40,0x08,0x90,0x40,0x91,0xe0,0x60,0x02,0xe4,0xff,0x90,0x40,0x80,0xe0,0xd3,0x94,0x20,0x40,0x11,0x90,0x40,0x84,0xe0,0xd3,0x94,0x20,0x40,0x08,0x90,0x40,0x91,0xe0,0x60,0x02,0xe4,0xfc,0xef,0x33,0x95,0xe0,0x90,0x40,0x6a,0x12,0x10,0xac,0xf5,0x13,0xee,0x33,0xf5,0x12,0xaf,0x04,0xef,0x33,0x95,0xe0,0xa3,0x12,0x10,0xac,0xf5,0x15,0xee,0x33,0xf5,0x14,0x90,0x40,0x68,0xe0,0x2d,0xfd,0x7f,0x7c,0x7e,0x29,0x12,0x3b,0xaa,0x90,0x40,0x69,0xe0,0x25,0x11,0xfd,0x7f,0x7d,0x7e,0x29,0x12,0x3b,0xaa,0xad,0x15,0xac,0x14,0x7f,0x7a,0x7e,0x29,0x12,0x3b,0x74,0xe5,0x12,0x44,0x80,0xfc,0xad,0x13,0x7f,0x78,0x7e,0x29,0x12,0x3b,0x74,0x90,0x40,0x68,0x7f,0x27,0x12,0x0f,0x43,0x12,0x3b,0xaa,0x90,0x40,0x69,0x7f,0x26,0x12,0x0f,0x43,0x12,0x3b,0xaa,0x90,0x40,0x6a,0x12,0x10,0xb7,0xfd,0x7f,0x25,0x7e,0x2c,0x12,0x3b,0xaa,0x90,0x40,0x6b,0x12,0x10,0xb7,0xfd,0x7f,0x24,0x7e,0x2c,0x02,0x3b,0xaa,0x90,0x41,0x9b,0xe0,0x70,0x6f,0x12,0x32,0x6e,0xef,0x70,0x06,0x12,0x2a,0x16,0xef,0x60,0x0e,0xc3,0x90,0x40,0x3a,0xe0,0x94,0x0c,0x50,0x05,0x7d,0x20,0x02,0x23,0x33,0x12,0x11,0x0b,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0x12,0x0f,0x8f,0x40,0x3f,0x12,0x0e,0xcb,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0xef,0xc3,0x94,0x50,0x50,0x2b,0x12,0x0f,0x87,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0x12,0x0f,0xe7,0x50,0x14,0x12,0x0f,0x87,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,
149*53ee8cc1Swenshuai.xi 0x00,0xef,0x24,0x48,0xfd,0x80,0x02,0x7d,0x7c,0x80,0x02,0x7d,0x7c,0x7f,0x56,0x02,0x23,0xcc,0xd3,0x90,0x40,0x15,0xe0,0x94,0xc8,0x12,0x0e,0x67,0x40,0x21,0xd3,0x90,0x40,0x31,0xe0,0x94,0x20,0x12,0x0f,0x03,0x40,0x15,0x90,0x40,0x07,0xe0,0xb4,0x80,0x0e,0xa3,0xe0,0x54,0x7f,0xff,0xbf,0x40,0x06,0x75,0x11,0x30,0x02,0x23,0xb8,0x12,0x11,0x0b,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0x12,0x0f,0x8f,0x40,0x41,0x12,0x0e,0xcb,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0xef,0xc3,0x94,0x50,0x50,0x2d,0x12,0x0f,0x87,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0x12,0x0f,0xe7,0x50,0x14,0x12,0x0f,0x87,0x40,0x06,0xef,0x24,0x80,0xff,0x80,0x03,0x12,0x0e,0x00,0xef,0x24,0x48,0xff,0x80,0x02,0x7f,0x7c,0x8f,0x11,0x80,0x03,0x75,0x11,0x7c,0xc3,0x74,0x80,0x95,0x11,0xfd,0x7f,0x38,0x7e,0x29,0x12,0x3b,0xaa,0xe5,0x11,0x24,0x80,0xfd,0x7f,0x3a,0x7e,0x29,0x12,0x3b,0xaa,0x90,0x41,0x0c,0xe0,0x60,0x0f,0x7f,0x96,0x7e,0x20,0x12,0x00,0x0e,0xef,0x30,0xe1,0x04,0x7d,0x0e,0x80,0x02,0x7d,0x0c,0x7f,0x13,0x7e,0x29,0x12,0x3b,0xaa,0x12,0x0e,0xd4,0x30,0xe0,0x07,0x90,0x41,0x0c,0x74,0x01,0xf0,0x22,0x12,0x0f,0x26,0x30,0xe0,0x05,0xe4,0x90,0x41,0x0c,0xf0,0x22,0x12,0x10,0xd5,0x70,0x32,0x90,0x40,0x0c,0x12,0x10,0x6a,0x30,0xe0,0x09,0xef,0x64,0x03,0x70,0x3f,0x7f,0x04,0x80,0x3b,0xee,0xc4,0x54,0x0f,0x20,0xe0,0x34,0xed,0x20,0xe0,0x30,0xef,0x64,0x03,0x60,0x03,0xbf,0x02,0x04,0x7f,0x04,0x80,0x24,0xef,0x64,0x01,0x70,0x1f,0x7f,0x04,0x80,0x1b,0xbf,0x01,0x04,0x7f,0x02,0x80,0x14,0xbf,0x03,0x11,0x90,0x40,0x0c,0xe0,0xfe,0xc4,0x54,0x0f,0x30,0xe0,0x04,0x7f,0x02,0x80,0x02,0x7f,0x04,0xef,0x70,0x03,0x02,0x24,0xf5,0x14,0x60,0x53,0x14,0x60,0x27,0x14,0x60,0x13,0x80,0x00,0x90,0x40,0x48,0xe0,0x44,0x0f,0x12,0x25,0x09,0xe4,0xff,0x12,0x3b,0xb1,0x02,0x24,0xf2,0x12,0x10,0x2e,0x44,0x07,0x12,0x25,0x09,0x7f,0x01,0x12,0x3b,0xb1,0x1f,0x02,0x24,0xf2,0x12,0x10,0x2e,0x44,0x03,0x12,0x0e,0x0b,0x30,0xe0,0x0e,0x90,0x40,0x04,0xe0,0xb4,0x78,0x07,0x12,0x25,0x14,0x7f,0x02,0x80,0x09,0x12,0x0e,0x14,0x30,0xe0,0x06,0x12,0x25,0x1e,0x12,0x3b,0xb1,0xe4,0xff,0x80,0x3c,0x12,0x10,0x2e,0x44,0x01,0xf0,0x12,0x10,0xd5,0x70,0x47,0x12,0x0e,0x0c,0x30,0xe0,0x07,0x12,0x25,0x14,0x7f,0x02,0x80,0x09,0x12,0x0e,0x14,0x30,0xe0,0x06,0x12,0x25,0x1e,0x12,0x3b,0xb1,0x90,0x40,0x4f,0xe0,0xb4,0x02,0x04,0x7f,0x01,0x80,0x0d,0x90,0x40,0x4f,0xe0,0xb4,0x01,0x04,0x7f,0x04,0x80,0x02,0x7f,0x07,0x02,0x36,0x5c,0x12,0x10,0x2e,0x12,0x0f,0xfb,0x12,0x3b,0xaa,0xe4,0xff,0x12,0x36,0x5c,0xe4,0xff,0x12,0x3b,0xb1,0x22,0xf0,0x7d,0x0f,0x7f,0xa9,0x7e,0x29,0x12,0x3b,0xaa,0x22,0x7d,0x0f,0x7f,0xa9,0x7e,0x29,0x12,0x3b,0xaa,0x22,0x7d,0x5f,0x7f,0xa9,0x7e,0x29,0x12,0x3b,0xaa,0xe4,0xff,0x22,0x01,0x1f,0x1c,0x41,0x40,0x05,0x00,0x41,0x40,0x4c,0xe8,0x41,0x40,0x4f,0x02,0x41,0x40,0x51,0x00,0x41,0x40,0x52,0x00,0x41,0x40,0x53,0x0a,0x41,0x40,0x54,0x0a,0x41,0x40,0x55,0x0a,0x41,0x40,0x56,0x0a,0x41,0x40,0x57,0x02,0x41,0x40,0x58,0x0a,0x41,0x40,0x59,0x09,0x41,0x40,0x5a,0x02,0x41,0x40,0x5b,0x05,0x41,0x40,0x5c,0x32,0x41,0x40,0x5d,0x1a,0x41,0x40,0x5e,0x32,0x41,0x40,0x5f,0x1a,0x41,0x40,0x60,0x00,0x41,0x40,0x61,0x00,0x41,0x40,0x62,0x00,0x41,0x40,0x63,0x00,0x41,0x40,0x64,0x00,0x41,0x40,0x65,0x00,0x41,0x40,0x93,0x04,0x41,0x40,0x94,0x00,0x42,0x40,0x95,0x00,0x00,0x42,0x40,0x97,0x00,0x00,0x42,0x40,0x99,0x00,0x00,0x41,0x40,0xa2,0x00,0x41,0x40,0xa3,0x00,0x41,0x40,0xa7,0x01,0x42,0x40,0xa8,0x00,0x00,0x42,0x40,0xaa,0x00,0x00,0x42,0x40,0xac,0x00,0x00,0x41,0x40,0xd4,0x00,0x41,0x40,0xde,0x00,0x41,0x40,0xdf,0x00,0x41,0x40,0xe0,0x00,0x41,0x40,0xe9,0x00,0x41,0x40,0xea,0x00,0x41,0x40,0xeb,0x00,0x41,0x40,0xec,0x00,0x41,0x40,0xed,0x00,0x41,0x40,0xf3,0x00,0x41,0x40,0xf4,0x00,0x41,0x40,0xf5,0x00,0x41,0x40,0xf6,0x00,0x41,0x40,0xf7,0x00,0x41,0x40,0xf8,0x00,0x41,0x40,0xf9,0x00,0x41,0x40,0xfa,0x00,0x41,0x40,0xfb,0x00,0x41,0x40,0xfd,0x40,0x41,0x40,0xfe,0x80,0x41,0x40,0xff,0x00,0x41,0x41,0x01,0x00,0x41,0x41,0x02,0x00,0x41,0x41,0x03,0x00,0x41,0x41,0x04,0x00,0x42,0x41,0x05,0x00,0x00,0x41,0x41,0x08,0x00,0x41,0x41,0x09,0x00,0x41,0x41,0x0a,0x00,0x41,0x41,0x0b,0x00,0x01,0x38,0x00,0x41,0x41,0x0d,0x00,0x01,0x39,0x00,0x00,0x90,0x40,0x94,0xe0,0x70,0x2c,0x7f,0x32,0x12,0x27,0x1c,0x7f,0x33,0x12,0x27,0x14,0x7d,0x4b,0x12,0x27,0x44,
150*53ee8cc1Swenshuai.xi 0x7d,0x20,0x7f,0x35,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x7d,0x7f,0x36,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x20,0x12,0x27,0x05,0x90,0x40,0x99,0x02,0x26,0xd3,0x90,0x40,0x94,0xe0,0x64,0x01,0x70,0x13,0x12,0x26,0xe9,0x7d,0x10,0x12,0x27,0x24,0x7d,0x10,0x12,0x27,0x05,0x90,0x40,0x95,0x02,0x26,0xd3,0x90,0x40,0x94,0xe0,0x64,0x02,0x70,0x2b,0x7d,0x64,0x7f,0x32,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x40,0x7f,0x33,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x64,0x12,0x27,0x44,0x7f,0x35,0x12,0x27,0x14,0x7f,0x36,0x12,0x27,0x1c,0x7d,0x40,0x12,0x27,0x35,0x90,0x40,0x97,0x80,0x10,0x12,0x26,0xe9,0x7d,0x7f,0x12,0x27,0x24,0x7d,0x7f,0x12,0x27,0x35,0x90,0x40,0x95,0xcf,0xf0,0xa3,0xef,0xf0,0x90,0x40,0x94,0xe0,0xb4,0x03,0x03,0xe4,0xf0,0x22,0x90,0x40,0x94,0xe0,0x04,0xf0,0x22,0x7d,0x80,0x7f,0x32,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x7f,0x7f,0x33,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x80,0x7f,0x34,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7f,0x37,0x7e,0x26,0x12,0x3b,0xaa,0x90,0x40,0x2c,0xe0,0xff,0xa3,0xe0,0x22,0x7d,0x40,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7d,0x64,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7f,0x35,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x80,0x7f,0x36,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7f,0x37,0x7e,0x26,0x12,0x3b,0xaa,0x90,0x40,0x2c,0xe0,0xff,0xa3,0xe0,0x22,0x7f,0x34,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7f,0x02,0x75,0x11,0x02,0x75,0x12,0x02,0x75,0x13,0x02,0x90,0x40,0x92,0xe0,0xfe,0x60,0x06,0x90,0x40,0x91,0xe0,0x70,0x4b,0xee,0x60,0x24,0x90,0x40,0x68,0xe0,0xc3,0x94,0x08,0x40,0x04,0x7e,0xfe,0x80,0x02,0xae,0x07,0xaf,0x06,0x90,0x40,0x69,0xe0,0xc3,0x94,0x08,0x40,0x04,0x7e,0xfe,0x80,0x02,0xae,0x11,0x8e,0x11,0x80,0x24,0x90,0x40,0x91,0xe0,0x60,0x1e,0x90,0x40,0x6a,0xe0,0xc3,0x94,0x08,0x40,0x04,0x7e,0xfe,0x80,0x02,0xae,0x12,0x8e,0x12,0x12,0x10,0xa4,0x40,0x04,0x7e,0xfe,0x80,0x02,0xae,0x13,0x8e,0x13,0x90,0x40,0x7d,0xe0,0xd3,0x94,0x20,0x40,0x11,0x90,0x40,0x81,0xe0,0xd3,0x94,0x20,0x40,0x08,0x90,0x40,0x92,0xe0,0x60,0x02,0xe4,0xff,0x90,0x40,0x7e,0xe0,0xd3,0x94,0x20,0x40,0x12,0x90,0x40,0x82,0xe0,0xd3,0x94,0x20,0x40,0x09,0x90,0x40,0x92,0xe0,0x60,0x03,0xe4,0xf5,0x11,0x90,0x40,0x7f,0xe0,0xd3,0x94,0x20,0x40,0x12,0x90,0x40,0x83,0xe0,0xd3,0x94,0x20,0x40,0x09,0x90,0x40,0x91,0xe0,0x60,0x03,0xe4,0xf5,0x12,0x90,0x40,0x80,0xe0,0xd3,0x94,0x20,0x40,0x12,0x90,0x40,0x84,0xe0,0xd3,0x94,0x20,0x40,0x09,0x90,0x40,0x91,0xe0,0x60,0x03,0xe4,0xf5,0x13,0x90,0x40,0x68,0xe0,0x2f,0x7f,0x97,0x12,0x28,0x4b,0x90,0x40,0x69,0xe0,0x25,0x11,0x7f,0x96,0x12,0x28,0x4b,0x90,0x40,0x6a,0xe0,0x25,0x12,0xfd,0x7f,0x95,0x7e,0x29,0x12,0x3b,0xaa,0x90,0x40,0x6b,0xe0,0x25,0x13,0xfd,0x7f,0x94,0x7e,0x29,0x02,0x3b,0xaa,0xfd,0x7e,0x29,0x12,0x3b,0xaa,0x22,0x7f,0xcc,0x7e,0x29,0x12,0x3a,0x35,0xad,0x07,0x90,0x40,0x07,0x12,0x10,0xe6,0xff,0xa3,0xe0,0x54,0x80,0x4f,0xf0,0xec,0x12,0x10,0xb8,0xff,0xed,0x54,0x01,0x25,0xe0,0x4f,0x54,0x03,0xff,0xa3,0xe0,0x54,0xfc,0x4f,0xf0,0x7f,0xda,0x7e,0x29,0x12,0x3a,0x35,0x90,0x40,0x0a,0x12,0x10,0xe6,0xa3,0xf0,0x7f,0xc8,0x7e,0x29,0x12,0x39,0x1e,0x90,0x40,0x3c,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0xca,0x7e,0x29,0x12,0x39,0x1e,0x90,0x40,0x3e,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0xcb,0x7e,0x29,0x12,0x00,0x0e,0x90,0x40,0x0e,0xef,0xf0,0x7f,0xc9,0x7e,0x29,0x12,0x00,0x0e,0x90,0x40,0x0f,0xef,0xf0,0x7f,0xc0,0x7e,0x29,0x12,0x00,0x0e,0x90,0x40,0x10,0xef,0xf0,0x7f,0xc2,0x7e,0x29,0x12,0x00,0x0e,0x90,0x40,0x11,0xef,0xf0,0x7f,0xc1,0x7e,0x29,0x12,0x00,0x0e,0x90,0x40,0x12,0xef,0xf0,0x7f,0xc3,0x7e,0x29,0x12,0x00,0x0e,0x90,0x40,0x13,0x12,0x29,0x31,0x90,0x40,0x2e,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0x9a,0x7e,0x20,0x12,0x39,0x1e,0x90,0x40,0x46,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0x60,0x7e,0x2c,0x12,0x39,0x1e,0x90,0x40,0x24,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0xd0,0x7e,0x26,0x12,0x39,0x1e,0x90,0x40,0x2c,0xee,0xf0,0xa3,0x12,0x29,0x31,0x90,0x40,0x2a,0xee,0xf0,0xa3,0xef,0xf0,0x22,0xef,0xf0,0x7f,0xdc,0x7e,0x29,0x12,0x39,0x1e,0x22,0x8e,0x22,0x8f,0x23,0x8c,0x24,0x8d,0x25,0xe4,0xf5,0x27,0xf5,0x28,0x75,0x29,0x27,0x75,0x2a,0x10,0x30,0x00,0x03,0x02,0x2a,0x15,0x05,0x23,0xe5,0x23,0xae,0x22,0x70,0x02,0x05,0x22,0x14,0xf5,0x82,0x8e,0x83,0xe4,0x93,0xf5,0x26,0x70,0x03,0x02,0x2a,0x15,0x64,0x25,0x60,0x03,0x02,0x2a,0x0d,0x05,0x23,0xe5,0x23,0xae,0x22,0x70,0x02,0x05,0x22,0x14,0xf5,0x82,0x8e,0x83,0xe4,0x93,0x24,0x9c,0x60,0x15,0x24,0xfb,
151*53ee8cc1Swenshuai.xi 0x60,0x11,0x24,0xf1,0x60,0x04,0x24,0x20,0x70,0xc0,0x75,0x29,0x10,0x75,0x2a,0x00,0x75,0x28,0x01,0xe5,0x25,0x45,0x24,0x60,0x66,0xe5,0x2a,0x45,0x29,0x60,0xab,0xac,0x29,0xad,0x2a,0xae,0x24,0xaf,0x25,0x12,0x1c,0xe4,0xab,0x07,0xae,0x24,0xaf,0x25,0xac,0x29,0xad,0x2a,0x12,0x1c,0xe4,0x8c,0x24,0x8d,0x25,0xeb,0x60,0x03,0x75,0x27,0x01,0xe5,0x27,0x60,0x11,0xeb,0xd3,0x94,0x09,0xeb,0x40,0x04,0x24,0x37,0x80,0x02,0x24,0x30,0xff,0x12,0x3a,0x7e,0xe5,0x28,0x60,0x14,0xe5,0x29,0xc4,0xf8,0x54,0xf0,0xc8,0x68,0xf5,0x29,0xe5,0x2a,0xc4,0x54,0x0f,0x48,0xf5,0x2a,0x80,0xab,0xae,0x29,0xaf,0x2a,0x7c,0x00,0x7d,0x0a,0x12,0x1c,0xe4,0x8e,0x29,0x8f,0x2a,0x80,0x9a,0x7f,0x30,0x80,0x02,0xaf,0x26,0x12,0x3a,0x7e,0x02,0x29,0x54,0x22,0x12,0x0e,0x1e,0x30,0xe0,0x03,0x02,0x2a,0xd2,0xef,0xc4,0x54,0x0f,0x30,0xe0,0x03,0x02,0x2a,0xd2,0xa3,0x12,0x0e,0x17,0x20,0xe0,0x03,0x02,0x2a,0xd2,0x90,0x40,0xca,0xe0,0xff,0x70,0x1a,0x90,0x40,0x07,0xe0,0xb4,0x80,0x11,0xa3,0xe0,0x54,0x7f,0xfe,0xbe,0x40,0x09,0x90,0x40,0xca,0x74,0x01,0xf0,0x02,0x2a,0xd7,0x80,0x77,0xef,0xb4,0x01,0x16,0x90,0x40,0x07,0xe0,0xb4,0x80,0x05,0x12,0x10,0x63,0x60,0x08,0x90,0x40,0xca,0x74,0x02,0xf0,0x80,0x6b,0x80,0x5d,0x90,0x40,0xca,0xe0,0xff,0xb4,0x02,0x19,0x90,0x40,0x07,0xe0,0xb4,0x80,0x10,0xa3,0xe0,0x54,0x7f,0xfe,0xbe,0x40,0x08,0x90,0x40,0xca,0x74,0x03,0xf0,0x80,0x4a,0x80,0x3c,0xef,0xb4,0x03,0x19,0x90,0x40,0x07,0xe0,0xb4,0x80,0x10,0xa3,0xe0,0x54,0x7f,0xff,0xbf,0x40,0x08,0x90,0x40,0xca,0x74,0x04,0xf0,0x80,0x2d,0x80,0x1f,0x90,0x40,0xca,0xe0,0x64,0x04,0x70,0x23,0x90,0x40,0x07,0xe0,0xb4,0x80,0x05,0x12,0x10,0x63,0x60,0x0b,0x90,0x40,0xc9,0xe0,0x04,0xf0,0xe4,0xa3,0xf0,0x80,0x0c,0xe4,0x90,0x40,0xca,0xf0,0x80,0x01,0xe4,0x90,0x40,0xc9,0xf0,0x90,0x40,0xc9,0xe0,0xb4,0x21,0x02,0x14,0xf0,0x90,0x40,0xc9,0xe0,0xd3,0x94,0x10,0x40,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x22,0x7f,0xec,0x12,0x2b,0xa4,0x90,0x40,0x40,0xf0,0xa3,0xef,0xf0,0x7f,0xe0,0x12,0x2b,0xa4,0x90,0x40,0x14,0xf0,0xa3,0xef,0xf0,0x7f,0xe2,0x12,0x2b,0xad,0x90,0x40,0x16,0xf0,0xa3,0xef,0xf0,0x7f,0xe4,0x12,0x2b,0xad,0x90,0x40,0x18,0xf0,0xa3,0xef,0xf0,0x7f,0xe6,0x12,0x2b,0xb6,0x90,0x40,0x1a,0xf0,0xa3,0xef,0xf0,0x7f,0xe8,0x12,0x2b,0xb6,0x90,0x40,0x1c,0xf0,0xa3,0xef,0xf0,0x7f,0xea,0x7e,0x29,0x12,0x39,0x1e,0xee,0x54,0x3f,0x90,0x40,0x1e,0xf0,0xa3,0xef,0xf0,0x7f,0xde,0x7e,0x29,0x12,0x39,0x1e,0x90,0x40,0x30,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0xee,0x7e,0x29,0x12,0x39,0x1e,0x90,0x40,0x42,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0xd6,0x7e,0x29,0x12,0x39,0x1e,0x90,0x40,0x3a,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0xf8,0x7e,0x29,0x12,0x39,0x1e,0x90,0x40,0x44,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0xd8,0x7e,0x26,0x12,0x39,0x1e,0x90,0x40,0x20,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0xda,0x7e,0x26,0x12,0x39,0x1e,0x90,0x40,0x22,0xee,0xf0,0xa3,0xef,0xf0,0x22,0x7e,0x29,0x12,0x39,0x1e,0xee,0x54,0x3f,0x22,0x7e,0x29,0x12,0x39,0x1e,0xee,0x54,0x3f,0x22,0x7e,0x29,0x12,0x39,0x1e,0xee,0x54,0x3f,0x22,0x90,0x40,0x05,0xe5,0x0e,0xf0,0x90,0x40,0x00,0xee,0xf0,0xa3,0xef,0xf0,0xa3,0xec,0xf0,0xa3,0xed,0xf0,0xa3,0xeb,0xf0,0xe4,0xff,0xfe,0x74,0x78,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x74,0x74,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x74,0x70,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x74,0x6c,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x74,0x68,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x74,0x81,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x74,0x7d,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x74,0x8d,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x74,0x89,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x74,0x85,0x2f,0xf5,0x82,0x74,0x40,0x3e,0xf5,0x83,0xe4,0xf0,0x0f,0xbf,0x00,0x01,0x0e,0xef,0x64,0x04,0x4e,0x60,0x03,0x02,0x2b,0xd9,0xe4,0x90,0x40,0x7c,0xf0,0x90,0x40,0x92,0xf0,0x90,0x40,0x91,0xf0,0x90,0x40,0x48,0xf0,0xa3,0xf0,0x7d,0x42,0x7f,0x44,0x7e,0x2c,0x02,0x3b,0xaa,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0x30,0x98,0x74,0x85,0x99,0x18,0xc2,0x98,0x75,0x1a,0x02,0x90,0x41,0xad,0xe0,0xff,0xc3,0x94,0x11,0x50,0x0d,0x74,0x9c,0x2f,0xf5,0x82,0xe4,0x34,0x41,0xf5,0x83,0xe5,0x18,0xf0,0x90,0x41,
152*53ee8cc1Swenshuai.xi 0x9c,0xe0,0xc4,0x13,0x54,0x07,0x64,0x07,0x70,0x2e,0x90,0x41,0xad,0xe0,0xff,0x70,0x05,0xe0,0x04,0xf0,0x80,0x3d,0x90,0x41,0x9d,0xe0,0xfe,0xef,0xc3,0x9e,0x50,0x06,0x90,0x41,0xad,0xe0,0x04,0xf0,0x90,0x41,0x9d,0xe0,0x12,0x3b,0x6c,0x40,0x24,0x12,0x38,0x3d,0x50,0x18,0xd2,0x01,0x80,0x14,0x12,0x3b,0x64,0x50,0x03,0xe0,0x04,0xf0,0x12,0x3b,0x64,0x40,0x0e,0x12,0x38,0x3d,0x50,0x02,0xd2,0x01,0x90,0x41,0xad,0xe4,0xf0,0xf5,0x1a,0x30,0x99,0x05,0xc2,0x99,0x75,0x19,0x01,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0x7d,0xff,0x7f,0x4f,0x7e,0x29,0x12,0x3b,0xaa,0x12,0x30,0xa2,0x7d,0xc1,0x7f,0x02,0x7e,0x29,0x12,0x3b,0xaa,0x7d,0x41,0x7f,0x02,0x7e,0x29,0x12,0x3b,0xaa,0x7f,0x44,0x7e,0x2c,0x12,0x00,0x0e,0x90,0x40,0x4d,0xef,0xf0,0x12,0x37,0x24,0xef,0x60,0x50,0x12,0x28,0x52,0x90,0x40,0x9b,0xe0,0x60,0x03,0x12,0x2a,0xf0,0x90,0x40,0x52,0xe0,0xff,0x7e,0x00,0x12,0x11,0x15,0x12,0x1e,0x89,0x12,0x2f,0x96,0x12,0x1b,0x18,0x12,0x0e,0x1e,0x20,0xe0,0x07,0xef,0xc4,0x54,0x0f,0x30,0xe0,0x05,0x12,0x1f,0xfe,0x80,0x09,0x7d,0x18,0x7f,0x2e,0x7e,0x2c,0x12,0x3b,0xaa,0x12,0x05,0x52,0x90,0x40,0x50,0xef,0xf0,0x12,0x09,0xda,0x12,0x31,0x1b,0x12,0x22,0xc3,0x12,0x00,0x2e,0x80,0x0a,0x90,0x40,0x06,0xe0,0xb4,0x04,0x03,0x12,0x33,0x42,0x12,0x3b,0xa1,0x90,0x40,0x9b,0xe0,0x60,0x08,0x90,0x40,0x50,0xe0,0xff,0x12,0x24,0x08,0x12,0x30,0x22,0x7d,0xfe,0x7f,0x4f,0x7e,0x29,0x02,0x3b,0xaa,0x90,0x10,0x18,0xe0,0x44,0x80,0xf0,0x78,0x7f,0xe4,0xf6,0xd8,0xfd,0x75,0x36,0x4e,0x75,0x37,0x00,0x75,0x81,0x3c,0x02,0x2e,0x2d,0x02,0x35,0x32,0xe4,0x93,0xa3,0xf8,0xe4,0x93,0xa3,0x40,0x03,0xf6,0x80,0x01,0xf2,0x08,0xdf,0xf4,0x80,0x29,0xe4,0x93,0xa3,0xf8,0x54,0x07,0x24,0x0c,0xc8,0xc3,0x33,0xc4,0x54,0x0f,0x44,0x20,0xc8,0x83,0x40,0x04,0xf4,0x56,0x80,0x01,0x46,0xf6,0xdf,0xe4,0x80,0x0b,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x90,0x25,0x2a,0xe4,0x7e,0x01,0x93,0x60,0xbc,0xa3,0xff,0x54,0x3f,0x30,0xe5,0x09,0x54,0x1f,0xfe,0xe4,0x93,0xa3,0x60,0x01,0x0e,0xcf,0x54,0xc0,0x25,0xe0,0x60,0xa8,0x40,0xb8,0xe4,0x93,0xa3,0xfa,0xe4,0x93,0xa3,0xf8,0xe4,0x93,0xa3,0xc8,0xc5,0x82,0xc8,0xca,0xc5,0x83,0xca,0xf0,0xa3,0xc8,0xc5,0x82,0xc8,0xca,0xc5,0x83,0xca,0xdf,0xe9,0xde,0xe7,0x80,0xbe,0x90,0x40,0xa8,0xe0,0xfe,0xa3,0xe0,0xff,0x90,0x40,0xab,0xe0,0x2f,0xfd,0x90,0x40,0xaa,0xe0,0x3e,0xfc,0x90,0x40,0xac,0xe0,0xfa,0xa3,0xe0,0xfb,0x25,0xe0,0xff,0xea,0x33,0xfe,0xd3,0xef,0x9d,0xee,0x9c,0x40,0x0b,0x79,0x01,0x90,0x40,0x4f,0x74,0x01,0xf0,0x02,0x2f,0x06,0x12,0x0e,0x14,0x30,0xe0,0x22,0x90,0x40,0xab,0xe0,0x2b,0xff,0x90,0x40,0xaa,0xe0,0x3a,0x90,0x40,0x5b,0x12,0x0e,0xba,0x90,0x40,0x5a,0x12,0x0e,0x6e,0xef,0x9b,0xee,0x9a,0x40,0x05,0x79,0x04,0x02,0x2f,0x06,0x12,0x0e,0x0c,0x30,0xe0,0x13,0x12,0x0e,0xa4,0x90,0x40,0x57,0x12,0x0e,0x6e,0xef,0x9b,0xee,0x9a,0x40,0x04,0x79,0x04,0x80,0x1f,0x12,0x0e,0x0c,0x30,0xe0,0x17,0x12,0x0e,0xa4,0xaa,0x06,0xab,0x07,0x90,0x40,0x58,0x12,0x0e,0x72,0xef,0x9b,0xee,0x9a,0x40,0x04,0x79,0x03,0x80,0x02,0x79,0x02,0xaf,0x01,0x22,0x7f,0x02,0x75,0x14,0x04,0x75,0x15,0x0a,0x12,0x10,0x49,0x40,0x05,0xed,0x9e,0xfe,0x80,0x03,0x12,0x10,0x56,0xee,0xc3,0x94,0x10,0x40,0x14,0x90,0x40,0xeb,0xe0,0x94,0xff,0x50,0x03,0xe0,0x04,0xf0,0x90,0x40,0xeb,0xe0,0xc3,0x94,0x03,0x80,0x0c,0x90,0x40,0xeb,0xe0,0xd3,0x94,0x00,0x40,0x03,0xe0,0x14,0xf0,0x12,0x10,0x49,0x40,0x05,0xed,0x9e,0xfe,0x80,0x03,0x12,0x10,0x56,0xee,0xc3,0x94,0x05,0x50,0x0e,0x90,0x40,0xec,0xe0,0xc3,0x94,0xff,0x50,0x11,0xe0,0x04,0xf0,0x80,0x0c,0x90,0x40,0xec,0xe0,0xd3,0x94,0x00,0x40,0x03,0xe0,0x14,0xf0,0x90,0x40,0x14,0xe0,0xfc,0xa3,0xe0,0xfd,0x4c,0x60,0x17,0xd3,0xed,0x94,0xb8,0xec,0x94,0x0b,0x40,0x0e,0x90,0x40,0xae,0x12,0x0e,0x77,0x12,0x10,0xca,0x40,0x03,0x7f,0x01,0x22,0x7f,0x00,0x22,0x90,0x40,0x9c,0xe0,0x60,0x0d,0x7d,0x08,0x7f,0x16,0x7e,0x29,0x12,0x3b,0xaa,0x7d,0x08,0x80,0x2f,0x90,0x40,0x9d,0xe0,0x60,0x30,0x7f,0xd3,0x7e,0x29,0x12,0x00,0x0e,0x90,0x40,0x36,0xe4,0xf0,0xa3,0xef,0xf0,0x7f,0xd5,0x7e,0x29,0x12,0x00,0x0e,0x90,0x40,0x38,0xe4,0xf0,0xa3,0xef,0xf0,0x7d,0x60,0x7f,0x16,0x7e,0x29,0x12,0x3b,0xaa,0x7d,0x60,0x7f,0x17,0x7e,0x29,0x02,0x3b,0xaa,0x90,0x40,0x9b,0xe0,0x60,0x3c,0x90,0x40,0x32,0xe0,0xff,0xa3,0xe0,0x90,0x40,
153*53ee8cc1Swenshuai.xi 0x9e,0xcf,0xf0,0xa3,0xef,0xf0,0x90,0x40,0x34,0xe0,0xff,0xa3,0xe0,0x90,0x40,0xa0,0xcf,0xf0,0xa3,0xef,0xf0,0x7f,0xd2,0x7e,0x29,0x12,0x39,0x1e,0x90,0x40,0x32,0xee,0xf0,0xa3,0xef,0xf0,0x7f,0xd4,0x7e,0x29,0x12,0x39,0x1e,0x90,0x40,0x34,0xee,0xf0,0xa3,0xef,0xf0,0x22,0x90,0x40,0x66,0xe0,0xff,0x60,0x26,0x12,0x10,0xd5,0x70,0x21,0x90,0x40,0x9b,0xe0,0x70,0x06,0x90,0x41,0x0e,0xe0,0x60,0x67,0xef,0xb4,0x01,0x05,0x12,0x32,0xd9,0x80,0x58,0x90,0x40,0x66,0xe0,0xb4,0x02,0x03,0x12,0x32,0x00,0x80,0x4c,0x90,0x40,0x9b,0xe0,0x70,0x06,0x90,0x41,0x0e,0xe0,0x70,0x2a,0xe4,0xfd,0x7f,0x21,0x7e,0x26,0x12,0x3b,0xaa,0xe4,0xfd,0x7f,0x23,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x1d,0x7f,0x0f,0x7e,0x29,0x12,0x3b,0xaa,0x7d,0xf7,0x7f,0x10,0x7e,0x29,0x12,0x3b,0xaa,0xe4,0x90,0x41,0x0e,0xf0,0x22,0x90,0x40,0x66,0xe0,0xb4,0x01,0x05,0x12,0x32,0xd9,0x80,0x0a,0x90,0x40,0x66,0xe0,0xb4,0x02,0x03,0x12,0x32,0x00,0x90,0x41,0x0e,0x74,0x01,0xf0,0x22,0x7f,0xcf,0x7e,0x29,0x12,0x00,0x0e,0xad,0x07,0xed,0xa2,0xe6,0x12,0x10,0xdc,0xff,0x90,0x40,0x0c,0xe0,0x54,0xf7,0x4f,0xff,0xf0,0xed,0xa2,0xe5,0xe4,0x33,0x54,0x01,0xc4,0x54,0xf0,0xfe,0xef,0x54,0xef,0x4e,0xff,0xf0,0xed,0xa2,0xe4,0xe4,0x33,0x54,0x01,0xc4,0x33,0x54,0xe0,0xfe,0xef,0x54,0xdf,0x4e,0xf0,0xed,0xc3,0x13,0x54,0x07,0xff,0xa3,0xe0,0x54,0xf8,0x4f,0xff,0xf0,0xed,0x13,0x12,0x10,0xdc,0xfe,0xef,0x54,0xf7,0x4e,0xf0,0x7f,0xce,0x7e,0x29,0x12,0x00,0x0e,0xad,0x07,0xed,0x33,0xe4,0x33,0x54,0x01,0xff,0x90,0x40,0x0c,0xe0,0x54,0xfe,0x4f,0xff,0xf0,0xed,0xc4,0x54,0x03,0x25,0xe0,0xfe,0xef,0x54,0xf9,0x4e,0xf0,0x22,0x90,0x40,0x04,0xe0,0x64,0x3c,0x60,0x10,0x12,0x0e,0x1e,0x20,0xe0,0x0a,0xef,0xc4,0x54,0x0f,0x20,0xe0,0x03,0x12,0x26,0x43,0x12,0x37,0xd6,0xef,0x70,0x0d,0x12,0x0e,0x1e,0x20,0xe0,0x32,0xef,0xc4,0x54,0x0f,0x20,0xe0,0x2b,0xd3,0x90,0x40,0x96,0xe0,0x94,0x20,0x90,0x40,0x95,0xe0,0x94,0x4e,0x40,0x12,0x7d,0x0a,0x7f,0x98,0x7e,0x29,0x12,0x3b,0xaa,0x90,0x40,0x48,0xe0,0x44,0x10,0xf0,0x80,0x06,0x12,0x31,0x81,0x54,0xef,0xf0,0x7d,0xc6,0x80,0x08,0x12,0x31,0x81,0x54,0xef,0xf0,0x7d,0x06,0x7f,0x3f,0x7e,0x29,0x12,0x3b,0xaa,0x22,0x7d,0x4a,0x7f,0x98,0x7e,0x29,0x12,0x3b,0xaa,0x90,0x40,0x48,0xe0,0x22,0x8f,0x11,0x90,0x40,0x60,0xe0,0x65,0x11,0x60,0x49,0xe5,0x11,0x24,0xfe,0x60,0x1e,0x14,0x60,0x25,0x80,0x00,0x7d,0x20,0x7f,0x91,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0xf3,0x7f,0x93,0x7e,0x26,0x12,0x3b,0xaa,0x12,0x31,0xf6,0x7d,0x98,0x80,0x18,0x12,0x31,0xe3,0x12,0x31,0xf6,0x7d,0x18,0x80,0x0e,0x12,0x31,0xe3,0x7d,0x60,0x7f,0x98,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x18,0x7f,0x9b,0x7e,0x26,0x12,0x3b,0xaa,0x90,0x40,0x60,0xe5,0x11,0xf0,0x22,0x7d,0x18,0x7f,0x91,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0xf2,0x7f,0x93,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7d,0x40,0x7f,0x98,0x7e,0x26,0x12,0x3b,0xaa,0x22,0x7d,0x84,0x7f,0x25,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0xff,0x7f,0x21,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x1c,0x7f,0x0f,0x7e,0x29,0x12,0x3b,0xaa,0x12,0x0f,0x0a,0x60,0x14,0x14,0x60,0x11,0x14,0x60,0x1b,0x14,0x60,0x28,0x24,0x04,0x70,0x36,0x12,0x32,0x64,0x7d,0x0c,0x80,0x1f,0x7d,0x03,0x7f,0x11,0x7e,0x29,0x12,0x3b,0xaa,0x7d,0x04,0x80,0x12,0x12,0x32,0x64,0x7d,0x0c,0x7f,0x23,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0xff,0x80,0x0b,0x7d,0x04,0x7f,0x23,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0xf7,0x7f,0x10,0x7e,0x29,0x12,0x3b,0xaa,0x22,0xe4,0xfd,0x7f,0x11,0x7e,0x29,0x12,0x3b,0xaa,0x22,0x12,0x0e,0x1e,0x20,0xe0,0x50,0xef,0xc4,0x54,0x0f,0x20,0xe0,0x49,0xa3,0x12,0x0e,0x17,0x30,0xe0,0x42,0x90,0x40,0xc8,0xe0,0xff,0x30,0xe0,0x15,0x90,0x40,0x07,0xe0,0xb4,0x80,0x05,0x12,0x10,0x63,0x60,0x2e,0xef,0xf4,0x90,0x40,0xc8,0x60,0x20,0x80,0x16,0x90,0x40,0x07,0xe0,0xb4,0x80,0x1c,0xa3,0xe0,0x54,0x7f,0xff,0xbf,0x40,0x14,0x90,0x40,0xc8,0xe0,0xf4,0x60,0x05,0xe0,0x04,0xf0,0x80,0x0f,0x90,0x40,0xc8,0xe0,0x14,0xf0,0x80,0x07,0x80,0x00,0xe4,0x90,0x40,0xc8,0xf0,0x90,0x40,0xc8,0xe0,0xd3,0x94,0x10,0x40,0x04,0x7f,0x01,0x80,0x02,0x7f,0x00,0x22,0x7d,0x84,0x7f,0x25,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0xff,0x7f,0x21,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x1c,0x7f,0x0f,0x7e,0x29,0x12,0x3b,0xaa,0x12,0x0f,0x0a,0x60,0x11,0x14,0x60,0x12,0x14,0x60,0x1a,0x14,0x60,0x2d,0x24,0x04,0x70,0x3b,0x7d,0x02,0x80,0x06,0x7d,0x03,0x80,0x02,0x7d,0x04,0x7f,0x11,0x7e,0x29,0x12,0x3b,0xaa,0x80,0x16,0xe4,0xfd,0x7f,0x11,0x7e,0x29,0x12,
154*53ee8cc1Swenshuai.xi 0x3b,0xaa,0x7d,0x0c,0x7f,0x23,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0xff,0x80,0x0b,0x7d,0x04,0x7f,0x23,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0xf7,0x7f,0x10,0x7e,0x29,0x12,0x3b,0xaa,0x22,0x7f,0xc6,0x7e,0x29,0x12,0x00,0x0e,0x12,0x0e,0x0c,0x30,0xe0,0x40,0xa3,0x12,0x10,0x6a,0x20,0xe0,0x07,0xee,0x54,0x07,0x64,0x01,0x60,0x0e,0xed,0x30,0xe0,0x1a,0x90,0x40,0x0d,0xe0,0x54,0x07,0xfe,0xbe,0x03,0x10,0xef,0x54,0x07,0x24,0x02,0x90,0x40,0xfc,0xf0,0x75,0xf0,0x05,0x84,0xe5,0xf0,0xf0,0x90,0x40,0xfc,0xe0,0xc4,0x33,0x54,0xe0,0xfd,0x7f,0x25,0x7e,0x26,0x12,0x3b,0xaa,0x7d,0x80,0x80,0x02,0xe4,0xfd,0x7f,0x23,0x7e,0x26,0x12,0x3b,0xaa,0x22,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0x90,0x2b,0x10,0xe0,0xf5,0x0f,0x90,0x2b,0x08,0xf0,0xe4,0xf0,0xe5,0x0f,0x13,0x50,0x03,0x12,0x3b,0x53,0xe5,0x0f,0xa2,0xe1,0x50,0x03,0x12,0x39,0x62,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0xc2,0x88,0xd2,0xa8,0xc2,0x8a,0xd2,0xaa,0xe4,0x7b,0xe8,0x7a,0x03,0xf9,0xf8,0xaf,0x1e,0xae,0x1d,0xad,0x1c,0xac,0x1b,0x12,0x1d,0xe7,0xef,0x24,0x06,0xff,0xe4,0x3e,0xfe,0xe4,0x3d,0xfd,0xe4,0x3c,0xfc,0xe4,0x7b,0x0c,0xfa,0xf9,0xf8,0x12,0x1d,0xe7,0xc3,0xe4,0x9f,0xf5,0x2c,0xe4,0x9e,0xf5,0x2b,0xe5,0x89,0x54,0xf0,0x44,0x01,0xf5,0x89,0xe5,0x2b,0xf5,0x8c,0x85,0x2c,0x8a,0xd2,0x8c,0xd2,0xa9,0xd2,0xaf,0xc2,0x07,0xc2,0x08,0x22,0xc0,0xe0,0xc0,0x83,0xc0,0x82,0xc0,0xd0,0xe5,0x2e,0xb4,0xff,0x0d,0xe5,0x2d,0xb4,0xff,0x08,0x75,0x2d,0x00,0x75,0x2e,0x00,0x80,0x08,0x05,0x2e,0xe5,0x2e,0x70,0x02,0x05,0x2d,0xe5,0x30,0xb4,0xd0,0x13,0xe5,0x2f,0xb4,0x07,0x0e,0x75,0x2f,0x00,0x75,0x30,0x00,0x90,0x41,0xae,0x74,0x01,0xf0,0x80,0x08,0x05,0x30,0xe5,0x30,0x70,0x02,0x05,0x2f,0xe5,0x2b,0xf5,0x8c,0x85,0x2c,0x8a,0xd0,0xd0,0xd0,0x82,0xd0,0x83,0xd0,0xe0,0x32,0xe4,0xf5,0x19,0x7f,0x02,0xfe,0xfd,0xfc,0xab,0x1e,0xaa,0x1d,0xa9,0x1c,0xa8,0x1b,0x12,0x1d,0x5c,0xe4,0x7b,0x80,0x7a,0x25,0xf9,0xf8,0x12,0x1d,0xe7,0xe4,0x7b,0x40,0xfa,0xf9,0xf8,0x12,0x1d,0xe7,0xc3,0xe4,0x9f,0xff,0x74,0x04,0x9e,0xad,0x07,0x75,0x98,0x50,0x43,0x87,0x80,0xf5,0xba,0x8d,0xaa,0x43,0xd8,0x80,0xc2,0x99,0xd2,0xac,0xd2,0xaf,0xc2,0x01,0xc2,0x02,0xc2,0x03,0xe4,0xf5,0x1a,0x90,0x41,0xad,0xf0,0x22,0xe4,0xc2,0x04,0x78,0x3c,0x76,0x14,0x60,0x03,0x12,0x38,0x6f,0x12,0x39,0xa6,0x7f,0x06,0x7e,0x21,0x12,0x39,0x1e,0xc0,0x06,0xc0,0x07,0x7f,0x08,0x7e,0x21,0x12,0x39,0x1e,0xc0,0x06,0xc0,0x07,0x7f,0x47,0x7e,0x2c,0x12,0x00,0x0e,0xab,0x07,0x75,0x0e,0x21,0xd0,0x05,0xd0,0x04,0xd0,0x07,0xd0,0x06,0x12,0x2b,0xbf,0x7f,0x02,0x12,0x3b,0x41,0x12,0x00,0x06,0x7b,0x01,0x7d,0x01,0x7f,0x49,0x7e,0x1e,0x02,0x39,0xc7,0x75,0x08,0x01,0xc2,0x00,0x7f,0x48,0x7e,0x2c,0x12,0x00,0x0e,0x12,0x37,0x64,0x7f,0x01,0x12,0x38,0xa0,0x12,0x34,0x93,0x12,0x33,0xee,0x12,0x34,0xe3,0x7e,0x3a,0x7f,0xf9,0x12,0x3a,0xaa,0xa2,0x03,0xe4,0x33,0xff,0x12,0x3a,0x1b,0x90,0x41,0xae,0xe0,0x60,0x02,0xe4,0xf0,0x12,0x00,0x29,0x12,0x3b,0x8d,0xe5,0x08,0x60,0xe6,0x7b,0x0f,0x7d,0x01,0x7f,0x45,0x7e,0x2c,0x12,0x3a,0x94,0xe4,0xf5,0x08,0x80,0xd6,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0xd0,0x75,0xd0,0x00,0xc0,0x00,0xc0,0x01,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0x90,0x2b,0x28,0xe0,0xff,0x90,0x2b,0x20,0xf0,0xe4,0xf0,0xef,0x13,0x50,0x03,0x12,0x38,0x0a,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0xd0,0xd0,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0x90,0x40,0x06,0xe0,0xfe,0xb4,0x01,0x03,0x7f,0x03,0x22,0xee,0xb4,0x03,0x03,0x7f,0x0a,0x22,0x90,0x40,0x06,0xe0,0xb4,0x02,0x03,0x7f,0x07,0x22,0x12,0x3a,0x67,0x8f,0x13,0x7f,0x43,0x7e,0x2c,0x12,0x00,0x0e,0xef,0x54,0x0f,0xf5,0x14,0x7f,0x43,0x7e,0x2c,0x12,0x00,0x0e,0xef,0x54,0xf0,0xc4,0x54,0x0f,0xff,0xe5,0x13,0xb4,0x01,0x05,0x85,0x14,0x12,0x80,0x02,0x8f,0x12,0xaf,0x12,0x22,0x8e,0x09,0x8f,0x0a,0xe5,0x0a,0x24,0x01,0x12,0x37,0xb3,0xfb,0x7a,0x01,0xf9,0xf8,0x12,0x1d,0x5c,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xe5,0x0a,0x24,0x02,0x12,0x37,0xb3,0xfb,0xfa,0x79,0x01,0xf8,0x12,0x1d,0x5c,0xd0,0x03,0xd0,0x02,0xd0,0x01,0xd0,0x00,0x12,0x1d,0x4f,0xa8,0x04,0xa9,0x05,0xaa,0x06,0xab,0x07,0xaf,
155*53ee8cc1Swenshuai.xi 0x0a,0xae,0x09,0x12,0x37,0xb8,0x12,0x1d,0x4f,0x22,0x8f,0x11,0xe5,0x11,0x60,0x20,0x90,0x40,0x4e,0x74,0x01,0x12,0x36,0x95,0xe5,0x11,0x25,0xe0,0x25,0xe0,0x24,0x1c,0xfd,0x7b,0xfe,0x7f,0x87,0x7e,0x29,0x12,0x3a,0x94,0x7b,0x03,0x7d,0x03,0x80,0x0b,0xe4,0x90,0x40,0x4e,0x12,0x36,0x95,0x7b,0x03,0xe4,0xfd,0x7f,0x9b,0x7e,0x29,0x12,0x3a,0x94,0x22,0xf0,0x7b,0x02,0xfd,0x7f,0x81,0x7e,0x29,0x12,0x39,0xe5,0x22,0x12,0x0e,0xd4,0x30,0xe0,0x04,0x7d,0x09,0x80,0x02,0x7d,0x07,0x74,0x01,0x7e,0x00,0xa8,0x05,0x08,0x80,0x05,0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0xff,0xd3,0x90,0x40,0x31,0xe0,0x9f,0x90,0x40,0x30,0xe0,0x9e,0x40,0x13,0xe0,0xfe,0xa3,0xe0,0xa8,0x05,0x08,0x80,0x05,0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xfc,0x80,0x02,0xe4,0xfc,0xaf,0x04,0x22,0x8e,0x09,0x8f,0x0a,0xad,0x0e,0x12,0x3b,0xaa,0xe5,0x0a,0x24,0x01,0xff,0xe4,0x35,0x09,0xfe,0xc0,0x06,0xc0,0x07,0xe4,0xfb,0x7a,0x01,0xf9,0x12,0x37,0xc0,0xd0,0x07,0xd0,0x06,0x12,0x3b,0xaa,0xe5,0x0a,0x24,0x02,0xff,0xe4,0x35,0x09,0xfe,0xc0,0x06,0xc0,0x07,0xe4,0xfb,0xfa,0x79,0x01,0x12,0x37,0xc0,0xd0,0x07,0xd0,0x06,0x02,0x3b,0xaa,0x90,0x40,0x4d,0xe0,0x54,0x0f,0xf5,0x11,0x90,0x40,0x06,0xe0,0x65,0x11,0x60,0x16,0xaf,0x11,0x12,0x3b,0x1d,0x90,0x40,0x06,0xe0,0x64,0x04,0x60,0x09,0xe4,0xfd,0x7f,0x23,0x7e,0x26,0x12,0x3b,0xaa,0xe5,0x11,0x70,0x02,0x80,0x0a,0x12,0x35,0xca,0x90,0x40,0x52,0xef,0xf0,0x70,0x07,0xff,0x12,0x3b,0x1d,0x7f,0x00,0x22,0x7f,0x01,0x22,0x8f,0x09,0xe5,0x09,0xd3,0x94,0x04,0x40,0x05,0xe4,0xf5,0x0a,0x80,0x03,0x75,0x0a,0x01,0xe5,0x0a,0x60,0x17,0x12,0x3a,0x01,0x12,0x1d,0x5c,0x8f,0x1e,0x8e,0x1d,0x8d,0x1c,0x8c,0x1b,0x12,0x3a,0x01,0x12,0x1d,0xe7,0x8f,0x31,0x22,0x75,0x1e,0x00,0x75,0x1d,0x1b,0x75,0x1c,0xb7,0x75,0x1b,0x00,0x75,0x31,0x01,0x22,0xf8,0xaf,0x0e,0xae,0x0d,0xad,0x0c,0xac,0x0b,0x12,0x1d,0xe7,0x85,0x0a,0x82,0x85,0x09,0x83,0x22,0xff,0xe4,0x35,0x09,0xfe,0x12,0x00,0x0e,0xe4,0xfc,0xfd,0xfe,0x22,0xf8,0xaf,0x0e,0xae,0x0d,0xad,0x0c,0xac,0x0b,0x12,0x1d,0xe7,0xad,0x07,0x22,0x8f,0x82,0x8e,0x83,0xe0,0xff,0x22,0x7f,0x40,0x7e,0x24,0x12,0x00,0x0e,0xef,0x54,0x11,0x60,0x25,0x7f,0x6c,0x7e,0x24,0x12,0x00,0x0e,0xef,0x54,0x1f,0x60,0x19,0x7b,0x01,0x7d,0x01,0x74,0x26,0xff,0xfe,0x12,0x39,0xe5,0x7b,0x03,0x7d,0x03,0x7f,0x7d,0x7e,0x26,0x12,0x3b,0x0b,0x7f,0x01,0x22,0x7f,0x00,0x22,0x90,0x24,0x0d,0xe0,0xf5,0x10,0x90,0x24,0x05,0xf0,0xe4,0xf0,0xe5,0x10,0x13,0x50,0x02,0xd2,0x04,0x90,0x24,0x0e,0xe0,0xf5,0x10,0xa2,0xe3,0x50,0x02,0xd2,0x05,0xe5,0x10,0xa2,0xe1,0x50,0x05,0x12,0x00,0x26,0xc2,0x05,0x90,0x24,0x0a,0xe5,0x10,0xf0,0xe4,0xf0,0x22,0x90,0x41,0x9c,0xe0,0xc4,0x13,0x54,0x07,0xfd,0xbd,0x07,0x05,0xa3,0xe0,0xff,0x80,0x02,0xaf,0x05,0xe4,0xfe,0xfd,0xed,0xc3,0x9f,0x50,0x10,0x74,0x9c,0x2d,0xf5,0x82,0xe4,0x34,0x41,0xf5,0x83,0xe0,0x2e,0xfe,0x0d,0x80,0xeb,0xbe,0xff,0x02,0xd3,0x22,0xc3,0x22,0xe4,0xff,0xfe,0x12,0x36,0x14,0x12,0x3b,0x8d,0xe4,0xf5,0x0e,0xf5,0x0d,0xf5,0x0c,0xf5,0x0b,0x7f,0xe0,0x7e,0x20,0x12,0x36,0xe3,0xe4,0xf5,0x0e,0xf5,0x0d,0xf5,0x0c,0xf5,0x0b,0x7f,0xe0,0x7e,0x20,0x12,0x39,0x40,0xe4,0xff,0x12,0x3a,0xe6,0x02,0x3b,0x98,0x8f,0x09,0xe5,0x09,0xc3,0x94,0x08,0x40,0x05,0xe4,0xf5,0x0a,0x80,0x03,0x75,0x0a,0x01,0xe4,0xff,0x12,0x3b,0x82,0xe5,0x0a,0x60,0x15,0xe5,0x09,0x25,0xe0,0x25,0xe0,0xfd,0x7b,0x1c,0x7f,0x4c,0x7e,0x3c,0x12,0x3a,0x94,0x7f,0x01,0x12,0x3b,0x82,0x22,0x90,0x40,0xcb,0xe0,0xa3,0xf0,0x90,0x40,0xa7,0xe0,0x90,0x40,0xcb,0xf0,0x90,0x40,0xa7,0xef,0xf0,0xe4,0xa3,0xf0,0xa3,0xf0,0xa3,0xf0,0xa3,0xf0,0xa3,0xf0,0xa3,0xf0,0xbf,0xfe,0x06,0x12,0x10,0xfa,0xe4,0xa3,0xf0,0x22,0xc3,0x90,0x40,0x2f,0xe0,0x94,0x64,0x90,0x40,0x2e,0xe0,0x94,0x00,0x50,0x12,0x90,0x40,0x07,0xe0,0xb4,0x80,0x0b,0xa3,0xe0,0x54,0x7f,0xff,0xbf,0x40,0x03,0x7f,0x01,0x22,0x7f,0x00,0x22,0xad,0x07,0xac,0x06,0xed,0x24,0x01,0xff,0xe4,0x3c,0xfe,0x12,0x00,0x0e,0xef,0x7b,0x00,0xfa,0xaf,0x05,0xae,0x04,0x12,0x00,0x0e,0x7e,0x00,0xeb,0x2f,0xff,0xee,0x3a,0xfe,0x22,0x8e,0x09,0x8f,0x0a,0x12,0x37,0xac,0xe5,0x0e,0xf0,0xe4,0xfb,0x7a,0x01,0xf9,0x12,0x37,0xa0,0xa3,0xef,0xf0,0xe4,0xfb,0xfa,0x79,0x01,0x12,0x37,0xa0,0xa3,0xa3,0xef,0xf0,0x22,0x78,0x3b,0xe6,0xb4,0xff,0x04,0xe4,0xf6,0x80,0x03,0x78,0x3b,0x06,0xe5,0x33,0x45,0x32,0x60,0x08,0xe5,0x33,0x15,0x33,0x70,0x02,0x15,0x32,0x78,0x3c,0xe6,0x60,0x01,0x16,0x22,
156*53ee8cc1Swenshuai.xi 0x08,0x00,0x00,0x04,0x00,0x00,0x9c,0x05,0x00,0x04,0x62,0x11,0xdc,0x12,0x00,0x04,0x16,0x07,0x00,0x00,0x02,0x00,0x32,0x01,0x1f,0x06,0x75,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x7f,0x3d,0x7e,0x1e,0x12,0x00,0x0e,0x90,0x41,0x9b,0xef,0xf0,0x70,0x02,0xf0,0x22,0x90,0x41,0x9b,0xe0,0xb4,0x01,0x04,0x74,0x01,0xf0,0x22,0xe4,0x90,0x41,0x9b,0xf0,0x22,0x8e,0x0b,0x8f,0x0c,0xac,0x05,0x12,0x00,0x0e,0xad,0x07,0xec,0x60,0x05,0xeb,0x42,0x05,0x80,0x04,0xeb,0xf4,0x52,0x05,0xaf,0x0c,0xae,0x0b,0x02,0x3b,0xaa,0x8e,0x15,0x8f,0x16,0x12,0x37,0xcf,0xed,0x60,0x05,0xeb,0x42,0x07,0x80,0x04,0xeb,0xf4,0x52,0x07,0x85,0x16,0x82,0x85,0x15,0x83,0xef,0xf0,0x22,0xe5,0x09,0x25,0xe0,0x25,0xe0,0x24,0xbf,0xf5,0x82,0xe4,0x34,0x3a,0xf5,0x83,0x12,0x1e,0x79,0xe4,0x7b,0xe8,0x7a,0x03,0xf9,0xf8,0x22,0x30,0x07,0x11,0xc2,0x07,0xe5,0x1a,0x60,0x08,0xd5,0x1a,0x05,0xe4,0x90,0x41,0xad,0xf0,0xef,0x70,0x05,0x30,0x08,0x02,0xc2,0x08,0x22,0xad,0x07,0xac,0x06,0x8d,0x82,0x8c,0x83,0xa3,0xe0,0xfe,0x8d,0x82,0x8c,0x83,0xe0,0x7c,0x00,0x24,0x00,0xff,0xec,0x3e,0xfe,0x22,0x8e,0x34,0x8f,0x35,0xab,0x05,0xaa,0x04,0x12,0x3b,0xaa,0xe5,0x35,0x24,0x01,0xff,0xe4,0x35,0x34,0xfe,0xad,0x02,0x02,0x3b,0xaa,0x12,0x0e,0xd4,0x30,0xe0,0x04,0x7f,0x03,0x80,0x0c,0x12,0x0f,0x26,0x30,0xe0,0x04,0x7f,0x02,0x80,0x02,0x7f,0x01,0x22,0x8f,0x99,0x30,0xaf,0x0b,0x30,0xac,0x08,0xe5,0x19,0x60,0xf6,0xe4,0xf5,0x19,0x22,0x30,0x99,0xef,0xc2,0x99,0x22,0x8e,0x12,0x8f,0x13,0x12,0x00,0x0e,0xeb,0xf4,0x5f,0xff,0xed,0x5b,0x4f,0xfd,0xaf,0x13,0xae,0x12,0x02,0x3b,0xaa,0x8f,0x82,0x8e,0x83,0x20,0x00,0x0d,0xe4,0x93,0xfe,0x60,0x08,0xaf,0x06,0x12,0x3a,0x7e,0xa3,0x80,0xf3,0x22,0x00,0x02,0xa3,0x00,0x00,0x02,0x32,0x80,0x00,0x01,0xe2,0x24,0x00,0x01,0xa5,0xe0,0x00,0x00,0xd2,0xf0,0xef,0x7b,0x08,0x60,0x04,0x7d,0x01,0x80,0x02,0xe4,0xfd,0x7f,0x4c,0x7e,0x30,0x12,0x39,0xc7,0x22,0xef,0x7b,0x02,0x60,0x04,0xe4,0xfd,0x80,0x02,0x7d,0x01,0x7f,0x06,0x7e,0x24,0x12,0x39,0xc7,0x22,0x0d,0x0a,0x45,0x6e,0x74,0x65,0x72,0x20,0x6d,0x61,0x69,0x6e,0x20,0x6c,0x6f,0x6f,0x70,0x00,0x8e,0x15,0x8f,0x16,0x12,0x37,0xcf,0xeb,0xf4,0xfe,0xef,0x5e,0xff,0xed,0x5b,0x4f,0xf0,0x22,0x90,0x40,0x06,0xef,0xf0,0x70,0x06,0x12,0x0f,0xf8,0x12,0x3b,0xaa,0x7f,0xff,0x02,0x38,0xd0,0x90,0x40,0x06,0xef,0xf0,0x70,0x06,0x12,0x0f,0xf8,0x12,0x3b,0xaa,0x7f,0xff,0x02,0x38,0xd0,0x8f,0x09,0x7b,0x0f,0xad,0x09,0x7f,0x44,0x7e,0x2c,0x12,0x3a,0x94,0xaf,0x09,0x02,0x3b,0x2f,0xd2,0x07,0x78,0x3a,0xe6,0xb4,0x3b,0x05,0xe4,0xf6,0xd2,0x08,0x22,0x78,0x3a,0x06,0x22,0x90,0x41,0x9c,0xe0,0xc4,0x13,0x54,0x07,0xff,0x90,0x41,0xad,0xe0,0xc3,0x9f,0x22,0xab,0x07,0xaa,0x06,0x8b,0x82,0x8a,0x83,0xed,0xf0,0xa3,0xec,0xf0,0x22,0xad,0x07,0x7b,0x20,0x7f,0x4c,0x7e,0x3c,0x02,0x39,0xc7,0xa2,0x00,0xe4,0x33,0xc2,0x00,0x24,0xff,0x92,0x00,0x22,0xaf,0x31,0xef,0x60,0x03,0x1f,0x80,0xfa,0x22,0x12,0x00,0x2a,0x12,0x21,0x6a,0x02,0x27,0x4c,0x8f,0x82,0x8e,0x83,0xed,0xf0,0x22,0x90,0x40,0x66,0xef,0xf0,0x22,
157*53ee8cc1Swenshuai.xi };
158*53ee8cc1Swenshuai.xi
159*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
160*53ee8cc1Swenshuai.xi /// Serial debug mode
161*53ee8cc1Swenshuai.xi /// @param MFC_SERIAL_DEBUG_CMD_e \b IN: command
162*53ee8cc1Swenshuai.xi /// @return TRUE/FALSE
163*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
MDrv_MFC_SetSerialDebugMode(MFC_SERIAL_DEBUG_CMD_e cmd)164*53ee8cc1Swenshuai.xi BOOL MDrv_MFC_SetSerialDebugMode(MFC_SERIAL_DEBUG_CMD_e cmd)
165*53ee8cc1Swenshuai.xi {
166*53ee8cc1Swenshuai.xi U32 u32Addr;
167*53ee8cc1Swenshuai.xi U8 u8Data[5];
168*53ee8cc1Swenshuai.xi BOOL ret;
169*53ee8cc1Swenshuai.xi
170*53ee8cc1Swenshuai.xi u32Addr = 0;
171*53ee8cc1Swenshuai.xi
172*53ee8cc1Swenshuai.xi if (cmd == MFC_SerialDebugEnter)
173*53ee8cc1Swenshuai.xi {
174*53ee8cc1Swenshuai.xi u8Data[0] = 0x53;
175*53ee8cc1Swenshuai.xi u8Data[1] = 0x45;
176*53ee8cc1Swenshuai.xi u8Data[2] = 0x52;
177*53ee8cc1Swenshuai.xi u8Data[3] = 0x44;
178*53ee8cc1Swenshuai.xi u8Data[4] = 0x42;
179*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
180*53ee8cc1Swenshuai.xi ret = MAdp_IIC_Write(MFC_IIC_CHANNEL_ID, MFC_IIC_SLAVE_ADDR, (U8*)&u32Addr, 0, u8Data, 5);
181*53ee8cc1Swenshuai.xi #else
182*53ee8cc1Swenshuai.xi ret = MDrv_MFC_IIC_Write(MFC_IIC_CHANNEL_ID, MFC_IIC_SLAVE_ADDR, (U8*)&u32Addr, 0, u8Data, 5);
183*53ee8cc1Swenshuai.xi #endif
184*53ee8cc1Swenshuai.xi if (!ret)
185*53ee8cc1Swenshuai.xi return FALSE;
186*53ee8cc1Swenshuai.xi }
187*53ee8cc1Swenshuai.xi else
188*53ee8cc1Swenshuai.xi {
189*53ee8cc1Swenshuai.xi u8Data[0] = cmd;
190*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
191*53ee8cc1Swenshuai.xi ret = MAdp_IIC_Write(MFC_IIC_CHANNEL_ID, MFC_IIC_SLAVE_ADDR, (U8*)&u32Addr, 0, u8Data, 1);
192*53ee8cc1Swenshuai.xi #else
193*53ee8cc1Swenshuai.xi ret = MDrv_MFC_IIC_Write(MFC_IIC_CHANNEL_ID, MFC_IIC_SLAVE_ADDR, (U8*)&u32Addr, 0, u8Data, 1);
194*53ee8cc1Swenshuai.xi #endif
195*53ee8cc1Swenshuai.xi if (!ret)
196*53ee8cc1Swenshuai.xi return FALSE;
197*53ee8cc1Swenshuai.xi }
198*53ee8cc1Swenshuai.xi return TRUE;
199*53ee8cc1Swenshuai.xi }
200*53ee8cc1Swenshuai.xi
201*53ee8cc1Swenshuai.xi static BOOL isI2cOpen=FALSE;
MDrv_MFC_SetSerialDebug(BOOL bOpen)202*53ee8cc1Swenshuai.xi void MDrv_MFC_SetSerialDebug(BOOL bOpen)
203*53ee8cc1Swenshuai.xi {
204*53ee8cc1Swenshuai.xi if(bOpen)
205*53ee8cc1Swenshuai.xi {
206*53ee8cc1Swenshuai.xi if(isI2cOpen==FALSE)
207*53ee8cc1Swenshuai.xi {
208*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
209*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
210*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
211*53ee8cc1Swenshuai.xi isI2cOpen=TRUE;
212*53ee8cc1Swenshuai.xi }
213*53ee8cc1Swenshuai.xi }
214*53ee8cc1Swenshuai.xi else
215*53ee8cc1Swenshuai.xi {
216*53ee8cc1Swenshuai.xi if(isI2cOpen)
217*53ee8cc1Swenshuai.xi {
218*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
219*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
220*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
221*53ee8cc1Swenshuai.xi isI2cOpen=FALSE;
222*53ee8cc1Swenshuai.xi }
223*53ee8cc1Swenshuai.xi }
224*53ee8cc1Swenshuai.xi
225*53ee8cc1Swenshuai.xi }
226*53ee8cc1Swenshuai.xi
227*53ee8cc1Swenshuai.xi
228*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
229*53ee8cc1Swenshuai.xi /// Read register
230*53ee8cc1Swenshuai.xi /// @param u16Addr \b IN: address
231*53ee8cc1Swenshuai.xi /// @return u8Val \b OUT: value
232*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
MDrv_MFC_ReadByte(U16 u16Addr)233*53ee8cc1Swenshuai.xi U8 MDrv_MFC_ReadByte(U16 u16Addr)
234*53ee8cc1Swenshuai.xi {
235*53ee8cc1Swenshuai.xi if (0)//gmfcSysInfo.u8UseMPIF == 2)
236*53ee8cc1Swenshuai.xi {
237*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
238*53ee8cc1Swenshuai.xi return MAdp_MPIF_ReadByte(MFC_SPIF_SLAVE_ID, u16Addr);
239*53ee8cc1Swenshuai.xi #endif
240*53ee8cc1Swenshuai.xi }
241*53ee8cc1Swenshuai.xi else
242*53ee8cc1Swenshuai.xi {
243*53ee8cc1Swenshuai.xi U8 u8Addr[3], u8buf=0;
244*53ee8cc1Swenshuai.xi BOOL ret;
245*53ee8cc1Swenshuai.xi
246*53ee8cc1Swenshuai.xi u8Addr[0] = 0x10;
247*53ee8cc1Swenshuai.xi u8Addr[1] = (U8)(u16Addr >> 8);
248*53ee8cc1Swenshuai.xi u8Addr[2] = (U8)(u16Addr & 0x00FF);
249*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
250*53ee8cc1Swenshuai.xi MAdp_IIC_Write(MFC_IIC_CHANNEL_ID, 0xB4, u8Addr, 0, u8Addr, 3);
251*53ee8cc1Swenshuai.xi ret = MAdp_IIC_Read(MFC_IIC_CHANNEL_ID, 0xB4, u8Addr, 0, &u8buf, 1);
252*53ee8cc1Swenshuai.xi #else
253*53ee8cc1Swenshuai.xi MDrv_MFC_IIC_Write(MFC_IIC_CHANNEL_ID, 0xB4, u8Addr, 0, u8Addr, 3);
254*53ee8cc1Swenshuai.xi ret = MDrv_MFC_IIC_Read(MFC_IIC_CHANNEL_ID, 0xB4, u8Addr, 0, &u8buf, 1);
255*53ee8cc1Swenshuai.xi #endif
256*53ee8cc1Swenshuai.xi //printf("[MFC R] addr=0x%x, data=0x%x, ret=%u\n", u16Addr, u8buf, ret);
257*53ee8cc1Swenshuai.xi if (!ret)
258*53ee8cc1Swenshuai.xi return 0;
259*53ee8cc1Swenshuai.xi return u8buf;
260*53ee8cc1Swenshuai.xi }
261*53ee8cc1Swenshuai.xi }
262*53ee8cc1Swenshuai.xi
MDrv_MFC_Read2Bytes(U16 u16Reg)263*53ee8cc1Swenshuai.xi U16 MDrv_MFC_Read2Bytes(U16 u16Reg)
264*53ee8cc1Swenshuai.xi {
265*53ee8cc1Swenshuai.xi if (0)//gmfcSysInfo.u8UseMPIF == 2)
266*53ee8cc1Swenshuai.xi {
267*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
268*53ee8cc1Swenshuai.xi return MAdp_MPIF_Read2Byte(MFC_SPIF_SLAVE_ID, u16Reg);
269*53ee8cc1Swenshuai.xi #endif
270*53ee8cc1Swenshuai.xi }
271*53ee8cc1Swenshuai.xi else
272*53ee8cc1Swenshuai.xi {
273*53ee8cc1Swenshuai.xi U8 u8ReadValue1=0, u8ReadValue2=0;
274*53ee8cc1Swenshuai.xi u8ReadValue1 = MDrv_MFC_ReadByte(u16Reg + 1);
275*53ee8cc1Swenshuai.xi u8ReadValue2 = MDrv_MFC_ReadByte(u16Reg);
276*53ee8cc1Swenshuai.xi
277*53ee8cc1Swenshuai.xi return MAKEWORD(u8ReadValue1, u8ReadValue2);
278*53ee8cc1Swenshuai.xi }
279*53ee8cc1Swenshuai.xi }
280*53ee8cc1Swenshuai.xi
MDrv_MFC_Read3Bytes(U16 u16Reg)281*53ee8cc1Swenshuai.xi U32 MDrv_MFC_Read3Bytes(U16 u16Reg)
282*53ee8cc1Swenshuai.xi {
283*53ee8cc1Swenshuai.xi if (0)//gmfcSysInfo.u8UseMPIF == 2)
284*53ee8cc1Swenshuai.xi {
285*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
286*53ee8cc1Swenshuai.xi return MAdp_MPIF_Read3Byte(MFC_SPIF_SLAVE_ID, u16Reg);
287*53ee8cc1Swenshuai.xi #endif
288*53ee8cc1Swenshuai.xi }
289*53ee8cc1Swenshuai.xi else
290*53ee8cc1Swenshuai.xi {
291*53ee8cc1Swenshuai.xi U8 u8ReadValue1=0;
292*53ee8cc1Swenshuai.xi U32 u32ReadValue2=0;
293*53ee8cc1Swenshuai.xi u8ReadValue1 = MDrv_MFC_ReadByte(u16Reg + 2);
294*53ee8cc1Swenshuai.xi u32ReadValue2 |= ((U32)u8ReadValue1)<<16;
295*53ee8cc1Swenshuai.xi u8ReadValue1 = MDrv_MFC_ReadByte(u16Reg + 1);
296*53ee8cc1Swenshuai.xi u32ReadValue2 |= ((U32)u8ReadValue1)<<8;
297*53ee8cc1Swenshuai.xi u8ReadValue1 = MDrv_MFC_ReadByte(u16Reg);
298*53ee8cc1Swenshuai.xi u32ReadValue2 |= ((U32)u8ReadValue1);
299*53ee8cc1Swenshuai.xi return u32ReadValue2;
300*53ee8cc1Swenshuai.xi }
301*53ee8cc1Swenshuai.xi }
302*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
303*53ee8cc1Swenshuai.xi /// Write register
304*53ee8cc1Swenshuai.xi /// @param u16Addr \b IN: address
305*53ee8cc1Swenshuai.xi /// @param u8Val \b IN: value
306*53ee8cc1Swenshuai.xi /// @return TRUE/FALSE
307*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
MDrv_MFC_WriteByte(U16 u16Addr,U8 u8Val)308*53ee8cc1Swenshuai.xi BOOL MDrv_MFC_WriteByte(U16 u16Addr, U8 u8Val)
309*53ee8cc1Swenshuai.xi {
310*53ee8cc1Swenshuai.xi MFC_REG_DEBUG(printf("\n addr=0x%x, write=0x%x", u16Addr, u8Val));
311*53ee8cc1Swenshuai.xi
312*53ee8cc1Swenshuai.xi if (0)//gmfcSysInfo.u8UseMPIF == 2)
313*53ee8cc1Swenshuai.xi {
314*53ee8cc1Swenshuai.xi #if 1
315*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
316*53ee8cc1Swenshuai.xi return MAdp_MPIF_WriteByte(MFC_SPIF_SLAVE_ID, u16Addr, u8Val);
317*53ee8cc1Swenshuai.xi #endif
318*53ee8cc1Swenshuai.xi #else
319*53ee8cc1Swenshuai.xi // for debug
320*53ee8cc1Swenshuai.xi U8 ret;
321*53ee8cc1Swenshuai.xi U8 u8ReadVal;
322*53ee8cc1Swenshuai.xi
323*53ee8cc1Swenshuai.xi ret = MAdp_MPIF_WriteByte(MFC_SPIF_SLAVE_ID, u16Addr, u8Val);
324*53ee8cc1Swenshuai.xi u8ReadVal = MAdp_MPIF_ReadByte(MFC_SPIF_SLAVE_ID, u16Addr);
325*53ee8cc1Swenshuai.xi if (u8ReadVal == u8Val)
326*53ee8cc1Swenshuai.xi MFC_REG_DEBUG(printf(", [OK]\n"));
327*53ee8cc1Swenshuai.xi else
328*53ee8cc1Swenshuai.xi MFC_REG_DEBUG(printf(", [NG]read=0x%x\n", u8ReadVal));
329*53ee8cc1Swenshuai.xi
330*53ee8cc1Swenshuai.xi if (!ret)
331*53ee8cc1Swenshuai.xi return FALSE;
332*53ee8cc1Swenshuai.xi return TRUE;
333*53ee8cc1Swenshuai.xi #endif
334*53ee8cc1Swenshuai.xi }
335*53ee8cc1Swenshuai.xi else
336*53ee8cc1Swenshuai.xi {
337*53ee8cc1Swenshuai.xi U8 u8Addr[3];
338*53ee8cc1Swenshuai.xi BOOL ret;
339*53ee8cc1Swenshuai.xi
340*53ee8cc1Swenshuai.xi u8Addr[0] = 0x10;
341*53ee8cc1Swenshuai.xi u8Addr[1] = (U8)(u16Addr >> 8);
342*53ee8cc1Swenshuai.xi u8Addr[2] = (U8)(u16Addr & 0x00FF);
343*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
344*53ee8cc1Swenshuai.xi ret = MAdp_IIC_Write(MFC_IIC_CHANNEL_ID, 0xB4, u8Addr, 3, &u8Val, 1);
345*53ee8cc1Swenshuai.xi #else
346*53ee8cc1Swenshuai.xi ret = MDrv_MFC_IIC_Write(MFC_IIC_CHANNEL_ID, 0xB4, u8Addr, 3, &u8Val, 1);
347*53ee8cc1Swenshuai.xi #endif
348*53ee8cc1Swenshuai.xi if (!ret)
349*53ee8cc1Swenshuai.xi return FALSE;
350*53ee8cc1Swenshuai.xi return TRUE;
351*53ee8cc1Swenshuai.xi }
352*53ee8cc1Swenshuai.xi }
353*53ee8cc1Swenshuai.xi
MDrv_MFC_Write2Bytes(U16 u16Reg,U16 u16Value)354*53ee8cc1Swenshuai.xi void MDrv_MFC_Write2Bytes(U16 u16Reg, U16 u16Value)
355*53ee8cc1Swenshuai.xi {
356*53ee8cc1Swenshuai.xi if (0)//gmfcSysInfo.u8UseMPIF == 2)
357*53ee8cc1Swenshuai.xi {
358*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
359*53ee8cc1Swenshuai.xi MAdp_MPIF_Write2Byte(MFC_SPIF_SLAVE_ID, u16Reg, u16Value);
360*53ee8cc1Swenshuai.xi #endif
361*53ee8cc1Swenshuai.xi }
362*53ee8cc1Swenshuai.xi else
363*53ee8cc1Swenshuai.xi {
364*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(u16Reg, (U8)u16Value);
365*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(u16Reg + 1, (U8)(u16Value / 0x100));
366*53ee8cc1Swenshuai.xi }
367*53ee8cc1Swenshuai.xi }
368*53ee8cc1Swenshuai.xi
MDrv_MFC_Write3Bytes(U16 u16Reg,U32 u32Value)369*53ee8cc1Swenshuai.xi void MDrv_MFC_Write3Bytes(U16 u16Reg, U32 u32Value)
370*53ee8cc1Swenshuai.xi {
371*53ee8cc1Swenshuai.xi if (0)//gmfcSysInfo.u8UseMPIF == 2)
372*53ee8cc1Swenshuai.xi {
373*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
374*53ee8cc1Swenshuai.xi MAdp_MPIF_Write3Byte(MFC_SPIF_SLAVE_ID, u16Reg, u32Value);
375*53ee8cc1Swenshuai.xi #endif
376*53ee8cc1Swenshuai.xi }
377*53ee8cc1Swenshuai.xi else
378*53ee8cc1Swenshuai.xi {
379*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(u16Reg, (U8)u32Value);
380*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(u16Reg + 1, (U8)(u32Value / 0x100));
381*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(u16Reg + 2, (U8)(u32Value / 0x10000));
382*53ee8cc1Swenshuai.xi }
383*53ee8cc1Swenshuai.xi }
384*53ee8cc1Swenshuai.xi
MDrv_MFC_WriteBit(U16 u16Addr,U8 u8Bit,U8 u8BitPos)385*53ee8cc1Swenshuai.xi void MDrv_MFC_WriteBit(U16 u16Addr, U8 u8Bit, U8 u8BitPos)
386*53ee8cc1Swenshuai.xi {
387*53ee8cc1Swenshuai.xi U8 u8Value;
388*53ee8cc1Swenshuai.xi
389*53ee8cc1Swenshuai.xi u8Value= MDrv_MFC_ReadByte(u16Addr);
390*53ee8cc1Swenshuai.xi if(u8Bit)
391*53ee8cc1Swenshuai.xi u8Value = u8Value | u8BitPos;
392*53ee8cc1Swenshuai.xi else
393*53ee8cc1Swenshuai.xi u8Value = u8Value & (~u8BitPos);
394*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(u16Addr, u8Value);
395*53ee8cc1Swenshuai.xi }
396*53ee8cc1Swenshuai.xi
MDrv_MFC_WriteByteMask(U16 u16Addr,U8 u8Val,U8 u8Mask)397*53ee8cc1Swenshuai.xi void MDrv_MFC_WriteByteMask(U16 u16Addr, U8 u8Val, U8 u8Mask)
398*53ee8cc1Swenshuai.xi {
399*53ee8cc1Swenshuai.xi U8 uc;
400*53ee8cc1Swenshuai.xi
401*53ee8cc1Swenshuai.xi uc = MDrv_MFC_ReadByte(u16Addr);
402*53ee8cc1Swenshuai.xi uc &= (~u8Mask);
403*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte( u16Addr, ( uc | (u8Val & u8Mask)) );
404*53ee8cc1Swenshuai.xi }
405*53ee8cc1Swenshuai.xi
MDrv_MFC_WriteRegsTbl(U16 wIndex,MST_MFC_RegUnitType_t * pTable)406*53ee8cc1Swenshuai.xi void MDrv_MFC_WriteRegsTbl(U16 wIndex, MST_MFC_RegUnitType_t *pTable)
407*53ee8cc1Swenshuai.xi {
408*53ee8cc1Swenshuai.xi while (1)
409*53ee8cc1Swenshuai.xi {
410*53ee8cc1Swenshuai.xi if (pTable->ucIndex == _END_OF_TBL_
411*53ee8cc1Swenshuai.xi && pTable->ucValue == _END_OF_TBL_) // check end of table
412*53ee8cc1Swenshuai.xi break;
413*53ee8cc1Swenshuai.xi
414*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(wIndex | pTable->ucIndex, pTable->ucValue); // write register
415*53ee8cc1Swenshuai.xi pTable++;// next
416*53ee8cc1Swenshuai.xi }
417*53ee8cc1Swenshuai.xi }
418*53ee8cc1Swenshuai.xi
MDrv_MFC_GetInitStatus()419*53ee8cc1Swenshuai.xi U8 MDrv_MFC_GetInitStatus()
420*53ee8cc1Swenshuai.xi {
421*53ee8cc1Swenshuai.xi return u8MFCInitStatus;
422*53ee8cc1Swenshuai.xi }
423*53ee8cc1Swenshuai.xi
MDrv_MFC_SetInitStatus(U8 status)424*53ee8cc1Swenshuai.xi void MDrv_MFC_SetInitStatus(U8 status)
425*53ee8cc1Swenshuai.xi {
426*53ee8cc1Swenshuai.xi u8MFCInitStatus = status;
427*53ee8cc1Swenshuai.xi }
428*53ee8cc1Swenshuai.xi
429*53ee8cc1Swenshuai.xi
430*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
431*53ee8cc1Swenshuai.xi /// MFC Load Bin to SRAM
432*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
MDrv_MFC_LoadBinToSram(U8 * pBin,U32 len)433*53ee8cc1Swenshuai.xi BOOL MDrv_MFC_LoadBinToSram(U8* pBin, U32 len)
434*53ee8cc1Swenshuai.xi {
435*53ee8cc1Swenshuai.xi U8 i;
436*53ee8cc1Swenshuai.xi U8 u8Addr[3];
437*53ee8cc1Swenshuai.xi BOOL ret;
438*53ee8cc1Swenshuai.xi
439*53ee8cc1Swenshuai.xi len=len;
440*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x10E6, 0x01); // enable xdata mapping to psam
441*53ee8cc1Swenshuai.xi for (i=0; i<16; i++)
442*53ee8cc1Swenshuai.xi {
443*53ee8cc1Swenshuai.xi // Switch page, every page is 1k bytes
444*53ee8cc1Swenshuai.xi ret = MDrv_MFC_WriteByte(0x10E4, i); // Switch page, every page is 1k bytes
445*53ee8cc1Swenshuai.xi if (!ret)
446*53ee8cc1Swenshuai.xi return FALSE;
447*53ee8cc1Swenshuai.xi
448*53ee8cc1Swenshuai.xi // downloading
449*53ee8cc1Swenshuai.xi u8Addr[0] = 0x10;
450*53ee8cc1Swenshuai.xi u8Addr[1] = 0x50;
451*53ee8cc1Swenshuai.xi u8Addr[2] = 0x00;
452*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
453*53ee8cc1Swenshuai.xi ret = MAdp_IIC_Write(MFC_IIC_CHANNEL_ID, 0xB4, u8Addr, 3, pBin, 1024);
454*53ee8cc1Swenshuai.xi #else
455*53ee8cc1Swenshuai.xi ret = MDrv_MFC_IIC_Write(MFC_IIC_CHANNEL_ID, 0xB4, u8Addr, 3, pBin, 1024);
456*53ee8cc1Swenshuai.xi #endif
457*53ee8cc1Swenshuai.xi if (!ret)
458*53ee8cc1Swenshuai.xi return FALSE;
459*53ee8cc1Swenshuai.xi
460*53ee8cc1Swenshuai.xi pBin += 1024;
461*53ee8cc1Swenshuai.xi }
462*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x10E4, 0x00); // Switch page, every page is 1k bytes
463*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x10E6, 0x00); // disable xdata mapping to psam
464*53ee8cc1Swenshuai.xi
465*53ee8cc1Swenshuai.xi return TRUE;
466*53ee8cc1Swenshuai.xi }
467*53ee8cc1Swenshuai.xi
MDrv_MFC_WaitReady(U8 u8WaitValue)468*53ee8cc1Swenshuai.xi BOOL MDrv_MFC_WaitReady(U8 u8WaitValue)
469*53ee8cc1Swenshuai.xi {
470*53ee8cc1Swenshuai.xi U8 u8ReadValue, u8count = 0;
471*53ee8cc1Swenshuai.xi while(u8count++ < 10)
472*53ee8cc1Swenshuai.xi {
473*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL == CODEBASE_LINUX)
474*53ee8cc1Swenshuai.xi usleep(100 * 1000);
475*53ee8cc1Swenshuai.xi #elif(CODEBASE_SEL == CODEBASE_UTOPIA)
476*53ee8cc1Swenshuai.xi OS_DELAY_TASK(100);
477*53ee8cc1Swenshuai.xi #endif
478*53ee8cc1Swenshuai.xi u8ReadValue=0x00;
479*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
480*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
481*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
482*53ee8cc1Swenshuai.xi
483*53ee8cc1Swenshuai.xi u8ReadValue = MDrv_MFC_ReadByte(0x2C45);
484*53ee8cc1Swenshuai.xi //thchen printf("\n\n\n\n\n\n\n[0x2C45]=[%x]\n\n\n\n\n", u8ReadValue);
485*53ee8cc1Swenshuai.xi
486*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
487*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
488*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
489*53ee8cc1Swenshuai.xi if(u8ReadValue == u8WaitValue)
490*53ee8cc1Swenshuai.xi break;
491*53ee8cc1Swenshuai.xi }
492*53ee8cc1Swenshuai.xi return (u8count < 10) ? 1 : 0;
493*53ee8cc1Swenshuai.xi }
494*53ee8cc1Swenshuai.xi
MDrv_MFC_SramLoadCode(void)495*53ee8cc1Swenshuai.xi void MDrv_MFC_SramLoadCode(void)
496*53ee8cc1Swenshuai.xi {
497*53ee8cc1Swenshuai.xi U8 *pAddr;
498*53ee8cc1Swenshuai.xi U32 Len;
499*53ee8cc1Swenshuai.xi pAddr = MFC_BIN;
500*53ee8cc1Swenshuai.xi Len = sizeof(MFC_BIN);
501*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
502*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
503*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
504*53ee8cc1Swenshuai.xi
505*53ee8cc1Swenshuai.xi MDrv_MFC_Write2Bytes(0x3C60, 0xAA55);//Disable watch dog
506*53ee8cc1Swenshuai.xi MDrv_MFC_LoadBinToSram(pAddr, Len);
507*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x1084, 0x01); // Sram boot code reset
508*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2C45, 0x01);
509*53ee8cc1Swenshuai.xi
510*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
511*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
512*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
513*53ee8cc1Swenshuai.xi MDrv_MFC_WaitReady(2);
514*53ee8cc1Swenshuai.xi }
515*53ee8cc1Swenshuai.xi
516*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
517*53ee8cc1Swenshuai.xi /// MFC system init
518*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
519*53ee8cc1Swenshuai.xi
520*53ee8cc1Swenshuai.xi //for frame lock use that set from T3
MDrv_MFC_SetVFreq(U16 u16InputfreqX100,BOOL enableFPLL)521*53ee8cc1Swenshuai.xi void MDrv_MFC_SetVFreq(U16 u16InputfreqX100, BOOL enableFPLL)
522*53ee8cc1Swenshuai.xi {
523*53ee8cc1Swenshuai.xi gPreInputVFreq = u16InputfreqX100;
524*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
525*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
526*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
527*53ee8cc1Swenshuai.xi
528*53ee8cc1Swenshuai.xi MDrv_MFC_SetOutDClk(gPreInputVFreq, enableFPLL);
529*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x290E, 0x2F);
530*53ee8cc1Swenshuai.xi MDrv_MFC_SoftwareResetScalerInt();
531*53ee8cc1Swenshuai.xi
532*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
533*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
534*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
535*53ee8cc1Swenshuai.xi }
536*53ee8cc1Swenshuai.xi
MDrv_MFC_BringUp(void)537*53ee8cc1Swenshuai.xi void MDrv_MFC_BringUp(void)
538*53ee8cc1Swenshuai.xi {
539*53ee8cc1Swenshuai.xi // I2C or MPIF
540*53ee8cc1Swenshuai.xi gmfcSysInfo.u8UseMPIF = 0;
541*53ee8cc1Swenshuai.xi //thchen printf("gmfcSysInfo.u8UseMPIF=%u\n", gmfcSysInfo.u8UseMPIF);
542*53ee8cc1Swenshuai.xi
543*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
544*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
545*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
546*53ee8cc1Swenshuai.xi
547*53ee8cc1Swenshuai.xi MDrv_MFC_SetInterrupt(_DISABLE);
548*53ee8cc1Swenshuai.xi MDrv_MFC_McuInitialize();
549*53ee8cc1Swenshuai.xi MDrv_MFC_WriteBit(0x2F00, 0, _BIT3); //Dubber buffer dis
550*53ee8cc1Swenshuai.xi MDrv_MFC_WriteBit(0x1E03, 1, _BIT0); //SCaler reset Hold
551*53ee8cc1Swenshuai.xi MDrv_MFC_WriteBit(0x1E49, 0, _BIT0); //clear this status
552*53ee8cc1Swenshuai.xi MDrv_MFC_InitializeChip();
553*53ee8cc1Swenshuai.xi
554*53ee8cc1Swenshuai.xi // SPIF settings
555*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x1E38, _BIT3, _BIT3); // swap M/SPIF
556*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x1E8D, 0x18); // set SPIF clock, 0x18: 12MHz
557*53ee8cc1Swenshuai.xi //MDrv_MFC_WriteByte(0x1E8D, 0x10); // set SPIF clock, 0x10: 108MHz
558*53ee8cc1Swenshuai.xi
559*53ee8cc1Swenshuai.xi if (gmfcSysInfo.u8UseMPIF)
560*53ee8cc1Swenshuai.xi {
561*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
562*53ee8cc1Swenshuai.xi //MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
563*53ee8cc1Swenshuai.xi //MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
564*53ee8cc1Swenshuai.xi //MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
565*53ee8cc1Swenshuai.xi MAdp_MPIF_Open();
566*53ee8cc1Swenshuai.xi MAdp_MPIF_Init(0x3C, 0x1, 0x1); //0x3C: 12MHz
567*53ee8cc1Swenshuai.xi //MAdp_MPIF_Init(0x04, 0x1, 0x1); //0x04:123MHz
568*53ee8cc1Swenshuai.xi MAdp_MPIF_InitSPIF(MFC_SPIF_SLAVE_ID);
569*53ee8cc1Swenshuai.xi MAdp_MPIF_SetCmdDataWidth(MFC_SPIF_SLAVE_ID, MPIF_DATAWIDTH_1, MPIF_DATAWIDTH_1);
570*53ee8cc1Swenshuai.xi gmfcSysInfo.u8UseMPIF = 2;
571*53ee8cc1Swenshuai.xi #endif
572*53ee8cc1Swenshuai.xi }
573*53ee8cc1Swenshuai.xi
574*53ee8cc1Swenshuai.xi MDrv_MFC_InitializeScalerOP();
575*53ee8cc1Swenshuai.xi MDrv_MFC_InitializeMiu();
576*53ee8cc1Swenshuai.xi
577*53ee8cc1Swenshuai.xi
578*53ee8cc1Swenshuai.xi MDrv_MFC_InitializeScalerIP();
579*53ee8cc1Swenshuai.xi MDrv_MFC_InitializeFilmMode();
580*53ee8cc1Swenshuai.xi MDrv_MFC_InitializePanel();
581*53ee8cc1Swenshuai.xi
582*53ee8cc1Swenshuai.xi
583*53ee8cc1Swenshuai.xi MDrv_MFC_PowerDownChipU3();
584*53ee8cc1Swenshuai.xi MDrv_MFC_WriteBit(0x2F00, 1, _BIT3); //Dubber buffer En
585*53ee8cc1Swenshuai.xi MDrv_MFC_SetInterrupt(_ENABLE);
586*53ee8cc1Swenshuai.xi if(gmfcSysInfo.u8PanelType == _LVDS)
587*53ee8cc1Swenshuai.xi {
588*53ee8cc1Swenshuai.xi MDrv_MFC_Write2Bytes(0x3220, 0x5555); // set output configure to lvds output = "01" for 26 channel
589*53ee8cc1Swenshuai.xi MDrv_MFC_Write2Bytes(0x3222, 0x5555);
590*53ee8cc1Swenshuai.xi MDrv_MFC_Write2Bytes(0x3224, 0x5555);
591*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3226, 0x05);
592*53ee8cc1Swenshuai.xi }
593*53ee8cc1Swenshuai.xi //thchen printf("**********Read status 2c45 = %x", MDrv_MFC_ReadByte(0x2C45));
594*53ee8cc1Swenshuai.xi
595*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
596*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
597*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
598*53ee8cc1Swenshuai.xi }
599*53ee8cc1Swenshuai.xi
600*53ee8cc1Swenshuai.xi
MDrv_MFC_Init(PMST_MFC_SYS_INFO_t mfcSysInfo)601*53ee8cc1Swenshuai.xi void MDrv_MFC_Init(PMST_MFC_SYS_INFO_t mfcSysInfo)
602*53ee8cc1Swenshuai.xi {
603*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
604*53ee8cc1Swenshuai.xi U32 u32Time, u32PANEL_VTOTAL;
605*53ee8cc1Swenshuai.xi #else
606*53ee8cc1Swenshuai.xi U32 u32PANEL_VTOTAL;
607*53ee8cc1Swenshuai.xi #endif
608*53ee8cc1Swenshuai.xi gmfcSysInfo = *mfcSysInfo;
609*53ee8cc1Swenshuai.xi u32PANEL_VTOTAL = gmfcSysInfo.u16VTotal;
610*53ee8cc1Swenshuai.xi gmfcSysInfo.u16VTotal = gmfcSysInfo.u16Height+ 64;//PANEL_HEIGHT + 64
611*53ee8cc1Swenshuai.xi gmfcSysInfo.u16HTotal = (U32)gmfcSysInfo.u16HTotal * u32PANEL_VTOTAL/gmfcSysInfo.u16VTotal;
612*53ee8cc1Swenshuai.xi /*
613*53ee8cc1Swenshuai.xi printf("MFC Panel H Start= [%d][160]\n", gmfcSysInfo.u16HStart);
614*53ee8cc1Swenshuai.xi printf("MFC Panel V Start= [%d][20]\n", gmfcSysInfo.u16VStart);
615*53ee8cc1Swenshuai.xi printf("MFC Panel H Total= [%d][2200]\n", gmfcSysInfo.u16HTotal);
616*53ee8cc1Swenshuai.xi printf("MFC Panel V Total= [%d][1189]\n", gmfcSysInfo.u16VTotal);
617*53ee8cc1Swenshuai.xi printf("MFC Panel H Width= [%d][1920]\n", gmfcSysInfo.u16Width);
618*53ee8cc1Swenshuai.xi printf("MFC Panel V Width= [%d][1080]\n\n", gmfcSysInfo.u16Height);
619*53ee8cc1Swenshuai.xi
620*53ee8cc1Swenshuai.xi printf("MFC Rx LVDS Chanel = [%d][1]\n", gmfcSysInfo.u8LVDSChannel);
621*53ee8cc1Swenshuai.xi printf("MFC Rx LVDS BitNum = [%d][1]\n", gmfcSysInfo.u8LVDSBitNum);
622*53ee8cc1Swenshuai.xi printf("MFC Rx LVDS TI/Thin = [%d][1]\n", gmfcSysInfo.u8LVDSTiMode);
623*53ee8cc1Swenshuai.xi printf("MFC Rx LVDS M/L Swap= [%d][0]\n", gmfcSysInfo.u8LVDSSwapMsbLsb);
624*53ee8cc1Swenshuai.xi printf("MFC Rx LVDS P/N Swap= [%d][0]\n", gmfcSysInfo.u8LVDSSwap_P_N);
625*53ee8cc1Swenshuai.xi printf("MFC Rx LVDS O/E Swap= [%d][1]\n\n", gmfcSysInfo.u8LVDSSwapOddEven);
626*53ee8cc1Swenshuai.xi
627*53ee8cc1Swenshuai.xi printf("MFC Tx LVDS Chanel = [%d][2]\n", gmfcSysInfo.u8PanelChannel);
628*53ee8cc1Swenshuai.xi printf("MFC Tx LVDS [ABCD] = [%x][D8]\n", gmfcSysInfo.u8PanelLVDSSwapCH);
629*53ee8cc1Swenshuai.xi printf("MFC Tx LVDS BitNum = [%d][1]\n", gmfcSysInfo.u8PanelBitNum);
630*53ee8cc1Swenshuai.xi printf("MFC Tx LVDS pair shift= [%d][0]\n", gmfcSysInfo.u8PanelLVDSShiftPair);
631*53ee8cc1Swenshuai.xi printf("MFC Tx LVDS TI/Thin = [%d][1]\n", gmfcSysInfo.u8PanelLVDSTiMode);
632*53ee8cc1Swenshuai.xi printf("MFC Tx LVDS PolSwap = [%d][1]\n", gmfcSysInfo.u8PanelLVDSSwapPol);
633*53ee8cc1Swenshuai.xi printf("MFC Tx LVDS pairSwap = [%d][0]\n", gmfcSysInfo.u8PanelLVDSSwapPair);
634*53ee8cc1Swenshuai.xi printf("MFC Panel V Freq = [%d][120]Hz\n", gmfcSysInfo.u8PanelVfreq);
635*53ee8cc1Swenshuai.xi
636*53ee8cc1Swenshuai.xi printf("MFC memory clock = [%d][1400]\n", gmfcSysInfo.u16MFCMemoryClk);
637*53ee8cc1Swenshuai.xi printf("MFC memory type = [%x][0x0705]\n", gmfcSysInfo.u16MFCMemoryType);
638*53ee8cc1Swenshuai.xi printf("MFC memory IncVtotalFor50Hz = [%d][1]\n", gmfcSysInfo.u8PanelIncVtotalFor50Hz);
639*53ee8cc1Swenshuai.xi printf("MFC panel type = [%d][2]\n", gmfcSysInfo.u8PanelType);
640*53ee8cc1Swenshuai.xi printf("MFC panel Dither = [%d][0]\n", gmfcSysInfo.u8PanelDither);
641*53ee8cc1Swenshuai.xi printf("MFC panel CPVC = [%d][0]\n", gmfcSysInfo.u8PanelBlankCPVC);
642*53ee8cc1Swenshuai.xi printf("MFC panel OEC = [%d][0]\n", gmfcSysInfo.u8PanelBlankOEC);
643*53ee8cc1Swenshuai.xi printf("MFC panel TPC = [%d][0]\n", gmfcSysInfo.u8PanelBlankTPC);
644*53ee8cc1Swenshuai.xi printf("MFC panel STHC = [%d][0]\n", gmfcSysInfo.u8PanelBlankSTHC);
645*53ee8cc1Swenshuai.xi printf("MFC panel CSC = [%d][1]\n", gmfcSysInfo.u8PanelCSC);
646*53ee8cc1Swenshuai.xi printf("MFC panel GAMMA = [%d][1]\n", gmfcSysInfo.u8PanelGAMMA);
647*53ee8cc1Swenshuai.xi printf("MFC_IP_MODE = [%d][6]\n", IP_RGB_10BIT_COMP);
648*53ee8cc1Swenshuai.xi printf("Panel Type = [%x][0x70]\n", PNL_INN22_WSXGA_120HZ);
649*53ee8cc1Swenshuai.xi */
650*53ee8cc1Swenshuai.xi
651*53ee8cc1Swenshuai.xi //=======MM Allocation===============
652*53ee8cc1Swenshuai.xi //MFC --------0
653*53ee8cc1Swenshuai.xi //IP YCOut 0~4 0~7
654*53ee8cc1Swenshuai.xi //IP MR 0~4 0
655*53ee8cc1Swenshuai.xi //Gamma 0~1
656*53ee8cc1Swenshuai.xi //OD BaseEven
657*53ee8cc1Swenshuai.xi //OD LimitEven
658*53ee8cc1Swenshuai.xi //OD BaseODD
659*53ee8cc1Swenshuai.xi //OD LimitODD
660*53ee8cc1Swenshuai.xi //OD LsbBsae
661*53ee8cc1Swenshuai.xi //OD LsbLimit
662*53ee8cc1Swenshuai.xi //Miu Auto BIST
663*53ee8cc1Swenshuai.xi //===============================
664*53ee8cc1Swenshuai.xi //[1]MFC----------------------------------------------------------
665*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8MfcMode= 1;
666*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32MfcBase = 0;
667*53ee8cc1Swenshuai.xi if (gmfcMiuBaseAddr.u8MfcMode)
668*53ee8cc1Swenshuai.xi {
669*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32MfcSize = 16ul
670*53ee8cc1Swenshuai.xi *((LimitCheck(gmfcSysInfo.u16Width, 64)/16)/2)
671*53ee8cc1Swenshuai.xi *(LimitCheck(gmfcSysInfo.u16Height, 16)/8)*128;
672*53ee8cc1Swenshuai.xi }
673*53ee8cc1Swenshuai.xi else
674*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32MfcSize = 0;
675*53ee8cc1Swenshuai.xi
676*53ee8cc1Swenshuai.xi //[2]Ycount----------------------------------------------------------
677*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8IpMode = IP_MODE;
678*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32IpYcoutBase = gmfcMiuBaseAddr.u32MfcBase+gmfcMiuBaseAddr.u32MfcSize;
679*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32IpYcoutSize = 16ul*gmfcSysInfo.u16Height*Ycout_LinePitch(gmfcMiuBaseAddr.u8IpMode, gmfcSysInfo.u16Width);
680*53ee8cc1Swenshuai.xi
681*53ee8cc1Swenshuai.xi //[3]Gamma----------------------------------------------------------
682*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8GammaMode = GAMMA_FUNCTION;
683*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32GammaBase0 = (gmfcMiuBaseAddr.u32IpYcoutBase+8ul*gmfcMiuBaseAddr.u32IpYcoutSize+0xFFFL)&0xFFFF000L;
684*53ee8cc1Swenshuai.xi if (gmfcMiuBaseAddr.u8GammaMode==GAMMA_MLOAD)
685*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32GammaMLSize = 16ul*256;
686*53ee8cc1Swenshuai.xi else
687*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32GammaMLSize = 0;
688*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32GammaBase1 = gmfcMiuBaseAddr.u32GammaBase0 + gmfcMiuBaseAddr.u32GammaMLSize;
689*53ee8cc1Swenshuai.xi
690*53ee8cc1Swenshuai.xi //[4]Over Drive----------------------------------------------------------
691*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8OdMode = OD_MODE_SEL;
692*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdBaseEven = gmfcMiuBaseAddr.u32GammaBase1+gmfcMiuBaseAddr.u32GammaMLSize+0x1000000;
693*53ee8cc1Swenshuai.xi switch (gmfcMiuBaseAddr.u8OdMode)
694*53ee8cc1Swenshuai.xi {
695*53ee8cc1Swenshuai.xi case OD_MODE_OFF:
696*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdSize = 0;
697*53ee8cc1Swenshuai.xi break;
698*53ee8cc1Swenshuai.xi case OD_MODE_444:
699*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdSize = 12ul*gmfcSysInfo.u16Width*gmfcSysInfo.u16Height/8;
700*53ee8cc1Swenshuai.xi break;
701*53ee8cc1Swenshuai.xi case OD_MODE_555:
702*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdSize = 15ul*gmfcSysInfo.u16Width*gmfcSysInfo.u16Height/8;
703*53ee8cc1Swenshuai.xi break;
704*53ee8cc1Swenshuai.xi case OD_MODE_565:
705*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdSize = 16ul*gmfcSysInfo.u16Width*gmfcSysInfo.u16Height/8;
706*53ee8cc1Swenshuai.xi break;
707*53ee8cc1Swenshuai.xi case OD_MODE_666:
708*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdSize = 18ul*gmfcSysInfo.u16Width*gmfcSysInfo.u16Height/8;
709*53ee8cc1Swenshuai.xi break;
710*53ee8cc1Swenshuai.xi case OD_MODE_888:
711*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdSize = 24ul*gmfcSysInfo.u16Width*gmfcSysInfo.u16Height/8;
712*53ee8cc1Swenshuai.xi break;
713*53ee8cc1Swenshuai.xi default:
714*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdSize = 9ul*gmfcSysInfo.u16Width*gmfcSysInfo.u16Height/8;
715*53ee8cc1Swenshuai.xi break;
716*53ee8cc1Swenshuai.xi }
717*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdSizehalf= gmfcMiuBaseAddr.u32OdSize/2+0x800;
718*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdLimitEven = gmfcMiuBaseAddr.u32OdBaseEven+gmfcMiuBaseAddr.u32OdSizehalf;
719*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdBaseOdd= gmfcMiuBaseAddr.u32OdLimitEven+0x800;
720*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdLimitOdd= gmfcMiuBaseAddr.u32OdBaseOdd+gmfcMiuBaseAddr.u32OdSizehalf;
721*53ee8cc1Swenshuai.xi
722*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdLsbBase=gmfcMiuBaseAddr.u32OdLimitOdd+0x800;
723*53ee8cc1Swenshuai.xi switch(gmfcMiuBaseAddr.u8OdMode)
724*53ee8cc1Swenshuai.xi {
725*53ee8cc1Swenshuai.xi case OD_MODE_555_COMPRESS:
726*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdLsbSize = 3ul*gmfcSysInfo.u16Width*gmfcSysInfo.u16Height/8;
727*53ee8cc1Swenshuai.xi break;
728*53ee8cc1Swenshuai.xi case OD_MODE_666_COMPRESS:
729*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdLsbSize = 6ul*gmfcSysInfo.u16Width*gmfcSysInfo.u16Height/8;
730*53ee8cc1Swenshuai.xi break;
731*53ee8cc1Swenshuai.xi default:
732*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdLsbSize = 0;
733*53ee8cc1Swenshuai.xi break;
734*53ee8cc1Swenshuai.xi }
735*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32OdLsbLimit=gmfcMiuBaseAddr.u32OdLsbBase+gmfcMiuBaseAddr.u32OdLsbSize;
736*53ee8cc1Swenshuai.xi
737*53ee8cc1Swenshuai.xi //[5]AutoBist----------------------------------------------------------
738*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32AutoBist=(gmfcMiuBaseAddr.u32OdLsbLimit+0xFFFL)&0xFFFF000L;
739*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8XDataOnDramMode=HK_XDATA_ON_DRAM;
740*53ee8cc1Swenshuai.xi if(gmfcMiuBaseAddr.u8XDataOnDramMode)
741*53ee8cc1Swenshuai.xi {
742*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8XDataOnDramBase=(gmfcMiuBaseAddr.u32AutoBist+0x2000+0xFFFFL)&0xFFF0000L;
743*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8XDataOnDramSize=1024ul*64;
744*53ee8cc1Swenshuai.xi }
745*53ee8cc1Swenshuai.xi else
746*53ee8cc1Swenshuai.xi {
747*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8XDataOnDramBase=gmfcMiuBaseAddr.u32AutoBist+0x2000;
748*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8XDataOnDramSize=0;
749*53ee8cc1Swenshuai.xi }
750*53ee8cc1Swenshuai.xi
751*53ee8cc1Swenshuai.xi //[6]MPIF----------------------------------------------------------
752*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u8MPifMode=ENABLE_MPIF_DEVICE;
753*53ee8cc1Swenshuai.xi if(gmfcMiuBaseAddr.u8MPifMode)
754*53ee8cc1Swenshuai.xi {
755*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32PifBase=0;
756*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32PifSize=1024ul;
757*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32PifBase2=gmfcMiuBaseAddr.u32PifBase+gmfcMiuBaseAddr.u32PifSize;
758*53ee8cc1Swenshuai.xi }
759*53ee8cc1Swenshuai.xi else
760*53ee8cc1Swenshuai.xi {
761*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32PifBase=gmfcMiuBaseAddr.u8XDataOnDramBase+gmfcMiuBaseAddr.u8XDataOnDramSize;
762*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32PifSize=0;
763*53ee8cc1Swenshuai.xi gmfcMiuBaseAddr.u32PifBase2=gmfcMiuBaseAddr.u32PifBase+gmfcMiuBaseAddr.u32PifSize;
764*53ee8cc1Swenshuai.xi }
765*53ee8cc1Swenshuai.xi
766*53ee8cc1Swenshuai.xi
767*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
768*53ee8cc1Swenshuai.xi u32Time = MsOS_GetSystemTime();
769*53ee8cc1Swenshuai.xi MAdp_IIC_Clock_Select(MFC_IIC_CHANNEL_ID, 0x4); // if use HW I2C, set it to speed up
770*53ee8cc1Swenshuai.xi #endif
771*53ee8cc1Swenshuai.xi MDrv_MFC_SramLoadCode();
772*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
773*53ee8cc1Swenshuai.xi printf("\n[URSA3]SramLoadCode: %u\n", MsOS_GetSystemTime() - u32Time);
774*53ee8cc1Swenshuai.xi u32Time = MsOS_GetSystemTime();
775*53ee8cc1Swenshuai.xi #endif
776*53ee8cc1Swenshuai.xi MDrv_MFC_BringUp();
777*53ee8cc1Swenshuai.xi #if(CODEBASE_SEL != CODEBASE_UTOPIA)
778*53ee8cc1Swenshuai.xi printf("\n[URSA3]Load Registers: %u\n", MsOS_GetSystemTime() - u32Time);
779*53ee8cc1Swenshuai.xi #endif
780*53ee8cc1Swenshuai.xi u8MFCInitStatus=1;
781*53ee8cc1Swenshuai.xi }
782*53ee8cc1Swenshuai.xi
783*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
784*53ee8cc1Swenshuai.xi /// MFC Application function
785*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
MDrv_MFC_OnOff(BOOL bOnOff)786*53ee8cc1Swenshuai.xi void MDrv_MFC_OnOff(BOOL bOnOff)
787*53ee8cc1Swenshuai.xi {
788*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
789*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
790*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
791*53ee8cc1Swenshuai.xi
792*53ee8cc1Swenshuai.xi if (bOnOff)
793*53ee8cc1Swenshuai.xi {
794*53ee8cc1Swenshuai.xi //MDrv_MFC_WriteRegister(0x290E, 0x2F); // Memc on
795*53ee8cc1Swenshuai.xi //MDrv_MFC_WriteRegisterMask(0x2910, 0x0C, 0x1C);
796*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2C44, 0x80, 0x80); // Memc on
797*53ee8cc1Swenshuai.xi }
798*53ee8cc1Swenshuai.xi else
799*53ee8cc1Swenshuai.xi {
800*53ee8cc1Swenshuai.xi //passFail = MDrv_MFC_WriteRegister(0x290E, 0x00); // Memc off
801*53ee8cc1Swenshuai.xi //MDrv_MFC_WriteRegisterMask(0x2910, 0x10, 0x1C);
802*53ee8cc1Swenshuai.xi //MDrv_MFC_WriteRegister(0x29A9, 0xFF);
803*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2C44, 0, 0x80); // Memc off
804*53ee8cc1Swenshuai.xi }
805*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
806*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
807*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
808*53ee8cc1Swenshuai.xi }
809*53ee8cc1Swenshuai.xi
MDrv_MFC_COMPENSATION(U8 u8Blur,U8 u8Judder,U8 u8MFC)810*53ee8cc1Swenshuai.xi void MDrv_MFC_COMPENSATION(U8 u8Blur, U8 u8Judder, U8 u8MFC)
811*53ee8cc1Swenshuai.xi {
812*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
813*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
814*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
815*53ee8cc1Swenshuai.xi
816*53ee8cc1Swenshuai.xi //need to be implement for
817*53ee8cc1Swenshuai.xi //Blur
818*53ee8cc1Swenshuai.xi //Judder
819*53ee8cc1Swenshuai.xi //MFC hi/mid/lo/off/5:5 pull down
820*53ee8cc1Swenshuai.xi
821*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2C43, u8Blur, 0x0F);
822*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2C43, u8Judder, 0xF0);
823*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2C44, u8MFC, 0x0F);
824*53ee8cc1Swenshuai.xi
825*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
826*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
827*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
828*53ee8cc1Swenshuai.xi }
829*53ee8cc1Swenshuai.xi
MDrv_MFC_TrueMotionDemo(U8 u8TrueMotionDemo)830*53ee8cc1Swenshuai.xi void MDrv_MFC_TrueMotionDemo(U8 u8TrueMotionDemo)
831*53ee8cc1Swenshuai.xi {
832*53ee8cc1Swenshuai.xi U8 u8buf;
833*53ee8cc1Swenshuai.xi
834*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
835*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
836*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
837*53ee8cc1Swenshuai.xi u8buf = MDrv_MFC_ReadByte(0x290E);
838*53ee8cc1Swenshuai.xi if(u8buf != 0x2F)
839*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x290E, 0x2F); // Memc on
840*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2C44, 0x02, 0x07); //MEMC high
841*53ee8cc1Swenshuai.xi
842*53ee8cc1Swenshuai.xi switch (u8TrueMotionDemo)
843*53ee8cc1Swenshuai.xi {
844*53ee8cc1Swenshuai.xi case 0: // Demo off, Memc on
845*53ee8cc1Swenshuai.xi u8buf = 0x00;
846*53ee8cc1Swenshuai.xi break;
847*53ee8cc1Swenshuai.xi
848*53ee8cc1Swenshuai.xi case 1: // Demo left side
849*53ee8cc1Swenshuai.xi u8buf = 0x10;
850*53ee8cc1Swenshuai.xi break;
851*53ee8cc1Swenshuai.xi
852*53ee8cc1Swenshuai.xi case 2: // Demo right side
853*53ee8cc1Swenshuai.xi u8buf = 0x90;
854*53ee8cc1Swenshuai.xi break;
855*53ee8cc1Swenshuai.xi
856*53ee8cc1Swenshuai.xi case 3: // Demo top side
857*53ee8cc1Swenshuai.xi u8buf = 0x20;
858*53ee8cc1Swenshuai.xi break;
859*53ee8cc1Swenshuai.xi
860*53ee8cc1Swenshuai.xi case 4: // Demo bottom side
861*53ee8cc1Swenshuai.xi u8buf = 0xA0;
862*53ee8cc1Swenshuai.xi break;
863*53ee8cc1Swenshuai.xi
864*53ee8cc1Swenshuai.xi default: // Demo off, Memc off
865*53ee8cc1Swenshuai.xi u8buf = 0x00;
866*53ee8cc1Swenshuai.xi break;
867*53ee8cc1Swenshuai.xi }
868*53ee8cc1Swenshuai.xi
869*53ee8cc1Swenshuai.xi if (u8buf)//Film 22 32 mode detect
870*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2080, 0x00, 0x03);
871*53ee8cc1Swenshuai.xi else
872*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2080, 0x03, 0x03);
873*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2981, u8buf, 0xF0);
874*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
875*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
876*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
877*53ee8cc1Swenshuai.xi }
878*53ee8cc1Swenshuai.xi
MDrv_MFC_VideoBlock(U8 u8Type,BOOL bOnOff)879*53ee8cc1Swenshuai.xi void MDrv_MFC_VideoBlock(U8 u8Type , BOOL bOnOff)
880*53ee8cc1Swenshuai.xi {
881*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
882*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
883*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
884*53ee8cc1Swenshuai.xi
885*53ee8cc1Swenshuai.xi switch (u8Type)
886*53ee8cc1Swenshuai.xi {
887*53ee8cc1Swenshuai.xi case 0: // URSA Rx (receiver signal off)
888*53ee8cc1Swenshuai.xi if(bOnOff)
889*53ee8cc1Swenshuai.xi {//Enable Rx
890*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2F4C, 0x01, 0x03);
891*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2F4E, 0x0F);
892*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2EE0, 0x01);
893*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3002, 0x00);
894*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3016, 0x00);
895*53ee8cc1Swenshuai.xi }
896*53ee8cc1Swenshuai.xi else
897*53ee8cc1Swenshuai.xi {//disable Rx
898*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2F4C, 0x00, 0x03);
899*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2F4E, 0x00);
900*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2EE0, 0x00);
901*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3002, 0x08);
902*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3016, 0x02);
903*53ee8cc1Swenshuai.xi }
904*53ee8cc1Swenshuai.xi break;
905*53ee8cc1Swenshuai.xi case 1: // URSA Tx (output black mute)
906*53ee8cc1Swenshuai.xi if(bOnOff)
907*53ee8cc1Swenshuai.xi {
908*53ee8cc1Swenshuai.xi //R,G,B 10bit data setting
909*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x302a, 0x00);
910*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x302b, 0x00);
911*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x302c, 0x00);
912*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x302d, 0x00);
913*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x302e, 0x00);
914*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x302f, 0x00);
915*53ee8cc1Swenshuai.xi //disable Rxd
916*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3017, 0x04);
917*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3002, 0x00);
918*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3016, 0x00);
919*53ee8cc1Swenshuai.xi }
920*53ee8cc1Swenshuai.xi else
921*53ee8cc1Swenshuai.xi {//enable Rx
922*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3017, 0x00);
923*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3002, 0x08);
924*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3016, 0x02);
925*53ee8cc1Swenshuai.xi }
926*53ee8cc1Swenshuai.xi break;
927*53ee8cc1Swenshuai.xi case 2: // LVDS (LVDS signal off)
928*53ee8cc1Swenshuai.xi if(bOnOff)
929*53ee8cc1Swenshuai.xi {//disable LVDS
930*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3220, 0x00);
931*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3221, 0x00);
932*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3222, 0x00);
933*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3223, 0x00);
934*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3224, 0x00);
935*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3225, 0x00);
936*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3226, 0x00);
937*53ee8cc1Swenshuai.xi }
938*53ee8cc1Swenshuai.xi else
939*53ee8cc1Swenshuai.xi {//enable LVDS
940*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3220, 0x55);
941*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3221, 0x55);
942*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3222, 0x55);
943*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3223, 0x55);
944*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3224, 0x55);
945*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3225, 0x55);
946*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x3226, 0x05);
947*53ee8cc1Swenshuai.xi }
948*53ee8cc1Swenshuai.xi break;
949*53ee8cc1Swenshuai.xi default:
950*53ee8cc1Swenshuai.xi break;
951*53ee8cc1Swenshuai.xi }
952*53ee8cc1Swenshuai.xi
953*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
954*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
955*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
956*53ee8cc1Swenshuai.xi
957*53ee8cc1Swenshuai.xi }
958*53ee8cc1Swenshuai.xi
MDrv_MFC_LVDSPowerOnOFF(BOOL bOnOff)959*53ee8cc1Swenshuai.xi void MDrv_MFC_LVDSPowerOnOFF(BOOL bOnOff)
960*53ee8cc1Swenshuai.xi {
961*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
962*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
963*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
964*53ee8cc1Swenshuai.xi
965*53ee8cc1Swenshuai.xi if(bOnOff)
966*53ee8cc1Swenshuai.xi {//enable LVDS power
967*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x3250, 0, 0x01);
968*53ee8cc1Swenshuai.xi }
969*53ee8cc1Swenshuai.xi else
970*53ee8cc1Swenshuai.xi {//disable LVDS power
971*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x3250, 1, 0x01);
972*53ee8cc1Swenshuai.xi }
973*53ee8cc1Swenshuai.xi
974*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
975*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
976*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
977*53ee8cc1Swenshuai.xi }
978*53ee8cc1Swenshuai.xi
MDrv_MFC_Set_Bypass_Window(BOOL bOnOff,U8 u8WindowID,U16 u16HStart,U16 u16VStart,U16 u16HSize,U16 u16VSize)979*53ee8cc1Swenshuai.xi void MDrv_MFC_Set_Bypass_Window(BOOL bOnOff, U8 u8WindowID, U16 u16HStart, U16 u16VStart, U16 u16HSize, U16 u16VSize)
980*53ee8cc1Swenshuai.xi {
981*53ee8cc1Swenshuai.xi static U8 u8winStatus = 0;
982*53ee8cc1Swenshuai.xi static U8 gBackupReg2052 = 0x01;
983*53ee8cc1Swenshuai.xi U16 u16Hend, u16Vend;
984*53ee8cc1Swenshuai.xi
985*53ee8cc1Swenshuai.xi u16Hend = u16HStart+u16HSize;
986*53ee8cc1Swenshuai.xi u16Vend = u16VStart+u16VSize;
987*53ee8cc1Swenshuai.xi if(u16HStart < 0x60)
988*53ee8cc1Swenshuai.xi u16HStart = 0;
989*53ee8cc1Swenshuai.xi
990*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
991*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
992*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
993*53ee8cc1Swenshuai.xi
994*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2440, 0x11, 0x11);//OSD control window enable
995*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2444+u8WindowID*8, u16HStart); // H start
996*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2445+u8WindowID*8, (u16HStart&0X0F00)>>8);
997*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2446+u8WindowID*8, u16Hend); // H end
998*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2447+u8WindowID*8, (u16Hend&0X0F00)>>8);
999*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2448+u8WindowID*8, u16VStart); // V start
1000*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2449+u8WindowID*8, (u16VStart&0X0F00)>>8);
1001*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x244A+u8WindowID*8, u16Vend); // V end
1002*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x244B+u8WindowID*8, (u16Vend&0X0F00)>>8);
1003*53ee8cc1Swenshuai.xi
1004*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2C42, (bOnOff<<u8WindowID), (1<<u8WindowID));
1005*53ee8cc1Swenshuai.xi if(bOnOff)
1006*53ee8cc1Swenshuai.xi {
1007*53ee8cc1Swenshuai.xi if(u8WindowID <= 4)
1008*53ee8cc1Swenshuai.xi u8winStatus |= 0x01<<u8WindowID; //enable selected window
1009*53ee8cc1Swenshuai.xi else
1010*53ee8cc1Swenshuai.xi u8winStatus = 0x1f; //enable all windows
1011*53ee8cc1Swenshuai.xi }
1012*53ee8cc1Swenshuai.xi else
1013*53ee8cc1Swenshuai.xi {
1014*53ee8cc1Swenshuai.xi if(u8WindowID <= 4)
1015*53ee8cc1Swenshuai.xi u8winStatus &= ~(0x01<<u8WindowID); //disable selected window
1016*53ee8cc1Swenshuai.xi else
1017*53ee8cc1Swenshuai.xi u8winStatus = 0; //enable all windows
1018*53ee8cc1Swenshuai.xi }
1019*53ee8cc1Swenshuai.xi
1020*53ee8cc1Swenshuai.xi if(u8winStatus)
1021*53ee8cc1Swenshuai.xi {
1022*53ee8cc1Swenshuai.xi gBackupReg2052 = MDrv_MFC_ReadByte(0x2052);
1023*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2052, 0, 0x01);
1024*53ee8cc1Swenshuai.xi }
1025*53ee8cc1Swenshuai.xi else
1026*53ee8cc1Swenshuai.xi {
1027*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x2052, gBackupReg2052, 0x01);
1028*53ee8cc1Swenshuai.xi }
1029*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x246C, u8winStatus);
1030*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2626, u8winStatus);
1031*53ee8cc1Swenshuai.xi
1032*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1033*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1034*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1035*53ee8cc1Swenshuai.xi
1036*53ee8cc1Swenshuai.xi }
1037*53ee8cc1Swenshuai.xi
MDrv_MFC_GetSWVersion(void)1038*53ee8cc1Swenshuai.xi U16 MDrv_MFC_GetSWVersion(void)
1039*53ee8cc1Swenshuai.xi {
1040*53ee8cc1Swenshuai.xi U16 u16Data;
1041*53ee8cc1Swenshuai.xi
1042*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1043*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1044*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1045*53ee8cc1Swenshuai.xi
1046*53ee8cc1Swenshuai.xi u16Data = MDrv_MFC_Read2Bytes(0x2c40);
1047*53ee8cc1Swenshuai.xi
1048*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1049*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1050*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1051*53ee8cc1Swenshuai.xi
1052*53ee8cc1Swenshuai.xi return u16Data;
1053*53ee8cc1Swenshuai.xi }
1054*53ee8cc1Swenshuai.xi
MDrv_MFC_GetBinVersion(void)1055*53ee8cc1Swenshuai.xi U16 MDrv_MFC_GetBinVersion(void)
1056*53ee8cc1Swenshuai.xi {
1057*53ee8cc1Swenshuai.xi U32 u32Len;
1058*53ee8cc1Swenshuai.xi U16 u16Version;
1059*53ee8cc1Swenshuai.xi
1060*53ee8cc1Swenshuai.xi u32Len = sizeof(MFC_BIN);
1061*53ee8cc1Swenshuai.xi u16Version = MFC_BIN[u32Len-2];
1062*53ee8cc1Swenshuai.xi u16Version = (u16Version << 8)|MFC_BIN[u32Len-1];
1063*53ee8cc1Swenshuai.xi return u16Version;
1064*53ee8cc1Swenshuai.xi }
1065*53ee8cc1Swenshuai.xi
MDrv_MFC_SetSSC(U16 u16KHz,U16 u16Percent,BOOL bEnable,BOOL bMiuLVDS)1066*53ee8cc1Swenshuai.xi void MDrv_MFC_SetSSC(U16 u16KHz, U16 u16Percent, BOOL bEnable, BOOL bMiuLVDS)
1067*53ee8cc1Swenshuai.xi {
1068*53ee8cc1Swenshuai.xi #if 0 //daniel TEMP
1069*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1070*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1071*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1072*53ee8cc1Swenshuai.xi
1073*53ee8cc1Swenshuai.xi if(bMiuLVDS)
1074*53ee8cc1Swenshuai.xi MDrv_MFC_SetMiuSSC(u16KHz, u16Percent, bEnable);
1075*53ee8cc1Swenshuai.xi else
1076*53ee8cc1Swenshuai.xi MDrv_MFC_SetLvdsSSC(u16KHz, u16Percent, bEnable);
1077*53ee8cc1Swenshuai.xi
1078*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1079*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1080*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1081*53ee8cc1Swenshuai.xi #endif
1082*53ee8cc1Swenshuai.xi }
1083*53ee8cc1Swenshuai.xi
MDrv_MFC_DebugBlock(BOOL bOnOff)1084*53ee8cc1Swenshuai.xi void MDrv_MFC_DebugBlock(BOOL bOnOff)
1085*53ee8cc1Swenshuai.xi {
1086*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1087*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1088*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1089*53ee8cc1Swenshuai.xi if(bOnOff)
1090*53ee8cc1Swenshuai.xi {
1091*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x290A, 0x02);
1092*53ee8cc1Swenshuai.xi }
1093*53ee8cc1Swenshuai.xi else
1094*53ee8cc1Swenshuai.xi {
1095*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x290A, 0x00);
1096*53ee8cc1Swenshuai.xi }
1097*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1098*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1099*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1100*53ee8cc1Swenshuai.xi }
1101*53ee8cc1Swenshuai.xi
MDrv_MFC_DemoBarControl(BOOL bEnable,BOOL bDirection,U8 u8width,U8 u8color)1102*53ee8cc1Swenshuai.xi void MDrv_MFC_DemoBarControl(BOOL bEnable, BOOL bDirection, U8 u8width, U8 u8color)
1103*53ee8cc1Swenshuai.xi {
1104*53ee8cc1Swenshuai.xi U8 u8buf, u8Buf2;
1105*53ee8cc1Swenshuai.xi U16 u16frameActiveXStart, u16imageActiveXStart;
1106*53ee8cc1Swenshuai.xi
1107*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1108*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1109*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1110*53ee8cc1Swenshuai.xi
1111*53ee8cc1Swenshuai.xi u8buf = MDrv_MFC_ReadByte(0x2F19);
1112*53ee8cc1Swenshuai.xi u16frameActiveXStart=u8buf<<8;
1113*53ee8cc1Swenshuai.xi u8buf = MDrv_MFC_ReadByte(0x2F18);
1114*53ee8cc1Swenshuai.xi u16frameActiveXStart |=u8buf;
1115*53ee8cc1Swenshuai.xi u8buf = MDrv_MFC_ReadByte(0x2F21);
1116*53ee8cc1Swenshuai.xi u16imageActiveXStart=u8buf<<8;
1117*53ee8cc1Swenshuai.xi u8buf = MDrv_MFC_ReadByte(0x2F20);
1118*53ee8cc1Swenshuai.xi u16imageActiveXStart |=u8buf;
1119*53ee8cc1Swenshuai.xi
1120*53ee8cc1Swenshuai.xi u8buf = MDrv_MFC_ReadByte(0x2F57);
1121*53ee8cc1Swenshuai.xi if(bEnable)
1122*53ee8cc1Swenshuai.xi {
1123*53ee8cc1Swenshuai.xi u8buf = (u8buf & 0x7F) | 0x80; //Line enable 0x2F57[7]
1124*53ee8cc1Swenshuai.xi if(bDirection)
1125*53ee8cc1Swenshuai.xi u8buf = (u8buf & 0xBF) | 0x40; //Vertical line direction 0x2F57[6]
1126*53ee8cc1Swenshuai.xi else
1127*53ee8cc1Swenshuai.xi u8buf = (u8buf & 0xBF) | 0x00; //Horizontal line direction 0x2F57[6]
1128*53ee8cc1Swenshuai.xi u8buf = (u8buf & 0xF0) | (u8width & 0x0F); //Line width 0x2F57[0:3]
1129*53ee8cc1Swenshuai.xi // vertical bar shift is related by HStart.
1130*53ee8cc1Swenshuai.xi if (u16frameActiveXStart>u16imageActiveXStart)
1131*53ee8cc1Swenshuai.xi {
1132*53ee8cc1Swenshuai.xi u8Buf2=(u16imageActiveXStart>(u16frameActiveXStart>>1))? (u16imageActiveXStart-(u16frameActiveXStart>>1)) : ((u16frameActiveXStart>>1)-u16imageActiveXStart);
1133*53ee8cc1Swenshuai.xi }
1134*53ee8cc1Swenshuai.xi else
1135*53ee8cc1Swenshuai.xi {
1136*53ee8cc1Swenshuai.xi u8Buf2= u16imageActiveXStart-(u16frameActiveXStart>>1);
1137*53ee8cc1Swenshuai.xi u8buf = u8buf | 0x20; // direction for shift Line 0x2F57[5], 0:R, 1:L
1138*53ee8cc1Swenshuai.xi }
1139*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2F56, u8Buf2); // shift Line
1140*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2F57, u8buf); // creat Line
1141*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x30A1, u8color);//color 0~255
1142*53ee8cc1Swenshuai.xi }
1143*53ee8cc1Swenshuai.xi else
1144*53ee8cc1Swenshuai.xi {
1145*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2F57, (u8buf&0x7F)|0x00); //Line disable
1146*53ee8cc1Swenshuai.xi }
1147*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1148*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1149*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1150*53ee8cc1Swenshuai.xi }
1151*53ee8cc1Swenshuai.xi
MDrv_MFC_GetHVTotal(U16 * u16HTotal,U16 * u16VTotal)1152*53ee8cc1Swenshuai.xi void MDrv_MFC_GetHVTotal(U16* u16HTotal, U16* u16VTotal)
1153*53ee8cc1Swenshuai.xi {
1154*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1155*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1156*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1157*53ee8cc1Swenshuai.xi
1158*53ee8cc1Swenshuai.xi *u16HTotal = 0x0F & MDrv_MFC_ReadByte(0x2f05);
1159*53ee8cc1Swenshuai.xi *u16HTotal = (*u16HTotal << 8) | MDrv_MFC_ReadByte(0x2f04);
1160*53ee8cc1Swenshuai.xi
1161*53ee8cc1Swenshuai.xi *u16VTotal = 0x0F & MDrv_MFC_ReadByte(0x2f03);
1162*53ee8cc1Swenshuai.xi *u16VTotal = (*u16VTotal << 8) | MDrv_MFC_ReadByte(0x2f02);
1163*53ee8cc1Swenshuai.xi
1164*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1165*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1166*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1167*53ee8cc1Swenshuai.xi }
1168*53ee8cc1Swenshuai.xi
MDrv_MFC_IsStable(void)1169*53ee8cc1Swenshuai.xi U8 MDrv_MFC_IsStable(void)
1170*53ee8cc1Swenshuai.xi {
1171*53ee8cc1Swenshuai.xi U8 u8temp;
1172*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1173*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1174*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1175*53ee8cc1Swenshuai.xi
1176*53ee8cc1Swenshuai.xi u8temp = MDrv_MFC_ReadByte(0x1E49);
1177*53ee8cc1Swenshuai.xi u8temp &= 0x01;
1178*53ee8cc1Swenshuai.xi
1179*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1180*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1181*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1182*53ee8cc1Swenshuai.xi return u8temp;
1183*53ee8cc1Swenshuai.xi }
1184*53ee8cc1Swenshuai.xi
MDrv_MFC_SetLVDSVesaJeida(BOOL bVesaJeida)1185*53ee8cc1Swenshuai.xi void MDrv_MFC_SetLVDSVesaJeida(BOOL bVesaJeida)
1186*53ee8cc1Swenshuai.xi {
1187*53ee8cc1Swenshuai.xi bVesaJeida = (bVesaJeida>0)? 1 : 0;
1188*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1189*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1190*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1191*53ee8cc1Swenshuai.xi
1192*53ee8cc1Swenshuai.xi MDrv_MFC_WriteBit(0x320B, bVesaJeida, _BIT6);
1193*53ee8cc1Swenshuai.xi
1194*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1195*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1196*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1197*53ee8cc1Swenshuai.xi }
1198*53ee8cc1Swenshuai.xi
MDrv_MFC_SetFrameRate(U8 u8PanelVfreq)1199*53ee8cc1Swenshuai.xi void MDrv_MFC_SetFrameRate(U8 u8PanelVfreq)
1200*53ee8cc1Swenshuai.xi {
1201*53ee8cc1Swenshuai.xi gmfcSysInfo.u8PanelVfreq = u8PanelVfreq;
1202*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1203*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1204*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1205*53ee8cc1Swenshuai.xi
1206*53ee8cc1Swenshuai.xi MDrv_MFC_SetGainPhase();
1207*53ee8cc1Swenshuai.xi MDrv_MFC_SetOutDClk(u8PanelVfreq*100, TRUE);// default input frequence is 60hz free run
1208*53ee8cc1Swenshuai.xi
1209*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1210*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1211*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1212*53ee8cc1Swenshuai.xi }
1213*53ee8cc1Swenshuai.xi
MDrv_MFC_SlowFrameLock(BOOL OnOff)1214*53ee8cc1Swenshuai.xi void MDrv_MFC_SlowFrameLock(BOOL OnOff)
1215*53ee8cc1Swenshuai.xi {
1216*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1217*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1218*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1219*53ee8cc1Swenshuai.xi
1220*53ee8cc1Swenshuai.xi if(OnOff)
1221*53ee8cc1Swenshuai.xi {
1222*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2A0C, 0x00);
1223*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2A0D, 0x50);
1224*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2A0E, 0x00);
1225*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2A0F, 0x00);
1226*53ee8cc1Swenshuai.xi }
1227*53ee8cc1Swenshuai.xi else
1228*53ee8cc1Swenshuai.xi {
1229*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2A0C, 0x00);
1230*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2A0D, 0x00);
1231*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2A0E, 0x10);
1232*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2A0F, 0x00);
1233*53ee8cc1Swenshuai.xi }
1234*53ee8cc1Swenshuai.xi
1235*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1236*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1237*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1238*53ee8cc1Swenshuai.xi }
1239*53ee8cc1Swenshuai.xi
MDrv_MFC_FrameLockMode(U8 u8Mode)1240*53ee8cc1Swenshuai.xi void MDrv_MFC_FrameLockMode(U8 u8Mode)
1241*53ee8cc1Swenshuai.xi {
1242*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1243*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1244*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1245*53ee8cc1Swenshuai.xi switch (u8Mode)
1246*53ee8cc1Swenshuai.xi {
1247*53ee8cc1Swenshuai.xi case 0: //disable controling (no setting for Dclk, HV total)
1248*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x1E4C, 0x80, 0xC0); // bit [7:6]
1249*53ee8cc1Swenshuai.xi break;
1250*53ee8cc1Swenshuai.xi case 1: //frame lock
1251*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x1E4C, 0x00, 0xC0); // bit [7:6]
1252*53ee8cc1Swenshuai.xi break;
1253*53ee8cc1Swenshuai.xi case 2: //freerun
1254*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x1E4C, 0x40, 0xC0); // bit [7:6]
1255*53ee8cc1Swenshuai.xi break;
1256*53ee8cc1Swenshuai.xi default:
1257*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByteMask(0x1E4C, 0x00, 0xC0); // bit [7:6]
1258*53ee8cc1Swenshuai.xi break;
1259*53ee8cc1Swenshuai.xi }
1260*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1261*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1262*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1263*53ee8cc1Swenshuai.xi }
1264*53ee8cc1Swenshuai.xi
MDrv_MFC_Reset(void)1265*53ee8cc1Swenshuai.xi void MDrv_MFC_Reset(void)
1266*53ee8cc1Swenshuai.xi {
1267*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1268*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1269*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1270*53ee8cc1Swenshuai.xi
1271*53ee8cc1Swenshuai.xi //MDrv_MFC_WriteByte(0x1084, 0x01); // Sram boot code reset
1272*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x1E03, 0x01);
1273*53ee8cc1Swenshuai.xi //udelay(1000 * 100);
1274*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x1E03, 0x00);
1275*53ee8cc1Swenshuai.xi
1276*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1277*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1278*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1279*53ee8cc1Swenshuai.xi }
1280*53ee8cc1Swenshuai.xi
MDrv_MFC_UpdateSW(void)1281*53ee8cc1Swenshuai.xi void MDrv_MFC_UpdateSW(void)
1282*53ee8cc1Swenshuai.xi {
1283*53ee8cc1Swenshuai.xi MDrv_MFC_SramLoadCode();
1284*53ee8cc1Swenshuai.xi }
1285*53ee8cc1Swenshuai.xi
MDrv_MFC_SetReverseMode(U8 u8MirrorMode)1286*53ee8cc1Swenshuai.xi void MDrv_MFC_SetReverseMode(U8 u8MirrorMode)
1287*53ee8cc1Swenshuai.xi {
1288*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1289*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1290*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1291*53ee8cc1Swenshuai.xi
1292*53ee8cc1Swenshuai.xi MDrv_MFC_SetMirrorMode((MirrorModeType)u8MirrorMode);
1293*53ee8cc1Swenshuai.xi
1294*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1295*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1296*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1297*53ee8cc1Swenshuai.xi }
1298*53ee8cc1Swenshuai.xi
MDrv_MFC_SetLVDSBit(U8 u8BitNum)1299*53ee8cc1Swenshuai.xi void MDrv_MFC_SetLVDSBit(U8 u8BitNum)
1300*53ee8cc1Swenshuai.xi {
1301*53ee8cc1Swenshuai.xi if(u8BitNum==6)
1302*53ee8cc1Swenshuai.xi u8BitNum = 0x0C;
1303*53ee8cc1Swenshuai.xi else if(u8BitNum==8)
1304*53ee8cc1Swenshuai.xi u8BitNum = 0x08;
1305*53ee8cc1Swenshuai.xi else
1306*53ee8cc1Swenshuai.xi u8BitNum = 0x00;
1307*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1308*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1309*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1310*53ee8cc1Swenshuai.xi
1311*53ee8cc1Swenshuai.xi //0x320A=0x08:8bits TI mode, 0x0C:6bits TI mode, 0x00:others
1312*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x320A, u8BitNum);
1313*53ee8cc1Swenshuai.xi
1314*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1315*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1316*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1317*53ee8cc1Swenshuai.xi }
1318*53ee8cc1Swenshuai.xi
1319*53ee8cc1Swenshuai.xi
MDrv_MFC_SetODCTable(void)1320*53ee8cc1Swenshuai.xi void MDrv_MFC_SetODCTable(void)
1321*53ee8cc1Swenshuai.xi {
1322*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1323*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1324*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1325*53ee8cc1Swenshuai.xi
1326*53ee8cc1Swenshuai.xi /*
1327*53ee8cc1Swenshuai.xi MDrv_MFC_InitializeOD(tOverDrive);
1328*53ee8cc1Swenshuai.xi if( MDrv_MFC_ReadByte(0x1E48)>0 && MDrv_MFC_ReadByte(0x1E48)<=3 )
1329*53ee8cc1Swenshuai.xi {
1330*53ee8cc1Swenshuai.xi if(MDrv_MFC_ReadByte(0x1E48) == 1)//42"
1331*53ee8cc1Swenshuai.xi MDrv_MFC_InitializeOD(tOD42);
1332*53ee8cc1Swenshuai.xi else if(MDrv_MFC_ReadByte(0x1E48) == 2)//47"
1333*53ee8cc1Swenshuai.xi MDrv_MFC_InitializeOD(tOD47);
1334*53ee8cc1Swenshuai.xi else if(MDrv_MFC_ReadByte(0x1E48) == 3)//GIP 37"
1335*53ee8cc1Swenshuai.xi MDrv_MFC_InitializeOD(tOD37);
1336*53ee8cc1Swenshuai.xi }
1337*53ee8cc1Swenshuai.xi */
1338*53ee8cc1Swenshuai.xi
1339*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1340*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1341*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1342*53ee8cc1Swenshuai.xi }
1343*53ee8cc1Swenshuai.xi
1344*53ee8cc1Swenshuai.xi
1345*53ee8cc1Swenshuai.xi
1346*53ee8cc1Swenshuai.xi
1347*53ee8cc1Swenshuai.xi
1348*53ee8cc1Swenshuai.xi
1349*53ee8cc1Swenshuai.xi
1350*53ee8cc1Swenshuai.xi
1351*53ee8cc1Swenshuai.xi
1352*53ee8cc1Swenshuai.xi
1353*53ee8cc1Swenshuai.xi
1354*53ee8cc1Swenshuai.xi
1355*53ee8cc1Swenshuai.xi
1356*53ee8cc1Swenshuai.xi
1357*53ee8cc1Swenshuai.xi
1358*53ee8cc1Swenshuai.xi
1359*53ee8cc1Swenshuai.xi
1360*53ee8cc1Swenshuai.xi
1361*53ee8cc1Swenshuai.xi
1362*53ee8cc1Swenshuai.xi
1363*53ee8cc1Swenshuai.xi
1364*53ee8cc1Swenshuai.xi
1365*53ee8cc1Swenshuai.xi
1366*53ee8cc1Swenshuai.xi
1367*53ee8cc1Swenshuai.xi
1368*53ee8cc1Swenshuai.xi
1369*53ee8cc1Swenshuai.xi
1370*53ee8cc1Swenshuai.xi
1371*53ee8cc1Swenshuai.xi
1372*53ee8cc1Swenshuai.xi
1373*53ee8cc1Swenshuai.xi
1374*53ee8cc1Swenshuai.xi
1375*53ee8cc1Swenshuai.xi
1376*53ee8cc1Swenshuai.xi
1377*53ee8cc1Swenshuai.xi
1378*53ee8cc1Swenshuai.xi
1379*53ee8cc1Swenshuai.xi
1380*53ee8cc1Swenshuai.xi
1381*53ee8cc1Swenshuai.xi
1382*53ee8cc1Swenshuai.xi
1383*53ee8cc1Swenshuai.xi
1384*53ee8cc1Swenshuai.xi
1385*53ee8cc1Swenshuai.xi
1386*53ee8cc1Swenshuai.xi
1387*53ee8cc1Swenshuai.xi
1388*53ee8cc1Swenshuai.xi
1389*53ee8cc1Swenshuai.xi
1390*53ee8cc1Swenshuai.xi
1391*53ee8cc1Swenshuai.xi
1392*53ee8cc1Swenshuai.xi
1393*53ee8cc1Swenshuai.xi
1394*53ee8cc1Swenshuai.xi
1395*53ee8cc1Swenshuai.xi
1396*53ee8cc1Swenshuai.xi
1397*53ee8cc1Swenshuai.xi
1398*53ee8cc1Swenshuai.xi
1399*53ee8cc1Swenshuai.xi
1400*53ee8cc1Swenshuai.xi
1401*53ee8cc1Swenshuai.xi
1402*53ee8cc1Swenshuai.xi
1403*53ee8cc1Swenshuai.xi
1404*53ee8cc1Swenshuai.xi
1405*53ee8cc1Swenshuai.xi
1406*53ee8cc1Swenshuai.xi
1407*53ee8cc1Swenshuai.xi
1408*53ee8cc1Swenshuai.xi
1409*53ee8cc1Swenshuai.xi
1410*53ee8cc1Swenshuai.xi
1411*53ee8cc1Swenshuai.xi /*
1412*53ee8cc1Swenshuai.xi MST_MFC_STATUS_t gMfcType;
1413*53ee8cc1Swenshuai.xi void MDrv_MFC_GetMfcInfo(void)
1414*53ee8cc1Swenshuai.xi {
1415*53ee8cc1Swenshuai.xi U8 u8Temp;
1416*53ee8cc1Swenshuai.xi U16 u16Temp;
1417*53ee8cc1Swenshuai.xi
1418*53ee8cc1Swenshuai.xi u8Temp = MDrv_MFC_ReadByte(0x29CF);
1419*53ee8cc1Swenshuai.xi gMfcType.Film22Mode = _bit6_(u8Temp);
1420*53ee8cc1Swenshuai.xi gMfcType.Film32Mode = _bit5_(u8Temp);
1421*53ee8cc1Swenshuai.xi gMfcType.Film22Idx = _bit4_(u8Temp);
1422*53ee8cc1Swenshuai.xi gMfcType.Film32Idx = ( u8Temp >> 1 ) & 0x07;
1423*53ee8cc1Swenshuai.xi gMfcType.FDUP = _bit0_(u8Temp);
1424*53ee8cc1Swenshuai.xi
1425*53ee8cc1Swenshuai.xi u8Temp = MDrv_MFC_ReadByte(0x29CE);
1426*53ee8cc1Swenshuai.xi gMfcType.FrameEnd = _bit7_(u8Temp);
1427*53ee8cc1Swenshuai.xi gMfcType.Skip_Thd = ( u8Temp >> 4 ) & 0x03;
1428*53ee8cc1Swenshuai.xi
1429*53ee8cc1Swenshuai.xi u16Temp = MDrv_MFC_Read2Bytes(0x29CC);
1430*53ee8cc1Swenshuai.xi gMfcType.GMVX = u16Temp & 0x00FE;
1431*53ee8cc1Swenshuai.xi gMfcType.GMVY = (u16Temp & 0x7F00) >> 8;
1432*53ee8cc1Swenshuai.xi gMfcType.GMVConfirm = ( ( (u16Temp & 0x0001) << 1) | (u16Temp >> 15));
1433*53ee8cc1Swenshuai.xi
1434*53ee8cc1Swenshuai.xi gMfcType.MinSAD = MDrv_MFC_Read2Bytes(0x29C8);
1435*53ee8cc1Swenshuai.xi gMfcType.MaxSAD_MSB = MDrv_MFC_ReadByte(0x29CB);
1436*53ee8cc1Swenshuai.xi gMfcType.MinSAD_MSB= MDrv_MFC_ReadByte(0x29C9);
1437*53ee8cc1Swenshuai.xi gMfcType.MovingBlkCnt = MDrv_MFC_Read2Bytes(0x29EC) & 0x3fff;
1438*53ee8cc1Swenshuai.xi gMfcType.maxXNegSpeed = MDrv_MFC_ReadByte(0x29C0);
1439*53ee8cc1Swenshuai.xi gMfcType.maxXPosSpeed = MDrv_MFC_ReadByte(0x29C2);
1440*53ee8cc1Swenshuai.xi gMfcType.maxYNegSpeed = MDrv_MFC_ReadByte(0x29C1);
1441*53ee8cc1Swenshuai.xi gMfcType.maxYPosSpeed = MDrv_MFC_ReadByte(0x29C3);
1442*53ee8cc1Swenshuai.xi gMfcType.ErrorBlk1 = MDrv_MFC_Read2Bytes(0x29E0) & 0x3fff;
1443*53ee8cc1Swenshuai.xi gMfcType.ErrorBlk2 = MDrv_MFC_Read2Bytes(0x29E2) & 0x3fff;
1444*53ee8cc1Swenshuai.xi gMfcType.ErrorBlk3 = MDrv_MFC_Read2Bytes(0x29E4) & 0x3fff;
1445*53ee8cc1Swenshuai.xi gMfcType.ErrorBlk4 = MDrv_MFC_Read2Bytes(0x29E6) & 0x3fff;
1446*53ee8cc1Swenshuai.xi gMfcType.ErrorBlk5 = MDrv_MFC_Read2Bytes(0x29E8) & 0x3fff;
1447*53ee8cc1Swenshuai.xi gMfcType.ErrorBlk6 = MDrv_MFC_Read2Bytes(0x29EA) & 0x3fff;
1448*53ee8cc1Swenshuai.xi gMfcType.gmvBlkCnt = MDrv_MFC_Read2Bytes(0x29D2);
1449*53ee8cc1Swenshuai.xi gMfcType.mv0BlkCnt = MDrv_MFC_Read2Bytes(0x29D4);
1450*53ee8cc1Swenshuai.xi gMfcType.cplxBlkCnt2 = MDrv_MFC_Read2Bytes(0x29D6);
1451*53ee8cc1Swenshuai.xi gMfcType.GMV0Err = MDrv_MFC_Read2Bytes(0x29DC);
1452*53ee8cc1Swenshuai.xi gMfcType.MINonContinuousBoundary = MDrv_MFC_Read2Bytes(0x29DE);
1453*53ee8cc1Swenshuai.xi gMfcType.cplxBlkCnt = MDrv_MFC_Read2Bytes(0x29EE);
1454*53ee8cc1Swenshuai.xi gMfcType.veryCplxBlkCnt = MDrv_MFC_Read2Bytes(0x29F8);
1455*53ee8cc1Swenshuai.xi gMfcType.unMatchPointCnt = MDrv_MFC_Read2Bytes(0x209A);
1456*53ee8cc1Swenshuai.xi }
1457*53ee8cc1Swenshuai.xi
1458*53ee8cc1Swenshuai.xi
1459*53ee8cc1Swenshuai.xi U8 firstMC_end;
1460*53ee8cc1Swenshuai.xi U8 beforeFirstME;
1461*53ee8cc1Swenshuai.xi void getFirstMC(void)
1462*53ee8cc1Swenshuai.xi {
1463*53ee8cc1Swenshuai.xi if (gmfcSysInfo.u8PanelVfreq==60)
1464*53ee8cc1Swenshuai.xi {
1465*53ee8cc1Swenshuai.xi if ( gMfcType.Film22Mode )
1466*53ee8cc1Swenshuai.xi firstMC_end = !gMfcType.Film22Idx;
1467*53ee8cc1Swenshuai.xi else if ( gMfcType.Film32Mode )
1468*53ee8cc1Swenshuai.xi firstMC_end = ( 0 == gMfcType.Film32Idx ) || ( 2 == gMfcType.Film32Idx );
1469*53ee8cc1Swenshuai.xi else
1470*53ee8cc1Swenshuai.xi firstMC_end = 1;
1471*53ee8cc1Swenshuai.xi }
1472*53ee8cc1Swenshuai.xi else
1473*53ee8cc1Swenshuai.xi {
1474*53ee8cc1Swenshuai.xi if ( gMfcType.Film22Mode )
1475*53ee8cc1Swenshuai.xi firstMC_end = !gMfcType.Film22Idx && !gMfcType.FDUP;
1476*53ee8cc1Swenshuai.xi else if ( gMfcType.Film32Mode )
1477*53ee8cc1Swenshuai.xi firstMC_end = ( 0 == gMfcType.Film32Idx && !gMfcType.FDUP ) || ( 2 == gMfcType.Film32Idx && gMfcType.FDUP );
1478*53ee8cc1Swenshuai.xi else
1479*53ee8cc1Swenshuai.xi firstMC_end = !gMfcType.FDUP;
1480*53ee8cc1Swenshuai.xi
1481*53ee8cc1Swenshuai.xi if ( gMfcType.Film22Mode )
1482*53ee8cc1Swenshuai.xi beforeFirstME = gMfcType.Film22Idx && gMfcType.FDUP;
1483*53ee8cc1Swenshuai.xi else if ( gMfcType.Film32Mode )
1484*53ee8cc1Swenshuai.xi beforeFirstME = ( 4 == gMfcType.Film32Idx && gMfcType.FDUP ) || ( 2 == gMfcType.Film32Idx && !gMfcType.FDUP );
1485*53ee8cc1Swenshuai.xi else
1486*53ee8cc1Swenshuai.xi beforeFirstME = gMfcType.FDUP;
1487*53ee8cc1Swenshuai.xi }
1488*53ee8cc1Swenshuai.xi }
1489*53ee8cc1Swenshuai.xi
1490*53ee8cc1Swenshuai.xi
1491*53ee8cc1Swenshuai.xi void MDrv_MFC_OtherPatches(void)
1492*53ee8cc1Swenshuai.xi {
1493*53ee8cc1Swenshuai.xi U8 temp, DebugLight1=0, DebugLight2=0;
1494*53ee8cc1Swenshuai.xi // patch No.1 : Force GMVY
1495*53ee8cc1Swenshuai.xi if( gMfcType.GMVY < 0x04 || gMfcType.GMVY > 0x7C)
1496*53ee8cc1Swenshuai.xi {
1497*53ee8cc1Swenshuai.xi if( gMfcType.GMVY < 0x04)
1498*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x263D, 0x04);
1499*53ee8cc1Swenshuai.xi else
1500*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x263D, 0x7C); // Force GMVY
1501*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x263C, gMfcType.GMVX); // Force GMVX
1502*53ee8cc1Swenshuai.xi DebugLight1 |= _BIT0;
1503*53ee8cc1Swenshuai.xi }
1504*53ee8cc1Swenshuai.xi else
1505*53ee8cc1Swenshuai.xi {
1506*53ee8cc1Swenshuai.xi DebugLight1 &= ~_BIT0;
1507*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x263C, 0);// disable Force GMVX
1508*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x263D, 0);// disable Force GMVY
1509*53ee8cc1Swenshuai.xi }
1510*53ee8cc1Swenshuai.xi // patch No.2 : Program Boundry GMVX
1511*53ee8cc1Swenshuai.xi if( gMfcType.GMVConfirm != 0)
1512*53ee8cc1Swenshuai.xi {
1513*53ee8cc1Swenshuai.xi temp = absGmvX(gMfcType.GMVX);
1514*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2954, (temp > 0x6C)? 0x7C: temp+0x10);
1515*53ee8cc1Swenshuai.xi }
1516*53ee8cc1Swenshuai.xi else
1517*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2954, 0x10);
1518*53ee8cc1Swenshuai.xi
1519*53ee8cc1Swenshuai.xi // patch No.3 : Keep zero On/Off
1520*53ee8cc1Swenshuai.xi if(gMfcType.mv0BlkCnt < 0x100)
1521*53ee8cc1Swenshuai.xi {
1522*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2953, 0x00);
1523*53ee8cc1Swenshuai.xi DebugLight1 |= _BIT1;
1524*53ee8cc1Swenshuai.xi }
1525*53ee8cc1Swenshuai.xi else
1526*53ee8cc1Swenshuai.xi {
1527*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2953, 0x80);
1528*53ee8cc1Swenshuai.xi DebugLight1 &= ~_BIT1;
1529*53ee8cc1Swenshuai.xi }
1530*53ee8cc1Swenshuai.xi
1531*53ee8cc1Swenshuai.xi #if 1 // patch No.4 : tango broken head and hand
1532*53ee8cc1Swenshuai.xi if (MaxSpeedDifToGMV>=0x06
1533*53ee8cc1Swenshuai.xi && MinSpeedDifToGMV <=0x02
1534*53ee8cc1Swenshuai.xi && MaxSpeedDifToGMV- MinSpeedDifToGMV >= 0x4
1535*53ee8cc1Swenshuai.xi && absGmvX(gMfcType.GMVX)> 0x10
1536*53ee8cc1Swenshuai.xi && gMfcType.ErrorBlk1> 30
1537*53ee8cc1Swenshuai.xi //&& gMfcType.unMatchPointCnt >2000
1538*53ee8cc1Swenshuai.xi && gMfcType.MINonContinuousBoundary > 10
1539*53ee8cc1Swenshuai.xi && gMfcType.mv0BlkCnt > 500 && gMfcType.mv0BlkCnt < 10000
1540*53ee8cc1Swenshuai.xi )
1541*53ee8cc1Swenshuai.xi {
1542*53ee8cc1Swenshuai.xi DebugLight2 |= 0xc0;
1543*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2935,(Posdiff(255, (absGmvX(gMfcType.GMVX)<<2))|0x2)); // errblk TH min(gMfcType.MINonContinuousBoundary,128)
1544*53ee8cc1Swenshuai.xi //MDrv_MFC_WriteByte(0x2647,(Posdiff(63, 0|0x80)));// cplx BLK OutRange TH absGmvX(gMfcType.GMVX)<<8)
1545*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x293F, 0xc6);
1546*53ee8cc1Swenshuai.xi }
1547*53ee8cc1Swenshuai.xi else
1548*53ee8cc1Swenshuai.xi {
1549*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2935,0xfe);
1550*53ee8cc1Swenshuai.xi //MDrv_MFC_WriteByte(0x2647,0x50);
1551*53ee8cc1Swenshuai.xi if(gMfcType.Film22Mode||gMfcType.Film32Mode) MDrv_MFC_WriteByte(0x293F, 0x06);
1552*53ee8cc1Swenshuai.xi DebugLight2 &= ~0xc0;
1553*53ee8cc1Swenshuai.xi }
1554*53ee8cc1Swenshuai.xi #endif
1555*53ee8cc1Swenshuai.xi
1556*53ee8cc1Swenshuai.xi #if 1 // patch No.5 : dynamic search range
1557*53ee8cc1Swenshuai.xi if(beforeFirstME)
1558*53ee8cc1Swenshuai.xi {
1559*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2916, 0x60);
1560*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2917, 0x60);
1561*53ee8cc1Swenshuai.xi }
1562*53ee8cc1Swenshuai.xi
1563*53ee8cc1Swenshuai.xi if( gMfcType.mv0BlkCnt>=((gMfcType.cplxBlkCnt2>>7)*127) && absGmvX(gMfcType.GMVX)<0x50)
1564*53ee8cc1Swenshuai.xi {
1565*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2956, min(absGmvX(gMfcType.GMVX)+0x48,0x7c));
1566*53ee8cc1Swenshuai.xi //MDrv_MFC_WriteByte(0x2956, absGmvY(gMfcType.GMVY)+0x20);
1567*53ee8cc1Swenshuai.xi //gDebugLight2 |= 0x0f;
1568*53ee8cc1Swenshuai.xi }
1569*53ee8cc1Swenshuai.xi else
1570*53ee8cc1Swenshuai.xi {
1571*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2956, 0x7c);
1572*53ee8cc1Swenshuai.xi //gDebugLight2 &= ~0x0f;
1573*53ee8cc1Swenshuai.xi }
1574*53ee8cc1Swenshuai.xi #endif
1575*53ee8cc1Swenshuai.xi
1576*53ee8cc1Swenshuai.xi #if 1
1577*53ee8cc1Swenshuai.xi // patch No.7 : patch for strong Halo setting
1578*53ee8cc1Swenshuai.xi if( (absGmvX(gMfcType.GMVX) < 0x04))
1579*53ee8cc1Swenshuai.xi {
1580*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x268C, 0X18); //--weak setting
1581*53ee8cc1Swenshuai.xi }
1582*53ee8cc1Swenshuai.xi else
1583*53ee8cc1Swenshuai.xi {
1584*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x268C, 0X98);
1585*53ee8cc1Swenshuai.xi }
1586*53ee8cc1Swenshuai.xi #endif
1587*53ee8cc1Swenshuai.xi
1588*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2620, DebugLight1 );
1589*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(0x2621, DebugLight2 );
1590*53ee8cc1Swenshuai.xi
1591*53ee8cc1Swenshuai.xi }
1592*53ee8cc1Swenshuai.xi
1593*53ee8cc1Swenshuai.xi void MDrv_MFC_SWPatch(void)
1594*53ee8cc1Swenshuai.xi {
1595*53ee8cc1Swenshuai.xi unsigned long u32Prejiiffes=0, u32Nowjiiffes=0;
1596*53ee8cc1Swenshuai.xi u32Prejiiffes = u32Nowjiiffes;
1597*53ee8cc1Swenshuai.xi u32Nowjiiffes = jiffies;
1598*53ee8cc1Swenshuai.xi printf("\n\n\n\n\n The interval = [%d]", (U16)(u32Nowjiiffes - u32Prejiiffes));
1599*53ee8cc1Swenshuai.xi
1600*53ee8cc1Swenshuai.xi // enter serial debug mode
1601*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugEnter);
1602*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWait);
1603*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBus);
1604*53ee8cc1Swenshuai.xi
1605*53ee8cc1Swenshuai.xi
1606*53ee8cc1Swenshuai.xi Drv_MFC_GetMfcInfo();
1607*53ee8cc1Swenshuai.xi Drv_MFC_OtherPatches();
1608*53ee8cc1Swenshuai.xi
1609*53ee8cc1Swenshuai.xi
1610*53ee8cc1Swenshuai.xi // exit serial debug mode
1611*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_I2cUseBusN);
1612*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_CpuWaitN);
1613*53ee8cc1Swenshuai.xi MDrv_MFC_SetSerialDebugMode(MFC_SerialDebugExit);
1614*53ee8cc1Swenshuai.xi }
1615*53ee8cc1Swenshuai.xi */
1616*53ee8cc1Swenshuai.xi
1617*53ee8cc1Swenshuai.xi
1618*53ee8cc1Swenshuai.xi
1619*53ee8cc1Swenshuai.xi
1620*53ee8cc1Swenshuai.xi
1621*53ee8cc1Swenshuai.xi
1622*53ee8cc1Swenshuai.xi
1623*53ee8cc1Swenshuai.xi
1624*53ee8cc1Swenshuai.xi
1625*53ee8cc1Swenshuai.xi
1626*53ee8cc1Swenshuai.xi
1627*53ee8cc1Swenshuai.xi
1628*53ee8cc1Swenshuai.xi
1629*53ee8cc1Swenshuai.xi
1630*53ee8cc1Swenshuai.xi
1631*53ee8cc1Swenshuai.xi
1632*53ee8cc1Swenshuai.xi
1633*53ee8cc1Swenshuai.xi
1634*53ee8cc1Swenshuai.xi
1635*53ee8cc1Swenshuai.xi
1636*53ee8cc1Swenshuai.xi
1637*53ee8cc1Swenshuai.xi
1638*53ee8cc1Swenshuai.xi
1639*53ee8cc1Swenshuai.xi
1640*53ee8cc1Swenshuai.xi
1641*53ee8cc1Swenshuai.xi
1642*53ee8cc1Swenshuai.xi
1643*53ee8cc1Swenshuai.xi
1644*53ee8cc1Swenshuai.xi
1645*53ee8cc1Swenshuai.xi
1646*53ee8cc1Swenshuai.xi
1647*53ee8cc1Swenshuai.xi
1648*53ee8cc1Swenshuai.xi
1649*53ee8cc1Swenshuai.xi
1650*53ee8cc1Swenshuai.xi
1651*53ee8cc1Swenshuai.xi
1652*53ee8cc1Swenshuai.xi
1653*53ee8cc1Swenshuai.xi
1654*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
1655*53ee8cc1Swenshuai.xi /// MFC get set data from user test use
1656*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
1657*53ee8cc1Swenshuai.xi
MDrv_MFC_DbgReadByte(U16 u16Addr)1658*53ee8cc1Swenshuai.xi U8 MDrv_MFC_DbgReadByte(U16 u16Addr)
1659*53ee8cc1Swenshuai.xi {
1660*53ee8cc1Swenshuai.xi return MDrv_MFC_ReadByte(u16Addr);
1661*53ee8cc1Swenshuai.xi }
1662*53ee8cc1Swenshuai.xi
MDrv_MFC_DbgWriteByte(U16 u16Addr,U8 u8Val)1663*53ee8cc1Swenshuai.xi void MDrv_MFC_DbgWriteByte(U16 u16Addr, U8 u8Val)
1664*53ee8cc1Swenshuai.xi {
1665*53ee8cc1Swenshuai.xi MDrv_MFC_WriteByte(u16Addr, u8Val);
1666*53ee8cc1Swenshuai.xi }
1667*53ee8cc1Swenshuai.xi
MDrv_MFC_IIC_Read(U8 u8ChIIC,U8 u8SlaveIdIIC,U8 * pu8AddrIIC,U8 u8AddrSizeIIC,U8 * pu8BufIIC,U32 u32BufSizeIIC)1668*53ee8cc1Swenshuai.xi BOOL MDrv_MFC_IIC_Read(U8 u8ChIIC, U8 u8SlaveIdIIC, U8 *pu8AddrIIC, U8 u8AddrSizeIIC, U8 *pu8BufIIC, U32 u32BufSizeIIC )
1669*53ee8cc1Swenshuai.xi {
1670*53ee8cc1Swenshuai.xi U16 u16Temp=0x0100;
1671*53ee8cc1Swenshuai.xi BOOL ret;
1672*53ee8cc1Swenshuai.xi extern BOOL MDrv_IIC_ReadBytes(U16 u16BusNumSlaveID, U8 ucSubAdr, U8* paddr, U16 ucBufLen, U8* pBuf);
1673*53ee8cc1Swenshuai.xi
1674*53ee8cc1Swenshuai.xi u8ChIIC = u8ChIIC;
1675*53ee8cc1Swenshuai.xi u16Temp = u16Temp | ((U16)u8SlaveIdIIC);
1676*53ee8cc1Swenshuai.xi
1677*53ee8cc1Swenshuai.xi ret = MDrv_IIC_ReadBytes(u16Temp, u8AddrSizeIIC, pu8AddrIIC, (U16)u32BufSizeIIC, pu8BufIIC);
1678*53ee8cc1Swenshuai.xi return ret;
1679*53ee8cc1Swenshuai.xi }
1680*53ee8cc1Swenshuai.xi
MDrv_MFC_IIC_Write(U8 u8ChIIC,U8 u8SlaveIdIIC,U8 * pu8AddrIIC,U8 u8AddrSizeIIC,U8 * pu8BufIIC,U32 u32BufSizeIIC)1681*53ee8cc1Swenshuai.xi BOOL MDrv_MFC_IIC_Write(U8 u8ChIIC, U8 u8SlaveIdIIC, U8 *pu8AddrIIC, U8 u8AddrSizeIIC, U8 *pu8BufIIC, U32 u32BufSizeIIC)
1682*53ee8cc1Swenshuai.xi {
1683*53ee8cc1Swenshuai.xi U16 u16Temp=0x0100;
1684*53ee8cc1Swenshuai.xi BOOL ret;
1685*53ee8cc1Swenshuai.xi extern BOOL MDrv_IIC_WriteBytes(U16 u16BusNumSlaveID, U8 AddrCnt, U8* pu8addr, U16 u16size, U8* pBuf);
1686*53ee8cc1Swenshuai.xi
1687*53ee8cc1Swenshuai.xi u8ChIIC = u8ChIIC;
1688*53ee8cc1Swenshuai.xi u16Temp = u16Temp | ((U16)u8SlaveIdIIC);
1689*53ee8cc1Swenshuai.xi //thchen printf("MDrv_MFC_IIC_Write\n");
1690*53ee8cc1Swenshuai.xi ret = MDrv_IIC_WriteBytes(u16Temp, u8AddrSizeIIC, pu8AddrIIC, (U16)u32BufSizeIIC , pu8BufIIC);
1691*53ee8cc1Swenshuai.xi return ret;
1692*53ee8cc1Swenshuai.xi }
1693*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
1694*53ee8cc1Swenshuai.xi // variable
1695*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
1696*53ee8cc1Swenshuai.xi #if 0
1697*53ee8cc1Swenshuai.xi static BOOL bExitMFCThread;
1698*53ee8cc1Swenshuai.xi static BOOL bReleaseMFCThread;
1699*53ee8cc1Swenshuai.xi static struct timer_list g_timer;
1700*53ee8cc1Swenshuai.xi
1701*53ee8cc1Swenshuai.xi void _MDrv_MFC_Thread(unsigned long arg)
1702*53ee8cc1Swenshuai.xi {
1703*53ee8cc1Swenshuai.xi unsigned long u32jiiffes;
1704*53ee8cc1Swenshuai.xi struct timer_list *t_timer;
1705*53ee8cc1Swenshuai.xi
1706*53ee8cc1Swenshuai.xi // timer returns immediately if timer exit flag is true
1707*53ee8cc1Swenshuai.xi if(bExitMFCThread == TRUE) {
1708*53ee8cc1Swenshuai.xi bReleaseMFCThread = TRUE;
1709*53ee8cc1Swenshuai.xi return;
1710*53ee8cc1Swenshuai.xi }
1711*53ee8cc1Swenshuai.xi
1712*53ee8cc1Swenshuai.xi //MDrv_MFC_SWPatch();
1713*53ee8cc1Swenshuai.xi t_timer = (struct timer_list *)arg;
1714*53ee8cc1Swenshuai.xi u32jiiffes = jiffies;
1715*53ee8cc1Swenshuai.xi // timer is triggered at next 15 Ms
1716*53ee8cc1Swenshuai.xi t_timer->expires = u32jiiffes + _15MS;
1717*53ee8cc1Swenshuai.xi add_timer(t_timer);
1718*53ee8cc1Swenshuai.xi }
1719*53ee8cc1Swenshuai.xi
1720*53ee8cc1Swenshuai.xi void _MDrv_MFC_StartTimer(void)
1721*53ee8cc1Swenshuai.xi {
1722*53ee8cc1Swenshuai.xi unsigned long u32jiiffes = jiffies;
1723*53ee8cc1Swenshuai.xi bExitMFCThread = FALSE;
1724*53ee8cc1Swenshuai.xi bReleaseMFCThread = FALSE;
1725*53ee8cc1Swenshuai.xi
1726*53ee8cc1Swenshuai.xi init_timer(&g_timer);
1727*53ee8cc1Swenshuai.xi g_timer.data = (unsigned long)&g_timer;
1728*53ee8cc1Swenshuai.xi g_timer.function = _MDrv_MFC_Thread;
1729*53ee8cc1Swenshuai.xi g_timer.expires = u32jiiffes + _15MS;
1730*53ee8cc1Swenshuai.xi add_timer(&g_timer);
1731*53ee8cc1Swenshuai.xi }
1732*53ee8cc1Swenshuai.xi
1733*53ee8cc1Swenshuai.xi void _MDrv_MFC_DeleteTimer(void)
1734*53ee8cc1Swenshuai.xi {
1735*53ee8cc1Swenshuai.xi U32 u32TimeOut = 5;
1736*53ee8cc1Swenshuai.xi bExitMFCThread = TRUE;
1737*53ee8cc1Swenshuai.xi
1738*53ee8cc1Swenshuai.xi /* system waits thread exit success or time out after 15*5 ms. */
1739*53ee8cc1Swenshuai.xi while(u32TimeOut--)
1740*53ee8cc1Swenshuai.xi {
1741*53ee8cc1Swenshuai.xi msleep(15);
1742*53ee8cc1Swenshuai.xi if(bReleaseMFCThread == TRUE)
1743*53ee8cc1Swenshuai.xi break;
1744*53ee8cc1Swenshuai.xi }
1745*53ee8cc1Swenshuai.xi /* delete timer */
1746*53ee8cc1Swenshuai.xi del_timer_sync(&g_timer);
1747*53ee8cc1Swenshuai.xi }
1748*53ee8cc1Swenshuai.xi #endif
1749