📄 lcd_plat.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.01.60511.01
TTL D:\WINCE600\PLATFORM\M-stone\SRC\DRIVERS\Display\panels\lcd_plat.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:LIBCMT "
DCB "-defaultlib:OLDNAMES "
00000 AREA |.data|, DATA
COMMON |XllpLCD|, 0x90
|?s_szGPERegKey@?1??get_screen_size@@9@9| DCB "D", 0x0, "r", 0x0, "i", 0x0
DCB "v", 0x0, "e", 0x0, "r", 0x0, "s", 0x0, "\\", 0x0, "D", 0x0
DCB "i", 0x0, "s", 0x0, "p", 0x0, "l", 0x0, "a", 0x0, "y", 0x0
DCB "\\", 0x0, "G", 0x0, "P", 0x0, "E", 0x0, 0x0, 0x0 ; `get_screen_size'::`2'::s_szGPERegKey
EXPORT |__$ArrayPad$| [ DATA ]
EXPORT |get_blit_option|
IMPORT |KernelIoControl|
IMPORT |__security_cookie|
IMPORT |__GSHandlerCheck|
IMPORT |__security_check_cookie|
00000 AREA |.pdata|, PDATA
|$T42589| DCD |$LN5@get_blit_o|
DCD 0xc0001802
00000 AREA |.xdata|, DATA
|$T42585| DCD 0xffffffec
; Function compile flags: /Odtp
; File d:\wince600\platform\m-stone\src\drivers\display\panels\lcd_plat.c
00000 AREA |.text|, CODE, ARM
00000 00000000 DCD |__GSHandlerCheck|
00004 00000000 DCD |$T42585|
00008 |get_blit_option| PROC
; 42 : {
00008 |$LN5@get_blit_o|
00008 e52de004 str lr, [sp, #-4]!
0000c e24dd0dc sub sp, sp, #0xDC
00010 |$M42586|
00010 e59f304c ldr r3, [pc, #0x4C]
00014 e5933000 ldr r3, [r3]
00018 e58d30cc str r3, [sp, #0xCC]
; 43 : DWORD out_size;
; 44 : BSP_ARGS args;
; 45 :
; 46 : KernelIoControl(IOCTL_GET_BSP_ARGS, NULL, 0,
; 47 : &args, sizeof(BSP_ARGS), &out_size);
0001c e28d30c8 add r3, sp, #0xC8
00020 e58d3004 str r3, [sp, #4]
00024 e3a030c0 mov r3, #0xC0
00028 e58d3000 str r3, [sp]
0002c e28d3008 add r3, sp, #8
00030 e3a02000 mov r2, #0
00034 e3a01000 mov r1, #0
00038 e59f0020 ldr r0, [pc, #0x20]
0003c eb000000 bl KernelIoControl
; 48 :
; 49 : return args.DefaultBlit;
00040 e59d00cc ldr r0, [sp, #0xCC]
00044 eb000000 bl __security_check_cookie
00048 e59d30bc ldr r3, [sp, #0xBC]
0004c e58d30d8 str r3, [sp, #0xD8]
; 50 : }
00050 e59d00d8 ldr r0, [sp, #0xD8]
00054 e28dd0dc add sp, sp, #0xDC
00058 e49de004 ldr lr, [sp], #4
0005c e12fff1e bx lr
00060 |$LN6@get_blit_o|
00060 |$LN7@get_blit_o|
00060 01013e80 DCD 0x1013e80
00064 |$LN8@get_blit_o|
00064 00000000 DCD |__security_cookie|
00068 |$M42587|
ENDP ; |get_blit_option|
EXPORT |is_dual_panel|
00008 AREA |.pdata|, PDATA
|$T42598| DCD |$LN9@is_dual_pa|
DCD 0x40001b02
; Function compile flags: /Odtp
00068 AREA |.text|, CODE, ARM
00068 |is_dual_panel| PROC
; 64 : {
00068 |$LN9@is_dual_pa|
00068 e52de004 str lr, [sp, #-4]!
0006c e24dd010 sub sp, sp, #0x10
00070 |$M42595|
; 65 : DWORD cfg = get_panel_type();
00070 eb000000 bl get_panel_type
00074 e58d0008 str r0, [sp, #8]
00078 e59d3008 ldr r3, [sp, #8]
0007c e58d3000 str r3, [sp]
; 66 : switch (cfg)
00080 e59d3000 ldr r3, [sp]
00084 e58d300c str r3, [sp, #0xC]
00088 e59d300c ldr r3, [sp, #0xC]
0008c e3530020 cmp r3, #0x20
00090 3a000009 bcc |$LN1@is_dual_pa|
00094 e59d300c ldr r3, [sp, #0xC]
00098 e3530021 cmp r3, #0x21
0009c 9a000003 bls |$LN2@is_dual_pa|
000a0 e59d300c ldr r3, [sp, #0xC]
000a4 e3530025 cmp r3, #0x25
000a8 0a000000 beq |$LN2@is_dual_pa|
000ac ea000002 b |$LN1@is_dual_pa|
000b0 |$LN2@is_dual_pa|
; 67 : {
; 68 : case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD:
; 69 : case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD_FREE:
; 70 : case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD_FREE_LANDSCAPE:
; 71 : return TRUE;
000b0 e3a03001 mov r3, #1
000b4 e58d3004 str r3, [sp, #4]
000b8 ea000001 b |$LN5@is_dual_pa|
000bc |$LN1@is_dual_pa|
; 72 : default:
; 73 : return FALSE;
000bc e3a03000 mov r3, #0
000c0 e58d3004 str r3, [sp, #4]
000c4 |$LN5@is_dual_pa|
; 74 : }
; 75 : }
000c4 e59d0004 ldr r0, [sp, #4]
000c8 e28dd010 add sp, sp, #0x10
000cc e49de004 ldr lr, [sp], #4
000d0 e12fff1e bx lr
000d4 |$M42596|
ENDP ; |is_dual_panel|
EXPORT |__$ArrayPad$| [ DATA ]
00010 AREA |.pdata|, PDATA
|$T42608| DCD |$LN5@get_panel_|
DCD 0xc0001802
00004 AREA |.xdata|, DATA
|$T42604| DCD 0xffffffec
; Function compile flags: /Odtp
000d4 AREA |.text|, CODE, ARM
000d4 00000000 DCD |__GSHandlerCheck|
000d8 00000000 DCD |$T42604|
000dc |get_panel_type| PROC
; 53 : {
000dc |$LN5@get_panel_|
000dc e52de004 str lr, [sp, #-4]!
000e0 e24dd0dc sub sp, sp, #0xDC
000e4 |$M42605|
000e4 e59f304c ldr r3, [pc, #0x4C]
000e8 e5933000 ldr r3, [r3]
000ec e58d30cc str r3, [sp, #0xCC]
; 54 : DWORD out_size;
; 55 : BSP_ARGS args;
; 56 :
; 57 : KernelIoControl(IOCTL_GET_BSP_ARGS, NULL, 0,
; 58 : &args, sizeof(BSP_ARGS), &out_size);
000f0 e28d30c8 add r3, sp, #0xC8
000f4 e58d3004 str r3, [sp, #4]
000f8 e3a030c0 mov r3, #0xC0
000fc e58d3000 str r3, [sp]
00100 e28d3008 add r3, sp, #8
00104 e3a02000 mov r2, #0
00108 e3a01000 mov r1, #0
0010c e59f0020 ldr r0, [pc, #0x20]
00110 eb000000 bl KernelIoControl
; 59 :
; 60 : return args.DefaultLCDPanel;
00114 e59d00cc ldr r0, [sp, #0xCC]
00118 eb000000 bl __security_check_cookie
0011c e59d30c0 ldr r3, [sp, #0xC0]
00120 e58d30d8 str r3, [sp, #0xD8]
; 61 : }
00124 e59d00d8 ldr r0, [sp, #0xD8]
00128 e28dd0dc add sp, sp, #0xDC
0012c e49de004 ldr lr, [sp], #4
00130 e12fff1e bx lr
00134 |$LN6@get_panel_|
00134 |$LN7@get_panel_|
00134 01013e80 DCD 0x1013e80
00138 |$LN8@get_panel_|
00138 00000000 DCD |__security_cookie|
0013c |$M42606|
ENDP ; |get_panel_type|
EXPORT |??_C@_1BK@HNDINEGH@?$AAV?$AAe?$AAr?$AAt?$AAi?$AAc?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1BO@CPEMBNKP@?$AAH?$AAo?$AAr?$AAi?$AAz?$AAo?$AAn?$AAt?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| [ DATA ] ; `string'
EXPORT |get_screen_size|
IMPORT |RegQueryValueExW|
IMPORT |RegOpenKeyExW|
00018 AREA |.pdata|, PDATA
|$T42621| DCD |$LN10@get_screen|
DCD 0x40004504
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1BK@HNDINEGH@?$AAV?$AAe?$AAr?$AAt?$AAi?$AAc?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| DCB "V"
DCB 0x0, "e", 0x0, "r", 0x0, "t", 0x0, "i", 0x0, "c", 0x0, "a"
DCB 0x0, "l", 0x0, "S", 0x0, "i", 0x0, "z", 0x0, "e", 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1BO@CPEMBNKP@?$AAH?$AAo?$AAr?$AAi?$AAz?$AAo?$AAn?$AAt?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| DCB "H"
DCB 0x0, "o", 0x0, "r", 0x0, "i", 0x0, "z", 0x0, "o", 0x0, "n"
DCB 0x0, "t", 0x0, "a", 0x0, "l", 0x0, "S", 0x0, "i", 0x0, "z"
DCB 0x0, "e", 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Odtp
0013c AREA |.text|, CODE, ARM
0013c |get_screen_size| PROC
; 78 : {
0013c |$LN10@get_screen|
0013c e1a0c00d mov r12, sp
00140 e92d0003 stmdb sp!, {r0, r1}
00144 e92d5000 stmdb sp!, {r12, lr}
00148 e24dd038 sub sp, sp, #0x38
0014c |$M42618|
; 79 : HKEY hKey;
; 80 :
; 81 : static WCHAR s_szGPERegKey[] = L"Drivers\\Display\\GPE";
; 82 : // default size
; 83 : *width = 240;
0014c e59d2040 ldr r2, [sp, #0x40]
00150 e3a030f0 mov r3, #0xF0
00154 e5823000 str r3, [r2]
; 84 : *height = 320;
00158 e59d2044 ldr r2, [sp, #0x44]
0015c e3a03d05 mov r3, #5, 26
00160 e5823000 str r3, [r2]
; 85 :
; 86 : // Open GPE's regkey and read the know values from it.
; 87 : if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE,
; 88 : s_szGPERegKey,
; 89 : 0,
; 90 : 0,
; 91 : &hKey))
00164 e28d3008 add r3, sp, #8
00168 e58d3000 str r3, [sp]
0016c e3a03000 mov r3, #0
00170 e3a02000 mov r2, #0
00174 e59f10d0 ldr r1, [pc, #0xD0]
00178 e3a0010a mov r0, #0xA, 2
0017c eb000000 bl RegOpenKeyExW
00180 e58d002c str r0, [sp, #0x2C]
00184 e59d302c ldr r3, [sp, #0x2C]
00188 e3530000 cmp r3, #0
0018c 1a000029 bne |$LN5@get_screen|
; 92 : {
; 93 : DWORD dwType;
; 94 : DWORD dwValue;
; 95 : DWORD dwSize;
; 96 :
; 97 : dwSize = sizeof (ULONG);
00190 e3a03004 mov r3, #4
00194 e58d3010 str r3, [sp, #0x10]
; 98 : if (ERROR_SUCCESS == RegQueryValueEx(hKey,
; 99 : L"HorizontalSize",
; 100 : NULL,
; 101 : &dwType,
; 102 : (BYTE*)&dwValue,
; 103 : &dwSize))
00198 e28d3010 add r3, sp, #0x10
0019c e58d3004 str r3, [sp, #4]
001a0 e28d3014 add r3, sp, #0x14
001a4 e58d3000 str r3, [sp]
001a8 e28d300c add r3, sp, #0xC
001ac e3a02000 mov r2, #0
001b0 e59f1090 ldr r1, [pc, #0x90]
001b4 e59d0008 ldr r0, [sp, #8]
001b8 eb000000 bl RegQueryValueExW
001bc e58d0030 str r0, [sp, #0x30]
001c0 e59d3030 ldr r3, [sp, #0x30]
001c4 e3530000 cmp r3, #0
001c8 1a000005 bne |$LN4@get_screen|
; 104 : {
; 105 : if (REG_DWORD == dwType)
001cc e59d300c ldr r3, [sp, #0xC]
001d0 e3530004 cmp r3, #4
001d4 1a000002 bne |$LN3@get_screen|
; 106 : {
; 107 : *width = dwValue;
001d8 e59d2014 ldr r2, [sp, #0x14]
001dc e59d3040 ldr r3, [sp, #0x40]
001e0 e5832000 str r2, [r3]
001e4 |$LN3@get_screen|
001e4 |$LN4@get_screen|
; 108 : }
; 109 : }
; 110 :
; 111 : dwSize = sizeof (ULONG);
001e4 e3a03004 mov r3, #4
001e8 e58d3010 str r3, [sp, #0x10]
; 112 : if (ERROR_SUCCESS == RegQueryValueEx(hKey,
; 113 : L"VerticalSize",
; 114 : NULL,
; 115 : &dwType,
; 116 : (BYTE*)&dwValue,
; 117 : &dwSize))
001ec e28d3010 add r3, sp, #0x10
001f0 e58d3004 str r3, [sp, #4]
001f4 e28d3014 add r3, sp, #0x14
001f8 e58d3000 str r3, [sp]
001fc e28d300c add r3, sp, #0xC
00200 e3a02000 mov r2, #0
00204 e59f1038 ldr r1, [pc, #0x38]
00208 e59d0008 ldr r0, [sp, #8]
0020c eb000000 bl RegQueryValueExW
00210 e58d0034 str r0, [sp, #0x34]
00214 e59d3034 ldr r3, [sp, #0x34]
00218 e3530000 cmp r3, #0
0021c 1a000005 bne |$LN2@get_screen|
; 118 : {
; 119 : if (REG_DWORD == dwType)
00220 e59d300c ldr r3, [sp, #0xC]
00224 e3530004 cmp r3, #4
00228 1a000002 bne |$LN1@get_screen|
; 120 : {
; 121 : *height = dwValue;
0022c e59d2014 ldr r2, [sp, #0x14]
00230 e59d3044 ldr r3, [sp, #0x44]
00234 e5832000 str r2, [r3]
00238 |$LN1@get_screen|
00238 |$LN2@get_screen|
00238 |$LN5@get_screen|
; 122 : }
; 123 : }
; 124 : }
; 125 : }
00238 e28dd038 add sp, sp, #0x38
0023c e89d6000 ldmia sp, {sp, lr}
00240 e12fff1e bx lr
00244 |$LN11@get_screen|
00244 |$LN12@get_screen|
00244 00000000 DCD |??_C@_1BK@HNDINEGH@?$AAV?$AAe?$AAr?$AAt?$AAi?$AAc?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@|
00248 |$LN13@get_screen|
00248 00000000 DCD |??_C@_1BO@CPEMBNKP@?$AAH?$AAo?$AAr?$AAi?$AAz?$AAo?$AAn?$AAt?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@|
0024c |$LN14@get_screen|
0024c 00000000 DCD |?s_szGPERegKey@?1??get_screen_size@@9@9|
00250 |$M42619|
ENDP ; |get_screen_size|
EXPORT |??_C@_1DM@NGGLONBF@?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAl?$AAc?$AAd?$AA?5?$AAp?$AAa?$AAn?$AAe?$AAl?$AA?5?$AA0?$AA2?$AA8?$AA3?$AA?$CI?$AAQ?$AAV?$AAG?$AAA?$AA?$CJ?$AA?4?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'
EXPORT |LCDPanelSelect|
IMPORT |NKDbgPrintfW|
IMPORT |vga_qvga_panel_init|
IMPORT |memcpy|
00020 AREA |.pdata|, PDATA
|$T42634| DCD |$LN10@LCDPanelSe|
DCD 0x40004c04
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1DM@NGGLONBF@?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAl?$AAc?$AAd?$AA?5?$AAp?$AAa?$AAn?$AAe?$AAl?$AA?5?$AA0?$AA2?$AA8?$AA3?$AA?$CI?$AAQ?$AAV?$AAG?$AAA?$AA?$CJ?$AA?4?$AA?$AN?$AA?6?$AA?$AA@| DCB "u"
DCB 0x0, "s", 0x0, "i", 0x0, "n", 0x0, "g", 0x0, " ", 0x0, "l"
DCB 0x0, "c", 0x0, "d", 0x0, " ", 0x0, "p", 0x0, "a", 0x0, "n"
DCB 0x0, "e", 0x0, "l", 0x0, " ", 0x0, "0", 0x0, "2", 0x0, "8"
DCB 0x0, "3", 0x0, "(", 0x0, "Q", 0x0, "V", 0x0, "G", 0x0, "A"
DCB 0x0, ")", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -