DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦52abba2dd⟧ TextFile

    Length: 2827 (0xb0b)
    Types: TextFile
    Names: »V«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦24d1ddd49⟧ 
                └─⟦this⟧ 

TextFile

--    The use of this system is subject to the software license terms and
--    conditions agreed upon between Rational and the Customer.
--
--                Copyright 1988 by Rational.
--
--                          RESTRICTED RIGHTS LEGEND
--
--    Use, duplication, or disclosure by the Government is subject to
--    restrictions as set forth in subdivision (b)(3)(ii) of the Rights in
--    Technical Data and Computer Software clause at 52.227-7013.
--
--
--                Rational
--                3320 Scott Boulevard
--                Santa Clara, California 95054-3197
--
--   PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL;
--   USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION
--   IS STRICTLY PROHIBITED.  THIS MATERIAL IS PROTECTED AS
--   AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF
--   1976.  CREATED 1988.  ALL RIGHTS RESERVED.
--
--

with Message_Queues;
with Runtime_Ids;

package Timer is

    type Id is new Integer;

    Nil : constant Id := 0;

    subtype Delay_Time is Duration range 0.0 .. Duration'Last;

    subtype Timeout_Message is Integer;

    -- Commented out until backend bug generating bad assembly for
    -- image tables is fixed
    --
    -- type Status is (Successful, No_Free_Timers, Delay_Too_Large,
    --                 Illegal_Timer_Type, No_Free_Queue_Slot, Bad_Timer_Id);

    -- Until enumeration rep specs work, we have to use Stratus instead
    -- of Status.

    subtype Stratus is Integer;

    Ti_Success : constant := 16#0000#;  
    Ti_Nofrte  : constant := 16#200A#;  
    Ti_Deltl   : constant := 16#200B#;  
    Ti_Illtt   : constant := 16#200C#;  
    Ti_Nofrqs  : constant := 16#200D#;  
    Ti_Btmrid  : constant := 16#2014#;


    procedure Start (Time   :     Delay_Time;  
                     Queue  :     Message_Queues.Id;  
                     Signal :     Timeout_Message;  
                     Result : out Stratus;  
                     Handle : out Id);

    procedure Stop (Handle : Id; Result : out Stratus);

private

    pragma Interface (Asm, Start);  
    pragma Import_Procedure  
       (Start, "__TIMER$START",  
        Mechanism => (Value, Reference, Value, Value, Value));

    pragma Interface (Asm, Stop);  
    pragma Import_Procedure (Stop, "__TIMER$STOP", Mechanism => (Value, Value));

--    for Status use (Successful => Ti_Success,
--                    No_Free_Timers => Ti_Nofrte,
--                    Delay_Too_Large => Ti_Deltl,
--                    Illegal_Timer_Type => Ti_Illtt,
--                    No_Free_Queue_Slot => Ti_Nofrqs,
--                    Bad_Timer_Id => Ti_Btmrid);

end Timer;
pragma Export_Elaboration_Procedure ("__TIMER_SPEC_ELAB");  
pragma Runtime_Unit (Unit_Number         => Runtime_Ids.Runtime_Compunit,
                     Elab_Routine_Number => Runtime_Ids.Internal);