package yaffs2.utils.emulation; import yaffs2.utils.*; import yaffs2.utils.factory.PrimitiveWrapperFactory; public abstract class CheckSum { public static byte checksumOfBytesUnused(byte[] array, int index) { final byte divisor = 0x15; byte sum = 0, temp; temp = (byte)(array[index] << 4); sum = (byte)(array[index]>>3 ^ divisor); for(int i = 0;i < 7; i++) { sum = (byte)((sum << 1) | (temp >> (6-i) & 1)); sum = (byte)((sum & 0x1f)^divisor); } return sum = (byte)(sum & 0x0f); } public static void checksumOfBytes(byte[] array, int index, int n) { int temp = 0; byte out = 0; for(int i = 0; i < n; i++) { temp = 0; for(int j = 0; j < 4; j++) { temp += array[index+(4*i)+j]; } out = (byte)((~temp)+1); Unix.xprintfArgs[0] = PrimitiveWrapperFactory.get(yaffs2.utils.Utils.byteAsUnsignedByte(out)); Unix.printf("%02x"); if ((i>0)&&(i%32) == 0) Unix.printf("\n"); } Unix.printf("\n"); } }