home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / HISOFTPASCAL2,0-3.DMS / in.adf / Units / Icon.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-05-20  |  2.9 KB  |  191 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. function GetDefDiskObject (type_: longint): pDiskObject;
  40. function PutDefDiskObject (diskObject: pDiskObject): boolean;
  41. function GetDiskObjectNew (name: STRPTR): pDiskObject;
  42. function DeleteDiskObject (name: STRPTR): boolean;
  43.  
  44.  
  45. IMPLEMENTATION
  46. procedure FreeFreeList; xassembler;
  47. asm
  48.     move.l    a6,-(sp)
  49.     move.l    8(sp),a0
  50.     move.l    IconBase,a6
  51.     jsr        -$36(a6)
  52.     move.l    (sp)+,a6
  53. end;
  54.  
  55. function AddFreeList; xassembler;
  56. asm
  57.     movem.l    a2/a6,-(sp)
  58.     lea        $C(sp),a6
  59.     move.l    (a6)+,a2
  60.     move.l    (a6)+,a1
  61.     move.l    (a6)+,a0
  62.     move.l    IconBase,a6
  63.     jsr        -$48(a6)
  64.     tst.l    d0
  65.     sne        d0
  66.     neg.b    d0
  67.     move.b    d0,$18(sp)
  68.     movem.l    (sp)+,a2/a6
  69. end;
  70.  
  71. function GetDiskObject; xassembler;
  72. asm
  73.     move.l    a6,-(sp)
  74.     move.l    8(sp),a0
  75.     move.l    IconBase,a6
  76.     jsr        -$4E(a6)
  77.     move.l    d0,$C(sp)
  78.     move.l    (sp)+,a6
  79. end;
  80.  
  81. function PutDiskObject; xassembler;
  82. asm
  83.     move.l    a6,-(sp)
  84.     lea        8(sp),a6
  85.     move.l    (a6)+,a1
  86.     move.l    (a6)+,a0
  87.     move.l    IconBase,a6
  88.     jsr        -$54(a6)
  89.     tst.l    d0
  90.     sne        d0
  91.     neg.b    d0
  92.     move.b    d0,$10(sp)
  93.     move.l    (sp)+,a6
  94. end;
  95.  
  96. procedure FreeDiskObject; xassembler;
  97. asm
  98.     move.l    a6,-(sp)
  99.     move.l    8(sp),a0
  100.     move.l    IconBase,a6
  101.     jsr        -$5A(a6)
  102.     move.l    (sp)+,a6
  103. end;
  104.  
  105. function FindToolType; xassembler;
  106. asm
  107.     move.l    a6,-(sp)
  108.     lea        8(sp),a6
  109.     move.l    (a6)+,a1
  110.     move.l    (a6)+,a0
  111.     move.l    IconBase,a6
  112.     jsr        -$60(a6)
  113.     move.l    d0,$10(sp)
  114.     move.l    (sp)+,a6
  115. end;
  116.  
  117. function MatchToolValue; xassembler;
  118. asm
  119.     move.l    a6,-(sp)
  120.     lea        8(sp),a6
  121.     move.l    (a6)+,a1
  122.     move.l    (a6)+,a0
  123.     move.l    IconBase,a6
  124.     jsr        -$66(a6)
  125.     tst.l    d0
  126.     sne        d0
  127.     neg.b    d0
  128.     move.b    d0,$10(sp)
  129.     move.l    (sp)+,a6
  130. end;
  131.  
  132. function BumpRevision; xassembler;
  133. asm
  134.     move.l    a6,-(sp)
  135.     lea        8(sp),a6
  136.     move.l    (a6)+,a1
  137.     move.l    (a6)+,a0
  138.     move.l    IconBase,a6
  139.     jsr        -$6C(a6)
  140.     move.l    d0,$10(sp)
  141.     move.l    (sp)+,a6
  142. end;
  143.  
  144. function GetDefDiskObject; xassembler;
  145. asm
  146.     move.l    a6,-(sp)
  147.     move.l    8(sp),d0
  148.     move.l    IconBase,a6
  149.     jsr        -$78(a6)
  150.     move.l    d0,$C(sp)
  151.     move.l    (sp)+,a6
  152. end;
  153.  
  154. function PutDefDiskObject; xassembler;
  155. asm
  156.     move.l    a6,-(sp)
  157.     move.l    8(sp),a0
  158.     move.l    IconBase,a6
  159.     jsr        -$7E(a6)
  160.     tst.l    d0
  161.     sne        d0
  162.     neg.b    d0
  163.     move.b    d0,$C(sp)
  164.     move.l    (sp)+,a6
  165. end;
  166.  
  167. function GetDiskObjectNew; xassembler;
  168. asm
  169.     move.l    a6,-(sp)
  170.     move.l    8(sp),a0
  171.     move.l    IconBase,a6
  172.     jsr        -$84(a6)
  173.     move.l    d0,$C(sp)
  174.     move.l    (sp)+,a6
  175. end;
  176.  
  177. function DeleteDiskObject; xassembler;
  178. asm
  179.     move.l    a6,-(sp)
  180.     move.l    8(sp),a0
  181.     move.l    IconBase,a6
  182.     jsr        -$8A(a6)
  183.     tst.l    d0
  184.     sne        d0
  185.     neg.b    d0
  186.     move.b    d0,$C(sp)
  187.     move.l    (sp)+,a6
  188. end;
  189.  
  190. end.
  191.