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

📄 reg166.inc

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

;****************************************************************************
;*                                                                          *
;*   AS 1.40 - Datei REG166.INC                                             *
;*   								            *
;*   Sinn : enthaelt SFR-, Makro- und Adressdefinitionen fuer 80C166/167    *
;*          OK, der Name faellt aus dem Rahmen, aber STDDEF16.INC war schon *
;*          belegt...                                                       *
;* 									    *
;*   letzte Aenderungen : 23. 6.1994                                        *
;*                       27. 6.1994 Makros                                  *
;*                       28. 6.1994 Bitadressen                             *
;*			  9. 7.1994 Interrupt-Register-Korrektur            *
;*                       10. 7.1994 80C167-Register                         *
;*                       10.12.1994 Korrekturen/Erweiterungen 80C166        *
;*                                  (Hinweis von A. Kipper/A.Bergmann)      *
;*                       xx.06.2003 Erweiterungen C167CS/ST10F168           *
;*                                  (M. Reibel)                             *
;*                                                                          *
;****************************************************************************
;* $Id: reg166.inc,v 1.2 2003/07/06 10:09:54 alfred Exp $                  *
;**************************************************************************** 
;* $Log: reg166.inc,v $
;* Revision 1.2  2003/07/06 10:09:54  alfred
;* - added C167CS registers (Marc Reibel)
;*
;****************************************************************************

		ifndef  reg166inc       ; verhindert Mehrfacheinbindung

reg166inc       equ     1

		switch	MOMCPUNAME
     		case   	"80C166"
_n   		equ	166
     		case   	"80C167"
_n  	 	equ    	167
     		case   	"80C167CS"
_n   		equ    	168
     		elsecase
     		fatal  "Falscher Prozessortyp: nur 80C166, 80C167 oder 80C167CS erlaubt!"
     		endcase



                if      MOMPASS=1
		 message "80C166/167-SFR-Definitionen (C) 1994 Alfred Arnold"
		 message "Erweiterung 80C167CS            2003 Marc Reibel"
		 message "binde \{MOMCPUNAME}-SFRs ein"
		endif

; damit's etwas kuerzer wird:

DefIntBits      macro   BASE,adr,{NoExpand} ; Interruptregister+Bits darin def.
tmpstr166	set	"BASE"
{tmpstr166}IC   equ     adr
{tmpstr166}_GLVL bit    {tmpstr166}IC.0 ; Gruppenprioritaet
{tmpstr166}_ILVL bit    {tmpstr166}IC.2 ; Interruptprioritaet
{tmpstr166}IE   bit     {tmpstr166}IC.6 ; Interruptfreigabe
{tmpstr166}IR   bit     {tmpstr166}IC.7 ; Interruptanzeige
		endm

;----------------------------------------------------------------------------
; Spezialregister:
; Bitadressen nur fuer bitadressierbare Register !
; bei Bitfeldern nur Startbit !

                if      _n>=167
SYSCON           equ     0ff12h         ; Systemkonfiguration
XPERSHARE        bit     SYSCON.0       ; XBUS Peripherie auch auf externem BUS
VISIBLE          bit     SYSCON.1       ; XBUS Peripherie auf Portpins
XPEN             bit     SYSCON.2       ; XBUS Peripherie freigeben
BDRSTEN          bit     SYSCON.3       ; Bidirektionaler /RSTIN
OWDDIS           bit     SYSCON.4       ; Oscillator Watchdog ausschalten
CSCFG            bit     SYSCON.6       ; Chip Select Mudus (1=unlatched)
WRCFG            bit     SYSCON.7       ; /WRL und /WRH statt /WR und /BHE
CLKEN            bit     SYSCON.8       ; Systemtakt auf Pin geben
BYTDIS           bit     SYSCON.9       ; /BHE Pin sperren
ROMENT           bit     SYSCON.10      ; Internes Rom anschalten
SGTDIS           bit     SYSCON.11      ; Speichersegmentierung sperren
ROMS1            bit     SYSCON.12      ; Lage internes ROM


		if	 _n>=168
SYSCON1		 equ	 0f1dch		; Sleepmodus bei IDLE-Anweisung
					; (Bit 1 u. 0)
					; 00 normaler IDLE-Modus
					; 01 SLEEP-Modus
					; 11 SLEEP-Modus, RTC und Oszillator aus

SYSCON2		 equ	 0f1d0h		; Taktgenerierung
RCS		 bit	 SYSCON2.6	; RTC Taktgeber Hauptoszillator
SCS		 bit	 SYSCON2.7	; SDD Taktgeber Hauptoszillator
CLKLOCK		 bit	 SYSCON2.15	; Hauptoszillator/PLL stabil?

RSTCON		 equ	 0f1e0h		; Reset Kontroll-Register

IDCHIP		 equ	 0f07ch		; Chip Identifizierungs-Register
IDMANUF		 equ	 0f07eh	
IDMEM2		 equ	 0f076h
IDMEM		 equ	 0f07ah
IDPROG		 equ	 0f078h

FOCON		 equ	 0ffaah		; Clock Output Kontroll-Register

SYSCON3		 equ	 0f1d4h		; Peripheriemanagement
ADCDIS		 bit	 SYSCON3.0	; AD sperren
ASC0DIS		 bit	 SYSCON3.1	; Asynchronen Seriellen Port sperren
SSCDIS		 bit	 SYSCON3.2	; Synchronen Seriellen Port sperren
GPTDIS		 bit	 SYSCON3.3	; GPT Bloecke sperren
DFMDIS		 bit	 SYSCON3.4	; DFlash sperren (nur Flashvarianten)
PFMDIS		 bit	 SYSCON3.5	; PFlash sperren (nur Flashvarianten)
CC1DIS		 bit	 SYSCON3.6	; Capcom1 sperren 
CC2DIS		 bit	 SYSCON3.7	; Capcom2 sperren
PWMDIS		 bit	 SYSCON3.9	; PWM sperren
CAN1DIS		 bit	 SYSCON3.13	; CAN1 sperren
CAN2DIS		 bit	 SYSCON3.14	; CAN2 sperren
PCDDIS		 bit	 SYSCON3.15	; Peripherietaktgeber sperren
		endif

                elseif
SYSCON           equ     0ff0ch
MCTC             bit     SYSCON.0       ; Speicherzykluslaenge
RWDC             bit     SYSCON.4       ; Schreib/Lese-Verzoegerung
MTTC             bit     SYSCON.5       ; Tri-State-Zeit
BTYP             bit     SYSCON.6       ; Status der EBC-Pins
RDYEN            bit     SYSCON.12      ; /READY freigeben
                endif
ROMEN           bit     SYSCON.10       ; internes ROM freigeben
STKSZ           bit     SYSCON.13       ; Maximalgroesse Stack

                if      _n>=167
RP0H             equ     0f108h         ; Systemanlaufregister (nur Lesen)
CSSEL            bit     RP0H.1         ; Anzahl CS-Leitungen
SALSEL           bit     RP0H.3         ; Anzahl Adressleitungen ab A16
                endif

PSW             equ     0ff10h          ; Flagregister
N               bit     PSW.0           ; negatives Ergebnis ?
C               bit     PSW.1           ; Carry ?
V               bit     PSW.2           ; Overflow ?
Z               bit     PSW.3           ; Ergebnis Null ?
E               bit     PSW.4           ; Tabellenende ?
MULIP           bit     PSW.5           ; Multiplikation/Division unterbrochen ?
USR0            bit     PSW.6           ; benutzerdefiniert
		if      _n>=167
HLDEN		 bit	 PSW.10		; Hold freigeben
		endif
IEN             bit     PSW.11          ; Interrupts freigeben
ILVL            bit     PSW.12          ; mom. bediente Interruptebene

TFR             equ     0ffach          ; Trap Flagregister
ILLBUS          bit     TFR.0           ; externer Bus benutzt, aber nicht konfiguriert
ILLINA          bit     TFR.1           ; Codezugriff auf ungerade Adresse
ILLOPA          bit     TFR.2           ; Wortzugriff auf ungerade Adresse
PRTFLT          bit     TFR.3           ; Schutzverletzung
UNDOPC          bit     TFR.7           ; undefinierter Maschinenbefehl
STKUF           bit     TFR.13          ; Stack-Unterlauf
STKOF           bit     TFR.14          ; Stack-Ueberlauf
NMI             bit     TFR.15          ; nicht maskierbarer Interrupt
                if      _n>=167
EXICON           equ     0f1c0h         ; External Steuerung externer Interrupt-Controller
		if	_n>=168
EXISEL		 equ	 0f1dah		; External Interrupt Source Register
		endif
EXI0ES           bit     EXICON.0       ; Flankensteuerung Interrupt 0
EXI1ES           bit     EXICON.2       ; Flankensteuerung Interrupt 1
EXI2ES           bit     EXICON.4       ; Flankensteuerung Interrupt 2
EXI3ES           bit     EXICON.6       ; Flankensteuerung Interrupt 3
EXI4ES           bit     EXICON.8       ; Flankensteuerung Interrupt 4
EXI5ES           bit     EXICON.10      ; Flankensteuerung Interrupt 5
EXI6ES           bit     EXICON.12      ; Flankensteuerung Interrupt 6
EXI7ES           bit     EXICON.14      ; Flankensteuerung Interrupt 7
                endif

DPP0            equ     0fe00h          ; Pagingregister
DPP1            equ     0fe02h
DPP2            equ     0fe04h
DPP3            equ     0fe06h

CSP             equ     0fe08h          ; Bits 16.. Programmzaehler

MDH             equ     0fe0ch          ; Multiplizier/Dividierregister
MDL             equ     0fe0eh
MDC             equ     0ff0eh          ; Steuerung Multiplizierer/Dividierer
MDRIU           bit     MDC.4           ; Multiplizierer in Benutzung

CP              equ     0fe10h          ; Registerkontextzeiger

SP              equ     0fe12h          ; Stackpointer
STKOV           equ     0fe14h          ; obere Grenze Stackpointer
STKUN           equ     0fe16h          ; untere Grenze Stackpointer

ZEROS           equ     0ff1ch          ; konstant Nullen
ONES            equ     0ff1eh          ; konstant Einsen

;----------------------------------------------------------------------------
; Speicher-Interface

                if      _n>=167
ADDRSEL1         equ     0fe18h         ; Adressdekoder Register 1..4
ADDRSEL2         equ     0fe1ah
ADDRSEL3         equ     0fe1ch
ADDRSEL4         equ     0fe1eh

BUSCON0          equ     0ff0ch         ; Buskonfiguration Register 0..4
MCTC0            bit     BUSCON0.0      ; Speicherzykluslaenge
RWDC0            bit     BUSCON0.4      ; Schreib/Leseverzoegerung
MTTC0            bit     BUSCON0.5      ; Tri-State-Zeit
BTYP0            bit     BUSCON0.6      ; Status EBC-Pins
ALECTL0          bit     BUSCON0.9      ; ALE Verl刵gerung
BUSACT0          bit     BUSCON0.10     ; Bus aktiv-Steuerbit
RDYEN0           bit     BUSCON0.12     ; /READY benutzen
BUSCON1          equ     0ff14h
MCTC1            bit     BUSCON1.0      ; Speicherzykluslaenge
RWDC1            bit     BUSCON1.4      ; Schreib/Leseverzoegerung
MTTC1            bit     BUSCON1.5      ; Tri-State-Zeit
BTYP1            bit     BUSCON1.6      ; Status EBC-Pins
ALECTL1          bit     BUSCON1.9      ; ALE Verlaengerung
BUSACT1          bit     BUSCON1.10     ; Bus aktiv-Steuerbit
RDYEN1           bit     BUSCON1.12     ; /READY benutzen
CSREN1           bit     BUSCON1.14     ; Arbeitsweise CS-Pins
CSWEN1           bit     BUSCON1.15
BUSCON2          equ     0ff16h
MCTC2            bit     BUSCON2.0      ; s.o.
RWDC2            bit     BUSCON2.4
MTTC2            bit     BUSCON2.5
BTYP2            bit     BUSCON2.6
ALECTL2          bit     BUSCON2.9
BUSACT2          bit     BUSCON2.10
RDYEN2           bit     BUSCON2.12
CSREN2           bit     BUSCON2.14
CSWEN2           bit     BUSCON2.15
BUSCON3          equ     0ff18h
MCTC3            bit     BUSCON3.0
RWDC3            bit     BUSCON3.4
MTTC3            bit     BUSCON3.5
BTYP3            bit     BUSCON3.6
ALECTL3          bit     BUSCON3.9
BUSACT3          bit     BUSCON3.10
RDYEN3           bit     BUSCON3.12
CSREN3           bit     BUSCON3.14
CSWEN3           bit     BUSCON3.15
BUSCON4          equ     0ff1ah
MCTC4            bit     BUSCON4.0
RWDC4            bit     BUSCON4.4
MTTC4            bit     BUSCON4.5
BTYP4            bit     BUSCON4.6
ALECTL4          bit     BUSCON4.9
BUSACT4          bit     BUSCON4.10
RDYEN4           bit     BUSCON4.12
CSREN4           bit     BUSCON4.14
CSWEN4		 bit     BUSCON4.15

		if	 _n>=168
XPERCON		 equ	 0f024h		; XPeripherie
XPER0_M		 equ	 0001h		; CAN1 (nach Reset an)
XPER1_M		 equ	 0002h		; CAN2 (nach Reset aus)
XPER10_M	 equ	 0400h		; XRAM 2 KByte (nach Reset an)
XPER11_M	 equ	 0800h		; XRAM 6 KByte (nach Reset aus)!!!
XPER14_M	 equ	 4000h		; 4KByte DFlash (nach Reset aus)!!!

ISNC		 equ	 0f1deh		; Interrupt SubNode Kontroll-Register
RTCIR		 bit	 ISNC.0		; RTC Interrupt Request Flag
RTCIE		 bit	 ISNC.1		; RTC Interrupt freigeben
PLLIR		 bit	 ISNC.2		; PLL Interrupt Request Flag
PLLIE		 bit	 ISNC.3		; PLL Interrupt freigeben
		endif

                 DefIntBits XP0,0f186h  ; Interruptsteuerung Peripheriegeraet 0
                 DefIntBits XP1,0f18eh  ; Interruptsteuerung Peripheriegeraet 1
                 DefIntBits XP2,0f196h  ; Interruptsteuerung Peripheriegeraet 2
					; Flash Terminierung (Flashvarianten) 
                 DefIntBits XP3,0f19eh  ; Interruptsteuerung Peripheriegeraet 3
                endif

;----------------------------------------------------------------------------
; Ports:

                if      _n>=167
PICON		 equ	 0f1c4h
                endif

                if      _n>=167

⌨️ 快捷键说明

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