
vect			macro	statename,statehandler
statename		equ	enum
			ajmp	statehandler
enum			set	enum+1
			endm
.
.

statemachine:		mov	a,state
			rl	a
			jmp	@a+dptr
enum			set	0
			vect	st_state0,sh_state0
			vect	st_state1,sh_state1
			vect	st_state2,sh_state2

sh_state0:		;do stuff
			ajmp	break

sh_state1:		;do stuff
			ajmp	break

sh_state2:		;do stuff
			ajmp	break

break:
