; Version: 2.83 ; Created: Monday, September 25, 1989 at 10:38:59 AM ; ; File: Private.a ; ; Assembler Interface to the Macintosh Libraries ; Copyright Apple Computer, Inc. 1986-1990 ; All Rights Reserved ; ; This file is used in these builds: ROM System ; ; Change History (most recent first): ; ; 5/17/92 kc Moved PowerManager stuff into PowerPrivEqu. ; <2> 2/13/92 PN Add jppcDispatcher EQU. ; <1> • Pre-SuperMario comments follow • ; <21> 12/26/91 RB Updated Power Mgr definitions. ; <20> 6/14/91 JL Adjusted comment for pmCommand. Put the Quickdraw Glue vectors ; back in this file because the shipping version has been shipping ; with them for years. ; <19> 6/12/91 LN Remove private interface includes ; <18> 1/30/91 gbm sab, #38: Change the ‘already including this file’ variable to ; all uppercase (for security reasons) ; <17> 11/12/90 dnf Move FSVars to a truly private file ; <16> 9/25/90 dnf (dnf/pwd) Add a field in FSVars to hold a pointer to the ; currently executing call from the deskto manager ; <15> 9/21/90 dnf Add a deferred task queue element to FSVars ; <14> 9/14/90 MSH Added new Power Manager commands. Yes, I too hate it when ; stupid little equate files change, especially when their not ; YOUR equates. ; <13> 6/11/90 EMT Added XToolTable. ; <8> 2/13/90 SMB NEEDED for 6.0.5 - Clean up of comment and removed line ; containing TEFindWord which was just commented out. ; <7> 2/13/90 SMB NEEDED for 6.0.5 - Moved TEFindWord to ToolEqu.a since it's now ; a public hook. ; <6> 1/30/90 CCH Moved internal-only equates to InternalOnlyEqu.a, and renumbered ; box flags since XO has to stay the same. ; <5> 1/22/90 CV Removing boxEmacs2 from the list of boxflag values and from ; InVidFlags. Rearranging the order of boxflag equates for all ; CPUs after boxAuroraSE16. boxflag values will be ordered ; according to targeted introduction dates starting with closest ; to intro. ; <4> 1/9/90 DNF Fix FSVars for XFS (foreign file access) ; <3> 12/28/89 CV Fixed problem with comments starting with # because BBS commands ; hadn't been updated. ; <2> 12/28/89 CV Added "boxErickson" as a new CPU type for boxflag. Added ; "boxErickson" as a CPU with built-in video to InVidFlags. ; <5.1> 12/14/89 BG Added "boxEclipse" as a new type of Mac box. ; <5.0> 12/8/89 dnf Added equates for new HFS lomem storage block ; <4.9> 12/1/89 SWC Added SCCIOPFlag ($BFE) which contains a copy of the PRAM byte ; controlling which mode the SCC IOP on Zone 5 comes up in. ; <4.8> 11/3/89 GMR Added XO box flag. ; <4.7> 10/11/89 JJJ Added revision numbers to previously revised lines (oops). ; <4.6> 10/11/89 JJJ Added Elsie and EMacs2 to bit vector of boxes that have built-in ; video. ; <4.5> 10/11/89 JJJ Added boxElsie and temporary boxEmacs2 to list of "boxes." ; <4.4> 8/20/89 GMR Added back old power mgr equates (necessary until Mike rolls his ; stuff into Reality), to get hcMac builds working again. ; <4.3> 8/15/89 djw Deleted obsolete power mgr global equates (in favor of record) - ; backed out of <4.2>. Added power mgr modem command bits and ; serial power stuff. ; <4.2> 8/10/89 CCH Added power mgr equates from 6.0.4 sources. ; <4.1> 7/15/89 CSL added sysHeapis32bit equ. ; <4.0> 7/10/89 DAF Added a flag word to tag which CPUs have built-in video ; <3.9> 6/30/89 CSL Added LockMemCt to low mem. ; <3.8> 6/29/89 BBM Made vectors for JRMgrStdEntry and JRMgrStdExit ; <3.7> 6/15/89 CSL Defined SystemInfo byte to save indicator for 24 bit or 32 bit ; system. Added vectors for MMnoPrologue, MMPrologue, MMPPrologue, ; MMHPrologue, MMRHPrologue, MMMMPrologoue, MMEpilogue and ; MMNoErrEpilogue. ; <3.6> 6/10/89 GGD Moved BoxFlag and the box names here from SysEqu.a and ; Universal.a ; <3.5> 6/10/89 CEL Moved Private.a QuickDraw Equates into proper QuickDraw private ; file (colorequ.a), got rid of QuickDraw nFiles dependencies and ; fixed up necessary files… ; <3.4> 5/30/89 CSL Changes vector for Translate24to32 for new trap number $A091. ; <3.3> 5/24/89 rwh added UnSwitchedFlags, SwitchedFlags and usRelTaskRun for Brian. ; Added mmHighSysHeap. Changed BootGlobPtr to $DDC. ; <3.2> 5/24/89 rwh changed BootGlobPtr to $D14 - it may have to change again ; later... ; <3.1> 5/20/89 GGD Added IOPMgrVars from IOPEqu.a. Added SlotQDT, SlotPrTbl, ; SlotVBLQ, ScrnVBLPtr, and SlotTICKS from SysEqu.a Added ; AddrMapFlags, UnivROMFlags, and UnivInfoPtr from SysEqu.a Added ; ADBBase from SysEqu.a ; <3.0> 5/16/89 CSL Added jTranslate24to32 vector for CQD ; <2.9> 4/30/89 rwh added BootGlobPtr at 1EEC (Brian gave me 1EF0, but Tony used ; <2.8> 4/28/89 CSL Added low mem Phys2Log, renamed SystemRAM to RealMemTop, ; <2.7> 4/17/89 CSL Added low mem SystemRam and PhysicalRAM. ; <2.6> 4/13/89 DNF Added jFileRead, jFileWrite, and jFileClose vectors ; <•2.5> 4/12/89 BAL Blasting in 32-Bit QuickDraw 1.0B1 ; <•2.4> 4/12/89 BAL Blasting in 32-Bit QuickDraw 1.0B1 ; <2.3> 4/7/89 MSH Added two interrupt handler vectors to pmgr locals. ; <2.2> 3/30/89 MSH Added cursor data storage to pmgr locals. ; <2.1> 3/22/89 CSL new EQUs moved in from HeapDefs.a, they are MMPRAMloc, MMFlags ; etc. ; <2.0> 3/1/89 CSL Added minFree24 and minFree32, reverted minfree back to 12 ; bytes. ; <1.9> 3/1/89 MSH Oops from 1.8. ; <1.8> 2/28/89 MSH Added local power manager storage of low power resources. ; <1.7> 2/22/89 CSL Added Jump vector for 24/32 bit memory manager and added new ; equ's ; <1.6> 2/10/89 CSL Added MacJmpFlag for 32 bit clean ROM. ; <1.5> 2/8/89 MSH Battery equs got screwed up during roll in. ; <1.4> 2/8/89 MSH Extended power manager vars and added some battery status equs. ; <1.3> 1/28/89 GGD Changed BigLEA, BigJMP, and BigJSR macros to be position ; independent, instead of using absolute addresses. Moved some of ; the Time Manager private equates from TimeEqu.a to this file. ; <1.2> 1/18/89 jwk Added new SCSI Mgr equates for ROM roll in. ; <1.1> 11/30/88 MSH Added sound off power manager equ and removed pointer to screen ; <1.0> 11/9/88 CCH Adding to EASE. ; <1.4> 11/1/88 MSH Added to power manager vars ; <1.3> 10/11/88 rwh moved ADB equates to AppleDeskBusPriv.a ; <1.2> 9/19/88 MSH Update to the latest working version. ; <•1.1> 9/14/88 CCH Updated EASE with the current rev of this file. ; 3/25/87 KLH moved patXMap here from QuickEqu.a. ; 2/13/87 RDC Added new jump vector equates, updated copyright notice ; 1/27/87 KLH added more Quickdraw privates from ColorEqu ; 1/24/87 bbm Added equate for sound vector ; 1/24/87 bbm Added equates for Start, Memory, and Seg managers vectors ; 1/22/87 bbm Added equate for jCacheFlush ; 11/10/86 CRC added FontMgr global LastDepth ; 11/4/86 bbm Changed equates as there were some conflicts in nSysEqu.a ; 11/3/86 NSJ added Quickdraw privates from ColorEqu ; 10/29/86 CSL changes for the front desk buss (ADB). ; 10/29/86 NSJ removed AutoPollIn ; 10/27/86 bbm added a bunch of vectors for tfs lowlevel code. ; 10/9/86 bbm Modified for heap.a and heapguts.a. ; 9/29/86 BBM removed PrNonPortable ; 9/23/86 NSJ new this date ; ;___________________________________________________________________________ ; ;___________________________________________________________________________ ; ; The following information was formerly in "private" files that were ; not released to the general developer community. ; ; The information in this file is not needed for normal application ; development. These equates and macros were necessary for development ; of the Macintosh ToolBox and Operating System, and are likely to be ; dependent on their current implementation. Use of any information ; in this file is likely to cause your software to fail on future ; versions of Macintosh system software or hardware. ; ; Apple Developer Support will not support any use of the following ; information. ; ; In order to prevent any "accidental" use of this information, it has ; been disabled using the conditional-assembly variable defined below. ; If you change this to a non-zero value, you're on your own. ;___________________________________________________________________________ IF &TYPE('__INCLUDINGPRIVATE__') = 'UNDEFINED' THEN __INCLUDINGPRIVATE__ SET 1 IF (&TYPE('PrNonPortable') = 'UNDEFINED') THEN PrNonPortable EQU 0 ENDIF IF PrNonPortable THEN ;_______________________________________________________________________ ; ; System Equates -- These equates supplement the low-level equates for the ; Macintosh hardware and software defined in SysEqu. These equates are private ; to Apple Computer, Inc. and should be used solely for building system ; software. ; ;_______________________________________________________________________ ;+ Hardware Address Equates (for 512K through 128K Macs) ; Unpacked, user versions of parameter ram SdEnable EQU $261 ; Sound enabled? [byte] ; Event Record Definition evtMax EQU $1E ; maximum number of events in buffer ; Heap Zone header spare1 EQU $2C ; unused spare [long] ; Mouse/Keyboard Tocks EQU $173 ; Lisa sub-tick count [byte] ;Chooser ChooserBits EQU $946 ; bit 7 = 0, don't run; bit 6 = 0, gray out Appletalk ; Driver Status record definition dsQType EQU $A ; not used [word] dsNeedsFlush EQU $13 ; reserved [byte] ;This variable was named RetryCount in SONYEqu SONYRetry EQU 5 SonyVars EQU $134 ; 3-1/2 disk driver vars [pointer] DskRtnAdr EQU $124 ; temp for disk driver [pointer] PollRtnAddr EQU $128 ; 'other' driver locals [pointer] PWMValue EQU $138 ; current PWM value [word] PollStack EQU $13A ; SCC poll data start stack location [pointer] PollProc EQU $13E ; SCC poll data procedure [pointer] DiskVars EQU $222 ; Disk driver variables [62 bytes] LastPGlobal EQU $954 ; address of last printer global ; QuickDraw Glue Vectors JHideCursor EQU $800 JShowCursor EQU $804 JShieldCursor EQU $808 JScrnAddr EQU $80C JScrnSize EQU $810 JInitCrsr EQU $814 JSetCrsr EQU $818 JCrsrObscure EQU $81C JUpdateProc EQU $820 LGrafJump EQU $824 JSwapFont EQU $8E0 ; jump entry for FMSwapFont [long] JFontInfo EQU $8E4 ; jump entry for FMFontMetrics [long] ; Miscellaneous Globals SysCom EQU $100 ; start of system communication area DispatchTab EQU $400 ; A-Trap dispatch table [1024 bytes] OSTable EQU $0400 ; 256 longs, up to $800, where old table of 512 words was toolDisp EQU 10 ; bit #10 distinguishes Tool/OS Get/Set Trap address oldDisp EQU 9 ; bit #9 distinguishes Old/New trap numbering ; moved HeapStart equate to hwequ file ; moved DoEject equate to hwequ file JShell EQU $212 ; journaling shell state [wprd] MacJmp EQU $120 ; MACSBUG jumptable [pointer] MacJmpFlag EQU $BFF ; MacsBug flag [byte] FileVars EQU $340 ; file system vars [184 bytes] LoadVars EQU $900 ; loader variables [68 bytes] LastLGlobal EQU $944 ; address past last loader global CoreEditVars EQU $954 ; core edit variables [12 bytes] ScreenVars EQU $292 ; Screen driver variables [8 bytes] SoundVars EQU $262 ; Sound driver variables [32 bytes] BootGlobPtr equ $DDC ; ptr to BootGlobs record at top of memory <2.9><3.2><3.3> ;_______________________________________________________________________ ; ; Toolbox Equates -- These equates supplement the high-level equates for the ; Macintosh toolbox software in ToolEqu.a. These equates are private ; to Apple Computer, Inc. and should be used solely for building system ; software. ; ;_______________________________________________________________________ DeskPort EQU $9E2 ; Desk grafPort (Whole screen) [pointer] ;_______________________________________________________________________ ; ; QuickDraw Equates -- This file supplements the public equates for QuickDraw. ; found in the file QuickEqu.a These equates are private ; to Apple Computer, Inc. and should be used solely for building system ; software. ; ;_______________________________________________________________________ symbols EQU 0 forMac EQU 1 ;for Mac+ Only - 2-way comm cmd rDSync EQU 0 ; sync up w/each other ; command byte from nub to MPS rDSysErr EQU 1 ; system error rDTrapCall EQU 2 ; trap call rDDta EQU 3 ; data comin' down the road ; command byte from MPS to nub rDGetN EQU 1 ; GetNBytes rDSetN EQU 2 ; SetNBytes rDCallProc EQU 3 ; CallProc rDSetAtrap EQU 4 ; SetATrap rDResume EQU 5 ; Resume execution ; end Mac+ only FlEvtMask EQU $25E ; (word) mask of allowable events to flush at FlushEvents. TrapAgain EQU $B00 ; use 4 bytes here for another trap PWMBuf1 EQU $B0A ; (long) PWM buffer ptr BootMask EQU $B0E ; (word) needed during boot AtalkHk1 EQU $B14 ; (long) Appletalk hook AtalkHk2 EQU $B18 ; (long) Appletalk hook UnSwitchedFlags equ $B20 ; (byte) special flags, not switched by multifinder <3.3> usRelTaskRun equ 7 ; bit 7=1 if Reliability Mgr mtbf task NOT installed <3.3> SwitchedFlags equ $B21 ; (byte) special flags, switched by multifinder <3.3> SCSIFlag EQU $B22 ; (word) Configuration Flag for SCSI HWCfgFlags EQU SCSIFlag ; (word) HW Configuration flags ; bit 15 - SCSI port present ; bit 14 - New Clock Chip Present ; bit 13 - Extra Parameter Ram Valid at boottime. BtDskRfn EQU $B34 ; (word) refnum for boot drive driver refnum BootTmp8 EQU $B36 ; (8bytes) temp space needed by StartBoot T1Arbitrate EQU $B3F ; (byte) $FF if Timer T1 up for grabs. RMGRHiVars EQU $B80 ; $B80-$BFF are switched vars ; RMGR vars extend $B80 through $B9F NewUnused EQU $BC0 ; (word) - used to be FlEvtMask FmtDefaults EQU 52+$36A ; ptr to formatting defs (TFSVars + 52) [long] ; addresses of TE hooks installed in trap table TETrimMeasure EQU (4*253+OSTable) ; trimMeasure hook ;TEFindWord EQU (4*254+OSTable) ; findWord hook (defined in ToolEqu.a) TEFindLine EQU (4*255+OSTable) ; findLine hook JBlockMove EQU $4B8 ; Special equate for OUR HeapGuts Jump Table JInsTime EQU (600-512)*4+OSTable ; JRmvTime EQU (601-512)*4+OSTable ; JPrimeTime EQU (602-512)*4+OSTable ; JADBop EQU ($7C*4)+OSTable ; OS trap table entry for _ADBop JIOPMsgRequest EQU ($87*4)+OSTable ; OS trap table entry for _IOPMsgRequest JLg2Phys EQU (703-512)*4+OSTable ; JFlushCache EQU (704-512)*4+OSTable ; JGetBlock EQU (705-512)*4+OSTable ; JMarkBlock EQU (706-512)*4+OSTable ; JRelBlock EQU (707-512)*4+OSTable ; JTrashBlocks EQU (708-512)*4+OSTable ; JTrashVBlks EQU (709-512)*4+OSTable ; JCacheWrIP EQU (710-512)*4+OSTable ; JCacheRdIP EQU (711-512)*4+OSTable ; JBasicIO EQU (712-512)*4+OSTable ; JRdBlocks EQU (713-512)*4+OSTable ; JWrBlocks EQU (714-512)*4+OSTable ; JSetUpTags EQU (715-512)*4+OSTable ; JBTClose EQU (716-512)*4+OSTable ; JBTDelete EQU (717-512)*4+OSTable ; JBTFlush EQU (718-512)*4+OSTable ; JBTGetRecord EQU (719-512)*4+OSTable ; JBTInsert EQU (720-512)*4+OSTable ; JBTOpen EQU (721-512)*4+OSTable ; JBTSearch EQU (722-512)*4+OSTable ; JBTUpdate EQU (723-512)*4+OSTable ; JGetNode EQU (724-512)*4+OSTable ; JRelNode EQU (725-512)*4+OSTable ; JAllocNode EQU (726-512)*4+OSTable ; JFreeNode EQU (727-512)*4+OSTable ; JExtBTFile EQU (728-512)*4+OSTable ; JDeallocFile EQU (729-512)*4+OSTable ; JExtendFile EQU (730-512)*4+OSTable ; JTruncateFile EQU (731-512)*4+OSTable ; JCMSetUp EQU (732-512)*4+OSTable ; jppcDispatcher EQU (733-512)*4+OSTable ; JDtrmV1 EQU (734-512)*4+OSTable ; JBlkAlloc EQU (735-512)*4+OSTable ; JBlkDeAlloc EQU (736-512)*4+OSTable ; JFileOpen EQU (737-512)*4+OSTable ; JPermssnChk EQU (738-512)*4+OSTable ; JFndFilName EQU (739-512)*4+OSTable ; JRfNCall EQU (740-512)*4+OSTable ; JAdjEOF EQU (741-512)*4+OSTable ; JFileClose EQU (745-512)*4+OSTable ; $7a4 JFileRead EQU (746-512)*4+OSTable ; $7a8 JFileWrite EQU (747-512)*4+OSTable ; $7ac JClkNoMem EQU (595-512)*4+OSTable ;vector for clock JSegStack EQU (760-512)*4+OSTable ;vector for segment loader ; vectors for RMGR low levels routines JSuperLoad EQU (761-512)*4+OSTable ; JCmpFrm EQU (762-512)*4+OSTable ; JNewMap EQU (763-512)*4+OSTable ; JCheckLoad EQU (764-512)*4+OSTable ; JRMgrStdEntry EQU ($A6*4)+OSTable ;vector for standard entry routine JRMgrStdExit EQU ($A7*4)+OSTable ;vector for standard exit routine ;_______________________________________________________________________ ; ; heap flags checking EQU 0 ;check arguments and data structures statistics EQU 0 ;gather statistics on usage robust EQU 0 ;enables super-robust internal checks countMPs EQU 0 ;enables counting of master pointers dfltFlags EQU 0 ;Checking is on when zone is init'd nOSTable EQU $0400 ; 256 longs, up to $800 JMtCheck EQU ($AF)*4+nOSTable ; ($A0AF) $0400 is n/OSTable JCheckReMount EQU ($B0)*4+nOSTable ; ($A0B0) $0400 is n/OSTable JDtrmV2 EQU ($B1)*4+nOSTable ; ($A0B1) $0400 is n/OSTable JFindDrive EQU ($B2)*4+nOSTable ; ($A0B2) $0400 is n/OSTable JFClose EQU ($B3)*4+nOSTable ; ($A0B3) $0400 is n/OSTable JFlushMDB EQU ($B4)*4+nOSTable ; ($A0B4) $0400 is n/OSTable JGoDriver EQU ($B5)*4+nOSTable ; ($A0B5) $0400 is n/OSTable JWaitUntil EQU ($B6)*4+nOSTable ; ($A0B6) $0400 is n/OSTable JSyncWait EQU ($B7)*4+nOSTable ; ($A0B7) $0400 is n/OSTable JSoundDead EQU ($B8)*4+nOSTable ; ($A0B8) $0400 is n/OSTable JDisptch EQU ($B9)*4+nOSTable ; ($A0B9) $0400 is n/OSTable ;JStartinit EQU ($B9)*4+nOSTable ; ($A0B9) $0400 is n/OSTable JIAZInit EQU ($BA)*4+nOSTable ; ($A0BA) $0400 is n/OSTable JIAZPostInit EQU ($BB)*4+nOSTable ; ($A0BB) $0400 is n/OSTable JLaunchInit EQU ($BC)*4+nOSTable ; ($A0BC) $0400 is n/OSTable JCacheFlush EQU ($BD)*4+nOSTable ; ($A0BD) $0400 is n/OSTable JStripAddress EQU ($55)*4+nOSTable ; ($A055) $0400 is n/OSTable JjSwapMMU EQU ($5D)*4+nOSTable ; ($A05D) $0400 is n/OSTable JTranslate24to32 EQU ($91)*4+nOSTable ; ($A091) $0400 is n/OSTable XToolTable EQU ($99)*4+nOSTable ; ($A099) $0400 is n/OSTable <11> ;_______________________________________________________________________ ; ; addresses of TE hooks installed in trap table for new color text edit JPixel2Char EQU (742-512)*4+nOSTable ; ($A0E6) $0400 is nOSTable JChar2Pixel EQU (743-512)*4+nOSTable ; ($A0E7) $0400 is nOSTable JHiliteText EQU (744-512)*4+nOSTable ; ($A0E8) $0400 is nOSTable ;_______________________________________________________________________ ; ;tfs vectors JUpdAltMDB EQU ($ED)*4+nOSTable ; ($A0ED) $0400 is n/OSTable JCkExtFS EQU ($EE)*4+nOSTable ; ($A0EE) $0400 is n/OSTable JDTrmV3 EQU ($EF)*4+nOSTable ; ($A0EF) $0400 is n/OSTable JBMChk EQU ($F0)*4+nOSTable ; ($A0F0) $0400 is n/OSTable JTstMod EQU ($F1)*4+nOSTable ; ($A0F1) $0400 is n/OSTable JLocCRec EQU ($F2)*4+nOSTable ; ($A0F2) $0400 is n/OSTable JTreeSearch EQU ($F3)*4+nOSTable ; ($A0F3) $0400 is n/OSTable JMapFBlock EQU ($F4)*4+nOSTable ; ($A0F4) $0400 is n/OSTable JXFSearch EQU ($F5)*4+nOSTable ; ($A0F5) $0400 is n/OSTable JReadBM EQU ($F6)*4+nOSTable ; ($A0F6) $0400 is n/OSTable bcMask EQU $00FFFFFF ; Mask for the 24 bit Byte Count GrafBegin EQU $800 ; graf global area GrafEnd EQU $8F2 ; end of graphics globals ENDIF ;end exclusion of private information ; Offsets into boot blocks bbID EQU 0 ; (word) offset to boot blocks ID bbEntry EQU 2 ; (contains BRA.S) entrypoint to boot blocks bbVersion EQU 6 ; (word) version number bbPageFlags EQU 8 ; (word) page 2 usage flags bbSysName EQU $0A ; system resource code file name (byte length + 0-15 chars) bbShellName EQU $1A ; system shell file name ('Finder') bbDbg1Name EQU $2A ; debugger file name (first load) bbDbg2Name EQU $3A ; debugger file name (second load) bbScreenName EQU $4A ; boot screen file name bbHelloName EQU $5A ; startup program file name bbScrapName EQU $6A ; system scrap file name bbCntFCBs EQU $7A ; (word) # of FCBs to allocate (determines max open files) bbCntEvts EQU $7C ; (word) # of event queue elements to allocate bb128KSHeap EQU $7E ; size of system heap on a 128K Mac (no longer used) bb256KSHeap EQU $82 ; size of system heap on a 256K Mac (no longer used) bb512KSHeap EQU $86 ; size of system heap on a 512K Mac bbSysHeapSize EQU $86 ; (long) absolute size of the system heap (for all machines). ; (word) unused - reserved bbSysHeapExtra EQU $8C ; (long) minimum additional system heap space required. bbSysHeapFract EQU $90 ; (long) fraction of memory available to be used for sys heap. ; The version number of the boot blocks affects the interpretation of the system heap size: ; ; if (BBVersion) <= BBOldVers then ; System heap size becomes DefSysHeapSize (see HWEqu). ; ; if BBOldVers < (BBVersion) < BBNewVers then ; if (BBVersion) = execBBvers then ; Executes boot blocks starting at BBEntry. ; System heap size becomes (BBSysHeapSize) (if it isn't already bigger). ; ; if BBNewBit is set in (BBVersion) then ; if BBExecBit is set then ; Executes boot blocks starting at BBEntry. ; if BBRelBit is cleared then ; System heap size becomes (BBSysHeapSize) (if it isn't already bigger) ; if BBRelBit is set then ; System heap is extended by BBSysHeapExtra + (BBSysHeapFract * (MemTop)) ; Values for boot blocks. bbOldVers EQU $14 ; really old versions of boot blocks are <= this bbOldExecVers EQU 'D' ; old version for executable boot blocks ; Bits for new boot blocks: bbNewBit EQU 7 ; set to indicate the use of the new format bbExecBit EQU 6 ; set to indicate dispatchable boot blocks bbRelBit EQU 5 ; set to indicate relative heap size specification ; bits 4 through 0 are reserved for future use by Apple and must be cleared. ; Corresponding values bbNewMask EQU $80 ; new boot blocks use #'s >= this bbExecMask EQU $40 ; bbRelMask EQU $20 ; ; equates for dynamic menuList structure ; ;----- Part 1 -- regular menus mbResID EQU 4 ; menuBar variant offset in menuList [word] menu1Size EQU mbResID + 2 ; Must be = 6 forever!!! ;----- Part 2 -- hierarchical menus lastHMenu EQU 0 ; offset in HMenu part of dynamic menuList [word] menuTitleSave EQU lastHMenu + 2 ; handle to saved bits behind title rectangle [handle] menu2Size EQU menuTitleSave+4 ; size of HMenu entry menuHoH EQU 0 ; hierarchical menu [handle] ;----- Size of menuList at InitMenus time -- no menus, no hierarchical menus initMListSize EQU menu1Size + menu2Size ; equates for mbarproc's save structure created when it receives Init Msg (Msg #3) ; ;----- Header lastMBSave EQU 0 ; offset to last menu saved in structure [word] mbCustomStorage EQU lastMBSave + 2 ; private storage for custom mbarproc's [handle] mbItemRect EQU mbCustomStorage + 4 ; rect of currently chosen menu item [rect] mbMenuDelay EQU mbItemRect + 8 ; get MenuDelay from paramram and store here [byte] mbMenuDrag EQU mbMenuDelay + 1 ; get MenuDrag from paramram and store here [byte] mbUglyScroll EQU mbMenuDrag + 1 ; flag to tell whether HMenu has been brought [word] ; before scrolling happens mbIconState EQU mbUglyScroll + 2 ; Place to save NMgr icon state mbHeader EQU mbIconState + 2 ; size of mb save header [$14] ; !!!!! CAUTION: mbHeader MUST be smaller than mbEntrySize !!!!! ;----- Entry mbRectSave EQU 0 ; rectangle of menu on screen [8 bytes] mbBitsSave EQU mbRectSave + 8 ; handle to saved bits behind menu rectangle mbMenuDir EQU mbBitsSave + 4 ; direction menu was placed on screen, ; to right or left of title (if first menu) ; or previous menu (if hierarchical menu) mbMLOffset EQU mbMenuDir + 2 ; 6 byte offset of menu in menuList [word] mbMLHandle EQU mbMLOffset + 2 ; handle of menu in menuList mbTopScroll EQU mbMLHandle + 4 ; top scrolled to menu item, from global topMenuItem [word] mbBotScroll EQU mbTopScroll + 2 ; bottom scrolled to menu item, from global atMenuBottom [word] mbReserved EQU mbBotScroll + 2 ; reserved field [long] mbEntrySize EQU mbReserved + 4 mbSaveSize EQU mbEntrySize*6 ; x-byte header and 5 entries of x-bytes each firstAltMenuCmd EQU $1B altMenuCmd1 EQU $1D ; itemCmd == $1D ==> unused indicator reserved for future Apple use altMenuCmd2 EQU $1E ; itemCmd == $1E ==> unused indicator reserved for future Apple use altMenuCmd3 EQU $1F ; itemCmd == $1F ==> unused indicator reserved for future Apple use lastAltMenuCmd EQU $1F mbRightDir EQU 0 ; menu went to the right (direction) mbLeftDir EQU 1 ; menu went to the left (direction) menuDelay EQU $7E ; param ram locations for user settable menuDrag EQU $7F ; hierarchical menu delay and drag ticks ENDIF ; ...already included