	SECTION _TEXT CLASS=CODE USE32
	SECTION _DATA CLASS=DATA USE32
	SECTION _BSS  CLASS=BSS USE32
	SECTION _CONST  CLASS=CONST USE32
	SECTION _STRING  CLASS=STRING USE32
	SECTION cstartup CLASS=INITDATA USE32
	SECTION crundown CLASS=EXITDATA USE32
	SECTION cppinit  CLASS=CPPINIT USE32
	SECTION cppexit  CLASS=CPPEXIT USE32
	GROUP DGROUP _DATA _BSS _CONST _STRING

SECTION _TEXT
[GLOBAL	__clear87]
;
; Line 9:	{
;
__clear87:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 04H
;
; Line 11:		asm fnstsw	[work ];
;
	FNSTSW	WORD [EBP+0FFFFFFFEH]
;
; Line 12:		asm fnclex
;
	FNCLEX
;
; Line 13:		return work ;
;
	MOV	AX,WORD [EBP+0FFFFFFFEH]
L_1:
	MOV	ESP,EBP
	POP	EBP
	RET
[GLOBAL	__control87]
;
; Line 16:	{
;
__control87:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 04H
	PUSH	EBX
	PUSH	ESI
	MOV	EBX,DWORD [EBP+0CH]
	MOV	ESI,DWORD [EBP+08H]
;
; Line 18:		asm fstcw [work];
;
	FSTCW	WORD [EBP+0FFFFFFFEH]
;
; Line 19:		mask1 &= mask2;
;
	AND	ESI,EBX
;
; Line 20:		mask2 = ~mask2;
;
	NOT	EBX
;
; Line 21:		asm fwait
;
	WAIT
;
; Line 22:		work &= mask2;
;
	AND	WORD [EBP+0FFFFFFFEH],BX
;
; Line 23:		work = mask1 |= work ;
;
	MOVSX	EAX,WORD [EBP+0FFFFFFFEH]
	OR	ESI,EAX
	MOV	WORD [EBP+0FFFFFFFEH],SI
;
; Line 24:		asm fldcw [work]
;
	FLDCW	WORD [EBP+0FFFFFFFEH]
;
; Line 25:	}
;
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
[GLOBAL	__llfpinit]
;
; Line 28:	{
;
__llfpinit:
;
; Line 29:		asm finit ;
;
	FINIT
;
; Line 30:		_control87(_basefpmask,0x1fff) ;
;
	PUSH	DWORD 01FFFH
	MOVSX	EAX,WORD [__basefpmask]
	PUSH	EAX
	CALL	__control87
	ADD	ESP,BYTE 08H
;
; Line 31:	}
;
	RET

SECTION _DATA
[GLOBAL	__basefpmask]

__basefpmask	DW	01332H
SECTION _BSS
