supermario/base/SuperMarioProj.1994-02-09/Internal/Asm/MMUEqu.a

80 lines
2.9 KiB
Plaintext
Raw Normal View History

2019-06-29 15:17:50 +00:00
;
; File: MMUEqu.a
;
; Contains: Equates relevant to the MMUs available in Macintoshes.
;
; Written by: Bob Herold
;
; Copyright: © 1988-1991, 1993 by Apple Computer, Inc., all rights reserved.
;
; Change History (most recent first):
;
; <SM2> 2/5/93 SAM Added EMMU type for emulated MMUs.
; <7> 12/31/91 RB Added writeProtectBit equate.
; <6> 1/30/91 gbm sab, #38: Change the already including this file variable to
; all uppercase (for security reasons)
; <4> 2/20/90 CCH Added theSRP field to MMUConfigInfo record.
; <3> 1/5/90 BG Clarification comments added to the *MMUConfigInfo* record
; header and definitions.
; <2> 1/2/90 BG First pass at cleaning this up to deal with 68040 MMUs. More is
; needed.
; <1.1> 5/14/89 rwh added descrTypeMask. Apologies to all.
; <1.0> 5/13/89 rwh new today
IF &TYPE('__INCLUDINGMMUEQU__') = 'UNDEFINED' THEN
__INCLUDINGMMUEQU__ SET 1
;-------------
; MMU Modes
;-------------
;false32b EQU 0 ; 24 bit mode
;true32b EQU 1 ; 32 bit mode
;-----
; MMU Configuration Info record
;-----
; NOTE - this does not work well with the 68040, as it has FOUR Transparent Translation <3>
; registers: ITTO, ITT1, DTT0 and DTT1. Also, 'theCRP' is not 64 bits; in fact, <3>
; there is no CRP register on the 040. Instead, it and the SRP are replaced by <3>
; the SRP and URP (both 32 bits wide). The TC register is only 16 bits wide on <3>
; the 040. "This needs to be fixed." <3>
MMUConfigInfo RECORD 0 ; MMU configuration info
theCRP ds.l 1 ; start of the 64-bit CRP on 020/030's <4>
theSRP ds.l 1 ; start of the 32-bit SRP on 040's <4>
theTC ds.l 1 ; the TC (Translation Control Register) value
; (the lsw contains the TC on a 68040) <3>
theTT0 ds.l 1 ; the {I}TT0 (Transparent Translation Reg 0) value
theTT1 ds.l 1 ; the {I}TT1 (Transparent Translation Reg 1) value
MMUInfoSize equ *-MMUConfigInfo ; size of an MMU info record
ENDR
;-----
; Possible MMU Types
;-----
NoMMU equ 0 ; No MMU chip present
HMMU equ 1 ; fake 24-bit mapper (in Mac II only)
MMB equ 2 ; --- no longer supported
PMMU851 equ 3 ; 68851 Paged Memory Management Unit (in Mac II only)
PMMU030 equ 4 ; 68030 built-in Paged Memory Management Unit
PMMU040 equ 5 ; 68040 built-in MMU <2>
EMMU1 equ 6 ; Emulated MMU Type 1 (Risc Emulator Based Systems) <SM2>
;-----
; MMU Table equates
;-----
writeProtectBit equ 2 ; write protect bit in table entries <7> rb
descrPage equ $01 ; page descriptor type *** move these to MMUequ.a ***
descrTbl4 equ $02 ; short table type
descrTbl8 equ $03 ; long table type
descrTypeMask equ $03 ; mask to get type field
LongStat equ $FC00 ; status field for long table descriptors
LowLim equ $7FFF ; default lowest limit for long descriptors
ENDIF ; ...already included