* device/include/pic16/pic18f25j10.h,
[fw/sdcc] / device / include / mcs51 / at89S8252.h
index 75096ffdc4af1dd0a14dc3bf5ffcc6f1b511c5ba..1c0902048253b47815e90cbc8847f0653791faa4 100644 (file)
@@ -13,6 +13,9 @@
     based on reg51.h by Sandeep Dutta sandeep.dutta@usa.net
     KEIL C compatible definitions are included
 
+    Bug-Fix Feb 16 2006
+      by Krzysztof Polomka <del_p@op.pl>
+
    This program 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
 #define AT89S8252_H
 
 /* BYTE addressable registers */
-__sfr __at 0x80 P0          ;
-__sfr __at 0x81 SP          ;
-__sfr __at 0x82 DPL         ;
-__sfr __at 0x82 DP0L        ; /* as called by Atmel */
-__sfr __at 0x83 DPH         ;
-__sfr __at 0x83 DP0H        ; /* as called by Atmel */
-__sfr __at 0x84 DP1L        ; /* at89S8252 specific register */
-__sfr __at 0x85 DP1H        ; /* at89S8252 specific register */
-__sfr __at 0x86 SPDR        ; /* at89S8252 specific register */
-__sfr __at 0x87 PCON        ;
-__sfr __at 0x88 TCON        ;
-__sfr __at 0x89 TMOD        ;
-__sfr __at 0x8A TL0         ;
-__sfr __at 0x8B TL1         ;
-__sfr __at 0x8C TH0         ;
-__sfr __at 0x8D TH1         ;
-__sfr __at 0x90 P1          ;
-__sfr __at 0x96 WMCON       ; /* at89S8252 specific register */
-__sfr __at 0x98 SCON        ;
-__sfr __at 0x99 SBUF        ;
-__sfr __at 0xA0 P2          ;
-__sfr __at 0xA8 IE          ;
-__sfr __at 0xAA SPSR        ; /* at89S8252 specific register */
-__sfr __at 0xB0 P3          ;
-__sfr __at 0xB8 IP          ;
-__sfr __at 0xC8 T2CON       ;
-__sfr __at 0xC9 T2MOD       ;
-__sfr __at 0xCA RCAP2L      ;
-__sfr __at 0xCB RCAP2H      ;
-__sfr __at 0xCC TL2         ;
-__sfr __at 0xCD TH2         ;
-__sfr __at 0xD0 PSW         ;
-__sfr __at 0xD5 SPCR        ; /* at89S8252 specific register */
-__sfr __at 0xE0 ACC         ;
-__sfr __at 0xE0 A           ;
-__sfr __at 0xF0 B           ;
+__sfr __at (0x80) P0          ;
+__sfr __at (0x81) SP          ;
+__sfr __at (0x82) DPL         ;
+__sfr __at (0x82) DP0L        ; /* as called by Atmel */
+__sfr __at (0x83) DPH         ;
+__sfr __at (0x83) DP0H        ; /* as called by Atmel */
+__sfr __at (0x84) DP1L        ; /* at89S8252 specific register */
+__sfr __at (0x85) DP1H        ; /* at89S8252 specific register */
+__sfr __at (0x86) SPDR        ; /* at89S8252 specific register */
+__sfr __at (0x87) PCON        ;
+__sfr __at (0x88) TCON        ;
+__sfr __at (0x89) TMOD        ;
+__sfr __at (0x8A) TL0         ;
+__sfr __at (0x8B) TL1         ;
+__sfr __at (0x8C) TH0         ;
+__sfr __at (0x8D) TH1         ;
+__sfr __at (0x90) P1          ;
+__sfr __at (0x96) WMCON       ; /* at89S8252 specific register */
+__sfr __at (0x98) SCON        ;
+__sfr __at (0x99) SBUF        ;
+__sfr __at (0xA0) P2          ;
+__sfr __at (0xA8) IE          ;
+__sfr __at (0xAA) SPSR        ; /* at89S8252 specific register */
+__sfr __at (0xB0) P3          ;
+__sfr __at (0xB8) IP          ;
+__sfr __at (0xC8) T2CON       ;
+__sfr __at (0xC9) T2MOD       ;
+__sfr __at (0xCA) RCAP2L      ;
+__sfr __at (0xCB) RCAP2H      ;
+__sfr __at (0xCC) TL2         ;
+__sfr __at (0xCD) TH2         ;
+__sfr __at (0xD0) PSW         ;
+__sfr __at (0xD5) SPCR        ; /* at89S8252 specific register */
+__sfr __at (0xE0) ACC         ;
+__sfr __at (0xE0) A           ;
+__sfr __at (0xF0) B           ;
 
 
 /* BIT addressable registers */
 /* P0 */
-__sbit __at 0x80 P0_0       ;
-__sbit __at 0x81 P0_1       ;
-__sbit __at 0x82 P0_2       ;
-__sbit __at 0x83 P0_3       ;
-__sbit __at 0x84 P0_4       ;
-__sbit __at 0x85 P0_5       ;
-__sbit __at 0x86 P0_6       ;
-__sbit __at 0x87 P0_7       ;
+__sbit __at (0x80) P0_0       ;
+__sbit __at (0x81) P0_1       ;
+__sbit __at (0x82) P0_2       ;
+__sbit __at (0x83) P0_3       ;
+__sbit __at (0x84) P0_4       ;
+__sbit __at (0x85) P0_5       ;
+__sbit __at (0x86) P0_6       ;
+__sbit __at (0x87) P0_7       ;
 
 /* TCON */
-__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        ;
+__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        ;
 
 /* P1 */
-__sbit __at 0x90 P1_0       ;
-__sbit __at 0x91 P1_1       ;
-__sbit __at 0x92 P1_2       ;
-__sbit __at 0x93 P1_3       ;
-__sbit __at 0x94 P1_4       ;
-__sbit __at 0x95 P1_5       ;
-__sbit __at 0x96 P1_6       ;
-__sbit __at 0x97 P1_7       ;
-
-__sbit __at 0x90 T2         ;
-__sbit __at 0x91 T2EX       ;
+__sbit __at (0x90) P1_0       ;
+__sbit __at (0x91) P1_1       ;
+__sbit __at (0x92) P1_2       ;
+__sbit __at (0x93) P1_3       ;
+__sbit __at (0x94) P1_4       ;
+__sbit __at (0x95) P1_5       ;
+__sbit __at (0x96) P1_6       ;
+__sbit __at (0x97) P1_7       ;
+
+__sbit __at (0x90) T2         ;
+__sbit __at (0x91) T2EX       ;
 
 /* P1 SPI portpins */
-__sbit __at 0x94 SS;           /* SPI: SS - Slave port select input */
-__sbit __at 0x95 MOSI;         /* SPI: MOSI - Master data output, slave data input */
-__sbit __at 0x96 MISO;         /* SPI: MISO - Master data input, slave data output */
-__sbit __at 0x97 SCK;          /* SPI: SCK - Master clock output, slave clock input */
+__sbit __at (0x94) SS         ; /* SPI: SS - Slave port select input */
+__sbit __at (0x95) MOSI       ; /* SPI: MOSI - Master data output, slave data input */
+__sbit __at (0x96) MISO       ; /* SPI: MISO - Master data input, slave data output */
+__sbit __at (0x97) SCK        ; /* SPI: SCK - Master clock output, slave clock input */
 
 
 /* SCON */
-__sbit __at 0x98 RI         ;
-__sbit __at 0x99 TI         ;
-__sbit __at 0x9A RB8        ;
-__sbit __at 0x9B TB8        ;
-__sbit __at 0x9C REN        ;
-__sbit __at 0x9D SM2        ;
-__sbit __at 0x9E SM1        ;
-__sbit __at 0x9F SM0        ;
+__sbit __at (0x98) RI         ;
+__sbit __at (0x99) TI         ;
+__sbit __at (0x9A) RB8        ;
+__sbit __at (0x9B) TB8        ;
+__sbit __at (0x9C) REN        ;
+__sbit __at (0x9D) SM2        ;
+__sbit __at (0x9E) SM1        ;
+__sbit __at (0x9F) SM0        ;
 
 /* P2 */
-__sbit __at 0xA0 P2_0       ;
-__sbit __at 0xA1 P2_1       ;
-__sbit __at 0xA2 P2_2       ;
-__sbit __at 0xA3 P2_3       ;
-__sbit __at 0xA4 P2_4       ;
-__sbit __at 0xA5 P2_5       ;
-__sbit __at 0xA6 P2_6       ;
-__sbit __at 0xA7 P2_7       ;
+__sbit __at (0xA0) P2_0       ;
+__sbit __at (0xA1) P2_1       ;
+__sbit __at (0xA2) P2_2       ;
+__sbit __at (0xA3) P2_3       ;
+__sbit __at (0xA4) P2_4       ;
+__sbit __at (0xA5) P2_5       ;
+__sbit __at (0xA6) P2_6       ;
+__sbit __at (0xA7) P2_7       ;
 
 /* IE */
-__sbit __at 0xA8 EX0        ;
-__sbit __at 0xA9 ET0        ;
-__sbit __at 0xAA EX1        ;
-__sbit __at 0xAB ET1        ;
-__sbit __at 0xAC ES         ;
-__sbit __at 0xAD ET2        ;
-__sbit __at 0xAF EA         ;
+__sbit __at (0xA8) EX0        ;
+__sbit __at (0xA9) ET0        ;
+__sbit __at (0xAA) EX1        ;
+__sbit __at (0xAB) ET1        ;
+__sbit __at (0xAC) ES         ;
+__sbit __at (0xAD) ET2        ;
+__sbit __at (0xAF) EA         ;
 
 /* P3 */
-__sbit __at 0xB0 P3_0       ;
-__sbit __at 0xB1 P3_1       ;
-__sbit __at 0xB2 P3_2       ;
-__sbit __at 0xB3 P3_3       ;
-__sbit __at 0xB4 P3_4       ;
-__sbit __at 0xB5 P3_5       ;
-__sbit __at 0xB6 P3_6       ;
-__sbit __at 0xB7 P3_7       ;
-
-__sbit __at 0xB0 RXD        ;
-__sbit __at 0xB1 TXD        ;
-__sbit __at 0xB2 INT0       ;
-__sbit __at 0xB3 INT1       ;
-__sbit __at 0xB4 T0         ;
-__sbit __at 0xB5 T1         ;
-__sbit __at 0xB6 WR         ;
-__sbit __at 0xB7 RD         ;
+__sbit __at (0xB0) P3_0       ;
+__sbit __at (0xB1) P3_1       ;
+__sbit __at (0xB2) P3_2       ;
+__sbit __at (0xB3) P3_3       ;
+__sbit __at (0xB4) P3_4       ;
+__sbit __at (0xB5) P3_5       ;
+__sbit __at (0xB6) P3_6       ;
+__sbit __at (0xB7) P3_7       ;
+
+__sbit __at (0xB0) RXD        ;
+__sbit __at (0xB1) TXD        ;
+__sbit __at (0xB2) INT0       ;
+__sbit __at (0xB3) INT1       ;
+__sbit __at (0xB4) T0         ;
+__sbit __at (0xB5) T1         ;
+__sbit __at (0xB6) WR         ;
+__sbit __at (0xB7) RD         ;
 
 /* IP */
-__sbit __at 0xB8 PX0        ;
-__sbit __at 0xB9 PT0        ;
-__sbit __at 0xBA PX1        ;
-__sbit __at 0xBB PT1        ;
-__sbit __at 0xBC PS         ;
-__sbit __at 0xBD PT2        ;
+__sbit __at (0xB8) PX0        ;
+__sbit __at (0xB9) PT0        ;
+__sbit __at (0xBA) PX1        ;
+__sbit __at (0xBB) PT1        ;
+__sbit __at (0xBC) PS         ;
+__sbit __at (0xBD) PT2        ;
 
 /* T2CON */
-__sbit __at 0xC8 T2CON_0    ;
-__sbit __at 0xC9 T2CON_1    ;
-__sbit __at 0xCA T2CON_2    ;
-__sbit __at 0xCB T2CON_3    ;
-__sbit __at 0xCC T2CON_4    ;
-__sbit __at 0xCD T2CON_5    ;
-__sbit __at 0xCE T2CON_6    ;
-__sbit __at 0xCF T2CON_7    ;
-
-__sbit __at 0xC8 CP_RL2     ;
-__sbit __at 0xC9 C_T2       ;
-__sbit __at 0xCA TR2        ;
-__sbit __at 0xCB EXEN2      ;
-__sbit __at 0xCC TCLK       ;
-__sbit __at 0xCD RCLK       ;
-__sbit __at 0xCE EXF2       ;
-__sbit __at 0xCF TF2        ;
+__sbit __at (0xC8) T2CON_0    ;
+__sbit __at (0xC9) T2CON_1    ;
+__sbit __at (0xCA) T2CON_2    ;
+__sbit __at (0xCB) T2CON_3    ;
+__sbit __at (0xCC) T2CON_4    ;
+__sbit __at (0xCD) T2CON_5    ;
+__sbit __at (0xCE) T2CON_6    ;
+__sbit __at (0xCF) T2CON_7    ;
+
+__sbit __at (0xC8) CP_RL2     ;
+__sbit __at (0xC9) C_T2       ;
+__sbit __at (0xCA) TR2        ;
+__sbit __at (0xCB) EXEN2      ;
+__sbit __at (0xCC) TCLK       ;
+__sbit __at (0xCD) RCLK       ;
+__sbit __at (0xCE) EXF2       ;
+__sbit __at (0xCF) TF2        ;
 
 /* PSW */
-__sbit __at 0xD0 P          ;
-__sbit __at 0xD1 FL         ;
-__sbit __at 0xD2 OV         ;
-__sbit __at 0xD3 RS0        ;
-__sbit __at 0xD4 RS1        ;
-__sbit __at 0xD5 F0         ;
-__sbit __at 0xD6 AC         ;
-__sbit __at 0xD7 CY         ;
+__sbit __at (0xD0) P          ;
+__sbit __at (0xD1) FL         ;
+__sbit __at (0xD2) OV         ;
+__sbit __at (0xD3) RS0        ;
+__sbit __at (0xD4) RS1        ;
+__sbit __at (0xD5) F0         ;
+__sbit __at (0xD6) AC         ;
+__sbit __at (0xD7) CY         ;
 
 /* B */
-__sbit __at 0xF0 BREG_F0    ;
-__sbit __at 0xF1 BREG_F1    ;
-__sbit __at 0xF2 BREG_F2    ;
-__sbit __at 0xF3 BREG_F3    ;
-__sbit __at 0xF4 BREG_F4    ;
-__sbit __at 0xF5 BREG_F5    ;
-__sbit __at 0xF6 BREG_F6    ;
-__sbit __at 0xF7 BREG_F7    ;
+__sbit __at (0xF0) BREG_F0    ;
+__sbit __at (0xF1) BREG_F1    ;
+__sbit __at (0xF2) BREG_F2    ;
+__sbit __at (0xF3) BREG_F3    ;
+__sbit __at (0xF4) BREG_F4    ;
+__sbit __at (0xF5) BREG_F5    ;
+__sbit __at (0xF6) BREG_F6    ;
+__sbit __at (0xF7) BREG_F7    ;
 
 
 /* BIT definitions for bits that are not directly accessible */
@@ -300,10 +303,10 @@ __sbit __at 0xF7 BREG_F7    ;
 #define SPSR_SPIF       0x80
 
 /* SPDR-SPI bits */
-#define SPDR_SPD0       0x10
-#define SPDR_SPD1       0x20
-#define SPDR_SPD2       0x40
-#define SPDR_SPD3       0x80
+#define SPDR_SPD0       0x01
+#define SPDR_SPD1       0x02
+#define SPDR_SPD2       0x04
+#define SPDR_SPD3       0x08
 #define SPDR_SPD4       0x10
 #define SPDR_SPD5       0x20
 #define SPDR_SPD6       0x40
@@ -321,21 +324,20 @@ __sbit __at 0xF7 BREG_F7    ;
 #define EX2_VECTOR      5       /* 0x2B external interrupt 2 */
 
 
-/* This is one of the addons comming from Bernd Krueger-Knauber */
+/* This is one of the addons coming from Bernd Krueger-Knauber   */
 
 /* ALE (0x8E) Bit Values */
 __sfr __at 0x8E ALE;           /* at89S8252 specific register */
 
 /* Macro to enable and disable the toggling of the ALE-pin (EMV) */
 
-/* Explanation : Orignal Intel 8051 Cores (Atmel has to use the  */
-/* Intel Core) have a festure that ALE is only active during     */
+/* Explanation : Original Intel 8051 Cores (Atmel has to use the */
+/* Intel Core) have a feature that ALE is only active during     */
 /* MOVX or MOVC instruction. Otherwise the ALE-Pin is weakly     */
 /* pulled high. This can be used to force some external devices  */
-/* into stanby mode and reduced EMI noise                        */
+/* into standby mode and reduced EMI noise                       */
 
 #define ALE_OFF  ALE = ALE | 0x01
 #define ALE_ON   ALE = ALE & 0xFE
 
 #endif
-