
	SECTION	CASE

*	Case.asm (of PCQ Pascal runtime library)
*	Copyright (c) 1989 Patrick Quaid

*	This routine moves handles the case jump table.  It expects
*	the case expression to be in d0, and the address of the
*	table in a0.  It also requires a properly built table-
*	there is no provision for stopping, except for the default
*	case.

	XDEF	_p%case
_p%case

1$	tst.l	(a0)
	beq.s	2$
	cmp.l	4(a0),d0
	beq.s	3$
	addq.l	#8,a0
	bra	1$
2$	addq.l	#4,a0
3$	move.l	(a0),a0
	jmp	(a0)

	END

