		save
		listing off   ; kein Listing über diesen File

;****************************************************************************
;*                                                                          *
;*   AS 1.40 - Datei STDDEF18.INC                                           *
;*   								            *
;*   Sinn : enthält die SFR-Definitionen für die PIC 16C8x-Familie    	    *
;*          Die Makrodefinitionen kann man bei Bedarf aus STDDEF16.INC      *
;*          kopieren							    *
;* 									    *
;*   letzte Änderungen : 14.11.1993                                         *
;*                       27. 2.1993 PIC16C64-Register                       *
;*                                  IND0-->INDF umbenannt                   *
;*									    *
;****************************************************************************

		ifndef  stddef18inc     ; verhindert Mehrfacheinbindung

stddef18inc     equ     1

                if      (MOMCPU<93316)&&(MOMCPU<>93284)
                 fatal  "Falscher Prozessortyp eingestellt: nur 16C84 oder 16C64 erlaubt"
		endif

                if      MOMPASS=1
		 message "PIC16C8x-Definitionen (C) 1993 Alfred Arnold"
                 message "binde \{MOMCPU}-Register ein"
		endif

;----------------------------------------------------------------------------
; erstmal die Spezialregister :

INDF            SFR     0               ; indirekte Adressierung
PCL             SFR     2               ; PC Bits 0..7
PCLATH          SFR     10              ; obere Hälfte Programmzähler
Status          SFR     3               ; Status-Register
FSR             SFR     4               ; File-Select-Register
OPTION          SFR     $81             ; Chipkonfiguration
                if      MOMCPU=$16C64
PCON             SFR    $8e
                endif

;----------------------------------------------------------------------------
; Ports

PortA           SFR     5               ; Datenregister Port A
TrisA           SFR     $85             ; Datenrichtungsregister Port A
PortB           SFR     6               ; Datenregister Port C
TrisB           SFR     $86             ; Datenrichtungsregister Port B
                if      MOMCPU=$16C64
PortC            SFR    7               ; Datenregister Port C
TrisC            SFR    $87             ; Datenrichtungsregister Port C
PortD            SFR    8               ; Datenregister Port D
TrisD            SFR    $88             ; Datenrichtungsregister Port D
PortE            SFR    9               ; Datenregister Port E
TrisE            SFR    $89             ; Datenrichtungsregister Port E
                endif

;----------------------------------------------------------------------------
; Timer

                if      MOMCPU=$16C64
TMR0             SFR    1               ; Zähler 0
TMR1L            SFR    14              ; Zähler 1
TMR1H            SFR    15
TMR2             SFR    17              ; Zähler 2
CCPR1L           SFR    $15             ; Vergleichs/Pulsweitenregister
CCPR1H           SFR    $16
T1CON            SFR    16              ; Steuerung Zähler 1
T2CON            SFR    18              ; Steuerung Zähler 2
PR2              SFR    $92             ; Periode Zähler 2
CCP1CON          SFR    $17             ; Modus Vergleicher
                elseif
RTCC             SFR    1               ; Zähler
                endif

;----------------------------------------------------------------------------
; serielle Schnittstelle

                if      MOMCPU=$16C64
SSPBuf           SFR    $13             ; serielles Datenregister
SSPCon           SFR    $14             ; Konfiguration
SSPAD0           SFR    $93             ; I2C-Adreßregister
SSPSTAT          SFR    $94             ; Schnittstellenstatus
                endif

;----------------------------------------------------------------------------
; EEPROM

                if      MOMCPU=$16C84
EEData           SFR    8               ; EEPROM Datenregister
EEAdr            SFR    9               ; EEPROM Adreßregister
EECON1           SFR    $88             ; Konfiguration EEPROM
EECON2           SFR    $89
                endif

;----------------------------------------------------------------------------
; Interrupts

INTCON          SFR     11              ; Interruptsteuerung
                if      MOMCPU=$16C64
PIR              SFR    12              ; Interrupts aufgetreten ?
PIE              SFR    $8c             ; Interruptfreigabe
                endif

;============================================================================
; Bits im Statusregister

Flag_C		EQU	0		; Carry
Flag_DC		EQU	1		; Digit-Carry
Flag_Z		EQU	2		; Zero
Flag_PD		EQU	3		; Aufgewacht aus SLEEP-Befehl ?
Flag_TO		EQU	4		; Durch Watchdog zurückgesetzt ?
Flag_RP0	EQU	5		; Registerbank Bit 8
                if      MOMCPU=$16C84
Flag_RP1         EQU    6               ; Registerbank Bit 9
Flag_IRP         EQU    7               ; Registerbnak Bit 9 (indirekt)
                endif

;----------------------------------------------------------------------------
; Bits in TrisE

                if      MOMCPU=$16C64
TRISE0           EQU    0               ; Datenrichtung RE0
TRISE1           EQU    1               ; Datenrichtung RE1
TRISE2           EQU    2               ; Datenrichtung RE2
PSPMODE          EQU    4               ; Modus Port D&E
IBOV             EQU    5               ; Überlauf Eingabepuffer
OBF              EQU    6               ; Ausgabepuffer voll
IBF              EQU    7               ; Eingabepuffer voll
                endif

;----------------------------------------------------------------------------
; Bits in T1CON

                if      MOMCPU=$16C64
TMR1ON           EQU    0               ; Timer 1 starten
TMR1CS           EQU    1               ; Timer 1 mit internem/externem Takt
T1INSYNC         EQU    2               ; Timer 1 extern synchronisieren
T1OSCEN          EQU    3               ; Oszillator Timer 1 freigeben
T1CKPS0          EQU    4               ; Vorteilerwahl Timer 1
T1CKPS1          EQU    5
                endif

; Bits in T2CON

                if      MOMCPU=$16C64
T2CKPS0          EQU    0               ; Vorteilerwahl Timer 2
T2CKPS1          EQU    1
TMR2ON           EQU    2               ; Timer 2 ein/ausschalten
TOUTPS0          EQU    3               ; Nachteilerwahl Timer 2
TOUTPS1          EQU    4
TOUTPS2          EQU    5
TOUTPS3          EQU    7
                endif

; Bits in CCP1CON

                if      MOMCPU=$16C64
CCP1M0           EQU    0               ; Modus CCP1
CCP1M1           EQU    1
CCP1M2           EQU    2
CCP1M3           EQU    3
CCP1Y            EQU    4               ; PWM Bits 0,1
CCP1X            EQU    5
                endif

;----------------------------------------------------------------------------
; Bits in SSPSTAT

                if      MOMCPU=$16C64
BF               EQU    0               ; Puffer voll ?
UA               EQU    1               ; neue Adresse muß in SSPADD geschrieben werden
RW               EQU    2               ; I2C lesen/schreiben ?
S                EQU    3               ; Startbit gefunden ?
P                EQU    4               ; Stopbit gefunden
DA               EQU    5               ; I2C Datum/Adresse empfangen ?
                endif

; Bits in SSPCON

                if      MOMCPU=$16C64
SSPM0            EQU    0               ; Schnittstellenmodus
SSPM1            EQU    1
SSPM2            EQU    2
SSPM3            EQU    3
CKP              EQU    4               ; Taktpolarität
SSPEN            EQU    5               ; Portfreigabe
SSPOV            EQU    6               ; Empfägerüberlauf
WCOL             EQU    7               ; Senderkollision
                endif

;----------------------------------------------------------------------------
; Bits in INTCON

RBIF		EQU	0		; auf 1, falls Pegelwechsel an PB4..7
INTF		EQU	1		; Interrupt aufgetreten
RTIF		EQU	2		; RTCC-Interrupt
RBIE		EQU	3		; Interrupts durch Bit 0 freigeben
INTE		EQU	4		; Interrupts durch Bit 1 freigeben
RTIE		EQU	5		; Interrupts durch Bit 2 freigeben
                if      MOMCPU=$16C84
EEIE             EQU    6               ; Interrupts vom EEPROM freigeben
                elseif
PEIE             EQU    6               ; Peripherie-Interrupts freigeben
                endif
GIE		EQU	7		; globale Interruptsperre

; Bits in PIE1

                if      MOMCPU=$16C64
TMR1IE           EQU    0               ; Interrupts Timer 1 freigeben
TMR2IE           EQU    1               ; Interrupts Timer 2 freigeben
CCP1IE           EQU    2               ; Interrupts CCP1 freigeben
SSPIE            EQU    3               ; Interrupts serielle Schnittstelle freigeben
PSPIE            EQU    7               ; Interrupts Parallelport freigeben
                endif

; Bits in PIR1

                if      MOMCPU=$16C64
TMR1IF           EQU    0               ; Interrupt Timer 1 aufgetreten
TMR2IF           EQU    1               ; Interrupt Timer 2 aufgetreten
CCP1IF           EQU    2               ; Interrupt CCP1 aufgetreten
SSPIF            EQU    3               ; Interrupt serielle Schnittstelle aufgetreten
PSPIF            EQU    7               ; Interrupt Parallelport aufgetreten
                endif

;----------------------------------------------------------------------------
; Bits in OPTION

PS0		EQU	0		; Einstellung Vorteiler
PS1		EQU	1
PS2		EQU	2
PSA		EQU	3		; Vorteile-Zuordnung
RTE		EQU	4		; Triggerflanke RTCC
RTS		EQU	5		; RTCC-Signalquelle
INTEDG		EQU	6		; INT-Triggerflanke
RBPU		EQU	7		; Pull-Ups an Port B freigeben

;Bits in PCON

                if      MOMCPU=$16C64
POR              EQU    1               ; 0=Power-On-Reset aufgetreten
                endif

;----------------------------------------------------------------------------
; Bits in EECON1

                if      MOMCPU=$16C84
RD               EQU    0               ; Lesezyklus starten
WR               EQU    1               ; Schreibzyklus starten
WREN             EQU    2               ; Schreibsperre
WRERR            EQU    3               ; Schreibvorgang abgebrochen
EEIF             EQU    4               ; signalisiert Schreibende
                endif

		endif

		restore                 ; wieder erlauben

