mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-13 22:19:51 +02:00
56 lines
1.2 KiB
ObjectPascal
56 lines
1.2 KiB
ObjectPascal
{ %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.
|