Syntax10.Scn.Fnt Syntax10b.Scn.Fnt MODULE AmigaAsl; IMPORT SYSTEM,A:=AmigaBase,E:=AmigaExec,U:=AmigaUtility; CONST aslName*="asl.library"; aslScreenModeRequest*=2; aslTB*=U.user+80000H; tsmWindow*=aslTB+2; tsmScreen*=aslTB+40; tsmPubScreenName*=aslTB+41; tsmPrivateIDCMP*=aslTB+42; tsmIntuiMsgFunc*=aslTB+70; tsmSleepWindow*=aslTB+43; tsmUserData*=aslTB+52; tsmTextAttr*=aslTB+51; tsmLocale*=aslTB+50; tsmTitleText*=aslTB+1; tsmPositiveText*=aslTB+18; tsmNegativeText*=aslTB+19; tsmInitialLeftEdge*=aslTB+3; tsmInitialTopEdge*=aslTB+4; tsmInitialWidth*=aslTB+5; tsmInitialHeight*=aslTB+6; tsmInitialDisplayID*=aslTB+100; tsmInitialDisplayWidth*=aslTB+101; tsmInitialDisplayHeight*=aslTB+102; tsmInitialDisplayDepth*=aslTB+103; tsmInitialOverscanType*=aslTB+104; tsmInitialAutoScroll*=aslTB+105; tsmInitialInfoOpened*=aslTB+106; tsmInitialInfoLeftEdge*=aslTB+107; tsmInitialInfoTopEdge*=aslTB+108; tsmDoWidth*=aslTB+109; tsmDoHeight*=aslTB+110; tsmDoDepth*=aslTB+111; tsmDoOverscanType*=aslTB+112; tsmDoAutoScroll*=aslTB+113; tsmPropertyFlags*=aslTB+114; tsmPropertyMask*=aslTB+115; tsmMinWidth*=aslTB+116; tsmMaxWidth*=aslTB+117; tsmMinHeight*=aslTB+118; tsmMaxHeight*=aslTB+119; tsmMinDepth*=aslTB+120; tsmMaxDepth*=aslTB+121; tsmFilterFunc*=aslTB+122; tsmCustomSMList*=aslTB+123; ScreenModeRequester*=RECORD displayID*:LONGINT; displayWidth*:LONGINT; displayHeight*:LONGINT; displayDepth*:INTEGER; overscanType*:INTEGER; autoScroll*:INTEGER; (* BOOL *) bitMapWidth*:LONGINT; bitMapHeight*:LONGINT; leftEdge*:INTEGER; topEdge*:INTEGER; width*:INTEGER; height*:INTEGER; infoOpened*:INTEGER; (* BOOL *) infoLeftEdge*:INTEGER; infoTopEdge*:INTEGER; infoWidth*:INTEGER; infoHeight*:INTEGER; userData*:LONGINT; END; aslBase:LONGINT; aslVersion-:INTEGER; PROCEDURE AllocAslRequest*(type:LONGINT; tags:ARRAY OF U.TagItem):LONGINT; r:A.Regs; BEGIN r.d[0]:=type; r.a[0]:=SYSTEM.ADR(tags); A.LibCall(aslBase,-48,r); RETURN r.d[0]; END AllocAslRequest; PROCEDURE AslRequest*(request:LONGINT; tags:ARRAY OF U.TagItem):BOOLEAN; r:A.Regs; BEGIN r.a[0]:=request; r.a[1]:=SYSTEM.ADR(tags); A.LibCall(aslBase,-60,r); RETURN r.d[0]#0; END AslRequest; PROCEDURE FreeAslRequest*(request:LONGINT); r:A.Regs; BEGIN r.a[0]:=request; A.LibCall(aslBase,-54,r); END FreeAslRequest; PROCEDURE Init; LibraryPtr=POINTER TO E.Library; lib:LibraryPtr; BEGIN aslBase:=E.OpenLibrary(aslName,37); IF aslBase=0 THEN HALT(99) END; lib:=SYSTEM.VAL(LibraryPtr,aslBase); aslVersion:=lib.version; END Init; BEGIN Init; END AmigaAsl.