📄 reg96.inc
字号:
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乧ken
case "80196N"
SLP_CMD equ 1ffah ; Kommandoregister
SLP_CON equ 1ffbh
SLP_STAT equ 1ff8h
case "80196" ; Warnung unterdr乧ken
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乥erlauf
ADInt_Vec equ 2002h ; Vektor A/D-Wandlung beendet
HSIDataInt_Vec equ 2004h ; Vektor HSI-Daten verf乬bar
HSOInt_Vec equ 2006h ; Vektor HSO
HSI0Int_Vec equ 2008h ; Vektor HSI.0
TimeInt_Vec equ 200ah ; Vektor f乺 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乻sel
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乻sel
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乻sel
Reset_Location equ 2080h ; Startadresse nach Reset
endcase
Security_Key_End equ Security_Key+15
;--------------------------------------------------------------------------
; lange Spr乶ge
__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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -