home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / DVD!OMA2.DMS / in.adf / Examples / Library / Icon / Icon.asm next >
Encoding:
Assembly Source File  |  1994-10-13  |  1.9 KB  |  135 lines

  1.  
  2. ; Icon-Interface
  3.  
  4.     INCLUDE    "lvo/misc.i"
  5.  
  6.     XREF    _IconBase
  7.  
  8.  
  9.  
  10.  
  11.  
  12. CREATE MACRO Name,Registermaske,Registeranzahl,Satz1,Anzahl1,Satz2,Anzahl2...
  13.  
  14.     IFD    \1
  15.     XDEF    _\1
  16.  
  17. _\1
  18.     IFEQ     \3-1
  19.     move.l    \2,-(SP)
  20.     ELSE
  21.     movem.l    \2,-(SP)
  22.     ENDC
  23.  
  24. TIEFE    SET    4+4*\3
  25.     IFNC     '\4',''
  26.     SATZ    \4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i,\j
  27.     ENDC
  28.  
  29.     move.l    _IconBase,a6
  30.     jsr        _LVO\1(a6)
  31.     IFEQ     \3-1
  32.     move.l    (SP)+,\2
  33.     ELSE
  34.     movem.l    (SP)+,\2
  35.     ENDC
  36.     rts
  37.  
  38.     ENDC
  39.  
  40.     ENDM
  41.  
  42.  
  43.  
  44.  
  45.  
  46. SATZ    MACRO    Satz1,Anzahl1,Satz2,Anzahl2...
  47.     IFEQ     \2-1
  48.     move.l    TIEFE(SP),\1
  49.     ELSE
  50.     movem.l    TIEFE(SP),\1
  51.     ENDC
  52. TIEFE    SET    TIEFE+4*\2
  53.     IFNC     '\3',''
  54.     SATZ    \3,\4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i
  55.     ENDC
  56.     ENDM
  57.  
  58.  
  59.  
  60.  
  61.  
  62. ; GetWBObject(name)(A0)
  63.     CREATE    GetWBObject,a6,1,a0,1
  64.  
  65. ; PutWBObject(name,object)(A0/A1)
  66.     CREATE    PutWBObject,a6,1,a0-a1,2
  67.  
  68. ; GetIcon(name,icon,freelist)(A0/A1/A2)
  69.     CREATE    GetIcon,a2/a6,2,a0-a2,3
  70.  
  71. ; PutIcon(name,icon)(A0/A1)
  72.     CREATE    PutIcon,a6,1,a0-a1,2
  73.  
  74. ; FreeFreeList(freelist)(A0)
  75.     CREATE    FreeFreeList,a6,1,a0,1
  76.  
  77. ; FreeWBObject(WBObject)(A0)
  78.     CREATE    FreeWBObject,a6,1,a0,1
  79.  
  80. ; AllocWBObject()()
  81.     CREATE    AllocWBObject,a6,1
  82.  
  83. ; AddFreeList(freelist,mem,size)(A0/A1/A2)
  84.     CREATE    AddFreeList,a2/a6,2,a0-a2,3
  85.  
  86. ; GetDiskObject(name)(A0)
  87.     CREATE    GetDiskObject,a6,1,a0,1
  88.  
  89. ; PutDiskObject(name,diskobj)(A0,A1)
  90.     CREATE    PutDiskObject,a6,1,a0-a1,2
  91.  
  92. ; FreeDiskObject(diskobj)(A0)
  93.     CREATE    FreeDiskObject,a6,1,a0,1
  94.  
  95. ; FindToolType(toolTypeArray,typeName)(A0/A1)
  96.     CREATE    FindToolType,a6,1,a0-a1,2
  97.  
  98. ; MatchToolValue(typeString,value)(A0/A1)
  99.     CREATE    MatchToolValue,a6,1,a0-a1,2
  100.  
  101. ; BumpRevision(newname,oldname)(A0/A1)
  102.     CREATE    BumpRevision,a6,1,a0-a1,2
  103.  
  104.  
  105.  
  106.  
  107.  
  108. ; Offsets
  109.  
  110.     IFD    OFFSETS
  111.  
  112.     XDEF    _LVOGetWBObject
  113.     XDEF    _LVOPutWBObject
  114.     XDEF    _LVOGetIcon
  115.     XDEF    _LVOPutIcon
  116.     XDEF    _LVOFreeFreeList
  117.     XDEF    _LVOFreeWBObject
  118.     XDEF    _LVOAllocWBObject
  119.     XDEF    _LVOAddFreeList
  120.     XDEF    _LVOGetDiskObject
  121.     XDEF    _LVOPutDiskObject
  122.     XDEF    _LVOFreeDiskObject
  123.     XDEF    _LVOFindToolType
  124.     XDEF    _LVOMatchToolValue
  125.     XDEF    _LVOBumpRevision
  126.  
  127.     ENDC
  128.  
  129.  
  130.  
  131.  
  132.  
  133.     END
  134.  
  135.