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 ;±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°±°