⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stddef60.inc

📁 万能汇编工具
💻 INC
📖 第 1 页 / 共 2 页
字号:
                save
                listing off   ; kein Listing 乥er diesen File

;****************************************************************************
;*                                                                          *
;*   AS 1.40 - Datei STDDEF60.INC                                           *
;*   								            *
;*   Sinn : enth刲t Makrodefinitionen f乺 den PowerPC                       *
;* 									    *
;*   letzte 巒derungen : 29. 5.1994                                         *
;*                       26.12.1994 PPC403-Erweiterungen                    *
;*                       28.12.1994 MPC505-Erweiterungen                    *
;*                       10. 3.1999 PPC403G[BC]-Erweiterungen               *
;*                       28. 3.1999 Korrektur: MMU erst ab PPC403GC         *
;*                                                                          *
;****************************************************************************

                ifndef  stddef60inc     ; verhindert Mehrfacheinbindung

stddef60inc     equ     1

                if      (MOMCPU<>1537)&&(MOMCPU<>24576)&&(MOMCPU<>1027)&&(MOMCPU<>1285)&&(MOMCPU<>16443)&&(MOMCPU<>16444)
                 fatal  "Falscher Prozessortyp eingestellt: nur MPC601, MPC505, PPC403 oder RS6000 erlaubt!"
		endif


                if      MOMPASS=1
                 message "PowerPC-Makro-Definitionen (C) 1994 Alfred Arnold"
                 switch  MOMCPU
                 case    0x6000
                  message "Zielsystem RS6000"
                 case    0x601
                  message "Zielsystem MPC601"
                 case    0x505
                  message "Zielsystem MPC505"
                 case    0x403,0x403c
                  message "Zielsystem PPC403Gx"
                 endcase
		endif

		
;============================================================================
; Device-Control-Register

__defdcr        macro   NAME,val,{NoExpand}
NAME            equ     val
mt{"NAME"}      macro      reg
                mtdcr   NAME,reg
                endm
mf{"NAME"}      macro      reg
                mfdcr   reg,NAME
                endm
		endm

                if      (MOMCPU=0x403)||(MOMCPU=0x403c)
                 __defdcr BEAR,0x90     ; Adresse Busfehler
                 __defdcr BESR,0x91     ; Syndrom Busfehler
                 __defdcr BR0,0x80      ; Bank-Register 0..7
                 __defdcr BR1,0x81
                 __defdcr BR2,0x82
                 __defdcr BR3,0x83
                 __defdcr BR4,0x84
                 __defdcr BR5,0x85
                 __defdcr BR6,0x86
                 __defdcr BR7,0x87
                 __defdcr DMACC0,0xc4   ; DMA Kettenz刪ler (?)
                 __defdcr DMACR0,0xc0   ; DMA Steuerregister Kanal 0..3
                 __defdcr DMACR1,0xc8
                 __defdcr DMACR2,0xd0
                 __defdcr DMACR3,0xd8
                 __defdcr DMACT0,0xc1   ; DMA Z刪lregister Kanal 0..3
                 __defdcr DMACT1,0xc9
                 __defdcr DMACT2,0xd1
                 __defdcr DMACT3,0xd9
                 __defdcr DMADA0,0xc2   ; DMA Zieladresse Kanal 0..3
                 __defdcr DMADA1,0xca
                 __defdcr DMADA2,0xd2
                 __defdcr DMADA3,0xda
                 __defdcr DMASA0,0xc3   ; DMA Quelladresse Kanal 0..3
                 __defdcr DMASA1,0xcb
                 __defdcr DMASA2,0xd3
                 __defdcr DMASA3,0xdb
                 __defdcr DMASR,0xe0    ; DMA Statusregister
                 __defdcr EXISR,0x40    ; Anzeige externer Interrupts
                 __defdcr EXIER,0x42    ; Freigabe externer Interrupts
                 __defdcr IOCR,0xa0     ; I/O-Konfiguration
                endif

;============================================================================
; Special-Purpose-Register

__defspr        macro   NAME,val,{NoExpand}
NAME            equ     val
mt{"NAME"}      macro      reg
                mtspr   NAME,reg
                endm
mf{"NAME"}      macro      reg
                mfspr   reg,NAME
                endm
		endm

                __defspr XER,0x001      ; Integer Exception Register
                __defspr LR,0x008       ; R乧ksprungadresse
                __defspr CTR,0x009      ; Z刪lregister
                __defspr SRR0,0x01a     ; Save/Restore-Register
                __defspr SRR1,0x01b
                __defspr SPRG0,0x110    ; Special Purpose-Register
                __defspr SPRG1,0x111
                __defspr SPRG2,0x112
                __defspr SPRG3,0x113
                switch MOMCPU
                case 0x403,0x403c
                 __defspr DAC1,0x3f6    ; Datenadresse Vergleichsregister
                 __defspr DAC2,0x3f7
                 __defspr DBCR,0x3f2    ; Debug-Steuerregister
                 __defspr DBSR,0x3f0    ; Debug-Statusregister
                 __defspr DCCR,0x3fa    ; Steuerung Daten-Cache
                 __defspr DEAR,0x3d5    ; Exception-Adresse Datenzugriff
                 __defspr ESR,0x3d4     ; Exception-Syndrom Datenzugriff
                 __defspr EVPR,0x3d6    ; Exception-Vektor-Pr刦ix
                 __defspr IAC1,0x3f4    ; Codeadresse Vergleichsregister
                 __defspr IAC2,0x3f5
                 __defspr ICCR,0x3fb    ; Steuerung Code-Cache
                 __defspr PBL1,0x3fc    ; Untergrenzen
                 __defspr PBL2,0x3fe
                 __defspr PBU1,0x3fd    ; Obergrenzen
                 __defspr PBU2,0x3ff
                 __defspr PIT,0x3db     ; Timer
                 __defspr PVR,0x11f     ; Prozessorversion
                 __defspr SRR2,0x3de    ; Save/Restore-Register
                 __defspr SRR3,0x3df
                 __defspr TBHI,0x3dc    ; Zeitbasis
                 __defspr TBLO,0x3dd
                 __defspr TCR,0x3da     ; Timer Steuerregister
                 __defspr TSR,0x3d8     ; Timer Statusregister
                 __defspr SGR,0x3b9     ; ????
                case 0x505
                 __defspr TBL,268       ; Zeitbasis
                 __defspr TBU,269
                 __defspr DSISR,18      ; zeigt Grund von Alignment-Exceptions an
                 __defspr DAR,19        ; Fehlerhafte Datenadresse nach Exception
                 __defspr DEC,22        ; z刪lt mit 1 MHz
                 __defspr EIE,80        ; Freigabe externer Interrupts
                 __defspr EID,81        ; Sperre externer Interrupts
                 __defspr NRE,82        ; Non-recoverable Exception
                 __defspr TBL_S,284     ; nochmal Zeitbasis ?!
                 __defspr TBU_S,285
                 __defspr PVR,287       ; Prozessorversion
                 __defspr ICCST,560     ; Steuerung & Status Instruktionscache
                 __defspr ICADR,561     ; Instruktionscache Adre醨egister
                 __defspr ICDAT,562     ; Instruktionscache Datenregister
                 __defspr FPECR,1022    ; Gleitkommaexception
                 __defspr CMPA,144      ; Vergleicherwert A..D
                 __defspr CMPB,145
                 __defspr CMPC,146
                 __defspr CMPD,147
                 __defspr ECR,148       ; Grund der Debug-Exception
                 __defspr DER,149       ; Freigabe Debug-Features
                 __defspr COUNTA,150    ; Breakpoint Z刪ler
                 __defspr COUNTB,151
                 __defspr CMPE,152      ; Vergleicherwert E..G
                 __defspr CMPF,153
                 __defspr CMPG,154
                 __defspr CMPH,155
                 __defspr LCTRL1,156    ; Debug-Steuerung Vergleicher L-Bus
                 __defspr LCTRL2,157
                 __defspr ICTRL,158     ; Debug-Steuerung I-Bus
                 __defspr BAR,159       ; Breakpoint-Adresse
                 __defspr DPDR,630      ; Development-Port Daten
                 __defspr DPIR,631      ;     "        "   Instruktionen
                case 0x601
                 __defspr RTCU,0x004    ; Z刪ler
                 __defspr RTCL,0x005
                 __defspr DEC,0x006
                 __defspr DSISR,0x012
                 __defspr DAR,0x013
                 __defspr DEC2,0x016
                 __defspr SDR1,0x019
                 __defspr EAR,0x11a
                 __defspr BAT0U,0x210
                 __defspr BAT0L,0x211
                 __defspr BAT1U,0x212
                 __defspr BAT1L,0x213
                 __defspr BAT2U,0x214
                 __defspr BAT2L,0x215
                 __defspr BAT3U,0x216
                 __defspr BAT3L,0x217
                 __defspr HID0,0x3f0
                 __defspr HID1,0x3f1
                 __defspr HID2,0x3f2
                 __defspr HID5,0x3f5
                 __defspr HID15,0x3ff
                case 0x6000
                 __defspr MQ,0x000      ; obere H刲fte Divident/Produkt
                endcase
                if MOMCPU=0x403c
                 __defspr pid, 0x3b1
                endif

;============================================================================
; serieller Port PPC403:

                if      (MOMCPU=0x403)||(MOMCPU=0x403c)
spls             equ     0x40000000     ; Leitungsstatus
sphs             equ     0x40000002     ; Status Handshake-Leitungen
brdh             equ     0x40000004     ; Baudratenteiler
brdl             equ     0x40000005
spctl            equ     0x40000006     ; Steuerregister
sprc             equ     0x40000007     ; Kommandoregister Empf刵ger
sptc             equ     0x40000008     ; Kommandoregister Sender
sprb             equ     0x40000009     ; Sende/Empfangspuffer
sptb             equ     sprb
                endif

;============================================================================
; SIU MPC505:
; erinnert irgendwie an die vom 6833x...

                if      MOMCPU=0x505
siumcr           equ     0x8007fc00     ; Basissteuerregister
siutest1         equ     0x8007fc04
memmap           equ     0x8007fc20     ; Speicherlayout
specaddr         equ     0x8007fc24     ; erlauben Sperren spekulativer
specmask         equ     0x8007fc28     ; Ladevorg刵ge
termstat         equ     0x8007fc2c
picsr            equ     0x8007fc40     ; Steuerung periodische Interrupts
pit              equ     0x8007fc44     ; Z刪lwert periodischer Interrupt-Timer
bmcr             equ     0x8007fc48     ; Steuerung Bus-Monitor
rsr              equ     0x8007fc4c     ; Reset-Status
sccr             equ     0x8007fc50     ; Steuerung Systemtakt
sccsr            equ     0x8007fc54     ; Status Systemtakt
portbase         equ     0x8007fc60
ddrm             equ     portbase+0x00  ; Datenrichtungsregister Port M
pmpar            equ     portbase+0x04  ; Pinzuordnung Port M
portm            equ     portbase+0x08  ; Datenregister Port M
papar            equ     portbase+0x24  ; Pinzuordnung Port A+B
pbpar            equ     papar
porta            equ     portbase+0x28  ; Datenregister Port A+B
portb            equ     porta
ddri             equ     portbase+0x38  ; Datenrichtungsregister Port I..L
ddrj             equ     ddri
ddrk             equ     ddri
ddrl             equ     ddri
pipar            equ     portbase+0x38  ; Pinzuordnung Port I..L
pjpar            equ     pipar
pkpar            equ     pipar
plpar            equ     pipar
porti            equ     portbase+0x40  ; Datenregister Port I..L
portj            equ     porti
portk            equ     porti
portl            equ     porti
csbase           equ     0x8007fd00
csbtbar          equ     csbase+0xf8    ; Basisadresse Boot-EPROM
csbtsbbar        equ     csbase+0xf0
csbar1           equ     csbase+0xe0    ; Basisadressen /CS1../CS5
csbar2           equ     csbase+0xd8
csbar3           equ     csbase+0xd0
csbar4           equ     csbase+0xc8
csbar5           equ     csbase+0xc0
csbtor           equ     csbase+0xfc    ; Optionen Boot-EPROM
csbtsbor         equ     csbase+0xf4
csor0            equ     csbase+0xec    ; Optionen /CS1../CS11
csor1            equ     csbase+0xe4
csor2            equ     csbase+0xdc
csor3            equ     csbase+0xd4
csor4            equ     csbase+0xcc
csor5            equ     csbase+0xc4
csor6            equ     csbase+0xbc
csor7            equ     csbase+0xb4
csor8            equ     csbase+0xac
csor9            equ     csbase+0xa4
csor10           equ     csbase+0x9c
csor11           equ     csbase+0x94
                endif

;----------------------------------------------------------------------------
; Peripheral Control Unit MPC505:

                if      MOMCPU=0x505
pcubase          equ     0x8007ef80
pcumcr           equ     pcubase+0x00   ; Basiskonfiguration
tstmsra          equ     pcubase+0x10
tstmsrb          equ     tstmsra
tstcntrab        equ     pcubase+0x14
tstreps          equ     tstcntrab
tstcreg1         equ     pcubase+0x18
tstcreg2         equ     tstcreg1
tstdreg          equ     pcubase+0x1c
irqpend          equ     pcubase+0x20   ; auszuf乭rende Interrupts
irqand           equ     pcubase+0x24   ; freigegebene&auszuf乭rende Interrupts
irqenable        equ     pcubase+0x28   ; freigegebene Interrupts
pitqil           equ     pcubase+0x2c   ; Interruptebene PortQ/PIT
swsr             equ     pcubase+0x40   ; Reload Watchdog ausl攕en
swcr             equ     pcubase+0x44   ; Steuerung Watchdog
swtc             equ     swcr
swr              equ     pcubase+0x48
pqedgdat         equ     pcubase+0x50   ; Flankenauswahl PortQ
pqpar            equ     pcubase+0x54   ; Pinzuordnung PortQ
                endif

;----------------------------------------------------------------------------
; SRAM-Modul MPC505:

                if      MOMCPU=0x505
srammcr          equ     0x8007f00      ; Basiskonfiguration SRAM
                endif

;============================================================================
; SUBI geht sowohl mit 2 als auch 3 Argumenten

subi            macro   dest,src,VAL
                if      "VAL"=""
                 addi   dest,dest,-src
                elseif
                 addi   dest,src,-VAL
                endif
                endm

;----------------------------------------------------------------------------
; Vergleiche

cmpw            macro   cr,REG1,REG2
                if      "REG2"=""
                cmp     0,0,cr,REG1
                elseif
                cmp     cr,0,REG1,REG2
                endif
                endm

cmpwi           macro   cr,REG1,IMM
                if      "IMM"=""
                cmpi    0,0,cr,IMM
                elseif
                cmpi    cr,0,REG1,imm
                endif
                endm

cmplw           macro   cr,REG1,REG2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -