home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
HITECH-C
/
Z8051H83.EXE
/
H83.H
< prev
next >
Wrap
Text File
|
1993-05-21
|
9KB
|
232 lines
/*
* Register definitions for H8/330
*
* Copyright (C) 1992 HI-TECH Software
*/
#define PORT static unsigned
/* Free Running Timer section */
PORT char FRT_TIER @0xFF90; /* Timer Interrupt Enable Register */
#define ICIAE 0x80 /* Input Capture Interrupt A Enable */
#define ICIBE 0x40 /* Input Capture Interrupt B Enable */
#define ICICE 0x20 /* Input Capture Interrupt C Enable */
#define ICIDE 0x10 /* Input Capture Interrupt D Enable */
#define OCIAE 0x08 /* Output Compare Interrupt A Enable */
#define OCIBE 0x04 /* Output Compare Interrupt B Enable */
#define FOVIE 0x02 /* Overflow Interrupt Enable */
PORT char FRT_TCSR @0xFF91; /* Timer Control/Status Register */
#define ICFA 0x80 /* Input Capture Flag A */
#define ICFB 0x40 /* Input Capture Flag B */
#define ICFC 0x20 /* Input Capture Flag C */
#define ICFD 0x10 /* Input Capture Flag D */
#define OCFA 0x08 /* Output Compare Flag A */
#define OCFB 0x04 /* Output Compare Flag B */
#define OVF 0x02 /* Overflow flag */
#define CCLRA 0x01 /* Counter Clear A */
PORT short FRT_FRC @0xFF92; /* Free Running Counter */
PORT short FRT_OCRA @ 0xFF94; /* Output Compare Register A */
PORT short FRT_OCRB @ 0xFF94; /* Output Compare Register B */
PORT char FRT_TCR @ 0xFF96; /* Timer Control Register */
#define IEDGA 0x80 /* Input Edge Select A */
#define IEDGB 0x40 /* Input Edge Select B */
#define IEDGC 0x20 /* Input Edge Select C */
#define IEDGD 0x10 /* Input Edge Select D */
#define BUFEA 0x08 /* Buffer Enable A */
#define BUFEB 0x04 /* Buffer Enable B */
#define CKS1 0x02 /* Clock Select 1 */
#define CKS0 0x01 /* Clock Select 0 */
PORT char FRT_TOCR @ 0xFF97; /* Timer Output Control Register */
#define OCRS 0x10 /* Output Compare Register Select */
#define OEA 0x08 /* Output Enable A */
#define OEB 0x04 /* Output Enable B */
#define OLVLA 0x02 /* Output Level A */
#define OLVLB 0x01 /* Output Level B */
PORT short FRT_ICRA @ 0xFF98; /* Input Capture Register A */
PORT short FRT_ICRB @ 0xFF9A; /* Input Capture Register B */
PORT short FRT_ICRC @ 0xFF9C; /* Input Capture Register C */
PORT short FRT_ICRD @ 0xFF9E; /* Input Capture Register D */
/* Pulse Width Modulation 0 */
PORT char PWM0_TCR @ 0xFFA0; /* Timer Control Register */
#define OE 0x80 /* Output Enable */
#define OS 0x40 /* Output Select */
#define CKS2 0x04 /* Clock Select 2 */
#define CKS1 0x02 /* Clock Select 1 */
#define CKS0 0x01 /* Clock Select 0 */
PORT char PWM0_DTR @ 0xFFA1; /* DuTy Register */
PORT char PWM0_TCNT @ 0xFFA2; /* Timer Counter */
/* Pulse Width Modulation 1 */
PORT char PWM1_TCR @ 0xFFA4; /* Timer Control Register */
PORT char PWM1_DTR @ 0xFFA5; /* DuTy Register */
PORT char PWM1_TCNT @ 0xFFA6; /* Timer Counter */
/* Ports */
PORT char P1DDR @0xFFB0; /* Port 1 Data Direction */
PORT char P1DR @0xFFB2; /* Port 1 Data Register */
PORT char P2DDR @0xFFB1; /* Port 2 Data Direction */
PORT char P2DR @0xFFB3; /* Port 2 Data Register */
PORT char P3DDR @0xFFB4; /* Port 3 Data Direction */
PORT char P3DR @0xFFB6; /* Port 3 Data Register */
PORT char P4DDR @0xFFB5; /* Port 4 Data Direction */
PORT char P4DR @0xFFB7; /* Port 4 Data Register */
PORT char P5DDR @0xFFB8; /* Port 5 Data Direction */
PORT char P5DR @0xFFBA; /* Port 5 Data Register */
PORT char P6DDR @0xFFB9; /* Port 6 Data Direction */
PORT char P6DR @0xFFBB; /* Port 6 Data Register */
PORT char P7DR @0xFFBE; /* Port 7 Data Register */
PORT char P8DDR @0xFFBD; /* Port 8 Data Direction */
PORT char P8DR @0xFFBF; /* Port 8 Data Register */
PORT char P9DDR @0xFFC0; /* Port 9 Data Direction */
PORT char P9DR @0xFFC1; /* Port 9 Data Register */
PORT char SYSCR @0xFFC4; /* System control register */
#define SSBY 0x80 /* Software Standby */
#define STS2 0x40 /* Standby Timer Select 2 */
#define STS1 0x20 /* Standby Timer Select 1 */
#define STS0 0x10 /* Standby Timer Select 0 */
#define NMIEG 0x04 /* NMI Edge select */
#define DPME 0x02 /* Dual Port Ram Enable */
#define RAME 0x01 /* on-chip Ram Enable */
PORT char MDCR @0xFFC5; /* Mode Control Register */
PORT char ISCR @0xFFC6; /* IRQ Sense Control Register */
PORT char IER @0xFFC7; /* IRQ Enable Register */
/* Timer 0 */
PORT char TMR0_TCR @ 0xFFC8; /* Timer control register */
#define CMIEB 0x80 /* Compare Match Interrupt Enable B */
#define CMIEA 0x40 /* Compare Match Interrupt Enable A */
#define OVIE 0x20 /* Overlow interrupt Enable */
#define CCLR1 0x10 /* Counter Clear 1 */
#define CCLR0 0x08 /* Counter Clear 0 */
#define CKS2 0x04 /* Clock Select 2 */
#define CKS1 0x02 /* Clock Select 1 */
#define CKS0 0x01 /* Clock Select 0 */
PORT char TMR0_TCSR @ 0xFFC9; /* Timer Control/Status Register */
#define CMFB 0x80 /* Compare Match Flag B */
#define CMFA 0x40 /* Compare Match Flag A */
#define TOVF 0x20 /* Timer Overflow Flag */
#define OS3 0x08 /* Output Select 3 */
#define OS2 0x04 /* Output Select 2 */
#define OS1 0x02 /* Output Select 1 */
#define OS0 0x01 /* Output Select 0 */
PORT char TMR0_TCORA @ 0xFFCA; /* Time Constant Register A */
PORT char TMR0_TCORB @ 0xFFCB; /* Time Constant Register B */
PORT char TMR0_TCNT @ 0xFFCC; /* Timer Counter */
/* Timer 1 */
PORT char TMR1_TCR @ 0xFFD0; /* Timer control register */
PORT char TMR1_TCSR @ 0xFFD1; /* Timer Control/Status Register */
PORT char TMR1_TCORA @ 0xFFD2; /* Time Constant Register A */
PORT char TMR1_TCORB @ 0xFFD3; /* Time Constant Register B */
PORT char TMR1_TCNT @ 0xFFD4; /* Timer Counter */
/* Serial Communications Interface */
PORT char SMR @ 0xFFD8; /* Serial Mode Register */
#define SYNCH 0x80 /* Synchronous mode */
#define CHR 0x40 /* 7 bit data select */
#define PE 0x20 /* Parity Enable */
#define EP 0x10 /* Even Parity */
#define STOP2 0x08 /* select 2 STOP bits */
#define CKS1 0x02 /* Clock Select 1 */
#define CKS0 0x01 /* Clock Select 0 */
PORT char BRR @ 0xFFD9; /* Baud Rate Register */
PORT char SCR @ 0xFFDA; /* Serial Control Register */
#define TIE 0x80 /* Transmit Interrupt Enable */
#define RIE 0x40 /* Receive Interrupt Enable */
#define TE 0x20 /* Transmit Enable */
#define RE 0x10 /* Receive Enable */
#define CKE1 0x02 /* Clock Enable 1 */
#define CKE0 0x01 /* Clock Enable 0 */
PORT char TDR @ 0xFFDB; /* Transmit Data Register */
PORT char SSR @ 0xFFDC; /* Serial Status Register */
#define TDRE 0x80 /* Transmit Data Register Empty */
#define RDRF 0x40 /* Receive Data Register Full */
#define ORER 0x20 /* Overrun Error */
#define FER 0x10 /* Framing Error */
#define PER 0x08 /* Parity Error */
PORT char RDR @ 0xFFDD; /* Receive Data Register */
/* Analog to Digital Converter */
static struct
{
unsigned char data; /* A/D Converter data */
unsigned char _rubbish; /* fill byte */
} ADDR[4] @ 0xFFE0;
PORT char ADCSR @ 0xFFE8; /* A/D Control Status Register */
#define ADF 0x80 /* AD End Flag */
#define ADIE 0x40 /* AD interrupt Enable */
#define ADST 0x20 /* AD Start */
#define SCAN 0x10 /* Scan mode */
#define CKS 0x08 /* Clock Select */
PORT char ADCR @ 0xFFEA; /* A/D Control Register */
#define TGRE 0x80 /* Trigger Enable */
/* DPRAM */
PORT char PCCSR @ 0xFFF0; /* Parallel Communication Contro/Status Register */
PORT char PCDR0A @ 0xFFF1; /* Par. Com. Data Register A */
PORT char PCDR0B @ 0xFFF1; /* Par. Com. Data Register B */
PORT char PCDR[14] @ 0xFFF2; /* Par. Com. data 0-13 */
/*
* Interrupt vectors
*/
#define NMI 0x06 /* Non-Maskable-Interrupt */
#define IRQ(x) ((x)*2+8) /* External interrupts */
#define ICIA 0x18 /* Input Capture Interrupt A */
#define ICIB 0x1A /* Input Capture Interrupt B */
#define ICIC 0x1C /* Input Capture Interrupt C */
#define ICID 0x1E /* Input Capture Interrupt D */
#define OCIA 0x20 /* Output Compare Interrupt A */
#define OCIB 0x22 /* Output Compare Interrupt B */
#define FOVI 0x24 /* Overflow Interrupt */
#define CMI0A 0x26 /* Compare-Match 0 A */
#define CMI0B 0x28 /* Compare-Match 0 B */
#define OVI0 0x2A /* Overflow 0 */
#define CMI1A 0x2C /* Compare-Match 1 A */
#define CMI1B 0x2E /* Compare-Match 1 B */
#define OVI1 0x30 /* Overflow 1 */
#define MREI 0x32 /* Master Read End Interrupt */
#define MWEI 0x34 /* Master Write End */
#define ERI 0x36 /* Error Interrupt */
#define RXI 0x38 /* Receiver Interrupt */
#define TXI 0x3A /* Transmitter Interrupt */
#define ADI 0x3C /* A/D Interrupt */