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

⟦e0dc46a3d⟧ Ada Source

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

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 Device_Independent_Io;
with System;
with Terminal_Specific;
with Text_Io;
with Vers_Symbole;
with Terminal;
package body Tampon is

    package Dio renames Device_Independent_Io;
    package Ts renames Terminal_Specific;
    package Tio renames Text_Io;
    subtype Bs is System.Byte_String;

    F_Out : Ts.File_Type;
    F_In : Ts.File_Type;

    B : System.Byte;

    procedure Deplace_Curseur
                 (No : in Integer; X : in Tcoordonnees; Y : in Tcoordonnees) is
        S_Col : constant Character := Vers_Symbole.Convertit (X);
        S_Lin : constant Character := Vers_Symbole.Convertit (Y);
    begin
        Dio.Write (File => F_Out, Item => Ascii.Esc & '=' & S_Lin & S_Col);
        delay 0.1;

        --Mc68k.Ecrire (No, Ascii.Esc);
        --Mc68k.Ecrire (No, '=');
        --Mc68k.Ecrire (No, S_Lin);
        --Mc68k.Ecrire (No, S_Col);
    end Deplace_Curseur;


    procedure Clignote_Curseur (No : Integer) is
    begin
        Dio.Write (File => F_Out, Item => Ascii.Esc & 'G' & '2');
        delay 0.1;

        --Mc68k.Ecrire (No, Ascii.Esc);
        --Mc68k.Ecrire (No, 'G');
        --Mc68k.Ecrire (No, '2');
    end Clignote_Curseur;


    procedure Normal_Curseur (No : in Integer) is
    begin
        Dio.Write (File => F_Out, Item => Ascii.Esc & 'G' & '0');
        delay 0.1;

        --Mc68k.Ecrire (No, Ascii.Esc);
        --Mc68k.Ecrire (No, 'G');
        --Mc68k.Ecrire (No, '0');
    end Normal_Curseur;  
    procedure Affiche_Car (No : in Integer; C : in Character) is
    begin
        Dio.Write (File => F_Out, Item => C);
        delay 0.1;

        --Mc68k.Ecrire (No, C);
    end Affiche_Car;



    procedure Efface_Ecran (No : in Integer) is
    begin  
        Dio.Write (File => F_Out, Item => Ascii.Esc & ':');
        delay 0.1;

        --Mc68k.Ecrire (No, Ascii.Esc);
        --Mc68k.Ecrire (No, ':');
    end Efface_Ecran;


    procedure Init_Port (No : in Integer) is
    begin
        Dio.Open (File => F_Out,
                  Mode => Dio.Out_File,
                  Name => "!machine.devices.terminal_16",
                  Form => "");

        Dio.Open (File => F_In,
                  Mode => Dio.In_File,
                  Name => "!machine.devices.terminal_16",
                  Form => "");

        Dio.Write (File => F_Out, Item => Ascii.Esc & '.' & '0');
        delay 3.0;

        --Mc68k.Initialise (No);
        --Mc68k.Ecrire (No, Ascii.Esc);
        --Mc68k.Ecrire (No, '.');
        --Mc68k.Ecrire (No, '0');   --curseur invisible
        Efface_Ecran (No);
    end Init_Port;


    task body Envoi is
        No : Integer;
        X : Tcoordonnees;
        Y : Tcoordonnees;
        C : Character;
        B : Boolean;
    begin
        select
            accept Ecrire_Car (No_Rdv : in Integer;
                               X_Rdv : in Tcoordonnees;
                               Y_Rdv : in Tcoordonnees;
                               C_Rdv : in Character;
                               B_Rdv : in Boolean) do  
                No := No_Rdv;
                X := X_Rdv;
                Y := Y_Rdv;
                C := C_Rdv;
                B := B_Rdv;
            end Ecrire_Car;
        or
            terminate;
        end select;
        Deplace_Curseur (No, X, Y);
        if B then
            Clignote_Curseur (No);
        else
            Normal_Curseur (No);  
        end if;
        Affiche_Car (No, C);
    end Envoi;


end Tampon;

E3 Meta Data

    nblk1=5
    nid=3
    hdr6=8
        [0x00] rec0=24 rec1=00 rec2=01 rec3=008
        [0x01] rec0=25 rec1=00 rec2=05 rec3=000
        [0x02] rec0=22 rec1=00 rec2=02 rec3=06e
        [0x03] rec0=18 rec1=00 rec2=04 rec3=000
        [0x04] rec0=c0 rec1=00 rec2=00 rec3=100
    tail 0x21769d7c289297e8c3323 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 09 80 06 63 65 5f 45 63 72 06 6f 6e 3b  ┆      ce_Ecr on;┆