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

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

?? emm386.asm

?? Dos6.0
?? ASM
字號:
;/*
; *                      Microsoft Confidential
; *                      Copyright (C) Microsoft Corporation 1988 - 1991
; *                      All Rights Reserved.
; */
;
;  EMM386.ASM
;
;     fIsPooled() - Returns version if pooling is in effect, else 0
;

.MODEL	SMALL

include rombios.inc

;
;emm defines
;
EMM_INT_VECT		EQU 	67h
DEVICE_OFFSET		EQU	10

EMM_POOLED_VER		EQU	42Dh   ; emm386 pooled version is 4.45

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))

.DATA

DevName db 'EMMXXXX0'

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.

_MaxMin  dw 2 dup (0)
public _MaxMin

.CODE

public _fIsPooled

_fIsPooled	proc	near
	push	ES
	push	SI
	push	DI
	pushf				; M001: Save flags due to CLD below.
	push	BP
	mov	BP,SP
	sub	SP,SIZE EMM_STRUC

;M000
        xor     ax, ax
	mov	[_MaxMin],   ax
	mov	[_MaxMin+2], ax      ; First, we initialize the buffer.

	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

	cmp	AX,EMM_POOLED_VER	; if emm386 ver 4.45 continue
	jl	SHORT ErrorClose	; else return 0

        mov     cx, 4
	mov	dx, offset _MaxMin     ; offset of emm386 max allocated and min allocated buffer
	mov	byte ptr [_MaxMin], 3  ; set function code for IOCTL
        mov     ax, 4402h              ; read control data from char device
	int	21h		       ; get max-min allocated for emm386

	jmp	SHORT CloseHandle

ErrorClose:
	xor	AX,AX			; Invalid EMM386 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
	pop	DI
	pop	SI
	pop	ES
	ret				; return to caller.

_fIsPooled	endp

end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线资源网站| 波多野结衣亚洲| 中文字幕在线播放不卡一区| 欧美乱妇20p| 成人动漫视频在线| 蜜乳av一区二区| 亚洲精品久久嫩草网站秘色| 久久亚洲春色中文字幕久久久| 在线看不卡av| 成人免费精品视频| 韩国av一区二区三区在线观看| 国产在线精品免费av| 亚洲激情av在线| 国产日韩欧美一区二区三区乱码| 欧美一级夜夜爽| 色婷婷亚洲婷婷| 国产成人综合自拍| 久久91精品久久久久久秒播| 亚洲一二三四区| 中文字幕一区二区视频| 精品国产乱码久久久久久影片| 欧美日韩国产高清一区二区三区 | 久久国产精品免费| 一区二区三区四区激情| 国产精品三级av在线播放| 日韩欧美激情四射| 欧美一区二区三区色| 欧美日韩午夜影院| 91国偷自产一区二区开放时间| 成人a免费在线看| 国产激情精品久久久第一区二区| 久久99久久99| 日韩高清在线观看| 日韩精品一级二级| 丝袜美腿亚洲色图| 视频一区二区三区入口| 亚洲h在线观看| 亚洲成a人v欧美综合天堂下载| 一区二区理论电影在线观看| 亚洲欧洲制服丝袜| 亚洲三级视频在线观看| 亚洲日本电影在线| 亚洲激情图片qvod| 一区二区三区在线视频免费| 亚洲欧美日韩电影| 伊人性伊人情综合网| 亚洲一区二区三区不卡国产欧美| 亚洲精品高清在线观看| 一区二区三区电影在线播| 亚洲精品视频免费观看| 一二三四区精品视频| 亚洲大片免费看| 天天综合天天综合色| 麻豆精品久久久| 激情国产一区二区| 成人性生交大片免费| 色婷婷久久久综合中文字幕| 在线看日本不卡| 日韩亚洲欧美一区二区三区| 欧美一区二区观看视频| 精品裸体舞一区二区三区| 久久女同精品一区二区| 国产精品乱人伦| 尤物在线观看一区| 视频一区中文字幕国产| 精油按摩中文字幕久久| 久久先锋影音av鲁色资源网| 国产日韩高清在线| 一区二区三区在线视频免费观看| 午夜精品免费在线观看| 精品一二线国产| av电影天堂一区二区在线| 欧美自拍丝袜亚洲| 日韩免费视频一区| 国产精品国产自产拍高清av王其 | 国产精品美女久久久久久久| 国产精品久久久久久久久久免费看 | 久久国产精品无码网站| 国内精品伊人久久久久av一坑| 国产jizzjizz一区二区| 欧美日韩一区二区在线视频| 9191久久久久久久久久久| 久久久久久久久伊人| 一区二区激情小说| 精品一区二区在线播放| 91麻豆国产自产在线观看| 欧美日本韩国一区| 国产精品私人影院| 天天操天天干天天综合网| 国产91丝袜在线播放| 欧美日韩高清一区二区三区| 久久嫩草精品久久久精品一| 亚洲电影在线免费观看| 国产一区二区美女| 91久久奴性调教| 国产日产欧美精品一区二区三区| 亚洲一区二区三区爽爽爽爽爽| 国产一区二区美女诱惑| 欧美三区在线观看| 国产精品免费aⅴ片在线观看| 天堂av在线一区| 9久草视频在线视频精品| 日韩一区二区免费视频| 一区二区高清免费观看影视大全| 精品亚洲aⅴ乱码一区二区三区| 91在线视频18| 久久精品欧美日韩| 老司机午夜精品| 欧美主播一区二区三区美女| 国产精品久久久久久久久快鸭 | 国产一区在线观看视频| 欧美人狂配大交3d怪物一区| 自拍偷拍亚洲激情| 国产99久久久精品| 亚洲精品一区二区精华| 婷婷综合在线观看| 欧美日韩中文字幕一区| 亚洲婷婷在线视频| 成人手机在线视频| 国产欧美日韩激情| 久久精品久久综合| 91精品国产综合久久精品app| 亚洲综合激情小说| 色婷婷av一区二区三区gif| 国产精品久久久久aaaa樱花| 国产精品一区二区久久不卡 | 亚洲一二三专区| 一本到不卡免费一区二区| 国产精品视频第一区| 国产精品伊人色| 久久亚洲精精品中文字幕早川悠里 | 91视频在线看| 国产精品国产三级国产普通话99| 大胆亚洲人体视频| 国产精品看片你懂得| 成人一区二区视频| 日本一区二区成人在线| 岛国精品在线播放| 国产精品女人毛片| 99久久亚洲一区二区三区青草| 亚洲国产精华液网站w| 丁香激情综合国产| 国产精品情趣视频| av电影一区二区| 亚洲女子a中天字幕| 色av成人天堂桃色av| 一区二区三区资源| 欧美日韩国产精品自在自线| 青青草国产精品亚洲专区无| 日韩欧美国产一区在线观看| 国产一区二区不卡在线| 欧美国产激情一区二区三区蜜月| 风间由美性色一区二区三区| 亚洲欧美一区二区视频| 欧美性大战久久久| 日日嗨av一区二区三区四区| 欧美videofree性高清杂交| 国产精品一品视频| 中文字幕一区二区三区不卡| 在线看一区二区| 九色综合狠狠综合久久| 国产欧美视频一区二区| thepron国产精品| 亚洲国产视频一区| 欧美videos中文字幕| gogogo免费视频观看亚洲一| 一区二区三区在线高清| 日韩欧美一区二区久久婷婷| 国产精品一卡二卡| 伊人一区二区三区| 日韩一区二区高清| 岛国一区二区在线观看| 一区二区不卡在线播放 | 色婷婷综合久久久久中文一区二区| 亚洲午夜免费福利视频| 日韩欧美国产综合在线一区二区三区| 国产电影精品久久禁18| 亚洲乱码日产精品bd| 日韩一区二区精品| www.亚洲免费av| 男男gaygay亚洲| 自拍偷在线精品自拍偷无码专区 | 精品成人一区二区三区| 色偷偷成人一区二区三区91| 美女精品一区二区| 亚洲美女少妇撒尿| 久久综合久久综合久久| 在线日韩一区二区| 国产精品一区二区久激情瑜伽| 亚洲成人777| 中文字幕一区二区视频| 精品久久久久一区二区国产| 色婷婷av一区二区三区之一色屋| 国产精品资源在线看| 亚洲香肠在线观看| 亚洲国产精华液网站w| 日韩欧美一区二区在线视频| 色综合天天综合网天天狠天天| 九九久久精品视频| 亚洲国产va精品久久久不卡综合|