DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦3e9bd0d71⟧ TextFile

    Length: 113795 (0x1bc83)
    Types: TextFile
    Names: »B«

Derivation

└─⟦6c4f54b10⟧ Bits:30000747 8mm tape, Rational 1000, ACCESS 0_8_0 INTERNAL RELEASE
    └─ ⟦5d1d5404f⟧ »DATA« 
        └─⟦bc378d74e⟧ 
            └─⟦this⟧ 

TextFile

-- Rational_Access universal keymap
-- Keymap Version 0_8_0 08/19/92
--
-- Do not move these comments.

with Access_List;
with Activity;
with Ada;
with Cmvc;
with Command;
with Common;
with Compilation;
with Debug;
with Design_Implementation;
with Editor;
with Io;
with Job;
with Library;
with Mail;
with Menu_Operations;
with Operator;
with Queue;
with Speller;
with System_Utilities;
with Text;
with What;

with Rational_Access_Key_Names;
procedure Rational_Access_Commands is
    use Rational_Access_Key_Names;

    type Intent is (Interrupt, Prompt, Execute);

    Action : Intent;

    Key1, Key2, Key3, Key4, Key5, Key6 : Key_Names;

begin

    case Action is

        when Interrupt =>

            case Key1 is
                when C_G | Cs_G =>
                    Job.Interrupt;
                when M_G | Ms_G =>
                    Job.Kill (0);
                when others =>
                    null;
            end case;

        when Prompt =>

            case Key1 is
                when M_H | Ms_H =>
                    case Key2 is
                        when 'c' | 'C' =>
                            What.Does (Name => "");
                        when others =>
                            null;
                    end case;
                when M_O | Ms_O =>
                    case Key2 is  
                        when 'f' | 'F' =>
                            Editor.Image.Find (Name => "");
                        when others =>
                            null;
                    end case;
                when F1 | Help =>
                    What.Does (Name => "");
                when others =>
                    null;
            end case;

        when Execute =>

            case Key1 is
                when S_F1 | S_Help =>
                    Editor.Key.Prompt (Key_Code => "");
                when F2 =>
                    Menu_Operations.File.Open;
                when S_F2 =>
                    Common.Edit;
                    -- Menu_Operations.Compile.Demote;
                when F3 =>
                    Common.Explain;
                when S_F3 =>
                    Common.Clear_Underlining;
                when F4 =>
                    Menu_Operations.Cm.Check_Out;
                when S_F4 =>
                    Menu_Operations.Cm.Check_In;
                when F5 =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => False, Visible => True);
                when S_F5 =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => True, Visible => True);
                when F6 =>
                    Common.Create_Command;
                when S_F6 =>
                    Common.Complete;
                when F7 =>
                    Common.Enclosing (In_Place => False, Library => False);
                when S_F7 =>
                    Common.Enclosing (In_Place => True, Library => False);
                when F8 =>
                    Menu_Operations.Compile.Promote;
                when S_F8 =>
                    Menu_Operations.Compile.Demote;
                when F9 =>
                    Common.Format;
                when S_F9 =>
                    Common.Semanticize;
                    --when F10 =>
                    --    Reserved for Motif Menu bar
                when S_F10 =>
                    What.Home_Library;
                when F11 =>
                    Menu_Operations.File.New_File;  
                when S_F11 =>
                    Common.Object.Insert;
                when F12 =>
                    Editor.Cursor.Next (Prompt => True, Underline => True);  
                when S_F12 =>
                    Editor.Cursor.Previous (Prompt => True, Underline => True);


-- Item/Operation keys for compatibility with the old way
                when Object | C_Help => -- C_Help is alternative to C_F1
                    case Key2 is
                        when '!' | '1' =>
                            Common.Expand;
                        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 'E' | 'e' =>
                            Common.Object.Last_Child;
                        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 Tab =>
                            Editor.Char.Tab_To_Comment;
                        when Carriage_Return | S_Carriage_Return =>
                            Common.Commit;
                        when Up | S_Up =>
                            Common.Object.Previous;
                        when Down | S_Down =>
                            Common.Object.Next;
                        when Left | S_Left =>
                            Common.Object.Parent;
                        when Right | S_Right =>
                            Common.Object.Child;
                        when others =>
                            null;
                    end case;

                when Region =>
                    case Key2 is
                        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' | Begin_Of =>
                            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 'E' | 'e' | End_Key =>
                            Editor.Region.End_Of;
                        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 Delete | S_Delete =>
                            Editor.Hold_Stack.Delete_Top;
                        when Up | S_Up =>
                            Editor.Hold_Stack.Top;
                        when Down | S_Down =>
                            Editor.Hold_Stack.Push;
                        when Left | S_Left =>
                            Editor.Hold_Stack.Previous;
                        when Right | S_Right =>
                            Editor.Hold_Stack.Next;
                        when others =>
                            null;
                    end case;

                when Window =>
                    case Key2 is
                        when '!' | '1' =>
                            Editor.Window.Expand;
                        when '.' | '>' =>
                            Editor.Window.Expand (-4);
                        when '/' | '?' =>
                            Editor.Window.Directory;
                        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 'E' | 'e' =>
                            Editor.Window.End_Of;
                        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' |
                             Carriage_Return | S_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 Delete | S_Delete =>
                            Editor.Window.Join (-1);
                        when Up | S_Up =>
                            Editor.Window.Previous;
                        when Down | S_Down =>
                            Editor.Window.Next;
                        when Left | S_Left =>
                            Editor.Window.Parent;
                        when Right | S_Right =>
                            Editor.Window.Child;
                        when others =>
                            null;
                    end case;

                when Image =>
                    case Key2 is
                        when 'A' | 'a' | Begin_Of =>
                            Editor.Image.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Image.Beginning_Of;
                        when 'E' | 'e' =>
                            Editor.Image.End_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 | S_Up =>
                            Editor.Image.Up;
                        when Down | S_Down =>
                            Editor.Image.Down;
                        when Left | S_Left =>
                            Editor.Image.Left;
                        when Right | S_Right =>
                            Editor.Image.Right;
                        when others =>
                            null;
                    end case;

                when Line =>
                    case Key2 is
                        when '$' | '4' =>
                            Editor.Line.Center;
                        when ',' | '<' =>
                            Editor.Line.Lower_Case;
                        when '.' | '>' =>
                            Editor.Line.Upper_Case;
                        when '/' | '?' =>
                            What.Line;
                        when '6' | '^' =>
                            Editor.Line.Capitalize;
                        when 'A' | 'a' | Begin_Of =>
                            Editor.Line.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Line.Beginning_Of;
                        when 'C' | 'c' =>
                            Editor.Line.Copy;
                        when 'D' | 'd' =>
                            Editor.Line.Delete;
                        when 'E' | 'e' | End_Key =>
                            Editor.Line.End_Of;
                        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 Delete | S_Delete =>
                            Editor.Line.Delete_Forward;
                        when others =>
                            null;
                    end case;

                when Word =>
                    case Key2 is
                        when ',' | '<' =>
                            Editor.Word.Lower_Case;
                        when '.' | '>' =>
                            Editor.Word.Upper_Case;
                        when '/' | '?' =>
                            Speller.Check_Text (Data => "<TEXT>");
                        when '6' | '^' =>
                            Editor.Word.Capitalize;
                        when 'A' | 'a' | Begin_Of =>
                            Editor.Word.Beginning_Of;
                        when 'B' | 'b' =>
                            Editor.Word.Beginning_Of;
                        when 'D' | 'd' =>
                            Editor.Word.Delete;
                        when 'E' | 'e' =>
                            Editor.Word.End_Of;
                        when 'I' | 'i' =>
                            Speller.Learn_Word
                               (The_Word => "", Dictionary => 0);
                        when 'J' | 'j' =>
                            Editor.Word.Next;
                        when 'K' | 'k' =>
                            Editor.Word.Delete_Forward;
                        when 'M' | 'm' =>
                            Speller.Check_Image;
                        when 'N' | 'n' =>
                            Speller.Explain_Next;
                        when 'R' | 'r' =>
                            Speller.Learn_Replacement
                               (The_Word => "", Choice => 1, Dictionary => 0);
                        when 'T' | 't' =>
                            Editor.Word.Transpose;
                        when 'W' =>
                            Speller.Speller_Window (In_Place => True);
                        when 'X' | 'x' =>
                            Speller.Exchange_Word (Choice => 1);
                        when 'w' =>
                            Speller.Speller_Window (In_Place => False);
                        when Delete | S_Delete =>
                            Editor.Word.Delete_Forward;
                        when C_0 =>
                            Speller.Exchange_Word (Choice => 10);
                        when C_1 =>
                            Speller.Exchange_Word (Choice => 1);
                        when C_2 =>
                            Speller.Exchange_Word (Choice => 2);
                        when C_3 =>
                            Speller.Exchange_Word (Choice => 3);
                        when C_4 =>
                            Speller.Exchange_Word (Choice => 4);
                        when C_5 =>
                            Speller.Exchange_Word (Choice => 5);
                        when C_6 =>
                            Speller.Exchange_Word (Choice => 6);
                        when C_7 =>
                            Speller.Exchange_Word (Choice => 7);
                        when C_8 =>
                            Speller.Exchange_Word (Choice => 8);
                        when C_9 =>
                            Speller.Exchange_Word (Choice => 9);
                        when Down | S_Down =>
                            Speller.Explain_Next;
                        when Left | S_Left =>
                            Editor.Word.Previous;
                        when Right | S_Right =>
                            Editor.Word.Next;
                        when C_W | Cs_W =>
                            Speller.Speller_Window (In_Place => False);
                        when others =>
                            null;
                    end case;

                when Mark =>
                    case Key2 is
                        when '(' | '9' | 'A' | '[' | 'a' | '{' | Begin_Of =>
                            Editor.Macro.Start;
                        when ')' | '0' | 'E' | ']' | 'e' | '}' | End_Key =>
                            Editor.Macro.Finish;
                        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 | S_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 | S_Delete | Backspace | S_Backspace =>
                            Editor.Mark.Delete_Top;
                        when Up | S_Up =>
                            Editor.Mark.Top;
                        when Down | S_Down =>
                            Editor.Mark.Push;
                        when Left | S_Left =>
                            Editor.Mark.Previous;
                        when Right | S_Right =>
                            Editor.Mark.Next;
                        when others =>
                            null;
                    end case;

--  misc characters.
                when ' ' | S_Space =>
                    Editor.Char.Insert_Character (1, ' ');
                when C_0 =>
                    Editor.Set.Argument_Digit (0);
                when C_1 =>
                    Editor.Set.Argument_Digit (1);
                when C_2 =>
                    Editor.Set.Argument_Digit (2);
                when C_3 =>
                    Editor.Set.Argument_Digit (3);
                when C_4 =>
                    Editor.Set.Argument_Digit (4);
                when C_5 =>
                    Editor.Set.Argument_Digit (5);
                when C_6 =>
                    Editor.Set.Argument_Digit (6);
                when C_7 =>
                    Editor.Set.Argument_Digit (7);
                when C_8 =>
                    Editor.Set.Argument_Digit (8);
                when C_9 =>
                    Editor.Set.Argument_Digit (9);
                when C_Minus | C_Underline =>
                    Editor.Set.Argument_Minus;
                when Cm_Minus | Cm_Underline =>
                    Editor.Cursor.Previous (Prompt => True, Underline => True);

                    --when Numeric_Comma | S_Numeric_Comma =>
                    --    Editor.Set.Argument_Prefix;

                when Carriage_Return | S_Carriage_Return =>
                    Editor.Line.Indent;
                when C_Carriage_Return =>
                    Common.Commit;
                when M_Carriage_Return =>
                    Command.Debug;
                when Up =>
                    Editor.Cursor.Up;
                when S_Up =>
                    Editor.Image.Up;
                when C_Up =>
                    Common.Object.Previous;
                when M_Up =>
                    Editor.Cursor.Previous (Prompt => True, Underline => True);
                when Cm_Up =>
                    Editor.Window.Previous;
                when Down =>
                    Editor.Cursor.Down;
                when S_Down =>
                    Editor.Image.Down;
                when C_Down =>
                    Common.Object.Next;
                when M_Down =>
                    Editor.Cursor.Next (Prompt => True, Underline => True);
                when Cm_Down =>
                    Editor.Window.Next;
                when Left =>
                    Editor.Cursor.Left;
                when S_Left =>
                    Editor.Image.Left;
                when C_Left =>
                    Common.Object.Parent;
                when M_Left =>
                    Editor.Word.Previous;
                when Cm_Left =>
                    Common.Enclosing (In_Place => True, Library => False);
                when Right =>
                    Editor.Cursor.Right;
                when S_Right =>
                    Editor.Image.Right;
                when C_Right =>
                    Common.Object.Child;
                when M_Right =>
                    Editor.Word.Next;
                when Cm_Right =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => True, Visible => False);
                when Tab | S_Tab =>
                    Editor.Char.Tab_Forward;
                    -- when M_Tab =>   -- Motif defined
                    --Editor.Char.Tab_To_Comment;
                when Cm_Tab =>
                    What.Tabs;
                when Begin_Of =>
                    Editor.Line.Beginning_Of;
                when S_Begin_Of =>
                    Editor.Image.Beginning_Of;
                when C_Begin_Of =>
                    -- what line info
                    Menu_Operations.Dispatch (26);
                when Cm_Begin_Of =>
                    Editor.Window.Beginning_Of;
                when End_Key =>
                    Editor.Line.End_Of;
                when S_End_Key =>
                    Editor.Image.End_Of;
                when C_End_Key =>
                    Text.End_Of_Input;
                when Cm_End_Key =>
                    Editor.Window.End_Of;
                when Page_Down =>
                    Editor.Image.Down;
                when S_Page_Down =>
                    Editor.Image.End_Of;
                when Page_Up =>
                    Editor.Image.Up;
                when S_Page_Up =>
                    Editor.Image.Beginning_Of;
                when Delete =>
                    -- Editor.Char.Delete_Forward;
                    Editor.Char.Delete_Backward;
                when Backspace =>  
                    Editor.Char.Delete_Backward;
                when S_Delete | S_Backspace =>
                    Editor.Region.Delete;
                    -- when C_Delete =>
                    --     Editor.Line.Delete_Backward (Repeat => 1);
                when C_Backspace | C_Delete =>
                    Editor.Line.Delete_Forward (Repeat => 1);
                    -- when M_Delete =>
                    --     Editor.Word.Delete_Forward;
                when M_Backspace | M_Delete =>
                    Editor.Word.Delete_Backward;
                when Cm_Delete | Cm_Backspace =>
                    Editor.Char.Delete_Spaces;

                    -- Non-Alpha
                    -- when C_Less_Than | C_Comma =>
                    -- Editor.Word.Lower_Case;
                when M_Less_Than | M_Comma =>
                    Editor.Word.Lower_Case;
                when Cm_Less_Than | Cm_Comma =>
                    Common.Undo;
                when C_Greater_Than | C_Period =>
                    Editor.Window.Expand (Lines => -4);
                    -- &&
                    -- Editor.Word.Upper_Case;
                when M_Greater_Than | M_Period =>
                    Editor.Word.Upper_Case;
                when Cm_Greater_Than | Cm_Period =>
                    Common.Redo;
                when C_Left_Bracket =>
                    Editor.Region.Start;
                when M_Left_Bracket =>
                    Editor.Macro.Start;
                when C_Right_Bracket =>
                    Editor.Region.Finish;
                when M_Right_Bracket =>
                    Editor.Macro.Finish;
                when M_Exclam | M_1 =>
                    Common.Expand;
                when C_Colon | C_Semicolon =>
                    Editor.Char.Insert_String (Value => ":=");
                when C_Exclam =>
                    Editor.Window.Expand (Lines => 4);
                when C_At_Sign =>
                    Editor.Mark.Push;
                when C_Circumflex =>
                    Editor.Word.Capitalize;
                when C_Left_Paren =>
                    Editor.Char.Insert_String (Value => "(" & Ascii.Quotation);
                when C_Right_Paren =>
                    Editor.Char.Insert_String (Value => Ascii.Quotation & ")");
                when M_Right_Paren | M_0 =>
                    Common.Elide;
                when Cm_Right_Paren =>
                    Editor.Window.Expand (Lines => -4);
                when C_Plus | C_Equal =>
                    Editor.Char.Insert_String (Value => "=>");
                when M_Plus | M_Equal =>
                    Editor.Cursor.Next (Prompt => True, Underline => True);
                when Cm_Plus | Cm_Equal =>
                    Editor.Macro.Bind;
                when C_Bar =>
                    Editor.Char.Insert_String (Value => "--|");
                when C_Backslash =>
                    Editor.Region.Off;
                when M_Slash | M_Question =>
                    Common.Explain;  -- mostly for compatibility
                when C_Slash | C_Question =>
                    Editor.Window.Directory;
                when C_Quotation | C_Tick =>  -- differ fromRat
                    Editor.Char.Quote;



                    -- Alphabetic
                when C_A =>
                    Editor.Line.Beginning_Of;
                when C_B =>
                    Editor.Cursor.Backward;
                when C_C =>
                    Menu_Operations.Edit.Copy;
                when M_C =>
                    Common.Create_Command;
                when Cm_C | Cs_C =>
                    Editor.Line.Copy;
                when C_D =>
                    Editor.Char.Delete_Forward;
                when M_D =>
                    Editor.Word.Delete;
                when Cm_D | Cs_D =>
                    Editor.Line.Delete;
                when C_E =>
                    Editor.Line.End_Of;
                when Cm_E | Cs_E =>
                    Editor.Window.Demote;
                when C_F =>
                    Editor.Cursor.Forward;
                when C_H =>
                    Editor.Cursor.Left;
                when M_J =>
                    Editor.Word.Next;
                when C_J =>
                    Editor.Cursor.Right;
                when C_K =>
                    Editor.Line.Delete_Forward;
                when M_K =>
                    Editor.Word.Delete_Forward;
                when Cm_K | Cs_K =>
                    Editor.Window.Delete;
                when C_L =>
                    Editor.Screen.Redraw;
                when M_L =>
                    Editor.Screen.Clear;
                when Cm_L | Cs_L =>
                    Editor.Window.Expand;
                when C_M =>
                    Editor.Mark.Push;
                when Cm_M | Cs_M =>
                    Editor.Mark.Previous;
                when C_N =>
                    Editor.Cursor.Down;
                when M_N =>
                    Editor.Cursor.Next (Prompt => True, Underline => True);
                when Cm_N | Cs_N =>
                    Editor.Window.Next;
                when C_O =>
                    Editor.Line.Open;  
                when Cm_P | Cs_P =>
                    Editor.Window.Promote;
                when C_Q =>
                    Editor.Key.Name;
                when M_Q =>
                    Editor.Key.Prompt (Key_Code => "");
                when C_R =>
                    Editor.Search.Previous (Target => "", Wildcard => False);
                when Cm_R | Cs_R =>
                    Editor.Search.Replace_Previous (Target => "",
                                                    Replacement => "",
                                                    Repeat => 1,
                                                    Wildcard => False);
                when C_S =>
                    Editor.Search.Next (Target => "", Wildcard => False);
                when Cm_S =>
                    Editor.Search.Replace_Next (Target => "",
                                                Replacement => "",
                                                Repeat => 1,
                                                Wildcard => False);
                when C_T =>
                    Editor.Char.Transpose;
                when Cm_T | Cs_T =>
                    Editor.Line.Transpose;
                when M_T =>
                    Editor.Word.Transpose;
                when C_U =>
                    Editor.Cursor.Up;
                when M_U =>
                    Editor.Cursor.Previous (Prompt => True, Underline => True);
                when Cm_U | Cs_U =>
                    Editor.Window.Previous;
                when C_V =>
                    Editor.Image.Down;
                when M_V =>
                    Editor.Image.Up;
                when C_W =>
                    Editor.Region.Delete;
                when C_X =>
                    Editor.Set.Designation_Off;
                when M_X =>
                    Editor.Macro.Execute;
                when C_Y =>
                    Editor.Hold_Stack.Top;
                when M_Y =>
                    Editor.Hold_Stack.Next;
                when C_Z =>
                    Editor.Image.Up;

                    -- the next 8 are the left-hand function keys on
                    -- a sun keyboard.  Disable them.  The top two
                    -- (L1, L2) leave alone as they are mapped to F11, F12

                when Props =>
                    Editor.Noop;
                    -- Menu_Operations.File.Properties;
                when Undo =>
                    Editor.Noop;
                when Front =>
                    Editor.Noop;
                when Copy =>
                    Editor.Noop;
                    --     Menu_Operations.Edit.Copy;
                when Open =>
                    Editor.Noop;
                    -- Menu_Operations.File.Open;
                when Paste =>
                    Editor.Noop;
                    -- Menu_Operations.Edit.Paste;
                when Find =>
                    Editor.Noop;  
                when Cut =>
                    Editor.Noop;
                    -- Menu_Operations.Edit.Cut;

                when M_2 | M_At_Sign =>
                    case Key2 is
                        when 'C' | 'c' =>
                            Editor.Char.Insert_String ("--| @COMPONENT_KIND ");
                        when 'D' | 'd' =>
                            Editor.Char.Insert_String ("--| @DECOMPOSITION ");
                        when 'N' | 'n' =>
                            Editor.Char.Insert_String ("--| @NOTE ");
                        when 'R' | 'r' =>
                            case Key3 is
                                when 'A' | 'a' =>
                                    Editor.Char.Insert_String ("--| @RAISES ");
                                when 'F' | 'f' =>
                                    Editor.Char.Insert_String
                                       ("--| @REQUIREMENT FUNCTION ");
                                when 'I' | 'i' =>
                                    Editor.Char.Insert_String
                                       ("--| @REQUIREMENT INTERFACE ");
                                when 'S' | 's' =>
                                    Editor.Char.Insert_String
                                       ("--| @REQUIREMENT SUBFUNCTION ");
                                when others =>
                                    null;
                            end case;
                        when 'S' | 's' =>
                            Editor.Char.Insert_String ("--| @STATES (");
                        when M_2 | M_At_Sign =>
                            Editor.Char.Insert_String ("--| @");
                        when others =>
                            null;
                    end case;

                    ---------------
                    -- Menu maps --
                    ---------------

                when M_B | Ms_B => -- debug menu
                    case Key2 is
                        when 's' | 'S' =>
                            Command.Debug;
                        when 'w' | 'W' =>
                            Debug.Current_Debugger;
                        when 'f' | 'F' =>
                            Debug.Debug_Off (True);
                        when 'd' | 'D' =>
                            Debug.Debug_Off (False);
                        when 'p' | 'P' =>
                            -- bring up the palette ...
                            -- debug palette stuff
                            case Key3 is
                                when 'a' | 'A' =>
                                    Debug.Execute (Name => "all");
                                when 'b' | 'B' =>
                                    -- breakpoint frame
                                    case Key4 is
                                        when 'a' | 'A' =>
                                            Debug.Activate (Breakpoint => 0);
                                        when 'b' | 'B' =>
                                            -- break here
                                            Debug.Break
                                               (Location => "<SELECTION>",
                                                Stack_Frame => 0,
                                                Count => 1,
                                                In_Task => "",
                                                Default_Lifetime => True);
                                        when 'd' | 'D' =>
                                            Debug.Remove (Breakpoint => 0,
                                                          Delete => True);
                                        when 'k' | 'K' =>
                                            -- break
                                            Menu_Operations.Debug.Break;
                                        when 't' | 'T' =>
                                            -- Temp break here
                                            Debug.Break
                                               (Location => "<SELECTION>",
                                                Stack_Frame => 0,
                                                Count => 1,
                                                In_Task => "",
                                                Default_Lifetime => False);
                                        when 'v' | 'V' =>
                                            Debug.Remove (Breakpoint => 0,
                                                          Delete => False);
                                        when others =>
                                            null;
                                    end case;
                                when 'c' | 'C' =>
                                    Debug.Execute (Name => "");
                                when 'd' | 'D' =>
                                    -- display frame
                                    case Key4 is
                                        when 'b' | 'B' =>
                                            Debug.Show (Values_For =>
                                                           Debug.Breakpoints);
                                        when 'e' | 'E' =>
                                            Debug.Show (Values_For =>
                                                           Debug.Exceptions);
                                        when 'l' | 'L' =>
                                            Debug.Show (Values_For =>
                                                           Debug.Libraries);
                                        when others =>
                                            null;
                                    end case;
                                when 'e' | 'E' =>
                                    Debug.Source (Location => "",
                                                  Stack_Frame => 0);
                                when 'g' | 'G' =>
                                    -- tracing frame
                                    case Key4 is  
                                        when 'a' | 'A' =>
                                            -- trace here
                                            Debug.Trace
                                               (On => True,
                                                Event => Debug.All_Events,
                                                In_Task => "",
                                                At_Location => "",
                                                Stack_Frame => 0);
                                        when 'd' | 'D' =>
                                            Debug.Trace
                                               (On => False,
                                                Event => Debug.All_Events,
                                                In_Task => "",
                                                At_Location => "<SELECTION>",
                                                Stack_Frame => 0);
                                        when 's' | 'S' =>
                                            Debug.Show (Values_For =>
                                                           Debug.Traces);
                                        when 't' | 'T' =>
                                            -- trace control
                                            Menu_Operations.Dispatch (41);
                                        when others =>
                                            null;
                                    end case;
                                when 'i' | 'I' =>
                                    Debug.Stop (Name => "all");
                                when 'j' | 'J' =>
                                    -- debug put...
                                    Menu_Operations.Dispatch (40);
                                when 'k' | 'K' =>
                                    Debug.Stack
                                       (For_Task => "", Start => 0, Count => 0);
                                when 'l' | 'L' =>
                                    Debug.Run (Stop_At => Debug.Local_Statement,
                                               Count => 1,
                                               In_Task => "");
                                when 'm' | 'M' =>
                                    Menu_Operations.Debug.Modify;
                                when 'o' | 'O' =>
                                    Debug.Stop (Name => "");  
                                when 'q' | 'Q' =>
                                    -- quit frame
                                    case Key4 is
                                        when 'd' | 'D' =>
                                            -- detach
                                            Debug.Debug_Off (Kill_Job => False);
                                        when 'k' | 'K' =>
                                            -- kill job being debugged
                                            Debug.Debug_Off (Kill_Job => True);
                                        when 't' | 'T' =>
                                            -- terminate debugger
                                            Debug.Kill (Job => True,
                                                        Debugger => True);
                                        when others =>
                                            null;
                                    end case;  
                                when 'r' | 'R' =>
                                    Debug.Run (Stop_At => Debug.Returned,
                                               Count => 1,
                                               In_Task => "");
                                when 's' | 'S' =>
                                    Debug.Run (Stop_At => Debug.Statement,
                                               Count => 1,
                                               In_Task => "");
                                when 't' | 'T' =>
                                    -- task / task info frame
                                    case Key4 is
                                        when 'a' | 'A' =>
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.All_Tasks);
                                        when 'b' | 'B' =>
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Blocked);
                                        when 'c' | 'C' =>
                                            Debug.Information
                                               (Info_Type => Debug.Space,
                                                For_Task => "all");  
                                        when 'd' | 'D' =>
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Held);
                                        when 'e' | 'E' =>
                                            Menu_Operations.Debug.
                                               Information_Exceptions;
                                        when 'h' | 'H' =>
                                            Debug.Hold (Name => "all");  
                                        when 'i' | 'I' =>
                                            Debug.Information
                                               (Info_Type => Debug.Space,
                                                For_Task => "all");
                                        when 'l' | 'L' =>
                                            Debug.Release (Name => "all");  
                                        when 'n' | 'N' =>
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Not_Running);
                                        when 'o' | 'O' =>
                                            Debug.Show
                                               (Values_For =>
                                                   Debug.Stops_And_Holds);
                                        when 'p' | 'P' =>
                                            -- list stopped
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Stopped);
                                        when 'r' | 'R' =>
                                            Debug.Information
                                               (Info_Type => Debug.Rendezvous,
                                                For_Task => "all");
                                        when 's' | 'S' =>
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Stopped);
                                        when 't' | 'T' =>
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.All_Tasks);
                                        when 'u' | 'U' =>
                                            Debug.Task_Display
                                               (For_Task => "",
                                                Task_Set => Debug.Running);
                                        when 'x' | 'X' =>
                                            Debug.Information
                                               (Info_Type => Debug.Exceptions,
                                                For_Task => "all");
                                        when 'z' | 'Z' =>
                                            Debug.Information
                                               (Info_Type => Debug.Rendezvous,
                                                For_Task => "all");
                                        when others =>
                                            null;
                                    end case;
                                when 'w' | 'W' =>
                                    case Key4 is
                                        -- target frame
                                        when 'a' | 'A' =>
                                            Debug.Attach_Process
                                               (Name => "", Options => "");
                                        when 'c' | 'C' =>
                                            Debug.Connect (Remote_Machine => "",
                                                           Target => "");
                                        when 'i' | 'I' =>
                                            -- invoke
                                            Menu_Operations.Dispatch (49);
                                        when 'r' | 'R' =>
                                            Debug.Reconnect;
                                        when 't' | 'T' =>
                                            -- target request
                                            Menu_Operations.Dispatch (50);
                                        when others =>
                                            null;
                                    end case;
                                when 'x' | 'X' =>
                                    -- Control / Context frame
                                    case Key4 is  
                                        when 'b' | 'B' =>
                                            -- Debug.Enable
                                            Menu_Operations.Dispatch (52);
                                        when 'c' | 'C' =>
                                            Menu_Operations.Debug.
                                               Context_Control;
                                        when 'd' | 'D' =>
                                            -- Debug.Disable
                                            Menu_Operations.Dispatch (53);  
                                        when 'e' | 'E' =>
                                            Menu_Operations.Debug.
                                               Context_Evaluation;
                                        when 'p' | 'P' =>
                                            Debug.Clear_Stepping
                                               (For_Task => "");
                                        when 'r' | 'R' =>
                                            Debug.Reset_Defaults;
                                        when 's' | 'S' =>
                                            Debug.Show (Values_For =>
                                                           Debug.Contexts);
                                        when 't' | 'T' =>
                                            -- debug set ...
                                            Menu_Operations.Dispatch (51);
                                        when 'w' | 'W' =>
                                            -- show debug switches
                                            Debug.Show (Values_For =>
                                                           Debug.Flags);
                                        when others =>
                                            null;
                                    end case;  
                                when 'y' | 'Y' =>
                                    -- memory frame
                                    case Key4 is
                                        when 'a' | 'A' =>
                                            -- address to location
                                            Menu_Operations.Dispatch (47);
                                        when 'd' | 'D' =>
                                            -- Debug.Memory_Display
                                            Menu_Operations.Dispatch (54);
                                        when 'e' | 'E' =>
                                            -- exception to name
                                            Menu_Operations.Dispatch (48);
                                        when 'g' | 'G' =>
                                            -- Debug.Register_Modify
                                            Menu_Operations.Dispatch (57);
                                        when 'l' | 'L' =>
                                            -- location to address
                                            Menu_Operations.Dispatch (45);
                                        when 'o' | 'O' =>
                                            -- object address
                                            Menu_Operations.Dispatch (46);
                                        when 'r' | 'R' =>
                                            -- Debug.Register_Display
                                            Menu_Operations.Dispatch (55);  
                                        when 'y' | 'Y' =>
                                            -- Debug.Memory_Modify
                                            Menu_Operations.Dispatch (56);
                                        when others =>
                                            null;
                                    end case;
                                when 'z' | 'Z' =>
                                    -- exception frame
                                    case Key4 is  
                                        when 'a' | 'A' =>
                                            Debug.Forget (Name => "all",
                                                          In_Task => "",
                                                          At_Location => "");
                                        when 'c' | 'C' =>
                                            -- Debug.Catch...
                                            Menu_Operations.Dispatch (43);
                                        when 'f' | 'F' =>
                                            -- Debug.Forget
                                            Menu_Operations.Dispatch (42);
                                        when 'h' | 'H' =>
                                            Debug.Catch (Name => "<selection>",
                                                         In_Task => "",
                                                         At_Location => "");
                                        when 'l' | 'L' =>
                                            Io.Echo_Line
                                               ("Propagate Last not implemented.");
                                        when 'p' | 'P' =>
                                            -- Debug.Propagate
                                            Menu_Operations.Dispatch (44);
                                        when 'u' | 'U' =>
                                            Debug.Propagate (Name => "",
                                                             In_Task => "",
                                                             At_Location => "");
                                        when others =>
                                            null;
                                    end case;  
                                when others =>
                                    null;
                            end case;
                        when others =>
                            null;
                    end case;

                when M_P | Ms_P => -- Program/Compilation menu
                    case Key2 is
                        when 'f' | 'F' =>
                            Common.Format;
                        when 'm' | 'M' =>
                            Common.Complete;
                        when 'z' | 'Z' =>
                            Common.Semanticize;
                        when 'p' | 'P' =>
                            Menu_Operations.Compile.Promote;
                        when 'c' | 'C' =>
                            -- Menu_Operations.Compile.Code;
                            Menu_Operations.Dispatch (20);
                        when M_C | Ms_C =>
                            -- Menu_Operations.Compile.Code; -- JustDoIt Mode
                            Menu_Operations.Dispatch (113);
                        when 'i' | 'I' =>
                            -- Menu_Operations.Compile.Install;
                            Menu_Operations.Dispatch (21);
                        when M_I | Ms_I =>
                            -- Menu_Operations.Compile.Install; -- JustDoIt Mode
                            Menu_Operations.Dispatch (114);
                        when 's' | 'S' =>
                            --Menu_Operations.Compile.Source;
                            Menu_Operations.Dispatch (22);
                        when M_S | Ms_S =>
                            -- Menu_Operations.Compile.Source; -- JustDoIt Mode
                            Menu_Operations.Dispatch (115);
                        when 'd' | 'D' =>
                            Menu_Operations.Compile.Demote;
                        when 'e' | 'E' =>
                            --Menu_Operations.Compile.Install;
                            Menu_Operations.Dispatch (23);
                        when M_E | Ms_E =>
                            -- Menu_Operations.Compile.Install; -- JustDoIt Mode
                            Menu_Operations.Dispatch (116);
                        when 'o' | 'O' =>
                            --Menu_Operations.Compile.Source;
                            Menu_Operations.Dispatch (24);
                        when M_O | Ms_O =>
                            -- Menu_Operations.Compile.Source; -- JustDoIt Mode
                            Menu_Operations.Dispatch (117);
                        when 't' | 'T' =>
                            --Menu_Operations.Compile.Archive;
                            Menu_Operations.Dispatch (25);
                        when M_T | Ms_T =>
                            -- Menu_Operations.Compile.Archive; -- JustDoIt Mode
                            Menu_Operations.Dispatch (118);
                        when 'n' | 'N' =>
                            case Key3 is
                                when 'i' | 'I' =>
                                    -- compile incrementatl insert
                                    Menu_Operations.Dispatch (2);
                                when 'e' | 'E' =>
                                    -- compile incremental edit
                                    Menu_Operations.Dispatch (3);
                                when 'd' | 'D' =>
                                    -- compile incremental dispatch
                                    Menu_Operations.Dispatch (4);
                                when 'p' | 'P' =>
                                    -- compile incremental promote
                                    Menu_Operations.Dispatch (5);
                                when others =>
                                    null;
                            end case;
                        when 'u' | 'U' =>
                            Menu_Operations.Compile.Show_Usage;
                        when 'w' | 'W' =>
                            Menu_Operations.Compile.Show_Unused;
                        when 'b' | 'B' =>
                            case Key3 is
                                when 'l' | 'L' =>
                                    Menu_Operations.Compile.Load;
                                when 'f' | 'F' =>
                                    Menu_Operations.Compile.Parse;
                                when 'p' | 'P' =>
                                    Menu_Operations.Compile.Build_Private_Part;
                                when 'b' | 'B' =>
                                    Menu_Operations.Compile.Build_Body;
                                when 's' | 'S' =>
                                    Menu_Operations.Compile.Make_Separate;
                                when 'i' | 'I' =>
                                    Menu_Operations.Compile.Make_Inline;
                                when 'w' | 'W' =>
                                    Ada.Withdraw;
                                when others =>
                                    null;
                            end case;
                        when 'l' | 'L' =>
                            Menu_Operations.Compile.Options;
                        when others =>
                            null;
                    end case;

                when M_E | Ms_E => -- edit menu
                    case Key2 is
                        when 'a' | 'A' =>
                            -- add entry...
                            Common.Object.Insert;
                        when 'c' | 'C' =>
                            Editor.Hold_Stack.Push;
                            -- Menu_Operations.Edit.Copy;
                        when 'd' | 'D' =>
                            -- delete entry...
                            Common.Object.Delete;
                        when 'e' | 'E' =>
                            -- edit entry...
                            Menu_Operations.Dispatch (17);
                        when 'f' | 'F' =>
                            -- fill...
                            Menu_Operations.Region.Fill;
                        when 'j' | 'J' =>
                            -- justify...
                            Menu_Operations.Region.Justify;
                        when 'l' | 'L' =>
                            -- deselect...
                            Editor.Set.Designation_Off;
                        when 'm' | 'M' =>
                            Menu_Operations.Region.Make_Comment;
                        when 'n' | 'N' =>
                            Menu_Operations.Edit.Underlines_Off;
                        when 'o' | 'O' =>
                            Menu_Operations.Region.Uncomment;
                        when 'p' | 'P' =>
                            Editor.Hold_Stack.Top;
                            -- Menu_Operations.Edit.Paste;
                        when 'r' | 'R' =>
                            -- search/replace...
                            Menu_Operations.Dispatch (18);
                        when 's' | 'S' =>
                            -- spelling...
                            case Key3 is
                                when 'w' | 'W' =>
                                    Speller.Check_Text;
                                when 'i' | 'I' =>
                                    Speller.Check_Image;
                                when 'r' | 'R' =>
                                    Speller.Exchange_Word;
                                when 'a' | 'A' =>
                                    Speller.Learn_Word;
                                when 'l' | 'L' =>
                                    Speller.Learn_Replacement (The_Word => "",
                                                               Choice => 1,
                                                               Dictionary => 0);
                                when 'n' | 'N' =>
                                    Speller.Explain_Next;
                                when others =>
                                    null;
                            end case;
                        when 't' | 'T' =>
                            Editor.Region.Delete;
                            --Menu_Operations.Edit.Cut;
                        when 'u' | 'U' =>
                            Menu_Operations.Region.Uppercase;
                        when 'w' | 'W' =>
                            Menu_Operations.Region.Lowercase;
                        when 'y' | 'Y' =>
                            -- Typing Modes...
                            Menu_Operations.Dispatch (16);
                        when 'z' | 'Z' =>
                            Menu_Operations.Region.Capitalize;
                        when others =>
                            null;
                    end case;

                when M_F | Ms_F => -- File menu
                    case Key2 is
                        when 'n' | 'N' =>
                            case Key3 is
                                when 'f' | 'F' =>
                                    Menu_Operations.File.New_File;
                                when 'a' | 'A' =>
                                    Menu_Operations.File.New_Ada;
                                when 'w' | 'W' =>
                                    Menu_Operations.File.New_World;
                                when 'd' | 'D' =>
                                    Menu_Operations.File.New_Directory;
                                when 's' | 'S' =>
                                    Menu_Operations.File.New_Subsystem;
                                when 'v' | 'V' =>
                                    Menu_Operations.File.New_Working_View;
                                when 'p' | 'P' =>
                                    Menu_Operations.File.New_Spec_View;
                                when 'r' | 'R' =>
                                    Menu_Operations.File.New_Release_View;
                                when 'c' | 'C' =>
                                    Menu_Operations.File.New_Code_View;
                                when 't' | 'T' =>
                                    Menu_Operations.File.New_Switch_File;
                                when 'y' | 'Y' =>
                                    Menu_Operations.File.New_Activity;
                                when 'm' | 'M' =>
                                    Menu_Operations.File.New_Mailbox;
                                when 'u' | 'U' =>
                                    Menu_Operations.File.New_Venture;
                                when 'o' | 'O' =>
                                    Menu_Operations.File.New_Work_Order;
                                when 'l' | 'L' =>
                                    Menu_Operations.File.New_Work_Order_List;
                                when 'e' | 'E' =>
                                    Menu_Operations.File.New_System;
                                    -- when 'g' | 'G' =>
                                    --     Menu_Operations.File.New_Gateway;
                                when others =>
                                    null;
                            end case;
                        when 'o' | 'O' =>
                            Menu_Operations.File.Open;
                        when 'b' | 'B' =>
                            -- file browse
                            Menu_Operations.Dispatch (1);
                        when 'c' | 'C' =>
                            Menu_Operations.File.Close;
                        when 's' | 'S' =>
                            Menu_Operations.File.Save;
                        when 'v' | 'V' =>
                            Menu_Operations.File.Revert;
                        when 'p' | 'P' =>
                            Menu_Operations.File.Print;
                        when M_P | Ms_P =>
                            Menu_Operations.Dispatch (110); -- JustDoIt mode
                        when 't' | 'T' =>
                            Menu_Operations.File.Properties;
                        when 'y' | 'Y' =>
                            Menu_Operations.File.Copy;
                        when 'm' | 'M' =>
                            Menu_Operations.File.Move;
                        when 'd' | 'D' =>
                            Menu_Operations.File.Delete;
                        when 'i' | 'I' =>
                            Menu_Operations.Edit.Insert_File;
                        when 'r' | 'R' =>
                            Menu_Operations.File.Run;
                        when 'e' | 'E' =>
                            -- windows quit
                            null;  
                        when 'q' | 'Q' =>  -- for S_F2 on F key palette
                            Common.Edit;
                        when others =>
                            null;
                    end case;

                when M_H | Ms_H => -- Help menu
                    case Key2 is
                        when 'u' | 'U' =>
                            Menu_Operations.Help.Explain_Underline;
                        when 'k' | 'K' =>
                            Editor.Key.Name (Key_Code => "");
                            --when 'b' | 'B' =>
                            --    Menu_Operations.Help.On_Keybindings;
                            -- executed locally on workstation
                        when 'h' | 'H' =>
                            Menu_Operations.Help.On_Help;
                        when others =>
                            null;
                    end case;

                when M_M | Ms_M => -- CM menu
                    case Key2 is  
                        when 'o' | 'O' =>
                            Menu_Operations.Cm.Check_Out;
                        when M_O | Ms_O =>
                            Menu_Operations.Dispatch (111); -- JustDoIt Mode
                        when 'i' | 'I' =>
                            Menu_Operations.Cm.Check_In;
                        when M_I | Ms_I =>
                            Menu_Operations.Dispatch (112); -- JustDoIt Mode
                        when 'b' | 'B' =>
                            Menu_Operations.Cm.Abandon;
                        when 'a' | 'A' =>
                            Menu_Operations.Cm.Accept_Changes;
                        when M_A | Ms_A =>
                            Menu_Operations.Dispatch (119); -- JustDoIt Mode
                        when 'j' | 'J' =>
                            Menu_Operations.Cm.Join;
                        when 's' | 'S' =>
                            Menu_Operations.Cm.Sever;
                        when 'm' | 'M' =>
                            Menu_Operations.Cm.Imports;
                        when 'e' | 'E' =>
                            Menu_Operations.Cm.Properties;
                        when 'c' | 'C' =>
                            -- cm control
                            Menu_Operations.Dispatch (7);
                        when 'g' | 'G' =>
                            -- cm revert
                            Menu_Operations.Dispatch (8);
                        when 'r' | 'R' => -- report...
                            case Key3 is
                                when 'c' | 'C' =>
                                    Cmvc.Show_All_Controlled
                                       (In_View => "<CURSOR>");
                                when 'u' | 'U' =>
                                    Cmvc.Show_All_Uncontrolled
                                       (In_View => "<CURSOR>");
                                when 'd' | 'D' =>
                                    Cmvc.Show_Out_Of_Date_Objects;
                                when 'o' | 'O' =>
                                    Cmvc.Show_All_Checked_Out;
                                when 'i' | 'I' =>
                                    Cmvc.Information
                                       (For_View => "<CURSOR>",
                                        Show_Model => False,
                                        Show_Whether_Frozen => False,
                                        Show_View_Kind => False,
                                        Show_Creation_Time => False,
                                        Show_Imports => True,
                                        Show_Referencers => False,
                                        Show_Unit_Summary => False,
                                        Show_Controlled_Objects => False,
                                        Show_Last_Release_Numbers => False,
                                        Show_Path_Name => False,
                                        Show_Subpath_Name => False,
                                        Show_Switches => False,
                                        Show_Exported_Units => False,
                                        Response => "<PROFILE>");
                                when 'r' | 'R' =>
                                    Cmvc.Information
                                       (For_View => "<CURSOR>",
                                        Show_Model => False,
                                        Show_Whether_Frozen => False,
                                        Show_View_Kind => False,
                                        Show_Creation_Time => False,
                                        Show_Imports => False,
                                        Show_Referencers => True,
                                        Show_Unit_Summary => False,
                                        Show_Controlled_Objects => False,
                                        Show_Last_Release_Numbers => False,
                                        Show_Path_Name => False,
                                        Show_Subpath_Name => False,
                                        Show_Switches => False,
                                        Show_Exported_Units => False,
                                        Response => "<PROFILE>");

                                when 'e' | 'E' =>
                                    Cmvc.Information
                                       (For_View => "<CURSOR>",
                                        Show_Model => False,
                                        Show_Whether_Frozen => False,
                                        Show_View_Kind => False,
                                        Show_Creation_Time => False,
                                        Show_Imports => False,
                                        Show_Referencers => False,
                                        Show_Unit_Summary => False,
                                        Show_Controlled_Objects => False,
                                        Show_Last_Release_Numbers => False,
                                        Show_Path_Name => False,
                                        Show_Subpath_Name => False,
                                        Show_Switches => False,
                                        Show_Exported_Units => True,
                                        Response => "<PROFILE>");

                                when 'm' | 'M' =>
                                    Cmvc.Information
                                       (For_View => "<CURSOR>",
                                        Show_Model => True,
                                        Show_Whether_Frozen => False,
                                        Show_View_Kind => False,
                                        Show_Creation_Time => False,
                                        Show_Imports => False,
                                        Show_Referencers => False,
                                        Show_Unit_Summary => False,
                                        Show_Controlled_Objects => False,
                                        Show_Last_Release_Numbers => False,
                                        Show_Path_Name => False,
                                        Show_Subpath_Name => False,
                                        Show_Switches => False,
                                        Show_Exported_Units => False,
                                        Response => "<PROFILE>");
                                when 'h' | 'H' =>
                                    -- history box
                                    Menu_Operations.Dispatch (6);
                                when others =>
                                    null;
                            end case;
                        when 't' | 'T' =>
                            -- *** should dispatch and do dialog box
                            Activity.Edit;
                        when others =>
                            null;
                    end case;

                when M_O | Ms_O =>         -- Tools menu
                    case Key2 is
                        when 'c' | 'C' =>
                            case Key3 is
                                when 'b' | 'B' =>
                                    Editor.Macro.Start;
                                when 'e' | 'E' =>
                                    Editor.Macro.Finish;
                                when 'x' | 'X' =>
                                    Editor.Macro.Execute;
                                when 'k' | 'K' =>
                                    Editor.Macro.Bind (Key => "");
                                when others =>
                                    null;
                            end case;  
                        when 'd' | 'D' =>
                            -- RDF menu
                            case Key3 is
                                when 'd' | 'D' =>
                                    -- Pdl Definition
                                    Menu_Operations.Dispatch (70);
                                when 'e' | 'E' =>
                                    -- Pdl Enclosing
                                    Menu_Operations.Dispatch (71);
                                when 'u' | 'U' =>
                                    -- Pdl Show User
                                    Menu_Operations.Dispatch (72);
                                when 'x' | 'X' =>
                                    -- Pdl Explain
                                    Menu_Operations.Dispatch (73);
                                when 'c' | 'C' =>
                                    --Pdl Complete
                                    Menu_Operations.Dispatch (74);
                                when 'a' | 'A' =>
                                    -- Pdl Complete Optional
                                    Menu_Operations.Dispatch (75);
                                when 'k' | 'K' =>
                                    -- Target Key/Phase...
                                    Menu_Operations.Dispatch (76);
                                when 'g' | 'G' =>
                                    -- Generate Document...
                                    Menu_Operations.Dispatch (77);
                                when 'i' | 'I' =>
                                    -- Display Hierarchy...
                                    Menu_Operations.Dispatch (78);
                                when 'h' | 'H' =>
                                    -- Check Consistency...
                                    Menu_Operations.Dispatch (79);
                                when 'm' | 'M' =>
                                    -- Component Hierarchy...
                                    Menu_Operations.Dispatch (80);
                                when 'n' | 'N' =>
                                    -- New 2167A Component...
                                    Menu_Operations.Dispatch (81);
                                when others =>
                                    null;  
                            end case;
                        when 'f' | 'F' =>
                            case Key3 is
                                when 'n' | 'N' =>
                                    What.Object;
                                when 's' | 'S' =>
                                    Menu_Operations.Tools.Show_Locks;
                                when others =>
                                    null;
                            end case;
                        when 'i' | 'I' =>
                            -- insight submenu
                            case Key3 is
                                when 'i' | 'I' =>
                                    -- insight invoke
                                    Menu_Operations.Dispatch (60);
                                when 'c' | 'C' =>
                                    -- insight create
                                    Menu_Operations.Dispatch (61);
                                when 'd' | 'D' =>
                                    -- insight delete
                                    Menu_Operations.Dispatch (62);
                                when 'p' | 'P' =>
                                    -- insight print
                                    Menu_Operations.Dispatch (63);
                                when others =>
                                    null;
                            end case;
                        when 'm' | 'M' =>
                            case Key3 is
                                when 'r' | 'R' =>
                                    Menu_Operations.Tools.Read_Mail;
                                when 'n' | 'N' =>
                                    Mail.Send;
                                when 's' | 'S' =>
                                    Common.Promote;
                                when 'p' | 'P' =>
                                    Mail.Reply (To_All => False);
                                when 'a' | 'A' =>
                                    Mail.Reply (To_All => True);
                                when 'f' | 'F' =>
                                    Mail.Forward;
                                when 'm' | 'M' =>
                                    Mail.Remail;
                                when 'd' | 'D' =>
                                    Common.Object.Delete;
                                when 'u' | 'U' =>
                                    Common.Undo;
                                when 'c' | 'C' =>
                                    Common.Semanticize;
                                when 'e' | 'E' =>
                                    Mail.Expunge;
                                when 't' | 'T' =>
                                    -- mail sorting options...
                                    Menu_Operations.Dispatch (14);
                                when others =>
                                    null;
                            end case;
                        when 'o' | 'O' =>
                            case Key3 is
                                when 'b' | 'B' =>
                                    Menu_Operations.Tools.Operator_Backup;
                                when 'v' | 'V' =>
                                    Menu_Operations.Tools.
                                       Operator_Verify_Backup;
                                when 'h' | 'H' =>
                                    Menu_Operations.Tools.
                                       Operator_Backup_History;
                                when 'u' | 'U' =>
                                    Menu_Operations.Tools.Operator_Edit_User;
                                when 'g' | 'G' =>
                                    Menu_Operations.Tools.Operator_Edit_Group;
                                when 'f' | 'F' =>
                                    Menu_Operations.Tools.Operator_Force_Logoff;
                                when 'r' | 'R' =>
                                    Menu_Operations.Tools.System_Manager_Report;
                                when 's' | 'S' =>
                                    Menu_Operations.Tools.
                                       System_Manager_Shutdown;
                                when 'c' | 'C' =>
                                    Menu_Operations.Tools.
                                       System_Manager_Cancel_Shutdown;
                                when others =>
                                    null;
                            end case;
                        when 'p' | 'P' =>
                            -- RPI menu
                            case Key3 is
                                when 'p' | 'P' =>
                                    -- RPI put changes
                                    Menu_Operations.Dispatch (90);
                                when 'a' | 'A' =>
                                    -- RPI accept changes
                                    Menu_Operations.Dispatch (91);
                                when 'o' | 'O' =>
                                    -- show out of date
                                    Menu_Operations.Dispatch (92);
                                when 'e' | 'E' =>
                                    case Key4 is
                                        when 'd' | 'D' =>
                                            -- create doc gateway
                                            Menu_Operations.Dispatch (93);
                                        when 'v' | 'V' =>
                                            -- create view gateway
                                            Menu_Operations.Dispatch (94);
                                        when 'f' | 'F' =>
                                            -- create file gateway
                                            Menu_Operations.Dispatch (95);
                                        when 'g' | 'G' =>
                                            -- create graphic gateway
                                            Menu_Operations.Dispatch (96);
                                        when others =>
                                            null;
                                    end case;
                                when 'c' | 'C' =>
                                    -- RPI connect
                                    Menu_Operations.Dispatch (97);
                                when 'd' | 'D' =>
                                    -- RPI disconnect
                                    Menu_Operations.Dispatch (98);
                                when 'v' | 'V' =>
                                    -- Save archive
                                    Menu_Operations.Dispatch (99);
                                when 'r' | 'R' =>
                                    -- Restore archive
                                    Menu_Operations.Dispatch (100);
                                when others =>
                                    null;
                            end case;
                        when 's' | 'S' =>
                            case Key3 is
                                when 'u' | 'U' =>
                                    Menu_Operations.Session.Users;
                                when 'd' | 'D' =>
                                    Operator.Disk_Space;
                                when 'c' | 'C' =>
                                    Menu_Operations.Session.Machine_Information;
                                when 's' | 'S' =>
                                    What.Load;
                                when others =>
                                    null;
                            end case;  
                        when 't' | 'T' =>
                            -- RTI menu
                            case Key3 is
                                when 'm' | 'M' =>
                                    -- Import model
                                    Menu_Operations.Dispatch (120);
                                when 'a' | 'A' =>
                                    -- RTI accept changes
                                    Menu_Operations.Dispatch (121);
                                when 'p' | 'P' =>
                                    -- Prepare document
                                    Menu_Operations.Dispatch (122);
                                when 's' | 'S' =>
                                    -- show out of date
                                    Menu_Operations.Dispatch (123);
                                when 'b' | 'B' =>
                                    -- Baseline model
                                    Menu_Operations.Dispatch (124);
                                when 'i' | 'I' =>
                                    -- Increment Model
                                    Menu_Operations.Dispatch (125);
                                when 'd' | 'D' =>
                                    -- Destroy model
                                    Menu_Operations.Dispatch (126);
                                when 'o' | 'O' =>
                                    -- Options
                                    Menu_Operations.Dispatch (127);
                                when others =>
                                    null;
                            end case;
                        when others =>
                            null;
                    end case;


                when M_S | Ms_S => -- session menu
                    case Key2 is
                        when 'p' | 'P' =>
                            Menu_Operations.Session.Profile;
                        when 'l' | 'L' =>
                            Menu_Operations.Session.Search_List;
                        when 's' | 'S' =>
                            Menu_Operations.Session.Switches;
                        when 'j' | 'J' =>
                            case Key3 is
                                when 'j' | 'J' =>
                                    What.Users (False);
                                when 'a' | 'A' =>
                                    -- Menu_Operations.Session.All_Jobs;
                                    What.Users (True);
                                when 'd' | 'D' =>
                                    Menu_Operations.Session.Disable_Job;
                                when 'e' | 'E' =>
                                    Menu_Operations.Session.Enable_Job;
                                when 'k' | 'K' =>
                                    Menu_Operations.Session.Kill_Job;
                                when 'c' | 'C' =>
                                    -- job.connect
                                    Menu_Operations.Dispatch (15);
                                when others =>
                                    null;
                            end case;
                        when 'e' | 'E' =>
                            Menu_Operations.Session.End_Of_Input;
                            -- when 'r' | 'R' =>
                            --     Menu_Operations.File.Quit;
                        when 'n' | 'N' =>
                            case Key3 is
                                when 'h' | 'H' =>
                                    Menu_Operations.Tools.Screen_Push; -- ???
                                when 'p' | 'P' =>
                                    Menu_Operations.Tools.Screen_Pop;
                                when 'w' | 'W' =>
                                    -- set window frames
                                    Menu_Operations.Dispatch (13);
                                when others =>
                                    null;
                            end case;
                        when others =>
                            null;
                    end case;

                when M_I | Ms_I => -- Navigate menu
                    case Key2 is
                        when 'n' | 'N' =>
                            Editor.Cursor.Next (Repeat => 1,
                                                Prompt => False,
                                                Underline => True);
                        when 'p' | 'P' =>
                            Editor.Cursor.Previous (Repeat => 1,
                                                    Prompt => False,
                                                    Underline => True);  
                        when 'i' | 'I' =>
                            Menu_Operations.Traverse.Previous_Item;
                        when 'm' | 'M' =>
                            Menu_Operations.Traverse.Next_Item;
                        when 'd' | 'D' =>
                            Menu_Operations.Traverse.Definition;
                        when 'e' | 'E' =>
                            Menu_Operations.Traverse.Enclosing;
                        when 't' | 'T' =>
                            Menu_Operations.Region.Beginning_Of;
                        when 'b' | 'B' =>
                            Menu_Operations.Region.End_Of;
                        when 'o' | 'O' =>
                            Menu_Operations.Traverse.Other_Part;
                        when 'h' | 'H' =>
                            Menu_Operations.Traverse.Home_Library;
                        when 'r' | 'R' =>
                            Menu_Operations.Traverse.Resolve_Name;
                        when others =>
                            null;
                    end case;

                    -- Window panel buttons and other functions
                when Menu_Pick =>
                    case Key2 is
                        when 'b' =>
                            case Key3 is
                                when 'a' =>
                                    Editor.Window.Demote;
                                when 'b' =>
                                    Editor.Window.Delete;
                                when 'c' =>
                                    Editor.Image.End_Of;
                                when 'd' =>
                                    Editor.Window.Join (Repeat => 99);
                                when 'e' =>
                                    Editor.Image.Beginning_Of;
                                when 'f' =>
                                    -- Editor.Window.Promote;
                                    Menu_Operations.Dispatch (19);
                                    -- want to do this twice to ensure that the
                                    -- window is locked...
                                when 'g' =>
                                    Editor.Image.Left;
                                when 'h' =>
                                    Editor.Image.Right;
                                when 'i' =>
                                    Editor.Window.Copy;
                                when 'j' =>
                                    Editor.Window.Join;
                                when 'k' =>
                                    Editor.Window.Join (-1);
                                when 'l' =>
                                    Editor.Window.Expand;
                                when 'm' =>
                                    Editor.Window.Expand (-4);
                                when 'n' =>
                                    Editor.Window.Focus;
                                when 'o' =>
                                    Editor.Image.Down;
                                when 'p' =>
                                    Editor.Image.Up;
                                when 'q' =>
                                    -- dialog box completion
                                    Menu_Operations.Click_Ok;
                                    -- when 'r' =>
                                    --     Menu_Operations.Dispatch (0);
                                when others =>
                                    null;
                            end case;
                        when 'c' =>
                            case Key3 is
                                when 'a' =>
                                    Menu_Operations.Load_Image_Palette;
                                when 'b' =>
                                    -- get version info
                                    Menu_Operations.Dispatch (9);
                                when others =>
                                    null;
                            end case;  
                        when 'q' =>
                            case Key3 is
                                when 'r' | 'R' =>
                                    -- for F? bar support
                                    Menu_Operations.Dispatch (12);
                                when 'p' | 'P' =>
                                    Editor.Key.Prompt (Key_Code => "");
                                when 'd' | 'D' =>
                                    Common.Definition (Name => "<CURSOR>",
                                                       In_Place => True,
                                                       Visible => True);
                                when 'c' | 'C' =>
                                    Common.Create_Command;
                                when 'e' | 'E' =>
                                    Common.Enclosing (In_Place => True,
                                                      Library => False);
                                when others =>
                                    null;  
                            end case;
                        when 'w' =>
                            case Key3 is
                                when '!' =>
                                    Editor.Window.Expand;
                                when '>' =>
                                    Editor.Window.Expand (-4);
                                when '?' =>
                                    Editor.Window.Directory;
                                when 'b' =>
                                    Editor.Window.Beginning_Of;
                                when 'c' =>
                                    Editor.Window.Copy;
                                when 'd' =>
                                    Editor.Window.Delete;
                                when 'e' =>
                                    Editor.Window.End_Of;
                                when 'f' =>
                                    Editor.Window.Focus;
                                when 'h' =>
                                    Common.Enclosing (In_Place => False,
                                                      Library => False);
                                when 'j' =>
                                    Editor.Window.Join (1);
                                when 'm' =>
                                    Editor.Window.Promote;
                                when 'n' =>
                                    Editor.Window.Next;
                                when 'o' =>
                                    Editor.Window.Join (-1);
                                when 't' =>
                                    Editor.Window.Transpose;
                                when 'u' =>
                                    Editor.Window.Previous;
                                when 'v' =>
                                    Editor.Window.Child;
                                when 'y' =>
                                    Editor.Window.Demote;
                                when 'l' =>
                                    Editor.Window.Parent;
                                when others =>
                                    null;
                            end case;
                        when 'i' =>
                            case Key3 is
                                when 'b' =>
                                    Editor.Image.Beginning_Of;
                                when 'e' =>
                                    Editor.Image.End_Of;
                                when 'f' =>
                                    Editor.Set.Fill_Mode (True);
                                when 'h' =>
                                    Editor.Image.Left;
                                when 'i' =>
                                    Editor.Set.Insert_Mode (True);
                                when 'j' =>
                                    Editor.Image.Right;
                                when 'n' =>
                                    Editor.Image.Down;
                                when 'o' =>
                                    Editor.Set.Insert_Mode (False);
                                when 'u' =>
                                    Editor.Image.Up;
                                when 'x' =>
                                    Editor.Set.Fill_Mode (False);
                                when others =>
                                    null;
                            end case;
                        when 'l' =>
                            case Key3 is
                                when '$' =>
                                    Editor.Line.Center;
                                when '<' =>
                                    Editor.Line.Lower_Case;
                                when '>' =>
                                    Editor.Line.Upper_Case;
                                when '?' =>
                                    What.Line;
                                when '6' =>
                                    Editor.Line.Capitalize;
                                when 'b' =>
                                    Editor.Line.Beginning_Of;
                                when 'c' =>
                                    Editor.Line.Copy;
                                when 'd' =>
                                    Editor.Line.Delete;
                                when 'e' =>
                                    Editor.Line.End_Of;
                                when 'i' =>
                                    Editor.Line.Insert (1);
                                when 'j' =>
                                    Editor.Line.Join;
                                when 'k' =>
                                    Editor.Line.Delete_Forward;
                                when 'o' =>
                                    Editor.Line.Open;
                                when 't' =>
                                    Editor.Line.Transpose;
                                when 'x' =>
                                    Editor.Line.Delete_Forward;
                                when others =>
                                    null;
                            end case;
                        when 'm' =>
                            case Key3 is
                                when 'a' =>
                                    Editor.Macro.Start;
                                when 'e' =>
                                    Editor.Macro.Finish;
                                when 'f' =>
                                    Editor.Macro.Bind;
                                when 'h' =>
                                    Editor.Mark.Previous;
                                when 'j' =>
                                    Editor.Mark.Next;
                                when 'x' =>
                                    Editor.Macro.Execute;
                                when 'n' =>
                                    Editor.Mark.Push;
                                when 'p' =>
                                    Editor.Mark.Copy_Top;
                                when 'r' =>
                                    Editor.Mark.Rotate;
                                when 't' =>
                                    Editor.Mark.Swap;
                                when 'u' =>
                                    Editor.Mark.Top;
                                when 'o' =>
                                    Editor.Mark.Delete_Top;
                                when others =>
                                    null;
                            end case;
                        when 'o' =>
                            case Key3 is
                                when '1' =>
                                    Common.Expand;
                                when '>' =>
                                    Common.Elide;
                                when '?' =>
                                    Common.Explain;
                                when 'c' =>
                                    Common.Object.Copy;
                                when 'd' =>
                                    Common.Object.Delete;
                                when 'e' =>
                                    Common.Object.Last_Child;
                                when 'g' =>
                                    Common.Abandon;
                                when 'h' =>
                                    Common.Object.Parent;
                                when 'i' =>
                                    Common.Object.Insert;
                                when 'j' =>
                                    Common.Object.Child;
                                when 'm' =>
                                    Common.Object.Move;
                                when 'n' =>
                                    Common.Object.Next;
                                when 'r' =>
                                    Common.Redo;
                                when 's' =>
                                    Common.Sort_Image;
                                when 'u' =>
                                    Common.Undo;
                                when 'x' =>
                                    Common.Release;
                                when 't' =>
                                    Editor.Char.Tab_To_Comment;
                                when 'f' =>
                                    Common.Commit;
                                when 'p' =>
                                    Common.Object.Previous;
                                when others =>
                                    null;
                            end case;
                        when 'r' =>
                            case Key3 is
                                when '6' =>
                                    Editor.Region.Capitalize;
                                when '[' =>
                                    Editor.Region.Start;
                                when ']' =>
                                    Editor.Region.Finish;
                                when '+' =>
                                    Editor.Region.Uncomment;
                                when '<' =>
                                    Editor.Region.Lower_Case;
                                when '-' =>
                                    Editor.Region.Comment;
                                when '>' =>
                                    Editor.Region.Upper_Case;
                                when 'b' =>
                                    Editor.Region.Beginning_Of;
                                when 'c' =>
                                    Editor.Region.Copy;
                                when 'd' =>
                                    Editor.Region.Delete;
                                when 'e' =>
                                    Editor.Region.End_Of;
                                when 'f' =>
                                    Editor.Region.Fill;
                                when 'h' =>
                                    Editor.Hold_Stack.Previous;
                                when 'j' =>
                                    Editor.Hold_Stack.Next;
                                when 'm' =>
                                    Editor.Region.Move;
                                when 'n' =>
                                    Editor.Hold_Stack.Push;
                                when 'p' =>
                                    Editor.Hold_Stack.Copy_Top;
                                when 'q' =>
                                    Editor.Region.Justify;
                                when 'r' =>
                                    Editor.Hold_Stack.Rotate;
                                when 't' =>
                                    Editor.Hold_Stack.Swap;
                                when 'u' =>
                                    Editor.Hold_Stack.Top;
                                when 'x' =>
                                    Editor.Region.Off;
                                when 'z' =>
                                    Editor.Hold_Stack.Delete_Top;
                                when others =>
                                    null;
                            end case;
                        when 'd' =>
                            case Key3 is
                                when '<' =>
                                    Editor.Word.Lower_Case;
                                when '>' =>
                                    Editor.Word.Upper_Case;
                                when '?' =>
                                    Speller.Check_Text (Data => "<TEXT>");
                                when '6' =>
                                    Editor.Word.Capitalize;
                                when 'b' =>
                                    Editor.Word.Beginning_Of;
                                when 'd' =>
                                    Editor.Word.Delete;
                                when 'e' =>
                                    Editor.Word.End_Of;
                                when 'i' =>
                                    Speller.Learn_Word
                                       (The_Word => "", Dictionary => 0);
                                when 'j' =>
                                    Editor.Word.Next;
                                when 'k' =>
                                    Editor.Word.Delete_Forward;
                                when 'm' =>
                                    Speller.Check_Image;
                                when 'n' =>
                                    Speller.Explain_Next;
                                when 'r' =>
                                    Speller.Learn_Replacement (The_Word => "",
                                                               Choice => 1,
                                                               Dictionary => 0);
                                when 't' =>
                                    Editor.Word.Transpose;
                                when 'W' =>
                                    Speller.Speller_Window (In_Place => True);
                                when 'x' =>
                                    Speller.Exchange_Word (Choice => 1);
                                when 'w' =>
                                    Speller.Speller_Window (In_Place => False);
                                when 'z' =>
                                    Editor.Word.Delete_Forward;
                                    -- when Down | S_Down =>
                                    --     Speller.Explain_Next;
                                    -- when Left | S_Left =>
                                    --     Editor.Word.Previous;
                                    -- when Right | S_Right =>
                                    --     Editor.Word.Next;
                                    -- when C_W | Cs_W =>
                                    --     Speller.Speller_Window (In_Place => False);
                                when others =>
                                    null;
                            end case;
                        when others =>
                            null;

                    end case;

                    -- Mouse button mapping

                when Mouse_Down =>
                    Editor.Screen.Down;
                when Mouse_Right =>
                    Editor.Screen.Right;
                when Mouse_Image_Down =>
                    Editor.Image.Down;
                when Mouse_Image_Right =>
                    Editor.Image.Right;
                when Mouse_Button1 =>
                    Editor.Set.Input_Logging_Off;
                when Mouse_Button1_Dbl =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => False, Visible => True);
                    -- when Mouse_Button2_Dbl =>
                    --     Common.Object.Parent (Repeat => 1);
                when Mouse_Button3 =>
                    Editor.Noop;
                when Mouse_Button3_Dbl =>
                    Common.Enclosing (In_Place => False, Library => False);
                    -- when Mouse_Button4 =>
                    --     Editor.Region.Start;
                    -- when Mouse_Button4_Up =>
                    --     Editor.Region.Finish;
                when Mouse_Button4_Dbl =>
                    Common.Definition
                       (Name => "<CURSOR>", In_Place => True, Visible => True);
                    -- when Mouse_Button5 =>
                    --     Editor.Region.Copy;
                    -- when Mouse_Button5_Dbl =>
                    --     Common.Object.Child (Repeat => 1);
                    -- when Mouse_Button6 =>
                    --     Editor.Region.Finish;
                when Mouse_Button6_Dbl =>
                    Common.Enclosing (In_Place => True, Library => False);
                when Mouse_Button7 =>
                    Editor.Region.Start;
                when Mouse_Button7_Up =>
                    Editor.Region.Finish;
                when Mouse_Button7_Dbl =>
                    Common.Object.Parent (Repeat => 1);
                when Mouse_Button8 =>
                    Editor.Region.Copy;
                when Mouse_Button9 =>
                    Editor.Region.Finish;
                when Mouse_Button9_Dbl =>
                    Common.Object.Child (Repeat => 1);

                when Mouse_Minus =>
                    Editor.Set.Argument_Minus;
                when Mouse_0 =>
                    Editor.Set.Argument_Digit (Argument => 0);
                when Mouse_1 =>
                    Editor.Set.Argument_Digit (Argument => 1);
                when Mouse_2 =>
                    Editor.Set.Argument_Digit (Argument => 2);
                when Mouse_3 =>
                    Editor.Set.Argument_Digit (Argument => 3);
                when Mouse_4 =>
                    Editor.Set.Argument_Digit (Argument => 4);
                when Mouse_5 =>
                    Editor.Set.Argument_Digit (Argument => 5);
                when Mouse_6 =>
                    Editor.Set.Argument_Digit (Argument => 6);
                when Mouse_7 =>
                    Editor.Set.Argument_Digit (Argument => 7);
                when Mouse_8 =>
                    Editor.Set.Argument_Digit (Argument => 8);
                when Mouse_9 =>
                    Editor.Set.Argument_Digit (Argument => 9);


                when Menu_Return =>
                    Editor.Line.Insert (1);

                when X_No_Op =>
                    Editor.Noop;
                when X_Screen_Height =>
                    Editor.Screen.Set_Lines (24);
                when X_Screen_Width =>
                    Editor.Screen.Set_Columns (80);

                when others =>
                    null;
            end case;
    end case;


end Rational_Access_Commands;