亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? getemm.asm

?? Dos6.0
?? ASM
字號:
;========================================================
COMMENT #

	GETEMM.ASM

	Copyright (c) 1991 - Microsoft Corp.
	All rights reserved.
	Microsoft Confidential

	=================================================

	 Function returns the EMM386 version number if it's present else 0

	 unsigned GetEmmVersion( void )

	 ARGUMENTS:	NONE
	 RETURNS:	unsigned - EMM386 internal revision number or 0

	================================================

	Change Log:

    	Date      Who   NUMBER		Description
  	--------  ---  ----	---------------------------------------------
        08/20/90  JAH           Created
        01/23/90  DLB  M000     Test for $MMXXXX0 device (when "device=
                                EMM386 NOEMS") as well as EMMXXXX0 device.
                                Also deleted "POP ES" which trashed ES.
        01/23/90  DLB  M001     If EMMXXXX0 or $MMXXXX0 device exists, verify
                                it is EMM386.EXE by checking for "MICROSOFT"
                                signature.
        09/14/92  ECH  M002     Test for $EMMQXXX0 device (VCPI, but no EMS)
                                as well.

END COMMENT #
; =======================================================

INCLUDE model.inc

; =======================================================

EMM_INT_VECT		EQU 	67h
DEVICE_OFFSET		EQU	10

EMM_READ_FUNC		EQU	1
EMM_GET_VER		EQU	2
EMM_DEV_NAME    	EQU     "EMMXXXX0",0 ; Name for EMM driver IOCTL open.
EMM_DEV_NOEMS           EQU     '$'          ; M000: Replacement for first
                                             ;   char. of EMM_DEV_NAME when
                                             ;   "device=EMM386 NOEMS".

EMM_DEV_VCPI            EQU     "EMMQXXX0",0 ; M002: Name for EMM driver when
                                             ;   VCPI but not EMS support.

EMM386_SIG           	EQU     "MICROSOFT"  ; M001: EMM386 Signature.
                                             ; M001: Offset from device base.
EMM386_SIG_OFFSET       EQU     (0ah + EMM_DEV_NAME_LEN - 1 + 2)


; Structure of the data returned on the IOCTL call to the EMM driver

EMM_STRUC	struc

    EMM_Version_Maj	db	?   ; Internal revision number
    EMM_Version_Min	db	?

EMM_STRUC	ends

Version		EQU (-((SIZE EMM_STRUC) - EMM_Version_Maj))
Function	EQU (-(SIZE EMM_STRUC))

; =======================================================
;
; For the IOCTL to get the data and version number of importable EMM info
; the IOCTL read subfunction is encoded in the first byte of the IOCTL
; read buffer.
;

; =======================================================

.DATA

; =======================================================

DeviceName	db	EMM_DEV_NAME	; Name for EMM IOCTL opens.
EMM_DEV_NAME_LEN EQU    ($-DeviceName)  ; M001: Length of DeviceName string.

EMM386Sig    	db      EMM386_SIG	; M001: Signature for EMM386 device.
EMM386_SIG_LEN  EQU     ($-EMM386Sig) 	; M001: Signature length.

;M002
VCPIDevName	db	EMM_DEV_VCPI	; Name for EMM VCPI IOCTL opens.

; =======================================================

.CODE

; =======================================================

GetEmmVersion	PROC USES ES DI SI      ; M000

        pushf                           ; M001: Save flags due to CLD below.
	push	BP
	mov	BP,SP
	sub	SP,SIZE EMM_STRUC

;M000
	mov	DX,OFFSET DeviceName	; DS:DX pointer to emm name
	mov	AX,3d02h		; Try to open the device
	int	21h
        jnc     GEV40                   ; Jump if device opens.

	mov	DeviceName,EMM_DEV_NOEMS ; DS:DX -> NOEMS emm name
	mov	AX,3d02h		; Try to open the device
	int	21h
        jnc     GEV40                   ; Jump if device opens.

;M002
	mov	DX,OFFSET VCPIDevName	; DS:DX pointer to VCPI emm name
	mov	AX,3d02h		; Try to open the device
	int	21h
        jc      GEV60                   ; Jump if device not found.

; M001: Validate "MICROSOFT" signature.

GEV40:  push    AX                      ; Save EMM device handle.
        mov     AX,(35h SHL 8) OR EMM_INT_VECT
        int     21h                     ; ES:BX -> EMM device handler.
                                        ; ES:0000 -> EMM device base.
        mov     DI,EMM386_SIG_OFFSET    ; ES:DI -> EMM Signature.
        mov     SI,OFFSET EMM386Sig	; DS:SI -> EMM386 Signature.
        mov     CX,EMM386_SIG_LEN       ; CX = Signature length.
        cld
        repz    cmpsb                   ; Signature match?
        jz      GEV80                  	;   Yes, jump.
                                        ;   No, fall thru and exit.

GEV60:	xor	AX,AX			; return code = 0.
	jmp	SHORT FunctExit         ; Go fix stack and exit.

GEV80:	pop	BX			; BX = device handle.
;M000

	mov	AX,4400h		; IOCTL get device information.
	int	21h
	jc	SHORT ErrorClose	; Carry indicates call unsuccesful

	test	DX,0080h		; Test if clock device.
	jz	SHORT ErrorClose	; if not, we can't steal memory.

	test	DX,4000h		; Are IOCTL's 02h and 03h supported
	jz	SHORT ErrorClose	; if not we cannot steal memory.

	push	DS
	mov	AX,SS
	mov	DS,AX
	mov	DX,BP			; DS:DX == SS:BP
	mov	CX,SIZE EMM_STRUC	; CX == size of the ctrl string
	sub	DX,CX			; DS:DX --> Start of data struct

	mov	BYTE PTR [BP].Function,EMM_GET_VER

	mov	AX,4402h		; Read control device string function
	int	21h
	pop	DS
	jc	SHORT ErrorClose	; Carry indicates call unsuccesful

	cmp	AX,CX			; If ax != cx we did not get the
	jne	SHORT ErrorClose	; number of bytes we requested !
	mov	AX,WORD PTR [BP].Version ; Have good version #
	xchg	AH,AL			; Put major ver. in AH & minor in AL
	jmp	SHORT CloseHandle

ErrorClose:
	xor	AX,AX			; Invalid SmartDrv version #

CloseHandle:
	push	AX
	mov	AX,3E00h		; Close device, handle in BX.
	int	21h			; Call DOS
	pop	AX

FunctExit:
	mov	SP,BP
	pop	BP
        popf                            ; M001
	ret				; return to caller.

GetEmmVersion     ENDP

; =======================================================

	END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区在线观看免费| 26uuu色噜噜精品一区| 亚洲精品乱码久久久久久 | 日韩视频一区二区在线观看| 五月天一区二区三区| 91精品国产美女浴室洗澡无遮挡| 奇米精品一区二区三区四区| 日韩欧美国产电影| 国产福利一区在线| 国产精品成人网| 欧美性一级生活| 日本女优在线视频一区二区| 久久综合久久鬼色中文字| 国产成人自拍高清视频在线免费播放| 国产亚洲成av人在线观看导航| 成人av电影免费在线播放| 亚洲女与黑人做爰| 欧美一区在线视频| 国产美女在线观看一区| 亚洲男人的天堂在线aⅴ视频| 欧美日韩情趣电影| 国产精品亚洲综合一区在线观看| 亚洲欧美综合另类在线卡通| 欧美日韩精品免费观看视频| 激情偷乱视频一区二区三区| 亚洲日本青草视频在线怡红院| 欧美丰满美乳xxx高潮www| 国产精品1024| 亚洲第一主播视频| 国产视频一区二区三区在线观看 | 色噜噜狠狠成人网p站| 日韩综合一区二区| 中文字幕免费观看一区| 欧美精品乱人伦久久久久久| 国产精品一区二区视频| 国产真实乱子伦精品视频| 国产精品久久久久影院色老大| 欧美精品一级二级| 99久久久精品| 久久电影国产免费久久电影| 亚洲欧美日本在线| 26uuu国产在线精品一区二区| 欧美综合一区二区三区| 成人视屏免费看| 美女www一区二区| 亚洲美女屁股眼交| 国产欧美精品在线观看| 4438x亚洲最大成人网| 成人在线视频首页| 极品少妇xxxx偷拍精品少妇| 亚洲综合免费观看高清完整版| 国产日韩视频一区二区三区| 欧美一级生活片| 欧美午夜精品一区| 99re这里都是精品| 岛国精品在线观看| 欧美做爰猛烈大尺度电影无法无天| 中文字幕一区二区三区色视频| 国产很黄免费观看久久| 欧美国产精品一区二区三区| 在线观看亚洲a| 亚洲自拍与偷拍| 99精品在线免费| 国产精品久久99| 国产午夜精品一区二区三区嫩草| 老司机免费视频一区二区三区| 亚洲一区二区三区中文字幕| 国产精品亲子乱子伦xxxx裸| 精品国产一区二区三区av性色 | 国产一区二区影院| 日本欧美韩国一区三区| 五月激情综合色| 舔着乳尖日韩一区| 日韩高清中文字幕一区| 香港成人在线视频| 婷婷中文字幕一区三区| 日本一区中文字幕 | 国产米奇在线777精品观看| 久久成人免费网站| 国产美女主播视频一区| 国产精品小仙女| 粉嫩高潮美女一区二区三区| 丰满岳乱妇一区二区三区| 国产福利91精品一区二区三区| 国产成人自拍在线| 99天天综合性| 欧美亚洲精品一区| 欧美精品电影在线播放| 欧美一区二区在线不卡| 精品久久久久av影院| 久久精品水蜜桃av综合天堂| 欧美激情在线一区二区三区| 亚洲欧美综合在线精品| 亚洲高清视频中文字幕| 蜜臀av亚洲一区中文字幕| 国产毛片精品视频| 99精品视频在线观看| 欧美日韩色一区| 欧美videos中文字幕| 国产精品嫩草影院av蜜臀| 悠悠色在线精品| 免费观看在线色综合| 高清不卡一区二区| 亚洲男人的天堂av| 麻豆精品一区二区三区| 一区二区三区高清在线| 亚洲精品高清在线| 久久久欧美精品sm网站| 欧美在线小视频| 国产91高潮流白浆在线麻豆| 成人av资源站| 99久久精品99国产精品| 国产99精品国产| 欧美在线不卡一区| 日韩一区二区三免费高清| 日本一区二区不卡视频| 亚洲aaa精品| 欧美精品乱码久久久久久按摩| 精品va天堂亚洲国产| 亚洲男人的天堂网| 国内外成人在线| 91伊人久久大香线蕉| 成人性视频网站| 91精品国产综合久久国产大片| 亚洲国产精品高清| 免费成人美女在线观看.| av激情成人网| 久久综合资源网| 日一区二区三区| 一本大道久久a久久综合| 2020日本不卡一区二区视频| 亚洲国产人成综合网站| 国产福利一区二区三区视频在线| 欧美日韩高清不卡| 亚洲欧美日韩在线不卡| 丰满放荡岳乱妇91ww| 日韩一级成人av| 亚洲小说欧美激情另类| 99久久免费国产| 国产日产欧产精品推荐色 | 亚洲欧洲日韩在线| 九九九久久久精品| 欧美剧情电影在线观看完整版免费励志电影| 国产亚洲欧美一区在线观看| 日韩国产精品久久| 欧美视频在线播放| 亚洲精品高清在线| 91麻豆免费观看| 国产精品福利一区二区| 国产成人精品在线看| 精品动漫一区二区三区在线观看| 五月天视频一区| 欧美欧美欧美欧美首页| 亚洲高清视频在线| 欧美午夜精品电影| 亚洲伊人伊色伊影伊综合网| 91亚洲国产成人精品一区二三| 欧美国产精品劲爆| 高清不卡一区二区| 国产精品乱码一区二三区小蝌蚪| 国产精品69久久久久水密桃| 久久久精品tv| 国产成人av电影在线| 国产亚洲成av人在线观看导航| 国产精品一区二区在线观看不卡| 久久久久久亚洲综合影院红桃 | 中文字幕亚洲区| 成人av电影免费在线播放| 中文字幕一区免费在线观看| 成人黄色片在线观看| 国产精品高潮呻吟| 91在线视频播放| 一区二区三区.www| 欧美日韩成人高清| 日本欧美在线观看| 精品国产一区二区三区av性色| 国产一区二区中文字幕| 久久精品免视看| 99久久夜色精品国产网站| 亚洲欧美福利一区二区| 欧美午夜在线一二页| 日韩中文字幕一区二区三区| 日韩亚洲欧美中文三级| 国产精选一区二区三区| 国产精品不卡在线| 欧美午夜一区二区三区免费大片| 亚洲18色成人| 日韩美女一区二区三区四区| 欧美精品一区男女天堂| 成人激情视频网站| 波多野结衣欧美| 欧美三级韩国三级日本一级| 91小视频在线观看| 日本精品一区二区三区高清 | 99久久精品国产麻豆演员表| 成人性色生活片免费看爆迷你毛片| 色婷婷综合久久久久中文一区二区 | 欧美精品日韩一区| 欧美激情一区二区三区蜜桃视频 | 91麻豆精品国产自产在线观看一区|