home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / oberon / system / amigaasl.mod (.txt) < prev    next >
Oberon Text  |  1977-12-31  |  3KB  |  106 lines

  1. Syntax10.Scn.Fnt
  2. Syntax10b.Scn.Fnt
  3. MODULE AmigaAsl;
  4. IMPORT
  5.  SYSTEM,A:=AmigaBase,E:=AmigaExec,U:=AmigaUtility;
  6. CONST
  7.  aslName*="asl.library";
  8.  aslScreenModeRequest*=2;
  9.  aslTB*=U.user+80000H;
  10.  tsmWindow*=aslTB+2;
  11.  tsmScreen*=aslTB+40;
  12.  tsmPubScreenName*=aslTB+41;
  13.  tsmPrivateIDCMP*=aslTB+42;
  14.  tsmIntuiMsgFunc*=aslTB+70;
  15.  tsmSleepWindow*=aslTB+43;
  16.  tsmUserData*=aslTB+52;
  17.  tsmTextAttr*=aslTB+51;
  18.  tsmLocale*=aslTB+50;
  19.  tsmTitleText*=aslTB+1;
  20.  tsmPositiveText*=aslTB+18;
  21.  tsmNegativeText*=aslTB+19;
  22.  tsmInitialLeftEdge*=aslTB+3;
  23.  tsmInitialTopEdge*=aslTB+4;
  24.  tsmInitialWidth*=aslTB+5;
  25.  tsmInitialHeight*=aslTB+6;
  26.  tsmInitialDisplayID*=aslTB+100;
  27.  tsmInitialDisplayWidth*=aslTB+101;
  28.  tsmInitialDisplayHeight*=aslTB+102;
  29.  tsmInitialDisplayDepth*=aslTB+103;
  30.  tsmInitialOverscanType*=aslTB+104;
  31.  tsmInitialAutoScroll*=aslTB+105;
  32.  tsmInitialInfoOpened*=aslTB+106;
  33.  tsmInitialInfoLeftEdge*=aslTB+107;
  34.  tsmInitialInfoTopEdge*=aslTB+108;
  35.  tsmDoWidth*=aslTB+109;
  36.  tsmDoHeight*=aslTB+110;
  37.  tsmDoDepth*=aslTB+111;
  38.  tsmDoOverscanType*=aslTB+112;
  39.  tsmDoAutoScroll*=aslTB+113;
  40.  tsmPropertyFlags*=aslTB+114;
  41.  tsmPropertyMask*=aslTB+115;
  42.  tsmMinWidth*=aslTB+116;
  43.  tsmMaxWidth*=aslTB+117;
  44.  tsmMinHeight*=aslTB+118;
  45.  tsmMaxHeight*=aslTB+119;
  46.  tsmMinDepth*=aslTB+120;
  47.  tsmMaxDepth*=aslTB+121;
  48.  tsmFilterFunc*=aslTB+122;
  49.  tsmCustomSMList*=aslTB+123;
  50.  ScreenModeRequester*=RECORD
  51.   displayID*:LONGINT;
  52.   displayWidth*:LONGINT;
  53.   displayHeight*:LONGINT;
  54.   displayDepth*:INTEGER;
  55.   overscanType*:INTEGER;
  56.   autoScroll*:INTEGER; (* BOOL *)
  57.   bitMapWidth*:LONGINT;
  58.   bitMapHeight*:LONGINT;
  59.   leftEdge*:INTEGER;
  60.   topEdge*:INTEGER;
  61.   width*:INTEGER;
  62.   height*:INTEGER;
  63.   infoOpened*:INTEGER; (* BOOL *)
  64.   infoLeftEdge*:INTEGER;
  65.   infoTopEdge*:INTEGER;
  66.   infoWidth*:INTEGER;
  67.   infoHeight*:INTEGER;
  68.   userData*:LONGINT;
  69.  END;
  70.  aslBase:LONGINT;
  71.  aslVersion-:INTEGER;
  72. PROCEDURE AllocAslRequest*(type:LONGINT; tags:ARRAY OF U.TagItem):LONGINT;
  73.  r:A.Regs;
  74. BEGIN
  75.  r.d[0]:=type;
  76.  r.a[0]:=SYSTEM.ADR(tags);
  77.  A.LibCall(aslBase,-48,r);
  78.  RETURN r.d[0];
  79. END AllocAslRequest;
  80. PROCEDURE AslRequest*(request:LONGINT; tags:ARRAY OF U.TagItem):BOOLEAN;
  81.  r:A.Regs;
  82. BEGIN
  83.  r.a[0]:=request;
  84.  r.a[1]:=SYSTEM.ADR(tags);
  85.  A.LibCall(aslBase,-60,r);
  86.  RETURN r.d[0]#0;
  87. END AslRequest;
  88. PROCEDURE FreeAslRequest*(request:LONGINT);
  89.  r:A.Regs;
  90. BEGIN
  91.  r.a[0]:=request;
  92.  A.LibCall(aslBase,-54,r);
  93. END FreeAslRequest;
  94. PROCEDURE Init;
  95.     LibraryPtr=POINTER TO E.Library;
  96.     lib:LibraryPtr;
  97. BEGIN
  98.     aslBase:=E.OpenLibrary(aslName,37);
  99.     IF aslBase=0 THEN HALT(99) END;
  100.     lib:=SYSTEM.VAL(LibraryPtr,aslBase);
  101.     aslVersion:=lib.version;
  102. END Init;
  103. BEGIN
  104.     Init;
  105. END AmigaAsl.
  106.