|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 6144 (0x1800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package System, seg_0213c4
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
package System is -- The order of the elements of this type is not significant. type Name is (S370, I80x86, I80386, Mc680x0, Vax, Transputer); System_Name : constant Name := I80386; Storage_Unit : constant := 8; Max_Int : constant := 2 ** 31 - 1; Min_Int : constant := -(2 ** 31); Max_Mantissa : constant := 31; Fine_Delta : constant := 2#1.0#E-31; Max_Digits : constant := 15; Memory_Size : constant := 2 ** 32; Tick : constant := 0.02; subtype Priority is Integer range 1 .. 28; type Address is private; Null_Address : constant Address; -- Converts a string to an address.\x09The syntax of the string and its -- meaning are target dependent. -- -- For the 80386 the syntax is: --\x09"OOOOOOOO" where OOOOOOOO is an 8 digit or less hexadecimal number --\x09\x09 representing an offset either in the data segment or in the --\x09\x09 code segment. --\x09Example: --\x09 "00000008" -- -- The exception CONSTRAINT_ERROR is raised if the string has not the -- proper syntax. function Value (Left : in String) return Address; -- Converts an address to a string.\x09The syntax of the returned string -- is described in the VALUE function. subtype Address_String is String (1 .. 8); function Image (Left : in Address) return Address_String; -- The following routines provide support to perform address -- computation. The meaning of the "+" and "-" operators is -- architecture dependent. For example on a segmented machine -- the OFFSET parameter is added to, or subtracted from the offset -- part of the address, the segment remaining untouched. type Offset is range 0 .. 2 ** 31 - 1; -- The exeception ADDRESS_ERROR is raised by "<", "<=", ">", ">=", "-" -- if the two addresses do not have the same segment value.\x09This -- exception is never raised on a non segmented machine. -- The exception CONSTRAINT_ERROR can be raised by "+" and "-". Address_Error : exception; function "+" (Left : in Address; Right : in Offset) return Address; function "+" (Left : in Offset; Right : in Address) return Address; function "-" (Left : in Address; Right : in Offset) return Address; -- The exception ADDRESS_ERROR is raised on a segmented architecture -- if the two addresses do not have the same segment value. function "-" (Left : in Address; Right : in Address) return Offset; -- Perform an unsigned comparison on addresses or offset part of -- addresses on a segmented machine. function "<=" (Left, Right : in Address) return Boolean; function "<" (Left, Right : in Address) return Boolean; function ">=" (Left, Right : in Address) return Boolean; function ">" (Left, Right : in Address) return Boolean; function "mod" (Left : in Address; Right : in Positive) return Natural; -- Returns the given address rounded to a specific value. type Round_Direction is (Down, Up); function Round (Value : in Address; Direction : in Round_Direction; Modulus : in Positive) return Address; -- These routines are provided to perform READ/WRITE operation -- in memory. -- Warning: These routines will give unexpected results if used with -- unconstrained types. generic type Target is private; function Fetch_From_Address (A : in Address) return Target; generic type Target is private; procedure Assign_To_Address (A : in Address; T : in Target); -- Procedure to copy LENGTH storage unit starting at the address -- FROM to the address TO. The source and destination may overlap. -- OBJECT_LENGTH designates the size of an object in storage units. type Object_Length is range 0 .. 2 ** 31 - 1; procedure Move (To : in Address; From : in Address; Length : in Object_Length); private pragma Inline ("+", "-", Same_Segment); type Address is access String; Null_Address : constant Address := null; pragma Interface (Assembler, Move); pragma Interface_Name (Move, "ADA@BLOCK_MOVE"); end System;
nblk1=5 nid=0 hdr6=a [0x00] rec0=28 rec1=00 rec2=01 rec3=002 [0x01] rec0=1a rec1=00 rec2=02 rec3=02e [0x02] rec0=16 rec1=00 rec2=03 rec3=068 [0x03] rec0=1f rec1=00 rec2=04 rec3=000 [0x04] rec0=0f rec1=00 rec2=05 rec3=000 tail 0x2171d635a838d737a36af 0x42a00088462060003