📄 w977uar2.asl
字号:
Device(COMB) { //Control Methods for RS232 operation
Name(_HID,EISAID("PNP0501"))
Name(_UID,0x02)
Method(_STA,0) { // Status of the COM device
ENFG() // Config Mode
Store(0x03,LDN_) // set logical device number for Serial Port 2
If(ACTR) {
EXFG()
Return(0x0F)
}
Else {
If (LOr(IOAH,IOAL)) {
EXFG()
Return(0x0D)
}
Else {
EXFG()
Return(0x00) // code = Device not even Present
}
}
} // end of _STA method
Method(_DIS,0) { // Disable
ENFG() // Config Mode
Store(0x03, LDN_) // set logical device number for Serial Port 2
And(OPT2, 0x38, Local0)
If (LEqual(Local0, 0x00)) {
Store(Zero, ACTR)
}
EXFG()
} // end _DIS method
Method(_CRS,0) { // Current Resource
Name(BUF2,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
0x00, //Base Alignment
0x08, //Length of contiguous IO Ports
0x22, // IRQ Descriptor
0x10, // IRQ Mask Lo=bit 2
0x00,
0x79, // end tag
0x00, //
}
)
CreateByteField (BUF2, 0x02, IOLO) //IO Port Low
CreateByteField (BUF2, 0x03, IOHI) //IO Port High
CreateByteField (BUF2, 0x04, IORL) //IO Port Low
CreateByteField (BUF2, 0x05, IORH) //IO Port High
CreateByteField (BUF2, 0x09, IRQL) //IRQ Mask
ENFG() // Config Mode
Store(0x03,LDN_) // Logical device number for serial port 1
Store(One,ACTR)
Store(IOAL,IOLO)
Store(IOAL,IORL)
Store(IOAH,IOHI)
Store(IOAH,IORH)
Store(One,Local0)
ShiftLeft(Local0,INTR,IRQL)
EXFG() // Normal Mode
Return(BUF2) // 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
0x00, //Base Alignment
0x08, //Length of contiguous IO Ports
0x22, //IRQ Descriptor
0x10, //IRQ Mask Lo=bits 3 and 4
0x00,
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
0x00, //Base Alignment
0x08, //Length of contiguous IO Ports
0x22, //IRQ Descriptor
0x08, //IRQ Mask Lo=bits 3 and 4
0x00,
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
0x00, //Base Alignment
0x08, //Length of contiguous IO Ports
0x22, //IRQ Descriptor
0x10, //IRQ Mask Lo=bits 3 and 4
0x00,
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
0x00, //Base Alignment
0x08, //Length of contiguous IO Ports
0x22, //IRQ Descriptor
0x08, //IRQ Mask Lo=bits 3 and 4
0x00,
0x38, // End Dependent Function
0x79, //end tag
0x00, // Checksum = 0 Treat as if the
} // end of Buffer
)
Method(_SRS,1) { //Set Resource
CreateByteField (Arg0, 0x02, IOLO) //IO Port Low
CreateByteField (Arg0, 0x03, IOHI) //IO Port High
CreateByteField (Arg0, 0x09, IRQL) //IRQ
ENFG() //Config Mode
Store(0x03, LDN_) //R01
Store(One, ACTR) //R01Set activate configuration register
Store(IOLO, IOAL)
Store(IOHI, IOAH)
FindSetRightBit(IRQL,Local0)
Subtract(Local0, 0x01, INTR)
EXFG() // Normal Mode
} // end _SRS method
} // end COMB device
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -