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

📄 atapiio.cod

📁 PXA270的BSP
💻 COD
📖 第 1 页 / 共 4 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091 

	TTL	D:\WINCE500\PLATFORM\bvdmain\drivers\atapi\.\atapiio.cpp
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|?StallExecution@CDisk@@QAAXK@Z|	; CDisk::StallExecution
	IMPORT	|StallExecution|
	IMPORT	|Sleep|
; File d:\wince500\platform\bvdmain\drivers\atapi\diskmain.h

  00000			 AREA	 |.text| { |?StallExecution@CDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?StallExecution@CDisk@@QAAXK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?StallExecution@CDisk@@QAAXK@Z| } ; comdat associative
|$T33055| DCD	|$L33054|
	DCD	0x40001201
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?StallExecution@CDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?StallExecution@CDisk@@QAAXK@Z| PROC	; CDisk::StallExecution

; 350  :     {

  00000		 |$L33054|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33052|

; 351  :         if ((dwTime >= 100) && (m_dwDeviceFlags & DFLAGS_DEVICE_CDROM)) 

  00004	e3510064	 cmp         r1, #0x64
  00008	3a000008	 bcc         |$L32464|
  0000c	e5903004	 ldr         r3, [r0, #4]
  00010	e3130301	 tst         r3, #1, 6
  00014	0a000005	 beq         |$L32464|

; 352  :             Sleep (dwTime / 100);

  00018	e59f3024	 ldr         r3, [pc, #0x24]
  0001c	e0803391	 umull       r3, r0, r1, r3
  00020	e1a002a0	 mov         r0, r0, lsr #5
  00024	eb000000	 bl          Sleep

; 355  :     }    

  00028	e49de004	 ldr         lr, [sp], #4
  0002c	e12fff1e	 bx          lr
  00030		 |$L32464|

; 353  :         else 
; 354  :             ::StallExecution(dwTime*10);         

  00030	e0810101	 add         r0, r1, r1, lsl #2
  00034	e1a00080	 mov         r0, r0, lsl #1
  00038	eb000000	 bl          StallExecution

; 355  :     }    

  0003c	e49de004	 ldr         lr, [sp], #4
  00040	e12fff1e	 bx          lr
  00044		 |$L33057|
  00044	51eb851f	 DCD         0x51eb851f
  00048		 |$M33053|

			 ENDP  ; |?StallExecution@CDisk@@QAAXK@Z|, CDisk::StallExecution

	EXPORT	|?GetAltStatus@CDisk@@QAAEXZ|		; CDisk::GetAltStatus
	IMPORT	|READ_PORT_UCHAR|

  00000			 AREA	 |.text| { |?GetAltStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?GetAltStatus@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetAltStatus@CDisk@@QAAEXZ| } ; comdat associative
|$T33065| DCD	|$L33064|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetAltStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?GetAltStatus@CDisk@@QAAEXZ| PROC	; CDisk::GetAltStatus

; 371  :      {

  00000		 |$L33064|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33062|

; 372  :      //RETAILMSG(1,(TEXT("GetAltStatus:111111------\r\n")));
; 373  :         return (BYTE) ATA_READ_BYTE((volatile PBYTE)m_pATARegAlt + m_dwAltStatusOffset);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          READ_PORT_UCHAR

; 374  :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33067|
  00014	b6b000c0	 DCD         0xb6b000c0
  00018		 |$M33063|

			 ENDP  ; |?GetAltStatus@CDisk@@QAAEXZ|, CDisk::GetAltStatus

	EXPORT	|?GetBaseStatus@CDisk@@QAAEXZ|		; CDisk::GetBaseStatus

  00000			 AREA	 |.text| { |?GetBaseStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?GetBaseStatus@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetBaseStatus@CDisk@@QAAEXZ| } ; comdat associative
|$T33075| DCD	|$L33074|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetBaseStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?GetBaseStatus@CDisk@@QAAEXZ| PROC	; CDisk::GetBaseStatus

; 379  :     	{

  00000		 |$L33074|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33072|

; 380  :     	   BYTE bStatus = ATA_READ_BYTE((volatile PBYTE)m_pATAReg + m_dwCommandStatusOffset);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          READ_PORT_UCHAR

; 381  : 		return bStatus;
; 382  :     	}

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33077|
  00014	b6a000e0	 DCD         0xb6a000e0
  00018		 |$M33073|

			 ENDP  ; |?GetBaseStatus@CDisk@@QAAEXZ|, CDisk::GetBaseStatus

	EXPORT	|?GetError@CDisk@@QAAEXZ|		; CDisk::GetError

  00000			 AREA	 |.text| { |?GetError@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?GetError@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetError@CDisk@@QAAEXZ| } ; comdat associative
|$T33085| DCD	|$L33084|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetError@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?GetError@CDisk@@QAAEXZ| PROC		; CDisk::GetError

; 386  : 	  inline BYTE GetError() {

  00000		 |$L33084|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33082|

; 387  :         return (BYTE) ATA_READ_BYTE( (volatile PBYTE) m_pATAReg + m_dwFeatureErrorOffset);

  00004	e3a00183	 mov         r0, #0x83, 2
  00008	e2400696	 sub         r0, r0, #0x96, 12
  0000c	eb000000	 bl          READ_PORT_UCHAR

; 388  :     }

  00010	e49de004	 ldr         lr, [sp], #4
  00014	e12fff1e	 bx          lr
  00018		 |$M33083|

			 ENDP  ; |?GetError@CDisk@@QAAEXZ|, CDisk::GetError

	EXPORT	|?GetReason@CDisk@@QAAEXZ|		; CDisk::GetReason

  00000			 AREA	 |.text| { |?GetReason@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?GetReason@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetReason@CDisk@@QAAEXZ| } ; comdat associative
|$T33094| DCD	|$L33093|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetReason@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?GetReason@CDisk@@QAAEXZ| PROC	; CDisk::GetReason

; 392  : 	inline BYTE GetReason() {

  00000		 |$L33093|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33091|

; 393  :         return (BYTE) ATA_READ_BYTE( (volatile PBYTE) m_pATAReg + m_dwSectCntReasonOffset);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          READ_PORT_UCHAR

; 394  :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33096|
  00014	b6a00040	 DCD         0xb6a00040
  00018		 |$M33092|

			 ENDP  ; |?GetReason@CDisk@@QAAEXZ|, CDisk::GetReason

	EXPORT	|?SelectDevice@CDisk@@QAAXXZ|		; CDisk::SelectDevice
	IMPORT	|WRITE_PORT_UCHAR|

  00000			 AREA	 |.text| { |?SelectDevice@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?SelectDevice@CDisk@@QAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?SelectDevice@CDisk@@QAAXXZ| } ; comdat associative
|$T33105| DCD	|$L33104|
	DCD	0x40000b01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?SelectDevice@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?SelectDevice@CDisk@@QAAXXZ| PROC	; CDisk::SelectDevice

; 399  :     inline void SelectDevice() {

  00000		 |$L33104|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33102|

; 400  :    // int i ;
; 401  :        ATA_WRITE_BYTE((volatile PBYTE)m_pATAReg+m_dwDrvHeadOffset, (m_dwDevice == 0 ) ? ATA_HEAD_DRIVE_1 : ATA_HEAD_DRIVE_2);

  00004	e590364c	 ldr         r3, [r0, #0x64C]
  00008	e59f0018	 ldr         r0, [pc, #0x18]
  0000c	e3530000	 cmp         r3, #0
  00010	03a030a0	 moveq       r3, #0xA0
  00014	13a030b0	 movne       r3, #0xB0
  00018	e20310ff	 and         r1, r3, #0xFF
  0001c	eb000000	 bl          WRITE_PORT_UCHAR

; 402  : 	/*
; 403  : 	  for(i=0; i<10; i++) 
; 404  : 	{
; 405  : 		msWait(500);
; 406  : 
; 407  : 		//RETAILMSG(1,(TEXT("msWait---------\r\n")));
; 408  : 		
; 409  : 		if(!IdeIsBusy())		
; 410  : 			break;
; 411  : 	}
; 412  : 	if ( i>=10 )
; 413  : 		{
; 414  : 		   RETAILMSG(1,(TEXT("WriteCommand failed\r\n")));
; 415  : 		} 
; 416  : 		*/
; 417  : 		
; 418  : 	//RETAILMSG(1,(TEXT("----------------liudiping-------Test\r\n")));
; 419  :         //return ;
; 420  :     }

  00020	e49de004	 ldr         lr, [sp], #4
  00024	e12fff1e	 bx          lr
  00028		 |$L33107|
  00028	b6a000c0	 DCD         0xb6a000c0
  0002c		 |$M33103|

			 ENDP  ; |?SelectDevice@CDisk@@QAAXXZ|, CDisk::SelectDevice

	EXPORT	|?WriteCommand@CDisk@@QAAXE@Z|		; CDisk::WriteCommand

  00000			 AREA	 |.text| { |?WriteCommand@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?WriteCommand@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteCommand@CDisk@@QAAXE@Z| } ; comdat associative
|$T33114| DCD	|$L33113|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?WriteCommand@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?WriteCommand@CDisk@@QAAXE@Z| PROC	; CDisk::WriteCommand

; 441  :       inline void WriteCommand(BYTE bCommand) {

  00000		 |$L33113|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33111|

; 442  :       int i ;
; 443  : 	  //RETAILMSG(1,(TEXT("WriteCommand -----\r\n")));
; 444  :       ATA_WRITE_BYTE( (volatile PBYTE)m_pATAReg + m_dwCommandStatusOffset, bCommand);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          WRITE_PORT_UCHAR

; 445  : 	  /*
; 446  :       for(i=0; i<10; i++) 
; 447  : 	{
; 448  : 		//msWait(200);
; 449  : 
; 450  : 		//msWait(1);
; 451  : 
; 452  : 		//RETAILMSG(1,(TEXT("msWait---------\r\n")));
; 453  : 		
; 454  : 		if(!IdeIsBusy())		
; 455  : 			break;
; 456  : 	}
; 457  : 	  
; 458  : 	if ( i>=10 )
; 459  : 		{
; 460  : 		   RETAILMSG(1,(TEXT("WriteCommand failed\r\n")));
; 461  : 		}
; 462  : 		*/
; 463  : 		
; 464  :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33116|
  00014	b6a000e0	 DCD         0xb6a000e0
  00018		 |$M33112|

			 ENDP  ; |?WriteCommand@CDisk@@QAAXE@Z|, CDisk::WriteCommand

	EXPORT	|?WriteFeature@CDisk@@QAAXE@Z|		; CDisk::WriteFeature

  00000			 AREA	 |.text| { |?WriteFeature@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?WriteFeature@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteFeature@CDisk@@QAAXE@Z| } ; comdat associative
|$T33123| DCD	|$L33122|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?WriteFeature@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?WriteFeature@CDisk@@QAAXE@Z| PROC	; CDisk::WriteFeature

; 467  : 	 inline void WriteFeature(BYTE bFeature) {

  00000		 |$L33122|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33120|

; 468  :         ATA_WRITE_BYTE(  (volatile PBYTE) m_pATAReg + m_dwFeatureErrorOffset, bFeature);

  00004	e3a00183	 mov         r0, #0x83, 2
  00008	e2400696	 sub         r0, r0, #0x96, 12
  0000c	eb000000	 bl          WRITE_PORT_UCHAR

; 469  :     }

  00010	e49de004	 ldr         lr, [sp], #4
  00014	e12fff1e	 bx          lr
  00018		 |$M33121|

			 ENDP  ; |?WriteFeature@CDisk@@QAAXE@Z|, CDisk::WriteFeature

	EXPORT	|?WriteSectorCount@CDisk@@QAAXE@Z|	; CDisk::WriteSectorCount

  00000			 AREA	 |.text| { |?WriteSectorCount@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?WriteSectorCount@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteSectorCount@CDisk@@QAAXE@Z| } ; comdat associative
|$T33131| DCD	|$L33130|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?WriteSectorCount@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?WriteSectorCount@CDisk@@QAAXE@Z| PROC ; CDisk::WriteSectorCount

; 473  :     	{

  00000		 |$L33130|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33128|

; 474  :     	    ATA_WRITE_BYTE((volatile PBYTE)m_pATAReg + m_dwSectCntReasonOffset, bValue);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          WRITE_PORT_UCHAR

; 475  :     	}

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33133|
  00014	b6a00040	 DCD         0xb6a00040
  00018		 |$M33129|

			 ENDP  ; |?WriteSectorCount@CDisk@@QAAXE@Z|, CDisk::WriteSectorCount

	EXPORT	|?WriteDriveHeadReg@CDisk@@QAAXE@Z|	; CDisk::WriteDriveHeadReg

  00000			 AREA	 |.text| { |?WriteDriveHeadReg@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?WriteDriveHeadReg@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteDriveHeadReg@CDisk@@QAAXE@Z| } ; comdat associative
|$T33140| DCD	|$L33139|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?WriteDriveHeadReg@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?WriteDriveHeadReg@CDisk@@QAAXE@Z| PROC ; CDisk::WriteDriveHeadReg

; 477  :     inline void WriteDriveHeadReg(BYTE bValue) {

  00000		 |$L33139|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33137|

; 478  :         ATA_WRITE_BYTE( (volatile PBYTE) m_pATAReg + m_dwDrvHeadOffset, bValue);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          WRITE_PORT_UCHAR

; 479  :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33142|
  00014	b6a000c0	 DCD         0xb6a000c0
  00018		 |$M33138|

			 ENDP  ; |?WriteDriveHeadReg@CDisk@@QAAXE@Z|, CDisk::WriteDriveHeadReg

	EXPORT	|?WriteSectorNumber@CDisk@@QAAXE@Z|	; CDisk::WriteSectorNumber

  00000			 AREA	 |.text| { |?WriteSectorNumber@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?WriteSectorNumber@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteSectorNumber@CDisk@@QAAXE@Z| } ; comdat associative
|$T33149| DCD	|$L33148|
	DCD	0x40000601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?WriteSectorNumber@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?WriteSectorNumber@CDisk@@QAAXE@Z| PROC ; CDisk::WriteSectorNumber

; 482  : {

  00000		 |$L33148|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33146|

; 483  :     ATA_WRITE_BYTE((volatile PBYTE)m_pATAReg + m_dwSectNumOffset, bValue);

  00004	e59f0008	 ldr         r0, [pc, #8]
  00008	eb000000	 bl          WRITE_PORT_UCHAR

; 484  : }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$L33151|
  00014	b6a00060	 DCD         0xb6a00060
  00018		 |$M33147|

⌨️ 快捷键说明

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