Blame | Last modification | View Log | Download | RSS feed | ?url?
ifndef __regh16inc ; avoid multiple inclusion
__regh16inc equ 1
;****************************************************************************
;* *
;* AS 1.42 - File regh16.inc *
;* *
;* Contins register & bit definitions for Hittachi H16 *
;* *
;****************************************************************************
save
listing off ; disable listing on this file
__savepc label *
switch MOMCPUNAME
case "HD641016"
elsecase
fatal "wrong processor type: only HD641016 supported."
endcase
if MOMPASS=1
message "Hitachi H16 SFR Definitions (C) 2019 Alfred Arnold"
endif
ifndef ibrvalue
ibrvalue set $fe00
endif
;----------------------------------------------------------------------------
; Chip Select Controller
__cs struct
ABR ds.w 1 ; Area base register n
ARR ds.w 1 ; Area range register n
AWCR ds.w 1 ; Area wait control register n
WTOE bit #7,AWCR ; Wait Output Enable
ALV bit #6,AWCR ; Access Level
BWC2 bit #2,AWCR ; Bus Wait Cycles
BWC1 bit #1,AWCR
BWC0 bit #0,AWCR
__cs endstruct
org ibrvalue+$128
CS0 __cs
CS1 __cs
CS2 __cs
CS3 __cs
;----------------------------------------------------------------------------
; Interrupt Controller
IPR0 equ ibrvalue+$140 ; Interrupt priority register 0
S0P1 bit.w #13,IPR0 ; ASCI0 priority
S0P0 bit.w #12,IPR0
S1P1 bit.w #9,IPR0 ; ASCI1 priority
S1P0 bit.w #8,IPR0
T1P1 bit.w #9,IPR0 ; Timer1 priority
T1P0 bit.w #8,IPR0
IPR1 equ ibrvalue+$142 ; Interrupt priority register 1
T2P1 bit.w #13,IPR1 ; Timer2 priority
T2P0 bit.w #12,IPR1
DM0P1 bit.w #5,IPR1 ; DMAC0 priority
DM0P0 bit.w #4,IPR1
DM1P1 bit.w #1,IPR1 ; DMAC1 priority
DM1P0 bit.w #0,IPR1
IPR2 equ ibrvalue+$144 ; Interrupt priority register 2
DM2P1 bit.w #13,IPR1 ; DMAC2 priority
DM2P0 bit.w #12,IPR1
DM3P1 bit.w #9,IPR1 ; DMAC3 priority
DM3P0 bit.w #8,IPR1
IR0P1 bit.w #5,IPR1 ; IRQ0 priority
IR0P0 bit.w #4,IPR1
IR1P1 bit #1,IPR1 ; IRQ1 priority
IR1P0 bit #0,IPR1
ICR equ ibrvalue+$146 ; Interrupt control register
IMOD bit.w 7,ICR ; Interrupt Mode
NMIV bit.w 6,ICR ; NMI Vector Select
IRQV0 bit.w 5,ICR ; IRQ0 Vector Select
IRQV1 bit.w 4,ICR ; IRQ1 Vector Select
IRQIM0 bit.w 3,ICR ; /IRQ0 Input Mode
IRQIM1 bit.w 2,ICR ; /IRQ1 Input Mode
;----------------------------------------------------------------------------
; Peripheral Controller
PCR0 equ ibrvalue+$14e ; Peripheral control register 0
PTF1 bit.w #12,PCR0 ; Peripheral Terminal Function 1
PTF0 bit.w #10,PCR0 ; Peripheral Terminal Function 0
;----------------------------------------------------------------------------
; Asynchronous communication interfaces
__aci struct dots
TRB ds.b 1 ; TX/RX buffer register
ST0 ds.b 1 ; Status register 0
TXINT bit #7,ST0 ; TXINT interrupt
RXINT bit #6,ST0 ; RXINT interrupt
TXRDY bit #1,ST0 ; TX buffer empty
RXRDY bit #0,ST0 ; Receive data
ST1 ds.b 1 ; Status register 1
IDL bit #6,ST1 ; TX idle
CCTS bit #3,ST1 ; Change of /CTS
CDCD bit #2,ST1 ; Change Of /DCD
BRKD bit #1,ST1 ; Break Start Detect
BRKE bit #0,ST1 ; Break End Detect
ST2 ds.b 1 ; Status register 2
PMP bit #6,ST2 ; Parity/Multiprocessor
PE bit #5,ST2 ; Parity Error
FRME bit #4,ST2 ; Framing Error
OVRN bit #3,ST2 ; Overrun Error
ST3 ds.b 1 ; Status register 3
CTS bit #3,ST3 ; Clear To Send
DCD bit #2,ST3 ; Data Carrier Detect
TXENBL bit #1,ST3 ; TX Enable
RXENBL bit #0,ST3 ; RX Enable
ds.b 1
IE0 ds.b 1 ; Interrupt enable register 0
TXINTE bit #7,IE0 ; TXINT Interrupt Enable
RXINTE bit #6,IE0 ; RXINT Interrupt Enable
TXRDYE bit #1,IE0 ; TXRDY Interrupt Enable
RXRDYE bit #0,IE0 ; RXRDY Interrupt Enable
IE1 ds.b 1 ; Interrupt enable register 1
IDLE bit #6,IE1 ; IDL Interrupt Enable
CCTSE bit #3,IE1 ; CCTS Interrupt Enable
CDCDE bit #2,IE1 ; CDCD Interrupt Enable
BRKDE bit #1,IE1 ; BRKD Interrupt Enable
BRKEE bit #0,IE1 ; BRKE Interrupt Enable
IE2 ds.b 1 ; Interrupt enable register 2
PMPE bit #6,IE2 ; PMP Interrupt Enable
PEE bit #5,IE2 ; PE Interrupt Enable
FRMEE bit #4,IE2 ; FRME Interrupt Enable
OVRNE bit #3,IE2 ; OVRN Interrupt Enable
ds.b 1 ;
CMD ds.b 1 ; Command register
MD0 ds.b 1 ; Mode register 0
PRTCL2 bit #7,MD0 ; Protocol Mode
PRTCL1 bit #6,MD0
PRTCL0 bit #5,MD0
AUTO bit #4,MD0 ; Auto Enable
STOP1 bit #1,MD0 ; Stop Bit length
STOP0 bit #0,MD0
MD1 ds.b 1 ; Mode register 1
BRATE1 bit #7,MD1 ; Bit Rate
BRATE0 bit #6,MD1
TXCHR1 bit #5,MD1 ; TX Character Length
TXCHR0 bit #4,MD1
RXCHR1 bit #3,MD1 ; RX Character Length
RXCHR0 bit #2,MD1
PMPM1 bit #1,MD1 ; Parity/Multiprocessor Mode
PMPM0 bit #0,MD1
MD2 ds.b 1 ; Mode register 2
CNCT1 bit #1,MD2 ; Channel Connection
CNCT0 bit #0,MD2
CTL ds.b 1 ; Control register
BRK bit #3,CTL ; Send Break
RTS bit #0,CTL ; Request To Send
ds.b 3
TMC ds.b 1 ; Time constant register
RXS ds.b 1 ; RX clock source register
RXCS2 bit #6,RXS ; RX Clock Source Select
RXCS1 bit #5,RXS
RXCS0 bit #4,RXS
TXS ds.b 1 ; TX clock source register
TXCS2 bit #6,TXS ; TX Clock Source Select
TXCS1 bit #5,TXS
TXCS0 bit #4,TXS
TXBR3 bit #3,TXS ; TX Baud Rate Select
TXBR2 bit #2,TXS
TXBR1 bit #1,TXS
TXBR0 bit #0,TXS
__aci endstruct
org ibrvalue+$158
ACI0 __aci
org ibrvalue+$170
ACI1 __aci
; ACI Commands:
ACI_CMD_TXRESET equ $01 ; TX reset
ACI_CMD_TXENABLE equ $02 ; TX enable
ACI_CMD_TXDISABLE equ $03 ; TX disable
ACI_CMD_MPBIT_ON equ $08 ; MP bit on
ACI_CMD_TXBUFCLR equ $09 ; TX buffer clear
ACI_CMD_RXRESET equ $11 ; RX reset
ACI_CMD_RXENABLE equ $12 ; RX enable
ACI_CMD_RXDISABLE equ $13 ; RX disable
ACI_CMD_SEARCHMPBIT equ $16 ; Search for MP bit
ACI_CMD_CHANRESET equ $21 ; Channel reset
ACI_CMD_NOP equ $00 ; No operation
;----------------------------------------------------------------------------
; Timer
__timer struct dots
UCR ds.w 1 ; Upcount register
CCRA ds.w 1 ; Count compare register A
CCRB ds.w 1 ; Count compare register B
CNTR ds.w 1 ; Control register
MDS1 bit #15,CNTR ; Mode Select
MDS0 bit #14,CNTR
CSS2 bit #13,CNTR ; Clock Source Select
CSS1 bit #12,CNTR
CSS0 bit #11,CNTR
TSS1 bit #10,CNTR ; Trigger Source Select
TSS0 bit #9,CNTR
DMA bit #8,CNTR ; Direct Memory Access Request
CIE bit #7,CNTR ; Compare Interrupt Enable
OIE bit #6,CNTR ; Overflow Interrupt Enable
MIE bit #5,CNTR ; Measurement End Interrupt Enable
OLB bit #4,CNTR ; Output Level
OLA bit #3,CNTR
UCE bit #2,CNTR ; Upcount Enable
UCRC bit #1,CNTR ; Upcount Register Clear
STP bit #0,CNTR ; Stop Point
STR ds.w 1 ; Status register
CF bit #3,STR ; Compare Flag
OF bit #2,STR ; Overflow Flag
MF bit #1,STR ; Measurement End Flag
OLS bit #0,STR ; Output Level Status
__timer endstruct
org ibrvalue+$18e
TIMER1 __timer
TIMER2 __timer
;----------------------------------------------------------------------------
; DMA Controller
__dmactrl struct dots
MADR ds.l 1 ; Memory address register
DADR ds.l 1 ; Device/Next block address register
ETCR ds.w 1 ; Execute transfer count register
BTCR ds.w 1 ; Base transfer count register
CHCRA ds.w 1 ; Channel control register
MRC bit #15,CHCRA ; Memory Address Register Change
MS1 bit #14,CHCRA ; Memory Space
MS0 bit #13,CHCRA
DC2 bit #12,CHCRA ; Device Classification
DC1 bit #11,CHCRA
DC0 bit #10,CHCRA
DPS bit #9,CHCRA ; Device Port Size
OPS bit #8,CHCRA ; Operand Size
RQS bit #7,CHCRA ; Request Signal Sense
BM bit #6,CHCRA ; Bus Mode
DIR bit #5,CHCRA ; Direction
P bit #4,CHCRA ; Priority
BIE bit #3,CHCRA ; BTF Interrupt Enable
BTF bit #2,CHCRA ; Block Transfer Finished
TIE bit #1,CHCRA ; TF Interrupt Enable
TF bit #0,CHCRA ; Transfer Finished
CHCRB ds.w 1 ; Channel control register B
DRC1 bit #15,CHCRB ; Device Address Register Change
DRC0 bit #14,CHCRB
DS1 bit #13,CHCRB ; Device Space
DS0 bit #12,CHCRB
DBER bit #11,CHCRB ; DMA Bus Error
__dmactrl endstruct
org ibrvalue+$1b0
DMAC0 __dmactrl
DMAC1 __dmactrl
DMAC2 __dmactrl
DMAC3 __dmactrl
OPCR equ ibrvalue+$1f0 ; Operation control register
WE0 bit.w #15,OPCR ; Write Enable Channel 0
DE0 bit.w #14,OPCR ; DMA Enable Channel 0
SUC0 bit.w #13,OPCR ; Successive Operation Channel 0
WE1 bit.w #11,OPCR ; Write Enable Channel 1
DE1 bit.w #10,OPCR ; DMA Enable Channel 1
SUC1 bit.w #9,OPCR ; Successive Operation Channel 1
WE2 bit.w #7,OPCR ; Write Enable Channel 2
DE2 bit.w #6,OPCR ; DMA Enable Channel 2
SUC2 bit.w #5,OPCR ; Successive Operation Channel 2
WE3 bit.w #3,OPCR ; Write Enable Channel 3
DE3 bit.w #2,OPCR ; DMA Enable Channel 3
SUC3 bit.w #1,OPCR ; Successive Operation Channel 3
DME bit.w #0,OPCR ; DMA Master Enable
;----------------------------------------------------------------------------
; Memory Controller
MCR equ ibrvalue+$1f8 ; Memory control register
WTIE bit.w #15,MCR ; /WAIT Input Enable
ASWC bit.w #14,MCR ; AS Wait Control
IWC1 bit.w #13,MCR ; Interrupt Wait Cycle
IWC0 bit.w #12,MCR
ROPL bit.w #8,MCR ; Refresh Priority Label
REFE bit.w #7,MCR ; Refresh Enable
RWC1 bit.w #6,MCR ; Refresh Wait Cycle
RWC0 bit.w #5,MCR
RRN1 bit.w #4,MCR ; Refresh Request Number
RRN0 bit.w #3,MCR
CYC2 bit.w #2,MCR ; Refresh Cycle
CYC1 bit.w #1,MCR
CYC0 bit.w #0,MCR
;----------------------------------------------------------------------------
org __savepc
restore ; re-enable listing
endif ; __regh16inc