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

📄 p364uar1.asl

📁 <B>Award BIOS(Basic Input/Output System)(电脑启动时所必需)的源码</B>
💻 ASL
字号:

Device(UAR1) 	
{
        Name(_HID, EISAID("PNP0501")) 	// PnP Device ID 16550 Type
        Name(_UID,0x1)
        Method(_STA,0)
        {
                Store(0x03,LDN_)
                If(ACTR) 
                {
                        Return(0x0F)
                }	// Return Device Present and device Active
                Else	
                {
                        If (LOr(IOAH,IOAL)) 
                        {
                                Return(0x0D)
                        }	// return device present but not active
                        Else	
                        {
                                Return(0)	      		
                        }
                }	// return device not present
        }	// end _STA method

        Method(_DIS,0)	
        { 
                Store(0x03, LDN_)	
                Store(Zero, ACTR)
                DISD(0x00)		//R01
        }	// end _DIS method

        Method(_CRS,0)	
        {	       
                Name(BUF1,Buffer()
                {
                        0x47,		// IO Port Descriptor
                        0x01, 		// 16 bit decode
                        0x00, 		// IO Port Range Minimum Base Low
                        0x00, 		// IO Port Range Minimum Base High
                        0x00, 		// IO Port Range Maximum Base LOW
                        0x00, 		// IO Port Range Maximum Base High
                        0x08, 		// Base Alignment
                        0x08, 		// Length of contiguous IO Ports

                        0x22, 		// IRQ Descriptor
                        0x00, 		// IRQ Mask Lo=bit 4
                        0x00,

                                0x79, 		// end tag
                        0x00, 		// Checksum = 0 Treat as if the
                              })

                CreateByteField (BUF1, 0x02, IOLO) 	// IO Port Low
                CreateByteField (BUF1, 0x03, IOHI) 	// IO Port High
                CreateByteField (BUF1, 0x04, IORL) 	// IO Port Low
                CreateByteField (BUF1, 0x05, IORH) 	// IO Port High
                CreateWordField (BUF1, 0x09, IRQW) 	// IRQ Mask

                Store(0x03,LDN_) 		
                Store(IOAL,IOLO)
                Store(IOAL,IORL)
                Store(IOAH,IOHI)
                Store(IOAH,IORH)

                Store(Zero, IRQW)
                If(LNotEqual(INTR,Zero))
                {
                        ShiftLeft(One,INTR,IRQW)	// (src, shiftcount, result)
                }
                Return(BUF1)			// Return Buf1
        }	// end _CRS method

        Name(_PRS,Buffer()
        {
                0x30, 			// Start Dependent Function

                0x47, 			// IO Port Descriptor
                0x01, 			// 16 bit decode
                0xF8, 			// IO Port Range Minimum Base Low
                0x03, 			// IO Port Range Minimum Base High
                0xF8, 			// IO Port Range Maximum Base LOW
                0x03, 			// IO Port Range Maximum Base High
                0x08, 			// Base Alignment
                0x08, 			// Length of contiguous IO Ports

                0x30, 			// Start Dependent Function

                0x47, 			// IO Port Descriptor
                0x01, 			// 16 bit decode
                0xF8, 			// IO Port Range Minimum Base Low
                0x02, 			// IO Port Range Minimum Base High
                0xF8, 			// IO Port Range Maximum Base LOW
                0x02, 			// IO Port Range Maximum Base High
                0x08, 			// Base Alignment
                0x08, 			// Length of contiguous IO Ports

                0x30, 			// Start Dependent Function

                0x47, 			// IO Port Descriptor
                0x01, 			// 16 bit decode
                0xE8, 			// IO Port Range Minimum Base Low
                0x03, 			// IO Port Range Minimum Base High
                0xE8, 			// IO Port Range Maximum Base LOW
                0x03, 			// IO Port Range Maximum Base High
                0x08, 			// Base Alignment
                0x08, 			// Length of contiguous IO Ports

                0x30, 			// Start Dependent Function

                0x47, 			// IO Port Descriptor
                0x01, 			// 16 bit decode
                0xE8, 			// IO Port Range Minimum Base Low
                0x02, 			// IO Port Range Minimum Base High
                0xE8, 			// IO Port Range Maximum Base LOW
                0x02, 			// IO Port Range Maximum Base High
                0x08, 			// Base Alignment
                0x08, 			// Length of contiguous IO Ports

                0x38, 			// End Dependent Function

                0x22, 			// IRQ Descriptor
                0xB8, 	// IRQ Mask Lo=bits 3 and 4
                0x1E,

                0x79, 			// end tag
                0x00, 			// Checksum = 0 Treat as if the
        })

        Method(_SRS,1)	
        {
                CreateByteField (Arg0, 0x02, IOLO)	// IO Port Low
                CreateByteField (Arg0, 0x03, IOHI)	// IO Port High
                CreateWordField (Arg0, 0x02, IOAD)	//R01
                CreateWordField (Arg0, 0x09, IRQW)	// IRQ

                Store(0x03, LDN_)
                Store(One, ACTR) 	// Set activate configuration register
                Store(IOLO, IOAL)
                Store(IOHI, IOAH)
                FindSetLeftBit(IRQW, Local0)
                If(LNotEqual(Local0, Zero))
                {
                        Subtract(Local0, 0x01, Local0)
                }
                CKIO(IOAD,0x00)		//R01
        }	// End of _SRS Method
}	// end of UART1 device

⌨️ 快捷键说明

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