DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦bb0d7f5da⟧ TextFile

    Length: 3848 (0xf08)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦efb91b255⟧ 
            └─⟦this⟧ 

TextFile

with UNSIGNED_TYPES;
package SYSTEM is

    pragma suppress(ALL_CHECKS);
    pragma suppress(EXCEPTION_TABLES);
    pragma not_elaborated;

	type NAME is ( sun4_cross_mc68020 );

	SYSTEM_NAME		: constant NAME := sun4_cross_mc68020;

	STORAGE_UNIT	: constant := 8;
	MEMORY_SIZE		: constant := 16_777_216;

	-- System-Dependent Named Numbers

	MIN_INT			: constant := -2_147_483_648;
	MAX_INT			: constant := 2_147_483_647;
	MAX_DIGITS		: constant := 15;
	MAX_MANTISSA	: constant := 31;
	FINE_DELTA		: constant := 2.0**(-31);
	TICK			: constant := 0.01;

	-- Other System-dependent Declarations

	subtype PRIORITY is INTEGER range 0 .. 99;

	MAX_REC_SIZE : integer := 1024;

	type ADDRESS is private;

	function ">" (A: ADDRESS; B: ADDRESS) return BOOLEAN;
	function "<" (A: ADDRESS; B: ADDRESS) return BOOLEAN;
	function ">="(A: ADDRESS; B: ADDRESS) return BOOLEAN;
	function "<="(A: ADDRESS; B: ADDRESS) return BOOLEAN;
	function "-" (A: ADDRESS; B: ADDRESS) return INTEGER;
	function "+" (A: ADDRESS; I: INTEGER) return ADDRESS;
	function "-" (A: ADDRESS; I: INTEGER) return ADDRESS;
	function "+" (I: INTEGER; A: ADDRESS) return ADDRESS;

	function "+" (I: UNSIGNED_TYPES.UNSIGNED_INTEGER) return ADDRESS;

	function MEMORY_ADDRESS
		(I: UNSIGNED_TYPES.UNSIGNED_INTEGER) return ADDRESS renames "+";

	function TO_INTEGER (ADDR : ADDRESS) return INTEGER;
	function TO_ADDRESS (INT  : INTEGER) return ADDRESS;

	NO_ADDR : constant ADDRESS;
	ADDRESS_ZERO : constant ADDRESS;
	NULL_ADDRESS : constant ADDRESS;

	ASSERTION_ERROR : exception;

	type TASK_ID is private;
	NO_TASK_ID : constant TASK_ID;

	type PASSIVE_TASK_ID is private;
	NO_PASSIVE_TASK_ID : constant PASSIVE_TASK_ID;

	subtype SIG_STATUS_T is INTEGER;
	SIG_STATUS_SIZE: constant	:= 4;

	type PROGRAM_ID is private;
	NO_PROGRAM_ID : constant PROGRAM_ID;

	type BYTE_ORDER_T is (
			LITTLE_ENDIAN,
			BIG_ENDIAN
		);
	BYTE_ORDER: constant BYTE_ORDER_T := BIG_ENDIAN;

	type LONG_ADDRESS is private;

	NO_LONG_ADDR : constant LONG_ADDRESS;

	function "+" (A: LONG_ADDRESS; I: INTEGER) return LONG_ADDRESS;
	function "-" (A: LONG_ADDRESS; I: INTEGER) return LONG_ADDRESS;

	function MAKE_LONG_ADDRESS (A: ADDRESS) return LONG_ADDRESS;

	function LOCALIZE(A: LONG_ADDRESS ; BYTE_SIZE : INTEGER) return ADDRESS;

	function STATION_OF(A: LONG_ADDRESS) return INTEGER;

    -- Internal RTS representation for day. If the calendar package is used,
    -- then, this is the julian day.
    subtype DAY_T is INTEGER;

	-- Constants describing the configuration of the CIFO add-on product.
	SUPPORTS_INVOCATION_BY_ADDRESS	: constant BOOLEAN := TRUE;
	SUPPORTS_PREELABORATION				: constant BOOLEAN := TRUE;
	MAKE_ACCESS_SUPPORTED				: constant BOOLEAN := TRUE;

	-- Arguments to the CIFO pragma INTERRUPT_TASK.
	type INTERRUPT_TASK_KIND is ( SIMPLE, SIGNALLING );

	function RETURN_ADDRESS return ADDRESS;

private

	type ADDRESS is new UNSIGNED_TYPES.UNSIGNED_INTEGER;

	NO_ADDR : constant ADDRESS := 0;
	ADDRESS_ZERO : constant ADDRESS := 0;
	NULL_ADDRESS : constant ADDRESS := 0;

	pragma BUILT_IN(">");
	pragma BUILT_IN("<");
	pragma BUILT_IN(">=");
	pragma BUILT_IN("<=");
	pragma BUILT_IN("-");
	pragma BUILT_IN("+");

	type TASK_ID is new UNSIGNED_TYPES.UNSIGNED_INTEGER;
	NO_TASK_ID : constant TASK_ID := 0;

	type PASSIVE_TASK_ID is new UNSIGNED_TYPES.UNSIGNED_INTEGER;
	NO_PASSIVE_TASK_ID : constant PASSIVE_TASK_ID := 0;

	type PROGRAM_ID is new UNSIGNED_TYPES.UNSIGNED_INTEGER;
	NO_PROGRAM_ID : constant PROGRAM_ID := 0;

	type LONG_ADDRESS is 
		RECORD
			station	: UNSIGNED_TYPES.UNSIGNED_INTEGER;
			addr	: ADDRESS;
		END RECORD;

	NO_LONG_ADDR : constant LONG_ADDRESS := (0, 0);

	pragma BUILT_IN(MAKE_LONG_ADDRESS);
	pragma BUILT_IN(LOCALIZE);
	pragma BUILT_IN(STATION_OF);

	pragma BUILT_IN(RETURN_ADDRESS);
	pragma BUILT_IN(TO_INTEGER);
	pragma BUILT_IN(TO_ADDRESS);

end SYSTEM