/* void _SubUnsArr(src1,src2,n) * * ARGUMENT * unsigned *src1, *src2; * int n; * * DESCRIPTION * Subtracts src2 from src1 putting the result in src1. It's assumed * that caller has checked to assure that src1>src2 so no borrow can ever * be generate (that's why this is a void!!). * * SIDE EFFECTS * The original value of src1 is destroyed. * * RETURNS * None. * * AUTHOR * Brugnoli Giugno 1992 * * MODIFICATIONS * */ #include #include #include "gm.h" #include "gmsystem.h" void _SubUnsArr(src1, src2, n) unsigned SHORT src1[], src2[]; int n; { int i; unsigned long psrc; unsigned SHORT carry = 0; if (n > 0) { for (i=0;isrc1[i] ? 1 : 0; if (carry) psrc += MAXUNSINT+0x1L; src1[i]=(unsigned SHORT)(psrc-(unsigned long)src2[i]); } } }