File:  [MW Coherent from dump] / coherent / b / kernel / ldrv / kcall.s
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed May 29 04:56:37 2019 UTC (7 years ago) by root
Branches: MarkWilliams, MAIN
CVS tags: relic, HEAD
coherent

/ $Header: /var/lib/cvsd/repos/coherent/coherent/b/kernel/ldrv/kcall.s,v 1.1.1.1 2019/05/29 04:56:37 root Exp $
/
/	The  information  contained herein  is a trade secret  of INETCO
/	Systems, and is confidential information.   It is provided under
/	a license agreement,  and may be copied or disclosed  only under
/	the terms of that agreement.   Any reproduction or disclosure of
/	this  material  without  the express  written  authorization  of
/	INETCO Systems or persuant to the license agreement is unlawful.
/
/	Copyright (c) 1988
/	An unpublished work by INETCO Systems, Ltd.
/	All rights reserved.
/
/ $Log: kcall.s,v $
/ Revision 1.1.1.1  2019/05/29 04:56:37  root
/ coherent
/
/ Revision 1.1  92/07/17  15:27:52  bin
/ Initial revision
/
/ Revision 1.1	88/03/24  16:30:41	src
/ Initial revision
/ 
/
////////

////////
/
/ kcall( func, arg, ... )
/
/	Input:	func = kernel function to be invoked.
/		arg  = optional argument(s) to be passed to kernel function.
/
/	Action:	Invoke kernel function.
/
////////
	.globl	kcall_

kcall_:
	pop	bx		/ Convert stack from (retIP dstIP arg ...)
	pop	ax		/		  to (      retIP arg ...)
	push	bx		/ Leaving dstIP in AX register.
				/
	.byte 0x9A		/ Request kernel to perform far call.
	.word xcalled		/
	.word 0x0060		/
				/
	pop	bx		/ Convert stack from (      retIP arg ...)
	push	bx		/		  to (retIP retIP arg ...)
	push	bx		/ This allows caller to cleanup normally.
				/ NOTE: DO NOT MODIFY DX:AX RETURN VALUE.
				/
	ret			/ Return to caller.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.