honor the MASK and SHFT fields

This commit is contained in:
Marty Kraimer
1998-11-09 17:07:44 +00:00
parent 2ce2fc4c86
commit 12d767c98a
4 changed files with 20 additions and 2 deletions

View File

@@ -80,6 +80,9 @@ static long init_record(pmbbi)
"devMbbiDirectSoftRaw (init_record) Illegal INP field");
return(S_db_badField);
}
/*to preserve old functionality*/
if(pmbbi->nobt == 0) pmbbi->mask = 0xffffffff;
pmbbi->mask <<= pmbbi->shft;
return(0);
}
@@ -89,5 +92,6 @@ static long read_mbbi(pmbbi)
long status;
status = dbGetLink(&pmbbi->inp,DBR_LONG,&pmbbi->rval,0,0);
if(status==0) pmbbi->rval &= pmbbi->mask;
return(0);
}

View File

@@ -72,6 +72,9 @@ static long init_record(pmbbi)
if (pmbbi->inp.type == CONSTANT) {
recGblInitConstantLink(&pmbbi->inp,DBF_ULONG,&pmbbi->rval);
}
/*to preserve old functionality*/
if(pmbbi->nobt == 0) pmbbi->mask = 0xffffffff;
pmbbi->mask <<= pmbbi->shft;
return(0);
}
@@ -81,5 +84,6 @@ static long read_mbbi(pmbbi)
long status;
status = dbGetLink(&pmbbi->inp,DBR_LONG,&pmbbi->rval,0,0);
if(status==0) pmbbi->rval &= pmbbi->mask;
return(0);
}

View File

@@ -70,6 +70,9 @@ struct mbboDirectRecord *pmbbo;
if (pmbbo->out.type != PV_LINK)
status = 2;
/*to preserve old functionality*/
if(pmbbo->nobt == 0) pmbbo->mask = 0xffffffff;
pmbbo->mask <<= pmbbo->shft;
return status;
} /* end init_record() */
@@ -77,7 +80,9 @@ static long write_mbbo(pmbbo)
struct mbboDirectRecord *pmbbo;
{
long status;
unsigned long data;
status = dbPutLink(&pmbbo->out,DBR_LONG, &pmbbo->rval,1);
data = pmbbo->rval & pmbbo->mask;
status = dbPutLink(&pmbbo->out,DBR_LONG, &data,1);
return(0);
}

View File

@@ -68,6 +68,9 @@ struct mbboRecord *pmbbo;
long status;
/*to preserve old functionality*/
if(pmbbo->nobt == 0) pmbbo->mask = 0xffffffff;
pmbbo->mask <<= pmbbo->shft;
/*dont convert*/
status = 2;
return status;
@@ -78,7 +81,9 @@ static long write_mbbo(pmbbo)
struct mbboRecord *pmbbo;
{
long status;
unsigned long data;
status = dbPutLink(&pmbbo->out,DBR_LONG, &pmbbo->rval,1);
data = pmbbo->rval & pmbbo->mask;
status = dbPutLink(&pmbbo->out,DBR_LONG, &data,1);
return(0);
}