⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atamain.cod

📁 PXA270的BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:

; 289  : 		HDPara.nFmtBytesPerSector = ReadIdeData();

  000a0	e1d900b0	 ldrh        r0, [r9]

; 290  : 		HDPara.SectorsPerTrack = ReadIdeData();

  000a4	e1d9e0b0	 ldrh        lr, [r9]

; 291  : 		HDPara.PID[0] = ReadIdeData();

  000a8	e1d940b0	 ldrh        r4, [r9]

; 292  : 		HDPara.PID[1] = ReadIdeData();

  000ac	e1d910b0	 ldrh        r1, [r9]
  000b0	e1c830b4	 strh        r3, [r8, #4]

; 293  : 		HDPara.PID[2] = ReadIdeData();

  000b4	e1d930b0	 ldrh        r3, [r9]
  000b8	e1c820b6	 strh        r2, [r8, #6]
  000bc	e1c800b8	 strh        r0, [r8, #8]
  000c0	e1c8e0ba	 strh        lr, [r8, #0xA]
  000c4	e1c840bc	 strh        r4, [r8, #0xC]
  000c8	e1c810be	 strh        r1, [r8, #0xE]
  000cc	e1c831b0	 strh        r3, [r8, #0x10]
  000d0	e1a01008	 mov         r1, r8
  000d4	e3a0000a	 mov         r0, #0xA
  000d8		 |$L32992|

; 294  : 		for(i=0; i<10; i++)
; 295  : 		{
; 296  : 			tmp = ReadIdeData();			

  000d8	e1d920b0	 ldrh        r2, [r9]
  000dc	e2500001	 subs        r0, r0, #1

; 297  : 			HDPara.SerString[2*i]   = tmp>>8;

  000e0	e1a03422	 mov         r3, r2, lsr #8
  000e4	e5c13012	 strb        r3, [r1, #0x12]

; 298  : 			HDPara.SerString[2*i+1] = tmp;

  000e8	e5c12013	 strb        r2, [r1, #0x13]
  000ec	e2811002	 add         r1, r1, #2
  000f0	1afffff8	 bne         |$L32992|

; 299  : 		}
; 300  : 		HDPara.SectorBufferType = ReadIdeData();

  000f4	e1d930b0	 ldrh        r3, [r9]

; 301  : 		HDPara.SectorBufferPages = ReadIdeData();

  000f8	e1d920b0	 ldrh        r2, [r9]

; 302  : 		HDPara.LongRdWrECCBytes = ReadIdeData();

  000fc	e1d910b0	 ldrh        r1, [r9]
  00100	e1c832b8	 strh        r3, [r8, #0x28]
  00104	e1c822ba	 strh        r2, [r8, #0x2A]
  00108	e1c812bc	 strh        r1, [r8, #0x2C]
  0010c	e1a01008	 mov         r1, r8
  00110	e3a00004	 mov         r0, #4
  00114		 |$L32999|

; 303  : 		for(i=0; i<4; i++)
; 304  : 		{
; 305  : 			tmp = ReadIdeData();

  00114	e1d920b0	 ldrh        r2, [r9]
  00118	e2500001	 subs        r0, r0, #1

; 306  : 			HDPara.FirmwareVersion[2*i]   = tmp>>8;

  0011c	e1a03422	 mov         r3, r2, lsr #8
  00120	e5c1302e	 strb        r3, [r1, #0x2E]

; 307  : 			HDPara.FirmwareVersion[2*i+1] = tmp;

  00124	e5c1202f	 strb        r2, [r1, #0x2F]
  00128	e2811002	 add         r1, r1, #2
  0012c	1afffff8	 bne         |$L32999|

; 308  : 		}
; 309  : 		for(i=0; i<20; i++)	

  00130	e1a01008	 mov         r1, r8
  00134	e3a00014	 mov         r0, #0x14
  00138		 |$L33003|

; 310  : 		{
; 311  : 			tmp = ReadIdeData();

  00138	e1d920b0	 ldrh        r2, [r9]
  0013c	e2500001	 subs        r0, r0, #1

; 312  : 			HDPara.ProductName[2*i]   = tmp>>8;

  00140	e1a03422	 mov         r3, r2, lsr #8
  00144	e5c13037	 strb        r3, [r1, #0x37]

; 313  : 			HDPara.ProductName[2*i+1] = tmp;			

  00148	e5c12038	 strb        r2, [r1, #0x38]
  0014c	e2811002	 add         r1, r1, #2
  00150	1afffff8	 bne         |$L33003|

; 314  : 		}
; 315  : 		HDPara.IntSecCntInMltSecRW = ReadIdeData();

  00154	e1d930b0	 ldrh        r3, [r9]

; 316  : 		HDPara.DwordIoEn = ReadIdeData();

  00158	e1d920b0	 ldrh        r2, [r9]

; 317  : 		HDPara.LBA_DMA = ReadIdeData();

  0015c	e1d940b0	 ldrh        r4, [r9]

; 318  : 		tmp = ReadIdeData();

  00160	e1d910b0	 ldrh        r1, [r9]

; 319  : 		HDPara.PIOTimer = ReadIdeData();

  00164	e1d950b0	 ldrh        r5, [r9]

; 320  : 		HDPara.DMATimer = ReadIdeData();
; 321  : 		tmp = ReadIdeData();
; 322  : 		HDPara.CurCylinder = ReadIdeData();
; 323  : 		HDPara.CurHead = ReadIdeData();
; 324  : 		HDPara.CurSectorsPerTrack = ReadIdeData();
; 325  : 		HDPara.CurSectorsPerTrack |= ReadIdeData()<<16;
; 326  : 		HDPara.TotalSectors = ReadIdeData();

  00168	e1c836b0	 strh        r3, [r8, #0x60]

; 327  : 		HDPara.IntTransSectors = ReadIdeData();

  0016c	e59f30c8	 ldr         r3, [pc, #0xC8]
  00170	e1d960b0	 ldrh        r6, [r9]
  00174	e1d9b0b0	 ldrh        r11, [r9]
  00178	e1d900b0	 ldrh        r0, [r9]
  0017c	e1d9e0b0	 ldrh        lr, [r9]
  00180	e1cd10b0	 strh        r1, [sp]
  00184	e1d970b0	 ldrh        r7, [r9]
  00188	e1c326b2	 strh        r2, [r3, #0x62]
  0018c	e1d9a0b0	 ldrh        r10, [r9]
  00190	e3a014b6	 mov         r1, #0xB6, 8

; 328  : 		HDPara.TotalSectorsLBA = ReadIdeData();

  00194	e3a024b6	 mov         r2, #0xB6, 8
  00198	e1c346b4	 strh        r4, [r3, #0x64]

; 329  : 		HDPara.TotalSectorsLBA |= ReadIdeData()<<16;

  0019c	e59f4098	 ldr         r4, [pc, #0x98]
  001a0	e1d990b0	 ldrh        r9, [r9]
  001a4	e381160a	 orr         r1, r1, #0xA, 12
  001a8	e1d180b0	 ldrh        r8, [r1]
  001ac	e382260a	 orr         r2, r2, #0xA, 12
  001b0	e1d210b0	 ldrh        r1, [r2]
  001b4	e1d230b0	 ldrh        r3, [r2]
  001b8	e1c456b6	 strh        r5, [r4, #0x66]
  001bc	e1c466b8	 strh        r6, [r4, #0x68]
  001c0	e1c406ba	 strh        r0, [r4, #0x6A]
  001c4	e1c4e6bc	 strh        lr, [r4, #0x6C]

; 330  : 		HDPara.SWDMA = ReadIdeData();

  001c8	e181e803	 orr         lr, r1, r3, lsl #16

; 331  : 		HDPara.MWDMA = ReadIdeData();				

  001cc	e3a014b6	 mov         r1, #0xB6, 8
  001d0	e1d220b0	 ldrh        r2, [r2]
  001d4	e381160a	 orr         r1, r1, #0xA, 12
  001d8	e1d130b0	 ldrh        r3, [r1]
  001dc	e1c476be	 strh        r7, [r4, #0x6E]
  001e0	e5849070	 str         r9, [r4, #0x70]
  001e4	e1c487b4	 strh        r8, [r4, #0x74]
  001e8	e584e078	 str         lr, [r4, #0x78]
  001ec	e1c427bc	 strh        r2, [r4, #0x7C]
  001f0	e1c437be	 strh        r3, [r4, #0x7E]
  001f4	e1dd30b0	 ldrh        r3, [sp]

; 332  : 		
; 333  : 		for(i=192; i; i--)

  001f8	e3a020c0	 mov         r2, #0xC0
  001fc		 |$L33024|

; 334  : 			tmp = ReadIdeData();

  001fc	e1d130b0	 ldrh        r3, [r1]
  00200	e2522001	 subs        r2, r2, #1
  00204	1afffffc	 bne         |$L33024|

; 335  : 
; 336  : 		HDPara.SerString[20] = 0;

  00208	e3a03000	 mov         r3, #0

; 337  : 		HDPara.ProductName[40] = 0;
; 338  : 		HDPara.FirmwareVersion[8] = 0;			
; 339  : 		//printf("Product name : %s\n", HDPara.ProductName);
; 340  : 		//printf("Firmware version : %s\n", HDPara.FirmwareVersion);				
; 341  : 		//printf("Serial string : %s\n", HDPara.SerString);
; 342  : 		//printf("Total sectors : %d\n\n", HDPara.TotalSectorsLBA);
; 343  : 		RETAILMSG(1,(TEXT("Total sectors : %d\r\n"), HDPara.TotalSectorsLBA));

  0020c	e5c43026	 strb        r3, [r4, #0x26]
  00210	e3a03000	 mov         r3, #0
  00214	e59f001c	 ldr         r0, [pc, #0x1C]
  00218	e5c4305f	 strb        r3, [r4, #0x5F]
  0021c	e3a03000	 mov         r3, #0
  00220	e1a0100e	 mov         r1, lr
  00224	e5c43036	 strb        r3, [r4, #0x36]
  00228	eb000000	 bl          NKDbgPrintfW
  0022c		 |$L33407|

; 344  : 			
; 345  : 	}	
; 346  : 
; 347  : }

  0022c	e28dd004	 add         sp, sp, #4
  00230	e8bd4ff0	 ldmia       sp!, {r4 - r11, lr}
  00234	e12fff1e	 bx          lr
  00238		 |$L33433|
  00238	00000000	 DCD         |??_C@_1CK@KMLKEIKF@?$AAT?$AAo?$AAt?$AAa?$AAl?$AA?5?$AAs?$AAe?$AAc?$AAt?$AAo?$AAr?$AAs?$AA?5?$AA?3?$AA?5?$AA?$CF?$AAd?$AA?$AN?$AA?6@|
  0023c	00000000	 DCD         |HDPara|
  00240	00000000	 DCD         |??_C@_1CC@IFPBOGIL@?$AAC?$AAy?$AAl?$AAi?$AAn?$AAd?$AAe?$AAr?$AAs?$AA?5?$AA?3?$AA?5?$AA?$CF?$AAd?$AA?$AN?$AA?6?$AA?$AA@|
  00244	b6a000e0	 DCD         0xb6a000e0
  00248		 |$M33429|

			 ENDP  ; |?GetIdeInfo@@YAXXZ|, GetIdeInfo

	EXPORT	|?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z| ; AtaLoadRegKey
	EXPORT	|??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@| [ DATA ] ; `string'
	IMPORT	|LocalAlloc|
	IMPORT	|LocalFree|
	IMPORT	|RegOpenKeyExW|
	IMPORT	|RegQueryValueExW|

  00000			 AREA	 |.text| { |?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z| } ; comdat associative
|$T33446| DCD	|$L33445|
	DCD	0x40003702

  00000			 AREA	 |.rdata| { |??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@| DCB "K", 0x0, "e", 0x0, "y", 0x0
	DCB	0x0, 0x0				; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z| PROC ; AtaLoadRegKey

; 350  : {

  00000		 |$L33445|
  00000	e92d43f0	 stmdb       sp!, {r4 - r9, lr}
  00004	e24dd014	 sub         sp, sp, #0x14
  00008		 |$M33443|
  00008	e1a05001	 mov         r5, r1
  0000c	e1a06000	 mov         r6, r0

; 351  :     DWORD dwType;
; 352  :     PTSTR szDevKey = NULL;
; 353  :     DWORD dwValueLen = 0;
; 354  :     HKEY hDevKey = NULL;    
; 355  :     // Find out how big the name of the device key is
; 356  :     // Since dwValueLen is 0 and the name is NULL we expect a ERROR_SUCCESS although the doc's
; 357  :     // say that it should return ERROR_MORE_DATA
; 358  :     if (ERROR_SUCCESS == RegQueryValueEx( hActiveKey, DEVLOAD_DEVKEY_VALNAME, NULL, &dwType, NULL, &dwValueLen)) {

  00010	e59f10c0	 ldr         r1, [pc, #0xC0]
  00014	e3a07000	 mov         r7, #0
  00018	e3a08000	 mov         r8, #0
  0001c	e28de00c	 add         lr, sp, #0xC
  00020	e3a09000	 mov         r9, #0
  00024	e28d3010	 add         r3, sp, #0x10
  00028	e3a02000	 mov         r2, #0
  0002c	e3a04000	 mov         r4, #0
  00030	e58d700c	 str         r7, [sp, #0xC]
  00034	e58d8008	 str         r8, [sp, #8]
  00038	e58de004	 str         lr, [sp, #4]
  0003c	e58d9000	 str         r9, [sp]
  00040	eb000000	 bl          RegQueryValueExW
  00044	e3500000	 cmp         r0, #0
  00048	1a000016	 bne         |$L33437|

; 359  :         szDevKey = (PTSTR)LocalAlloc( LPTR, dwValueLen);

  0004c	e59d100c	 ldr         r1, [sp, #0xC]
  00050	e3a00040	 mov         r0, #0x40
  00054	eb000000	 bl          LocalAlloc

; 360  :         // Read in the KeyName of the device
; 361  :         RegQueryValueEx( hActiveKey, DEVLOAD_DEVKEY_VALNAME, NULL, &dwType, (PBYTE)szDevKey, &dwValueLen);

  00058	e59f1078	 ldr         r1, [pc, #0x78]
  0005c	e1a04000	 mov         r4, r0
  00060	e28de00c	 add         lr, sp, #0xC
  00064	e1a00006	 mov         r0, r6
  00068	e28d3010	 add         r3, sp, #0x10
  0006c	e3a02000	 mov         r2, #0
  00070	e58d4000	 str         r4, [sp]
  00074	e58de004	 str         lr, [sp, #4]
  00078	eb000000	 bl          RegQueryValueExW

; 362  :             // Now do the actual open of the key
; 363  :         if (ERROR_SUCCESS != RegOpenKeyEx( HKEY_LOCAL_MACHINE, szDevKey, 0, 0, &hDevKey)) {

  0007c	e28d3008	 add         r3, sp, #8
  00080	e58d3000	 str         r3, [sp]
  00084	e3a03000	 mov         r3, #0
  00088	e3a02000	 mov         r2, #0
  0008c	e1a01004	 mov         r1, r4
  00090	e3a0010a	 mov         r0, #0xA, 2
  00094	eb000000	 bl          RegOpenKeyExW
  00098	e3500000	 cmp         r0, #0

; 364  :             hDevKey = NULL;

  0009c	13a00000	 movne       r0, #0
  000a0	158d0008	 strne       r0, [sp, #8]
  000a4	1a000000	 bne         |$L33043|
  000a8		 |$L33437|
  000a8	e59d0008	 ldr         r0, [sp, #8]
  000ac		 |$L33043|

; 365  :             DEBUGMSG( ZONE_INIT, (TEXT("Found a device key name %s but could not open it !!!\r\n"), szDevKey));
; 366  :         }
; 367  :     }
; 368  :     if (!hDevKey) {

  000ac	e3500000	 cmp         r0, #0
  000b0	1a000004	 bne         |$L33045|

; 369  :         LocalFree( szDevKey);

  000b4	e1a00004	 mov         r0, r4
  000b8	eb000000	 bl          LocalFree

; 370  :         *pszDevKey = NULL;
; 371  :     } else {    

  000bc	e59d0008	 ldr         r0, [sp, #8]
  000c0	e5859000	 str         r9, [r5]
  000c4	ea000000	 b           |$L33046|
  000c8		 |$L33045|

; 372  :         *pszDevKey = szDevKey;

  000c8	e5854000	 str         r4, [r5]
  000cc		 |$L33046|

; 373  :     }    
; 374  :     return hDevKey;     
; 375  : }

  000cc	e28dd014	 add         sp, sp, #0x14
  000d0	e8bd43f0	 ldmia       sp!, {r4 - r9, lr}
  000d4	e12fff1e	 bx          lr
  000d8		 |$L33448|
  000d8	00000000	 DCD         |??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@|
  000dc		 |$M33444|

			 ENDP  ; |?AtaLoadRegKey@@YAPAUHKEY__@@PAU1@PAPAG@Z|, AtaLoadRegKey

	EXPORT	|?AtaIsValidDisk@@YAHPAVCDisk@@@Z|	; AtaIsValidDisk

  00000			 AREA	 |.text| { |?AtaIsValidDisk@@YAHPAVCDisk@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -