* src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
[fw/sdcc] / device / include / pic / pic14devices.txt
index 1db9a6da945a042474da202ab27cad7e8d043774..c76c5a81974301a76bba6f7ee071dbd266404ff6 100644 (file)
@@ -1,5 +1,5 @@
 #
-# PIC14: 16Fxxx / 16Cxxx series device file for SDCC
+# PIC14: 14 bit 16Fxxx / 16Cxxx / 12Fxxx series device file for SDCC
 #
 # by Zik Saleeba <zik@zikzak.net> 2006-03-04
 #
 # confsiz = 1: config at 0x2007, 2: has an extra config register at 0x2008
 # regmap = registers duplicated in multiple banks. First value is a bank bitmask,
 #          following values are register addresses
+# memmap <start> <end> <alias>
+#      <start> - <end> mirrored in all banks set in <alias>
+#      <alias> is a bitmask of bank bits (0x80, 0x100, 0x180)
 #
 #
 
 #
 # 16F series
 #
-processor 16f54
-       program         512
-       data            25
-       eeprom          0
-       io              12
-       maxram          0x1f
-       bankmsk         0x00
-       confsiz         1
-       memmap          0x0007 0x001f 0x000
-       
-processor 16f57
-       program         2K
-       data            72
-       eeprom          0
-       io              20
-       maxram          0x7f
-       bankmsk         0x60
-       confsiz         1
-       regmap          0x60 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
-       memmap          0x0008 0x000f 0x060
-       memmap          0x0010 0x001f 0x000
-       memmap          0x0030 0x003f 0x000
-       memmap          0x0050 0x005f 0x000
-       memmap          0x0070 0x007f 0x000
-       
-processor 16f59
-       program         2K
-       data            134
-       eeprom          0
-       io              32
-       maxram          0x7f
-       bankmsk         0xe0
-       confsiz         1
-       regmap          0xe0 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09
-       memmap          0x000a 0x000f 0x000
-       memmap          0x0010 0x001f 0x0e0
-       memmap          0x0030 0x003f 0x000
-       memmap          0x0050 0x005f 0x000
-       memmap          0x0070 0x007f 0x000
-       memmap          0x0090 0x009f 0x000
-       memmap          0x00b0 0x00bf 0x000
-       memmap          0x00d0 0x00df 0x000
-       memmap          0x00e0 0x00ef 0x000
-
 processor 16f72
        program         2K
        data            128
@@ -164,35 +123,18 @@ processor 16f87, 16f88
        memmap          0x0110 0x016f 0x000
        memmap          0x0190 0x01ef 0x000
        
-processor 16f505
-       program         1K
-       data            72
-       eeprom          0
-       io              12
-       maxram          0x7f
-       bankmsk         0x60
-       confsiz         1
-       regmap          0x60 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
-       memmap          0x0008 0x000f 0x060
-       memmap          0x0010 0x001f 0x000
-       memmap          0x0030 0x003f 0x000
-       memmap          0x0050 0x005f 0x000
-       memmap          0x0070 0x007f 0x000
-       
-processor 16f506
-       program         1K
-       data            67
+processor 16f616, 16hv616
+       program         2K
+       data            128
        eeprom          0
-       io              12
-       maxram          0x7f
-       bankmsk         0x60
+       io              11
+       maxram          0xff
+       bankmsk         0x80
        confsiz         1
-       regmap          0x60 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c
-       memmap          0x000d 0x000f 0x060
-       memmap          0x0010 0x001f 0x000
-       memmap          0x0030 0x003f 0x000
-       memmap          0x0050 0x005f 0x000
-       memmap          0x0070 0x007f 0x000
+       regmap          0x080 0x00 0x02 0x03 0x04 0x0a 0x0b
+       memmap          0x0020 0x006f 0x000
+       memmap          0x0070 0x007f 0x080
+       memmap          0x00a0 0x00bf 0x000
        
 processor 16f627, 16f627a
        program         1K
@@ -250,19 +192,6 @@ processor 16f630, 16f676
        regmap          0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
        memmap          0x0020 0x005f 0x080
 
-processor 16f635
-       program         1K
-       data            64
-       eeprom          128
-       io              6
-       maxram          0x1ff
-       bankmsk         0x180
-       confsiz         1
-       regmap          0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
-       regmap          0x100 0x01 0x81 0x05 0x85
-       memmap          0x0040 0x006f 0x000
-       memmap          0x0070 0x007f 0x180
-
 processor 16f636, 16f639
        program         2K
        data            128
@@ -622,66 +551,6 @@ processor 16f946
 #
 # 16c series
 #
-processor 16c54, 16c54a, 16c54c, 16cr54a, 16cr54c, 16hv540
-       program         512
-       data            25
-       eeprom          0
-       io              12
-       maxram          0x1f
-       bankmsk         0x00
-       confsiz         1
-       memmap          0x0007 0x001f 0x000
-       
-processor 16c55, 16c55a
-       program         512
-       data            24
-       eeprom          0
-       io              20
-       maxram          0x1f
-       bankmsk         0x00
-       confsiz         1
-       memmap          0x0008 0x001f 0x000
-       
-processor 16c56, 16c56a, 16cr56a
-       program         1K
-       data            25
-       eeprom          0
-       io              12
-       maxram          0x1f
-       bankmsk         0x00
-       confsiz         1
-       memmap          0x0007 0x001f 0x000
-       
-processor 16c57, 16c57c, 16cr57c
-       program         2K
-       data            72
-       eeprom          0
-       io              20
-       maxram          0x7f
-       bankmsk         0x60
-       confsiz         1
-       regmap          0x60 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
-       memmap          0x0008 0x000f 0x060
-       memmap          0x0010 0x001f 0x000
-       memmap          0x0030 0x003f 0x000
-       memmap          0x0050 0x005f 0x000
-       memmap          0x0070 0x007f 0x000
-       
-processor 16c58b, 16cr58b
-       program         2K
-       data            73
-       eeprom          0
-       io              12
-       maxram          0x7f
-       bankmsk         0x60
-       confsiz         1
-       regmap          0x60 0x00 0x01 0x02 0x03 0x04 0x05 0x06
-       memmap          0x0007 0x000f 0x060
-       memmap          0x0010 0x001f 0x000
-       memmap          0x0030 0x003f 0x000
-       memmap          0x0050 0x005f 0x000
-       memmap          0x0070 0x007f 0x000
-
 processor 16c62, 16c72
        program         2K
        data            128
@@ -718,6 +587,64 @@ processor 16c65b, 16c74b
        memmap          0x0020 0x007f 0x000
        memmap          0x00a0 0x00ff 0x000
 
+processor 16cr73
+       program         4K
+       data            192
+       eeprom          0
+       io              22
+       maxram          0x1ff
+       bankmsk         0x180
+       confsiz         1
+       regmap          0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+       regmap          0x100 0x01 0x81
+       memmap          0x0020 0x007f 0x000
+       memmap          0x00a0 0x00ff 0x000
+
+processor 16cr74
+       program         4K
+       data            192
+       eeprom          0
+       io              33
+       maxram          0x1ff
+       bankmsk         0x180
+       confsiz         1
+       regmap          0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+       regmap          0x100 0x01 0x81
+       memmap          0x0020 0x007f 0x000
+       memmap          0x00a0 0x00ff 0x000
+
+processor 16cr76
+       program         8K
+       data            368
+       eeprom          0
+       io              22
+       maxram          0x1ff
+       bankmsk         0x180
+       confsiz         1
+       regmap          0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+       regmap          0x180 0x01 0x81
+       memmap          0x0020 0x006f 0x000
+       memmap          0x00a0 0x00ef 0x000
+       memmap          0x0110 0x016f 0x000
+       memmap          0x0190 0x01ef 0x000
+       memmap          0x0070 0x007f 0x180
+
+processor 16cr77
+       program         8K
+       data            368
+       eeprom          0
+       io              33
+       maxram          0x1ff
+       bankmsk         0x180
+       confsiz         1
+       regmap          0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+       regmap          0x180 0x01 0x81
+       memmap          0x0020 0x006f 0x000
+       memmap          0x00a0 0x00ef 0x000
+       memmap          0x0110 0x016f 0x000
+       memmap          0x0190 0x01ef 0x000
+       memmap          0x0070 0x007f 0x180
+
 processor 16c432
        program         2K
        data            128
@@ -1033,3 +960,44 @@ processor 16c926
        memmap          0x00a0 0x00bf 0x000
        memmap          0x0120 0x016f 0x000
        memmap          0x01a0 0x01bf 0x000
+
+#
+# 12F series devices with 14 bit core
+#
+processor 12f629, 12f675
+       program         1K
+       data            64
+       eeprom          128
+       io              6
+       maxram          0xff
+       bankmsk         0x80
+       confsiz         1
+       regmap          0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+       memmap          0x0020 0x005f 0x000
+       memmap          0x00a0 0x00df 0x000
+
+processor 12f635
+       program         1K
+       data            64
+       eeprom          128
+       io              6
+       maxram          0x1ff
+       bankmsk         0x180
+       confsiz         1
+       regmap          0x180 0x00 0x02 0x03 0x04 0x0a 0x0b 
+       regmap          0x100 0x01 0x81 0x05 0x85 
+       memmap          0x0040 0x006f 0x000
+       memmap          0x0070 0x007f 0x180
+
+processor 12f683
+       program         2K
+       data            128
+       eeprom          256
+       io              6
+       maxram          0xff
+       bankmsk         0x80
+       confsiz         1
+       regmap          0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+       memmap          0x0020 0x006f 0x000
+       memmap          0x0070 0x007f 0x080
+       memmap          0x00a0 0x00bf 0x000