#sha
Add(MainForm,6651139,378,196)
{
Left=10
Top=10
Ctl3D=0
Position=1
}
Add(InlineCode,6605375,490,196)
{
WorkPoints=#7:doCRC16|
EventPoints=#8:onResult|
DataPoints=#8:IntArray|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|5:const|35: mpbCRCHi: array[0..$FF] of byte=(|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,|82: $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0,|82: $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01,|82: $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41,|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81,|82: $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0,|82: $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $01,|82: $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40,|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,|82: $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0,|82: $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01,|82: $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41,|82: $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81,|82: $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0,|82: $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $01,|82: $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41,|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,|14: $40) ;|0:|35: mpbCRCLo: array[0..$FF] of byte=(|82: $00, $C0, $C1, $01, $C3, $03, $02, $C2, $C6, $06, $07, $C7, $05, $C5, $C4,|82: $04, $CC, $0C, $0D, $CD, $0F, $CF, $CE, $0E, $0A, $CA, $CB, $0B, $C9, $09,|82: $08, $C8, $D8, $18, $19, $D9, $1B, $DB, $DA, $1A, $1E, $DE, $DF, $1F, $DD,|82: $1D, $1C, $DC, $14, $D4, $D5, $15, $D7, $17, $16, $D6, $D2, $12, $13, $D3,|82: $11, $D1, $D0, $10, $F0, $30, $31, $F1, $33, $F3, $F2, $32, $36, $F6, $F7,|82: $37, $F5, $35, $34, $F4, $3C, $FC, $FD, $3D, $FF, $3F, $3E, $FE, $FA, $3A,|82: $3B, $FB, $39, $F9, $F8, $38, $28, $E8, $E9, $29, $EB, $2B, $2A, $EA, $EE,|82: $2E, $2F, $EF, $2D, $ED, $EC, $2C, $E4, $24, $25, $E5, $27, $E7, $E6, $26,|82: $22, $E2, $E3, $23, $E1, $21, $20, $E0, $A0, $60, $61, $A1, $63, $A3, $A2,|82: $62, $66, $A6, $A7, $67, $A5, $65, $64, $A4, $6C, $AC, $AD, $6D, $AF, $6F,|82: $6E, $AE, $AA, $6A, $6B, $AB, $69, $A9, $A8, $68, $78, $B8, $B9, $79, $BB,|82: $7B, $7A, $BA, $BE, $7E, $7F, $BF, $7D, $BD, $BC, $7C, $B4, $74, $75, $B5,|82: $77, $B7, $B6, $76, $72, $B2, $B3, $73, $B1, $71, $70, $B0, $50, $90, $91,|82: $51, $93, $53, $52, $92, $96, $56, $57, $97, $55, $95, $94, $54, $9C, $5C,|82: $5D, $9D, $5F, $9F, $9E, $5E, $5A, $9A, $9B, $5B, $99, $59, $58, $98, $88,|82: $48, $49, $89, $4B, $8B, $8A, $4A, $4E, $8E, $8F, $4F, $8D, $4D, $4C, $8C,|82: $44, $84, $85, $45, $87, $47, $46, $86, $82, $42, $43, $83, $41, $81, $80,|14: $40) ;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|26: onResult: THI_event;|25: IntArray:THI_Event;|53: procedure doCRC16(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|30:procedure THiAsmClass.doCRC16;|20:var dt: TData;|20: Ind: TData;|21: Arr: PArray;|19: bCRCHi: byte;|19: bCRCLo: byte;|19: i: word;|19: j: byte;|21: Res: String;|5:begin|30: Arr := ReadArray(IntArray);|26: if Arr = nil then exit;|15: bCRCHi:=$FF;|15: bCRCLo:=$FF;|40: for i := 0 to Arr._Count - 1 do begin|23: dtInteger(ind,i);|36: if Arr._Get(ind,dt) then begin|45: j := bCRCHi xor byte(toInteger(dt));|42: bCRCHi := bCRCLo xor mpbCRCHi[j];|31: bCRCLo := mpbCRCLo[j];|10: end;|7: end;|43: Res:=Int2Hex((bCRCHi*$100 + bCRCLo), 4);|40: _hi_CreateEvent(_Data,@onResult,Res);|4:end;|0:|4:end.|
link(onResult,6743654:doText,[])
link(IntArray,16444849:Array,[])
}
Add(IntegerArray,16444849,490,140)
{
IntArray=['0'=11,'0'=22,'0'=33]
}
Add(Button,14809462,434,196)
{
Left=20
Top=15
Caption="CRC16"
link(onClick,6605375:doCRC16,[])
}
Add(Edit,6743654,546,196)
{
Left=100
Top=15
Width=80
Text=""
}
Galkov, как всегда, опередил



Поиск
Друзья
Администрация