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

📄 vcd.inc

📁 用于查询PC机上的USB端口是否有设备挂接上
💻 INC
📖 第 1 页 / 共 2 页
字号:
;******************************************************************************
;
;   (C) Copyright MICROSOFT Corp., 1989-1992
;
;   Title:	VCD.inc -
;
;   Version:	2.00
;
;   Date:	3-May-1989
;
;   Author:	RAP
;
;------------------------------------------------------------------------------
;
;   Change log:
;
;      DATE	REV		    DESCRIPTION
;   ----------- --- -----------------------------------------------------------
;   3-May-1989 RAP
;   28-Apr-1992 RAP added VCD_Acquire_Port and VCD_Free_Port services
;
;==============================================================================

Begin_Service_Table VCD

VCD_Service	VCD_Get_Version, LOCAL
VCD_Service	VCD_Set_Port_Global, LOCAL
VCD_Service	VCD_Get_Focus, LOCAL
VCD_Service	VCD_Virtualize_Port, LOCAL

; New for WFW 3.10

VCD_Service	VCD_Acquire_Port, LOCAL
VCD_Service	VCD_Free_Port, LOCAL

; New for WFW 3.11

VCD_Service	VCD_Acquire_Port_Windows_Style,LOCAL
VCD_Service	VCD_Free_Port_Windows_Style,LOCAL
VCD_Service	VCD_Steal_Port_Windows_Style,LOCAL

; New For Chicago

VCD_Service	VCD_Find_COM_Index,LOCAL
VCD_Service	VCD_Set_Port_Global_Special,LOCAL
VCD_Service	VCD_Virtualize_Port_Dynamic, LOCAL
VCD_Service	VCD_Unvirtualize_Port_Dynamic, LOCAL

End_Service_Table VCD

;***********
; PM API Services
;
VCD_PM_API_Get_Version		equ 0
VCD_PM_API_Get_Port_Array	equ 1
VCD_PM_API_Get_Port_Behavior	equ 2
VCD_PM_API_Set_Port_Behavior	equ 3
VCD_PM_API_Acquire_Port 	equ 4
VCD_PM_API_Free_Port		equ 5
VCD_PM_API_Steal_Port		equ 6

ifdef   NEC_98
;***********
;  Command Equates
;
CMD_TXE         equ     01h             ; Send Enable
CMD_DTR         equ     02h             ; Data Terminal Ready
CMD_RXE         equ     04h             ; Receive Enable
CMD_RTS         equ     20h             ; Request to Send

;***********
;  Status  Equates
;
STAT_TXR        equ     01h             ; Send Enable
STAT_RXR        equ     02h             ; Receive Enable
STAT_TXE        equ     04h             ; Send buffer empty
STAT_INT        equ     07h             ; Interrupt Enable
STAT_OE         equ     10h             ; Overrun Error


;***********
;  Interrupt Request  Equates
;
IR_TXR          equ     01h             ; Send Enable
IR_RXR          equ     04h             ; Receive Enable
IR_TXE          equ     01h             ; Send buffer empty


;***********
;  Mask Equates
;
MSK_RXR_E       equ     00000001b       ; 01h
MSK_TXE_E       equ     00000010b       ; 02h
MSK_TXR_E       equ     00000100b       ; 04h
MSK_INT_E       equ     00000111b       ; 07h

; Counter Control Word
MSK_CONT_RL     equ     00110000b       ; Read/Write Mask for Timer counter
COUNT_LSB_CHECK equ     00010000b
COUNT_MSB_CHECK equ     00100000b
;                         II
;                         I+------- RL0 
;                         +-------- RL1
;


;***********
; CCU Type
;
; If you want to add CCU type, Shift CCU_RESERVE's number
; and name CCU_RESERVE's number as CCU that you want
;
CCU_16550	equ	0
CCU_8251	equ	1
CCU_8251F	equ	2
CCU_8251F_IDX	equ	3
CCU_RESERVE	equ	4

endif

;***********
;  UART ports and offsets
;
UART_PORTS	equ	7		; # of ports for UART
UART_REG_MASK	equ	7

UART_BAUD_LSB	equ	0		; Least Signif. Byte of BAUD divisor
UART_BAUD_MSB	equ	1		; Most	Signif. Byte of BAUD divisor
UART_RBR	equ	0		; Receive buffer register
UART_THR	equ	0		; Transmit holding register
UART_IER	equ	1		; Interrupt enble register
UART_IIR	equ	2		; Interrupt identity register
UART_LCR	equ	3		; Line control register
UART_MCR	equ	4		; Modem control register
UART_LSR	equ	5		; Line status register
UART_MSR	equ	6		; Modem status register

;***********
;  Interrupt Enable Register Equates
;
IER_MS		equ	08h		; Modem Status
IER_LS		equ	04h		; Line Status
IER_THRE	equ	02h		; Transmit Holding Register Empty
IER_DR		equ	01h		; Data Ready

;***********
;  Interrupt Identity Register Equates
;
IIR_NONE	equ	01h	; No interrupt pending
IIR_LS		equ	06h	; Line Status Interrupt
IIR_DR		equ	04h	; Data Ready Interrupt
IIR_THRE	equ	02h	; Transmit Holding Register Empty
IIR_MS		equ	00h	; Modem Status Interrupt

;***********
;  Line Control Register Equates
;
LCR_DLAB	equ	80h	; Divisor Latch Access

;***********
;  Modem Control Register Equates
;
MCR_INTEN	equ	08h	; Interrupt Enable
MCR_RTS		equ	02h	; Request to Send
MCR_DTR 	equ	01h	; Data Terminal Ready
MCR_Loopback	equ	10h	; Enable Internal Loopback

;***********
;  Line Status Register Equates
;
LSR_THRE	equ	20h	; Transmit Holding Register Empty
LSR_DR		equ	01h	; Data Ready
LSR_OE		equ	02h	; Overrun Error
LSR_PE		equ	04h	; Parity Error
LSR_FE		equ	08h	; Frame Error
LSR_BI		equ	10h	; Break Detected
LSR_ERRBITS	equ	1Eh	; All the error bits
LSR_TXBITS	equ	60h	; THRE and TEMT

;***********
;  Modem Status Register Equates
;
MSR_DELTA	equ	0Fh	; Modem Status DELTA bits
MSR_DCTS	equ	01h	; Delta Clear to Send
MSR_DDSR	equ	02h	; Delta Data Set Ready
MSR_TERI	equ	04h	; Trailing Edge Ring Indicator
MSR_DRLSD	equ	08h	; Delta Receive Line Signal Detect
MSR_CTS 	equ	10h	; Clear to Send
MSR_DSR 	equ	20h	; Data Set Ready
MSR_RING	equ	40h	; Ring Indicator
MSR_RLSD	equ	80h	; Receive Line Signal Detect

;***********
;  Masks for read status flags
;
VCD_Read_LSR_Mask equ   01h     ; Read Line Status Register
VCD_Read_MSR_Mask equ   02h     ; Read Modem Status Register



;***********
;  Flag bits  for VCD_COM_Struc.VCD_Flags
;
VCD_global_port 	equ 00000001b
VCD_global_port_Bit	equ	   0
VCD_not_sharable_IRQ	equ 00000010b	; Set if IRQ is not sharable
VCD_not_sharable_IRQ_Bit equ	  1
VCD_IRQ_Init		equ 00000100b	; Set if COM attempted to virt IRQ
VCD_IRQ_Init_Bit	equ	 2
VCD_Owns_IRQ		equ 00001000b	; Set if COM DID virtualize IRQ
VCD_Owns_IRQ_Bit	equ	3
VCD_Windows_30Drvr	equ 00010000b	; Set if Windows 3.0 com driver
VCD_Windows_30Drvr_Bit	equ    4
VCD_SetOwner_Event	equ 00100000b	; Set if event scheduled to set owner
VCD_SetOwner_Event_Bit	equ   5
VCD_Windows_Port	equ 01000000b	; Set if Windows has control of this port
VCD_Windows_Port_Bit	equ  6
VCD_Virtualized 	equ 10000000b	; Set if VCD_Virtualize_Port was called
VCD_Virtualized_Bit	equ 7
VCD_Mouse_Port		equ 100000000b
VCD_Mouse_Port_Bit	equ 8
VCD_1st_on_IRQ		equ 1000000000b ; Set if first to virtualize IRQ
VCD_1st_on_IRQ_Bit	equ 9
VCD_Global_IRQ		equ 10000000000b
VCD_Global_IRQ_Bit	equ 10		; Set if IRQ was unmasked when VCD
					; tried to virtualize it for the 1st
					; time.
VCD_AltOwnerActive	equ 100000000000b
VCD_AltOwnerActiveBit	equ 11		; set if an alternate owner is waiting
					; to own the port. Basically we have
					; two possible (VxD/COMM.DRV) owners
					; and a DOS VM as the owner.
VCD_Dynamic_Port	equ 1000000000000b
VCD_Dynamic_Port_Bit	equ 12		; set if the port "arrives" after
					; device Init.

;***********
;  Flag bits  for VCD_CB_Struc.VCD_CB_Flags
;
VCD_Contended		equ 00000001b	; set if VM contended for port and lost
VCD_Contended_Bit	equ	   0
VCD_Assign_Failed	equ 00000010b	; set if VCD_Assign failed because port
VCD_Assign_Failed_Bit	equ	  1	;   was owned by a VxD and a msg has
					;   been displayed
VCD_CB_Windows_30Drvr	equ 00010000b	; Set if Windows 3.0 com driver
VCD_CB_Windows_30Drvr_Bit equ  4
VCD_CB_Windows_Port	equ 01000000b	; Set if Windows has control of this port
VCD_CB_Windows_Port_Bit equ  6
VCD_Touched		equ 10000000b
VCD_Touched_Bit 	equ 7
VCD_CB_Mouse_Port	equ 100000000b
VCD_CB_Mouse_Port_Bit	equ 8
VCD_CB_Initialized	equ 1000000000b
VCD_CB_Initialized_Bit	equ 9
VCD_PowerOn		equ 10000000000b
VCD_PowerOn_Bit	equ 10

.errnz VCD_CB_Windows_Port_Bit - VCD_Windows_Port_Bit
.errnz VCD_CB_Windows_30Drvr_Bit - VCD_Windows_30Drvr_Bit
.errnz VCD_CB_Mouse_Port_Bit - VCD_Mouse_Port_Bit

VCD_CB_Windows_Bits	equ VCD_CB_Windows_30Drvr OR VCD_CB_Windows_Port OR VCD_CB_Mouse_Port

;******************************************************************************
;			  D A T A   S T R U C T U R E S
;******************************************************************************

;***********
;
; Per-VM structure
;
VCD_CB_Struc STRUC
VCD_BAUD_LSB	    db	?	; LSB of virtual BAUD
VCD_BAUD_MSB	    db	?	; MSB of virtual BAUD
VCD_IER 	    db	?	; Virtual Int Enable Reg
VCD_LCR 	    db	?	; Virtual Line Ctrl Reg
VCD_MCR 	    db	?	; Virtual Modem Ctrl Reg
VCD_Read_Stat	    db	?	; Status of LSR & MSR reads
VCD_CB_Flags	    dw	?
		    dd	4 DUP(?); reserved
ifdef   NEC_98
VCD_Set_Mask        db  ?       ; for PC-98
VCD_Set_Mode        db  ?       ; for PC-98
VCD_Set_Command     db  ?       ; for PC-98
VCD_Write_Data      db  ?       ; for PC-98
VCD_Read_Data       db  ?       ; for PC-98
VCD_Read_Status     db  ?       ; for PC-98
VCD_Read_Signal     db  ?       ; for PC-98
Count               db  0       ; for PC-98
VCD_COM_Touched     db  ?       ; True if COM I/O touched
                    db  ?       ; PAD TO DWORD ALIGN
                    dw  ?       ; reserved
		    dd	2 DUP(?); reserved
endif	; Not NEC_98

⌨️ 快捷键说明

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