
#*********************************************************************
#*                
#* Filename:      smapi_call.s
#* Version:       1.0
#* Author:        Thomas Hood
#* Created:       19 July 1999 
#*
#* Please report bugs to the author ASAP.
#* 
#*     Copyright (c) 1999 J.D. Thomas Hood, All rights reserved
#*     
#*     This program is free software; you can redistribute it and/or 
#*     modify it under the terms of the GNU General Public License as 
#*     published by the Free Software Foundation; either version 2 of 
#*     the License, or (at your option) any later version.
#* 
#*     This program is distributed in the hope that it will be useful,
#*     but WITHOUT ANY WARRANTY; without even the implied warranty of
#*     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#*     GNU General Public License for more details.
#* 
#*     To receive a copy of the GNU General Public License, please write
#*     to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
#*     Boston, MA 02111-1307 USA
#*     
#********************************************************************/

	.align
farpxSmapiBios:                          # far pointer to the SMAPI function
	.globl _dwAddressSmapiBios
_dwAddressSmapiBios:  .long 0xc00fe9c4   # offset; should be set up by caller
wSegSmapiBios:        .word 0x18         # cs is stored here by us before call

	.globl SMAPI_BIOS_do
	.align
SMAPI_BIOS_do:
	pushl	%ebp
	movl	%esp,%ebp

	movl	0xC(%ebp),%eax
	pushl	%ds
	pushl	%eax
	movl	0x8(%ebp),%eax
	pushl	%ds
	pushl	%eax

	movl	$0,%eax
	movw	%cs,wSegSmapiBios
	lcall	farpxSmapiBios

	add	$0x10,%esp
	popl	%ebp
	ret

