sys7.1-doc-wip/Internal/Asm/InternalOnlyEqu.a

775 lines
40 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; Hacks to match MacOS (most recent first):
;
; <Sys7.1> 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):
;
; <SM54> 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).
; <SM53> 12/13/93 PN Roll in Kaos and Horrors code to support AJ and Malcom machines.
; <SM52> 11/23/93 rab Recycled boxCarnation33. Now is boxSoftmacSUN. Changed boxlfag
; #127 to boxExtended to signify new extended boxflag mechanism.
; <SM51> 11/11/93 rab Added boxflags for Softmac…
; <SM50> 11/10/93 fau Update from SuperMunggio <SMG2>.
; <SMG2> 8/25/93 chp Defined a box flag for TNT, reusing the Tesseract-in-a-Lego-box
; flag already reserved but not used.
; <SM49> 11/9/93 RLE added box flags for 603-based PowerBooks
; <SM48> 11/9/93 KW Added boxflags for STP machines
; <SM47> 11/8/93 JRH boxDBLite16 is now boxPowerBookDuo250. boxDBLite20 is now
; boxPenLite. boxEscher25 is now boxYeagerFSTN. boxEscher33 is now
; boxPowerBookDuo270C.
; <SM46> 11/08/93 HY Added boxJedi to boxflag list.
; <SM45> 10/25/93 SAM Roll in <MC2> from mc900ftjesus. Love changing this file! :-)
; <MC2> 10/25/93 SAM Changed MMFlags mmCacheUnk1 to MMFigEnable. Added emo fields to
; the nkDiag info block.
; <SM44> 9/9/93 SAM Updated nkSystemInfo ptrs, added warmstart fields to the
; nkDiagInfo, added a NanoKernalInfo block.
; <SM43> 9/1/93 chp Removed DMADispGlobals structure to AMICEqu.a since thats where
; this structure is significant.
; <SM42> 08-13-93 jmp Added BlackBirdBFD to the BoxFlag list.
; <SM41> 8/12/93 BG Added boxflags for various Carl Sagans. Updated boxflag list to
; use "official" names for released machines.
; <SM40> 8/11/93 KW adding some new Smurf box flags. Also renamed exisiting
; boxRiscQuadra and boxRiscWombat
; <SM39> 7/21/93 JRH moved PenLite boxFlag, and added two new ones for Yeager
; <SM38> 6/3/93 SAM Straightened out the PDM boxflag names and added two more to the
; end of the list
; <SM37> 5/18/93 BT Add missing bits to MMFlags breakout, still need some
; explanation though.
; <SM36> 5/5/93 BG Added boxflags for Slimus (Optimus board in Color Classic box).
; <SM35> 4/27/93 BG Added boxflags for WLCD II ("Malcolm") @ 25/33MHz for the
; SpeedBump project.
; <SM34> 4/22/93 SAM Fixed the ddVectorCount calculation in DMADispGlobals.
; <SM33> 4/5/93 RC Added SCC level 4 vectors to DMA interrupt handler data struct
; <SM32> 3/11/93 SAM Added some fields in PDM's DMA dispatch table.
; <SM31> 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).
; <SM30> 03/05/93 HY Added boxflag for boxPeterPan (32MHz 030 w/TV Tuner)
; <SM29> 2/20/93 SAM Moved MemDispGlobals from hwPriv.a and added DMADispGlobals.
; <SM28> 2/5/93 rab Added boxflags for boxPrimus20 (LC/040) and boxOptimus20
; (Hook/040)and updated boxLastKnown.
; <SM27> 2/5/93 SAM Added NanoKernel info block descriptors.
; <SM26> 1/28/93 jmp Added the Norad and BudMan BoxFlag numbers.
; <SM25> 1/20/93 GMA Adding slice33
; <SM24> 1/11/93 GMA Adding Hook33 and Slice25, bumping RISCWombat +2 to justify with
; Horror.
; <SM23> 01-11-93 jmp Updated various BoxFlag names (from HORROR).
; <SM22> 12/23/92 RC Added Support for Smurf on Wombat
; <SM21> 12/7/92 GMA Moving new boxflags for cyclone and tempest (+2), justifying
; with Horror.
; <SM20> 12/4/92 fau Had a typo in last checkin. Arghhh.
; <SM19> 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.
; <SM18> 12/4/92 fau Changed BoxCyclone to BoxCyclone33 and BoxTempest to
; BoxTempest25. Added BoxCyclone40 and BoxTempest33.
; <SM17> 10-29-92 jmp Synced-up the BoxFlag list with the HORROR, Excelsior, and
; Reality projects.
; <SM16> 10/27/92 fau Changed BoxCycloneEVT1 to BoxTempest.
; <SM15> 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.
; <SM14> 8/17/92 CCH Added equates for new universal flag longwords.
; <SM13> 8/9/92 CCH Added boxflags for PDM and Tesseract.
; <SM12> 7/7/92 CSS Note that with this update we are current upto Reality
; <R22>. Update from Reality:
; <21> 4/8/92 JSM #1026795: Add boxMacLCII (a.k.a. Foster Farms).
; <SM11> 7/1/92 GA change old boxflagwombat20 to boxwombat33f
; <SM10> 7/1/92 GA adding new boxflags for wombat and moving boxcycloneevt1 from 49
; to 54
; <SM9> 6/21/92 RB Added a temporary boxCycloneEVT1 so that we can support EVT1
; boards for a couple of weeks by doing runtime checks.
; <SM8> 6/4/92 KW roll back in SM5,SM6
; <SM7> 6/4/92 KW rolled back to SM4 until I get other video stuff building and
; added
; <SM6> 6/4/92 KW Adding boxWombat25... Missed it with last checkin
; <SM5> 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.
; <SM4> 5/17/92 kc Roll in Horror Changes. Add boxFlags for new machines. Add
; DockingGlobals equ. Add BigBSR5 macor
; <SM3> 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.
; <SM2> 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] <v1.7>
MPtag32 EQU 1 ; Master Pointer Tag field [byte] <v1.7>
SizeCor32 EQU 3 ; size correction field [byte] <v1.7>
blkSize32 EQU 4 ; physical block size [long] <v1.7>
handle32 EQU 8 ; back pointer to master pointer [pointer] <v1.7>
blkData32 EQU 12 ; data starts here <v1.7>
tagBC24 EQU 0 ; Tag and Byte Count field [long] <v1.7>
handle24 EQU 4 ; back pointer to master pointer [pointer] <v1.7>
blkData24 EQU 8 ; data starts here <v1.7>
minFree EQU 12 ; (minimum block size) for old MemManager <v2.0>
minFree24 EQU 12 ; (minimum block size) for 24 bit MemManager <v2.0>
minFree32 EQU 16 ; (minimum block size) for 32 bit MemManager <v2.0>
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) <v2.1>
MMFlags EQU $1EFC ; (1 byte) low memory location to store the flags <v2.1>
; bit settings in MMflags:
MMStartMode EQU $0 ; .... ...n, n=0 for 24 bit, n=1 for 32 bit <v2.1>
MMMixed EQU $1 ; .... ..n., n=0 for no mixed mode, n=1 for mixed 23/32 mode <v2.1>
MMSysheap EQU $2 ; .... .n.., n=0 for 24 bit system heap, n=1 for 32 bit system heap <v2.1>
MMROZheap EQU $3 ; .... n..., n=0 for 24 bit ROZ heap, n=1 for 32 bit ROZ heap <v2.1>
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) ; <MC2>
mmCacheUnk2 EQU $6 ; .n.. ...., unknown, for Quadra caches ; <SM37> bt
mmInhibitAllCache EQU $7 ; n... ...., n=0 to use Quadra caches, n=1 to inhibit them ; <SM37> bt
SystemInfo EQU $0B73 ; System Info Byte <v3.7>
MMFlagsDefault EQU (1<<mmFigEnable) |\ ; When PRAM is reset, use this as a default. <MC2>
(1<<MMSysheap) |\
(1<<MMStartMode)
; bit settings in SystemInfo byte
Systemis24bit EQU $0 ; .... ...n, n=1 for 24 bit, n=0 for 32 bit system <v3.7>
Sysheapis24bit EQU $1 ; .... ..n., n=1 for 24 bit, n=0 for 32 bit system heap <v4.1>
PhysMemTop EQU $1EF8 ; Total physical RAM --- including memory for screen buffer <v2.8>
RealMemTop EQU $1EF4 ; amount of physcial RAM available for system use <v2.8>
; --- not including memory for screen buffer <v2.8>
Phys2Log EQU $1EF0 ; Physical to logical address convertion for MMU translation table <v2.8>
vMMNoPrologue EQU $1EE0 ; jump vector to MMnoPrologue <v3.7>
vMMPPrologue EQU $1EE4 ; jump vector to MMPPrologue <v3.7>
vMMPrologue EQU $1EE8 ; jump vector to MMPrologue <v3.7>
vMMHPrologue EQU $1EEC ; jump vector to MMHPrologue <v3.7>
vMMRHPrologue EQU $1FE0 ; jump vector to MMRHPrologue <v3.7>
vMMMMPrologue EQU $1FE4 ; jump vector to MMMMPrologue
vMMEpilogue EQU $1FE8 ; jump vector to MMEpilogue <v3.7>
vMMNoErrEpilogue EQU $1FEC ; jump vector to MMNoErrEpilogue <v3.7>
LockMemCT EQU $1FF4 ; (4) bytes, Lock Memory count <v3.9>
DockingGlobals EQU $1FF8 ; pointer to docking globals <H12>
;
; ********** DO NOT RELEASE ANYTHING IN THIS FILE TO OUTSIDE of Apple Computer *******************
; ********** IMPORTANT ****************
;——————————————————————————————————————————————————————————————————————————————————————————————— <SM27> 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) <SM44>
DiagWarmStartLow ds.l 1 ; Second long of native warm start (SamB) <SM44>
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
;———————————————————————————————————————————————————————————————————————————————————————————————
; <SM15> rb, start
MACRO
BigLea &label,&reg
lclc &OLDMACH
&OLDMACH SETC &Setting('MACHINE') ; save the current Machine setting
MACHINE MC68020
LEA (&label-*).L,&reg
LEA *-6(pc,&concat(&reg,'.l')),&reg
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 ; <t19>
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 ; <CEL - 6/9/89>
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 ; <NJV - 4/30/92><SM5>
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
; <SM15> 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
;_________________________________________________________________________________ <SM29>
; 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) <SM14>
AddrMapFlags2 EQU $2404 ; (long) valid bits for base addresses 64-95 (universal ROM) <SM14>
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 <SM14>
UnivROMFlags2 EQU $240C ; (long) product specific flags for universal ROM 64-95 <SM14>
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 <Sys7.1>
boxQuadra950 EQU 20 ; a Mac Quadra 950 (33MHz 040, 5 slots+PDS, VIA1&2, Orwell MCA, 2 IOPs, SCSI 2*53c96) <H18>
boxLCIII EQU 21 ; Vail (25 MHz, 030, optional FPU, 1 PDS, Sonora) <H14><SM41>
boxSoftmacSUN EQU 22 ; Softmac on Sun, (recycled, was boxCarnation33) <SM52>
boxPowerBookDuo210 EQU 23 ; a PowerBook Duo 210 (25MHz 030, PMGR, expansion connector, no floppy) <H35>
boxCentris650 EQU 24 ; Wombat (25MHz 040 or 040LC, 3 slots+PDS, VIA1&2, djMEMC, SCSI 53c96, optional enet)<H21><SM41>
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) <H35>
boxPowerBook180 EQU 27 ; a PowerBook 180 (33Mhz, 030, FPU, VIA1&2, Niagra, PMGR, 1 direct slot) <H10>
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) <H21><SM41>
boxQuadra650 EQU 30 ; Wombat (33Mhz 040, 3 slots+PDS, VIA1&2, djMEMC, SCSI53c96, enet) <H21><SM41>
boxMacLCII EQU 31 ; Foster Farms (68030 LC)
boxPowerBookDuo250 EQU 32 ; Ansel <SM47>
boxDBLite20 EQU 33 ; Pen-based DUO
boxVail16 EQU 34 ; Vail (16 MHz, 030, optional FPU, 1 PDS, Sonora) <H14>
boxCarnation25 EQU 35 ; Carnation (25 MHz, 030, FPU, 3 NuBus slots) <H14>
boxCarnation16 EQU 36 ; Carnation (16 MHz, 030, FPU, 3 NuBus slots) <SM16>
boxCyclone33 EQU 37 ; Cyclone <33 Mhz, 040, FPU, 3NuBus slots+DAVE+PUS) <H14>
boxBrazil16L EQU 38 ; Brazil (16Mhz, Lego package) <H15>
boxBrazil32L EQU 39 ; Brazil (32MHz on motherboard, Lego package) <H15>
boxBrazil16F EQU 40 ; Brazil (16MHz, Fridgidaire minitower package) <H15>
boxBrazil32F EQU 41 ; Brazil (32MHz on motherboard, Fridgidaire package) <H15>
boxBrazilC EQU 42 ; Brazil (any speed, any package for consumer release) <H15>
boxSlice EQU 43 ; Slice <H17>
boxMonet EQU 44 ; Monet (33MHz 030/FPU, VIA1&2, Niagara, PMGR, 16 color LCD, 1 direct slot) <H19>
boxWombat40 EQU 45 ; Wombat (40MHz 040, 3 slots+PDS, VIA1&2, djMEMC, SCSI 53c96, enet) <H21>
boxCentris610 EQU 46 ; WLCD (20 MHz 040LC, PDS only, VIA1&2, djMEMC, SCSI 53c96, optional enet) <H21><SM41>
boxQuadra610 EQU 47 ; WLCD (25 MHz 040LC, PDS only, VIA1&2, djMEMC, SCSI 53c96, optional enet) <H21><SM41>
boxPowerBook145 EQU 48 ; PowerBook 145 (25MHz 030, no FPU, otherwise same as 140) <H22>
boxBrazil32cF EQU 49 ; Brazil (32MHz w/ext cache, Fridgidaire package) <H24>
boxHook EQU 50 ; Hook <H25>
boxUnused EQU 51 ; (was a Consumer WLCD ... now unused) <H26><SM41>
boxWombat20 EQU 52 ; Wombat (20MHz 040LC, 3 slots+PDS, VIA1&2, djMEMC, SCSI 53c96, optional enet, Lego) <H26>
boxWombat40F EQU 53 ; Wombat (40MHz 040, 3 slots+PDS, VIA1&2, djMEMC, SCSI 53c96, enet, Frigidaire package) <H26>
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 <SM40>
boxVail33 EQU 56 ; Vail (33 MHz, 030, optional FPU, 1 PDS, ENET, Sonora) <H31>
boxWLCD33 EQU 57 ; WLCD (33 MHz 040, PDS only, VIA1&2, djMEMC, SCSI 53c96, optional enet, QFC) <H31>
boxPDM66F EQU 58 ; PDM/Cold Fusion (66 Mhz 601, Fridge) <SM41>
boxPDM80F EQU 59 ; PDM/Cold Fusion (80 Mhz 601, Fridge) <SM41>
boxPDM100F EQU 60 ; PDM/Cold Fusion (100 Mhz 601, Fridge) <SM41>
boxTNTProto1 EQU 61 ; TNT bringup board
boxTesseractF EQU 62 ; Tesseract (66 Mhz 601, Frigidaire) <H31>
boxTesseractC EQU 63 ; Tesseract (66 Mhz 601, Consumer) <H31>
boxJust930 EQU 64 ; 930 <H31>
boxHokusai EQU 65 ; Hokusai (33MHz 030/FPU, VIA1&2, Niagara, PMGR, 256 color TFT LCD, 1 direct slot) <H31>
boxBlackbird EQU 66 ; Blackbird (50/25MHz 040, VIA1&2, Pratt, PGE, 256 color 9.4" TFT LCD, 1 direct slot) <H31>
boxBlackbirdLC EQU 67 ; Blackbird (50/25MHz 040LC, VIA1&2, Pratt, PGE, 256 color 9.4" STN LCD, 1 direct slot) <H31>
boxPDMEvt1 EQU 68 ; PDM (? Mhz 601, WLCD, Evt1) <SAM> <H31>
boxPDM50WLCD EQU 69 ; PDM (50 Mhz 601, WLCD) <SAM> <H31>
boxYeagerFSTN EQU 70 ; LC040 Duo with FSTN <SM47>
boxPowerBookDuo270C EQU 71 ; 33MHz Escher (030, PMGR, expansion connector, no floppy, 256 color TFT LCD, FPU) <SM47>
boxQuadra840AV EQU 72 ; Cyclone <40 Mhz, 040, FPU, 3NuBus slots+DAVE+PUS) <SM18>
boxTempest33 EQU 73 ; Tempest <33 Mhz, 040LC, 1 Direct Slot slots+DAVE+PUS) <SM18>
boxHook33 EQU 74 ; Hook 33MHz
boxSlice25 EQU 75 ; Slice 25MHz
boxRiscCentris650 EQU 76 ; Centris650 w/RISC Smurf card <SM40>
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) <H37><SM28>
boxOptimus20 EQU 81 ; Optimus (20MHz 040LC, 1 LC slot, 1 CommSlot, VIA1&2, MEMCjr, SCSI 53c96, Hook package)<H37><SM28>
boxHookTV EQU 82 ; HookTV (32MHz 030, no slots, TV Tuner, VIA1&2, VISA decoder, 512k VRAM soldered) <SM30>
boxLC475 EQU 83 ; Primus (25MHz 040LC, 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, LC package) <H38><SM31><SM41>
boxPrimus33 EQU 84 ; Primus (33MHz 040LC, 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, LC package) <H38><SM31>
boxOptimus25 EQU 85 ; Optimus (25MHz 040LC, 1 LC slot, 1 CommSlot, VIA1&2, MEMCjr, SCSI 53c96, Hook package)<H38><SM31>
boxLC575 EQU 86 ; Optimus (33MHz 040 , 1 LC slot, 1 CommSlot, VIA1&2, MEMCjr, SCSI 53c96, Hook package)<H38><SM31><SM41>
boxAladdin20 EQU 87 ; Aladdin (20MHz 040LC, 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, ELB package) <H38><SM31>
boxQuadra605 EQU 88 ; Aladdin (25MHz 040LC, 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, ELB package) <H38><SM31><SM41>
boxAladdin33 EQU 89 ; Aladdin (33MHz 040 , 1 LC slot, VIA1&2, MEMCjr, SCSI 53c96, ELB package) <H38><SM31>
boxMalcolm25 EQU 90 ; Malcolm (25MHz 040(,LC), PDS only, VIA1&2, MEMCjr, SCSI 53c96, optional ENet, QFC) <SM35>
boxMalcolm33 EQU 91 ; Malcolm (33MHz 040, PDS only, VIA1&2, MEMCjr, SCSI 53c96, optional ENet, QFC) <SM35>
boxSlimus25 EQU 92 ; Slimus (25MHz 040LC, exactly like an Optimus except in a Color Classic box) <SM36>
boxSlimus33 EQU 93 ; Slimus (33MHz 040LC, exactly like an Optimus except in a Color Classic box) <SM36>
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 <SM40>
boxRiscQuadra950 EQU 99 ; 950 with Smurf card <SM40>
boxRiscCentris610 EQU 100 ; C610 with Smurf card <SM40>
boxRiscQuadra800 EQU 101 ; Q800 with Smurf card <SM40>
boxRiscQuadra610 EQU 102 ; Q610 with Smurf card <SM40>
boxRiscQuadra650 EQU 103 ; Q650 with Smurf card <SM40>
boxRiscTempest EQU 104 ; Tempest with Smurf card <SM40>
boxPDM50L EQU 105 ; PDM/Carl Sagan (50MHz 601, HMC, AMIC, AWACS, Mace ENet, Lego package) <SM41>
boxPDM66L EQU 106 ; PDM/Carl Sagan (66MHz 601, HMC, AMIC, AWACS, Mace ENet, Lego package) <SM41>
boxPDM80L EQU 107 ; PDM/Carl Sagan (80MHz 601, HMC, AMIC, AWACS, Mace ENet, Lego package) <SM41>
boxBlackbirdBFD EQU 108 ; Blackbird (66/33MHz 040LC, VIA1&2, Pratt, PGE, 256 color 10.X" TFT LCD, 1 direct slot)<H31>
boxJedi EQU 109 ; Jedi (33MHz, 030, low cost AIO powerbook, MSC, IDE, floppy ) <SM46>
boxSTPQ700 EQU 110 ; Q700 with STP card <SM48>
boxSTPQ900 EQU 111 ; Q900 with STP card <SM48>
boxSTPQ950 EQU 112 ; Q950 with STP card <SM48>
boxSTPC610 EQU 113 ; C610 with STP card <SM48>
boxSTPC650 EQU 114 ; C650 with STP card <SM48>
boxSTPQ610 EQU 115 ; Q610 with STP card <SM48>
boxSTPQ650 EQU 116 ; Q650 with STP card <SM48>
boxSTPQ800 EQU 117 ; Q800 with STP card <SM48>
boxAJ EQU 118 ; AJ (66 MHz 603, duo powerbook) <SM49>
boxAJ80 EQU 119 ; AJ (80 MHz 603, duo powerbook) <SM49>
boxMalcolmBB EQU 120 ; Malcolm (argh, same name as WLCD II)(66 MHz 603 upgrade to Blackbird) <SM49>
boxMalcolmBB80 EQU 121 ; Malcolm (argh, same name as WLCD II)(80 MHz 603 upgrade to Blackbird) <SM49>
boxM2 EQU 122 ; M2 (66 MHz 603, duo powerbook) <SM49>
boxM280 EQU 123 ; M2 (80 MHz 603, duo powerbook) <SM49>
boxSoftmacHP EQU 124 ; Softmac on HP <SM51>
boxSoftmacIBM EQU 125 ; Softmac on IBM <SM51>
boxSoftmacAUX EQU 126 ; Softmac on AUX <SM51>
boxExtended EQU 127 ; Uses new extended boxflag mechanism <SM52>
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) <SM54>
boxTellXfmr EQU 93 ; Tell (any MHz 040LC, exactly like an Optimus except in a Transformer enclosure) <SM54>
ENDIF ; ...already included