mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2025-01-05 08:30:14 +00:00
4325cdcc78
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included. The Tools directory, containing mostly junk, is also excluded.
152 lines
5.5 KiB
Plaintext
152 lines
5.5 KiB
Plaintext
;__________________________________________________________________________________________________
|
|
;
|
|
; File: CrsrDevEqu.a
|
|
;
|
|
; Contains: equates for new mouse/trackball/etc. acceleration code
|
|
;
|
|
; Written by: Gary Rensberger
|
|
;
|
|
; Copyright: © 1992 by Apple Computer, Inc. All rights reserved.
|
|
;
|
|
; This file is used in these builds: ROM
|
|
;
|
|
; Change History (most recent first):
|
|
;
|
|
; <SM3> 12/01/92 HY Defined 2 fields in CsrsDevGlobals, CrsrDevFlags and MoreCrsrDevFlags.
|
|
; Defined bit 0 of crsrDevFlags to SkipDraw. This flag indicates to skip
|
|
; drawing the cursor on the first VBL, and to only perform calculations.
|
|
; This fixes a bug which caused the cursor to flicker when it was at
|
|
; the top of the screen. (see CrsrDev.a)
|
|
; <SM2> 8/26/92 kc Roll in Horror changes.
|
|
; <H3> 7/13/92 djw <GED>Added field in CrsrDataRec which indicates how often (in
|
|
; VBL ticks) the cursor should be blitted. Added two related
|
|
; vectors in CrsrDevGlobals.
|
|
; <H2> 7/13/92 djw <GED> Added equates for two new cursor vectors.
|
|
; <SM1> 5/2/92 kc Roll in Horror. Comments follow:
|
|
; <H2> 2/17/92 SWC Changed CrsrDevRec.resolution to a long since it's a fixed point
|
|
; number, and slightly rearranged the record so everything stays
|
|
; long word aligned.
|
|
; <H1> 2/12/92 GMR first checked in
|
|
|
|
|
|
; --------- button operations ---------
|
|
|
|
btnNoOp EQU 0 ; No action for this button
|
|
btnSingleClick EQU 1 ; Normal mouse button
|
|
btnDoubleClick EQU 2 ; Click-release-click when pressed
|
|
btnClickLock EQU 3 ; Click on press, release on next press
|
|
btnCharStroke EQU 4 ; A keystroke, data=(modifiers, char code)
|
|
btnAppleScript EQU 5 ; An AppleScript
|
|
btnCustom EQU 6 ; Custom behavior, data=proc pointer
|
|
|
|
|
|
; --------- Device Classes ---------
|
|
|
|
classAbsolute EQU 0 ; a flat-response device
|
|
classMouse EQU 1 ; mechanical or optical mouse
|
|
classTrackball EQU 2 ; trackball
|
|
classScratchPad EQU 3 ; (midas)
|
|
classJoystick EQU 4 ; (homeRow)
|
|
classRelTablet EQU 5 ; relative tablet
|
|
|
|
|
|
|
|
|
|
|
|
CrsrDevSegment RECORD 0
|
|
devUnits ds.l 1 ; highest device speed for this segment
|
|
slope ds.l 1 ; multiplier for device speed (crsr speed/dev speed)
|
|
intercept ds.l 1 ; offset to produce cursor speed
|
|
CrsrDevSegSize EQU *
|
|
ENDR
|
|
|
|
|
|
|
|
CrsrDevRec RECORD 0
|
|
nextCrsrDev ds.l 1 ; ptr to next record in linked list
|
|
whichCursor ds.l 1 ; ptr to data for target cursor
|
|
refCon ds.l 1 ; Application defined
|
|
unused ds.l 1 ; reserved for future
|
|
|
|
devID ds.l 1 ; device identifier (from ADB reg 1)
|
|
resolution ds.l 1 ; units/inch (orig. from ADB reg 1)
|
|
devClass ds.b 1 ; device class (from ADB reg 1)
|
|
cntButtons ds.b 1 ; # of buttons (from ADB reg 1)
|
|
ds.b 1 ; align
|
|
|
|
buttons ds.b 1 ; state of all buttons
|
|
buttonOp ds.b 8 ; action performed per button
|
|
buttonTicks ds.l 8 ; ticks when button last went up (for debounce)
|
|
buttonData ds.l 8 ; data for the button operation
|
|
doubleClickTime ds.l 1 ; device-specific double click speed
|
|
acceleration ds.l 1 ; current acceleration
|
|
|
|
accelPoints ds.l 1 ; Private: Ptr to array of (dev_delta, slope, intercept)
|
|
deltaX ds.l 1 ; Private: accumulated deltas
|
|
deltaY ds.l 1 ; Private: "
|
|
errorX ds.l 1 ; Private: accumulated errors
|
|
errorY ds.l 1 ; Private: "
|
|
denom ds.w 1 ; Private: fraction of the errors to use next time
|
|
spread ds.w 1 ; Private: Number of samples to spread errors over
|
|
newData ds.b 1 ; Private: set when deltas are new
|
|
ds.b 1 ; align
|
|
|
|
CrsrDevSize EQU *
|
|
ENDR
|
|
|
|
|
|
|
|
|
|
CrsrDataRec RECORD 0
|
|
nextCrsrData ds.l 1 ; next in global list
|
|
displayInfo ds.l 1 ; unused (FUTURE: display info for this cursor)
|
|
whereX ds.l 1 ; horizontal position
|
|
whereY ds.l 1 ; vertical position
|
|
where ds.w 2 ; the pixel position
|
|
isAbs ds.b 1 ; has been stuffed with absolute coords
|
|
buttonCount ds.b 1 ; number of buttons currently pressed
|
|
screenRes ds.l 1 ; Pixels per inch on the current display
|
|
screenDelay ds.w 1 ; minimum number of VBLs between subsequent crsr redraws <H3>
|
|
reserved ds.w 1 ; future expansion <H3>
|
|
scrnDelayPtr ds.l 1 ; ptr to table of screen delay values <H3>
|
|
alsoreserved ds.l 1 ; future expansion <H3>
|
|
scrnDelayTbl ds.l 8 ; default tbl for <refnum><screen delay> pairs <H3>
|
|
CrsrDataSize EQU *
|
|
ENDR
|
|
|
|
|
|
CrsrDevGlobals RECORD 0
|
|
firstCrsrDev ds.l 1 ; head of the cursor device list
|
|
firstCrsrData ds.l 1 ; points to THE ONLY cursor data record
|
|
SetCrsrDelayVector ds.l 1 ; points to routine that updates screen crsr delay <H3>
|
|
DrawCrsrVBLVector ds.l 1 ; vectors final drawing stage of CrsrDevHandleVBL <H3>
|
|
CrsrDevFlags ds.b 1 ; Flags <SM3>
|
|
MoreCrsrDevFlags ds.b 1 ; <SM3>
|
|
reserved ds.l 1 ; future expansion <H3>
|
|
CrsrGlobSize EQU *
|
|
ENDR
|
|
|
|
;
|
|
; CrsrDevFlags bit definitions
|
|
;
|
|
|
|
SkipDraw equ 0 ; Skip Draw flag forces the CrsrDevHandleVBL routine <SM3>
|
|
; to skip drawing the cursor. <SM3>
|
|
|
|
DrawCrsrVector EQU $1FB8 ; jump entry for DrawCursor <H2>
|
|
EraseCrsrVector EQU $1FBC ; jump entry for EraseCursor <H2>
|
|
|
|
|
|
;---------------------
|
|
; Misc. equates
|
|
;---------------------
|
|
|
|
;mouseAddr EQU 3 ; default address of mice
|
|
extDevHand EQU 04 ; handler 04 = extended type mouse device
|
|
|
|
;v EQU 0 ; point offsets
|
|
;h EQU 2
|
|
|
|
frameRate EQU 67 ; 67 frames/sec
|
|
|