.module JUMPTABLE
.globl USB_AutoVector
.globl USB_Jump_Table

;-----------------------------------------------------------------------
; Interrupt Vectors
;-----------------------------------------------------------------------

.area		USBJV	(ABS,OVR)
.org		0x43
USB_AutoVector	=	#. + 2
		ljmp	USB_Jump_Table	; Autovector will replace byte 45

;-----------------------------------------------------------------------
; USB Jump Table
;-----------------------------------------------------------------------

.area		USBJT	(ABS)	; Place jump table on a page boundary
		.org		0x1B00
USB_Jump_Table:			; autovector jump table
		ljmp	_ISR_Sudav	; Setup Data Available
		.db	0
		ljmp	_ISR_Sof	; Start of Frame
		.db	0
		ljmp	_ISR_Sutok	; Setup Data Loading
		.db	0
		ljmp	_ISR_Susp	; Global Suspend
		.db 0
		ljmp	_ISR_Ures	; USB Reset
		.db	0
		ljmp	_ISR_IBN	; IN Bulk NAK interrupt
		.db	0
		ljmp	_ISR_Ep0in	; End Point 0 In
		.db	0
		ljmp	_ISR_Ep0out	; End Point 0 Out
		.db	0
		ljmp	_ISR_Ep1in	; End Point 1 In
		.db	0
		ljmp	_ISR_Ep1out	; End Point 1 Out
		.db	0
		ljmp	_ISR_Ep2in	; End Point 2 In
		.db	0
		ljmp	_ISR_Ep2out	; End Point 2 Out
		.db	0
		ljmp	_ISR_Ep3in	; End Point 3 In
		.db	0
		ljmp	_ISR_Ep3out	; End Point 3 Out
		.db	0
		ljmp	_ISR_Ep4in	; End Point 4 In
		.db	0
		ljmp	_ISR_Ep4out	; End Point 4 Out
		.db	0
		ljmp	_ISR_Ep5in	; End Point 5 In
		.db 0
		ljmp	_ISR_Ep5out	; End Point 5 Out
		.db	0
		ljmp	_ISR_Ep6in	; End Point 6 In
		.db	0
		ljmp	_ISR_Ep6out	; End Point 6 Out
		.db	0
		ljmp	_ISR_Ep7in	; End Point 7 In
		.db	0
		ljmp	_ISR_Ep7out	; End Point 7 Out
		.db	0

