611 lines
23 KiB
PHP
611 lines
23 KiB
PHP
save
|
|
listing off ; kein Listing über diesen File
|
|
|
|
;****************************************************************************
|
|
;* *
|
|
;* AS 1.41 - Datei REG96.INC *
|
|
;* *
|
|
;* Sinn : enthält Makro-, SFR- und Adreßdefinitionen für die *
|
|
;* MCS-96-Prozessoren *
|
|
;* OK, der Name fällt aus dem Rahmen, aber STDDEF96.INC war schon *
|
|
;* belegt... *
|
|
;* *
|
|
;* letzte Änderungen : 20. 2.1994 *
|
|
;* 28. 6.1994 80196 (KR) hinzugefügt *
|
|
;* 9. 3.1997 80196N(T), 80296 hinzugefügt *
|
|
;* *
|
|
;****************************************************************************
|
|
|
|
ifndef reg96inc ; verhindert Mehrfacheinbindung
|
|
|
|
reg96inc equ 1
|
|
|
|
if (MOMCPUNAME<>"8096")&&(MOMCPUNAME<>"80196")
|
|
fatal "Falscher Prozessortyp eingestellt: nur 8096, 80196, 80196N oder 80299 erlaubt!"
|
|
endif
|
|
|
|
|
|
if MOMPASS=1
|
|
message "MCS-96-SFR-Definitionen (C) 1994 Alfred Arnold"
|
|
message "binde \{MOMCPU}-SFRs ein"
|
|
endif
|
|
|
|
;----------------------------------------------------------------------------
|
|
; CPU-Register:
|
|
|
|
R0 equ 0 ; Nullregister
|
|
ZERO_REG equ R0
|
|
ONES_REG equ 2 ; nur Einsen
|
|
SP equ 18h ; Stackpointer
|
|
if MOMCPU>=80196h
|
|
WSR equ 14h ; RAM-Window in Registerbank
|
|
if MOMCPU>=80296h
|
|
WSR1 equ 15h ; RAM-Window in untere Hälfte Registerbank
|
|
endif
|
|
endif
|
|
|
|
if MOMCPU>=80296h ; Signalprozessorregister
|
|
ACC_00 equ 000ch ; Akkumulator
|
|
ACC_02 equ 000eh
|
|
ACC_04 equ 0006h
|
|
ACC_STAT equ 000bh
|
|
ICB0 equ 1fc3h ; Indexregister
|
|
ICB1 equ 1fc7h
|
|
ICX0 equ 0010h
|
|
ICX1 equ 0016h
|
|
IDX0 equ 1fc0h
|
|
IDX1 equ 1fc4h
|
|
RPT_CNT equ 0004h ; Zählregister
|
|
endif
|
|
|
|
;----------------------------------------------------------------------------
|
|
; SFRs:
|
|
|
|
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
; A/D-Wandler
|
|
switch MOMCPUNAME
|
|
|
|
case "80296" ; Warnung unterdrücken
|
|
|
|
|
|
case "80196N"
|
|
AD_RESULT equ 1faah ; Ergebnis Wandlung (wortweise lesbar)
|
|
AD_COMMAND equ 1fach ; Steuerung AD-Wandler
|
|
AD_TEST equ 1faeh ; Justage
|
|
AD_TIME equ 1fafh ; Wandlungsgeschwindigkeit
|
|
|
|
|
|
case "80196"
|
|
AD_Result equ 1faah ; Ergebnis Wandlung (wortweise lesbar)
|
|
AD_Command equ 1fach ; Steuerung AD-Wandler
|
|
AD_Test equ 1faeh ; Justage
|
|
AD_Time equ 1fafh ; Wandlungsgeschwindigkeit
|
|
|
|
|
|
case "8096"
|
|
AD_Command equ 2 ; A/D-Wandler Steuerregister
|
|
AD_Result_Lo equ 2 ; Ergebnis A/D-Wandler
|
|
AD_Result_Hi equ 3 ; NUR byteweise lesen!!
|
|
|
|
|
|
endcase
|
|
|
|
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
; HSI/HSO/EPA
|
|
|
|
switch MOMCPUNAME
|
|
|
|
|
|
case "80296"
|
|
EPA_MASK equ 1f9ch ; Interruptmasken
|
|
EPA_PEND equ 1f9eh ; Interruptanzeigen
|
|
__CNT set 0
|
|
rept 4
|
|
EPA{"\{__CNT}"}_CON equ 1f60h+(__CNT*4) ; Steuerung Vergleicher/Fangeinheiten
|
|
EPA{"\{__CNT}"}_TIME equ 1f62h+(__CNT*4) ; Zeitpunkt " "
|
|
__CNT set __CNT+1
|
|
endm
|
|
|
|
|
|
case "80196N"
|
|
COMP0_CON equ 1f88h ; Steuerung Vergleicher 0
|
|
COMP0_TIME equ 1f8ah ; Zeitpunkt Vergleicher 0
|
|
|
|
COMP1_CON equ 1f8ch ; dito
|
|
COMP1_CON equ 1f8eh
|
|
|
|
EPA_MASK equ 1fa0h ; Interruptmasken
|
|
EPA_MASK1 equ 1fa4h
|
|
EPA_PEND equ 1fa2h ; Interruptanzeigen
|
|
EPA_PEND1 equ 1fa6h
|
|
__CNT set 0
|
|
rept 10
|
|
EPA{"\{__CNT}"}_CON equ 1f60h+(__CNT*4) ; Steuerung Vergleicher/Fangeinheiten
|
|
EPA{"\{__CNT}"}_TIME equ 1f62h+(__CNT*4) ; Zeitpunkt " "
|
|
__CNT set __CNT+1
|
|
endm
|
|
EPAIPV equ 1fa8h ; Interrupt-Priorität
|
|
|
|
|
|
case "80196"
|
|
EPA_Mask equ 1fa0h ; (w) EPA Interruptfreigabe 4..9, 0..1, overrun 0..9/0/1
|
|
EPA_Mask1 equ 1fa4h
|
|
EPA_Pend equ 1fa2h ; (w) EPA Interrupt aufgetreten 4..9, 0..1, overrun 0..9/0/1
|
|
EPA_Pend1 equ 1fa6h
|
|
EPAIpv equ 1fa8h ; Priorität EPA-Interrupt
|
|
|
|
EPA_Control0 equ 1f60h ; Steuerung Capture/Compare Kanal 0..9
|
|
EPA_Time0 equ 1f62h ; (w) gespeicherter Zeitpunkt Kanal 0..9
|
|
EPA_Control1 equ 1f64h
|
|
EPA_Time1 equ 1f66h
|
|
EPA_Control2 equ 1f68h
|
|
EPA_Time2 equ 1f6ah
|
|
EPA_Control3 equ 1f6ch
|
|
EPA_Time3 equ 1f6eh
|
|
EPA_Control4 equ 1f70h
|
|
EPA_Time4 equ 1f72h
|
|
EPA_Control5 equ 1f74h
|
|
EPA_Time5 equ 1f76h
|
|
EPA_Control6 equ 1f78h
|
|
EPA_Time6 equ 1f7ah
|
|
EPA_Control7 equ 1f7ch
|
|
EPA_Time7 equ 1f7eh
|
|
EPA_Control8 equ 1f80h
|
|
EPA_Time8 equ 1f82h
|
|
EPA_Control9 equ 1f84h
|
|
EPA_Time9 equ 1f86h
|
|
Comp_Control0 equ 1f88h ; Steuerung Compare-Kanal 0..1
|
|
Comp_Time0 equ 1f8ah ; Vergleichswert Compare-Kanal 0..1
|
|
Comp_Control1 equ 1f8ch
|
|
Comp_Time1 equ 1f8eh
|
|
|
|
|
|
case "8096"
|
|
HSI_Time equ 4 ; HSI Triggerzeitpunkt (nur Wort)
|
|
HSI_Mode equ 3 ; HSI Modusregister
|
|
HSI_Status equ 6 ; HSI Statusregister
|
|
|
|
HSO_Time equ 4 ; HSO Zeiteinstellung (nur Wort)
|
|
HSO_Command equ 6 ; HSO Steuerregister
|
|
|
|
|
|
endcase
|
|
|
|
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
; serielles
|
|
|
|
switch MOMCPUNAME
|
|
|
|
|
|
case "80296"
|
|
SP_CON equ 1fbbh ; Steuerung SIO
|
|
SP_BAUD equ 1fbch ; (w) Baudrate SIO
|
|
SP_STATUS equ 1fb9h ; Status SIO
|
|
SBUF_RX equ 1fb8h ; Empfangsdaten
|
|
SBUF_TX equ 1fbah ; Sendedaten
|
|
|
|
|
|
case "80196N"
|
|
SP_CON equ 1fbbh ; Steuerung SIO
|
|
SP_BAUD equ 1fbch ; (w) Baudrate SIO
|
|
SP_STATUS equ 1fb9h ; Status SIO
|
|
SBUF_RX equ 1fb8h ; Empfangsdaten
|
|
SBUF_TX equ 1fbah ; Sendedaten
|
|
|
|
SSIO_BAUD equ 1fb4h ; Baudrate SSIO
|
|
SSIO0_BUF equ 1fb0h ; Datenregister SSIO0
|
|
SSIO1_BUF equ 1fb2h ; Datenregister SSIO1
|
|
SSIO0_CON equ 1fb1h ; Modus SSIO0
|
|
SSIO1_CON equ 1fb3h ; Modus SSIO1
|
|
|
|
|
|
case "80196"
|
|
SSIO_StB0 equ 1fb0h ; Datenpuffer SSIO Kanal 0
|
|
SSIO_StCr0 equ 1fb1h ; Steuerung Sender/Empfänger SSIO Kanal 0
|
|
SSIO_StB1 equ 1fb2h ; Datenpuffer SSIO Kanal 1
|
|
SSIO_StCr1 equ 1fb3h ; Steuerung Sender/Empfänger SSIO Kanal 1
|
|
SSIO_Baud equ 1fb4h ; Baudrate SSIO
|
|
SBuf_RX equ 1fb8h ; Empfangsdaten
|
|
SP_Stat equ 1fb9h ; Zustand SIO
|
|
SBuf_TX equ 1fbah ; Sendedaten
|
|
SP_Con equ 1fbbh ; Steuerung SIO
|
|
SP_Baud equ 1fbch ; (w) Baudrate SIO
|
|
|
|
|
|
case "8096"
|
|
SBUF equ 7 ; UART Datenregister
|
|
SPStat equ 11h ; UART Statusregister
|
|
SPCon equ 11h ; UART Steuerregister
|
|
Baud_Reg equ 0eh ; UART Datenrate
|
|
|
|
|
|
endcase
|
|
|
|
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
; Interruptsteuerung
|
|
|
|
switch MOMCPUNAME
|
|
|
|
|
|
case "80296"
|
|
INT_MASK equ 08h ; Interruptmasken
|
|
INT_MASK1 equ 13h
|
|
INT_PEND equ 09h ; Interruptanzeigen
|
|
INT_PEND1 equ 12h
|
|
EXTINT_CON equ 1fcch ; Flankenwahl externe Interrupts
|
|
IN_PROG0 equ 1fc8h ; Interruptbearbeitung läuft
|
|
IN_PROG1 equ 1fcah
|
|
INT_CON0 equ 1fe8h ; Prioritätsfestlegung
|
|
INT_CON1 equ 1feah
|
|
INT_CON2 equ 1fech
|
|
INT_CON3 equ 1feeh
|
|
NMI_PEND equ 1fc9h ; NMI angefordert ?
|
|
VECT_ADDR equ 1ff0h ; Vektorbasis
|
|
|
|
case "80196N"
|
|
INT_MASK equ 08h ; Interruptmasken
|
|
INT_MASK1 equ 13h
|
|
INT_PEND equ 09h ; Interruptanzeigen
|
|
INT_PEND1 equ 12h
|
|
|
|
PTSSRV equ 06h ; (w) PTS-Interrupt bedient
|
|
PTSSEL equ 04h ; (w) Quellen PTS freigeben
|
|
|
|
|
|
case "80196"
|
|
Int_Mask_Lo equ 08h ; Interruptfreigabe
|
|
Int_Mask_Hi equ 13h
|
|
Int_Pend_Lo equ 09h ; wartende Interrupts
|
|
Int_Pend_Hi equ 12h
|
|
|
|
PTS_Srv equ 06h ; w PTS-Interrupt bedient
|
|
PTS_Select equ 04h ; w Quellen PTS freigeben
|
|
|
|
|
|
case "8096"
|
|
INT_Mask equ 8 ; Interruptfreigabe
|
|
INT_Pending equ 9 ; Interrupts aufgetreten ?
|
|
|
|
|
|
endcase
|
|
|
|
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
; Timer
|
|
|
|
Watchdog equ 0ah ; Watchdog zurücksetzen
|
|
|
|
switch MOMCPUNAME
|
|
|
|
|
|
case "80296"
|
|
CON_REG0 equ 1fb6h ; Steuerung PWM
|
|
PWM0_CONTROL equ 1fb0h ; Einschaltdauer PWM0
|
|
PWM1_CONTROL equ 1fb2h
|
|
PWM2_CONTROL equ 1fb4h
|
|
|
|
T1CONTROL equ 1f90h ; Steuerung Timer 1
|
|
TIMER1 equ 1f92h ; (w) Daten Timer 1
|
|
T2CONTROL equ 1f94h ; Steuerung Timer 2
|
|
TIMER22 equ 1f96h ; (w) Daten Timer 2
|
|
|
|
|
|
case "80196N"
|
|
T1CONTROL equ 1f98h ; Steuerung Timer 1
|
|
TIMER1 equ 1f9ah ; (w) Daten Timer 1
|
|
T2CONTROL equ 1f9ch ; Steuerung Timer 2
|
|
TIMER22 equ 1f9eh ; (w) Daten Timer 2
|
|
|
|
|
|
case "80196"
|
|
Timer1_Control equ 1f98h ; Steuerung Timer 1
|
|
Timer1 equ 1f9ah ; (w) Daten Timer 1
|
|
Timer2_Control equ 1f9ch ; Steuerung Timer 2
|
|
Timer2 equ 1f9eh ; (w) Daten Timer 2
|
|
|
|
|
|
case "8096"
|
|
Timer1 equ 0ah ; Timer 1 (nur Wort)
|
|
Timer2 equ 0ch ; Timer 2 (nur Wort)
|
|
|
|
PWM_Control equ 17h ; Einstellung Pulsweite PWM
|
|
|
|
|
|
endcase
|
|
|
|
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
; Ports
|
|
|
|
switch MOMCPUNAME
|
|
|
|
|
|
case "80296"
|
|
|
|
P1_DIR equ 1fd2h ; Richtungsregister Port 1
|
|
P1_MODE equ 1fd0h ; Auswahl Port 1 Spezialfunktion/IO-Port
|
|
P1_PIN equ 1fd6h ; Status Port 1 Pins
|
|
P1_REG equ 1fd4h ; Port 1 Ausgabedaten
|
|
|
|
P2_DIR equ 1fd3h ; Rest sinngemäß
|
|
P2_MODE equ 1fd1h
|
|
P2_PIN equ 1fd7h
|
|
P2_REG equ 1fd5h
|
|
|
|
P3_DIR equ 1fdah
|
|
P3_MODE equ 1fd8h
|
|
P3_PIN equ 1fdeh
|
|
P3_REG equ 1fdch
|
|
|
|
P4_DIR equ 1fdbh
|
|
P4_MODE equ 1fd9h
|
|
P4_PIN equ 1fdfh
|
|
P4_REG equ 1fddh
|
|
|
|
EP_DIR equ 1fe3h
|
|
EP_MODE equ 1fe1h
|
|
EP_PIN equ 1fe7h
|
|
EP_REG equ 1fe5h
|
|
|
|
|
|
case "80196N"
|
|
P0_PIN equ 1fdah ; Daten Port 0
|
|
|
|
P1_DIR equ 1fd2h ; Richtungsregister Port 1
|
|
P1_MODE equ 1fd0h ; Auswahl Port 1 Spezialfunktion/IO-Port
|
|
P1_PIN equ 1fd6h ; Status Port 1 Pins
|
|
P1_REG equ 1fd4h ; Port 1 Ausgabedaten
|
|
|
|
P2_DIR equ 1fcbh ; Rest sinngemäß
|
|
P2_MODE equ 1fc9h
|
|
P2_PIN equ 1fcfh
|
|
P2_REG equ 1fcdh
|
|
|
|
P3_PIN equ 1ffeh
|
|
P3_REG equ 1ffch
|
|
|
|
P4_PIN equ 1fffh
|
|
P4_REG equ 1ffdh
|
|
|
|
P34_DRV equ 1ff4h ; Umschaltung Port 3/4 als open-drain oder push-pull
|
|
|
|
P5_DIR equ 1ff3h
|
|
P5_MODE equ 1ff1h
|
|
P5_PIN equ 1ff7h
|
|
P5_REG equ 1ff5h
|
|
|
|
P6_DIR equ 1fd3h
|
|
P6_MODE equ 1fd1h
|
|
P6_PIN equ 1fd7h
|
|
P6_REG equ 1fd5h
|
|
|
|
EP_DIR equ 1fe3h
|
|
EP_MODE equ 1fe1h
|
|
EP_PIN equ 1fe7h
|
|
EP_REG equ 1fe5h
|
|
|
|
|
|
case "80196"
|
|
P0PIn equ 1fdah ; Daten Port 0
|
|
|
|
P1SSel equ 1fd0h ; Spezialfunktionen auf Port 1 ?
|
|
P1IO equ 1fd2h ; Port 1 Datenrichtungsregister
|
|
P1Reg equ 1fd4h ; Port 1 Datenausgabe
|
|
P1PIn equ 1fd6h ; Eingangszustand Port 1
|
|
|
|
P2SSel equ 1fc9h ; Rest sinngemäß
|
|
P2IO equ 1fcbh
|
|
P2Reg equ 1fcdh
|
|
P2PIn equ 1fcfh
|
|
|
|
P3Reg equ 1ffch
|
|
P3PIn equ 1ffeh
|
|
|
|
P4Reg equ 1ffdh
|
|
P4PIn equ 1fffh
|
|
|
|
P5SSel equ 1ff1h
|
|
P5IO equ 1ff3h
|
|
P5Reg equ 1ff5h
|
|
P5PIn equ 1ff7h
|
|
|
|
P6SSel equ 1fd1h
|
|
P6IO equ 1fd3h
|
|
P6Reg equ 1fd5h
|
|
P6PIn equ 1fd7h
|
|
|
|
|
|
case "8096"
|
|
Port0 equ 0eh ; Port 0
|
|
Port1 equ 0fh ; Port 1
|
|
Port2 equ 10h ; Port 2
|
|
Port3 equ 1ffeh ; Port 3 (falls kein ext. Speicher)
|
|
Port4 equ 1fffh ; Port 4 (falls kein ext. Speicher)
|
|
|
|
IOS0 equ 15h ; I/O-Statusregister 0
|
|
IOS1 equ 16h ; I/O-Statusregister 1
|
|
IOC0 equ 15h ; I/O-Statusregister 0
|
|
IOC1 equ 16h ; I/O-Statusregister 1
|
|
|
|
|
|
endcase
|
|
|
|
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
; Slave-Port
|
|
|
|
switch MOMCPUNAME
|
|
|
|
|
|
case "80296" ; Warnung unterdrücken
|
|
|
|
|
|
case "80196N"
|
|
SLP_CMD equ 1ffah ; Kommandoregister
|
|
SLP_CON equ 1ffbh
|
|
SLP_STAT equ 1ff8h
|
|
|
|
|
|
case "80196" ; Warnung unterdrücken
|
|
|
|
|
|
case "8096"
|
|
SlpStat equ 1ff8h ; Status Slave-Port
|
|
SlpCmd equ 1ffah ; Kommandoregister Slave-Port
|
|
SlpFunReg equ 1ffbh ; Slave-Port Steuerung
|
|
|
|
|
|
endcase
|
|
|
|
;----------------------------------------------------------------------------
|
|
; Vektoren/Sonderadressen
|
|
|
|
if MOMCPU>=80196h
|
|
EPAIntX_Vec equ 2000h ; Kanal 4...9/0/1 EPA
|
|
EPAInt3_Vec equ 2002h ; Kanal 3 EPA
|
|
EPAInt2_Vec equ 2004h ; Kanal 2 EPA
|
|
EPAInt1_Vec equ 2006h ; Kanal 1 EPA
|
|
EPAInt0_Vec equ 2008h ; Kanal 0 EPA
|
|
AD_Complete_Vec equ 200ah ; A/D-Wandlung abgeschlossen
|
|
OBE_Slp_Vec equ 200ch ; Ausgabepuffer leer
|
|
IBF_Slp_Vec equ 200eh ; Eingabepuffer voll
|
|
Trap_Vec equ 2010h ; Software-Trap
|
|
Ill_Opcode_Vec equ 2012h ; undefinierter Opcode
|
|
CMD_Full_Vec equ 2030h ; Kommandopuffer voll
|
|
SSIO0_Trans_Vec equ 2032h ; Transfer SSIO0 abgeschlossen
|
|
SSIO1_Trans_Vec equ 2034h ; Transfer SSIO1 abgeschlossen
|
|
SIO_TrInt_Vec equ 2036h ; SIO hat Zeichen versandt
|
|
SIO_RcInt_Vec equ 2038h ; SIO hat Zeichen empfangen
|
|
ExtInt_Vec equ 203ch ; externer Interrupt
|
|
NMI_Vec equ 203eh ; nicht mask. Interrupt
|
|
elseif
|
|
TOverInt_Vec equ 2000h ; Vektor Timerüberlauf
|
|
ADInt_Vec equ 2002h ; Vektor A/D-Wandlung beendet
|
|
HSIDataInt_Vec equ 2004h ; Vektor HSI-Daten verfügbar
|
|
HSOInt_Vec equ 2006h ; Vektor HSO
|
|
HSI0Int_Vec equ 2008h ; Vektor HSI.0
|
|
TimeInt_Vec equ 200ah ; Vektor für Timer
|
|
SerialInt_Vec equ 200ch ; Vektor serieller Interrupt
|
|
ExtInt_Vec equ 200eh ; Vektor externer Interrupt
|
|
SoftInt_Vec equ 2010h ; TRAP Interruptvektor
|
|
Self_Jump equ 201ah ; Endlosschleife
|
|
endif
|
|
|
|
;----------------------------------------------------------------------------
|
|
; Speicherbereiche, Spezialregister
|
|
|
|
switch MOMCPUNAME
|
|
|
|
|
|
case "80296"
|
|
IRAM equ 1ah ; Beginn internes RAM
|
|
IRAMEND equ 1ffh ; Ende internes RAM
|
|
CODERAM equ 0f800h ; Beginn Code-RAM
|
|
CODERAMEND equ 0ffffh ; Ende Code-RAM
|
|
EXTMEM1 equ 400h ; Beginn externer Speicher Bereich 1
|
|
EXTMEM1END equ 1bffh ; Ende externer Speicher Bereich 1
|
|
EXTMEM2 equ 02000h ; Beginn externer Speicher Bereich 2
|
|
EXTMEM2END equ 0f7ffh ; Ende externer Speicher Bereich 2
|
|
EXTMEM3 equ 0ff0400h ; Beginn externer Speicher Bereich 3
|
|
EXTMEM3END equ 0fff7ffh ; Ende externer Speicher Bereich 3
|
|
CCB0 equ 0ff2018h ; Chip-Konfiguration
|
|
CCB1 equ 0ff201ah ; erw. Chip-Konfiguration
|
|
Reset_Location equ 0ff2080h ; Startadresse nach Reset
|
|
|
|
|
|
case "80196N"
|
|
IRAM equ 1ah ; Beginn internes RAM
|
|
IRAMEND equ 3ffh ; Ende internes RAM
|
|
IROM equ 0ff2000h ; Beginn internes Programm-ROM
|
|
IROMEND equ 0ff9fffh ; Ende internes Programm-ROM
|
|
EXTMEM1 equ 600h ; Beginn externer Speicher Bereich 1
|
|
EXTMEM1END equ 1effh ; Ende externer Speicher Bereich 1
|
|
EXTMEM2 equ 0a000h ; Beginn externer Speicher Bereich 2
|
|
EXTMEM2END equ 0ffffh ; Ende externer Speicher Bereich 2
|
|
EXTMEM3 equ 0ff0100h ; Beginn externer Speicher Bereich 3
|
|
EXTMEM3END equ 0ff03ffh ; Ende externer Speicher Bereich 3
|
|
EXTMEM4 equ 0ff0600h ; Beginn externer Speicher Bereich 4
|
|
EXTMEM4END equ 0ff1fffh ; Ende externer Speicher Bereich 4
|
|
EXTMEM5 equ 0ffa000h ; Beginn externer Speicher Bereich 5
|
|
EXTMEM5END equ 0ffffffh ; Ende externer Speicher Bereich 5
|
|
CCB0 equ 0ff2018h ; Chip-Konfiguration
|
|
CCB1 equ 0ff201ah ; erw. Chip-Konfiguration
|
|
CCB2 equ 0ff201ch
|
|
Security_Key equ 0ff2020h ; Schlüssel
|
|
Reset_Location equ 0ff2080h ; Startadresse nach Reset
|
|
USFR equ 1ff6h ; ???
|
|
IRAM_CON equ 1fe0h ; Konfiguration Code-RAM
|
|
|
|
|
|
case "80196"
|
|
IRAM equ 1ah ; Beginn internes RAM
|
|
IRAMEND equ 1ffh ; Ende internes RAM
|
|
PDRAM equ IRAM ; Beginn Power-Down-RAM
|
|
PDRAMEND equ 1ffh ; Ende Power-Down-RAM
|
|
CODERAM equ 400h ; Beginn Code-RAM (KEIN Windowing!)
|
|
CODERAMEND equ 4ffh ; Ende Code-RAM
|
|
IROM equ 2000h ; Beginn internes Programm-ROM
|
|
IROMEND equ 3fffh ; Ende internes Programm-ROM
|
|
EXTMEM1 equ 500h ; Beginn externer Speicher Bereich 1
|
|
EXTMEM1END equ 1effh ; Ende externer Speicher Bereich 1
|
|
EXTMEM2 equ 4000h ; Beginn externer Speicher Bereich 2
|
|
EXTMEM2END equ 0ffffh ; Ende externer Speicher Bereich 2
|
|
CCB equ 2018h ; Chip-Konfiguration
|
|
CCB1 equ 201ah ; erw. Chip-Konfiguration
|
|
Security_Key equ 2020h ; Schlüssel
|
|
Reset_Location equ 2080h ; Startadresse nach Reset
|
|
USFR equ 1ff6h ; ???
|
|
|
|
|
|
case "8096"
|
|
IRAM equ 1ah ; Beginn internes RAM
|
|
IRAMEND equ 0ffh ; Ende internes RAM
|
|
PDRAM equ 0f0h ; Beginn Power-Down-RAM
|
|
PDRAMEND equ 0ffh ; Ende Power-Down-RAM
|
|
IROM equ 2000h ; Beginn internes Programm-ROM
|
|
IROMEND equ 3fffh ; Ende internes Programm-ROM
|
|
EXTMEM1 equ 100h ; Beginn externer Speicher Bereich 1
|
|
EXTMEM1END equ 1effh ; Ende externer Speicher Bereich 1
|
|
EXTMEM2 equ 4000h ; Beginn externer Speicher Bereich 2
|
|
EXTMEM2END equ 0ffffh ; Ende externer Speicher Bereich 2
|
|
CCB equ 2018h ; Chip-Konfiguration
|
|
Security_Key equ 2020h ; Schlüssel
|
|
Reset_Location equ 2080h ; Startadresse nach Reset
|
|
|
|
|
|
endcase
|
|
|
|
Security_Key_End equ Security_Key+15
|
|
|
|
;--------------------------------------------------------------------------
|
|
; lange Sprünge
|
|
|
|
__DefLongJmp macro new,old
|
|
new macro Adr,{NoExpand}
|
|
old Skip
|
|
ljmp Adr
|
|
Skip:
|
|
endm
|
|
endm
|
|
|
|
__DefLongJmp bc,jnc
|
|
__DefLongJmp be,jne
|
|
__DefLongJmp bge,jlt
|
|
__DefLongJmp bgt,jle
|
|
__DefLongJmp bh,jnh
|
|
__DefLongJmp ble,jgt
|
|
__DefLongJmp blt,jge
|
|
__DefLongJmp bnc,jc
|
|
__DefLongJmp bne,je
|
|
__DefLongJmp bnh,jh
|
|
__DefLongJmp bnst,jst
|
|
__DefLongJmp bnv,jv
|
|
__DefLongJmp bnvt,jvt
|
|
__DefLongJmp bst,jnst
|
|
__DefLongJmp bv,jnv
|
|
__DefLongJmp bvt,jnvt
|
|
|
|
;--------------------------------------------------------------------------
|
|
|
|
endif
|
|
|
|
restore ; wieder erlauben
|
|
|