mirror of
https://github.com/elliotnunn/sys7.1-doc-wip.git
synced 2024-12-12 04:29:09 +00:00
80 lines
2.9 KiB
Plaintext
80 lines
2.9 KiB
Plaintext
;
|
||
; 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 |