	SECTION	FileIOCode,CODE
	XREF		_RequesterBase  ;base variable as opened by the C application

	INCLUDE	"FileIO.i"

	XDEF	_SetFileIOHandlers
_SetFileIOHandlers:
		movea.l	4(sp),a0		;HandlerBlock
		move.l	a2,-(sp)
		lea		StartUpCode,a2
		move.l	(a0)+,(a2)+
		beq.s		n1
		lea		StartHandler,a1
		move.l	a1,-4(a0)
n1		move.l	(a0)+,(a2)+
		beq.s		n2
		lea		DIHandler,a1
		move.l	a1,-4(a0)
n2		move.l	(a0)+,(a2)+
		beq.s		n3
		lea		GadgetHandler,a1
		move.l	a1,-4(a0)
n3		move.l	(a0)+,(a2)+
		beq.s		n4
		lea		KeyHandler,a1
		move.l	a1,-4(a0)
n4		move.l	(a0),(a2)
		beq.s		n5
		lea		MMHandler,a1
		move.l	a1,(a0)
n5		movea.l	(sp)+,a2
		rts

DIHandler:
		movea.l	DICode,a0
		bra.s		handle
MMHandler:
		movea.l	MMCode,a0
		bra.s		handle
GadgetHandler:
		movea.l	GadgetCode,a0
handle:
		movem.l	d0/d2/d5/d6/d7/a2/a3/a4,-(sp)
		jsr		(a0)
		movem.l	(sp)+,d1/d2/d5/d6/d7/a2/a3/a4
		rts
StartHandler:
		movea.l	StartUpCode,a0
		bra.s		handle
KeyHandler:
		movea.l	KeyCode,a0
		bra.s		handle

	XDEF	_SetWaitPointer,__SetWaitPointer
_SetWaitPointer:
		movea.l	_RequesterBase,a6
__SetWaitPointer:
		movea.l	4(sp),a0
		jmp		_LVOSetWaitPointer(a6)

	XDEF	_AutoMessage,__AutoMessage
_AutoMessage:
		movea.l	_RequesterBase,a6
__AutoMessage:
		move.l	4(sp),d0
		movea.l	8(sp),a0
		jmp		_LVOAutoMessage(a6)

	XDEF	_AutoMessageLen,__AutoMessageLen
_AutoMessageLen:
		movea.l	_RequesterBase,a6
__AutoMessageLen:
		move.l	4(sp),d0
		movea.l	8(sp),a0
		move.l	12(sp),d1
		jmp		_LVOAutoMessageLen(a6)

	XDEF	_AutoFileMessage,__AutoFileMessage
_AutoFileMessage:
		movea.l	_RequesterBase,a6
__AutoFileMessage:
		move.w	6(sp),d1
		movea.l	8(sp),a0
		jmp		_LVOAutoFileMessage(a6)

	XDEF _ResetBuffer,__ResetBuffer
_ResetBuffer:
		movea.l	_RequesterBase,a6
__ResetBuffer:
		movea.l	4(sp),a0
		move.b	11(sp),d0
		jmp		_LVOResetBuffer(a6)

	XDEF	_GetFileIO,__GetFileIO
_GetFileIO:
		movea.l	_RequesterBase,a6
__GetFileIO:
		jmp		_LVOGetFileIO(a6)

	XDEF	_DoFileIO,__DoFileIO
_DoFileIO:
		movea.l	_RequesterBase,a6
__DoFileIO:
		movea.l	4(sp),a0
		movea.l	8(sp),a1
		jmp		_LVODoFileIO(a6)

	XDEF	_DoFileIOWindow,__DoFileIOWindow
_DoFileIOWindow:
		movea.l	_RequesterBase,a6
__DoFileIOWindow:
		movea.l	4(sp),a0
		movea.l	8(sp),a1
		jmp		_LVODoFileIOWindow(a6)

	XDEF	_GetFullPathname,__GetFullPathname
_GetFullPathname:
		movea.l	_RequesterBase,a6
__GetFullPathname:
		movea.l	4(sp),a0
		movea.l	8(sp),a1
		jmp		_LVOGetFullPathname(a6)

	XDEF	_ReleaseFileIO,__ReleaseFileIO
_ReleaseFileIO:
		movea.l	_RequesterBase,a6
__ReleaseFileIO:
		movea.l	4(sp),a1
		jmp		_LVOReleaseFileIO(a6)

	XDEF	_PromptUserEntry,__PromptUserEntry
_PromptUserEntry:
		movea.l  _RequesterBase,a6
__PromptUserEntry:
		movem.l	a2/a3,-(sp)
		movem.l  12(sp),d0/a0/a1/a2/a3
		jsr      _LVOPromptUserEntry(a6)
		bra.s		outf

	XDEF	_AutoPrompt3,__AutoPrompt3
_AutoPrompt3:
		movea.l	_RequesterBase,a6
__AutoPrompt3:
		movem.l	a2/a3,-(sp)
		movem.l	12(sp),a1/a2/a3
		movea.l	24(sp),a0
		jsr		_LVOAutoPrompt3(a6)
outf	movem.l	(sp)+,a2/a3
		rts

	XDEF	_SetTitle,__SetTitle
_SetTitle:
		movea.l	_RequesterBase,a6
__SetTitle:
		movem.l	a2/a3,-(sp)
		movem.l	12(sp),a0/a1/a2/a3
		jsr		_LVOSetTitle(a6)
		bra.s		outf

	XDEF	_ResetTitle,__ResetTitle
_ResetTitle:
		movea.l	_RequesterBase,a6
__ResetTitle:
		movem.l	a2/a3,-(sp)
		movem.l	12(sp),a2/a3
		jsr		_LVOResetTitle(a6)
		bra.s		outf

	XDEF	_UserEntry,__UserEntry
_UserEntry:
		movea.l	_RequesterBase,a6
__UserEntry:
		movem.l	a2/a3,-(sp)
		movem.l	12(sp),d0/a0/a2/a3
		jsr		_LVOUserEntry(a6)
		bra.s		outf

	XDEF	_GetRawkey,__GetRawkey
_GetRawkey:
		movea.l	_RequesterBase,a6
__GetRawkey:
		move.l	a3,-(sp)
		movea.l	4(sp),a3
		jsr		_LVOGetRawkey(a6)
		movea.l	(sp)+,a3
		rts

	XDEF	_DecodeRawkey,__DecodeRawkey
_DecodeRawkey:
		movea.l	_RequesterBase,a6
__DecodeRawkey:
		movea.l	4(sp),a1
		move.l	8(sp),d0
		jmp		_LVODecodeRawkey(a6)

	XDEF	_TypeFilename,__TypeFilename
_TypeFilename:
		movea.l	_RequesterBase,a6
__TypeFilename:
		movea.l	4(sp),a0
		movea.l	8(sp),a1
		jmp		_LVOTypeFilename(a6)

	XDEF	_ParseString,__ParseString
_ParseString:
		movea.l	_RequesterBase,a6
__ParseString:
		movea.l	4(sp),a0
		movea.l	8(sp),a1
		jmp		_LVOParseString(a6)

	XDEF	__NewEntryList,_NewEntryList
_NewEntryList:
		movea.l	_RequesterBase,a6
__NewEntryList:
		movea.l	4(sp),a1
		jmp		_LVONewEntryList(a6)

	XDEF	__IsEntryThere,_IsEntryThere
_IsEntryThere:
		movea.l	_RequesterBase,a6
__IsEntryThere:
		movea.l	4(sp),a0
		movea.l	8(sp),a1
		jsr		_LVOIsEntryThere(a6)
		move.l	a0,_ThisEntry
		move.l	d1,_PrevEntry
		rts

	XDEF	__AddEntry,_AddEntry
_AddEntry:
		movea.l	_RequesterBase,a6
__AddEntry:
		movem.l	4(sp),d1/a0/a1
		jmp		_LVOAddEntry(a6)

	XDEF	__RetrieveEntry,_RetrieveEntry
_RetrieveEntry:
		movea.l	_RequesterBase,a6
__RetrieveEntry:
		movem.l	4(sp),a0/a1
		jsr		_LVORetrieveEntry(a6)
		move.l	d1,_PrevEntry
		rts

	XDEF	__ClearEntries,_ClearEntries
_ClearEntries:
		movea.l	_RequesterBase,a6
__ClearEntries:
		jmp		_LVOClearEntries(a6)

	XDEF	__PutProjIcon,_PutProjIcon
_PutProjIcon:
		movea.l	_RequesterBase,a6
__PutProjIcon:
		movem.l	4(sp),a0/a1
		jmp		_LVOPutProjIcon(a6)

	XDEF	__DeleteEntry,_DeleteEntry
_DeleteEntry:
		movea.l	_RequesterBase,a6
__DeleteEntry:
		movem.l	4(sp),a0/a1
		jmp	_LVODeleteEntry(a6)

	XDEF	__FindDeleteEntry,_FindDeleteEntry
_FindDeleteEntry:
		movea.l	_RequesterBase,a6
__FindDeleteEntry:
		movem.l	4(sp),d1/a0/a1
		jmp	_LVOFindDeleteEntry(a6)

	XDEF	__AddFileGadgs,_AddFileGadgs
_AddFileGadgs:
		movea.l	_RequesterBase,a6
__AddFileGadgs:
		movem.l	4(sp),a0/a3/a5
		jmp	_LVOAddFileGadgs(a6)

	SECTION	fin,DATA
 
StartUpCode	dc.l 0
DICode		dc.l 0
GadgetCode	dc.l 0
KeyCode		dc.l 0
MMCode		dc.l 0
	XDEF	_ThisEntry,_PrevEntry
_ThisEntry	dc.l 0
_PrevEntry	dc.l 0
