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

⟦7ac26aae7⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Character_Io, seg_05818f

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



with Defined_Type;
with Simple_Io;
with Vme;
with Vsip;
package body Character_Io is

    Character_Value : array ('A' .. 'Z') of Defined_Type.Octet;

    -- Object instanciation --
    package Vsip1 is new Vsip (Base_Address => 16#8000#,
                               Vme_Position => Vme.Slot0,
                               Scim_0 => Defined_Type.Mod101,
                               Scim_1 => Defined_Type.No_Module,
                               Scim_2 => Defined_Type.No_Module,
                               Scim_3 => Defined_Type.No_Module);
    package Seven_Led_Display is new Vsip1.Mod101
                                        (Base_Address_Module => 16#600#);

    ----------------------------------------------
    -- Procedure to call to display a character --
    ----------------------------------------------
    procedure Put_Char (C : Char) is
        use Seven_Led_Display;
    begin
        Write_Group (Gp => Group0, Value => 16#FF#);
        Write_Group (Gp => Group0, Value => Character_Value (C));
    end Put_Char;

    --------------------------------------------------------------
    -- Procedure to call to wait for an user action on switches --
    --------------------------------------------------------------
    procedure Wait_Chgt is
        D0, D1, D2, Old_D0, Old_D1, Old_D2 : Boolean;
        I : Integer;
        use Seven_Led_Display;
    begin
        D0 := Read_Pin (13);
        D1 := Read_Pin (14);
        D2 := Read_Pin (15);
        Old_D0 := D0;
        Old_D1 := D1;
        Old_D2 := D2;
        Simple_Io.Put (" D0 -> ");
        Simple_Io.Put (Boolean'Image (D0));
        Simple_Io.Put (" : D1 -> ");
        Simple_Io.Put (Boolean'Image (D1));
        Simple_Io.Put (" : D2 -> ");
        Simple_Io.Put (Boolean'Image (D2));
        Simple_Io.Put_Line ("");
        while D0 = Old_D0 and D1 = Old_D1 loop
            D0 := Read_Pin (13);
            D1 := Read_Pin (14);
            D2 := Read_Pin (15);
        end loop;
    end Wait_Chgt;

begin
    -- Seven-led display alphabetic values
    -- "0" means the led is turned ON and "1" means it is turned OFF

    Character_Value ('A') := 2#10100000#;
    Character_Value ('B') := 2#10000110#;
    Character_Value ('C') := 2#11001100#;
    Character_Value ('D') := 2#10000011#;
    Character_Value ('E') := 2#11000100#;
    Character_Value ('F') := 2#11100100#;
    Character_Value ('G') := 2#10010000#;
    Character_Value ('H') := 2#10100110#;
    Character_Value ('I') := 2#10111011#;
    Character_Value ('J') := 2#10001011#;
    Character_Value ('K') := 2#11000110#;
    Character_Value ('L') := 2#11001110#;
    Character_Value ('M') := 2#10101000#;
    Character_Value ('N') := 2#10100111#;
    Character_Value ('O') := 2#10001000#;
    Character_Value ('P') := 2#11100000#;
    Character_Value ('Q') := 2#10110000#;
    Character_Value ('R') := 2#11100111#;
    Character_Value ('S') := 2#10010100#;
    Character_Value ('T') := 2#11100110#;
    Character_Value ('U') := 2#11110010#;
    Character_Value ('V') := 2#10001111#;
    Character_Value ('W') := 2#10001010#;
    Character_Value ('X') := 2#10100010#;
    Character_Value ('Y') := 2#10010010#;
    Character_Value ('Z') := 2#11000001#;

    -- Object setup

    Vsip1.Setup;
    Seven_Led_Display.Setup;
    Seven_Led_Display.Protection_Off;
end Character_Io;

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=1a rec1=00 rec2=01 rec3=068
        [0x01] rec0=1b rec1=00 rec2=04 rec3=03a
        [0x02] rec0=0d rec1=00 rec2=05 rec3=00c
        [0x03] rec0=1a rec1=00 rec2=03 rec3=010
        [0x04] rec0=03 rec1=00 rec2=02 rec3=000
    tail 0x2175959ce879c84a70c2e 0x42a00088462060003