+2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
+
+ * src/pic/device.h,
+ * src/pic/device.c,
+ * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
+ maxram is less than 0x100.
+
2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
* Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
static int num_of_supported_PICS = sizeof(Pics)/sizeof(PIC_device);
-#define DEFAULT_PIC "f877"
-
static PIC_device *pic=NULL;
AssignedMemory *finalMapping=NULL;
{
setMaxRAM(pic->defMaxRAMaddrs); // Max RAM has not been included, so use default setting
}
+
+/*-----------------------------------------------------------------*
+*
+*-----------------------------------------------------------------*/
+unsigned getMaxRam(void)
+{
+ return pic->defMaxRAMaddrs;
+}
void addMemRange(memRange *r, int type);
void setMaxRAM(int size);
void setDefMaxRam(void);
+unsigned getMaxRam(void);
#endif /* __DEVICE_H__ */
insertBankSel(pci, reg->name); // Let linker choose the bank selection
} else if ((cur_bank == -1)||(cur_bank == 'L')||(cur_bank == 'E')) { // Current bank unknown and new register bank is known then can set bank bits
insertBankSwitch(pci, bank&1, PIC_RP0_BIT);
- insertBankSwitch(pci, bank&2, PIC_RP1_BIT);
+ if (getMaxRam()&0x100)
+ insertBankSwitch(pci, bank&2, PIC_RP1_BIT);
} else { // Current bank and new register banks known - can set bank bits
switch((cur_bank^bank) & 3) {
case 0:
break;
case 3:
insertBankSwitch(pci, bank&1, PIC_RP0_BIT);
- insertBankSwitch(pci, bank&2, PIC_RP1_BIT);
+ if (getMaxRam()&0x100)
+ insertBankSwitch(pci, bank&2, PIC_RP1_BIT);
break;
}
}