mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2025-01-01 11:29:27 +00:00
0ba83392d4
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.
171 lines
4.4 KiB
Plaintext
171 lines
4.4 KiB
Plaintext
;
|
|
; File: AEDFGlue.a
|
|
;
|
|
; Contains: xxx put contents here xxx
|
|
;
|
|
; Written by: xxx put writers here xxx
|
|
;
|
|
; Copyright: © 1990 by Apple Computer, Inc., all rights reserved.
|
|
;
|
|
; This file is used in these builds: MacPP
|
|
;
|
|
; Change History (most recent first):
|
|
;
|
|
; <5> 12/13/90 Lai Put back header comment missed in the last Check in. Add
|
|
; extension proc support and entry point for hashing functions.
|
|
;
|
|
; To Do:
|
|
;
|
|
|
|
;
|
|
; <3> 9/19/90 Lai There should be 46 entries in the dispatch table instead of 45
|
|
; <2> 9/14/90 Lai Change size of system global handle
|
|
; <1> 9/7/90 Lai first checked in
|
|
;
|
|
; To Do:
|
|
;
|
|
|
|
|
|
; =======================================================================================
|
|
; Files needed by this Package
|
|
; =======================================================================================
|
|
|
|
|
|
PRINT OFF
|
|
LOAD 'StandardEqu.d'
|
|
PRINT ON
|
|
STRING ASIS
|
|
|
|
|
|
; =======================================================================================
|
|
; routines that are called by this code
|
|
; =======================================================================================
|
|
|
|
MACRO
|
|
JT &entry
|
|
IMPORT &entry
|
|
DC.W &entry - TableBase
|
|
ENDM
|
|
|
|
; =======================================================================================
|
|
; record structure of the global record
|
|
; =======================================================================================
|
|
aeGlobalRec RECORD 0
|
|
aeHashTable DS.L 1
|
|
coercionHashTable DS.L 1
|
|
kurtHashTable DS.L 1
|
|
phacProcPtr DS.L 1
|
|
selhProcPtr DS.L 1
|
|
blockingPtr DS.L 1
|
|
unblockingPtr DS.L 1
|
|
diposeTokenProcPtr DS.L 1
|
|
AENonAevtHandler DS.L 1
|
|
ENDR
|
|
|
|
; =======================================================================================
|
|
; Main entry point for the AppleEvent manager Package
|
|
; =======================================================================================
|
|
|
|
AEMgr main
|
|
; PROC Export
|
|
DC.W $A9FF
|
|
DC.B 'PACK' ; resource type
|
|
DC.W 8 ; pack 8
|
|
DC.W 1 ; version 1
|
|
TableBase DC.W 0 ; flags
|
|
DC.B 0
|
|
DC.B (TableEnd-TableBegin)/2-1
|
|
TableBegin EQU *
|
|
JT AE_InstallSpecialHandler
|
|
JT AE_RemoveSpecialHandler
|
|
JT AE_CoercePtr
|
|
JT AE_CoerceDesc
|
|
JT AE_DisposeDesc
|
|
JT AE_DuplicateDesc
|
|
JT AE_CreateList
|
|
JT AE_CountItems
|
|
JT AE_PutPtr
|
|
JT AE_PutDesc
|
|
JT AE_GetNthPtr
|
|
JT AE_GetNthDesc
|
|
JT AE_GetArray
|
|
JT AE_PutArray
|
|
JT AE_DeleteItem
|
|
JT AE_PutKeyPtr
|
|
JT AE_PutKeyDesc
|
|
JT AE_GetKeyPtr
|
|
JT AE_GetKeyDesc
|
|
JT AE_DeleteKeyDesc
|
|
JT AE_CreateAppleEvent
|
|
JT AE_GetAttributePtr
|
|
JT AE_PutAttributePtr
|
|
JT AE_Send
|
|
JT AE_ResumeTheCurrentEvent
|
|
JT AE_ResetTimer
|
|
JT AE_GetTheCurrentEvent
|
|
JT AE_ProcessAppleEvent
|
|
JT AE_InteractWithUser
|
|
JT AE_GetInteractionAllowed
|
|
JT AE_SetInteractionAllowed
|
|
JT AE_InstallEventHandler
|
|
JT AE_RemoveEventHandler
|
|
JT AE_GetEventHandler
|
|
JT AE_InstallCoercionHandler
|
|
JT AE_RemoveCoercionHandler
|
|
JT AE_GetCoercionHandler
|
|
JT AE_CreateDesc
|
|
JT AE_GetAttributeDesc
|
|
JT AE_PutAttributeDesc
|
|
JT AE_SizeOfAttribute
|
|
JT AE_SizeOfKeyDesc
|
|
JT AE_SizeOfNthItem
|
|
JT AE_SuspendTheCurrentEvent
|
|
JT AE_SetTheCurrentEvent
|
|
JT AE_GetSpecialHandler
|
|
JT NewHashTable
|
|
JT DisposeHashTable
|
|
JT AddKeyEntry
|
|
JT ReplaceEntry
|
|
JT RemoveKeyEntry
|
|
JT GetKeyValue
|
|
JT GetIndexedEntry
|
|
DC.W ExtensionProc-TableBase
|
|
DC.W ExtensionProc-TableBase
|
|
DC.W ExtensionProc-TableBase
|
|
DC.W ExtensionProc-TableBase
|
|
DC.W ExtensionProc-TableBase
|
|
DC.W ExtensionProc-TableBase
|
|
DC.W ExtensionProc-TableBase
|
|
DC.W ExtensionProc-TableBase
|
|
DC.W ExtensionProc-TableBase
|
|
DC.W ExtensionProc-TableBase
|
|
TableEnd EQU *
|
|
|
|
ExtensionProc
|
|
MOVE.L ExpandMem,A0 ; get expanded memory area
|
|
MOVE.L ExpandMemRec.emAppleEvents(A0),D1 ; get application globals location
|
|
BEQ.S noApplSelh ; no application glboal yet
|
|
MOVE.L D1,A1
|
|
MOVE.L (A1),A1 ; dereference it
|
|
MOVE.L aeGlobalRec.selhProcPtr(A1),D1; get the actual selector proc
|
|
BNE.S goExecIt
|
|
noApplSelh MOVE.L ExpandMemRec.emAppleEventsGlobal(A0),D1 ; get system globals location
|
|
BEQ.S noSysSelh ; no system glboal yet
|
|
MOVE.L D1,A1
|
|
MOVE.L (A1),A1 ; dereference it
|
|
MOVE.L aeGlobalRec.selhProcPtr(A1),D1; get the actual selector proc
|
|
BEQ.S noSysSelh
|
|
goExecIt MOVE.L D1,A0 ; the execution address
|
|
LEA noSysSelh,A1
|
|
JMP (A0)
|
|
; if called by the selh proc, they must preserve D0
|
|
noSysSelh MOVE.L (SP)+,A0 ; A1 = return address
|
|
LSR.W #8,D0 ; D0.W = words of parameters
|
|
ADD.W D0,D0 ; D0.W = bytes of parameters
|
|
ADD.W D0,SP ; strip off parameters
|
|
MOVE.W #paramErr,(SP) ; return parameter error
|
|
JMP (A0) ; return to caller
|
|
ENDP
|
|
|
|
END
|