www.pudn.com > fxvmm210.zip > _FXISWIN.ASM


;±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°± 
 
; 
; OS detection procedures 
; 
 
	TITLE	FXISWIN 
 
	.386p 
	.387 
 
;±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°± 
 
_FXISWIN	SEGMENT	BYTE PUBLIC USE16 'CODE' 
_FXISWIN	ENDS 
FXISWIN_DATA	SEGMENT	WORD PUBLIC USE16 'FAR_DATA' 
FXISWIN_DATA	ENDS 
 
;±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°± 
 
	public		__fxvmm_detwin 
 
;±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°± 
 
_FXISWIN	SEGMENT 
	assume	cs: _FXISWIN 
 
;±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°± 
 
include ..\source.asm\_fxvmm.inc 
 
;±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°± 
 
__fxvmm_detwin:	push	ds 
	mov	ax,seg FXISWIN_DATA 
	mov	ds,ax 
	call	far ptr __fxvmm_detwinproc 
	mov	dx,ax 
	or	dx,dx 
	jz	@@L1 
	cmp	dx,+001h 
	jnz	@@L2 
	mov	ax,0001h 
	jmp	short @@L3 
@@L2:	cmp	dx,+003h 
	jnz	@@L4 
	mov	ax,0002h 
	jmp	short @@L3 
@@L4:	cmp	dx,+004h 
	jnz	@@L5 
	mov	ax,0003h 
	jmp	short @@L3 
@@L5:	cmp	dx,+07Fh 
	jnz	@@L6 
	mov	ax,0004h 
	jmp	short @@L3 
@@L6:	cmp	dx,0080h 
	jnz	@@L7 
	mov	ax,0005h 
	jmp	short @@L3 
@@L7:	cmp	dx,00FFh 
	jnz	@@L1 
	mov	ax,0006h 
	jmp	short @@L3 
@@L1:	xor	ax,ax 
@@L3:	pop	ds 
	retf 
 
;±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°± 
 
__fxvmm_detwinproc: 
	push	ds 
	push	si 
	mov	ax,4680h 
	int	2Fh 
	xor	al,80h 
	mov	cl,al 
	mov	ax,1600h 
	int	2Fh 
	and	al,7Fh 
	or	al,cl 
	cmp	al,80h 
	jz	@$lab1 
	mov	ah,00h 
	cwd 
	pop	si 
	pop	ds 
	retf 
@$lab1:	mov	ax,1605h 
	xor	bx,bx 
	mov	es,bx 
	xor	si,si 
	mov	ds,si 
	xor	cx,cx 
	mov	dx,0001h 
	mov	di,0300h 
	int	2Fh 
	cmp	cx,+000h 
	jnz	@$lab2 
	mov	ax,1606h 
	int	2Fh 
@$lab2:	mov	al,80h 
	or	al,cl 
	mov	ah,00h 
	cwd 
	pop	si 
	pop	ds 
	retf 
_FXISWIN	ENDS 
	END 
 
;±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°