mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-10-30 08:24:38 +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
|