Syntax10.Scn.Fnt Syntax10b.Scn.Fnt MODULE AmigaIntuition; IMPORT SYSTEM, A:=AmigaBase, e:=AmigaExec, ie := AmigaInputEvent, g:=AmigaGraphics, t:=AmigaTimer, u:=AmigaUtility; 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; altLeft *= {ie.lAlt}; altRight *= {ie.rAlt}; amigaLeft *= {ie.lCommand}; amigaRight *= {ie.rCommand}; amigaKeys *= amigaLeft + amigaRight; 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; 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*:LONGINT; 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; intuiBase:LONGINT; intuiVersion-:INTEGER; PROCEDURE ActivateWindow*(window:WindowPtr); r:A.Regs; BEGIN r.a[0]:=window; A.LibCall(intuiBase,-450,r); END ActivateWindow; PROCEDURE BeginRefresh*(window:WindowPtr); r:A.Regs; BEGIN r.a[0]:=window; A.LibCall(intuiBase,-354,r); END BeginRefresh; PROCEDURE CloseScreen*(screen:ScreenPtr); r:A.Regs; BEGIN r.a[0]:=SYSTEM.VAL(LONGINT,screen); A.LibCall(intuiBase,-66,r); END CloseScreen; PROCEDURE CloseWindow*(window:WindowPtr); r:A.Regs; BEGIN r.a[0]:=SYSTEM.VAL(LONGINT,window); A.LibCall(intuiBase,-72,r); END CloseWindow; PROCEDURE CurrentTime*(VAR seconds,micros:LONGINT); r:A.Regs; BEGIN r.a[0]:=SYSTEM.ADR(seconds); r.a[1]:=SYSTEM.ADR(micros); A.LibCall(intuiBase,-84,r); END CurrentTime; PROCEDURE EndRefresh*(window:WindowPtr; complete:BOOLEAN); r:A.Regs; BEGIN r.a[0]:=window; r.d[0]:=SYSTEM.VAL(LONGINT, complete); A.LibCall(intuiBase,-366,r); END EndRefresh; PROCEDURE OpenScreenTags*(newScreen:NewScreenPtr; VAR tagList:ARRAY OF u.TagItem):ScreenPtr; r:A.Regs; BEGIN r.a[0]:=newScreen; r.a[1]:=SYSTEM.ADR(tagList); A.LibCall(intuiBase,-612,r); RETURN SYSTEM.VAL(ScreenPtr,r.d[0]); END OpenScreenTags; PROCEDURE OpenWindowTags*(newWindow:NewWindowPtr; VAR tagList:ARRAY OF u.TagItem):WindowPtr; r:A.Regs; BEGIN r.a[0]:=newWindow; r.a[1]:=SYSTEM.ADR(tagList); A.LibCall(intuiBase,-606,r); RETURN SYSTEM.VAL(WindowPtr,r.d[0]); END OpenWindowTags; PROCEDURE ScreenToFront*(screen:ScreenPtr); r:A.Regs; BEGIN r.a[0]:=SYSTEM.VAL(LONGINT,screen); A.LibCall(intuiBase,-252,r); END ScreenToFront; PROCEDURE ClearPointer*(win:WindowPtr); r:A.Regs; BEGIN r.a[0]:=win; A.LibCall(intuiBase,-60,r); END ClearPointer; PROCEDURE LockPubScreen*(name: LONGINT):ScreenPtr; r:A.Regs; BEGIN r.a[0]:=name; A.LibCall(intuiBase,-510,r); RETURN r.d[0]; END LockPubScreen; PROCEDURE SetPointer*(win:WindowPtr; ptr:LONGINT; h,w,dx,dy:INTEGER); r:A.Regs; BEGIN r.a[0]:=win; r.a[1]:=ptr; r.d[0]:=h; r.d[1]:=w; r.d[2]:=dx; r.d[3]:=dy; A.LibCall(intuiBase,-270,r); END SetPointer; PROCEDURE ShowTitle*(screen:ScreenPtr; showIt:BOOLEAN); r:A.Regs; BEGIN r.a[0]:=SYSTEM.VAL(LONGINT,screen); IF showIt THEN r.d[0]:=-1; ELSE r.d[0]:=0; END; A.LibCall(intuiBase,-282,r); END ShowTitle; PROCEDURE UnlockPubScreen*(name: LONGINT; screen:ScreenPtr); r:A.Regs; BEGIN r.a[0]:=name; r.a[1]:=screen; A.LibCall(intuiBase,-516,r); END UnlockPubScreen; PROCEDURE CallEasyRequest*(win: WindowPtr; Flags: SET; title, text, gadget: ARRAY OF CHAR): LONGINT; r:A.Regs; 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); r.a[0]:=win; r.a[1]:=SYSTEM.ADR(s); r.a[2]:=0; r.a[3]:=0; A.LibCall(intuiBase,-588,r); RETURN r.d[0]; END CallEasyRequest; PROCEDURE Init; LibraryPtr=POINTER TO e.Library; 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; BEGIN Init; END AmigaIntuition.