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

  1. unit ASL;
  2.  
  3. INTERFACE
  4. uses Exec, Graphics, Utility, Workbench;
  5.  
  6.  
  7. type
  8.     pFileRequester = ^tFileRequester;
  9.     tFileRequester = record
  10.         rf_Reserved1: pointer;
  11.         rf_File: pshortint;
  12.         rf_Dir: pshortint;
  13.         rf_Reserved2: long;
  14.         rf_Reserved3: byte;
  15.         rf_Reserved4: byte;
  16.         rf_Reserved5: pointer;
  17.         rf_LeftEdge: integer;
  18.         rf_TopEdge: integer;
  19.         rf_Width: integer;
  20.         rf_Height: integer;
  21.         rf_Reserved6: integer;
  22.         rf_NumArgs: longint;
  23.         rf_ArgList: pWBArg;
  24.         rf_UserData: pointer;
  25.         rf_Reserved7: pointer;
  26.         rf_Reserved8: pointer;
  27.         rf_Pat: pshortint;
  28.         end;
  29.  
  30.     pFontRequester = ^tFontRequester;
  31.     tFontRequester = record
  32.         fo_Reserved1: array [0..1] of pointer;
  33.         fo_Attr: tTextAttr;
  34.         fo_FrontPen: byte;
  35.         fo_BackPen: byte;
  36.         fo_DrawMode: byte;
  37.         fo_UserData: pointer;
  38.         end;
  39.  
  40.  
  41.  
  42. var
  43.     ASLBase: pLibrary;
  44.  
  45.  
  46. const
  47.     ASL_Dir = $80080009;
  48.     ASL_FontName = $8008000A;
  49.     ASL_MinHeight = $80080010;
  50.     ASL_MaxHeight = $80080011;
  51.     FILB_PATGAD = 0;
  52.     ASL_HookFunc = $80080007;
  53.     ASL_FontFlags = $8008000D;
  54.     FILF_PATGAD = 1;
  55.     ASL_CancelText = $80080013;
  56.     ASL_ModeList = $80080015;
  57.     FILB_MULTISELECT = 3;
  58.     ASL_Height = $80080006;
  59.     ASL_FontHeight = $8008000B;
  60.     FILF_MULTISELECT = 8;
  61.     FILB_DOWILDFUNC = 7;
  62.     ASL_FrontPen = $8008000E;
  63.     ASL_Width = $80080005;
  64.     FILF_DOWILDFUNC = $80;
  65.     FONB_DOWILDFUNC = 7;
  66.     FONB_FIXEDWIDTH = 4;
  67.     FONF_DOWILDFUNC = $80;
  68.     FONF_FIXEDWIDTH = $10;
  69.     FONB_BACKCOLOR = 1;
  70.     ASL_FileRequest = 0;
  71.     ASL_Dummy = $80080000;
  72.     FONF_BACKCOLOR = 2;
  73.     ASL_Window = $80080002;
  74.     ASL_Pattern = $8008000A;
  75.     LIBRARIES_ASL_H = 1;
  76.     FILB_DOMSGFUNC = 6;
  77.     FIL1B_NOFILES = 0;
  78.     FILF_DOMSGFUNC = $40;
  79.     FIL1F_NOFILES = 1;
  80.     FONB_FRONTCOLOR = 0;
  81.     ASL_ExtFlags1 = $80080016;
  82.     FONB_DOMSGFUNC = 6;
  83.     FONF_FRONTCOLOR = 1;
  84.     ASL_FontRequest = 1;
  85.     ASL_FontStyles = $8008000C;
  86.     FONF_DOMSGFUNC = $40;
  87.     FONB_STYLES = 2;
  88.     AslName = 'asl.library';
  89.     FONF_STYLES = 4;
  90.     FILB_NEWIDCMP = 4;
  91.     ASL_BackPen = $8008000F;
  92.     FILF_NEWIDCMP = $10;
  93.     FONB_DRAWMODE = 3;
  94.     FILB_SAVE = 5;
  95.     ASL_LeftEdge = $80080003;
  96.     FONB_NEWIDCMP = 5;
  97.     FONF_DRAWMODE = 8;
  98.     FILF_SAVE = $20;
  99.     FONF_NEWIDCMP = $20;
  100.     ASL_OKText = $80080012;
  101.     FIL1B_MATCHDIRS = 1;
  102.     ASL_TopEdge = $80080004;
  103.     FIL1F_MATCHDIRS = 2;
  104.     ASL_Hail = $80080001;
  105.     ASL_File = $80080008;
  106.     ASL_FuncFlags = $80080014;
  107.  
  108.  
  109. function AllocFileRequest: pFileRequester;
  110. procedure FreeFileRequest (fileReq: pFileRequester);
  111. function RequestFile (fileReq: pFileRequester): boolean;
  112. function AllocAslRequest
  113.         (reqType: long;
  114.         tagList: pTagItem): pointer;
  115.  
  116. procedure FreeAslRequest (requester: pointer);
  117. function AslRequest
  118.         (requester: pointer;
  119.         tagList: pTagItem): boolean;
  120.  
  121.  
  122.  
  123. IMPLEMENTATION
  124. function AllocFileRequest; xassembler;
  125. asm
  126.     move.l    a6,-(sp)
  127.     move.l    AslBase,a6
  128.     jsr        -$1E(a6)
  129.     move.l    d0,8(sp)
  130.     move.l    (sp)+,a6
  131. end;
  132.  
  133. procedure FreeFileRequest; xassembler;
  134. asm
  135.     move.l    a6,-(sp)
  136.     move.l    8(sp),a0
  137.     move.l    AslBase,a6
  138.     jsr        -$24(a6)
  139.     move.l    (sp)+,a6
  140. end;
  141.  
  142. function RequestFile; xassembler;
  143. asm
  144.     move.l    a6,-(sp)
  145.     move.l    8(sp),a0
  146.     move.l    AslBase,a6
  147.     jsr        -$2A(a6)
  148.     tst.l    d0
  149.     sne        d0
  150.     neg.b    d0
  151.     move.b    d0,$C(sp)
  152.     move.l    (sp)+,a6
  153. end;
  154.  
  155. function AllocAslRequest; xassembler;
  156. asm
  157.     move.l    a6,-(sp)
  158.     lea        8(sp),a6
  159.     move.l    (a6)+,a0
  160.     move.l    (a6)+,d0
  161.     move.l    AslBase,a6
  162.     jsr        -$30(a6)
  163.     move.l    d0,$10(sp)
  164.     move.l    (sp)+,a6
  165. end;
  166.  
  167. procedure FreeAslRequest; xassembler;
  168. asm
  169.     move.l    a6,-(sp)
  170.     move.l    8(sp),a0
  171.     move.l    AslBase,a6
  172.     jsr        -$36(a6)
  173.     move.l    (sp)+,a6
  174. end;
  175.  
  176. function AslRequest; xassembler;
  177. asm
  178.     move.l    a6,-(sp)
  179.     lea        8(sp),a6
  180.     move.l    (a6)+,a1
  181.     move.l    (a6)+,a0
  182.     move.l    AslBase,a6
  183.     jsr        -$3C(a6)
  184.     tst.l    d0
  185.     sne        d0
  186.     neg.b    d0
  187.     move.b    d0,$10(sp)
  188.     move.l    (sp)+,a6
  189. end;
  190.  
  191. end.
  192.