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

⟦2b3e83f7a⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, seg_03bdb0

Derivation

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

E3 Source Code




-- Copyright 1986, 1987, 1988 Verdix Corporation

WITH Machine_Code;
PACKAGE BODY V_Bits IS

   PRAGMA Suppress (All_Checks);
   PRAGMA Suppress (Exception_Tables);

   PROCEDURE B_And (L, R : Integer; X : OUT Integer) IS
      USE Machine_Code;
   BEGIN
      Code_2'(Move_L, L'Ref, D0);
      Code_2'(Move_L, R'Ref, D1);
      Code_2'(And_L, D0, D1);
      Code_2'(Move_L, D1, X'Ref);
   END B_And;
   PRAGMA Inline_Only (B_And);

   FUNCTION Bit_And (L, R : Integer) RETURN Integer IS
      X : Integer;
   BEGIN
      B_And (L, R, X);
      RETURN X;
   END Bit_And;
   PRAGMA Inline_Only (Bit_And);


   PROCEDURE B_Or (L, R : Integer; X : OUT Integer) IS
      USE Machine_Code;
   BEGIN
      Code_2'(Move_L, L'Ref, D0);
      Code_2'(Move_L, R'Ref, D1);
      Code_2'(Or_L, D0, D1);
      Code_2'(Move_L, D1, X'Ref);
   END B_Or;
   PRAGMA Inline_Only (B_Or);

   FUNCTION Bit_Or (L, R : Integer) RETURN Integer IS
      X : Integer;
   BEGIN
      B_Or (L, R, X);
      RETURN X;
   END Bit_Or;
   PRAGMA Inline_Only (Bit_Or);


   PROCEDURE B_Xor (L, R : Integer; X : OUT Integer) IS
      USE Machine_Code;
   BEGIN
      Code_2'(Move_L, L'Ref, D0);
      Code_2'(Move_L, R'Ref, D1);
      Code_2'(Eor_L, D0, D1);
      Code_2'(Move_L, D1, X'Ref);
   END B_Xor;
   PRAGMA Inline_Only (B_Xor);

   FUNCTION Bit_Xor (L, R : Integer) RETURN Integer IS
      X : Integer;
   BEGIN
      B_Xor (L, R, X);
      RETURN X;
   END Bit_Xor;
   PRAGMA Inline_Only (Bit_Xor);


   PROCEDURE B_Neg (L : Integer; X : OUT Integer) IS
      USE Machine_Code;
   BEGIN
      Code_2'(Move_L, L'Ref, D0);
      Code_2'(Eori_L, +(-1), D0);
      Code_2'(Move_L, D0, X'Ref);
   END B_Neg;
   PRAGMA Inline_Only (B_Neg);

   FUNCTION Bit_Neg (L : Integer) RETURN Integer IS
      X : Integer;
   BEGIN
      B_Neg (L, X);
      RETURN X;
   END Bit_Neg;
   PRAGMA Inline_Only (Bit_Neg);

   PROCEDURE B_Sra (L, Cnt : Integer; X : OUT Integer) IS
      USE Machine_Code;
   BEGIN
      Code_2'(Move_L, Cnt'Ref, D0);
      Code_2'(Move_L, L'Ref, D1);
      Code_2'(Asr_L, D0, D1);
      Code_2'(Move_L, D1, X'Ref);
   END B_Sra;
   PRAGMA Inline_Only (B_Sra);

   FUNCTION Bit_Sra (L, Cnt : Integer) RETURN Integer IS
      X : Integer;
   BEGIN
      B_Sra (L, Cnt, X);
      RETURN X;
   END Bit_Sra;
   PRAGMA Inline_Only (Bit_Sra);

   PROCEDURE B_Srl (L, Cnt : Integer; X : OUT Integer) IS
      USE Machine_Code;
   BEGIN
      Code_2'(Move_L, Cnt'Ref, D0);
      Code_2'(Move_L, L'Ref, D1);
      Code_2'(Lsr_L, D0, D1);
      Code_2'(Move_L, D1, X'Ref);
   END B_Srl;
   PRAGMA Inline_Only (B_Srl);

   FUNCTION Bit_Srl (L, Cnt : Integer) RETURN Integer IS
      X : Integer;
   BEGIN
      B_Srl (L, Cnt, X);
      RETURN X;
   END Bit_Srl;
   PRAGMA Inline_Only (Bit_Srl);

   PROCEDURE B_Sll (L, Cnt : Integer; X : OUT Integer) IS
      USE Machine_Code;
   BEGIN
      Code_2'(Move_L, Cnt'Ref, D0);
      Code_2'(Move_L, L'Ref, D1);
      Code_2'(Lsl_L, D0, D1);
      Code_2'(Move_L, D1, X'Ref);
   END B_Sll;
   PRAGMA Inline_Only (B_Sll);

   FUNCTION Bit_Sll (L, Cnt : Integer) RETURN Integer IS
      X : Integer;
   BEGIN
      B_Sll (L, Cnt, X);
      RETURN X;
   END Bit_Sll;
   PRAGMA Inline_Only (Bit_Sll);

END V_Bits;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=29 rec1=00 rec2=01 rec3=018
        [0x01] rec0=2a rec1=00 rec2=02 rec3=030
        [0x02] rec0=26 rec1=00 rec2=03 rec3=04a
        [0x03] rec0=13 rec1=00 rec2=04 rec3=000
    tail 0x21739b85885657447f36c 0x489e0066482863c01