DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 6881 (0x1ae1) Types: TextFile Names: »V«
└─⟦516dceb10⟧ Bits:30000751 8mm tape, Rational 1000, RCI_VADS └─ ⟦9a14c9417⟧ »DATA« └─⟦this⟧
-- Copyright 1987, 1988 Verdix Corporation ------------------------------------------------------------------------------ -- Standard interface types for the M68000 processor family version of -- the RTS. ------------------------------------------------------------------------------ with System; with Unchecked_Conversion; package V_I_Types is pragma Suppress (All_Checks); pragma Suppress (Exception_Tables); pragma Not_Elaborated; -------------------------------------------------------------------------- -- TIME type -------------------------------------------------------------------------- -- Internal RTS representation for day. If the calendar package is used, -- then, this is the julian day. subtype Day_T is Integer; -- Internal representation for current or absolute time. The current time -- is normalized so that sec is less than a day (86400.0 seconds) type Time_T is record Day : Day_T; Sec : Duration; end record; -------------------------------------------------------------------------- -- Interrupt types -------------------------------------------------------------------------- -- Exception vector table ID's subtype Intr_Vector_Id_T is Natural; -- Interrupt enable/disable status: Interrupt Priority Level (IPL) -- mask stored in Status Register subtype Intr_Status_T is Integer; Disable_Intr_Status : constant := 16#0700#; Enable_Intr_Status : constant := 16#0000#; Level_0_Intr_Status : constant := 16#0000#; Level_1_Intr_Status : constant := 16#0100#; Level_2_Intr_Status : constant := 16#0200#; Level_3_Intr_Status : constant := 16#0300#; Level_4_Intr_Status : constant := 16#0400#; Level_5_Intr_Status : constant := 16#0500#; Level_6_Intr_Status : constant := 16#0600#; Level_7_Intr_Status : constant := 16#0700#; -------------------------------------------------------------------------- -- The following types define the structure of the fpcr register -- on the MC68881. A configuration parameter of this type allows -- the user to control the operating characteristics of the co- -- processor by providing the value to which the fpcr should be -- initialized. -------------------------------------------------------------------------- type Exception_Bit is range 0 .. 1; type Rounding_Modes is (To_Nearest, Toward_Zero, Toward_Minus_Infinity, Toward_Plus_Infinity); for Rounding_Modes use (To_Nearest => 2#00#, Toward_Zero => 2#01#, Toward_Minus_Infinity => 2#10#, Toward_Plus_Infinity => 2#11#); type Rounding_Precision is (Extended, Single, Double); for Rounding_Precision use (Extended => 2#00#, Single => 2#01#, Double => 2#10#); type Mode_Control_Byte is record Prec : Rounding_Precision; Rnd : Rounding_Modes; end record; for Mode_Control_Byte use record Prec at 0 range 0 .. 1; Rnd at 0 range 2 .. 3; end record; for Mode_Control_Byte'Size use 8; type Exception_Byte is record Bsun : Exception_Bit; Snan : Exception_Bit; Operr : Exception_Bit; Ovfl : Exception_Bit; Unfl : Exception_Bit; Dz : Exception_Bit; Inex2 : Exception_Bit; Inex1 : Exception_Bit; end record; for Exception_Byte use record Bsun at 0 range 0 .. 0; Snan at 0 range 1 .. 1; Operr at 0 range 2 .. 2; Ovfl at 0 range 3 .. 3; Unfl at 0 range 4 .. 4; Dz at 0 range 5 .. 5; Inex2 at 0 range 6 .. 6; Inex1 at 0 range 7 .. 7; end record; for Exception_Byte'Size use 8; type Floating_Point_Control_T is record Exceptions : Exception_Byte; Modes : Mode_Control_Byte; end record; for Floating_Point_Control_T use record Exceptions at 2 range 00 .. 07; Modes at 3 range 00 .. 07; end record; for Floating_Point_Control_T'Size use 32; -------------------------------------------------------------------------- -- Space needed at bottom of user stack for exception handling -------------------------------------------------------------------------- Exception_Stack_Size : constant := 1000; -------------------------------------------------------------------------- -- User interface to RTS data structures -------------------------------------------------------------------------- -- Program control block type A_Program_T is new System.Address; -- Task control block type A_Task_T is new System.Address; Null_Task : -- constant KLUDGE: was not being initialized statically -- now initiallized dynamically in boot_conf.v_boot. A_Task_T := A_Task_T (System.No_Addr); -- Type of user_field in task control record subtype User_Field_T is Integer; -- Signal structure type A_Signal_T is new System.Address; -------------------------------------------------------------------------- -- User memory types, constants, conversion functions -------------------------------------------------------------------------- type User_Address_T is new System.Address; type Short_Address_T is new System.Address; type A_Memory_Map_T is new System.Address; Null_User_Address : -- constant KLUDGE: was not being initialized statically -- now initiallized dynamically in boot_conf.v_boot. User_Address_T := User_Address_T (System.No_Addr); function Make_Address is new Unchecked_Conversion (System.Address, User_Address_T); function I_To_A is new Unchecked_Conversion (Integer, System.Address); function Ua_To_A is new Unchecked_Conversion (User_Address_T, System.Address); -------------------------------------------------------------------------- -- Misc type definitions -------------------------------------------------------------------------- -- Type of value returned by v_i_taskop.ts_entry_count subtype Universal_Integer_T is Integer; type Long_Integer is new Integer; subtype Alloc_T is Integer; -- allocate length type subtype Physical_Adr_As_Int is Integer; -- Values corresponding to a zero/non-zero for the machine test-and-set type Test_And_Set_T is new Integer range 0 .. 255; for Test_And_Set_T'Size use 8; Test_And_Set_False : constant Test_And_Set_T := 0; Test_And_Set_True : constant Test_And_Set_T := 16#80#; -- bit 7 of byte end V_I_Types;