Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1252 lines
46 KiB

; Version: 1.13
; Created: Tuesday, November 22, 1988 at 11:28:09 AM
;
; File: SysEqu.a
;
; Assembler Interface to the Macintosh Libraries
; Copyright Apple Computer, Inc. 1986-1988
; All Rights Reserved
;
;___________________________________________________________________________
;
; System Equates -- This file defines the low-level equates for the
; Macintosh software. This is divided into two pieces for
; assembly space and speed considerations. The wholeSystem flag is used
; to include the less common equates which realizes a complete set. The
; comments marked with ";+" denote categories or managers. Record
; stuctures may have additional private equates which are defined by and
; reserved for use by Apple Computer, Inc.
;
;___________________________________________________________________________
wholeSystem EQU 1
PCDeskPat EQU $20B ; desktop pat, top bit only! others are in use
HiKeyLast EQU $216 ; Same as KbdVars
KbdLast EQU $218 ; Same as KbdVars+2
ExpandMem EQU $2B6 ; pointer to expanded memory block
expandSize EQU 64 ; size of expanded memory block
; Test Manager EQU's
videoMagic EQU $5A932BC7 ; When VideoInfoOk contains this value, the video card is ok (CritErr).
; Unit table size constants (Used in startInit.a)
unitEntries EQU 64 ; default # of entries in unit table
maxUTEntries EQU unitEntries+64 ; Set Max higher so the table can grow.
bgnSlotUnit EQU 48 ; default start unit number for slots.
bgnSlotRef EQU -(bgnSlotUnit+1) ; default start RefNum for slots.
; Start Boot state constants.
sbState0 EQU 0 ;StartBoot code is at state-0.
sbState1 EQU 1 ;StartBoot code is at state-1.
; The Alarm Clock
alrmFlEnable EQU 0 ; 1 => alarm clock mechanism is triggered
; Apple Desktop Bus
JADBProc EQU 1720 ; (long) procedure called on ADBReInit
; start of new low mem
SCSIBase EQU $0C00 ; (long) base address for SCSI chip read
SCSIDMA EQU $0C04 ; (long) base address for SCSI DMA
SCSIHsk EQU $0C08 ; (long) base address for SCSI handshake
SCSIGlobals EQU $0C0C ; (long) ptr for SCSI mgr locals
RGBBlack EQU $0C10 ; (6 bytes) the black field for color
RGBWhite EQU $0C16 ; (6 bytes) the white field for color
; $0C1C - $0C1F unused
RowBits EQU $0C20 ; (word) screen horizontal pixels
ColLines EQU $0C22 ; (word) screen vertical pixels
ScreenBytes EQU $0C24 ; (long) total screen bytes
; $0C28 unused (was SlotDT)
NMIFlag EQU $0C2C ; (byte) flag for NMI debounce
VidType EQU $0C2D ; (byte) video board type ID
VidMode EQU $0C2E ; (byte) video mode (4=4bit color)
SCSIPoll EQU $0C2F ; (byte) poll for device zero only once.
; (init to $FFFF, by default)
SEVarBase EQU $0C30 ; ($0C30-0CB0) 128 bytes for sys err data
; note!!! - if changed, need to change also in hwequ file
MMUFlags EQU $0CB0 ; (byte) cleared to zero (reserved for future use)
MMUType EQU $0CB1 ; (byte) kind of MMU present
MMU32bit EQU $0CB2 ; (byte) boolean reflecting current machine MMU mode
BoxFlag EQU $0CB3 ; (byte) flag indicating what machine is running
MMUTbl EQU $0CB4 ; (long) pointer to MMU Mapping table
MMUTblSize EQU $0CB8 ; (long) size of the 24 bit mode MMU mapping table
MMU24Info EQU $CB4 ; (long) ptr to 24 bit mode MMU configuration info
MMU32Info EQU $0CB8 ; (long) ptr to 32 bit mode MMU configuration info
SInfoPtr EQU $0CBC ; (long) pointer to Slot manager information
ASCBase EQU $0CC0 ; (long) pointer to Sound Chip
SMGlobals EQU $0CC4 ; (long) pointer to Sound Manager Globals
TheGDevice EQU $0CC8 ; (long) the current graphics device
CQDGlobals EQU $0CCC ; (long) quickDraw global extensions
; $0CE6-$0CF7 unused
ADBBase EQU $0CF8 ; (long) pointer to Front Desk Buss Variables
WarmStart EQU $0CFC ; (long) flag to indicate it is a warm start
wmStConst EQU $574C5343 ; warm start constant
sleepConst EQU 'SARA' ; waking from sleep constant
TimeDBRA EQU $0D00 ; (word) number of iterations of DBRA per millisecond
TimeSCCDB EQU $0D02 ; (word) number of iter's of SCC access & DBRA.
SlotQDT EQU $0D04 ; ptr to slot queue table
SlotPrTbl EQU $0D08 ; ptr to slot priority table
SlotVBLQ EQU $0D0C ; ptr to slot VBL queue table
ScrnVBLPtr EQU $0D10 ; save for ptr to main screen VBL queue
SlotTICKS EQU $0D14 ; ptr to slot tickcount table
;4appletalk EQU $0D1C ; (long) pointer to appletalk globals
TableSeed EQU $0D20 ; (long) seed value for color table ID's
SRsrcTblPtr EQU $0D24 ; (long) pointer to slot resource table.
JVBLTask EQU $0D28 ; vector to slot VBL task interrupt handler
WMgrCPort EQU $0D2C ; window manager color port
VertRRate EQU $0D30 ; (word) Vertical refresh rate for start manager.
; Unused $0D43-0D53
ChunkyDepth EQU $0D60 ; depth of the pixels
CrsrPtr EQU $0D62 ; pointer to cursor save area
PortList EQU $0D66 ; list of grafports
MickeyBytes EQU $0D6A ; long pointer to cursor stuff
QDErr EQU $0D6E ; QuickDraw error code [word]
VIA2DT EQU $0D70 ; 32 bytes for VIA2 dispatch table for NuMac
; uses $0D70 - $0D8F
SInitFlags EQU $0D90 ; StartInit.a flags [word]
DTQueue EQU $0D92 ; (10 bytes) deferred task queue header
DTQFlags EQU $0D92 ; flag word for DTQueue
DTskQHdr EQU $0D94 ; ptr to head of queue
DTskQTail EQU $0D98 ; ptr to tail of queue
JDTInstall EQU $0D9C ; (long) ptr to deferred task install routine
HiliteRGB EQU $0DA0 ; 6 bytes: rgb of hilite color
DSCtrAdj EQU $0DA8 ; (long) Center adjust for DS rect.
IconTLAddr EQU $0DAC ; (long) pointer to where start icons are to be put.
VideoInfoOK EQU $0DB0 ; (long) Signals to CritErr that the Video card is ok
EndSRTPtr EQU $0DB4 ; (long) Pointer to the end of the Slot Resource Table (Not the SRT buffer).
SDMJmpTblPtr EQU $0DB8 ; (long) Pointer to the SDM jump table
JSwapMMU EQU $0DBC ; (long) jump vector to SwapMMU routine
SdmBusErr EQU $0DC0 ; (long) Pointer to the SDM busErr handler
LastTxGDevice EQU $0DC4 ; (long) copy of TheGDevice set up for fast text measure
; Unused $0DC8-... ; PLEASE MAINTAIN THIS POINTER TO UNUSED
; CRSRSAVE $88C-8CB is no longer used
; *** RESERVED FOR USE BY QUICKDRAW ***
NewCrsrJTbl EQU $88C ; location of new crsr jump vectors
NewCrsrJCnt EQU 1 ; 2 new vectors
JAllocCrsr EQU $88C ; (long) vector to routine that allocates cursor
JSetCCrsr EQU $890 ; (long) vector to routine that sets color cursor
JOpcodeProc EQU $894 ; (long) vector to process new picture opcodes
CRSRBASE EQU $898 ; (long) scrnBase for cursor
CrsrDevice EQU $89C ; (long) current cursor device
SrcDevice EQU $8A0 ; (LONG) Src device for Stretchbits
MainDevice EQU $8A4 ; (long) the main screen device
DeviceList EQU $8A8 ; (long) list of display devices
CRSRROW EQU $8AC ; (word) rowbytes for current cursor screen
QDColors EQU $8B0 ; (long) handle to default colors
; QuickDraw
HiliteMode EQU $938 ; used for color highlighting
; Exception vectors
BusErrVct EQU $08 ; bus error vector
; Equates for values that the BoxFlag global may take: each identifies
; a particular logic board.
boxSE EQU $FF ; a Mac SE
boxMacII EQU 0 ; a Mac II
;-------------
; MMU Equates
;-------------
; MMU Mode bits
;
; type MMU_Mode = (true32b,false32b)
false32b EQU 0 ;modified
true32b EQU 1
;+ System Error Handler
RestProc EQU $A8C ; Resume procedure f InitDialogs [pointer]
; equates for new queue elements
sIQType EQU 6 ; slot interrupt queue element ID
;Default Startup
;DefaultRec offsets for set/get default startup
drDriveNum EQU 0 ;[INTEGER]
drRefNum EQU 2 ;[INTEGER]
; Deferred Task Queue Element
dtQType EQU 7 ; deferred task queue element ID
inDTQ EQU 6 ; bit index for "in deferred task" flag
dtLink EQU 0 ; Link to next element [pointer]
dtType EQU 4 ; Unique ID for validity [word]
dtFlags EQU 6 ; optional flags [word]
dtAddr EQU 8 ; service routine [pointer]
dtParm EQU $C ; optional A1 parameter [long]
dtResrvd EQU $10 ; reserved [long]
dtQElSize EQU 20 ; length of DT queue element in bytes
; Notification Manager Queue Element
nmType EQU 8 ; Notification request queue element ID
;+ ROM Equates
ROM85 EQU $28E ; (word) actually high bit - 0 for ROM vers $75 (sic) and later
ROMMapHndl EQU $B06 ; (long) handle of ROM resource map
;+ Screen Equates
ScrVRes EQU $102 ; screen vertical dots/inch [word]
ScrHRes EQU $104 ; screen horizontal dots/inch [word]
ScrnBase EQU $824 ; Screen Base [pointer]
ScreenRow EQU $106 ; rowBytes of screen [word]
; Mouse/Keyboard
MBTicks EQU $16E ; tick count @ last mouse button [long]
JKybdTask EQU $21A ; keyboard VBL task hook [pointer]
KeyLast EQU $184 ; ASCII for last valid keycode [word]
KeyTime EQU $186 ; tickcount when KEYLAST was rec'd [long]
KeyRepTime EQU $18A ; tickcount when key was last repeated [long]
;+ Parameter RAM (a twenty byte copy of the real parameter ram).
SPConfig EQU $1FB ; config bits: 4-7 A, 0-3 B (see use type below)
SPPortA EQU $1FC ; SCC port A configuration [word]
SPPortB EQU $1FE ; SCC port B configuration [word]
; SCC Serial Chip Addresses
SCCRd EQU $1D8 ; SCC base read address [pointer]
SCCWr EQU $1DC ; SCC base write address [pointer]
; Serial port use type
useFree EQU 0 ; Use undefined
useATalk EQU 1 ; AppleTalk
useAsync EQU 2 ; Async
useExtClk EQU 3 ; externally clocked
useMIDI EQU 4 ; MIDI
; Unpacked, user versions of parameter ram
DoubleTime EQU $2F0 ; double click ticks [long]
CaretTime EQU $2F4 ; caret blink ticks [long]
KeyThresh EQU $18E ; threshold for key repeat [word]
KeyRepThresh EQU $190 ; key repeat speed [word]
SdVolume EQU $260 ; Global volume(sound) control [byte]
;+ System Clocks
Ticks EQU $16A ; Tick count, time since boot [long]
Time EQU $20C ; clock time (extrapolated) [long]
;+ Cursor
iBeamCursor EQU 1 ; text selection cursor
crossCursor EQU 2 ; for structured selection
plusCursor EQU 3 ; for drawing graphics
watchCursor EQU 4 ; for indicating a long delay
; result codes for Relstring call
sortsBefore EQU -1 ; str1 < str2
sortsEqual EQU 0 ; str1 = str2
sortsAfter EQU 1 ; str1 > str2
;+ Queue Package
qInUse EQU 7 ; queue-in-use flag bit
; Header Record
qHeadSize EQU $A ; queue header size
qFlags EQU 0 ; miscellaneous flags [word]
qHead EQU 2 ; first element in queue [pointer]
qTail EQU 6 ; last element in queue [pointer]
; General Purpose Queue Element Definition
qLink EQU 0 ; link to next queue element [pointer]
qType EQU 4 ; queue element type [word]
;+ Event Manager
evType EQU 4 ; event queue element is type 4
; Event Type Numbers (in EvtNum)
everyEvent EQU -1
nullEvt EQU 0 ; event 0 is the null event
mButDwnEvt EQU 1 ; mouse button down is event 1
mButUpEvt EQU 2 ; mouse button up is event 2
keyDwnEvt EQU 3 ; key down is event 3
keyUpEvt EQU 4 ; key up is event 4
autoKeyEvt EQU 5 ; auto-repeated key is event 5
updatEvt EQU 6 ; update event
diskInsertEvt EQU 7 ; disk-inserted event
activateEvt EQU 8 ; activate/deactive event
netWorkEvt EQU $A ; network event
ioDrvrEvt EQU $B ; driver-defined event
app1Evt EQU $C ; application defined events
app2Evt EQU $D
app3Evt EQU $E
app4Evt EQU $F
; Modifier bits in event record
; (same constant names are masks rather than
; bit numbers in higher level languages.)
activeFlag EQU $0 ; activate?
btnState EQU $7 ; state of button?
cmdKey EQU $8 ; command key down?
shiftKey EQU $9 ; shift key down?
alphaLock EQU $A ; alpha lock down?
optionKey EQU $B ; option key down?
controlKey EQU $C ; control key on new keyboard?
; to decipher event message for keyDown events
charCodeMask EQU $000000FF
keyCodeMask EQU $0000FF00
adbAddrMask EQU $00FF0000
; Event Record Definition
evtNum EQU 0 ; event code [word]
evtMessage EQU 2 ; event message [long]
evtTicks EQU 6 ; ticks since startup [long]
evtMouse EQU $A ; mouse location [long]
evtMeta EQU $E ; state of modifier keys [byte]
evtMBut EQU $F ; state of mouse button [byte]
evtBlkSize EQU $10 ; size in bytes of the event record
MonkeyLives EQU $100 ; monkey lives if >= 0 [word]
SEvtEnb EQU $15C ; enable SysEvent calls from GNE [byte]
JournalFlag EQU $8DE ; journaling state [word]
JournalRef EQU $8E8 ; Journalling driver's refnum [word]
;+ Memory Manager
; Master pointer bits for handles - USE _HLock, _HPurge, etc. for portability
lock EQU 7 ; lock bit in a master pointer
purge EQU 6 ; bit for purgeable/unpurgeable
resource EQU 5 ; bit to flag a resource handle
BufPtr EQU $10C ; top of application memory [pointer]
StkLowPt EQU $110 ; Lowest stack as measured in VBL task [pointer]
TheZone EQU $118 ; current heap zone [pointer]
ApplLimit EQU $130 ; application limit [pointer]
SysZone EQU $2A6 ; system heap zone [pointer]
ApplZone EQU $2AA ; application heap zone [pointer]
HeapEnd EQU $114 ; end of heap [pointer]
HiHeapMark EQU $BAE ; (long) highest address used by a zone below sp
MemErr EQU $220 ; last memory manager error [word]
maxSize EQU $800000 ; outrageously large memory mgr request
dfltStackSize EQU $00002000 ; 8K size for stack
mnStackSize EQU $00000400 ; 1K minimum size for stack
; _InitZone argument table.
startPtr EQU 0 ; Start address for zone [pointer]
limitPtr EQU 4 ; Limit address for zone [pointer]
cMoreMasters EQU 8 ; Number of masters to allocate at time [word]
pGrowZone EQU 10 ; growZone procedure [pointer]
; Control/Status Call Codes
killCode EQU 1 ; KillIO code
drvStsCode EQU 8 ; status call code for drive status
ejectCode EQU 7 ; control call eject code
tgBuffCode EQU 8 ; set tag buffer code
; Driver flags, (Bit definitions for DCtlFlags byte)
dReadEnable EQU 0 ; enabled for read operations
dWritEnable EQU 1 ; enabled for writing
dCtlEnable EQU 2 ; enabled for control operations
dStatEnable EQU 3 ; enabled for status operations
dNeedGoodBye EQU 4 ; needs a "goodbye kiss"
dNeedTime EQU 5 ; needs "main thread" time
dNeedLock EQU 6 ; needs to be accessed at interrupt level
; Run-Time flags, (Bit definitions for DCtlFlags+1 byte)
dOpened EQU 5 ; bit to mark driver 'Open'
dRAMBased EQU 6 ; 1=RAM-based Driver, 0=ROM-based
drvrActive EQU 7 ; bit to mark the driver active
; Drive queue element offsets
dQDrive EQU $6 ; drive number [word]
dQRefNum EQU $8 ; driver refnum [word]
dQFSID EQU $A ; file system handling this drive [word]
dQDrvSz EQU $C ; number of blocks this drive [word]
dQDrvSz2 EQU $E ; if qType = 1, high word of drive size
; Queue Element Type Definitions
ioQType EQU 2 ; I/O queue element is type 2
drvQType EQU 3 ; timer queue element is type 3
fsQType EQU 5 ; File System VCB element
; Device Control Entry Definition
;dCtlEntrySize used to be only 40 bytes!
dCtlEntrySize EQU $34 ; length of a DCE [52 bytes]
dCtlDriver EQU 0 ; driver [handle]
dCtlFlags EQU 4 ; flags [word]
dCtlQueue EQU 6 ; queue header
dCtlQHead EQU 8 ; queue first-element [pointer]
dCtlQTail EQU $C ; queue last-element [pointer]
dCtlPosition EQU $10 ; position [long]
dCtlStorage EQU $14 ; driver's private storage [handle]
dCtlRefNum EQU $18 ; refNum of this driver [word]
dCtlCurTicks EQU $1A ; counter for timing systemTask calls [long]
dCtlWindow EQU $1E ; driver's window (if any) [pointer]
dCtlDelay EQU $22 ; number of ticks between sysTask calls [word]
dCtlEMask EQU $24 ; desk accessory event mask [word]
dCtlMenu EQU $26 ; menu ID associated with driver [word]
dCtlSlot EQU $28 ; device slot Number [byte]
dCtlSlotId EQU $29 ; device Id within slot [byte]
dCtlDevBase EQU $2A ; driver scratch ptr/offset from base to device [long]
dCtlOwner EQU $2E ; ptr to task control block(ownership) [Ptr]
dctlExtDev EQU $32 ; Id of external device [byte]
; Driver Globals
UTableBase EQU $11C ; unit I/O table [pointer]
UnitNtryCnt EQU $1D2 ; count of entries in unit table [word]
JFetch EQU $8F4 ; fetch a byte routine for drivers [pointer]
JStash EQU $8F8 ; stash a byte routine for drivers [pointer]
JIODone EQU $8FC ; IODone entry location [pointer]
;Chooser
chooserID EQU 1 ; caller value for the chooser
;+ I/O System
; File positioning modes for ioPosMode field of I/O record
fsAtMark EQU 0 ; at current position of mark
fsFromStart EQU 1 ; offset relative to beginning of file
fsFromLEOF EQU 2 ; offset relative to logical end-of-file
fsFromMark EQU 3 ; offset relative to current mark
rdVerify EQU $40 ; read verify mode
; Permission values for ioPermssn field of I/O record
fsCurPerm EQU 0 ; whatever is currently allowed
fsRdPerm EQU 1 ; request to read only
fsWrPerm EQU 2 ; request to write only
fsRdWrPerm EQU 3 ; request to read and write
fsRdWrShPerm EQU 4 ; request for shared read and write
; I/O record (general fields with trap-specific ones listed below)
ioQElSize EQU $32 ; length of I/O parameter block [50 bytes]
ioLink EQU $0 ; queue link in header [pointer]
ioType EQU $4 ; type for safety check [byte]
ioTrap EQU $6 ; the trap [word]
ioCmdAddr EQU $8 ; address to dispatch to [pointer]
ioCompletion EQU $C ; completion routine [pointer]
ioResult EQU $10 ; I/O result code [word]
ioFileName EQU $12 ; file name pointer [pointer]
ioVRefNum EQU $16 ; volume refnum [word]
ioDrvNum EQU $16 ; drive number [word]
ioRefNum EQU $18 ; file reference number [word]
ioFileType EQU $1A ; specified along with FileName [byte]
; specific fields for _Read, _Write
ioBuffer EQU $20 ; data buffer [pointer]
ioByteCount EQU $24 ; requested byte count [long]
ioNumDone EQU $28 ; actual byte count completed [long]
ioPosMode EQU $2C ; initial file positioning mode/eol char [word]
ioPosOffset EQU $2E ; file position offset [long]
; specific fields for _Allocate
ioReqCount EQU $24 ; requested new size [long]
ioActCount EQU $28 ; actual byte count allocated [long]
; specific fields for _Open
ioPermssn EQU $1B ; permissions [byte]
ioOwnBuf EQU $1C ; "private" 522-byte buffer [pointer]
; specific fields for _ReName
ioNewName EQU $1C ; new name pointer [pointer]
; specific fields for _GetFileInfo, _SetFileInfo
ioFQElSize EQU $50 ; File command parameter length [80 bytes]
ioFDirIndex EQU $1C ; directory index of file [word]
ioFlAttrib EQU $1E ; in-use bit=7, lock bit=0 [byte]
ioFFlType EQU $1F ; file type [byte]
ioFlUsrWds EQU $20 ; finder info [16 bytes]
ioFFlNum EQU $30 ; file number [long]
ioDirID EQU $30 ; directory ID
ioFlStBlk EQU $34 ; start file block (0000 if none) [word]
ioFlLgLen EQU $36 ; logical length (EOF) [long]
ioFlPyLen EQU $3A ; physical length in bytes [long]
ioFlRStBlk EQU $3E ; resource fork's start file block [word]
ioFlRLgLen EQU $40 ; resource fork's logical length (EOF) [long]
ioFlRPyLen EQU $44 ; resource fork's physical length [long]
ioFlCrDat EQU $48 ; creation date & time [long]
ioFlMdDat EQU $4C ; last modification date & time [long]
; Specific fields for _GetEOF, _SetEOF
ioLEOF EQU $1C ; logical end-of-file [long]
; Specific fields for _SetFileType
ioNewType EQU $1C ; new type byte [byte]
; Specific fields for _GetVolInfo, _GetVolume, _SetVolume, _MountVol, _UnmountVol,
; _Eject. Note that these traps have a bigger record size.
ioVQElSize EQU $40 ; Volume command parameter length [64 bytes]
ioVDrvNum EQU $16 ; drive or volume number [word]
ioVNPtr EQU $12 ; name buffer (or zero) [pointer]
ioVolIndex EQU $1C ; volume index number [word]
ioVCrDate EQU $1E ; creation date & time [long]
ioVLsBkUp EQU $22 ; last backup date & time [long]
ioVAtrb EQU $26 ; Volume attributes [word]
ioVNmFls EQU $28 ; # files in directory [word]
ioVDirSt EQU $2A ; start block of file dir [word]
ioVBlLn EQU $2C ; length of dir in blocks [word]
ioVNmAlBlks EQU $2E ; num blks (of alloc size) this dev [word]
ioVAlBlkSiz EQU $30 ; alloc blk byte size [long]
ioVClpSiz EQU $34 ; bytes to try to allocate at a time [long]
ioAlBlSt EQU $38 ; starting block in block map [word]
ioVNxtFNum EQU $3A ; next free file number [long]
ioVFrBlk EQU $3E ; # free alloc blks for this vol [word]
;--- New File System Equates ---
;
; Catalog structure equates:
fsRtParID EQU 1 ; DirID of parent's root
fsRtDirID EQU 2 ; Root DirID
fsXTCNID EQU 3 ; Extent B*-Tree file ID
fsCTCNID EQU 4 ; Catalog B*-Tree file ID
fsUsrCNID EQU $10 ; First assignable user CNode ID
; Additional equates for catalog information return:
ioFlBkDat EQU $50 ; File's last backup date
ioFlxFndrInfo EQU $54 ; File's additional finder info bytes
ioFlParID EQU $64 ; File's parent directory ID
ioFlClpSiz EQU $68 ; File's clump size, in bytes
; Additional equates for directory information return:
ioDirFlg EQU 4 ; Bit in ioFlAttrb set to indicate directory
ioDrUsrWds EQU $20 ; Directory's user info bytes
ioDrDirID EQU $30 ; Directory ID
ioDrNmFls EQU $34 ; Number of files in a directory
ioDrCrDat EQU $48 ; Directory creation date
ioDrMdDat EQU $4C ; Directory modification date
ioDrBkDat EQU $50 ; Directory backup date
ioDrFndrInfo EQU $54 ; Directory finder info bytes
ioDrParID EQU $64 ; Directory's parent directory ID
ioHFQElSiz EQU $6C ; Size of a Hierarchical File Queue Element
; Additional equates for _TFGetVolInfo:
ioVLsMod EQU $22 ; Last modification date
ioVSigWord EQU $40 ; Volume signature
ioVCBVBMst EQU $2A
ioVNxtCNID EQU $3A
ioVDrvInfo EQU $42 ; Drive number (0 if volume is offline)
ioVDRefNum EQU $44 ; Driver refNum
ioVFSID EQU $46 ; ID of file system handling this volume
ioVBkup EQU $48 ; Last backup date (0 if never backed up)
ioVSeqNum EQU $4C ; Sequence number of this volume in volume set
ioVWrCnt EQU $4E ; Volume write count
ioVFilCnt EQU $52 ; Total number of files on volume
ioVDirCnt EQU $56 ; Total number of directories on the volume
ioVFndrInfo EQU $5A ; Finder information for volume
ioHVQElSize EQU $7A ; Length of Hierarchical Volume information PB
; New fields for _GetFCBInfo:
ioFCBIndx EQU $1C ; FCB index for _GetFCBInfo
ioFCBFiller1 EQU $1E ; filler
ioFCBFlNm EQU $20 ; File number
ioFCBFlags EQU $24 ; FCB flags
ioFCBStBlk EQU $26 ; File start block
ioFCBEOF EQU $28 ; Logical end-of-file
ioFCBPLen EQU $2C ; Physical end-of-file
ioFCBCrPs EQU $30 ; Current file position
ioFCBVRefNum EQU $34 ; Volume refNum
ioFCBClpSiz EQU $36 ; File clump size
ioFCBParID EQU $3A ; Parent directory ID
ioFCBQElSize EQU $3E ; extended size of FCBPBRec
; New fields for _GetWDInfo:
ioWDIndex EQU $1A ; Working Directory index for _GetWDInfo
ioWDProcID EQU $1C ; WD's ProcID (long)
ioWDVRefNum EQU $20 ; WD's Volume RefNum (word)
ioWDDirID EQU $30 ; WD's DirID (long)
; New fields for _FSControl call:
ioFSVrsn EQU $20 ; File system version
; New field for CatMove
ioNewDirID EQU $24 ;destination directory for CatMove
;
;--- End of New File System Equates ---
; Specific fields for device _Open
ioMix EQU $1C ; General purpose field imported by driver[long]
ioFlags EQU $20 ; General purpose flags [word]
ioSlot EQU $22 ; Slot [byte]
ioId EQU $23 ; Id [byte]
ioSEBlkPtr EQU $22 ; Pointer to the seBlock [long]
; ioFlags:
fMulti EQU $00 ; b0 = fMulti: ioSEBlkPtr is valid (ioSlot, ioId are invalid)
noCacheBit EQU 5 ; disable cacheing for this operation
noCache EQU $20 ; constant for noCacheBit
; Specific fields for _Control, _Status
csCode EQU $1A ; control/status code [word]
csParam EQU $1C ; operation-defined parameters [22 bytes]
; FInfo (Finder Information) record layout
fdType EQU $0 ; type of file [long]
fdCreator EQU $4 ; file's creator [long]
fdFlags EQU $8 ; flags [word]
fdLocation EQU $A ; file's location [point]
fdFldr EQU $E ; file's window [word]
; added for HFS
; FXInfo record layout
fdIconID EQU $0 ; Icon ID [word]
fdUnused EQU $2 ; unused but reserved [4 words]
fdComment EQU $A ; Comment ID [word]
fdPutAway EQU $C ; Home Dir ID [2 words]
; DInfo record layout
frRect EQU $0 ; Folder Rect [4 words]
frFlags EQU $8 ; Flags [word]
frLocation EQU $A ; Location [2 words]
frView EQU $E ; Folder view [word]
; DXInfo record layout
frScroll EQU $0 ; scroll position [2 words]
frOpenChain EQU $4 ; dirID chain of open folders [2 words]
frUnused EQU $8 ; unused but reserved [word]
frComment EQU $A ; comment [word]
frPutAway EQU $C ; Dir ID [2 words]
;end of addition
; Masks for fdFlags field of FInfo record defined above
fOnDesk EQU 1
fHasBundle EQU 8192 ; set if file has a bundle
fInvisible EQU 16384 ; set if file's icon is invisible
fTrash EQU -3 ; file is in Trash window
fDeskTop EQU -2 ; file is on desktop
fDisk EQU 0 ; file is in disk window
; File System Globals
DrvQHdr EQU $308 ; queue header of drives in system [10 bytes]
BootDrive EQU $210 ; drive number of boot drive [word]
EjectNotify EQU $338 ; eject notify procedure [pointer]
IAZNotify EQU $33C ; world swaps notify procedure [pointer]
SFSaveDisk EQU $214 ; last vRefNum seen by standard file [word]
CurDirStore EQU $398 ; save dir across calls to Standard File [long]
;+ Date-Time record (for use with _Secs2Date, and _Date2Secs)
; DateTimeRec RECORD 0
year EQU 0
month EQU 2
day EQU 4
hour EQU 6
minute EQU 8
second EQU 10
dayOfWeek EQU 12
cbDateTimeRec EQU 14
; ENDR
dtYear EQU $0 ; year (1904..) [word]
dtMonth EQU $2 ; month (1..12) [word]
dtDay EQU $4 ; day (1..31) [word]
dtHour EQU $6 ; hour (0..23) [word]
dtMinute EQU $8 ; minute (0..59) [word]
dtSecond EQU $A ; second (0..59) [word]
dtDayOfWeek EQU $C ; day of week, sunday..saturday (1..7) [word]
;+ Miscellaneous stuff
OneOne EQU $A02 ; constant $00010001 [long]
MinusOne EQU $A06 ; constant $FFFFFFFF [long]
Lo3Bytes EQU $31A ; constant $00FFFFFF [long]
ROMBase EQU $2AE ; ROM base address [pointer]
RAMBase EQU $2B2 ; RAM base address [pointer]
SysVersion EQU $15A ; version # of RAM-based system [word]
RndSeed EQU $156 ; random seed/number [long]
; New fields for _GetDefaultStartup: [DefStartRec]
; SlotDev:
sdExtDevID EQU $0 ; [byte]
sdPartition EQU $1 ; [byte]
sdSlotNum EQU $2 ; [byte]
sdSRsrcID EQU $3 ; [byte]
; SCSIDev:
sdReserved1 EQU $0 ; [byte]
sdReserved2 EQU $1 ; [byte]
sdRefNum EQU $2 ; [word]
; New fields for _GetVideoDefault: [DefVideoRec]
sdSlot EQU $0 ; [byte]
sdSResource EQU $1 ; [byte]
; New fields for _GetOSDefault: [DefOSRec]
sdReserved EQU $0 ; [byte]
sdOSType EQU $1 ; [byte]
;+ SysEnvirons info
; SysEnvRec RECORD 0
environsVersion EQU 0
machineType EQU 2
systemVersion EQU 4
processor EQU 6
hasFPU EQU 8
hasColorQD EQU 9
keyBoardType EQU 10
atDrvrVersNum EQU 12
sysVRefNum EQU 14
cbSysEnvRec EQU 16
; ENDR
curSysEnvVers EQU 1 ; latest SysEnvirons version
; return values
envMachUnknown EQU 0
env512KE EQU 1
envMacPlus EQU 2
envSE EQU 3
envMacII EQU 4
envMacIIx EQU 5
envMac EQU -1 ; for the glue (sigh)
envXL EQU -2 ; for the glue (double sigh)
envCPUUnknown EQU 0 ; CPU types
env68000 EQU 1
env68010 EQU 2
env68020 EQU 3
env68030 EQU 4
envUnknownKbd EQU 0 ; Keyboard types
envMacKbd EQU 1
envMacAndPad EQU 2
envMacPlusKbd EQU 3
envAExtendKbd EQU 4
envStandADBKbd EQU 5
;+ Scratch Areas
Scratch20 EQU $1E4 ; scratch [20 bytes]
Scratch8 EQU $9FA ; scratch [8 bytes]
;+ Scrap Manager
ScrapSize EQU $960 ; scrap length [long]
ScrapHandle EQU $964 ; memory scrap [handle]
ScrapCount EQU $968 ; validation byte [word]
ScrapState EQU $96A ; scrap state [word]
ScrapName EQU $96C ; pointer to scrap name [pointer]
;+ Desk Accessories
; Message Definitions (in CSCode of control call)
accEvent EQU $40 ; event message from SystemEvent
accRun EQU $41 ; run message from SystemTask
accCursor EQU $42 ; cursor message from SystemTask
accMenu EQU $43 ; menu message from SystemMenu
accUndo EQU $44 ; undo message from SystemEdit
accCut EQU $46 ; cut message from SystemEdit
accCopy EQU $47 ; copy message from SystemEdit
accPaste EQU $48 ; paste message from SystemEdit
accClear EQU $49 ; clear message from SystemEdit
goodBye EQU -1 ; goodbye message
;International stuff
IntlSpec EQU $BA0 ; (long) - ptr to extra Intl data
;Switcher
SwitcherTPtr EQU $286 ; Switcher's switch table
; Trap bits for memory manager
tSysOrCurZone EQU 10 ; bit set implies System Zone
; bit clear implies Current Zone
clearBit EQU 9 ; bit set means clear allocated memory.
; Peripheral chips and Magic Hardware addresses
CPUFlag EQU $12F ; $00=68000, $01=68010, $02=68020 (old ROM inits to $00)
; (this is old DskWr11 flag . . .)
; VIA (6522) interface chip
VIA EQU $1D4 ; VIA base address [pointer]
; Disk Address
IWM EQU $1E0 ; IWM base address [pointer]
; Interrupt secondary vectors
Lvl1DT EQU $192 ; Interrupt level 1 dispatch table [32 bytes]
Lvl2DT EQU $1B2 ; Interrupt level 2 dispatch table [32 bytes]
ExtStsDT EQU $2BE ; SCC ext/sts secondary dispatch table [16 bytes]
; Parameter Ram
SPValid EQU $1F8 ; validation field ($A7) [byte]
SPATalkA EQU $1F9 ; AppleTalk node number hint for port A
SPATalkB EQU $1FA ; AppleTalk node number hint for port B
SPAlarm EQU $200 ; alarm time [long]
SPFont EQU $204 ; default application font number minus 1 [word]
SPKbd EQU $206 ; kbd repeat thresh in 4/60ths [2 4-bit]
SPPrint EQU $207 ; print stuff [byte]
SPVolCtl EQU $208 ; volume control [byte]
SPClikCaret EQU $209 ; double click/caret time in 4/60ths[2 4-bit]
SPMisc1 EQU $20A ; miscellaneous [1 byte]
SPMisc2 EQU $20B ; miscellaneous [1 byte]
GetParam EQU $1E4 ; system parameter scratch [20 bytes]
SysParam EQU $1F8 ; system parameter memory [20 bytes]
; Cursor
CrsrThresh EQU $8EC ; delta threshold for mouse scaling [word]
JCrsrTask EQU $8EE ; address of CrsrVBLTask [long]
MTemp EQU $828 ; Low-level interrupt mouse location [long]
RawMouse EQU $82C ; un-jerked mouse coordinates [long]
CrsrRect EQU $83C ; Cursor hit rectangle [8 bytes]
TheCrsr EQU $844 ; Cursor data, mask & hotspot [68 bytes]
CrsrAddr EQU $888 ; Address of data under cursor [long]
CrsrSave EQU $88C ; data under the cursor [64 bytes]
CrsrVis EQU $8CC ; Cursor visible? [byte]
CrsrBusy EQU $8CD ; Cursor locked out? [byte]
CrsrNew EQU $8CE ; Cursor changed? [byte]
CrsrState EQU $8D0 ; Cursor nesting level [word]
CrsrObscure EQU $8D2 ; Cursor obscure semaphore [byte]
; Mouse/Keyboard
KbdVars EQU $216 ; Keyboard manager variables [4 bytes]
KbdType EQU $21E ; keyboard model number [byte]
MBState EQU $172 ; current mouse button state [byte]
KeyMap EQU $174 ; bitmap of the keyboard [2 longs]
KeypadMap EQU $17C ; bitmap for numeric pad-18bits [long]
Key1Trans EQU $29E ; keyboard translator procedure [pointer]
Key2Trans EQU $2A2 ; numeric keypad translator procedure [pointer]
JGNEFilter EQU $29A ; GetNextEvent filter proc [pointer]
KeyMVars EQU $B04 ; (word) for ROM KEYM proc state
Mouse EQU $830 ; processed mouse coordinate [long]
CrsrPin EQU $834 ; cursor pinning rectangle [8 bytes]
CrsrCouple EQU $8CF ; cursor coupled to mouse? [byte]
CrsrScale EQU $8D3 ; cursor scaled? [byte]
MouseMask EQU $8D6 ; V-H mask for ANDing with mouse [long]
MouseOffset EQU $8DA ; V-H offset for adding after ANDing [long]
; System Clocks
AlarmState EQU $21F ; Bit7=parity, Bit6=beeped, Bit0=enable [byte]
;+ Vertical Blanking Interrupt Handler
; VBL Block Queue Element
vType EQU 1 ; VBL queue element is type 1
inVbl EQU 6 ; bit index for "in VBL" flag
vblink EQU 0 ; Link to next element [pointer]
vblType EQU 4 ; Unique ID for validity [word]
vblAddr EQU 6 ; service routine [pointer]
vblCount EQU $A ; timeout count [word]
vblPhase EQU $C ; phase count [word]
VBLQueue EQU $160 ; VBL queue header [10 bytes]
; Event manager
jPlayCtl EQU 16 ; playBack call
jRecordCtl EQU 17 ; record call
jcTickCount EQU 0 ; journal code for TickCount
jcGetMouse EQU 1 ; journal code for GetMouse
jcButton EQU 2 ; journal code for Button
jcGetKeys EQU 3 ; journal code for GetKeys
jcEvent EQU 4 ; journal code for GetNextEvent(Avail)
SysEvtMask EQU $144 ; system event mask [word]
SysEvtBuf EQU $146 ; system event queue element buffer [pointer]
EventQueue EQU $14A ; event queue header [10 bytes]
EvtBufCnt EQU $154 ; max number of events in SysEvtBuf - 1 [word]
; Event Queue Element Data Stucture
evtQWhat EQU 6 ; event code [word]
evtQMessage EQU 8 ; event message [long]
evtQWhen EQU $C ; ticks since startup [long]
evtQWhere EQU $10 ; mouse location [long]
evtQMeta EQU $14 ; state of modifier keys [byte]
evtQMBut EQU $15 ; state of mouse button [byte]
evtQBlkSize EQU $16 ; size of event record counting queue info
; flags in flags field in heapzone header
fOnCheck EQU 0 ; Turn On Checking
fChecking EQU 1 ; Checking on
fNSelCompct EQU 4 ; Use non-selective compact algorithm when 1.
fNoRvrAlloc EQU 5 ; Don't use rover allocation scheme when 1.
fNSelPurge EQU 6 ; Use non-selective purge algorithm when 1.
fRelAtEnd EQU 7 ; MakeBk packs rels at end of free bk when 1.
ROZ EQU $0 ; bit in flags field of MemMgr zone header
; Block Types
tybkMask EQU 3 ; Mask for block type
tybkFree EQU 0 ; Free Block
tybkNRel EQU 1 ; Non-Relocatable
tybkRel EQU 2 ; Relocatable
; Block Offsets
tagBC EQU 0 ; Tag and Byte Count field [long]
handle EQU 4 ; back pointer to master pointer [pointer]
blkData EQU 8 ; data starts here
; Heap Zone header
bkLim EQU $0 ; last block in zone [pointer]
purgePtr EQU $4 ; roving purge placeholder [pointer]
hFstFree EQU $8 ; first free handle [pointer]
zcbFree EQU $C ; # of free bytes in zone [long]
gzProc EQU $10 ; grow zone procedure [pointer]
mAllocCnt EQU $14 ; # of master ptrs to allocate [word]
flags EQU $16 ; Flags [word]
cntRel EQU $18 ; # of allocated relocatable blocks [word]
maxRel EQU $1A ; max # of allocated rel. blocks [word]
cntNRel EQU $1C ; # of allocated non-rel. blocks [word]
maxNRel EQU $1E ; max # of allocated non-rel. blocks [word]
cntEmpty EQU $20 ; # of empty handles [word]
cntHandles EQU $22 ; total # of handles [word]
minCBFree EQU $24 ; min # of bytes free [long]
purgeProc EQU $28 ; purge warning procedure [pointer]
allocPtr EQU $30 ; roving allocator [pointer]
heapData EQU $34 ; start of heap zone data
GZRootHnd EQU $328 ; root handle for GrowZone [handle]
GZRootPtr EQU $32C ; root pointer for GrowZone [pointer]
GZMoveHnd EQU $330 ; moving handle for GrowZone [handle]
MemTop EQU $108 ; top of memory [pointer]
MmInOK EQU $12E ; initial memory mgr checks ok? [byte]
HpChk EQU $316 ; heap check RAM code [pointer]
MaskBC EQU $31A ; Memory Manager Byte Count Mask [long]
MaskHandle EQU $31A ; Memory Manager Handle Mask [long]
MaskPtr EQU $31A ; Memory Manager Pointer Mask [long]
MinStack EQU $31E ; min stack size used in InitApplZone [long]
DefltStack EQU $322 ; default size of stack [long]
MMDefFlags EQU $326 ; default zone flags [word]
;+ System Error Handler
DSAlertTab EQU $2BA ; system error alerts [pointer]
DSAlertRect EQU $3F8 ; rectangle for disk-switch alert [8 bytes]
DSDrawProc EQU $334 ; alternate syserror draw procedure [pointer]
DSWndUpdate EQU $15D ; GNE not to paintBehind DS AlertRect? [byte]
WWExist EQU $8F2 ; window manager initialized? [byte]
QDExist EQU $8F3 ; quickdraw is initialized [byte]
ResumeProc EQU $A8C ; Resume procedure from InitDialogs [pointer]
DSErrCode EQU $AF0 ; last system error alert ID
;+ Drivers
dskRfN EQU $FFFB ; 3.5" disk reference number
IntFlag EQU $15F ; reduce interrupt disable time when bit 7 = 0
; Serial I/O Driver
SerialVars EQU $2D0 ; async driver variables [16 bytes]
ABusVars EQU $2D8 ;Pointer to AppleTalk local variables
ABusDCE EQU $2DC ;Pointer to AppleTalk DCE
PortAUse EQU $290 ; bit 7: 1 = not in use, 0 = in use
; bits 0-3: current use of port (see use type)
; bits 4-6: user specific
PortBUse EQU $291 ; port B use, same format as PortAUse
SCCASts EQU $2CE ; SCC read reg 0 last ext/sts rupt - A [byte]
SCCBSts EQU $2CF ; SCC read reg 0 last ext/sts rupt - B [byte]
; Serial handshake record definition
shFXOn EQU $0 ; XOn/XOff output control flags [byte]
shFCTS EQU $1 ; CTS hardware handshake flag [byte]
shXOn EQU $2 ; XOn character [byte]
shXOff EQU $3 ; XOff character [byte]
shErrs EQU $4 ; errors that cause abort [byte]
shEvts EQU $5 ; status changes that cause events [byte]
shFInX EQU $6 ; XOn/XOff input flow control flag [byte]
shNull EQU $7 ; not used [byte]
; Serial status record definition
ssCumErrs EQU $0 ; cumulative errors [byte]
ssXOffSent EQU $1 ; XOff sent as input control flag [byte]
ssRdPend EQU $2 ; read pending flag [byte]
ssWrPend EQU $3 ; write pending flag [byte]
ssCTSHold EQU $4 ; CTS flow control hold flag [byte]
ssXOffHold EQU $5 ; XOff received as output flow control [byte]
; Disk Driver
; Driver Code Header (for I/O drivers, desk accessories)
drvrFlags EQU $0 ; various flags and permissions [word]
drvrDelay EQU $2 ; # of ticks between systask calls [word]
drvrEMask EQU $4 ; event mask [word]
drvrMenu EQU $6 ; driver menu ID [word]
drvrOpen EQU $8 ; open routine offset [word]
drvrPrime EQU $A ; prime routine offset [word]
drvrCtl EQU $C ; control routine offset [word]
drvrStatus EQU $E ; status routine offset [word]
drvrClose EQU $10 ; warmstart reset routine offset [word]
drvrName EQU $12 ; length byte and name of driver [string]
;drvrVersion EQU ??? ; Driver w/ highest version # installed [word]
; This field's offset varies depending upon the length
; of the Name field preceding it. It must be word aligned!
; Driver Status record definition
dsTrack EQU $0 ; current track [word]
dsWriteProt EQU $2 ; bit 7=1 if volume locked [byte]
dsDiskInPlace EQU $3 ; disk in place [byte]
dsInstalled EQU $4 ; drive installed [byte]
dsSides EQU $5 ; bit 7=0 if single-sided drive [byte]
dsQLink EQU $6 ; next queue entry [pointer]
dsDQVers EQU $A ; 1 for HD20 [word]
dsDQDrive EQU $C ; drive number [word]
dsDQRefNum EQU $E ; driver reference number [word]
dsDQFSID EQU $10 ; file-system identifier [word]
dsTwoSideFmt EQU $12 ; -1 if two-sided disk [byte]
dsDiskErrs EQU $14 ; error count [word]
dsDrvSize EQU $12 ;drive block size low word [word]
dsDrvS1 EQU $14 ;drive block size high word [word]
dsDrvType EQU $16 ;1 for HD20 [word]
dsDrvManf EQU $18 ;1 for Apple Computer, Inc [word]
dsDrvChar EQU $1A ;230 ($E6) for HD20 [word]
dsDrvMisc EQU $1C ;0 -- reserved [byte]
DskErr EQU $142 ; disk routine result code [word]
PWMBuf2 EQU $312 ; PWM buffer 1 (or 2 if sound) [pointer]
; Drive command codes
dcRead EQU 0
dcWrite EQU 1
dcStatus EQU 3
dcInit EQU 25
dcScan EQU 26
; Sound Stuff
SoundPtr EQU $262 ; 4VE sound definition table [pointer]
SoundBase EQU $266 ; sound bitMap [pointer]
SoundVBL EQU $26A ; vertical retrace control element [16 bytes]
SoundDCE EQU $27A ; sound driver DCE [pointer]
SoundActive EQU $27E ; sound is active? [byte]
SoundLevel EQU $27F ; current level in buffer [byte]
CurPitch EQU $280 ; current pitch value [word]
; I/O System
noQueueBit EQU $9 ; tells I/O system not to queue the request
asyncTrpBit EQU $A ; bit in high byte of trap specifying async
ToExtFS EQU $3F2 ; hook for external file systems
; File System Globals
DskVerify EQU $12C ; used by 3.5 disk driver for read/verify [byte]
TagData EQU $2FA ; sector tag info for disk drivers [14 bytes]
BufTgFNum EQU $2FC ; file number [long]
BufTgFFlg EQU $300 ; flags [word]
BufTgFBkNum EQU $302 ; logical block number [word]
BufTgDate EQU $304 ; time stamp [word]
; I/O Command Equates for I/O Queue Elements (match trap numbers)
aRdCmd EQU 2 ; read command
aWrCmd EQU 3 ; write command
aCtlCmd EQU 4 ; control command
aStsCmd EQU 5 ; status command
; New fields for _SetPMSP call: PMSP = "Poor Man's Search Path"
ioPMSPFlg EQU $1A ; Flag whether to enable the PMSP
ioPMSPHook EQU $1C ; Pointer to PMSP hook proc
; Print variables
ScrDmpEnb EQU $2F8 ; screen dump enabled? [byte]
ScrDmpType EQU $2F9 ; FF dumps screen, FE dumps front window [byte]
; Scrap Variables
ScrapVars EQU $960 ; scrap manager variables [32 bytes]
ScrapInfo EQU $960 ; scrap length [long]
ScrapEnd EQU $980 ; end of scrap vars
ScrapTag EQU $970 ; scrap file name [STRING[15]]
; Segment Loader
LaunchFlag EQU $902 ; from launch or chain [byte]
SaveSegHandle EQU $930 ; seg 0 handle [handle]
CurJTOffset EQU $934 ; current jump table offset [word]
CurPageOption EQU $936 ; current page 2 configuration [word]
LoaderPBlock EQU $93A ; param block for ExitToShell [10 bytes]
CurApRefNum EQU $900 ; refNum of application's resFile [word]
CurrentA5 EQU $904 ; current value of A5 [pointer]
CurStackBase EQU $908 ; current stack base [pointer]
CurApName EQU $910 ; name of application [STRING[31]]
LoadTrap EQU $12D ; trap before launch? [byte]
SegHiEnable EQU $BB2 ; (byte) 0 to disable MoveHHi in LoadSeg
;device manager - Chooser message values
newSelMsg EQU 12 ;a new selection has been made
fillListMsg EQU 13 ;fill the list with choices to be made
getSelMsg EQU 14 ;mark one or more choices as selcted
selectMsg EQU 15 ;a choice has actually been made
deselectMsg EQU 16 ;a choice has been canceled
terminateMsg EQU 17 ;lets device package clean up
buttonMsg EQU 19 ;a button has been clicked
psAlert EQU 6 ;page setup alert bit in HiliteMode
theChooser EQU 1
; cdev message types
initDev EQU 0 ; Time for cdev to initialize itself
hitDev EQU 1 ; Hit on one of my items
closeDev EQU 2 ; Close yourself
nulDev EQU 3 ; Null event
updateDev EQU 4 ; Update event
activDev EQU 5 ; Activate event
deactivDev EQU 6 ; Deactivate event
keyEvtDev EQU 7 ; Key down/auto key
macDev EQU 8 ; Decide whether or not to show up
undoDev EQU 9
cutDev EQU 10
copyDev EQU 11
pasteDev EQU 12
clearDev EQU 13
; cdev error codes
cdevGenErr EQU -1 ; General error; gray cdev w/o alert
cdevMemErr EQU 0 ; Memory shortfall; alert user please
cdevResErr EQU 1 ; Couldn't get a needed resource; alert
cdevUnset EQU 3 ; cdevValue is initialized to this
;___________________________________________________________________________
;
; Background Notification Manager
BNMQHd EQU $B50 ; head of background notification Q
; ExpandMemRec RECORD 0
emVersion EQU 0
emSize EQU 2
emIntlGlobals EQU 6
emKeyDeadState EQU 10
emKeyCache EQU 14
emIntlDef EQU 18
emFirstKeyboard EQU 22
emAlign EQU 23
emItlCache EQU 24
emItlNeedUnlock EQU 40
emItlDirectGetIntl EQU 41
emFiller EQU 42
cbExpandMemRec EQU 64
; ENDR
JDoEject EQU 4*($F7)+$0400 ; Sony Driver jump vectors