diff --git a/runtime/adainclude/system.ads b/runtime/adainclude/system.ads new file mode 100644 index 0000000..bd9aea4 --- /dev/null +++ b/runtime/adainclude/system.ads @@ -0,0 +1,39 @@ +package System + with Pure is + + type Name is (Light_Runtime_RP2040); + System_Name : constant Name := Light_Runtime_RP2040; + + Min_Int : constant := Long_Long_Integer'First; + Max_Int : constant := Long_Long_Integer'Last; + + Storage_Unit : constant := 8; + Word_Size : constant := 4 * Storage_Unit; + Memory_Size : constant := 2 ** Word_Size; + Max_Binary_Modulus : constant := 2 ** Word_Size; + Max_NonBinary_Modulus : constant := 2 ** Word_Size - 1; + + type Address is private + with Preelaborable_Initialization; + Null_Address : constant Address; + + function "<" (Left, Right : Address) return Boolean + with Import, Convention => Intrinsic; + function "<=" (Left, Right : Address) return Boolean + with Import, Convention => Intrinsic; + function ">" (Left, Right : Address) return Boolean + with Import, Convention => Intrinsic; + function ">=" (Left, Right : Address) return Boolean + with Import, Convention => Intrinsic; + function "=" (Left, Right : Address) return Boolean + with Import, Convention => Intrinsic; + + type Bit_Order is (High_Order_First, Low_Order_First); + Default_Bit_Order : constant Bit_Order := Low_Order_First; + +private + + type Address is mod Memory_Size; + Null_Address : constant Address := 0; + +end System;