tw1842.pp 1.2 KB

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