mirror of
https://github.com/elliotnunn/sys7.1-doc-wip.git
synced 2024-12-12 04:29:09 +00:00
240 lines
7.1 KiB
Plaintext
240 lines
7.1 KiB
Plaintext
;
|
||
; File: Processes.a
|
||
;
|
||
; Contains: Assembly Interface for Process Manager API
|
||
;
|
||
; Written by: David Harrison
|
||
;
|
||
; Copyright: © 1989-91 by Apple Computer, Inc., all rights reserved.
|
||
;
|
||
; Change History (most recent first):
|
||
;
|
||
; <25> 8/15/91 MH change include 'SysEqu.a' to INCLUDE ...
|
||
; <24> 8/15/91 MH remove one commentless semi-colon
|
||
; <23> 6/14/91 JL Checked in official MPW 3.2ƒ version. Equated theMsgEvent to $10
|
||
; - evtBlkSize is in SysEqu.a: must be included.
|
||
; <22> 2/1/91 DFH stb,WS#DFH-910131c:Removed Process Mgr defined AppleEvent codes.
|
||
; They belong in {AIncludes}AppleEvents.a, which does not exist.
|
||
; <21> 1/30/91 gbm sab, #38: Change the ‘already including this file’ variable to
|
||
; all uppercase (for security reasons)
|
||
; <20> 1/16/91 JDR (dba) Moved the Process Mgr error numbers into the Errors
|
||
; interface file. Including SysEqu.a for the evtBlkSize.
|
||
; <19> 1/15/91 DFH (VL) Add record REC/ENDR templates for existing records.
|
||
; <18> 9/4/90 JT Added modeUseTextEditServices to the list of process state
|
||
; flags.
|
||
; <17> 8/28/90 DFH Correct capitalization of highLongOfPSN and lowLongOfPSN
|
||
; <16> 7/19/90 DFH Removed launchIsAutomatic and modeAutomatic.
|
||
; <15> 7/16/90 DFH LaunchParamBlockRec and ProcessInfoRec now use FSSpec instead of
|
||
; name/vrefnum/dirid.
|
||
; <13> 5/8/90 DFH Fixed GetFrontProcess glue.
|
||
; <12> 4/27/90 GM prevent redefinition errors by avoiding multiple inclusion.
|
||
; <11> 4/16/90 DFH Added AppleEvent definitions. Changed Launch param constant
|
||
; for extended length to be the actual value rather than a bias.
|
||
; <10> 3/21/90 DFH Renamed new SIZE flags.
|
||
; <9> 3/21/90 DFH Added modeHLEventCompatible, modeNetHLEventCompatible, and modeStationeryAware.
|
||
;
|
||
; 1.2 DFH 03/12/90 Added launchAppParameters
|
||
; 1.1 ngk 12/01/1989 Added LaunchApplication and new error codes
|
||
; 1.0 CCH 10/16/1989 Adding to EASE.
|
||
;___________________________________________________________________________
|
||
|
||
IF &TYPE('__INCLUDINGPROCESSES__') = 'UNDEFINED' THEN
|
||
__INCLUDINGPROCESSES__ SET 1
|
||
|
||
IF &TYPE('__INCLUDINGSYSEQU__') = 'UNDEFINED' THEN
|
||
INCLUDE 'SysEqu.a'
|
||
ENDIF
|
||
|
||
;__________________________________________________________________________________
|
||
; Process Serial Number (PSN)
|
||
;__________________________________________________________________________________
|
||
; various reserved process serial numbers
|
||
kNoProcess EQU 0 ; no process at all
|
||
kSystemProcess EQU 1 ; the system
|
||
kCurrentProcess EQU 2 ; the switched-in process
|
||
|
||
; record definition
|
||
ProcessSerialNumber RECORD 0
|
||
highLongOfPSN DS.L 1 ; the upper half
|
||
lowLongOfPSN DS.L 1 ; the lower half
|
||
size EQU *
|
||
ENDR
|
||
|
||
; record definition (old style definition)
|
||
highLongOfPSN EQU 0
|
||
lowLongOfPSN EQU 4
|
||
|
||
;__________________________________________________________________________________
|
||
; parameter block passed in the _Launch trap.
|
||
;__________________________________________________________________________________
|
||
|
||
; flags for launchControlFlags field
|
||
launchContinue EQU $4000
|
||
launchNoFileFlags EQU $0800
|
||
launchUseMinimum EQU $0400
|
||
launchDontSwitch EQU $0200
|
||
launchAllow24Bit EQU $0100
|
||
launchInhibitDaemon EQU $0080
|
||
|
||
; format of buffer pointed to by launchAppParameters
|
||
AppParameters RECORD 0
|
||
theMsgEvent DS.B $10 ; (evtBlkSize) a HighLevelEvent record
|
||
eventRefCon DS.L 1 ; refcon for the high-level event
|
||
messageLength DS.L 1 ; number of bytes in messageBuffer
|
||
messageBuffer EQU * ; start of message for the high level event
|
||
size EQU *
|
||
ENDR
|
||
|
||
; format of buffer pointed to by launchAppParameters (old style definition)
|
||
theMsgEvent EQU 0
|
||
eventRefCon EQU 16
|
||
messageLength EQU 20
|
||
messageBuffer EQU 24
|
||
|
||
; parameter block itself
|
||
LaunchParamBlockRec RECORD 0
|
||
reserved1 DS.L 1
|
||
reserved2 DS.W 1
|
||
launchBlockID DS.W 1 ; { = extendedBlock }
|
||
launchEPBLength DS.L 1 ; { = extendedBlockLen }
|
||
launchFileFlags DS.W 1
|
||
launchControlFlags DS.W 1
|
||
launchAppSpec DS.L 1
|
||
launchProcessSN DS ProcessSerialNumber
|
||
launchPreferredSize DS.L 1
|
||
launchMinimumSize DS.L 1
|
||
launchAvailableSize DS.L 1
|
||
launchAppParameters DS.L 1
|
||
size EQU *
|
||
extendedBlockLen EQU size-launchFileFlags
|
||
ENDR
|
||
|
||
; parameter block itself (old style definition)
|
||
launchBlockID EQU 6
|
||
launchEPBLength EQU 8
|
||
launchFileFlags EQU 12
|
||
launchControlFlags EQU 14
|
||
launchAppSpec EQU 16
|
||
launchProcessSN EQU 20
|
||
launchPreferredSize EQU 28
|
||
launchMinimumSize EQU 32
|
||
launchAvailableSize EQU 36
|
||
launchAppParameters EQU 40
|
||
SIZEOF_LAUNCHPARAMBLOCKREC EQU 44
|
||
extendedBlockLen EQU SIZEOF_LAUNCHPARAMBLOCKREC - launchFileFlags
|
||
|
||
; set launchBlockID to extendedBlock to specify that extensions exist
|
||
; set launchEPBLength to extendedBlockLen for compatibility
|
||
extendedBlock EQU 19523
|
||
|
||
;__________________________________________________________________________________
|
||
; Definition of the information block returned by _GetProcessInformation.
|
||
;__________________________________________________________________________________
|
||
|
||
; bits in the processMode field
|
||
modeDeskAccessory EQU $00020000
|
||
modeMultiLaunch EQU $00010000
|
||
modeNeedSuspendResume EQU $00004000
|
||
modeCanBackground EQU $00001000
|
||
modeDoesActivateOnFGSwitch EQU $00000800
|
||
modeOnlyBackground EQU $00000400
|
||
modeGetFrontClicks EQU $00000200
|
||
modeGetAppDiedMsg EQU $00000100
|
||
mode32BitCompatible EQU $00000080
|
||
modeHighLevelEventAware EQU $00000040
|
||
modeLocalAndRemoteHLEvents EQU $00000020
|
||
modeStationeryAware EQU $00000010
|
||
modeUseTextEditServices EQU $00000008
|
||
|
||
; record returned by GetProcessInformation
|
||
ProcessInfoRec RECORD 0
|
||
processInfoLength DS.L 1
|
||
processName DS.L 1
|
||
processNumber DS ProcessSerialNumber
|
||
processType DS.L 1
|
||
processSignature DS.L 1
|
||
processMode DS.L 1
|
||
processLocation DS.L 1
|
||
processSize DS.L 1
|
||
processFreeMem DS.L 1
|
||
processLauncher DS ProcessSerialNumber
|
||
processLaunchDate DS.L 1
|
||
processActiveTime DS.L 1
|
||
processAppSpec DS.L 1
|
||
size EQU *
|
||
ENDR
|
||
|
||
; record returned by GetProcessInformation (old style definition)
|
||
processInfoLength EQU 0
|
||
processName EQU 4
|
||
processNumber EQU 8
|
||
processType EQU 16
|
||
processSignature EQU 20
|
||
processMode EQU 24
|
||
processLocation EQU 28
|
||
processSize EQU 32
|
||
processFreeMem EQU 36
|
||
processLauncher EQU 40
|
||
processLaunchDate EQU 48
|
||
processActiveTime EQU 52
|
||
processAppSpec EQU 56
|
||
|
||
;__________________________________________________________________________________
|
||
; trap macros
|
||
;__________________________________________________________________________________
|
||
|
||
MACRO
|
||
_LaunchApplication
|
||
_Launch
|
||
ENDM
|
||
|
||
MACRO
|
||
_LaunchDeskAccessory
|
||
MOVE.W #$36,-(SP)
|
||
_OSDispatch
|
||
ENDM
|
||
|
||
MACRO
|
||
_GetCurrentProcess
|
||
MOVE.W #$37,-(SP)
|
||
_OSDispatch
|
||
ENDM
|
||
|
||
MACRO
|
||
_GetFrontProcess
|
||
PEA $FFFFFFFF
|
||
MOVE.W #$39,-(SP)
|
||
_OSDispatch
|
||
ENDM
|
||
|
||
MACRO
|
||
_GetNextProcess
|
||
MOVE.W #$38,-(SP)
|
||
_OSDispatch
|
||
ENDM
|
||
|
||
MACRO
|
||
_GetProcessInformation
|
||
MOVE.W #$3A,-(SP)
|
||
_OSDispatch
|
||
ENDM
|
||
|
||
MACRO
|
||
_SetFrontProcess
|
||
MOVE.W #$3B,-(SP)
|
||
_OSDispatch
|
||
ENDM
|
||
|
||
MACRO
|
||
_WakeUpProcess
|
||
MOVE.W #$3C,-(SP)
|
||
_OSDispatch
|
||
ENDM
|
||
|
||
MACRO
|
||
_SameProcess
|
||
MOVE.W #$3D,-(SP)
|
||
_OSDispatch
|
||
ENDM
|
||
|
||
ENDIF ; ...already included |