** questo programma serve a testare GetArcNames()

	INCDIR	"include:"
	INCLUDE	"exec/types.i"
	INCLUDE	"exec/strings.i"

	INCLUDE	"exec/exec_lib.i"
	INCLUDE	"dos/dos_lib.i"

	INCLUDE	"dos/dosextens.i"
	INCLUDE	"dos/datetime.i"

	INCLUDE	"arc.i"
	INCLUDE	"arc_lib.i"
	INCLUDE	"lha_lib.i"
	INCLUDE	"lzx_lib.i"
	INCLUDE	"zip_lib.i"
	INCLUDE	"opts.i"

NULL	EQU	0

**********************************************************************

	STRUCTURE STATIC_DATA,0
	APTR	sd_dosbase
	APTR	sd_exebase
	APTR	sd_lhabase

	ALIGNLONG
	LABEL	sd_SIZE

DOSBASE	MACRO
	movea.l	(a5),a6				; = sd_dosbase(a5),
	ENDM
EXEBASE	MACRO
	movea.l	sd_exebase(a5),a6
	ENDM
LHABASE	MACRO
	movea.l	sd_lhabase(a5),a6
	ENDM

**********************************************************************
**  CLI ONLY EASYSTART  **********************************************
**********************************************************************

easysta	movea.l	4.w,a6
	suba.l	a1,a1
	jsr	_LVOFindTask(a6)
	movea.l	d0,a2
	tst.l	pr_CLI(a2)
	bne.s	easycli
	lea	pr_MsgPort(a2),a0
	jsr	_LVOWaitPort(a6)
	lea	pr_MsgPort(a2),a0
	jsr	_LVOGetMsg(a6)
	movea.l	d0,a1
	jmp	_LVOReplyMsg(a6)

****************************************
**  OPEN DOS AND ALLOCATE STATIC DATA

easyold	moveq	#ERROR_INVALID_RESIDENT_LIBRARY,d0
	move.l	d0,pr_Result2(a2)
	rts

easycli	lea	dosname(pc),a1
	moveq	#37,d0				; kick 2.0+
	jsr	_LVOOpenLibrary(a6)
	move.l	d0,d2
	beq.s	easyold

	moveq	#NULL,d1
	moveq	#(sd_SIZE/BYTESPERLONG)-1,d0
easystk	move.l	d1,-(sp)
	dbf	d0,easystk
	movem.l	d2/a6,(sp)			; sd_dosbase(a5) sd_exebase(a5)
	movea.l	sp,a5

	lea	libname(pc),a1
	moveq	#ARCVERS,d0			; lha.library
	jsr	_LVOOpenLibrary(a6)
	moveq	#RETURN_FAIL,d2
	move.l	d0,sd_lhabase(a5)
	beq.s	easyend
	movea.l	d0,a6
	bsr.s	main
	EXEBASE
	movea.l	sd_lhabase(a5),a1
	jsr	_LVOCloseLibrary(a6)
	move.l	d0,d2

****************************************
**  CLOSE DOS AND FREE STATIC DATA

easyend	movea.l	a6,a1
	movea.l	sd_exebase(a5),a6
	jsr	_LVOCloseLibrary(a6)
	adda.l	#sd_SIZE,sp
	move.l	d2,d0
	rts

**********************************************************************
**  MAIN PROGRAM  ****************************************************
**********************************************************************
**
** INPUT:   a6=lhabase
** OUTPUT:  d0=result
** SCRATCH: d0-d2/d7/a0-a1/a6
**

main	moveq	#GAN_COMPBITS,d4
	moveq	#(BITSPERBYTE*BYTESPERLONG)-1,d3
loop	move.l	d4,d0
	jsr	_LVOGetArcNames(a6)
	tst.l	d0
	beq.s	loopend
	DOSBASE
	lea	fmt(pc),a0
	move.l	d0,-(sp)
	move.l	a0,d1
	move.l	d4,-(sp)
	move.l	sp,d2
	jsr	_LVOPrintf(a6)
	addq.l	#BYTESPERLONG*2,sp
loopend	LHABASE
	addq.l	#1,d4
	dbf	d3,loop

	moveq	#RETURN_OK,d0
	rts

**********************************************************************
**  STRING CONSTANTS  ************************************************
**********************************************************************

	DC.B	"$","VER: "
	DC.B	"GetArcNames() 37.",(ARCVERS+"0"),"0 (29.08.97) "
	DC.B	"by Nik Soggia",EOS

dosname	DOSNAME
libname	;	dummy
	IFEQ	ARCTYPE-1
	LHANAME
	ENDC
	IFEQ	ARCTYPE-2
	LZXNAME
	ENDC
	IFEQ	ARCTYPE-3
	ZIPNAME
	ENDC

fmt	DC.B	"%02ld: %s",LF,EOS

	EVEN
	END
