|
|
1.1 root 1: / $Header: /kernel/kersrc/ldrv/RCS/kcall.s,v 1.1 92/07/17 15:27:52 bin Exp Locker: bin $
2: /
3: / The information contained herein is a trade secret of INETCO
4: / Systems, and is confidential information. It is provided under
5: / a license agreement, and may be copied or disclosed only under
6: / the terms of that agreement. Any reproduction or disclosure of
7: / this material without the express written authorization of
8: / INETCO Systems or persuant to the license agreement is unlawful.
9: /
10: / Copyright (c) 1988
11: / An unpublished work by INETCO Systems, Ltd.
12: / All rights reserved.
13: /
14: / $Log: kcall.s,v $
15: / Revision 1.1 92/07/17 15:27:52 bin
16: / Initial revision
17: /
18: / Revision 1.1 88/03/24 16:30:41 src
19: / Initial revision
20: /
21: /
22: ////////
23:
24: ////////
25: /
26: / kcall( func, arg, ... )
27: /
28: / Input: func = kernel function to be invoked.
29: / arg = optional argument(s) to be passed to kernel function.
30: /
31: / Action: Invoke kernel function.
32: /
33: ////////
34: .globl kcall_
35:
36: kcall_:
37: pop bx / Convert stack from (retIP dstIP arg ...)
38: pop ax / to ( retIP arg ...)
39: push bx / Leaving dstIP in AX register.
40: /
41: .byte 0x9A / Request kernel to perform far call.
42: .word xcalled /
43: .word 0x0060 /
44: /
45: pop bx / Convert stack from ( retIP arg ...)
46: push bx / to (retIP retIP arg ...)
47: push bx / This allows caller to cleanup normally.
48: / NOTE: DO NOT MODIFY DX:AX RETURN VALUE.
49: /
50: ret / Return to caller.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.