Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed

                ifndef  __reg80f92inc
__reg80f92inc   equ     1
                save
                listing off     ; no listing over this file

;****************************************************************************
;*                                                                          *
;*   AS(L) - File REG80F92.INC                                              *
;*                                                                          *
;*   Contains Bit & Register Definitions for Zilog eZ80[F,L]92/eZ80F93      *
;*                                                                          *
;****************************************************************************

                include "spi.inc"
                include "uart.inc"
                include "i2c.inc"
                include "gpio.inc"
                include "rtc.inc"

;----------------------------------------------------------------------------
; Memory Limits

                switch  MOMCPUNAME
                case    "EZ80F92"
RAMSTART         equ    0e000h          ; assumes RAM_ADDR_U = 00h
RAMEND           equ    RAMSTART+1fffh
FLASHSIZE        equ    20000h
                case    "EZ80F93"
RAMSTART         equ    0f000h          ; assumes RAM_ADDR_U = 00h
RAMEND           equ    RAMSTART+0fffh
FLASHSIZE        equ    10000h
                case    "EZ80L92"
                endcase

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

TMR0_CTL        port    80h             ; Timer 0 Control Register (r/w)
PRT_IRQ         equ     1 << 7          ;  Timer Interrupt occured
PRT_IRQ_EN      equ     1 << 6          ;  Interrupt Enable
PRT_MODE        equ     1 << 4          ;  Continuous Mode
CLK_DIV_S       equ     2               ;  Clock Divider
CLK_DIV_M       equ     3 << CLK_DIV_S
CLK_DIV_4       equ     0 << CLK_DIV_S  ;   Source = Clock/4
CLK_DIV_16      equ     1 << CLK_DIV_S  ;   Source = Clock/16
CLK_DIV_64      equ     2 << CLK_DIV_S  ;   Source = Clock/64
CLK_DIV_256     equ     3 << CLK_DIV_S  ;   Source = Clock/256
RST_EN          equ     1 << 1          ;  Automatic Restart Enable
PRT_EN          equ     1 << 0          ;  Timer Enable
TMR0_DR_L       port    81h             ; Timer 0 Data Register Low (r)
TMR0_RR_L       port    81h             ; Timer 0 Reload Register Low (w)
TMR0_DR_H       port    82h             ; Timer 0 Data Register High (r)
TMR0_RR_H       port    82h             ; Timer 0 Reload Register High (w)

IVEC_PRT0       equ     0ah             ; Timer 0 Interrupt Vector

TMR1_CTL        port    83h             ; Timer 1 Control Register (r/w)
TMR1_DR_L       port    84h             ; Timer 1 Data Register Low (r)
TMR1_RR_L       port    84h             ; Timer 1 Reload Register Low (w)
TMR1_DR_H       port    85h             ; Timer 1 Data Register High (r)
TMR1_RR_H       port    85h             ; Timer 1 Reload Register High (w)

IVEC_PRT1       equ     0ch             ; Timer 1 Interrupt Vector

TMR2_CTL        port    86h             ; Timer 2 Control Register (r/w)
TMR2_DR_L       port    87h             ; Timer 2 Data Register Low (r)
TMR2_RR_L       port    87h             ; Timer 2 Reload Register Low (w)
TMR2_DR_H       port    88h             ; Timer 2 Data Register High (r)
TMR2_RR_H       port    88h             ; Timer 2 Reload Register High (w)

IVEC_PRT2       equ     0eh             ; Timer 2 Interrupt Vector

TMR3_CTL        port    89h             ; Timer 3 Control Register (r/w)
TMR3_DR_L       port    8ah             ; Timer 3 Data Register Low (r)
TMR3_RR_L       port    8ah             ; Timer 3 Reload Register Low (w)
TMR3_DR_H       port    8bh             ; Timer 3 Data Register High (r)
TMR3_RR_H       port    8bh             ; Timer 3 Reload Register High (w)

IVEC_PRT3       equ     10h             ; Timer 3 Interrupt Vector

TMR4_CTL        port    8ch             ; Timer 4 Control Register (r/w)
TMR4_DR_L       port    8dh             ; Timer 4 Data Register Low (r)
TMR4_RR_L       port    8dh             ; Timer 4 Reload Register Low (w)
TMR4_DR_H       port    8eh             ; Timer 4 Data Register High (r)
TMR4_RR_H       port    8eh             ; Timer 4 Reload Register High (w)

IVEC_PRT4       equ     12h             ; Timer 4 Interrupt Vector

TMR5_CTL        port    8fh             ; Timer 5 Control Register (r/w)
TMR5_DR_L       port    90h             ; Timer 5 Data Register Low (r)
TMR5_RR_L       port    90h             ; Timer 5 Reload Register Low (w)
TMR5_DR_H       port    91h             ; Timer 5 Data Register High (r)
TMR5_RR_H       port    91h             ; Timer 5 Reload Register High (w)

IVEC_PRT5       equ     14h             ; Timer 5 Interrupt Vector

TMR_ISS         port    92h             ; Timer Input Source Select Register
TMR3_IN_S       equ     6               ;  Timer 3 Input
TMR3_IN_M       equ     3 << TMR3_IN_S
TMR3_IN_SYS     equ     0 << TMR3_IN_S  ;   system clock
TMR3_IN_RTC     equ     1 << TMR3_IN_S  ;   RTC
TMR3_IN_B1      equ     2 << TMR3_IN_S  ;   GPIO B1
TMR2_IN_S       equ     6               ;  Timer 2 Input
TMR2_IN_M       equ     3 << TMR2_IN_S
TMR2_IN_SYS     equ     0 << TMR2_IN_S  ;   system clock
TMR2_IN_RTC     equ     1 << TMR2_IN_S  ;   RTC
TMR2_IN_B1      equ     2 << TMR2_IN_S  ;   GPIO B0
TMR1_IN_S       equ     6               ;  Timer 1 Input
TMR1_IN_M       equ     3 << TMR1_IN_S
TMR1_IN_SYS     equ     0 << TMR1_IN_S  ;   system clock
TMR1_IN_RTC     equ     1 << TMR1_IN_S  ;   RTC
TMR1_IN_B1      equ     2 << TMR1_IN_S  ;   GPIO B1
TMR0_IN_S       equ     6               ;  Timer 0 Input
TMR0_IN_M       equ     3 << TMR0_IN_S
TMR0_IN_SYS     equ     0 << TMR0_IN_S  ;   system clock
TMR0_IN_RTC     equ     1 << TMR0_IN_S  ;   RTC
TMR0_IN_B1      equ     2 << TMR0_IN_S  ;   GPIO B0

;----------------------------------------------------------------------------
; Watchdog Timer

WDT_CTL         port    93h             ; Watchdog Timer Control Register (r/w)
WDT_EN          equ     1 << 7          ; Watchdog Timer Enable
NMI_OUT         equ     1 << 6          ;  NMI instead of reset
RST_FLAG        equ     1 << 5          ;  Reset caused by WDT
WDT_CLK_S       equ     3               ;  Clock Source
WDT_CLK_M       equ     3 << WDT_CLK_S
WDT_CLK_SYS     equ     0 << WDT_CLK_S  ;   System Clock
WDT_CLK_RTC     equ     1 << WDT_CLK_S  ;   RTC Clock
WDT_PERIOD_S    equ     0                ;  WDT Period
WDT_PERIOD_M    equ     3 << WDT_PERIOD_S
WDT_PERIOD_27   equ     0 << WDT_PERIOD_S ; WDT period is 2**27 clock cycles
WDT_PERIOD_25   equ     1 << WDT_PERIOD_S ; WDT period is 2**25 clock cycles
WDT_PERIOD_22   equ     2 << WDT_PERIOD_S ; WDT period is 2**22 clock cycles
WDT_PERIOD_18   equ     3 << WDT_PERIOD_S ; WDT period is 2**18 clock cycles

WDT_RR          port    94h             ; Watchdog Timer Reset Register (w)

;----------------------------------------------------------------------------
; General-Purpose Input/Output Ports

                __defgpio "B",9ah

IVEC_PB0        equ     30h             ; Port B 0 Interrupt Vector
IVEC_PB1        equ     32h             ; Port B 1 Interrupt Vector
IVEC_PB2        equ     34h             ; Port B 2 Interrupt Vector
IVEC_PB3        equ     36h             ; Port B 3 Interrupt Vector
IVEC_PB4        equ     38h             ; Port B 4 Interrupt Vector
IVEC_PB5        equ     3ah             ; Port B 5 Interrupt Vector
IVEC_PB6        equ     3ch             ; Port B 6 Interrupt Vector
IVEC_PB7        equ     3eh             ; Port B 7 Interrupt Vector

                __defgpio "C",9eh

IVEC_PC0        equ     40h             ; Port C 0 Interrupt Vector
IVEC_PC1        equ     42h             ; Port C 1 Interrupt Vector
IVEC_PC2        equ     44h             ; Port C 2 Interrupt Vector
IVEC_PC3        equ     46h             ; Port C 3 Interrupt Vector
IVEC_PC4        equ     48h             ; Port C 4 Interrupt Vector
IVEC_PC5        equ     4ah             ; Port C 5 Interrupt Vector
IVEC_PC6        equ     4ch             ; Port C 6 Interrupt Vector
IVEC_PC7        equ     4eh             ; Port C 7 Interrupt Vector

                __defgpio "D",0a2h

IVEC_PD0        equ     50h             ; Port D 0 Interrupt Vector
IVEC_PD1        equ     52h             ; Port D 1 Interrupt Vector
IVEC_PD2        equ     54h             ; Port D 2 Interrupt Vector
IVEC_PD3        equ     56h             ; Port D 3 Interrupt Vector
IVEC_PD4        equ     58h             ; Port D 4 Interrupt Vector
IVEC_PD5        equ     5ah             ; Port D 5 Interrupt Vector
IVEC_PD6        equ     5ch             ; Port D 6 Interrupt Vector
IVEC_PD7        equ     5eh             ; Port D 7 Interrupt Vector

;----------------------------------------------------------------------------
; Chip Select/Wait State Generator

CS0_LBR         port    0a8h            ; Chip Select 0 Lower Bound Register (r/w)
CS0_UBR         port    0a9h            ; Chip Select 0 Upper Bound Register (r/w)
CS0_CTL         port    0aah            ; Chip Select 0 Control Register (r/w)
CS_WAIT_S       equ     5               ;  # of wait states
CS_WAIT_M       equ     7 << CS_WAIT_S
CS_IO           equ     1 << 4          ; Match I/O range
CS_EN           equ     1 << 3          ; Enable Chip Select
CS0_BMC         equ     0f0h            ; Chip Select 0 Bus Mode Control Register (r/w)
BUS_MODE_S      equ     6               ;  Bus Mode
BUS_MODE_M      equ     3 << BUS_MODE_S
BUS_MODE_EZ80   equ     0 << BUS_MODE_S ;   eZ80 Mode
BUS_MODE_Z80    equ     1 << BUS_MODE_S ;   Z80 Mode
BUS_MODE_INTEL  equ     2 << BUS_MODE_S ;   Intel Mode
BUS_MODE_MOTO   equ     3 << BUS_MODE_S ;   Motorola Mode
AD_MUX          equ     1 << 5          ;  Multiplexed Address/Data
BUS_CYCLE_S     equ     0                ;  Length of bus cycle
BUS_CYCLE_M     equ     15 << BUS_CYCLE_S

CS1_LBR         port    0abh            ; Chip Select 1 Lower Bound Register (r/w)
CS1_UBR         port    0ach            ; Chip Select 1 Upper Bound Register (r/w)
CS1_CTL         port    0adh            ; Chip Select 1 Control Register (r/w)
CS1_BMC         equ     0f1h            ; Chip Select 1 Bus Mode Control Register (r/w)

CS2_LBR         port    0aeh            ; Chip Select 2 Lower Bound Register (r/w)
CS2_UBR         port    0afh            ; Chip Select 2 Upper Bound Register (r/w)
CS2_CTL         port    0b0h            ; Chip Select 2 Control Register (r/w)
CS2_BMC         equ     0f2h            ; Chip Select 2 Bus Mode Control Register (r/w)

CS3_LBR         port    0b1h            ; Chip Select 3 Lower Bound Register (r/w)
CS3_UBR         port    0b2h            ; Chip Select 3 Upper Bound Register (r/w)
CS3_CTL         port    0b3h            ; Chip Select 3 Control Register (r/w)
CS3_BMC         equ     0f3h            ; Chip Select 3 Bus Mode Control Register (r/w)

;----------------------------------------------------------------------------
; On-Chip RAM Control

                ifdef   RAMSTART
RAM_CTL         port    0b4h            ; RAM Control Register (r/w)
RAM_ADDR_U      port    0b5h            ; RAM Address Upper Byte (r/w)
                endif

;----------------------------------------------------------------------------
; SPI

SPI_BRG_L       port    0b8h            ; SPI Baud Rate Generator Register - Low Byte
SPI_BRG_H       port    0b9h            ; SPI Baud Rate Generator Register - High Byte
                __defspi "",0bah

IVEC_SPI        label   1eh             ; SPI Interrupt Vector

;----------------------------------------------------------------------------
; Infrared

IR_CTL          port    0bfh            ; Infrared Encoder/Decoder Control  (r/w)
MIN_PULSE_S     equ     4               ;  Minimum receive pulse width control
MIN_PULSE_M     equ     15 << MIN_PULSE_S
LOOP_BACK       equ     1 << 2          ;  Internal LOOP BACK mode
IR_RxEN         equ     1 << 1          ;  IR_RxD data is passed to UART0 RxD
IR_EN           equ     1 << 0          ;  Endec is disabled

;----------------------------------------------------------------------------
; UART 0

                __defuart "0",0c0h
TCIE            equ     1 << 4          ;  UARTx_IER Transmission complete interrupt enable
FSTS_S          equ     6               ;  UARTx_IIR FIFO Status
FSTS_M          equ     3 << FSTS_S
FSTS_DIS        equ     0 << FSTS_S     ;  FIFO is disabled
FSTS_RXDIS      equ     2 << FSTS_S     ;  Receive FIFO is disabled (MULTIDROP mode)
FSTS_EN         equ     3 << FSTS_S     ;  FIFO is enabled
INTSTS_TC       equ     5 << INTSTS_S   ;  UARTx_IIR Transmission Complete
MDM             equ     1 << 5          ;  UARTx_MCR Multidrop Mode enable

IVEC_UART0      label   18h             ; UART0 Interrupt Vector

;----------------------------------------------------------------------------
; I2C

                __defi2c "",0c8h

IVEC_I2C        label   1ch             ; I2C Interrupt Vector

;----------------------------------------------------------------------------
; UART 1

                __defuart "1",0d0h

IVEC_UART1      label   1ah             ; UART1 Interrupt Vector

;----------------------------------------------------------------------------
; Low-Power Control

CLK_PPD1        port    0dbh            ; Clock Peripheral Power-Down Register 1 (r/w)
GPIO_D_OFF      equ     1 << 7          ;  Power down system clock to GPIO Port D
GPIO_C_OFF      equ     1 << 6          ;  Power down system clock to GPIO Port C
GPIO_B_OFF      equ     1 << 5          ;  Power down system clock to GPIO Port B
SPI_OFF         equ     1 << 3          ;  Power down system clock to SPI
I2C_OFF         equ     1 << 2          ;  Power down system clock to I2C
UART1_OFF       equ     1 << 1          ;  Power down system clock to UART1
UART0_OFF       equ     1 << 0          ;  Power down system clock to UART0 and IrDA endec

CLK_PPD2        port    0dch            ; Clock Peripheral Power-Down Register 2 (r/w)
PHI_OFF         equ     1 << 7          ;  Disable PHI Clock output
PRT5_OFF        equ     1 << 5          ;  Power down system clock to PRT5
PRT4_OFF        equ     1 << 4          ;  Power down system clock to PRT4
PRT3_OFF        equ     1 << 3          ;  Power down system clock to PRT3
PRT2_OFF        equ     1 << 2          ;  Power down system clock to PRT2
PRT1_OFF        equ     1 << 1          ;  Power down system clock to PRT1
PRT0_OFF        equ     1 << 0          ;  Power down system clock to PRT0

;----------------------------------------------------------------------------
; Real-Time Clock

                __defrtc

IVEC_RTC        label   6ch             ; RTC Interrupt Vector

;----------------------------------------------------------------------------
; Flash Controller

                ifdef   FLASHSIZE
                include "flash.inc"
                __defflash

IVEC_FLASH      label   08h
                endif

;----------------------------------------------------------------------------

                restore
                endif                   ; __reg80f92inc