
; Icon-Interface

	INCLUDE	"lvo/misc.i"

	XREF	_IconBase





CREATE MACRO Name,Registermaske,Registeranzahl,Satz1,Anzahl1,Satz2,Anzahl2...

	IFD	\1
	XDEF	_\1

_\1
	IFEQ	 \3-1
	move.l	\2,-(SP)
	ELSE
	movem.l	\2,-(SP)
	ENDC

TIEFE	SET	4+4*\3
	IFNC	 '\4',''
	SATZ	\4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i,\j
	ENDC

	move.l	_IconBase,a6
	jsr		_LVO\1(a6)
	IFEQ	 \3-1
	move.l	(SP)+,\2
	ELSE
	movem.l	(SP)+,\2
	ENDC
	rts

	ENDC

	ENDM





SATZ	MACRO	Satz1,Anzahl1,Satz2,Anzahl2...
	IFEQ	 \2-1
	move.l	TIEFE(SP),\1
	ELSE
	movem.l	TIEFE(SP),\1
	ENDC
TIEFE	SET	TIEFE+4*\2
	IFNC	 '\3',''
	SATZ	\3,\4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i
	ENDC
	ENDM





; GetWBObject(name)(A0)
	CREATE	GetWBObject,a6,1,a0,1

; PutWBObject(name,object)(A0/A1)
	CREATE	PutWBObject,a6,1,a0-a1,2

; GetIcon(name,icon,freelist)(A0/A1/A2)
	CREATE	GetIcon,a2/a6,2,a0-a2,3

; PutIcon(name,icon)(A0/A1)
	CREATE	PutIcon,a6,1,a0-a1,2

; FreeFreeList(freelist)(A0)
	CREATE	FreeFreeList,a6,1,a0,1

; FreeWBObject(WBObject)(A0)
	CREATE	FreeWBObject,a6,1,a0,1

; AllocWBObject()()
	CREATE	AllocWBObject,a6,1

; AddFreeList(freelist,mem,size)(A0/A1/A2)
	CREATE	AddFreeList,a2/a6,2,a0-a2,3

; GetDiskObject(name)(A0)
	CREATE	GetDiskObject,a6,1,a0,1

; PutDiskObject(name,diskobj)(A0,A1)
	CREATE	PutDiskObject,a6,1,a0-a1,2

; FreeDiskObject(diskobj)(A0)
	CREATE	FreeDiskObject,a6,1,a0,1

; FindToolType(toolTypeArray,typeName)(A0/A1)
	CREATE	FindToolType,a6,1,a0-a1,2

; MatchToolValue(typeString,value)(A0/A1)
	CREATE	MatchToolValue,a6,1,a0-a1,2

; BumpRevision(newname,oldname)(A0/A1)
	CREATE	BumpRevision,a6,1,a0-a1,2





; Offsets

	IFD	OFFSETS

	XDEF	_LVOGetWBObject
	XDEF	_LVOPutWBObject
	XDEF	_LVOGetIcon
	XDEF	_LVOPutIcon
	XDEF	_LVOFreeFreeList
	XDEF	_LVOFreeWBObject
	XDEF	_LVOAllocWBObject
	XDEF	_LVOAddFreeList
	XDEF	_LVOGetDiskObject
	XDEF	_LVOPutDiskObject
	XDEF	_LVOFreeDiskObject
	XDEF	_LVOFindToolType
	XDEF	_LVOMatchToolValue
	XDEF	_LVOBumpRevision

	ENDC





	END

