home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / HISOFTPASCAL2,0-2.DMS / in.adf / Units / Icon.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-05-20  |  2.1 KB  |  141 lines

  1. unit Icon;
  2.  
  3. INTERFACE
  4. uses Exec, Workbench;
  5.  
  6.  
  7. var
  8.     IconBase: pLibrary;
  9.  
  10.  
  11. const
  12.     ICONNAME = 'icon.library';
  13.  
  14.  
  15. procedure FreeFreeList (freelist: pFreeList);
  16. function AddFreeList
  17.         (freelist: pFreeList;
  18.         mem: pointer;
  19.         size: long): boolean;
  20.  
  21. function GetDiskObject (name: STRPTR): pDiskObject;
  22. function PutDiskObject
  23.         (name: STRPTR;
  24.         diskobj: pDiskObject): boolean;
  25.  
  26. procedure FreeDiskObject (diskobj: pDiskObject);
  27. function FindToolType
  28.         (toolTypeArray: ppbyte;
  29.         typeName: STRPTR): STRPTR;
  30.  
  31. function MatchToolValue
  32.         (typeString: STRPTR;
  33.         value: STRPTR): boolean;
  34.  
  35. function BumpRevision
  36.         (newname: STRPTR;
  37.         oldname: STRPTR): STRPTR;
  38.  
  39.  
  40.  
  41. IMPLEMENTATION
  42. procedure FreeFreeList; xassembler;
  43. asm
  44.     move.l    a6,-(sp)
  45.     move.l    8(sp),a0
  46.     move.l    IconBase,a6
  47.     jsr        -$36(a6)
  48.     move.l    (sp)+,a6
  49. end;
  50.  
  51. function AddFreeList; xassembler;
  52. asm
  53.     movem.l    a2/a6,-(sp)
  54.     lea        $C(sp),a6
  55.     move.l    (a6)+,a2
  56.     move.l    (a6)+,a1
  57.     move.l    (a6)+,a0
  58.     move.l    IconBase,a6
  59.     jsr        -$48(a6)
  60.     tst.l    d0
  61.     sne        d0
  62.     neg.b    d0
  63.     move.b    d0,$18(sp)
  64.     movem.l    (sp)+,a2/a6
  65. end;
  66.  
  67. function GetDiskObject; xassembler;
  68. asm
  69.     move.l    a6,-(sp)
  70.     move.l    8(sp),a0
  71.     move.l    IconBase,a6
  72.     jsr        -$4E(a6)
  73.     move.l    d0,$C(sp)
  74.     move.l    (sp)+,a6
  75. end;
  76.  
  77. function PutDiskObject; xassembler;
  78. asm
  79.     move.l    a6,-(sp)
  80.     lea        8(sp),a6
  81.     move.l    (a6)+,a1
  82.     move.l    (a6)+,a0
  83.     move.l    IconBase,a6
  84.     jsr        -$54(a6)
  85.     tst.l    d0
  86.     sne        d0
  87.     neg.b    d0
  88.     move.b    d0,$10(sp)
  89.     move.l    (sp)+,a6
  90. end;
  91.  
  92. procedure FreeDiskObject; xassembler;
  93. asm
  94.     move.l    a6,-(sp)
  95.     move.l    8(sp),a0
  96.     move.l    IconBase,a6
  97.     jsr        -$5A(a6)
  98.     move.l    (sp)+,a6
  99. end;
  100.  
  101. function FindToolType; xassembler;
  102. asm
  103.     move.l    a6,-(sp)
  104.     lea        8(sp),a6
  105.     move.l    (a6)+,a1
  106.     move.l    (a6)+,a0
  107.     move.l    IconBase,a6
  108.     jsr        -$60(a6)
  109.     move.l    d0,$10(sp)
  110.     move.l    (sp)+,a6
  111. end;
  112.  
  113. function MatchToolValue; xassembler;
  114. asm
  115.     move.l    a6,-(sp)
  116.     lea        8(sp),a6
  117.     move.l    (a6)+,a1
  118.     move.l    (a6)+,a0
  119.     move.l    IconBase,a6
  120.     jsr        -$66(a6)
  121.     tst.l    d0
  122.     sne        d0
  123.     neg.b    d0
  124.     move.b    d0,$10(sp)
  125.     move.l    (sp)+,a6
  126. end;
  127.  
  128. function BumpRevision; xassembler;
  129. asm
  130.     move.l    a6,-(sp)
  131.     lea        8(sp),a6
  132.     move.l    (a6)+,a1
  133.     move.l    (a6)+,a0
  134.     move.l    IconBase,a6
  135.     jsr        -$6C(a6)
  136.     move.l    d0,$10(sp)
  137.     move.l    (sp)+,a6
  138. end;
  139.  
  140. end.
  141.