;;; vltface.asm
;
;   DESCRIPTION:
;   ===========
;
;	This is an interface to VLT callback functions to be handed to
;	external protocol libraries.
;
;   AUTHOR/DATE:  W.G.J. Langeveld, March 1989.
;   ============
;
;;;

	public	_geta4

setup	macro
	movem.l	d2/d3/d4-d7/a2-a6,-(sp)
	jsr	_geta4			; Get a4.
	endm

push	macro
	move.l	\1,-(sp)
	endm

fix	macro
	ifc	'\1',''
		mexit
	endc
	ifle	\1-8
		addq.l	#\1,sp
	endc
	ifgt	\1-8
		lea	\1(sp),sp
	endc
	endm

restore	macro
	fix	\1
	movem.l	(sp)+,d2/d3/d4-d7/a2-a6	
	rts
	endm

	public	_avlt_fopen
	public	_vlt_fopen
	public	_avlt_fclose
	public	_vlt_fclose
	public	_avlt_fread
	public	_vlt_fread
	public	_avlt_fwrite
	public	_vlt_fwrite
	public	_avlt_fseek
	public	_vlt_fseek
	public	_avlt_sread
	public	_vlt_sread
	public	_avlt_swrite
	public	_vlt_swrite
	public	_avlt_update
	public	_vlt_update
	public	_avlt_chkabort
	public	_vlt_chkabort
	public	_avlt_chkmisc
	public	_vlt_chkmisc
	public	_avlt_gets
	public	_vlt_gets
	public	_avlt_setserial
	public	_vlt_setserial
	public	_avlt_ffirst
	public	_vlt_ffirst
	public	_avlt_fnext
	public	_vlt_fnext
	public	_avlt_finfo
	public	_vlt_finfo
	public	_avlt_sflush
	public	_vlt_sflush
	public  _avlt_options
	public	_vlt_options
	public  _avlt_unlink
	public	_vlt_unlink
	public  _avlt_squery
	public	_vlt_squery
	public  _avlt_getptr
	public	_vlt_getptr

_avlt_fopen:
	setup
	push	a1
	push	a0
	jsr	_vlt_fopen
	restore	8

_avlt_fclose:
	setup
	push	a0
	jsr	_vlt_fclose
	restore	4

_avlt_fread:
	setup
	push	a1
	push	d1
	push	d0
	push	a0
	jsr	_vlt_fread
	restore	16

_avlt_fwrite:
	setup
	push	a1
	push	d1
	push	d0
	push	a0
	jsr	_vlt_fwrite
	restore	16

_avlt_fseek:
	setup
	push	d1
	push	d0
	push	a0
	jsr	_vlt_fseek
	restore	12

_avlt_sread:
	setup
	push	d1
	push	d0
	push	a0
	jsr	_vlt_sread
	restore	12

_avlt_swrite:
	setup
	push	d0
	push	a0
	jsr	_vlt_swrite
	restore	8

_avlt_update:
	setup
	push	a0
	jsr	_vlt_update
	restore	4

_avlt_chkabort:
	setup
	jsr	_vlt_chkabort
	restore

_avlt_chkmisc:
	setup
	jsr	_vlt_chkmisc
	restore

_avlt_gets:
	setup
	push	a1
	push	a0
	jsr	_vlt_gets
	restore	8

_avlt_ffirst
	setup
	push	a1
	push	a0
	jsr	_vlt_ffirst
	restore	8

_avlt_fnext
	setup
	push	a1
	push	a0
	push	d0
	jsr	_vlt_fnext
	restore	12

_avlt_sflush
	setup
	jsr	_vlt_sflush
	restore

_avlt_setserial
	setup
	push	d0
	jsr	_vlt_setserial
	restore	4

_avlt_finfo
	setup
	push	d0
	push	a0
	jsr	_vlt_finfo
	restore	8

_avlt_options
	setup
	push	a0
	push	d0
	jsr	_vlt_options
	restore 8

_avlt_unlink
	setup
	push	a0
	jsr	_vlt_unlink
	restore 4

_avlt_squery
	setup
	jsr	_vlt_squery
	restore

_avlt_getptr
	setup
	push    d0
	jsr	_vlt_getptr
	restore 4

