File: smapi_call.s

package info (click to toggle)
thinkpad 5.8-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 604 kB
  • ctags: 1,459
  • sloc: ansic: 5,985; makefile: 226; sh: 179; asm: 44; sed: 22
file content (55 lines) | stat: -rw-r--r-- 1,682 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

#*********************************************************************
#*                
#* Filename:      smapi_call.s
#* Version:       1.0.0
#* Author:        Thomas Hood <jdthood@mail.com>
#* 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