** ** Delta.asm ** ** Copyright (C) 1995 Bernardo Innocenti ** ** Delta encoding/decoding routine ** _DeltaDecode: * void DeltaDecode (BYTE *dataBlock, ULONG blockSize); * A0 D0 * * old=0 * for i=0 to blockSize-1 * new=dataBlock[i]+old * dataBlock[i]=new * old=new MOVEQ #0,D1 $1 ADD.B (A0),D1 MOVE.B D1,(A0)+ SUBQ.L #1,D0 ; Loop BNE $1 RTS _DeltaEncode: * void DeltaEncode (BYTE *dataBlock, ULONG blockSize); * A0 D0 * * old=0 * for i=0 to blockSize-1 * old=dataBlock[i] * new=old-new * datablock[i]=new MOVE.W D2,-(SP) MOVEQ #0,D1 $1 MOVE.B (A0),D2 SUB.B D2,D1 MOVE.B D1,(A0)+ SUBQ.L #1,D0 ; Loop BNE $1 MOVE.W (SP)+,D2 RTS