tparray4.pp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. {$mode macpas}
  2. program tparray4;
  3. type
  4. {$ifc defined __GPC__}
  5. Int32 = Integer attribute ( size = 32);
  6. {$elsec}
  7. Int32 = longint;
  8. {$endif}
  9. type
  10. GPCKeyMap = packed array[0..127] of boolean;
  11. FPCKeyMap = array [0..15] of byte;
  12. var
  13. km: GPCKeymap;
  14. begin
  15. if bitsizeof(km[1]) <> 1 then
  16. halt(1);
  17. if bitsizeof(FPCKeyMap(km)[0]) <> 8 then
  18. halt(2);
  19. fillchar(km,sizeof(km),0);
  20. km[56] := true;
  21. if (FPCKeyMap(km)[0] <> 0) or
  22. (FPCKeyMap(km)[1] <> 0) or
  23. (FPCKeyMap(km)[2] <> 0) or
  24. (FPCKeyMap(km)[3] <> 0) or
  25. (FPCKeyMap(km)[4] <> 0) or
  26. (FPCKeyMap(km)[5] <> 0) or
  27. (FPCKeyMap(km)[6] <> 0) or
  28. {$ifdef ENDIAN_BIG}
  29. (FPCKeyMap(km)[7] <> 128) or
  30. {$else ENDIAN_BIG}
  31. (FPCKeyMap(km)[7] <> 1) or
  32. {$endif ENDIAN_BIG}
  33. (FPCKeyMap(km)[8] <> 0) or
  34. (FPCKeyMap(km)[9] <> 0) or
  35. (FPCKeyMap(km)[10] <> 0) or
  36. (FPCKeyMap(km)[11] <> 0) or
  37. (FPCKeyMap(km)[12] <> 0) or
  38. (FPCKeyMap(km)[13] <> 0) or
  39. (FPCKeyMap(km)[14] <> 0) or
  40. (FPCKeyMap(km)[15] <> 0) then
  41. begin
  42. writeln('error');
  43. halt(1);
  44. end;
  45. writeln('ok');
  46. end.