blob: 3e8aab301957d14d89a86a09421f722413dfec63 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
{ %fail }
type
s8=shortint;
s16=smallint;
s32=longint;
addrtype=pchar;
InPacket=pchar;
PROCEDURE getlrc1 ( Buffer : AddrType ;
StartPos : s32 ;
MaxPos : s32 ;
LastChar : s32 ;
VAR LRCPos : s16 ;
VAR LRCVal : s8); CDECL; [Public, alias: 'getlrc'];
begin
LRCPos:=200;
LRCVal:=100;
end;
PROCEDURE CalcLRC ( APacket : InPacket ;
PacketLen : s32;
StartPos : s16 ;
EndingChar: s16 ;
VAR LRCPos : s16 ;
VAR LRCVal : s8 );
PROCEDURE getlrc ( Buffer : AddrType ;
StartPos : s32 ;
MaxPos : s32 ;
LastChar : s32 ;
VAR LRCPos : s16 ;
VAR LRCVal : s8); CDECL; EXTERNAL;
BEGIN
getlrc (APacket,
StartPos - 1,
PacketLen,
EndingChar, {--ETX or SO--}
LRCPos,
LRCVal);
LRCPos := LRCPos + 1;
END; { CalcLRC }
VAR
LRCPos : s16 ;
LRCVal : s8;
begin
calclrc('12345',5,2,ord('5'),LRCPos,LRCVal);
writeln(LRCPos,' ',LRCVal);
end.
|