; ; Hacks to match MacOS (most recent first): ; ; 8/3/92 Added superseded boxFlag equates for code compatibility. ; 9/2/94 SuperMario ROM source dump (header preserved below) ; ; ; File: InternalOnlyEqu.a ; ; Contains: Internal Only Equates ; ; Written by: Everybody and their Mother ; ; Copyright: © 1990-1993 by Apple Computer, Inc., all rights reserved. ; ; Change History (most recent first): ; ; 12/22/93 RM Recycle boxFlags for new CPU's that will be shipping with ; Capone. Reusable boxFlags made available by Rich Biasi. This ; change by R. Montagne (4-6255). ; 12/13/93 PN Roll in Kaos and Horrors code to support AJ and Malcom machines. ; 11/23/93 rab Recycled boxCarnation33. Now is boxSoftmacSUN. Changed boxlfag ; #127 to boxExtended to signify new extended boxflag mechanism. ; 11/11/93 rab Added boxflags for Softmac… ; 11/10/93 fau Update from SuperMunggio . ; 8/25/93 chp Defined a box flag for TNT, reusing the Tesseract-in-a-Lego-box ; flag already reserved but not used. ; 11/9/93 RLE added box flags for 603-based PowerBooks ; 11/9/93 KW Added boxflags for STP machines ; 11/8/93 JRH boxDBLite16 is now boxPowerBookDuo250. boxDBLite20 is now ; boxPenLite. boxEscher25 is now boxYeagerFSTN. boxEscher33 is now ; boxPowerBookDuo270C. ; 11/08/93 HY Added boxJedi to boxflag list. ; 10/25/93 SAM Roll in from mc900ftjesus. Love changing this file! :-) ; 10/25/93 SAM Changed MMFlags mmCacheUnk1 to MMFigEnable. Added emo fields to ; the nkDiag info block. ; 9/9/93 SAM Updated nkSystemInfo ptrs, added warmstart fields to the ; nkDiagInfo, added a NanoKernalInfo block. ; 9/1/93 chp Removed DMADispGlobals structure to AMICEqu.a since that’s where ; this structure is significant. ; 08-13-93 jmp Added BlackBirdBFD to the BoxFlag list. ; 8/12/93 BG Added boxflags for various Carl Sagans. Updated boxflag list to ; use "official" names for released machines. ; 8/11/93 KW adding some new Smurf box flags. Also renamed exisiting ; boxRiscQuadra and boxRiscWombat ; 7/21/93 JRH moved PenLite boxFlag, and added two new ones for Yeager ; 6/3/93 SAM Straightened out the PDM boxflag names and added two more to the ; end of the list ; 5/18/93 BT Add missing bits to MMFlags breakout, still need some ; explanation though. ; 5/5/93 BG Added boxflags for Slimus (Optimus board in Color Classic box). ; 4/27/93 BG Added boxflags for WLCD II ("Malcolm") @ 25/33MHz for the ; SpeedBump project. ; 4/22/93 SAM Fixed the ddVectorCount calculation in DMADispGlobals. ; 4/5/93 RC Added SCC level 4 vectors to DMA interrupt handler data struct ; 3/11/93 SAM Added some fields in PDM's DMA dispatch table. ; 3/5/93 BG Added some more boxflags for other forms of Primus and Optimus ; (25/33MHz) and all 3 forms of Aladdin (aka ELB). ; 03/05/93 HY Added boxflag for boxPeterPan (32MHz 030 w/TV Tuner) ; 2/20/93 SAM Moved MemDispGlobals from hwPriv.a and added DMADispGlobals. ; 2/5/93 rab Added boxflags for boxPrimus20 (LC/040) and boxOptimus20 ; (Hook/040)and updated boxLastKnown. ; 2/5/93 SAM Added NanoKernel info block descriptors. ; 1/28/93 jmp Added the Norad and BudMan BoxFlag numbers. ; 1/20/93 GMA Adding slice33 ; 1/11/93 GMA Adding Hook33 and Slice25, bumping RISCWombat +2 to justify with ; Horror. ; 01-11-93 jmp Updated various BoxFlag names (from HORROR). ; 12/23/92 RC Added Support for Smurf on Wombat ; 12/7/92 GMA Moving new boxflags for cyclone and tempest (+2), justifying ; with Horror. ; 12/4/92 fau Had a typo in last checkin. Arghhh. ; 12/4/92 fau Put in temporary equates for BoxCyclone and BoxTempest 'cause S. ; Christensen has some files checked out that I can't modify to ; use the new box flags. ; 12/4/92 fau Changed BoxCyclone to BoxCyclone33 and BoxTempest to ; BoxTempest25. Added BoxCyclone40 and BoxTempest33. ; 10-29-92 jmp Sync’ed-up the BoxFlag list with the HORROR, Excelsior, and ; Reality projects. ; 10/27/92 fau Changed BoxCycloneEVT1 to BoxTempest. ; 9/25/92 RB Changed the BSR macros to take advantage that we only run on ; 020's and better CPUs. The change was needed to make all jumps ; pc relative in order to boot from RAM. ; 8/17/92 CCH Added equates for new universal flag longwords. ; 8/9/92 CCH Added boxflags for PDM and Tesseract. ; 7/7/92 CSS Note that with this update we are current upto Reality ; . Update from Reality: ; <21> 4/8/92 JSM #1026795: Add boxMacLCII (a.k.a. Foster Farms). ; 7/1/92 GA change old boxflagwombat20 to boxwombat33f ; 7/1/92 GA adding new boxflags for wombat and moving boxcycloneevt1 from 49 ; to 54 ; 6/21/92 RB Added a temporary boxCycloneEVT1 so that we can support EVT1 ; boards for a couple of weeks by doing runtime checks. ; 6/4/92 KW roll back in SM5,SM6 ; 6/4/92 KW rolled back to SM4 until I get other video stuff building and ; added ; 6/4/92 KW Adding boxWombat25... Missed it with last checkin ; 6/4/92 KW (NJV,H20) Added LongBSR6 macro. ; (djw,H22) Add boxFlag for powerbook 145 ; (BG,H21) Changed boxWombatLC to boxWombat20, boxWombat to ; boxWombat25. Added boxWombat40, boxWLCD20, boxWLCD25. ; 5/17/92 kc Roll in Horror Changes. Add boxFlags for new machines. Add ; DockingGlobals equ. Add BigBSR5 macor ; 4/7/92 JSM Renumber boxVail, boxCarnation, and boxDBLite; roll-in changes from Reality: ; <20> 3/24/92 JSM Nuke more code names: boxAuroraCX25 is boxMacIIci, boxF19 is ; boxMacIIfx. ; 2/11/92 RB Updated box flag values ; <19> 12/26/91 RB Removed PowerMgr definitions, these are now in their own file. ; PowerPrivEqu.a ; <18> 12/2/91 SAM Changed boxFlag names for the released CPUs to their official ; names. ; <17> 10/28/91 SAM/KSM Rolled in Regatta changes. ; ; <9> 8/30/91 SAM (ag) changed low power warn level on TIM to 5.85 ; <8> 8/22/91 SAM Updating equates to more closely resemble the TERROR sources. ; <7> 8/1/91 SAM Added box flag for Zydeco (which equals Eclipse33). Updating ; InVidFlags. ; <6> 7/25/91 SAM Reconfiguring the box flag values for the new CPUs. ; <5> 7/18/91 SAM Added a boxFlag for Eclipse33 ; <4> 7/1/91 SAM Added fields to the PmgrRec for Bad Battery stuff. ; <3> 6/14/91 SAM Added boxDBLite and boxAsahi. (HJR) Updated this file so its ; equal with the one in TERROR. (ag) added definition of new bit ; in pmgrflag. ; <1> 5/22/91 SAM Split off from 7.0 GM sources. ; ; <16> 8/6/91 KIP Add boxflag values for new CPUs. ; <15> 7/24/91 MH Added conditional wrapper(s) to prevent duplication of public ; interface declarations: SleepRequest, SleepDemand, SleepWakeUp, ; SleepqType, NoCalls, NoRequest, ADBBase, SlotQDT, SlotPrTbl, ; SlotVBLQ, ScrnVBLPtr, SlotTICKS ; <14> 4/10/91 ag change pmfree word to pmgrflag and pmfree bytes. changed bit ; definition of insleep flag. ; <13> 2/15/91 ag MSH: #BRC 80886 - Added a bit definition in sleep flags. ; <12> 1/30/91 gbm sab, #38: Change the ‘already including this file’ variable to ; all uppercase (for security reasons) ; <11> 1/8/91 SAM Added BoxFlags for Spike and Apollo. ; <10> 10/22/90 JJ Rex V8: Change all box flag references to use boxMacLC. Get rid ; of boxElsie and boxElsieV8. ; <9> 9/25/90 SAM Changing boxFlag names for XO, Elsie & Erickson to Classic, LC , ; and IIsi BoxMacLC/MacIIsi. ; <8> 9/13/90 MSH Added some LCD video RAM locations to be used by TIM for power ; cycling and sleep. ; <7> 7/9/90 JJ Add box flag for V8 Elsie. ; <6> 5/8/90 MSH Add new power cycling equs for Waimea. ; <4> 4/4/90 MSH Add Waimea box flag. ; <3> 2/8/90 HJR Change box flag to those of Private.a, Rev. 5. ; <2> 2/4/90 GA Added Low Mem global definition for Egret Manager "EgretBase" ; <1> 1/30/90 CCH Moved in REAL private equates from Private.a. ; ; Memory Manager ;———————————————————————————————————————————————————————————————————————————————————— ; ; This file contains proprietary information and should not be released outside ; of Apple Computer. This is important! ; ;———————————————————————————————————————————————————————————————————————————————————— ; ; IF &TYPE('__INCLUDINGINTERNALONLYEQU__') = 'UNDEFINED' THEN __INCLUDINGINTERNALONLYEQU__ SET 1 ; ********** IMPORTANT **************** ; ******* DO NOT RELEASE FOLLOWING EQUs TO OUTSIDE of Apple Computer ********* ; ********* tagBC32 EQU 0 ; Tag field [byte] MPtag32 EQU 1 ; Master Pointer Tag field [byte] SizeCor32 EQU 3 ; size correction field [byte] blkSize32 EQU 4 ; physical block size [long] handle32 EQU 8 ; back pointer to master pointer [pointer] blkData32 EQU 12 ; data starts here tagBC24 EQU 0 ; Tag and Byte Count field [long] handle24 EQU 4 ; back pointer to master pointer [pointer] blkData24 EQU 8 ; data starts here minFree EQU 12 ; (minimum block size) for old MemManager minFree24 EQU 12 ; (minimum block size) for 24 bit MemManager minFree32 EQU 16 ; (minimum block size) for 32 bit MemManager freeTag EQU $0 ; Tag for Free block nRelTag EQU $40000000 ; Tag for Non-Relocatable block relTag EQU $80000000 ; Tag for Relocatable block minAddr EQU $0 ; Min legal address maxAddr EQU $800000 ; Max legal address for 512K machine maxMasters EQU $1000 ; Ridiculously large allocation chunk size dfltMasters EQU 32 ; Default to 32 master pointers MMPRAMloc EQU $0001008A ; PRAM location for memory manager flag (1 byte) MMFlags EQU $1EFC ; (1 byte) low memory location to store the flags ; bit settings in MMflags: MMStartMode EQU $0 ; .... ...n, n=0 for 24 bit, n=1 for 32 bit MMMixed EQU $1 ; .... ..n., n=0 for no mixed mode, n=1 for mixed 23/32 mode MMSysheap EQU $2 ; .... .n.., n=0 for 24 bit system heap, n=1 for 32 bit system heap MMROZheap EQU $3 ; .... n..., n=0 for 24 bit ROZ heap, n=1 for 32 bit ROZ heap mmHighSysHeap EQU $4 ; ...n ...., n=1 for system heap starting way high, 0 for normal <3.3> mmFigEnable EQU $5 ; ..n. ...., n=1 for "new" memory mgr (Figment) ; mmCacheUnk2 EQU $6 ; .n.. ...., unknown, for Quadra caches ; bt mmInhibitAllCache EQU $7 ; n... ...., n=0 to use Quadra caches, n=1 to inhibit them ; bt SystemInfo EQU $0B73 ; System Info Byte MMFlagsDefault EQU (1< (1< Sysheapis24bit EQU $1 ; .... ..n., n=1 for 24 bit, n=0 for 32 bit system heap PhysMemTop EQU $1EF8 ; Total physical RAM --- including memory for screen buffer RealMemTop EQU $1EF4 ; amount of physcial RAM available for system use ; --- not including memory for screen buffer Phys2Log EQU $1EF0 ; Physical to logical address convertion for MMU translation table vMMNoPrologue EQU $1EE0 ; jump vector to MMnoPrologue vMMPPrologue EQU $1EE4 ; jump vector to MMPPrologue vMMPrologue EQU $1EE8 ; jump vector to MMPrologue vMMHPrologue EQU $1EEC ; jump vector to MMHPrologue vMMRHPrologue EQU $1FE0 ; jump vector to MMRHPrologue vMMMMPrologue EQU $1FE4 ; jump vector to MMMMPrologue vMMEpilogue EQU $1FE8 ; jump vector to MMEpilogue vMMNoErrEpilogue EQU $1FEC ; jump vector to MMNoErrEpilogue LockMemCT EQU $1FF4 ; (4) bytes, Lock Memory count DockingGlobals EQU $1FF8 ; pointer to docking globals ; ; ********** DO NOT RELEASE ANYTHING IN THIS FILE TO OUTSIDE of Apple Computer ******************* ; ********** IMPORTANT **************** ;——————————————————————————————————————————————————————————————————————————————————————————————— SAM ; Nanokernel Private ;——————————————————————————————————————————————————————————————————————————————————————————————— ;_______________________________________________________________________ ; Processor Info Record ; ; Used to pass Processor information from the NanoKernel to user mode ; software. ;_______________________________________________________________________ ProcessorInfoPtr equ $5FFFEFD8 ; logical address of ProcessorInfo record ProcessorInfoVer equ $5FFFEFDC ; version number of ProcessorInfo record ProcessorInfoLen equ $5FFFEFDE ; length of ProcessorInfo record ProcessorInfo record 0,increment ProcessorVersionReg ds.l 1 ; contents of the PVR special purpose register CpuClockRateHz ds.l 1 ; CPU Clock frequency BusClockRateHz ds.l 1 ; Bus Clock frequency DecClockRateHz ds.l 1 ; Decrementer Clock frequency PageSize ds.l 1 ; number of bytes in a memory page DataCacheTotalSize ds.l 1 ; number of bytes in the Data Cache InstCacheTotalSize ds.l 1 ; number of bytes in the Instruction Cache CoherencyBlockSize ds.w 1 ; number of bytes in a Coherency Block ReservationGranuleSize ds.w 1 ; number of bytes in a Reservation Granule CombinedCaches ds.w 1 ; 1 <- combined or no cache, 0 <- split cache InstCacheLineSize ds.w 1 ; number of bytes in a Line of the Instruction Cache DataCacheLineSize ds.w 1 ; number of bytes in a Line of the Data Cache DataCacheBlockSizeTouch ds.w 1 ; number of bytes in a Block for DCBT DCBTST InstCacheBlockSize ds.w 1 ; number of bytes in a Block of the Instruction Cache DataCacheBlockSize ds.w 1 ; number of bytes in a Block of the Data Cache InstCacheAssociativity ds.w 1 ; Associativity of the Instruction Cache DataCacheAssociativity ds.w 1 ; Associativity of the Data Cache TransCacheTotalSize ds.w 1 ; number of entries in the Translation Cache TransCacheAssociativity ds.w 1 ; Associativity of the Translation Cache align 32 ; pad to nice cache block alignment Size equ *-ProcessorInfo endr ;_______________________________________________________________________ ; System Info Record ; ; Used to pass System information from the NanoKernel to user mode ; software. ;_______________________________________________________________________ NKSystemInfoPtr equ $5FFFEFF0 ; logical address of NKSystemInfo record NKSystemInfoVer equ $5FFFEFF4 ; version number of NKSystemInfo record NKSystemInfoLen equ $5FFFEFF6 ; length of NKSystemInfo record NKSystemInfo record 0,increment PhysicalMemorySize ds.l 1 ; Number of bytes in Physical RAM UsableMemorySize ds.l 1 ; Number of bytes in Usable RAM LogicalMemorySize ds.l 1 ; Number of bytes in Logical RAM HashTableSize ds.l 1 ; Number of bytes in Memory Hash Table L2DataCacheTotalSize ds.l 1 ; number of bytes in the L2 Data Cache L2InstCacheTotalSize ds.l 1 ; number of bytes in the L2 Instruction Cache L2CombinedCaches ds.w 1 ; 1 <- combined or no cache, 0 <- split cache L2InstCacheBlockSize ds.w 1 ; number of bytes in a Block of the L2 Instruction Cache L2DataCacheBlockSize ds.w 1 ; number of bytes in a Block of the L2 Data Cache L2InstCacheAssociativity ds.w 1 ; Associativity of the L2 Instruction Cache L2DataCacheAssociativity ds.w 1 ; Associativity of the L2 Data Cache ds.b 2 ; unused ds.b 2 ; unused FlashManufacturerCode ds.b 1 ; Flash ROM Manufacturer code FlashDeviceCode ds.b 1 ; Flash ROM Device code FlashStart ds.l 1 ; Starting address of Flash ROM FlashSize ds.l 1 ; Number of bytes in Flash ROM align 16 Bank0Start ds.l 1 ; Starting address of RAM bank 0 Bank0Size ds.l 1 ; Number of bytes in RAM bank 0 Bank1Start ds.l 1 ; Starting address of RAM bank 1 Bank1Size ds.l 1 ; Number of bytes in RAM bank 1 Bank2Start ds.l 1 ; Starting address of RAM bank 2 Bank2Size ds.l 1 ; Number of bytes in RAM bank 2 Bank3Start ds.l 1 ; Starting address of RAM bank 3 Bank3Size ds.l 1 ; Number of bytes in RAM bank 3 Bank4Start ds.l 1 ; Starting address of RAM bank 4 Bank4Size ds.l 1 ; Number of bytes in RAM bank 4 Bank5Start ds.l 1 ; Starting address of RAM bank 5 Bank5Size ds.l 1 ; Number of bytes in RAM bank 5 Bank6Start ds.l 1 ; Starting address of RAM bank 6 Bank6Size ds.l 1 ; Number of bytes in RAM bank 6 Bank7Start ds.l 1 ; Starting address of RAM bank 7 Bank7Size ds.l 1 ; Number of bytes in RAM bank 7 Bank8Start ds.l 1 ; Starting address of RAM bank 8 Bank8Size ds.l 1 ; Number of bytes in RAM bank 8 Bank9Start ds.l 1 ; Starting address of RAM bank 9 Bank9Size ds.l 1 ; Number of bytes in RAM bank 9 Bank10Start ds.l 1 ; Starting address of RAM bank 10 Bank10Size ds.l 1 ; Number of bytes in RAM bank 10 Bank11Start ds.l 1 ; Starting address of RAM bank 11 Bank11Size ds.l 1 ; Number of bytes in RAM bank 11 Bank12Start ds.l 1 ; Starting address of RAM bank 12 Bank12Size ds.l 1 ; Number of bytes in RAM bank 12 Bank13Start ds.l 1 ; Starting address of RAM bank 13 Bank13Size ds.l 1 ; Number of bytes in RAM bank 13 Bank14Start ds.l 1 ; Starting address of RAM bank 14 Bank14Size ds.l 1 ; Number of bytes in RAM bank 14 Bank15Start ds.l 1 ; Starting address of RAM bank 15 Bank15Size ds.l 1 ; Number of bytes in RAM bank 15 align 32 ; pad to nice cache block alignment MaxBanks equ 16 ; 16 banks, 0…15 Size equ *-SystemInfo endr ;_______________________________________________________________________ ; Diagnostic Info Record ; ; Used to pass Diagnostic information from the power on Diagnostics to ; the NanoKernel, and from the NanoKernel to user mode software. ;_______________________________________________________________________ nkDiagInfoPtr equ $5FFFEFE8 ; logical address of DiagnosticInfo record nkDiagInfoVer equ $5FFFEFEC ; version number of DiagnosticInfo record nkDiagInfoLen equ $5FFFEFEE ; length of DiagnosticInfo record nkDiagInfo record 0,increment ds.b 236 ; it WILL all fit in 256 bytes DiagPOSTResult2 ds.l 1 ; POST results DiagPOSTResult1 ds.l 1 ; POST results DiagEmoRestart ds.l 1 ; Burn in restart flag DiagWarmStartHigh ds.l 1 ; First long of native warm start (WLSC) DiagWarmStartLow ds.l 1 ; Second long of native warm start (SamB) align 32 ; pad to nice cache block alignment Size equ *-nkDiagInfo endr ;_______________________________________________________________________ ; NanoKernel Info Record ; ; Used to pass NanoKernel statistics from the NanoKernel to user mode ; software. ;_______________________________________________________________________ nkNanoKernelInfoPtr equ $5FFFEFE0 ; logical address of NanoKernelInfo record nkNanoKernelInfoVer equ $5FFFEFE4 ; version number of NanoKernelInfo record nkNanoKernelInfoLen equ $5FFFEFE6 ; length of NanoKernelInfo record nkNanoKernelInfo record 0,increment ExceptionCauseCounts ds.l 32 ; counters per exception cause NanoKernelCallCounts ds.l 16 ; counters per NanoKernel call ExternalIntCount ds.l 1 ; count of External Interrupts MisalignmentCount ds.l 1 ; count of Misalignment Interrupts FPUReloadCount ds.l 1 ; count of FPU reloads on demand DecrementerIntCount ds.l 1 ; count of Decrementer Interrupts QuietWriteCount ds.l 1 ; count of Writes to Quiet Read-Only memory HashTableCreateCount ds.l 1 ; count of Hash Table Entry creations HashTableDeleteCount ds.l 1 ; count of Hash Table Entry deletions HashTableOverflowCount ds.l 1 ; count of Hash Table Entry overflows EmulatedUnimpInstCount ds.l 1 ; count of Emulated unimplemented instructions NCBPtrCacheMissCount ds.l 1 ; count of NCB Pointer cache misses ExceptionPropagateCount ds.l 1 ; count of Exceptions propagated to system ExceptionForcedCount ds.l 1 ; count of Exceptions forced to system align 8 ; align for 64 bit time base counters SysContextCpuTime ds.l 2 ; CPU Time used by System Context AltContextCpuTime ds.l 2 ; CPU Time used by Alternate Context align 32 ; pad to nice cache block alignment Size equ *-nkNanoKernelInfo endr ;——————————————————————————————————————————————————————————————————————————————————————————————— ; rb, start MACRO BigLea &label,® lclc &OLDMACH &OLDMACH SETC &Setting('MACHINE') ; save the current Machine setting MACHINE MC68020 LEA (&label-*).L,® LEA *-6(pc,&concat(®,'.l')),® MACHINE &OLDMACH ; reset Machine setting ENDM MACRO BigJmp &label,&scratch lclc &OLDMACH &OLDMACH SETC &Setting('MACHINE') ; save the current Machine setting MACHINE MC68020 BRA.L (&label) MACHINE &OLDMACH ; reset Machine setting ENDM MACRO BigJsr &label,&scratch lclc &OLDMACH &OLDMACH SETC &Setting('MACHINE') ; save the current Machine setting MACHINE MC68020 BSR.L &label MACHINE &OLDMACH ; reset Machine setting ENDM MACRO ; BigBSR5 &label,&scratch lclc &OLDMACH &OLDMACH SETC &Setting('MACHINE') ; save the current Machine setting MACHINE MC68020 LEA @1,A5 BRA.L (&label) MACHINE &OLDMACH ; reset Machine setting @1 ENDM MACRO ; BigBSR6 &label,&scratch lclc &OLDMACH &OLDMACH SETC &Setting('MACHINE') ; save the current Machine setting MACHINE MC68020 LEA @1,A6 BRA.L (&label) MACHINE &OLDMACH ; reset Machine setting @1 ENDM MACRO ; LongBSR6 &label lclc &OLDMACH &OLDMACH SETC &Setting('MACHINE') ; save the current Machine setting MACHINE MC68020 LEA @1,A6 BRA.L (&label) MACHINE &OLDMACH ; reset Machine setting @1 ENDM ;_________________________________ ; ; RAM-less subroutine call macros ;_________________________________ MACRO BSR5 &label lclc &OLDMACH &OLDMACH SETC &Setting('MACHINE') ; save the current Machine setting MACHINE MC68020 LEA @1,A5 BRA.L &label MACHINE &OLDMACH ; reset Machine setting @1 ENDM MACRO RTS5 JMP (A5) ENDM MACRO BSR6 &label lclc &OLDMACH &OLDMACH SETC &Setting('MACHINE') ; save the current Machine setting MACHINE MC68020 LEA @1,A6 BRA.L &label MACHINE &OLDMACH ; reset Machine setting @1 ENDM ; rb, end MACRO RTS6 JMP (A6) ENDM MACRO _GetWaitFlags MOVEA.W #2,A0 _InternalWait ENDM MACRO _SetWaitFlags MOVEA.W #3,A0 _InternalWait ENDM MACRO _DisableDynWait MOVEA.W #4,A0 _InternalWait ENDM MACRO _EnableDynWait MOVEA.W #5,A0 _InternalWait ENDM MACRO _DisablePermWait MOVEA.W #6,A0 _InternalWait ENDM MACRO _EnablePermWait MOVEA.W #7,A0 _InternalWait ENDM ; ; _AssumeEq Arg1, Arg2 -- macro to generate a compile-time error if two ; arguments are unequal. ; ; To optimize code size, we will be making various assumptions, ; mainly as to offset values. This macro is a way of formalizing ; those assumptions within the code. ; IF (&TYPE('_AssumeEq') = 'UNDEFINED') THEN MACRO _AssumeEq &Arg1,&Arg2 IF &Eval(&Arg1) <> &Eval(&Arg2) THEN AERROR 'Bad assumption' ENDIF ENDM ENDIF ;_________________________________________________________________________________ ; Memory Dispatch Private Globals ; MemDispGlobals RECORD 0, INCREMENT mdSize DS.L 1 ; size of structure (including lock table) mdPageSize DS.L 1 ; page size on bytes mdLog2PageSize DS.L 1 ; Log2(page size) mdPages24 DS.L 1 ; number of logical pages in 24-bit mode mdPages32 DS.L 1 ; number of logical pages in 32-bit mode mdReserved1 DS.L 1 ; reserved mdPageFrames DS.L 1 ; number of entries in page frame lock table mdLockTable EQU *-MemDispGlobals ; start of page frame lock count table mdGlobalSize EQU *-MemDispGlobals ; size of globals ENDR ;------------------------------------------------------------------- ; ; Time Manager Local Variable Struct ; TimeVars EQU $B30 ; the low memory pointer to the variable struct ; the following only apply to the old time manager, and may be used in patch files. TTInt EQU 0 ; time of this interrupt cycle [long] TTAppoint EQU 4 ; pointer to next appointment in MSQueue [long] MSQueue EQU 8 ; queue header for MS Queue [10 bytes] MSLSize EQU 18 ; size of these variables for allocation purposes ;------------------------------------------------------------------- ; Misc low memory private variables ; SCCIOPFlag EQU $0BFE ; low mem copy of SCC IOP mode PRAM byte as of startup time <4.9> IOPMgrVars EQU $0C28 ; low memory pointer to IOPmgr data structures <3.1> IF &TYPE('__SysEqu__') = 'UNDEFINED' THEN ADBBase EQU $0CF8 ; (long) pointer to Front Desk Buss Variables <3.1> ENDIF EgretBase EQU $0DE0 ; Egret Manager global variables <2> IF &TYPE('__SysEqu__') = 'UNDEFINED' THEN SlotQDT EQU $0D04 ; ptr to slot Int queue table <3.1> SlotPrTbl EQU $0D08 ; ptr to slot priority table (ROM $78 only) <3.1> SlotVBLQ EQU $0D0C ; ptr to slot VBL queue table (ROM $78 only) <3.1> ScrnVBLPtr EQU $0D10 ; save for ptr to main screen VBL queue <3.1> SlotTICKS EQU $0D14 ; ptr to slot tickcount table (ROM $78 only) <3.1> ENDIF AddrMapFlags EQU $0DD0 ; (long) valid bits for base addresses 0-31 (universal ROM) <2.7> AddrMapFlags1 EQU $2400 ; (long) valid bits for base addresses 32-63 (universal ROM) AddrMapFlags2 EQU $2404 ; (long) valid bits for base addresses 64-95 (universal ROM) UnivROMFlags EQU $0DD4 ; (long) product specific flags for universal ROM 0-31 <2.7> UnivROMFlags1 EQU $2408 ; (long) product specific flags for universal ROM 32-63 UnivROMFlags2 EQU $240C ; (long) product specific flags for universal ROM 64-95 UnivInfoPtr EQU $0DD8 ; (long) Pointer to configuration information for universal ROM <2.7> ;------------------------------------------------------------------- ; Equates for values that the BoxFlag global may take: each identifies ; a particular logic board. BoxFlag EQU $0CB3 ; (byte) identifies which product we are running on <3.6> boxUnknown EQU $FD ; unknown product <3.6> boxPlus EQU $FE ; a Mac Plus <3.6> boxSE EQU $FF ; a Mac SE <3.6> boxMacII EQU 0 ; a Mac II <3.6> boxMacIIx EQU 1 ; a Mac IIx <3.6> boxMacIIcx EQU 2 ; a Mac IIcx <3.6> boxSE30 EQU 3 ; a Mac SE 30 <3.6> boxPortable EQU 4 ; a Mac Portable <3.6> boxMacIIci EQU 5 ; Aurora 25MHz 3 slot package <3.6> boxFourSquare EQU 6 ; a Four Square (030, 68882, 6 slots, MDU, 2 IOPs, SCSI DMA) (never shipped) <3.6> boxMacIIfx EQU 7 ; a F19 (030, 68882, 6 slots, OSS, BIUs, MC, 2 IOPs, SCSI DMA) <3.6> boxAuroraCX16 EQU 8 ; Aurora 16MHz 3 slot package (never shipped) <3.6> boxAuroraSE25 EQU 9 ; Aurora 25MHz SE30 package (reserved for future) <3.6> boxAuroraSE16 EQU 10 ; Aurora 16MHz SE30 package (reserved for future) <3.6> boxMacClassic EQU 11 ; XO (SE with 1 int floppy, brightness PWM) <3> <9> boxMacIIsi EQU 12 ; Erickson (20MHz, 030, optl 68882, MDU, RBV,1 direct slot) <3> <9> boxMacLC EQU 13 ; Elsie (16 MHz, 020, 1 direct slot, V8 chip) <3><7> <9> boxQuadra900 EQU 14 ; Eclipse (040, 5 slots+PDS, VIA1&2, Orwell MCA, 2 IOPs, SCSI DMA) <5.1> boxPowerBook170 EQU 15 ; Tim (25 MHz, 030, optional FPU, VIA1&2, JAWS, PMGR, 1 direct slot <4> boxQuadra700 EQU 16 ; Spike (25MHz 040) boxClassicII EQU 17 ; Apollo boxPowerBook100 EQU 18 ; Asahi (Its a Sony!) Portable <2> boxPowerBook140 EQU 19 ; TimLC 16 Mhz Tim; no FPU boxZydeco EQU 20 ; code-compatibility equate boxQuadra950 EQU 20 ; a Mac Quadra 950 (33MHz 040, 5 slots+PDS, VIA1&2, Orwell MCA, 2 IOPs, SCSI 2*53c96) boxLCIII EQU 21 ; Vail (25 MHz, 030, optional FPU, 1 PDS, Sonora) boxSoftmacSUN EQU 22 ; Softmac on Sun, (recycled, was boxCarnation33) boxPowerBookDuo210 EQU 23 ; a PowerBook Duo 210 (25MHz 030, PMGR, expansion connector, no floppy) boxCentris650 EQU 24 ; Wombat (25MHz 040 or 040LC, 3 slots+PDS, VIA1&2, djMEMC, SCSI 53c96, optional enet) boxColumbia EQU 25 ; Columbia (25 Mhz, 030, PDS, Atlantis Decoder, Color Classic) boxPowerBookDuo230 EQU 26 ; a PowerBook Duo 230 (33MHz 030, PMGR, expansion connector, no floppy) boxPowerBook180 EQU 27 ; a PowerBook 180 (33Mhz, 030, FPU, VIA1&2, Niagra, PMGR, 1 direct slot) boxPowerBook160 EQU 28 ; a PowerBook 160 (25Mhz, 030, FPU, VIA1&2, Niagra, PMGR, 1 direct slot) boxQuadra800 EQU 29 ; Wombat (20MHz 040LC, 3 slots+PDS, VIA1&2, djMEMC, SCSI 53c96, optional enet) boxQuadra650 EQU 30 ; Wombat (33Mhz 040, 3 slots+PDS, VIA1&2, djMEMC, SCSI53c96, enet) boxMacLCII EQU 31 ; Foster Farms (68030 LC) boxPowerBookDuo250 EQU 32 ; Ansel boxDBLite20 EQU 33 ; Pen-based DUO boxVail16 EQU 34 ; Vail (16 MHz, 030, optional FPU, 1 PDS, Sonora) boxCarnation25 EQU 35 ; Carnation (25 MHz, 030, FPU, 3 NuBus slots) boxCarnation16 EQU 36 ; Carnation (16 MHz, 030, FPU, 3 NuBus slots) boxCyclone33 EQU 37 ; Cyclone <33 Mhz, 040, FPU, 3NuBus slots+DAVE+PUS) boxBrazil16L EQU 38 ; Brazil (16Mhz, Lego package) boxBrazil32L EQU 39 ; Brazil (32MHz on motherboard, Lego package) boxBrazil16F EQU 40 ; Brazil (16MHz, Fridgidaire minitower package) boxBrazil32F EQU 41 ; Brazil (32MHz on motherboard, Fridgidaire package) boxBrazilC EQU 42 ; Brazil (any speed, any package for consumer release) boxSlice EQU 43 ; Slice boxMonet EQU 44 ; Monet (33MHz 030/FPU, VIA1&2, Niagara, PMGR, 16 color LCD, 1 direct slot) boxWombat40 EQU 45 ; Wombat (40MHz 040, 3 slots+PDS, VIA1&2, djMEMC, SCSI 53c96, enet) boxCentris610 EQU 46 ; WLCD (20 MHz 040LC, PDS only, VIA1&2, djMEMC, SCSI 53c96, optional enet) boxQuadra610 EQU 47 ; WLCD (25 MHz 040LC, PDS only, VIA1&2, djMEMC, SCSI 53c96, optional enet) boxPowerBook145 EQU 48 ; PowerBook 145 (25MHz 030, no FPU, otherwise same as 140) boxBrazil32cF EQU 49 ; Brazil (32MHz w/ext cache, Fridgidaire package) boxHook EQU 50 ; Hook boxUnused EQU 51 ; (was a Consumer WLCD ... now unused) boxWombat20 EQU 52 ; Wombat (20MHz 040LC, 3 slots+PDS, VIA1&2, djMEMC, SCSI 53c96, optional enet, Lego) boxWombat40F EQU 53 ; Wombat (40MHz 040, 3 slots+PDS, VIA1&2, djMEMC, SCSI 53c96, enet, Frigidaire package) boxCentris660AV EQU 54 ; (In HORROR, Reality, and Excelsior, this is called BoxCycloneEVT1.) boxPDM EQU 55 ; Mac/RISC dude (88100 ... (temp) ) boxRiscQuadra700 EQU 55 ; Quadra 700 w/Risc Card boxVail33 EQU 56 ; Vail (33 MHz, 030, optional FPU, 1 PDS, ENET, Sonora) boxWLCD33 EQU 57 ; WLCD (33 MHz 040, PDS only, VIA1&2, djMEMC, SCSI 53c96, optional enet, QFC) boxPDM66F EQU 58 ; PDM/Cold Fusion (66 Mhz 601, Fridge) boxPDM80F EQU 59 ; PDM/Cold Fusion (80 Mhz 601, Fridge) boxPDM100F EQU 60 ; PDM/Cold Fusion (100 Mhz 601, Fridge) boxTNTProto1 EQU 61 ; TNT bringup board boxTesseractF EQU 62 ; Tesseract (66 Mhz 601, Frigidaire) boxTesseractC EQU 63 ; Tesseract (66 Mhz 601, Consumer) boxJust930 EQU 64 ; 930 boxHokusai EQU 65 ; Hokusai (33MHz 030/FPU, VIA1&2, Niagara, PMGR, 256 color TFT LCD, 1 direct slot) boxBlackbird EQU 66 ; Blackbird (50/25MHz 040, VIA1&2, Pratt, PGE, 256 color 9.4" TFT LCD, 1 direct slot) boxBlackbirdLC EQU 67 ; Blackbird (50/25MHz 040LC, VIA1&2, Pratt, PGE, 256 color 9.4" STN LCD, 1 direct slot) boxPDMEvt1 EQU 68 ; PDM (? Mhz 601, WLCD, Evt1) boxPDM50WLCD EQU 69 ; PDM (50 Mhz 601, WLCD) boxYeagerFSTN EQU 70 ; LC040 Duo with FSTN boxPowerBookDuo270C EQU 71 ; 33MHz Escher (030, PMGR, expansion connector, no floppy, 256 color TFT LCD, FPU) boxQuadra840AV EQU 72 ; Cyclone <40 Mhz, 040, FPU, 3NuBus slots+DAVE+PUS) boxTempest33 EQU 73 ; Tempest <33 Mhz, 040LC, 1 Direct Slot slots+DAVE+PUS) boxHook33 EQU 74 ; Hook 33MHz boxSlice25 EQU 75 ; Slice 25MHz boxRiscCentris650 EQU 76 ; Centris650 w/RISC Smurf card boxSlice33 EQU 77 ; <15> boxNorad Equ 78 ; a PowerBook 160 at 33Mhz (see above) boxBudMan Equ 79 ; 25MHz DBLite with SWIM-2 Floppy and Midas (touchpad) boxPrimus20 EQU 80 ; Primus (20MHz 040LC, 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, LC package) boxOptimus20 EQU 81 ; Optimus (20MHz 040LC, 1 LC slot, 1 CommSlot, VIA1&2, MEMCjr, SCSI 53c96, Hook package) boxHookTV EQU 82 ; HookTV (32MHz 030, no slots, TV Tuner, VIA1&2, VISA decoder, 512k VRAM soldered) boxLC475 EQU 83 ; Primus (25MHz 040LC, 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, LC package) boxPrimus33 EQU 84 ; Primus (33MHz 040LC, 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, LC package) boxOptimus25 EQU 85 ; Optimus (25MHz 040LC, 1 LC slot, 1 CommSlot, VIA1&2, MEMCjr, SCSI 53c96, Hook package) boxLC575 EQU 86 ; Optimus (33MHz 040 , 1 LC slot, 1 CommSlot, VIA1&2, MEMCjr, SCSI 53c96, Hook package) boxAladdin20 EQU 87 ; Aladdin (20MHz 040LC, 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, ELB package) boxQuadra605 EQU 88 ; Aladdin (25MHz 040LC, 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, ELB package) boxAladdin33 EQU 89 ; Aladdin (33MHz 040 , 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, ELB package) boxMalcolm25 EQU 90 ; Malcolm (25MHz 040(,LC), PDS only, VIA1&2, MEMCjr, SCSI 53c96, optional ENet, QFC) boxMalcolm33 EQU 91 ; Malcolm (33MHz 040, PDS only, VIA1&2, MEMCjr, SCSI 53c96, optional ENet, QFC) boxSlimus25 EQU 92 ; Slimus (25MHz 040LC, exactly like an Optimus except in a Color Classic box) boxSlimus33 EQU 93 ; Slimus (33MHz 040LC, exactly like an Optimus except in a Color Classic box) boxPDM66WLCD EQU 94 ; PDM (66Mhz 601, WLCD) boxPDM80WLCD EQU 95 ; PDM (80Mhz 601, WLCD) boxYeagerG EQU 96 ; Yeager DUO (25MHz 040LC, PMGR, expansion connector, no floppy, MBT, Gray AM) boxYeagerC EQU 97 ; Yeager DUO (25MHz 040LC, PMGR, expansion connector, no floppy, MBT, Color AM) boxRiscQuadra900 EQU 98 ; 900 with Smurf card boxRiscQuadra950 EQU 99 ; 950 with Smurf card boxRiscCentris610 EQU 100 ; C610 with Smurf card boxRiscQuadra800 EQU 101 ; Q800 with Smurf card boxRiscQuadra610 EQU 102 ; Q610 with Smurf card boxRiscQuadra650 EQU 103 ; Q650 with Smurf card boxRiscTempest EQU 104 ; Tempest with Smurf card boxPDM50L EQU 105 ; PDM/Carl Sagan (50MHz 601, HMC, AMIC, AWACS, Mace ENet, Lego package) boxPDM66L EQU 106 ; PDM/Carl Sagan (66MHz 601, HMC, AMIC, AWACS, Mace ENet, Lego package) boxPDM80L EQU 107 ; PDM/Carl Sagan (80MHz 601, HMC, AMIC, AWACS, Mace ENet, Lego package) boxBlackbirdBFD EQU 108 ; Blackbird (66/33MHz 040LC, VIA1&2, Pratt, PGE, 256 color 10.X" TFT LCD, 1 direct slot) boxJedi EQU 109 ; Jedi (33MHz, 030, low cost AIO powerbook, MSC, IDE, floppy ) boxSTPQ700 EQU 110 ; Q700 with STP card boxSTPQ900 EQU 111 ; Q900 with STP card boxSTPQ950 EQU 112 ; Q950 with STP card boxSTPC610 EQU 113 ; C610 with STP card boxSTPC650 EQU 114 ; C650 with STP card boxSTPQ610 EQU 115 ; Q610 with STP card boxSTPQ650 EQU 116 ; Q650 with STP card boxSTPQ800 EQU 117 ; Q800 with STP card boxAJ EQU 118 ; AJ (66 MHz 603, duo powerbook) boxAJ80 EQU 119 ; AJ (80 MHz 603, duo powerbook) boxMalcolmBB EQU 120 ; Malcolm (argh, same name as WLCD II)(66 MHz 603 upgrade to Blackbird) boxMalcolmBB80 EQU 121 ; Malcolm (argh, same name as WLCD II)(80 MHz 603 upgrade to Blackbird) boxM2 EQU 122 ; M2 (66 MHz 603, duo powerbook) boxM280 EQU 123 ; M2 (80 MHz 603, duo powerbook) boxSoftmacHP EQU 124 ; Softmac on HP boxSoftmacIBM EQU 125 ; Softmac on IBM boxSoftmacAUX EQU 126 ; Softmac on AUX boxExtended EQU 127 ; Uses new extended boxflag mechanism boxLastKnown EQU boxExtended ; Please, always update this entry! ;------------------------------------------------------------------- ; The following boxFlags are being recycled for new CPU's that will be shipping ; with Capone. These flags were originally assigned to projects that have never ; been shipped. Availability of these boxFlags from list supplied by R. Biasi. ; boxTellShow EQU 92 ; Tell (any MHz 040LC, exactly like an Optimus except in a Show or ShowBiz enclosure) boxTellXfmr EQU 93 ; Tell (any MHz 040LC, exactly like an Optimus except in a Transformer enclosure) ENDIF ; ...already included