diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /device/include/ds80c390.h | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'device/include/ds80c390.h')
| -rw-r--r-- | device/include/ds80c390.h | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/device/include/ds80c390.h b/device/include/ds80c390.h new file mode 100644 index 0000000..6cac88d --- /dev/null +++ b/device/include/ds80c390.h @@ -0,0 +1,194 @@ +/*------------------------------------------------------------------------- + ds80c390.h - Register Declarations for the DALLAS DS80C390 Processor + far from complete, e.g. no CAN + + Copyright (C) 2000, Johan Knol <johan.knol AT iduna.nl> + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this library; see the file COPYING. If not, write to the + Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301, USA. + + As a special exception, if you link this library with other files, + some of which are compiled with SDCC, to produce an executable, + this library does not by itself cause the resulting executable to + be covered by the GNU General Public License. This exception does + not however invalidate any other reasons why the executable file + might be covered by the GNU General Public License. +-------------------------------------------------------------------------*/ + +#ifndef DS80C390_H +#define DS80C390_H + +__sfr __at 0x80 P4; /* ce3..ce0, a19..a16 */ +__sfr __at 0x81 SP; /* stack pointer */ +__sfr __at 0x82 DPL; /* data pointer 0 lsb */ +__sfr __at 0x83 DPH; /* data pointer 0 msb */ +__sfr __at 0x84 DPL1; /* data pointer 1 lsb */ +__sfr __at 0x85 DPH1; /* data pointer 1 msb */ +__sfr __at 0x86 DPS; /* data pointer select */ +__sfr __at 0x87 PCON; /* power control */ +__sfr __at 0x88 TCON; /* timer/counter control */ + __sbit __at 0x88 IT0; + __sbit __at 0x89 IE0; + __sbit __at 0x8a IT1; + __sbit __at 0x8b IE1; + __sbit __at 0x8c TR0; + __sbit __at 0x8d TF0; + __sbit __at 0x8e TR1; + __sbit __at 0x8f TF1; +__sfr __at 0x89 TMOD; /* timer mode control */ +__sfr __at 0x8a TL0; /* timer 0 lsb */ +__sfr __at 0x8b TL1; /* timer 1 msb */ +__sfr __at 0x8c TH0; /* timer 0 msb */ +__sfr __at 0x8d TH1; /* timer 1 msb */ +__sfr __at 0x8e CKCON; /* clock control */ +__sfr __at 0x90 P1; + __sbit __at 0x90 T2; + __sbit __at 0x91 T2EX; + __sbit __at 0x92 RXD1; + __sbit __at 0x93 TXD1; + __sbit __at 0x94 INT2; + __sbit __at 0x95 INT3; + __sbit __at 0x96 INT4; + __sbit __at 0x97 INT5; +__sfr __at 0x91 EXIF; /* external interrupt flag */ +__sfr __at 0x92 P4CNT; +__sfr __at 0x93 DPX; /* extended datapointer 0 */ +__sfr __at 0x95 DPX1; /* extended datapointer 1 */ +__sfr __at 0x98 SCON0; /* serial 0 control */ + __sbit __at 0x98 RI_0; + __sbit __at 0x99 TI_0; + __sbit __at 0x9a RB8_0; + __sbit __at 0x9b TB8_0; + __sbit __at 0x9c REN_0; + __sbit __at 0x9d SM2_0; + __sbit __at 0x9e SM1_0; + __sbit __at 0x9f SM0_0; + __sbit __at 0x9f FE_0; /* depending on SMOD0 */ +__sfr __at 0x99 SBUF0; /* serial 0 data buffer */ +__sfr __at 0x9b ESP; /* extended stack pointer */ +__sfr __at 0x9c AP; /* address page */ +__sfr __at 0x9d ACON; /* address control */ +__sfr __at 0xa0 P2; /* never mind the sbits */ +__sfr __at 0xa1 P5; +__sfr __at 0xa2 P5CNT; +__sfr __at 0xa8 IE; /* interrupt enable */ + __sbit __at 0xa8 EX0; + __sbit __at 0xa9 ET0; + __sbit __at 0xaa EX1; + __sbit __at 0xab ET1; + __sbit __at 0xac ES0; + __sbit __at 0xad ET2; + __sbit __at 0xae ES1; + __sbit __at 0xaf EA; +__sfr __at 0xb0 P3; + __sbit __at 0xb0 RXD0; + __sbit __at 0xb1 TXD0; + __sbit __at 0xb2 INT0; + __sbit __at 0xb3 INT1; + __sbit __at 0xb4 T0; + __sbit __at 0xb5 T1; + __sbit __at 0xb6 WR; + __sbit __at 0xb7 RD; +__sfr __at 0xb8 IP; /* interupt priority */ + __sbit __at 0xb8 PX0; /* external 0 */ + __sbit __at 0xb9 PT0; /* timer 0 */ + __sbit __at 0xba PX1; /* external 1 */ + __sbit __at 0xbb PT1; /* timer 1 */ + __sbit __at 0xbc PS0; /* serial port 0 */ + __sbit __at 0xbd PT2; /* timer 2 */ + __sbit __at 0xbe PS1; /* serial port 1 */ +__sfr __at 0xc0 SCON1; /* serial 1 control */ + __sbit __at 0xc0 RI_1; + __sbit __at 0xc1 TI_1; + __sbit __at 0xc2 RB8_1; + __sbit __at 0xc3 TB8_1; + __sbit __at 0xc4 REN_1; + __sbit __at 0xc5 SM2_1; + __sbit __at 0xc6 SM1_1; + __sbit __at 0xc7 SM0_1; + __sbit __at 0xc7 FE_1; /* depending on SMOD0 */ +__sfr __at 0xc1 SBUF1; /* serial 1 data buffer */ +__sfr __at 0xc4 PMR; /* power managment */ +__sfr __at 0xc6 MCON; /* memory control register */ +__sfr __at 0xc7 TA; /* timed access register */ +__sfr __at 0xc8 T2CON; /* timer 2 control */ + __sbit __at 0xc8 CP_RL; /* capture/reload */ + __sbit __at 0xc9 C_T; /* count/timer */ + __sbit __at 0xca TR2; /* stop/run */ + __sbit __at 0xcb EXEN2; + __sbit __at 0xcc TCLK; + __sbit __at 0xcd RCLK; + __sbit __at 0xce EXF2; + __sbit __at 0xcf TF2; /* overflow flag */ +__sfr __at 0xc9 T2MOD; /* timer 2 mode */ +__sfr __at 0xca RCAP2L; /* timer 2 capture/reload */ +__sfr __at 0xca RTL2; /* depends on CP_RL */ +__sfr __at 0xcb RCAP2H; +__sfr __at 0xcb RTH2; +__sfr __at 0xcc TL2; /* timer 2 lsb */ +__sfr __at 0xcd TH2; /* timer 2 msb */ +__sfr __at 0xd0 PSW; /* program status word (byte actually) */ + __sbit __at 0xd0 P; /* parity */ + __sbit __at 0xd1 F1; /* user flag 1 */ + __sbit __at 0xd2 OV; /* overflow flag */ + __sbit __at 0xd3 RS0; /* register select l */ + __sbit __at 0xd4 RS1; /* register select h */ + __sbit __at 0xd5 F0; /* user flag 0 */ + __sbit __at 0xd6 AC; /* auxiliary carry flag */ + __sbit __at 0xd7 CY; /* carry flag */ +__sfr __at 0xd1 MCNT0; /* arithmetic accellerator */ +__sfr __at 0xd2 MCNT1; +__sfr __at 0xd3 MA; +__sfr __at 0xd4 MB; +__sfr __at 0xd5 MC; +__sfr __at 0xd8 WDCON; /* watch dog */ + __sbit __at 0xd8 RWT; + __sbit __at 0xd9 EWT; + __sbit __at 0xda WDRF; + __sbit __at 0xdb WDIF; + __sbit __at 0xdc PFI; + __sbit __at 0xdd EPFI; + __sbit __at 0xde POR; + __sbit __at 0xdf SMOD_1; +__sfr __at 0xe0 ACC; /* accumulator */ +__sfr __at 0xe8 EIE; /* extended interrupt enable */ + __sbit __at 0xe8 EX2; + __sbit __at 0xe9 EX3; + __sbit __at 0xea EX4; + __sbit __at 0xeb EX5; + __sbit __at 0xec EWDI; + __sbit __at 0xed C1IE; + __sbit __at 0xee C0IE; + __sbit __at 0xef CANBIE; +__sfr __at 0xea MXAX; /* extended address register */ +__sfr __at 0xf0 B; /* aux accumulator */ +__sfr __at 0xf8 EIP; /* extended interrupt priority */ + __sbit __at 0xf8 PX2; + __sbit __at 0xf9 PX3; + __sbit __at 0xfa PX4; + __sbit __at 0xfb PX5; + __sbit __at 0xfc PWDI; + __sbit __at 0xfd C1IP; + __sbit __at 0xfe C0IP; + __sbit __at 0xff CANBIP; + +/* WORD/DWORD Registers */ + +__sfr16 __at (0x8C8A) TMR0; /* TIMER 0 COUNTER */ +__sfr16 __at (0x8D8B) TMR1; /* TIMER 1 COUNTER */ +__sfr16 __at (0xCDCC) TMR2; /* TIMER 2 COUNTER */ +__sfr16 __at (0xCBCA) RCAP2; /* TIMER 2 CAPTURE REGISTER WORD */ + +#endif /* DS80C390_H */ |
