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

📄 cdio.cod

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

	TTL	D:\WINCE500\PLATFORM\bvdmain\drivers\atapi\.\cdio.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
|$T33405| DCD	|$L33404|
	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		 |$L33404|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33402|

; 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		 |$L33407|
  00044	51eb851f	 DCD         0x51eb851f
  00048		 |$M33403|

			 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
|$T33415| DCD	|$L33414|
	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		 |$L33414|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33412|

; 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		 |$L33417|
  00014	b6b000c0	 DCD         0xb6b000c0
  00018		 |$M33413|

			 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
|$T33425| DCD	|$L33424|
	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		 |$L33424|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33422|

; 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		 |$L33427|
  00014	b6a000e0	 DCD         0xb6a000e0
  00018		 |$M33423|

			 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
|$T33435| DCD	|$L33434|
	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		 |$L33434|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33432|

; 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		 |$M33433|

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

	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
|$T33445| DCD	|$L33444|
	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		 |$L33444|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33442|

; 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		 |$L33447|
  00028	b6a000c0	 DCD         0xb6a000c0
  0002c		 |$M33443|

			 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
|$T33454| DCD	|$L33453|
	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		 |$L33453|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33451|

; 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		 |$L33456|
  00014	b6a000e0	 DCD         0xb6a000e0
  00018		 |$M33452|

			 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
|$T33463| DCD	|$L33462|
	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		 |$L33462|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33460|

; 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		 |$M33461|

			 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
|$T33471| DCD	|$L33470|
	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		 |$L33470|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33468|

; 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		 |$L33473|
  00014	b6a00040	 DCD         0xb6a00040
  00018		 |$M33469|

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

	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
|$T33480| DCD	|$L33479|
	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		 |$L33479|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33477|

; 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		 |$L33482|
  00014	b6a00060	 DCD         0xb6a00060
  00018		 |$M33478|

⌨️ 快捷键说明

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