* device/include/pic16/pic16devices.txt,
[fw/sdcc] / device / include / pic16 / pic16devices.txt
index fdb4dd6dc01ae1732e11809d5ff48cbf5978b3a8..45aec7d46521c2eb45bf43e150158f0e79e553f6 100644 (file)
 # configrange <first> <last>
 #       Configuration registers occupy addresses <first> to <last> (both
 #       included).
-# configword <address> <mask> <value>
+# configword <address> <mask> <value> [<and-mask>]
 #       The config word at address <address> only implements the bits
 #       indicated via <mask> (all others will be forced to 0 by the
 #       compiler).
 #       Unless overridden in C code, use the given default <value>.
+#       The optional <and-mask> will be applied to the value just before
+#       emitting it into the .asm file (used to disable XINST by default).
 # idlocrange <first> <last>
 #       ID locations occupy addresses <first> to <last> (both included).
 # idword <address> <value>
@@ -83,7 +85,7 @@ configword  0x300001 0xcf 0x37
 configword  0x300002 0x1f 0xff
 configword  0x300003 0x1f 0xff
 configword  0x300005 0x87 0xfb
-configword  0x300006 0xf5 0x8f
+configword  0x300006 0xf5 0x8f 0xbf
 configword  0x300008 0x03 0xff
 configword  0x300009 0xc0 0xff
 configword  0x30000a 0x03 0xff
@@ -120,6 +122,24 @@ configword  0x30000d 0x40 0xff
 idlocrange  0x200000 0x200007
 
 
+name        18f2410
+ramsize     768
+split       0x80
+configrange 0x300001 0x30000d
+configword  0x300001 0xcf 0x37
+configword  0x300002 0x1f 0xff
+configword  0x300003 0x1f 0xfb
+configword  0x300005 0x87 0xfb
+configword  0x300006 0xc5 0xbf 0xbf
+configword  0x300008 0x0f 0xff
+configword  0x300009 0x40 0xff
+configword  0x30000a 0x0f 0xff
+configword  0x30000b 0x60 0xff
+configword  0x30000c 0x0f 0xff
+configword  0x30000d 0x40 0xff
+idlocrange  0x200000 0x200007
+
+
 name        18f242
 ramsize     768
 split       0x80
@@ -146,7 +166,7 @@ configword  0x300001 0xcf 0x07
 configword  0x300002 0x1f 0xff
 configword  0x300003 0x1f 0xff
 configword  0x300005 0x87 0xfb
-configword  0x300006 0xc5 0xbf
+configword  0x300006 0xc5 0xbf 0xbf
 configword  0x300008 0x0f 0xff
 configword  0x300009 0xc0 0xff
 configword  0x30000a 0x0f 0xff
@@ -164,7 +184,7 @@ configword  0x300001 0xcf 0x07
 configword  0x300002 0x1f 0xff
 configword  0x300003 0x1f 0xff
 configword  0x300005 0x87 0xfb
-configword  0x300006 0xc5 0xbf
+configword  0x300006 0xc5 0xbf 0xbf
 configword  0x300008 0x0f 0xff
 configword  0x300009 0xc0 0xff
 configword  0x30000a 0x0f 0xff
@@ -178,6 +198,25 @@ name        18f2431
 using       18f2331
 
 
+name        18f2450
+# 0x200..0x3FF is not implemented, but we leave that to the linker ;-)
+ramsize     0x500
+split       0x60
+configrange 0x300000 0x30000d
+configword  0x300000 0x3f 0xc7
+configword  0x300001 0xcf 0x37
+configword  0x300002 0x3f 0xdf
+configword  0x300003 0x1f 0xff
+configword  0x300005 0x86 0xfb
+configword  0x300006 0xed 0x97 0xbf
+configword  0x300008 0x03 0xff
+configword  0x300009 0x40 0xff
+configword  0x30000a 0x03 0xff
+configword  0x30000b 0x60 0xff
+configword  0x30000c 0x03 0xff
+configword  0x30000d 0x40 0xff
+idlocrange  0x200000 0x200007
+
 name        18f2455
 ramsize     2048
 split       0x60
@@ -187,7 +226,7 @@ configword  0x300001 0xcf 0x35
 configword  0x300002 0x3f 0xdf
 configword  0x300003 0x1f 0xff
 configword  0x300005 0x87 0xfb
-configword  0x300006 0xe5 0x9f
+configword  0x300006 0xe5 0x9f 0xbf
 configword  0x300008 0x0f 0xff
 configword  0x300009 0xc0 0xff
 configword  0x30000a 0x0f 0xff
@@ -222,7 +261,7 @@ configword  0x300001 0xcf 0x37
 configword  0x300002 0x1f 0xff
 configword  0x300003 0x1f 0xff
 configword  0x300005 0x86 0xfb
-configword  0x300006 0xd5 0xaf
+configword  0x300006 0xd5 0xaf 0xbf
 configword  0x300008 0x0f 0xff
 configword  0x300009 0xc0 0xff
 configword  0x30000a 0x0f 0xff
@@ -244,6 +283,16 @@ configword  0x300005 0x01 0xff
 idlocrange  0x200000 0x200007
 
 
+name        18f2510
+using       18f2410
+ramsize     1536
+
+
+name        18f2515
+using       18f2410
+ramsize     4096
+
+
 name        18f252
 using       18f242
 ramsize     1536
@@ -267,7 +316,7 @@ configword  0x300001 0xcf 0x37
 configword  0x300002 0x1f 0xff
 configword  0x300003 0x1f 0xff
 configword  0x300005 0x87 0xfb
-configword  0x300006 0xc5 0xbf
+configword  0x300006 0xc5 0xbf 0xbf
 configword  0x300008 0x0f 0xff
 configword  0x300009 0xc0 0xff
 configword  0x30000a 0x0f 0xff
@@ -299,7 +348,7 @@ configword  0x300001 0xcf 0x37
 configword  0x300002 0x1f 0xff
 configword  0x300003 0x1f 0xff
 configword  0x300005 0x86 0xfb
-configword  0x300006 0xf5 0x8f
+configword  0x300006 0xf5 0x8f 0xbf
 configword  0x300008 0x0f 0xff
 configword  0x300009 0xc0 0xff
 configword  0x30000a 0x0f 0xff
@@ -313,6 +362,11 @@ name        18f25j10
 using       18f24j10
 
 
+name        18f2610
+using       18f2410
+ramsize     4096
+
+
 name        18f2620
 using       18f2525
 
@@ -329,7 +383,7 @@ configword  0x300001 0xcf 0x37
 configword  0x300002 0x1f 0xff
 configword  0x300003 0x1f 0xff
 configword  0x300005 0x86 0xfb
-configword  0x300006 0xf5 0x8f
+configword  0x300006 0xf5 0x8f 0xbf
 configword  0x300008 0x3f 0xff
 configword  0x300009 0xc0 0xff
 configword  0x30000a 0x3f 0xff
@@ -363,6 +417,11 @@ name        18f4331
 using       18f2331
 
 
+name        18f4410
+using       18f2410
+ramsize     768
+
+
 name        18f442
 using       18f242
 
@@ -379,6 +438,9 @@ name        18f4431
 using       18f2331
 
 
+name        18f4450
+using       18f2450
+
 name        18f4455
 using       18f2455
 
@@ -395,6 +457,16 @@ name        18f44j10
 using       18f24j10
 
 
+name        18f4510
+using       18f2410
+ramsize     1536
+
+
+name        18f4515
+using       18f2410
+ramsize     4096
+
+
 name        18f452
 using       18f242
 ramsize     1536
@@ -435,6 +507,11 @@ name        18f45j10
 using       18f24j10
 
 
+name        18f4610
+using       18f2410
+ramsize     4096
+
+
 name        18f4620
 using       18f2525