Compiling: t.adb (source file time stamp: 1998-10-16 09:39:25) 1. with Ada.Text_Io; use Ada.Text_IO; 2. with Ada.Integer_Text_IO; 3. use Ada.Integer_Text_IO; 4. with System; 5. 6. procedure T is 7. 8. type Byte is mod 2 ** 8; 9. type Word is mod 2 ** 16; 10. 11. type Big_Endian is record 12. A : Byte; 13. B : Word; 14. C : Byte; 15. end record; 16. for Big_Endian use record 17. A at 0 range 0 .. 7; 18. B at 0 range 8 .. 23; 19. C at 0 range 24 .. 31; 20. end record; 21. for Big_Endian'Bit_Order use System.High_Order_First; | >>> unsupported value for Bit_Order 22. 23. type Little_Endian is record 24. A : Byte; 25. B : Word; 26. C : Byte; 27. end record; 28. for Little_Endian use record 29. A at 0 range 0 .. 7; 30. B at 0 range 8 .. 23; 31. C at 0 range 24 .. 31; 32. end record; 33. for Little_Endian'Bit_Order use System.Low_Order_First; 34. 35. BE : Big_Endian := (10, 20, 30); 36. LE : Little_Endian := (10, 20, 30); 37. 38. BE_Int : Integer; 39. for BE_Int'address use BE'address; 40. 41. LE_Int : Integer; 42. for LE_Int'address use LE'address; 43. 44. begin 45. Default_Base := 2; 46. 47. Put_Line ("BO => " & System.Bit_Order'Image (System.Default_Bit_Order)); 48. Put ("BE =>"); Put (BE_Int); New_Line; 49. Put ("LE =>"); Put (LE_Int); New_Line; 50. 51. end T;