sys7.1-doc-wip/Internal/Asm/MMUEqu.a
2019-07-27 22:37:48 +08:00

80 lines
2.9 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.

;
; 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