ð£ Syntax10.Scn.FntSyntax10i.Scn.FntmSyntax10b.Scn.Fnt  A                                                                           % ' %                                 $Ê   T\ >R     1X v                Kw s s Äßß œ u v n …   N& X¡BÙá$MODULE AmigaIntuition; (* OJ 9-Jun-96 *) IMPORT SYSTEM, E:=AmigaExec, G:=AmigaGraphics, T:=AmigaTimer, IE:=AmigaInputEvent, U:=AmigaUtility; VAR intuiBase- : E.LibraryPtr; intuiVersion- : INTEGER; termEntry : E.TermEntry; dummy : LONGINT; CONST intuitionName*="intuition.library"; autoScroll*=14; windowSizing*=0; windowDrag*=1; windowDepth*=2; windowClose*=3; sizeBRight*=4; sizeBBottom*=5; refreshBits*={6,7}; smartRefresh*={}; simpleRefresh*=6; superBitMap*=7; otherRefresh*={6,7}; backDrop*=8; reportMouse*=9; gimmeZeroZero*=10; borderless*=11; activate*=12; windowActive*=13; inRequest*=14; menuState*=15; rmbTrap*=16; noCareRefresh*=17; windowRefresh*=24; wbenchWindow*=25; windowTicked*=26; nwExtended*=18; visitor*=27; zoomed*=28; hasZoom*=29; oScanText*=1; waDummy*=U.user+99; waLeft*=waDummy+001H; waTop*=waDummy+002H; waWidth*=waDummy+003H; waHeight*=waDummy+004H; waDetailPen*=waDummy+005H; waBlockPen*=waDummy+006H; waIDCMP*=waDummy+007H; waFlags*=waDummy+008H; waGadgets*=waDummy+009H; waCheckmark*=waDummy+00AH; waTitle*=waDummy+00BH; waScreenTitle*=waDummy+00CH; waCustomScreen*=waDummy+00DH; waSuperBitMap*=waDummy+00EH; waMinWidth*=waDummy+00FH; waMinHeight*=waDummy+010H; waMaxWidth*=waDummy+011H; waMaxHeight*=waDummy+012H; waInnerWidth*=waDummy+013H; waInnerHeight*=waDummy+014H; waPubScreenName*=waDummy+015H; waPubScreen*=waDummy+016H; waPubScreenFallBack*=waDummy+017H; waWindowName*=waDummy+018H; waColors*=waDummy+019H; waZoom*=waDummy+01AH; waMouseQueue*=waDummy+01BH; waBackFill*=waDummy+01CH; waRptQueue*=waDummy+01DH; waSizeGadget*=waDummy+01EH; waDragBar*=waDummy+01FH; waDepthGadget*=waDummy+020H; waCloseGadget*=waDummy+021H; waBackdrop*=waDummy+022H; waReportMouse*=waDummy+023H; waNoCareRefresh*=waDummy+024H; waBorderless*=waDummy+025H; waActivate*=waDummy+026H; waRMBTrap*=waDummy+027H; waWBenchWindow*=waDummy+028H; waSimpleRefresh*=waDummy+029H; waSmartRefresh*=waDummy+02AH; waSizeBRight*=waDummy+02BH; waSizeBBottom*=waDummy+02CH; waAutoAdjust*=waDummy+02DH; waGimmeZeroZero*=waDummy+02EH; waMenuHelp*=waDummy+02FH; sizeVerify*=0; newSize*=1; refreshWindow*=2; mouseButtons*=3; mouseMove*=4; gadgetDown*=5; gadgetUp*=6; reqSet*=7; menuPick*=8; closeWindow*=9; rawKey*=10; reqVerify*=11; reqClear*=12; menuVerify*=13; newPrefs*=14; diskInserted*=15; diskRemoved*=16; wbenchMessage*=17; activeWindow*=18; inactiveWindow*=19; deltaMove*=20; vanillaKey*=21; intuiTicks*=22; idcmpUpdate*=23; menuHelp*=24; changeWindow*=25; lonelyMessage*=31; selectUp *= IE.lButton + IE.upPrefix; selectDown *= IE.lButton; menuUp *= IE.rButton + IE.upPrefix; menuDown *= IE.rButton; middleDown *= IE.mButton; middleUp *= IE.mButton + IE.upPrefix; cursorUp *= 04CH; cursorLeft *= 04FH; cursorRight *= 04EH; cursorDown *= 04DH; keyCodeQ *= 010H; keyCodeZ *= 031H; keyCodeX *= 032H; keyCodeV *= 034H; keyCodeB *= 035H; keyCodeN *= 036H; keyCodeM *= 037H; keyCodeLess *= 038H; keyCodeGreater *= 039H; saDummy*=U.user+32; saLeft*=saDummy+00001H; saTop*=saDummy+00002H; saWidth*=saDummy+00003H; saHeight*=saDummy+00004H; saDepth*=saDummy+00005H; saDetailPen*=saDummy+00006H; saBlockPen*=saDummy+00007H; saTitle*=saDummy+00008H; saColors*=saDummy+00009H; saErrorCode*=saDummy+0000AH; saFont*=saDummy+0000BH; saSysFont*=saDummy+0000CH; saType*=saDummy+0000DH; saBitMap*=saDummy+0000EH; saPubName*=saDummy+0000FH; saPubSig*=saDummy+00010H; saPubTask*=saDummy+00011H; saDisplayID*=saDummy+00012H; saDClip*=saDummy+00013H; saOverscan*=saDummy+00014H; saObsolete1*=saDummy+00015H; saShowTitle*=saDummy+00016H; saBehind*=saDummy+00017H; saQuiet*=saDummy+00018H; saAutoScroll*=saDummy+00019H; saPens*=saDummy+0001AH; saFullPalette*=saDummy+0001BH; saInterleaved*=saDummy+00022H; TYPE GadgetPtr*=LONGINT; ImagePtr*=LONGINT; MenuPtr*=LONGINT; NewScreenPtr*=LONGINT; NewWindowPtr*=LONGINT; RequesterPtr*=LONGINT; ScreenPtr*=LONGINT; IntuiMessagePtr*=LONGINT; WindowPtr*=LONGINT; Window*=RECORD nextWindow*:WindowPtr; leftEdge*,topEdge*:INTEGER; width*,height*:INTEGER; mouseY*,mouseX*:INTEGER; minWidth*,minHeight*:INTEGER; maxWidth*,maxHeight*:INTEGER; flags*:SET; menuStrip*:MenuPtr; title*:LONGINT; firstRequest*:RequesterPtr; dmRequest*:RequesterPtr; reqCount*:INTEGER; wScreen*:ScreenPtr; rPort*:G.RastPortPtr; borderLeft*,borderTop*,borderRight*,borderBottom*:SHORTINT; borderRPort*:G.RastPortPtr; firstGadget*:GadgetPtr; parent*,descendant*:WindowPtr; pointer*:LONGINT; ptrHeight*:SHORTINT; ptrWidth*:SHORTINT; xOffset*,yOffset*:SHORTINT; idcmpFlags*:SET; userPort*:E.MsgPortPtr; windowPort*:E.MsgPortPtr; messageKey*:IntuiMessagePtr; detailPen*,blockPen*:SHORTINT; checkMark*:ImagePtr; screenTitle*:LONGINT; gzzMouseX*:INTEGER; gzzMouseY*:INTEGER; gzzWidth*:INTEGER; gzzHeight*:INTEGER; extData*:LONGINT; userData*:LONGINT; wLayer*:G.LayerPtr; iFont*:G.TextFontPtr; moreFlags*:INTEGER; END; Screen*=RECORD nextScreen*:ScreenPtr; firstWindow*:WindowPtr; leftEdge*,topEdge*:INTEGER; width*,height*:INTEGER; mouseY*,mouseX*:INTEGER; flags*:INTEGER; title*:LONGINT; defaultTitle*:LONGINT; barHeight*,barVBorder*,barHBorder*,menuVBorder*,menuHBorder*:SHORTINT; wBorTop*,wBorLeft*,wBorRight*,wBorBottom*:SHORTINT; font*:G.TextAttrPtr; viewPort*:G.ViewPort; rastPort*:G.RastPort; bitMap*:G.BitMap; layerInfo*:G.LayerInfo; firstGadget*:GadgetPtr; detailPen*,blockPen*:SHORTINT; saveColor0*:INTEGER; barLayer*:G.LayerPtr; extData*:LONGINT; userData*:LONGINT; END; IntuiMessage*=RECORD execMessage*:E.Message; class*:SET; code*:INTEGER; qualifier*:INTEGER; iAddress*:LONGINT; mouseX*,mouseY*:INTEGER; time*:T.TimeVal; idcmpWindow*:WindowPtr; specialLink*:IntuiMessagePtr; END; EasyStruct*=RECORD size*: LONGINT; flags*: SET; title*: LONGINT; textFormat*: LONGINT; gadgetFormat*: LONGINT; END; PROCEDURE -ReturnD0 04EH,05EH, 04EH,075H; PROCEDURE ActivateWindow*(window:WindowPtr); BEGIN SYSTEM.PUTREG( 0, window ); SYSTEM.CALL( -450, intuiBase ) END ActivateWindow; PROCEDURE CloseScreen*(screen:ScreenPtr); BEGIN SYSTEM.PUTREG( 8, screen ); SYSTEM.CALL( -66, intuiBase ) END CloseScreen; PROCEDURE CloseWindow*(window:WindowPtr); BEGIN SYSTEM.PUTREG( 8, window ); SYSTEM.CALL( -72, intuiBase ) END CloseWindow; PROCEDURE CurrentTime*(VAR seconds,micros:LONGINT); BEGIN dummy := SYSTEM.ADR(micros); SYSTEM.PUTREG( 8, SYSTEM.ADR(seconds) ); SYSTEM.PUTREG( 9, dummy ); SYSTEM.CALL( -84, intuiBase ) END CurrentTime; PROCEDURE OpenScreenTags*(newScreen:NewScreenPtr; VAR tagList:ARRAY OF U.TagItem):ScreenPtr; BEGIN SYSTEM.PUTREG( 9, SYSTEM.ADR(tagList) ); SYSTEM.PUTREG( 8, newScreen ); SYSTEM.CALL( -612, intuiBase ); ReturnD0 END OpenScreenTags; PROCEDURE OpenWindowTags*(newWindow:NewWindowPtr; VAR tagList:ARRAY OF U.TagItem):WindowPtr; BEGIN SYSTEM.PUTREG( 9, SYSTEM.ADR(tagList) ); SYSTEM.PUTREG( 8, newWindow ); SYSTEM.CALL( -606, intuiBase ); ReturnD0 END OpenWindowTags; PROCEDURE ModifyIDCMP*(window:WindowPtr; flags:SET); BEGIN SYSTEM.PUTREG( 8, window ); SYSTEM.PUTREG( 0, flags ); SYSTEM.CALL( -150, intuiBase ); END ModifyIDCMP; PROCEDURE ScreenToBack*(screen:ScreenPtr); BEGIN SYSTEM.PUTREG( 8, screen ); SYSTEM.CALL( -246, intuiBase ) END ScreenToBack; PROCEDURE ScreenToFront*(screen:ScreenPtr); BEGIN SYSTEM.PUTREG( 8, screen ); SYSTEM.CALL( -252, intuiBase ) END ScreenToFront; PROCEDURE ClearPointer*(win:WindowPtr); BEGIN SYSTEM.PUTREG( 8, win ); SYSTEM.CALL( -60, intuiBase ) END ClearPointer; PROCEDURE LockPubScreen*(name:LONGINT):ScreenPtr; BEGIN SYSTEM.PUTREG( 8, name ); SYSTEM.CALL( -510, intuiBase ); ReturnD0 END LockPubScreen; PROCEDURE SetPointer*(win:WindowPtr; ptr:LONGINT; h,w,dx,dy:INTEGER); BEGIN SYSTEM.PUTREG( 8, win ); SYSTEM.PUTREG( 9, ptr ); SYSTEM.PUTREG( 0, h ); SYSTEM.PUTREG( 1, w ); SYSTEM.PUTREG( 2, dx ); SYSTEM.PUTREG( 3, dy ); SYSTEM.CALL( -270, intuiBase ) END SetPointer; PROCEDURE ShowTitle*(screen:ScreenPtr; showIt:BOOLEAN); BEGIN IF showIt THEN SYSTEM.PUTREG( 0, -1 ) ELSE SYSTEM.PUTREG( 0, 0 ) END; (* OS-Bug? *) SYSTEM.PUTREG( 8, screen ); SYSTEM.CALL( -282, intuiBase ) END ShowTitle; PROCEDURE UnlockPubScreen*(name:LONGINT; screen:ScreenPtr); BEGIN SYSTEM.PUTREG( 8, name ); SYSTEM.PUTREG( 9, screen ); SYSTEM.CALL( -516, intuiBase ) END UnlockPubScreen; PROCEDURE CallEasyRequest*(win: WindowPtr; Flags: SET; title, text, gadget: ARRAY OF CHAR): LONGINT; VAR s: EasyStruct; BEGIN s.size:=SIZE(EasyStruct); s.flags:=Flags; s.title:=SYSTEM.ADR(title); s.textFormat:=SYSTEM.ADR(text); s.gadgetFormat:=SYSTEM.ADR(gadget); SYSTEM.PUTREG( 9, SYSTEM.ADR(s) ); SYSTEM.PUTREG( 8, win ); SYSTEM.PUTREG( 10, E.null ); SYSTEM.PUTREG( 11, E.null ); SYSTEM.CALL( -588, intuiBase ); ReturnD0 END CallEasyRequest; PROCEDURE Init; TYPE LibraryPtr=POINTER TO E.Library; VAR lib:LibraryPtr; BEGIN intuiBase:=E.OpenLibrary(intuitionName,37); IF intuiBase=0 THEN HALT(99) END; lib:=SYSTEM.VAL(LibraryPtr,intuiBase); intuiVersion:=lib.version; END Init; PROCEDURE Term; BEGIN E.CloseLibrary( intuiBase ) END Term; BEGIN Init; E.Register(termEntry, Term); END AmigaIntuition.