	IDEAL
	MODEL large

	EXTRN _error_message:far

	CODESEG

	PUBLIC _critical_error


PROC	_critical_error NEAR

	sti

	push	bx		 ; save all the important registers.
	push	cx		 ;
	push	dx		 ;
	push	si		 ;
	push	di		 ;
	push	es		 ;
	push	ds		 ;
	push	ss		 ;
	push	sp		 ;
	push	bp		 ; last save.

	mov	ax, @data	; use local address space.
	mov	ds, ax

	call	_error_message

	pop	bp		 ; restore saved registers.
	pop	sp		 ;
	pop	ss		 ;
	pop	ds		 ;
	pop	es		 ;
	pop	di		 ;
	pop	si		 ;
	pop	dx		 ;
	pop	cx		 ;
	pop	bx		 ; last restore

	iret

ENDP	_critical_error

	End
