
; 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        ; ein Register ?
   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        ; ein Register ?
   move.l   (SP)+,\2
  ELSE
   movem.l  (SP)+,\2
  ENDC
   rts

   ENDC

   ENDM





SATZ  MACRO Satz1,Anzahl1,Satz2,Anzahl2...
  IFEQ   \2-1        ; ein Register ?
   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

