mac-rom/QuickDraw/LCursor.a
Elliot Nunn 9c249dafab Reverse 68k Color QuickDraw
The ROM now round-trips with QuickDraw mostly built from source.
(~30% of the ROM is now built from source.)
2017-12-26 09:52:55 +08:00

138 lines
3.3 KiB
Plaintext

;
; File: LCursor.a
;
; Contains: xxx put contents here (or delete the whole line) xxx
;
; Written by: xxx put name of writer here (or delete the whole line) xxx
;
; Copyright: © 1981-1990 by Apple Computer, Inc., all rights reserved.
;
; This file is used in these builds: Mac32 Bigbang Sys606
;
; Change History (most recent first):
;
; <3> 9/17/90 BG Removed <2>. 040s are now behaving more reliably.
; <2> 6/26/90 BG Added EclipseNOPs for flakey 040s.
; <¥1.4> 5/29/89 BAL Blasting in 32-Bit QuickDraw version 1.0 Final
; <¥1.3> 4/12/89 BAL Blasting in 32-Bit QuickDraw 1.0B1
; 10/13/86 EHB Moved AllocCrsr to CRSRCORE; Call it from AllocCursor
; 10/6/86 EHB Redid AllocCrsr to lock handles down and expand data.
; 10/3/86 EHB Moved AllocCrsr here from GrafAsm Added routine SetCCursor
;
BLANKS ON
STRING ASIS
;------------------------------------------------------------------
;
; --> LCURSOR.TEXT
;
; Interfaces to low-level cursor routines.
;
; New color cursor support routines.
;
;------------------------------------------------------------------
AllocCursor PROC EXPORT
IMPORT AllocCrsr
;----------------------------------------------------------
;
; PROCEDURE AllocCursor;
;
JMP AllocCrsr
InitCursor PROC EXPORT
;----------------------------------------------------------
;
; PROCEDURE InitCursor;
;
MOVE.L GRAFGLOBALS(A5),A0 ;POINT TO QUICKDRAW GLOBALS
PEA ARROW(A0) ;PUSH ADDR OF ARROW
_SetCursor ;INSTALL ARROW CURSOR
IMPORT _InitCursor
JMP _InitCursor
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
IMPORT _SetCursor
JSR _SetCursor
MOVE.L (SP)+,(SP) ;strip param
RTS ;and return
SetCCursor PROC EXPORT
;---------------------------------------------------
;
; PROCEDURE SetCCursor(CCRSR: CCrsrHandle);
;
; For compatibility with other cursor drawing routines, set up the
; old cursor data as before, but make sure it's hidden so the B/W cursor
; isn't displayed.
; _HideCursor ; make sure it's hidden
; MOVE.L 4(SP),A0 ; get the color cursor handle
; MOVE.L (A0),A0 ; get the color cursor pointer
; PEA CRSR1DATA(A0) ; point to the old-style cursor
; _SetCursor ; and set it the old way
MOVE.L 4(SP),-(SP) ; Push handle to color cursor
IMPORT _SetCCursor
JSR _SetCCursor
; _ShowCursor ; balance is a virtue
MOVE.L (SP)+,(SP) ; strip param
RTS ; and return
HideCursor PROC EXPORT
;---------------------------------------------------------
;
; PROCEDURE HideCursor;
;
; ALL REGS PRESERVED.
;
IMPORT _HideCursor
JMP _HideCursor
ShowCursor PROC EXPORT
;---------------------------------------------------------
;
; PROCEDURE ShowCursor;
;
; ALL REGS PRESERVED.
;
IMPORT _ShowCursor
JMP _ShowCursor
ObscureCursor PROC EXPORT
;---------------------------------------------------------
;
; PROCEDURE ObscureCursor;
;
; Hide the cursor image until the next time the mouse moves.
;
IMPORT _ObscureCursor
JMP _ObscureCursor
ENDPROC