; HAPN (8273 HDLC) interrupt hooks

	.MODEL	MEMMOD,C
	LOCALS
	%MACS
	.LALL

	extrn	Stktop,Spsave,Sssave,haint:proc,doret:proc,eoi:proc

	.CODE
dbase	dw	@Data		; save loc for ds (must be in code segment)

; ha0vec - HAPN card #0 interrupt handler
	public	ha0vec
	label	ha0vec	far
	push	ds		; save on user stack
	mov	ds,cs:dbase	; establish interrupt data segment

	mov	Sssave,ss	; stash user stack context
	mov	Spsave,sp

	mov	ss,cs:dbase	
	lea	sp,Stktop

	push	ax		; save user regs on interrupt stack
	push	bx
	push	cx
	push	dx
	push	bp
	push	si
	push	di
	push	es
	call	eoi

	mov	ax,0		; arg for service routine
	push	ax
	call	haint
	pop	ax
	jmp	doret

	end
