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

⟦7d9022a75⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Local_Io_Conf, package body Serial_Support, seg_057e4f

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 Unchecked_Conversion;
package body Local_Io_Conf is

    package Serial_Support is
        procedure Init;
        procedure Put (B : General_Defs.Byte);
        procedure Get (B : out General_Defs.Byte; Got_Byte : out Boolean);  
    end Serial_Support;

    package body Serial_Support is
        procedure Init is
        begin
            C_Driver_Serie.Interface_Serie.Initialiser
               (General_Defs.Port_A, General_Defs.Bd9600,
                General_Defs.None, 8, 1);
            C_Driver_Serie.Interface_Serie.Serie.Emission_Reception
               (Port_Serie => General_Defs.Port_A,
                Mode => C_Driver_Serie.Interface_Serie.Serie.R);
            C_Driver_Serie.Interface_Serie.Serie.Pos_Interruption
               (C_Driver_Serie.Interface_Serie.Serie.R);
        end Init;

        procedure Put (B : General_Defs.Byte) is
            Trame1 : General_Defs.Byte_String (1 .. 1);
        begin  
            Trame1 (1) := B;
            C_Driver_Serie.Tache_Driver_Serie.Ecriture_Trame
               (Trame1, General_Defs.Port_A);
        end Put;

        procedure Get (B : out General_Defs.Byte; Got_Byte : out Boolean) is
            Taille : Integer;
            Trame1 : General_Defs.Byte_String (1 .. 1);
            Port : General_Defs.Port := General_Defs.Port_A;
        begin
            C_Driver_Serie.Tache_Driver_Serie.Lecture_Trame
               (Trame1, Taille, Port);
        end Get;

    end Serial_Support;


    procedure Initialize (Device : Local_Device_Handle) is
    begin
        if Device = Dev0 then
            Serial_Support.Init;
            -- else
            --   raise Use_Error;
        end if;
    end Initialize;


    procedure Shutdown (Device : Local_Device_Handle) is
    begin
        null;
    end Shutdown;


    procedure Write_Char (Char : General_Defs.Byte) is
    begin
        Serial_Support.Put (Char);
        if General_Defs.Egaux
              (General_Defs.Byte (Character'Pos (Ascii.Lf)), Char) then
            Serial_Support.Put (Character'Pos (Ascii.Cr));
        end if;
    end Write_Char;


    procedure Read (Device : Local_Device_Handle;
                    Addr : System.Address;
                    Count : in out Natural) is
        Taille : Integer;
        Trame1 : General_Defs.Byte_String (1 .. 1024);
        Port : General_Defs.Port := General_Defs.Port_A;
    begin
        C_Driver_Serie.Tache_Driver_Serie.Lecture_Trame (Trame1, Taille, Port);  
    end Read;


    procedure Write (Device : Local_Device_Handle;
                     Addr : System.Address;
                     Count : in out Natural) is  
        Trame1 : General_Defs.Byte_String (1 .. 1024);
        Port : General_Defs.Port := General_Defs.Port_A;
    begin  
        C_Driver_Serie.Tache_Driver_Serie.Ecriture_Trame
           (Trame1, General_Defs.Port_A);  
    end Write;
end Local_Io_Conf;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=1b rec1=00 rec2=01 rec3=034
        [0x01] rec0=24 rec1=00 rec2=04 rec3=016
        [0x02] rec0=1b rec1=00 rec2=02 rec3=008
        [0x03] rec0=01 rec1=00 rec2=03 rec3=000
    tail 0x217652ef887d482c5eed7 0x42a00088462060003