;EASE$$$ READ ONLY COPY of file ÒLCURSOR.m.aÓ ; 1.1 CCH 11/11/1988 Fixed Header. ; 1.0 CCH 11/ 9/1988 Adding to EASE. ; OLD REVISIONS BELOW ; 1.2 CCH 10/12/1988 Changed Òm.GrafType.aÓ to ÒGrafType.m.aÓ. ; 1.1 MSH 5/18/88 Changed inclides to use m.GRAPHTYPES to work under EASE. ; 1.0 BBM 2/11/88 Adding file for the first time into EASEÉ ; END EASE MODIFICATION HISTORY BLANKS ON STRING ASIS INCLUDE 'GRAFTYPES.m.a' ;------------------------------------------------------------------ ; ; --> LCURSOR.TEXT ; ; Links to MacIntosh Cursor routines. ; ; System Graphic Jump Vectors: ; ; Long pointers to system routine entry points. ; GRAFBEGIN EQU $800 ;GRAF GLOBAL AREA JHIDECURSOR EQU GRAFBEGIN JSHOWCURSOR EQU JHIDECURSOR+4 JSHIELDCURSOR EQU JSHOWCURSOR+4 JSCRNADDR EQU JSHIELDCURSOR+4 ;not used (see _GetScrnBits) JSCRNSIZE EQU JSCRNADDR+4 ;not used (see _GetScrnBits) JINITCRSR EQU JSCRNSIZE+4 JSETCRSR EQU JINITCRSR+4 JCRSROBSCURE EQU JSETCRSR+4 InitCursor PROC EXPORT IMPORT SetCursor ;---------------------------------------------------------- ; ; PROCEDURE InitCursor; ; MOVE.L GRAFGLOBALS(A5),A0 ;POINT TO QUICKDRAW GLOBALS PEA ARROW(A0) ;PUSH ADDR OF ARROW JSR SETCURSOR ;INSTALL ARROW CURSOR MOVE.L JInitCrsr,A0 ;get lo mem pointer JMP (A0) ;and call it SetCursor PROC EXPORT ;--------------------------------------------------- ; ; PROCEDURE SetCursor(crsr: Cursor); ; MOVE.L 4(SP),A0 ;Point to Cursor MOVE.L HOTSPOT+V(A0),-(SP) ;PUSH HOTX & HOTY MOVE #16,-(SP) ;HEIGHT:=16 PEA DATA(A0) ;PUSH ADDR OF DATA PEA MASK(A0) ;PUSH ADDR OF MASK MOVE.L JSetCrsr,A0 ;get lo mem vector JSR (A0) ;call vector MOVE.L (SP)+,(SP) ;strip param RTS ;and return HideCursor PROC EXPORT ;--------------------------------------------------------- ; ; PROCEDURE HideCursor; ; ; ALL REGS PRESERVED. ; MOVE.L JHideCursor,-(SP) ;get lo mem vector RTS ;and call it ShowCursor PROC EXPORT ;--------------------------------------------------------- ; ; PROCEDURE ShowCursor; ; ; ALL REGS PRESERVED. ; MOVE.L JShowCursor,-(SP) ;get lo mem vector RTS ;and call it ShieldCursor PROC EXPORT ;--------------------------------------------------------- ; ; PROCEDURE ShieldCursor(shieldRect: Rect; offset: Point); ; ; ALL REGS PRESERVED. ; MOVEM.L D0-D3/A0-A1,-(SP) ;SAVE REGS MOVE.L 32(SP),A0 ;POINT TO SHIELDRECT MOVEM.W (A0)+,D0/D1/D2/D3 ;GET TOP ... RIGHT LEA 28(SP),A1 SUB (A1),D0 ;TOP - OFFSET.V SUB (A1)+,D2 ;BOTTOM - OFFSET.V SUB (A1),D1 ;LEFT - OFFSET.H SUB (A1),D3 ;RIGHT - OFFSET.H MOVE D1,-(SP) ;PUSH GLOBAL LEFT MOVE D0,-(SP) ;PUSH GLOBAL TOP MOVE D3,-(SP) ;PUSH GLOBAL RIGHT MOVE D2,-(SP) ;PUSH GLOBAL BOTTOM MOVE.L JShieldCursor,A0 ;get lo mem vector JSR (A0) ;and call it MOVEM.L (SP)+,D0-D3/A0-A1 ;RESTORE REGS MOVE.L (SP)+,(SP) MOVE.L (SP)+,(SP) ;STRIP 8 BYTES RTS ;AND RETURN ObscureCursor PROC EXPORT ;--------------------------------------------------------- ; ; PROCEDURE ObscureCursor; ; ; Hide the cursor image until the next time the mouse moves. ; MOVE.L JCrsrObscure,A0 ;get lo mem vector JMP (A0) ;and call it END