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

⟦c77a7a44c⟧ Ada Source

    Length: 45056 (0xb000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Rational_Access_Commands, seg_03bac6

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



-- This is a template for changing key bindings for the Facit terminal
-- Installing this procedure, with the desired case entries, will change the
-- actions caused by those keys for any sessions that are created with
-- visibility to this procedure.
with Debug;
with Editor;
with Common;
with Rational_Access_Key_Names;
with What;


procedure Rational_Access_Commands is
    use Rational_Access_Key_Names;

    type Intent is (Prompt, Execute, Interrupt);

    Action : Intent;

    Key_1 : Key_Names;
    Key_2 : Key_Names;
    Key_3 : Key_Names;
    Key_4 : Key_Names;
    Key_5 : Key_Names;
    Key_6 : Key_Names;

begin
    case Action is

        when Prompt =>
            case Key_1 is
                when others =>
                    null;
            end case;

        when Execute =>
            case Key_1 is
                when Insert =>
                    case Key_2 is
                        when Tab | 'E' | 'e' =>
                            Common.Object.Last_Child;
                        when '!' | '1' =>
                            Common.Expand;
                        when '+' | '=' =>
                            Common.Explain;
                        when '.' | '>' =>
                            Common.Elide;
                        when '/' | '?' =>
                            Common.Explain;
                        when 'A' | 'a' =>
                            Common.Object.First_Child;
                        when 'B' | 'b' =>
                            Common.Object.First_Child;
                        when 'C' | 'c' =>
                            Common.Object.Copy;
                        when 'D' | 'K' | 'd' | 'k' =>
                            Common.Object.Delete;
                        when 'G' | 'g' =>
                            Common.Abandon;
                        when 'H' | 'h' =>
                            Common.Object.Parent;
                        when 'I' | 'i' =>
                            Common.Object.Insert;
                        when 'J' | 'j' =>
                            Common.Object.Child;
                        when 'M' | 'm' =>
                            Common.Object.Move;
                        when 'N' | 'n' =>
                            Common.Object.Next;
                        when 'R' | 'r' =>
                            Common.Redo;
                        when 'S' | 's' =>
                            Common.Sort_Image;
                        when 'U' | 'u' =>
                            Common.Undo;
                        when 'V' | 'v' =>
                            Common.Redo;
                        when 'X' | 'x' =>
                            Common.Release;
                        when Delete | Carriage_Return =>
                            Common.Commit;
                        when Up =>
                            Common.Object.Previous;
                        when Down =>
                            Common.Object.Next;
                        when Left =>
                            Common.Object.Parent;
                        when Right =>
                            Common.Object.Child;
                        when F7 =>
                            Common.Definition (Name => "<CURSOR>",
                                               In_Place => False,
                                               Visible => False);
                        when others =>
                            null;
                    end case;
                when Begin_Of =>
                    case Key_2 is
                        when Tab | 'E' | 'e' =>
                            Editor.Region.End_Of;
                        when '"' | ''' | '6' | '^' =>
                            Editor.Region.Capitalize;
                        when '(' | '9' | '[' | '{' =>
                            Editor.Region.Start;
                        when ')' | '0' | ']' | '}' =>
                            Editor.Region.Finish;
                        when '+' | '=' =>
                            Editor.Region.Uncomment;
                        when ',' | '<' =>
                            Editor.Region.Lower_Case;
                        when '-' | '_' =>
                            Editor.Region.Comment;
                        when '.' | '>' =>
                            Editor.Region.Upper_Case;
                        when 'A' | 'a' =>
                            Editor.Region.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Region.Beginning_Of;
                        when 'C' | 'c' =>
                            Editor.Region.Copy;
                        when 'D' | 'K' | 'd' | 'k' =>
                            Editor.Region.Delete;
                        when 'F' | 'f' =>
                            Editor.Region.Fill;
                        when 'H' | 'h' =>
                            Editor.Hold_Stack.Previous;
                        when 'J' | 'j' =>
                            Editor.Hold_Stack.Next;
                        when 'M' | 'm' =>
                            Editor.Region.Move;
                        when 'N' | 'n' =>
                            Editor.Hold_Stack.Push;
                        when 'P' | 'p' =>
                            Editor.Hold_Stack.Copy_Top;
                        when 'Q' | 'q' =>
                            Editor.Region.Justify;
                        when 'R' | 'r' =>
                            Editor.Hold_Stack.Rotate;
                        when 'T' | 't' =>
                            Editor.Hold_Stack.Swap;
                        when 'U' | 'u' =>
                            Editor.Hold_Stack.Top;
                        when 'X' | 'x' =>
                            Editor.Region.Off;
                        when '`' | '~' =>
                            Editor.Region.Capitalize;
                        when Delete =>
                            Editor.Hold_Stack.Delete_Top;
                        when Page_Down =>
                            Editor.Region.Fill;
                        when Up =>
                            Editor.Hold_Stack.Top;
                        when Down =>
                            Editor.Hold_Stack.Push;
                        when Left =>
                            Editor.Hold_Stack.Previous;
                        when Right =>
                            Editor.Hold_Stack.Next;
                        when others =>
                            null;
                    end case;
                when Page_Up =>
                    case Key_2 is
                        when Tab | 'E' | 'e' =>
                            Editor.Window.End_Of;
                        when '!' | '1' =>
                            Editor.Window.Expand;
                        when '#' | '3' =>
                            Editor.Window.Frames (3);
                        when '$' | '4' =>
                            Editor.Window.Frames (4);
                        when '%' | '5' =>
                            Editor.Window.Frames (5);
                        when '&' | '7' =>
                            Editor.Window.Frames (7);
                        when '+' | '=' | F4 =>
                            Editor.Window.Directory;
                        when '.' | '>' =>
                            Editor.Window.Expand (-4);
                        when '/' | '?' =>
                            Editor.Window.Directory;
                        when '2' | '@' =>
                            Editor.Window.Frames (2);
                        when '6' | '^' =>
                            Editor.Window.Frames (6);
                        when 'A' | 'a' =>
                            Editor.Window.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Window.Beginning_Of;
                        when 'C' | 'c' =>
                            Editor.Window.Copy;
                        when 'D' | 'K' | 'W' | 'X' | 'd' | 'k' | 'w' | 'x' =>
                            Editor.Window.Delete;
                        when 'F' | 'f' =>
                            Editor.Window.Focus;
                        when 'H' | 'h' =>
                            Common.Enclosing (In_Place => False,
                                              Library => False);
                        when 'J' | 'j' =>
                            Editor.Window.Join (1);
                        when 'M' | 'Z' | 'm' | 'z' | Delete | Carriage_Return =>
                            Editor.Window.Promote;
                        when 'N' | 'n' =>
                            Editor.Window.Next;
                        when 'O' | 'o' =>
                            Editor.Window.Join (1);
                        when 'T' | 't' =>
                            Editor.Window.Transpose;
                        when 'U' | 'u' =>
                            Editor.Window.Previous;
                        when 'V' | 'v' =>
                            Editor.Window.Child;
                        when 'Y' | 'y' =>
                            Editor.Window.Demote;
                        when Page_Down =>
                            Editor.Window.Focus;
                        when Up =>
                            Editor.Window.Previous;
                        when Down =>
                            Editor.Window.Next;
                        when Left =>
                            Editor.Window.Parent;
                        when Right =>
                            Editor.Window.Child;
                        when others =>
                            null;
                    end case;
                when Delete =>
                    Common.Promote;
                when End_Key =>
                    Common.Complete;
                when Page_Down =>
                    Common.Format;
                when Up =>
                    Editor.Cursor.Up;
                when Down =>
                    Editor.Cursor.Down;
                when Left =>
                    Editor.Cursor.Left;
                when Right =>
                    Editor.Cursor.Right;
                when Kp_Add =>
                    case Key_2 is
                        when Tab | 'E' | 'e' =>
                            Editor.Image.End_Of;
                        when '!' | '1' =>
                            Debug.Source ("_1");
                        when '#' | '3' =>
                            Debug.Source ("_3");
                        when '$' | '4' =>
                            Debug.Source ("_4");
                        when '%' | '5' =>
                            Debug.Source ("_5");
                        when '&' | '7' =>
                            Debug.Source ("_7");
                        when '(' | '9' =>
                            Debug.Source ("_9");
                        when ')' | '0' =>
                            Debug.Source ("_10");
                        when '*' | '8' =>
                            Debug.Source ("_8");
                        when '2' | '@' =>
                            Debug.Source ("_2");
                        when '6' | '^' =>
                            Debug.Source ("_6");
                        when 'A' | 'a' =>
                            Editor.Image.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Image.Beginning_Of;
                        when 'F' | 'f' =>
                            Editor.Set.Fill_Mode (True);
                        when 'H' | 'h' =>
                            Editor.Image.Left;
                        when 'I' | 'i' =>
                            Editor.Set.Insert_Mode (True);
                        when 'J' | 'j' =>
                            Editor.Image.Right;
                        when 'N' | 'n' =>
                            Editor.Image.Down;
                        when 'O' | 'o' =>
                            Editor.Set.Insert_Mode (False);
                        when 'U' | 'u' =>
                            Editor.Image.Up;
                        when 'X' | 'x' =>
                            Editor.Set.Fill_Mode (False);
                        when Up =>
                            Editor.Image.Up;
                        when Down =>
                            Editor.Image.Down;
                        when Left =>
                            Editor.Image.Left;
                        when Right =>
                            Editor.Image.Right;
                        when others =>
                            null;
                    end case;
                when Kp_Divide =>
                    case Key_2 is
                        when Tab | 'E' | 'e' =>
                            Editor.Line.End_Of;
                        when '$' | '4' =>
                            Editor.Line.Center;
                        when '+' | '=' =>
                            What.Line;
                        when ',' | '<' =>
                            Editor.Line.Lower_Case;
                        when '.' | '>' =>
                            Editor.Line.Upper_Case;
                        when '/' | '?' =>
                            What.Line;
                        when '6' | '^' =>
                            Editor.Line.Capitalize;
                        when 'A' | 'a' =>
                            Editor.Line.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Line.Beginning_Of;
                        when 'C' | 'c' =>
                            Editor.Line.Copy;
                        when 'D' | 'd' =>
                            Editor.Line.Delete;
                        when 'I' | 'i' =>
                            Editor.Line.Insert (1);
                        when 'J' | 'j' =>
                            Editor.Line.Join;
                        when 'K' | 'k' =>
                            Editor.Line.Delete_Forward;
                        when 'O' | 'o' =>
                            Editor.Line.Open;
                        when 'T' | 't' =>
                            Editor.Line.Transpose;
                        when '`' | '~' =>
                            Editor.Line.Capitalize;
                        when Delete =>
                            Editor.Line.Delete_Backward;
                        when Up =>
                            Editor.Cursor.Up;
                        when Down =>
                            Editor.Cursor.Down;
                        when others =>
                            null;
                    end case;
                when C_Kp_Multiply =>
                    case Key_2 is
                        when Tab | 'E' | 'e' =>
                            Editor.Word.End_Of;
                        when ',' | '<' =>
                            Editor.Word.Lower_Case;
                        when '.' | '>' =>
                            Editor.Word.Upper_Case;
                        when '6' | '^' =>
                            Editor.Word.Capitalize;
                        when 'A' | 'a' =>
                            Editor.Word.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Word.Beginning_Of;
                        when 'D' | 'd' =>
                            Editor.Word.Delete;
                        when 'K' | 'k' =>
                            Editor.Word.Delete_Forward;
                        when 'T' | 't' =>
                            Editor.Word.Transpose;
                        when '`' | '~' =>
                            Editor.Word.Capitalize;
                        when Delete =>
                            Editor.Word.Delete_Backward;
                        when Left =>
                            Editor.Word.Previous;
                        when Right =>
                            Editor.Word.Next;
                        when others =>
                            null;
                    end case;
                when Kp_Subtract =>
                    case Key_2 is
                        when Tab | ')' | '0' | 'E' | ']' | 'e' | '}' =>
                            Editor.Macro.Finish;
                        when '(' | '9' | 'A' | '[' | 'a' | '{' =>
                            Editor.Macro.Start;
                        when 'B' | 'b' =>
                            Editor.Macro.Start;
                        when 'F' | 'f' =>
                            Editor.Macro.Bind;
                        when 'H' | 'h' =>
                            Editor.Mark.Previous;
                        when 'J' | 'j' =>
                            Editor.Mark.Next;
                        when 'M' | 'X' | 'm' | 'x' | Carriage_Return =>
                            Editor.Macro.Execute;
                        when 'N' | 'n' =>
                            Editor.Mark.Push;
                        when 'P' | 'p' =>
                            Editor.Mark.Copy_Top;
                        when 'R' | 'r' =>
                            Editor.Mark.Rotate;
                        when 'T' | 't' =>
                            Editor.Mark.Swap;
                        when 'U' | 'u' =>
                            Editor.Mark.Top;
                        when Delete =>
                            Editor.Mark.Delete_Top;
                        when Up =>
                            Editor.Mark.Top;
                        when Down =>
                            Editor.Mark.Push;
                        when Left =>
                            Editor.Mark.Previous;
                        when Right =>
                            Editor.Mark.Next;
                        when F4 =>
                            Editor.Macro.Bind;
                        when others =>
                            null;
                    end case;
                when F12 =>
                    What.Time;
                when others =>
                    null;
            end case;



        when Interrupt =>
            case Key_1 is  

                when others =>
                    null;
            end case;

    end case;

end Rational_Access_Commands;

E3 Meta Data

    nblk1=2b
    nid=17
    hdr6=2a
        [0x00] rec0=28 rec1=00 rec2=01 rec3=05e
        [0x01] rec0=01 rec1=00 rec2=0a rec3=032
        [0x02] rec0=15 rec1=00 rec2=1e rec3=04e
        [0x03] rec0=00 rec1=00 rec2=1a rec3=004
        [0x04] rec0=17 rec1=00 rec2=19 rec3=008
        [0x05] rec0=14 rec1=00 rec2=02 rec3=05c
        [0x06] rec0=15 rec1=00 rec2=18 rec3=01e
        [0x07] rec0=14 rec1=00 rec2=21 rec3=06a
        [0x08] rec0=17 rec1=00 rec2=16 rec3=036
        [0x09] rec0=14 rec1=00 rec2=15 rec3=04a
        [0x0a] rec0=13 rec1=00 rec2=14 rec3=036
        [0x0b] rec0=15 rec1=00 rec2=13 rec3=00a
        [0x0c] rec0=18 rec1=00 rec2=20 rec3=060
        [0x0d] rec0=13 rec1=00 rec2=12 rec3=038
        [0x0e] rec0=16 rec1=00 rec2=11 rec3=012
        [0x0f] rec0=16 rec1=00 rec2=1f rec3=042
        [0x10] rec0=16 rec1=00 rec2=10 rec3=00a
        [0x11] rec0=15 rec1=00 rec2=0f rec3=06e
        [0x12] rec0=16 rec1=00 rec2=0e rec3=02e
        [0x13] rec0=15 rec1=00 rec2=0c rec3=048
        [0x14] rec0=1e rec1=00 rec2=0b rec3=000
        [0x15] rec0=13 rec1=00 rec2=0a rec3=000
        [0x16] rec0=80 rec1=80 rec2=80 rec3=404
        [0x17] rec0=04 rec1=04 rec2=04 rec3=020
        [0x18] rec0=20 rec1=20 rec2=20 rec3=101
        [0x19] rec0=01 rec1=01 rec2=01 rec3=008
        [0x1a] rec0=08 rec1=08 rec2=08 rec3=040
        [0x1b] rec0=40 rec1=40 rec2=40 rec3=202
        [0x1c] rec0=02 rec1=02 rec2=02 rec3=010
        [0x1d] rec0=10 rec1=10 rec2=10 rec3=080
        [0x1e] rec0=80 rec1=80 rec2=80 rec3=404
        [0x1f] rec0=04 rec1=04 rec2=04 rec3=020
        [0x20] rec0=20 rec1=20 rec2=20 rec3=101
        [0x21] rec0=01 rec1=01 rec2=01 rec3=008
        [0x22] rec0=08 rec1=08 rec2=08 rec3=040
        [0x23] rec0=40 rec1=40 rec2=40 rec3=202
        [0x24] rec0=02 rec1=02 rec2=02 rec3=010
        [0x25] rec0=10 rec1=10 rec2=10 rec3=080
        [0x26] rec0=80 rec1=80 rec2=80 rec3=404
        [0x27] rec0=04 rec1=04 rec2=04 rec3=020
        [0x28] rec0=20 rec1=20 rec2=20 rec3=101
        [0x29] rec0=01 rec1=01 rec2=01 rec3=008
        [0x2a] rec0=08 rec1=08 rec2=08 rec3=040
    tail 0x2173916da853b6d251990 0x42a00088462060003
Free Block Chain:
  0x17: 0000  00 0d 00 04 80 01 6f 01 02 03 04 05 06 07 08 09  ┆      o         ┆
  0xd: 0000  00 09 00 41 00 0b 2d 2d 2f 20 65 6e 64 20 69 66  ┆   A  --/ end if┆
  0x9: 0000  00 08 03 fc 80 21 20 20 20 20 20 20 20 20 20 20  ┆     !          ┆
  0x8: 0000  00 07 03 fc 80 0c 27 46 27 20 7c 20 27 66 27 20  ┆      'F' | 'f' ┆
  0x7: 0000  00 04 03 fc 80 0d 20 27 5b 27 20 7c 20 27 7b 27  ┆       '[' | '{'┆
  0x4: 0000  00 06 00 05 80 02 20 7c 02 20 20 20 20 20 20 20  ┆       |        ┆
  0x6: 0000  00 05 03 fc 80 10 20 20 20 20 20 20 77 68 65 6e  ┆            when┆
  0x5: 0000  00 03 03 fc 80 1b 20 20 20 20 20 20 20 20 20 20  ┆                ┆
  0x3: 0000  00 1d 03 fc 00 20 20 20 20 20 20 20 20 20 20 20  ┆                ┆
  0x1d: 0000  00 1c 00 1f 80 1c 20 20 20 20 20 20 20 20 20 20  ┆                ┆
  0x1c: 0000  00 1b 00 27 80 0f 68 65 6e 20 45 73 63 5f 54 69  ┆   '  hen Esc_Ti┆
  0x1b: 0000  00 2b 00 3e 80 02 64 3b 02 00 25 20 20 20 20 20  ┆ + >  d;  %     ┆
  0x2b: 0000  00 2a 00 3f 80 03 73 65 3b 03 00 00 00 00 0d 20  ┆ * ?  se;       ┆
  0x2a: 0000  00 29 03 fc 80 13 20 20 20 77 68 65 6e 20 45 73  ┆ )       when Es┆
  0x29: 0000  00 28 00 18 80 05 45 3e 22 29 3b 05 00 0d 20 20  ┆ (    E>");     ┆
  0x28: 0000  00 27 00 27 80 24 28 49 6e 5f 50 6c 61 63 65 20  ┆ ' ' $(In_Place ┆
  0x27: 0000  00 26 00 05 80 02 41 43 02 5f 31 20 3d 3e 08 00  ┆ &    AC _1 =>  ┆
  0x26: 0000  00 25 00 06 80 03 65 20 3d 03 2c 05 00 33 20 20  ┆ %    e = ,  3  ┆
  0x25: 0000  00 24 00 08 00 05 20 20 20 20 20 05 20 3d 3e 09  ┆ $           => ┆
  0x24: 0000  00 23 00 1a 80 17 20 20 20 20 20 20 20 20 20 20  ┆ #              ┆
  0x23: 0000  00 22 00 08 80 05 2e 53 65 61 72 05 5f 53 5f 53  ┆ "    .Sear _S_S┆
  0x22: 0000  00 00 00 13 80 10 20 20 20 20 20 77 68 65 6e 20  ┆           when ┆