|
|
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 - metrics - downloadIndex: B T
Length: 13877 (0x3635)
Types: TextFile
Names: »B«
└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00
└─⟦0c20f784e⟧ »DATA«
└─⟦1abbe589f⟧
└─⟦591c5b094⟧
└─⟦this⟧
separate (Symbol_Table)
------------------------------------------------------------------------------
-- Copyright 1989 - 1990 by Rational, Santa Clara, California.
--
-- All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the name of Rational not be used in
-- advertising or publicity pertaining to distribution of the software
-- without specific, written prior permission.
--
-- Rational disclaims all warranties with regard to this software, including
-- all implied warranties of merchantability and fitness, in no event shall
-- Rational be liable for any special, indirect or consequential damages or
-- any damages whatsoever resulting from loss of use, data or profits, whether
-- in an action of contract, negligence or other tortious action, arising out
-- of or in connection with the use or performance of this software.
------------------------------------------------------------------------------
procedure Define_Predefineds is
------------------------------------------------------------------------------
-- Called to enter all of our existing parameter names with default values.
------------------------------------------------------------------------------
procedure Flag (Name : E_String) is
begin
Define (Sym_Map, Name, (Sk_Boolean, Permanent => False, Bool => False));
end Flag;
begin
------------------------------------------------------------------------------
-- General/Random Issues
------------------------------------------------------------------------------
Flag ("DEBUG"); -- Do we want Debug code? There is some
-- small amount of sanity-checking code
-- embedded in the library. This will
-- un/comment that code.
Flag ("OLD_CONTEXT_MANAGER");-- Do we want the old "Context Manager"
-- included in the library? The context
-- manager was created by MIT/DEC as a tool
-- to aid the Xt Intrinsics. However, they
-- don't use the interface as it is declared.
-- All of the interfaces take an X_Window
-- and less than have of the users of the
-- interface in the Xt layer pass an X_Window
-- value. They mainly pass something that
-- *isn't* a window. They pass in all sorts
-- of things that happen to be the same bit
-- size as an X_Window.
-- Therefore the context manager is of no use
-- to the Ada Xt Intrinsics and the concept
-- has been reimplemented there. However,
-- if someone "out there" wants the CM for
-- some other reason then set this parameter
-- to TRUE.
------------------------------------------------------------------------------
-- Host Machine/Operating-System Issues
------------------------------------------------------------------------------
Flag ("Cdf_Hpux"); -- Target is Rational CDF for 68k HP Unix
Flag ("R1000"); -- Target is an R1000.
Flag ("TeleGen2"); -- Target is TeleSoft TeleGen2 Ada compiler.
Flag ("Unix"); -- Target is any form of Unix.
Flag ("SysV"); -- Target is System V in particular.
Flag ("R1000_Xlib_Only"); -- True only on R1000's without Xt, Xaw, etc.
-- Eliminates the extra tasking interfaces
-- required on R1000's otherwise.
------------------------------------------------------------------------------
-- Bugicide - Sometimes we have to work around what we cannot get fixed
-- right away.
------------------------------------------------------------------------------
Flag ("R1000_Size_Bug"); -- type a is something;
-- for a'size use nnn;
-- type b is new a;
-- for b'size use nnn; <-- gets an error
Flag ("TeleGen2_Derive_Bug"); -- package xxx is
-- type aaa is range nnn..mmm;
-- function "and"(a,b:aaa) return aaa;
-- package yyy is
-- type bbb is new aaa;
-- function "and" is not inherited by the
-- derived bbb type and it should be.
Flag ("TeleGen2_Length_Bug"); -- type foo is (a,b,c,d,e,f,g,h);
-- type bar is array (foo) of boolean;
-- for foo'size use 8;
-- But foo'size isn't 8, you have to
-- pragma pack(foo) as well to get it.
-- And, this only happens "sometimes".
--
-- TeleGen2 68K Unix - before v1.4A
Flag ("TeleGen2_Pack_Bug"); -- type foo is record .... end record;
-- for foo'size use nnn;
-- type bar is array (...) of record;
-- pragma pack (bar);
-- Error: Rep clause after forcing occurance
-- for foo (the error caused by the pragma)
Flag ("TeleGen2_2d_Bug"); -- type u_char is new range 0..255;
-- for u_char'size use 8;
-- type array_2d is array (u_char range <>,
-- u_char range <>
-- ) of integer;
-- foo : array_2d;
--
-- Foo'last, foo'first, and foo'length
-- all return incorrect values.
-- Changing the type of the 1st dimension
-- to any 16-bit (or 32-bit) type fixes
-- the problem but messes up our interface.
------------------------------------------------------------------------------
-- Library Features
------------------------------------------------------------------------------
Flag ("Multitask_Locking"); -- Are we providing for/allowing multi-task
-- interlocking on X_Display's and on the
-- basic X_Lib data structure? If the user
-- program will never use X_Library in a
-- multitasking Ada environment then we
-- don't have to and this would mean that
-- we have lower overhead (no internal
-- tasks) in the library.
------------------------------------------------------------------------------
-- Ada Compiler Issues
------------------------------------------------------------------------------
----Does the Ada language feature called Xxxx exist/work?
Flag ("Enable_Deallocation"); -- pragma ENABLE_DEALLOCATION( access-type );
-- Unchecked_Deallocation is a no-op unless
-- this is used. R1000-specific.
Flag ("Inline"); -- pragma INLINE( procedure-name );
-- Inlining across compilaton units.
Flag ("Length_Clauses"); -- Are we using the Length Clauses?
-- (LRM 13.2) This is true if we are using
-- them. They might not be implemented in
-- which case we will be forced to
-- explicitly code all conversion routines
-- instead of relying on facilities such
-- as Unchecked_Conversion.
Flag ("Pack"); -- pragma PACK( type-simple-name );
-- Pragma PACK is wanted, desired, supported.
-- Pragma PACK should not be necessary if
-- the For Foo'Size use Number; length
-- clauses work.
Flag ("Positive_Is_Large"); -- If Positive'Size = 32, or is "large" then
-- some of the code that is in the library
-- just-in-case Positive'Size = 16, or is
-- "small" may generate compiler warnings.
-- In particular we do things like:
-- if size > Positive'Last then
-- array:=new string(1..Positive'Last);
-- and so on. This can generate compiler
-- warnings about "This will raise exception
-- Storage_Error or Constraint_Error" or some
-- such. If Positive_Is_Large, meaning that
-- Positive'Last >= S_Long'Last, then we
-- don't include this code in the library.
Flag ("Record_Rep_Clauses"); -- Are we using the Record Representation
-- Clauses? (LRM 13.4) This is true if
-- we are using them. They might not be
-- implemented in which case we will be
-- relying upon the FOR X'SIZE USE NNN;
-- caluses and the kindness of the compiler.
------------------------------------------------------------------------------
-- Machine/Ada-RunTime-Implementation Issues
------------------------------------------------------------------------------
----Bit0_Sign_Bit - TRUE if (as on the R1000) bit 0 of an array of booleans is
-- the high order (sign) bit of the correspondingly sized numeric type.
-- FALSE if (as on many machines) bit 0 of an array of booleans is the low
-- order (even/odd) bit of the correspondingly sized numeric type.
--
-- This flag must be correct or none of the bit flags sent/received in the X
-- protocol messages will be correct. This is a pervasive problem.
-- It is unfortunately easy to write non-portable code if care is not taken
-- iterations. The Bit0_Sign_Bit flag exists so that code may be
-- parameterized in order to work with any machine.
Flag ("Bit0_Sign_Bit");
----Byte0_Sign_Byte - TRUE if (as on the R1000) byte 0 of an array of bytes
-- is the high order (most significant) byte of the correspondingly sized
-- numeric type. FALSE if (as on some machines) byte 0 of an array of bytes
-- is the low order (least significant) byte of the correspondingly sized
-- numeric type.
Flag ("Byte0_Sign_Byte");
----Record_Rep_Storage_Unit_8/16/32 - Set one of these to true, or, invent
-- a new parameter name of your own. Their sole purpose is to chose a
-- particular set of constants within the Xlbmt_Parameters module. They
-- chose the set of constants that allow us, for this target, to lay out
-- bytes, half-words, and words where we need them to be.
--
-- '8' will be true if System.Storage_Unit = 8. It may also be true if
-- Storage_Unit is 16 or 32; it depends upon the machine/compiler byte order.
-- '16' will only be true if System.Storage_Unit = 16 and/or the bit offsets
-- required by the target match those given in Xlbmt_Parameters.
-- '32' will only be true if System.Storage_Unit = 32 and/or the bit offsets
-- required by the target match those given in Xlbmt_Parameters.
Flag ("Record_Rep_Storage_Unit_8");
Flag ("Record_Rep_Storage_Unit_16");
Flag ("Record_Rep_Storage_Unit_32");
----Row_Major_Order - TRUE if (as on the R1000) arrays are stored in memory in
-- Row_Major order. This means that the successive elements of each row of a
-- 2-D array are stored in successive locations. (In a (1..3,1..3) array,
-- element (1,1) is followed by (1,2), (1,3), (2,1), (2,2), ... etc.)
-- FALSE if (as with some compilers) arrays are stored in memory in
-- Column_Major order. This means that successive elements of each row of a
-- 2-D array will not be adjacent in memory.
--
-- The X Protocol assumes Row-Major and this flag provides a way to make
-- allowances if necessary. Note: Only Row_Major_Order=>True is fully
-- implemented and tested. Row_Major_Order=>False is implemented but
-- untested.
Flag ("Row_Major_Order");
----Raw_Is_Unsigned - TRUE if X_Raw_Data is range 0..255 and FALSE if it is
-- range -128..127. X_Raw_Data *must* be an 8-bit numeric type so it will
-- have to be one or the other. Use the 0..255 range if you have a choice.
-- The code will be very slightly faster.
Flag ("Raw_Is_Unsigned");
end Define_Predefineds;