X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fpic%2Fdevice.c;h=bf465f3817ba7024c3d1e621066988f4d4526693;hb=2c02e0d7cccdf186aea6a2cda046afe06aa094a3;hp=4e92fed441fcfbcbd18e69367a11657880b1752e;hpb=470f9c23303450d0872d9aa58e459c6abf0580d6;p=fw%2Fsdcc diff --git a/src/pic/device.c b/src/pic/device.c index 4e92fed4..bf465f38 100644 --- a/src/pic/device.c +++ b/src/pic/device.c @@ -120,6 +120,7 @@ static PIC_device Pics[] = { p16f627_mem, /* ram mem map */ p16f627_sfr, /* sfr mem map */ 0, /* max ram address (calculated) */ + 0x80, /* Bank Mask */ }, { @@ -127,6 +128,7 @@ static PIC_device Pics[] = { p16f627_mem, p16f627_sfr, 0, + 0x80, }, { @@ -134,6 +136,7 @@ static PIC_device Pics[] = { p16f84_mem, p16f84_sfr, 0, + 0x80, }, { @@ -141,6 +144,7 @@ static PIC_device Pics[] = { p16f877_mem, p16f877_sfr, 0, + 0x180, }, }; @@ -204,6 +208,36 @@ static void addMem(memRange *ranges,int type) } +/*-----------------------------------------------------------------* + *-----------------------------------------------------------------*/ + +int isREGinBank(regs *reg, int bank) +{ + + if(!reg || !pic) + return 0; + + if(((reg->address | reg->alias) & pic->bankMask & bank) == bank) + return 1; + + return 0; +} + +/*-----------------------------------------------------------------* + *-----------------------------------------------------------------*/ +int REGallBanks(regs *reg) +{ + + if(!reg || !pic) + return 0; + + return ((reg->address | reg->alias) & pic->bankMask); + +} + +/*-----------------------------------------------------------------* + *-----------------------------------------------------------------*/ + static void addMaps(PIC_device *pPic) { int i;