	SECTION	LibCode,CODE

	XDEF	_SysBase,_DOSBase,_IntuitionBase,_GfxBase,_LibBase

numOfFuncs	equ	  21
negsize		equ	numOfFuncs*6

	XREF	_LVOAddLibrary,_LVOOldOpenLibrary,_LVOCloseLibrary
	XREF	_LVOAllocMem,_LVOFreeMem,_LVORemove

VERSION		equ	4
REVISION	equ	1

return0:
	moveq	#0,d0
	rts

RomTag:
	dc.w	$4AFC
	dc.l	RomTag,endRom
	dc.b	0,VERSION,9,0
	dc.l	Lib_Name,Lib_Id,libstartup
endRom

libstartup:
	move.l	a3,-(sp)
	lea	SegList,a3
	move.l	a0,(a3)+
	move.l	a6,(a3)+
	lea	12(a3),a1
	jsr	_LVOOldOpenLibrary(a6)
	move.l	d0,(a3)+
	lea	20(a3),a1
	jsr	_LVOOldOpenLibrary(a6)
	move.l	d0,(a3)+
	lea	34(a3),a1
	jsr	_LVOOldOpenLibrary(a6)
	move.l	d0,(a3)
	lea	-50(a3),a1
	movea.l	a1,a3
	jsr	_LVOAddLibrary(a6)
	XREF	@XEmulatorInit
	move.l	a6,-(sp)
	jsr	@XEmulatorInit
	movea.l	(sp)+,a6
	tst.b	d0
	bne.s	tru
	bsr.s	abe
	suba.l	a3,a3
tru	move.l	a3,d0
	movea.l	(sp)+,a3
	rts

myOpen:
	addq.w	#1,32(a6)
	Bclr.b	#3,14(a6)
	move.l	a6,d0
	rts

abe	lea	_SysBase,a3
	movea.l	(a3)+,a6
	movea.l	(a3)+,a1
	jsr	_LVOCloseLibrary(a6)
	movea.l	(a3)+,a1
	jsr	_LVOCloseLibrary(a6)
	movea.l	(a3),a1
	jsr	_LVOCloseLibrary(a6)

	suba.w	#50,a3
	movea.l	a3,a1
	jmp	_LVORemove(a6)
myClose:
	subq.w	#1,32(a6)
	bne.s	zro
	Bset.b	#3,14(a6)
	bne.s	exp
zro	moveq	#0,d0
	rts

myExpunge:
	Bset.b	#3,14(a6)
	move.w	32(a6),d1
	bne.s	zro
exp	move.l	a3,-(sp)
	XREF	@XEmulatorExpu
	move.l	a6,-(sp)
	jsr	@XEmulatorExpu
	movea.l	(sp)+,a6
	bsr.s	abe
	move.l	34(a3),d0
	movea.l	a3,a6
	movea.l	(sp)+,a3
	rts

	SECTION	LibData,DATA

LibFuncTable:
	XREF	@XEmulatorPreferences
	dc.w	$4EF9
	dc.l	@XEmulatorPreferences
	XREF	@XEmulatorInfo
	dc.w	$4EF9
	dc.l	@XEmulatorInfo
	XREF	@XEmulatorMacroKeyFilter
	dc.w	$4EF9
	dc.l	@XEmulatorMacroKeyFilter
	XREF	@XEmulatorGetFreeMacroKeys
	dc.w	$4EF9
	dc.l	@XEmulatorGetFreeMacroKeys
	XREF	@XEmulatorResetCharset
	dc.w	$4EF9
	dc.l	@XEmulatorResetCharset
	XREF	@XEmulatorResetTextStyles
	dc.w	$4EF9
	dc.l	@XEmulatorResetTextStyles
	XREF	@XEmulatorResetConsole
	dc.w	$4EF9
	dc.l	@XEmulatorResetConsole
	XREF	@XEmulatorClearConsole
	dc.w	$4EF9
	dc.l	@XEmulatorClearConsole
	XREF	@XEmulatorOptions
	dc.w	$4EF9
	dc.l	@XEmulatorOptions
	XREF	@XEmulatorUserMon
	dc.w	$4EF9
	dc.l	@XEmulatorUserMon
	XREF	@XEmulatorHostMon
	dc.w	$4EF9
	dc.l	@XEmulatorHostMon
	XREF	@XEmulatorSignal
	dc.w	$4EF9
	dc.l	@XEmulatorSignal
	XREF	@XEmulatorWrite
	dc.w	$4EF9
	dc.l	@XEmulatorWrite
	XREF	@XEmulatorCleanup
	dc.w	$4EF9
	dc.l	@XEmulatorCleanup
	XREF	@XEmulatorCloseConsole
	dc.w	$4EF9
	dc.l	@XEmulatorCloseConsole
	XREF	@XEmulatorOpenConsole
	dc.w	$4EF9
	dc.l	@XEmulatorOpenConsole
	XREF	@XEmulatorSetup
	dc.w	$4EF9
	dc.l	@XEmulatorSetup
	dc.w	$4EF9
	dc.l	return0
	dc.w	$4EF9
	dc.l	myExpunge
	dc.w	$4EF9
	dc.l	myClose
	dc.w	$4EF9
	dc.l	myOpen
_LibBase:
	dc.l	0,0
	dc.b	9,0
	dc.l	Lib_Name
	dc.b	6,0
	dc.w	negsize,54,VERSION,REVISION
	dc.l	Lib_Id,0
	dc.w	0
SegList	dc.l	0
_SysBase	dc.l	0
_DOSBase	dc.l	0
_IntuitionBase	dc.l	0
_GfxBase	dc.l	0

DOSName		dc.b	'dos.library',0
IntuitionName	dc.b	'intuition.library',0
GfxName		dc.b	'graphics.library',0

Lib_Name	dc.b	'xemascii.library',0
Lib_Id		dc.b	'External ASCII v4.1  (Thursday 30-Jul-92 22:17:45)',13,10,0

	END
