|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 54918 (0xd686)
Types: TextFile
Names: »B«
└─⟦bdeee703f⟧ Bits:30000538 8mm tape, Rational 1000, RWI 10_1_1
└─⟦545705153⟧ »DATA«
└─⟦f9289093d⟧
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦f9289093d⟧
└─⟦this⟧
with Access_List;
with Ada;
with Cmvc;
with Command;
with Common;
with Compilation;
--/ if DOCUMENT_FORMATTER then
--// with COMPOSE;
--/ end if;
with Debug;
--/ if DESIGN_FACILITY then
--// with DESIGN_IMPLEMENTATION;
--/ end if;
with Editor;
with Io;
with Job;
with Library;
--/ if MAIL then
--// with MAIL;
--/ end if;
with Operator;
with Queue;
with Script;
--/ if SPELLER then
--// with SPELLER;
--/ end if;
with System_Utilities;
with Text;
with What;
with Pcbasic_Key_Names;
procedure Pcbasic_Commands is
use Pcbasic_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 =>
Job.Interrupt;
when M_G =>
Job.Kill (0);
when others =>
Editor.Noop;
end case;
when Prompt =>
case Key1 is
when Cms_F2 =>
What.Does;
-- when M_F3 =>
-- Design.Preview (Document => "<DEFAULT>",
-- In_View => "<CURSOR>",
-- Options => "Build_Db=>True",
-- In_Place => False,
-- Response => "<PROFILE>");
when M_F4 =>
Library.Create_Directory
(Name => ">>DIRECTORY NAME<<",
Response => "USE_ERROR <PROFILE>");
when Cs_F4 =>
Library.Create_World (Name => ">>WORLD NAME<<",
Model => "",
Response => "USE_ERROR <PROFILE>");
when C_F4 =>
Text.Create (Image_Name => ">>IMAGE_NAME<<");
when S_F7 =>
Cmvc.Check_In (What_Object => "<CURSOR>",
Comments => "",
Work_Order => "<DEFAULT>",
Response => "<PROFILE>");
when F9 =>
case Key2 is
when 'l' | 'L' =>
Common.Revert;
when others =>
Editor.Noop;
end case;
when F10 =>
case Key2 is
when 'R' | 'r' =>
Editor.Image.Find ("");
when '0' | ')' =>
Editor.Window.Frames (Maximum => 3);
when others =>
Editor.Noop;
end case;
when C_F12 =>
Debug.Activate (Breakpoint => 1);
when others =>
Editor.Noop;
end case;
when Execute =>
case Key1 is
when S_Enter =>
Editor.Line.Insert (1);
when Set_Line =>
Editor.Screen.Set_Lines (40);
when Set_Column =>
Editor.Screen.Set_Columns (80);
when Mouse_Cursor_Down =>
Editor.Cursor.Down;
when Mouse_Cursor_Right =>
Editor.Cursor.Right;
when Mouse_Screen_Down =>
Editor.Screen.Down;
when Mouse_Screen_Right =>
Editor.Screen.Right;
when Mouse_Button1 | S_Mouse_Button1 | Mouse_Button3 |
S_Mouse_Button3 | Mouse_Button1_Up | Mouse_Button3_Up |
Cs_Mouse_Button1_Dbl | Cs_Mouse_Button3_Dbl |
C_Mouse_Button1_Dbl | C_Mouse_Button3_Dbl |
Mouse_Button1_Move | C_Mouse_Button1_Move =>
Editor.Noop;
when Cs_Mouse_Button1 =>
Editor.Region.Start;
when C_Mouse_Button1 =>
Common.Object.Parent;
when Cs_Mouse_Button3 | S_Mouse_Button1_Move |
Cs_Mouse_Button1_Move =>
Editor.Region.Finish;
when C_Mouse_Button3 =>
Common.Object.Child;
when Mouse_Button1_Dbl =>
Common.Definition
(Name => "<CURSOR>", In_Place => False, Visible => True);
when Mouse_Button3_Dbl =>
Common.Enclosing (In_Place => False, Library => False);
when S_Mouse_Button1_Dbl =>
Common.Definition
(Name => "<CURSOR>", In_Place => True, Visible => True);
when S_Mouse_Button3_Dbl =>
Common.Enclosing (In_Place => True, Library => False);
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);
--[Definition]
when F1 =>
Common.Definition
(Name => "<CURSOR>", In_Place => False, Visible => True);
when S_F1 =>
Common.Definition
(Name => "<CURSOR>", In_Place => True, Visible => True);
when C_F1 =>
What.Home_Library;
--/ if DESIGN_FACILITY then
--// when M_F1 =>
--// Design_Implementation.Definition
--// (In_Place => False, Visible => True);
--/ end if;
when Cs_F1 =>
Ada.Other_Part (Name => "<IMAGE>", In_Place => False);
when Ms_F1 =>
Ada.Other_Part (Name => "<IMAGE>", In_Place => True);
when Cm_F1 =>
Editor.Window.Directory;
when Cms_F1 =>
What.Does;
--[Enclosing]
when F2 =>
Common.Enclosing (In_Place => False, Library => False);
when S_F2 =>
Common.Enclosing (In_Place => True, Library => False);
when C_F2 =>
Common.Enclosing (In_Place => False, Library => True);
--/ if DESIGN_FACILITY then
--// when M_F2 =>
--// Design_Implementation.Enclosing (In_Place => False);
--/ end if;
when Cs_F2 =>
Editor.Noop;
when Ms_F2 =>
Editor.Noop;
when Cm_F2 =>
Editor.Noop;
-- CMS_F2 is Prompt_For What.Does
--[Edit]
when F3 =>
Common.Edit;
when S_F3 =>
Common.Demote;
when C_F3 =>
Compilation.Demote (Unit => "<SELECTION>",
Goal => Compilation.Source,
Limit => "<WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
-- M_F3 is Prompt_For Design.Preview
when Cs_F3 =>
Compilation.Demote (Unit => "<SELECTION>",
Goal => Compilation.Source,
Limit => "<ALL_WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Ms_F3 =>
Compilation.Demote (Unit => "<SELECTION>",
Goal => Compilation.Installed,
Limit => "<WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Cm_F3 =>
Editor.Window.Demote;
when Cms_F3 =>
Compilation.Demote (Unit => "<SELECTION>",
Goal => Compilation.Installed,
Limit => "<ALL_WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
--[Create]
when F4 =>
Common.Create_Command;
when S_F4 =>
Ada.Create_Body (Name => "<IMAGE>");
-- C_F4 is prompt_for Text.Create
-- M_F4 is prompt_for Lib.Create_Directory
-- CS_F4 is prompt_for Lib.Create_World
when Ms_F4 =>
Ada.Create_Private;
when Cm_F4 =>
Editor.Noop;
when Cms_F4 =>
Editor.Quit;
--[Promote]
when F5 =>
Common.Promote;
when S_F5 =>
Ada.Code_Unit;
when C_F5 =>
Compilation.Promote (Unit => "<IMAGE>",
Scope => Compilation.Subunits_Too,
Goal => Compilation.Coded,
Limit => "<WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when M_F5 =>
Command.Debug;
when Cs_F5 =>
Compilation.Promote (Unit => "<IMAGE>",
Scope => Compilation.Subunits_Too,
Goal => Compilation.Coded,
Limit => "<ALL_WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Ms_F5 =>
Compilation.Promote (Unit => "<IMAGE>",
Scope => Compilation.Subunits_Too,
Goal => Compilation.Installed,
Limit => "<WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
when Cm_F5 =>
Editor.Window.Promote;
when Cms_F5 =>
Compilation.Promote (Unit => "<IMAGE>",
Scope => Compilation.Subunits_Too,
Goal => Compilation.Installed,
Limit => "<ALL_WORLDS>",
Effort_Only => False,
Response => "<PROFILE>");
--[Complete]
when F6 =>
Common.Complete;
when S_F6 =>
Cmvc.Check_Out;
when C_F6 =>
Editor.Noop;
--/ if DESIGN_FACILITY then
--// when M_F6 =>
--// Design_Implementation.Complete;
--/ end if;
when Cs_F6 =>
Cmvc.Make_Controlled;
when Ms_F6 =>
Editor.Noop;
when Cm_F6 =>
Editor.Noop;
when Cms_F6 =>
Editor.Noop;
--[Format]
when F7 =>
Common.Format;
-- S_F7 is Prompt_For Cmvc.Check_In
when C_F7 =>
Editor.Noop;
--/ if DESIGN_FACILITY then
--// when M_F7 =>
--// Design_Implementation.Format;
--/ end if;
when Cs_F7 =>
Cmvc.Edit;
when Ms_F7 =>
Editor.Noop;
when Cm_F7 =>
Editor.Window.Focus;
when Cms_F7 =>
Editor.Noop;
--[Semanticize]
when F8 =>
Common.Semanticize;
when S_F8 =>
Common.Explain;
when C_F8 =>
Editor.Noop;
--/ if DESIGN_FACILITY then
--// when M_F8 =>
--// Design_Implementation.Explain;
--/ end if;
when Cs_F8 =>
Ada.Show_Usage (Name => "<CURSOR>",
Global => True,
Limit => "<WORLDS>",
Closure => False);
when Ms_F8 =>
Ada.Show_Usage (Name => "<CURSOR>",
Global => False,
Limit => "<WORLDS>",
Closure => False);
when Cm_F8 =>
Editor.Noop;
when Cms_F8 =>
Editor.Noop;
when F9 =>
--[OBJECT]
case Key2 is
when '/' | '?' =>
Common.Explain;
when 'I' | 'i' =>
Common.Object.Insert;
when 'S' | 's' =>
Common.Commit;
when 'X' | 'x' =>
Common.Release;
when Left =>
Common.Object.Parent;
when Right =>
Common.Object.Child;
when Down =>
Common.Object.Next;
when Up =>
Common.Object.Previous;
when 'C' | 'c' =>
Common.Object.Copy;
when 'M' | 'm' =>
Common.Object.Move;
when '!' | '1' =>
Common.Expand;
when '.' | '>' =>
Common.Elide;
when 'U' | 'u' =>
Common.Undo;
when 'R' | 'r' =>
Common.Redo;
when 'G' | 'g' =>
Common.Abandon;
when 'D' | 'd' =>
Common.Object.Delete;
when Home =>
Common.Object.First_Child;
when End_Key =>
Common.Object.Last_Child;
when others =>
Editor.Noop;
end case;
--[End OBJECT]
when S_F9 =>
--[Image]
case Key2 is
when Home | 'B' | 'b' =>
Editor.Image.Beginning_Of;
when End_Key | 'E' | 'e' =>
Editor.Image.End_Of;
when 'F' | 'f' =>
Editor.Set.Fill_Mode (True);
when 'X' | 'x' =>
Editor.Set.Fill_Mode (False);
when 'I' | 'i' =>
Editor.Set.Insert_Mode (True);
when 'O' | 'o' =>
Editor.Set.Insert_Mode (False);
when Up =>
Editor.Image.Up;
when Down =>
Editor.Image.Down;
when Left =>
Editor.Image.Left;
when Right =>
Editor.Image.Right;
when others =>
Editor.Noop;
end case;
--[End Image]
when C_F9 =>
Debug.Source;
when M_F9 =>
Debug.Put;
when Cs_F9 =>
Editor.Noop;
when Ms_F9 =>
Editor.Noop;
when Cm_F9 =>
Editor.Noop;
when Cms_F9 =>
Editor.Noop;
when F10 =>
--[WINDOW]
case Key2 is
when F1 =>
Editor.Window.Directory;
when 'J' | 'j' =>
Editor.Window.Join (1);
when Backspace =>
Editor.Window.Join (-1);
when Home =>
Editor.Window.Beginning_Of;
when End_Key =>
Editor.Window.End_Of;
when 'C' | 'c' =>
Editor.Window.Copy;
when 'T' | 't' =>
Editor.Window.Transpose;
when F7 =>
Editor.Window.Focus;
when F5 =>
Editor.Window.Promote;
when F3 | S_F3 =>
Editor.Window.Demote;
when '!' | '1' =>
Editor.Window.Expand;
when '.' | '>' =>
Editor.Window.Expand (-4);
when 'D' | 'd' =>
Editor.Window.Delete;
when '2' | '@' =>
Editor.Window.Frames (2);
when '3' | '#' =>
Editor.Window.Frames (3);
when '4' | '$' =>
Editor.Window.Frames (4);
when '5' | '%' =>
Editor.Window.Frames (5);
when '6' | '^' =>
Editor.Window.Frames (6);
when '7' | '&' =>
Editor.Window.Frames (7);
when Up | 'U' | 'u' | 'P' | 'p' =>
Editor.Window.Previous;
when Down | 'N' | 'n' =>
Editor.Window.Next;
when Left =>
Editor.Window.Parent;
when Right =>
Editor.Window.Child;
when others =>
Editor.Noop;
end case;
--[End WINDOW]
when S_F10 =>
--[Word]
case Key2 is
when ',' | '<' =>
Editor.Word.Lower_Case;
when '.' | '>' =>
Editor.Word.Upper_Case;
when '6' | '^' =>
Editor.Word.Capitalize;
when Home | 'B' | 'b' =>
Editor.Word.Beginning_Of;
when 'D' | 'd' =>
Editor.Word.Delete;
when End_Key | 'E' | 'e' =>
Editor.Word.End_Of;
when 'K' | 'k' =>
Editor.Word.Delete_Forward;
when 'T' | 't' =>
Editor.Word.Transpose;
when Backspace =>
Editor.Word.Delete_Backward;
when Left =>
Editor.Word.Previous;
when Right =>
Editor.Word.Next;
when others =>
Editor.Noop;
end case;
--[End Word]
when C_F10 =>
Debug.Execute;
when M_F10 =>
Debug.Break;
when Cs_F10 =>
Editor.Noop;
when Ms_F10 =>
Editor.Noop;
when Cm_F10 =>
Editor.Noop;
when Cms_F10 =>
Editor.Noop;
when F11 =>
--[REGION]
case Key2 is
when '6' | '^' =>
Editor.Region.Capitalize;
when ',' | '<' =>
Editor.Region.Lower_Case;
when '.' | '>' =>
Editor.Region.Upper_Case;
when '[' | '{' =>
Editor.Region.Start;
when ']' | '}' =>
Editor.Region.Finish;
when '+' | '=' =>
Editor.Region.Uncomment;
when '-' | '_' =>
Editor.Region.Comment;
when Home | 'B' | 'b' =>
Editor.Region.Beginning_Of;
when End_Key | 'E' | 'e' =>
Editor.Region.End_Of;
when 'C' | 'c' =>
Editor.Region.Copy;
when 'M' | 'm' =>
Editor.Region.Move;
when 'X' | 'x' =>
Editor.Region.Off;
when 'D' | 'K' | 'd' | 'k' =>
Editor.Region.Delete;
when F6 =>
Editor.Region.Justify;
when F7 | 'F' | 'f' =>
Editor.Region.Fill;
when 'R' | 'r' =>
Editor.Hold_Stack.Rotate;
Editor.Hold_Stack.Swap;
when Backspace =>
Editor.Hold_Stack.Delete_Top;
when Up =>
Editor.Hold_Stack.Top;
when Down =>
Editor.Hold_Stack.Push;
when Left | 'P' | 'p' =>
Editor.Hold_Stack.Previous;
when Right | 'N' | 'n' =>
Editor.Hold_Stack.Next;
when others =>
Editor.Noop;
end case;
--[End REGION]
when S_F11 =>
--[Mark]
case Key2 is
when Backspace =>
Editor.Mark.Delete_Top;
when Up =>
Editor.Mark.Top;
when Down =>
Editor.Mark.Push;
when Left | 'P' | 'p' =>
Editor.Mark.Previous;
when Right | 'N' | 'n' =>
Editor.Mark.Next;
when others =>
Editor.Noop;
end case;
--[End Mark]
when C_F11 =>
Debug.Run (Stop_At => Debug.Local_Statement,
Count => 1,
In_Task => "");
when M_F11 =>
Debug.Run (Stop_At => Debug.Statement,
Count => 1,
In_Task => "");
when Cs_F11 =>
Editor.Noop;
when Ms_F11 =>
Editor.Noop;
when Cm_F11 =>
Editor.Noop;
when Cms_F11 =>
Editor.Noop;
when F12 =>
--[LINE]
case Key2 is
when '$' | '4' =>
Editor.Line.Center;
when ',' | '<' =>
Editor.Line.Lower_Case;
when '.' | '>' =>
Editor.Line.Upper_Case;
when '6' | '^' =>
Editor.Line.Capitalize;
when '/' | '?' =>
What.Line;
when Home | 'B' | 'b' =>
Editor.Line.Beginning_Of;
when End_Key | 'E' | 'e' =>
Editor.Line.End_Of;
when 'C' | 'c' =>
Editor.Line.Copy;
when 'D' | 'd' =>
Editor.Line.Delete;
when 'I' | 'i' =>
Editor.Line.Insert (1);
when 'J' | 'j' =>
Editor.Line.Join;
when 'K' | 'k' =>
Editor.Line.Delete_Forward;
when 'O' | 'o' =>
Editor.Line.Open;
when 'T' | 't' =>
Editor.Line.Transpose;
when Backspace =>
Editor.Line.Delete_Backward;
when Up =>
Editor.Cursor.Up;
when Down =>
Editor.Cursor.Down;
when others =>
Editor.Noop;
end case;
--[End LINE]
when S_F12 =>
--[Macro]
case Key2 is
when Home | 'b' | 'B' | '[' | '{' =>
Editor.Macro.Start;
when End_Key | 'e' | 'E' | ']' | '}' =>
Editor.Macro.Finish;
when F1 =>
Editor.Macro.Bind;
when F5 =>
Editor.Macro.Execute;
when others =>
Editor.Noop;
end case;
--[End Macro]
-- C_F12 is prompt_for Debug.Activate
when M_F12 =>
Debug.Show (Values_For => Debug.Breakpoints);
when Cs_F12 =>
Editor.Noop;
when Ms_F12 =>
Editor.Noop;
when Cm_F12 =>
Editor.Noop;
when Cms_F12 =>
Editor.Noop;
--[Numeric_+ (key=107) on the PC]
-- when Window =>
-- Debug.Run (Stop_At => Debug.Statement,
-- Count => 1,
-- In_Task => "");
--
-- --
-- -- S_+ appears to send the same escape
-- -- sequence as an unmodified numeric +
-- -- so this arm cannot be reached
-- --
-- when S_Window =>
-- Io.Echo_Line ("Shift Window");
--
-- when C_Window =>
-- Debug.Run (Stop_At => Debug.Local_Statement,
-- Count => 1,
-- In_Task => "");
--
-- when M_Window =>
-- Io.Echo_Line ("Meta Window");
--
--
--
--
--
--
-- --[Virtual Keys used for menu picks]
--
when Menu_Pick =>
case Key2 is
when '0' =>
Io.Echo ("User Menu-Pick 0" & Ascii.Lf);
when '1' =>
Io.Echo ("User Menu-Pick 1" & Ascii.Lf);
when '2' =>
Io.Echo ("User Menu-Pick 2" & Ascii.Lf);
when '3' =>
Io.Echo ("User Menu-Pick 3" & Ascii.Lf);
when '4' =>
Io.Echo ("User Menu-Pick 4" & Ascii.Lf);
when '5' =>
Io.Echo ("User Menu-Pick 5" & Ascii.Lf);
when '6' =>
Io.Echo ("User Menu-Pick 6" & Ascii.Lf);
when '7' =>
Io.Echo ("User Menu-Pick 7" & Ascii.Lf);
when '8' =>
Io.Echo ("User Menu-Pick 8" & Ascii.Lf);
when '9' =>
Io.Echo ("User Menu-Pick 9" & Ascii.Lf);
when others =>
null;
end case;
--
-- when F2 =>
--
-- --[Misc Commands]
--
-- case Key2 is
--
-- --[Help Commands]
--
-- when 'h' | 'H' =>
--
-- case Key3 is
--
-- when 'g' | 'G' =>
-- Common.Definition
-- ("!Local.Help_System.Index");
--
-- when 'k' | 'K' =>
-- Editor.Key.Name;
--
-- when 'a' | 'A' =>
-- What.Does;
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
--
-- when 'k' | 'K' =>
-- Job.Kill (The_Job => 0, The_Session => "");
--
--
-- when 'i' | 'I' =>
-- Job.Interrupt;
--
--
-- when 'q' | 'Q' =>
-- Editor.Quit;
--
--
--
-- when 'd' | 'D' =>
--
-- -- Traversal
--
-- case Key3 is
--
-- when 'e' | 'E' =>
-- Common.Enclosing (In_Place => False,
-- Library => True);
--
-- when 'h' | 'H' =>
-- What.Home_Library;
--
-- when 'o' | 'O' =>
-- Ada.Other_Part (Name => "<IMAGE>",
-- In_Place => False);
--
-- when 'p' | 'P' =>
-- Ada.Other_Part (Name => "<IMAGE>",
-- In_Place => True);
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
--
--
-- when 'r' | 'R' =>
-- case Key3 is
--
-- when 'f' | 'F' =>
-- Editor.Search.Replace_Next;
--
-- when 'b' | 'B' =>
-- Editor.Search.Replace_Previous;
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
-- when 's' | 'S' =>
-- case Key3 is
--
-- when 'f' | 'F' =>
-- Editor.Search.Next;
--
-- when 'b' | 'B' =>
-- Editor.Search.Previous;
--
-- when 'n' | 'N' =>
-- Editor.Cursor.Next (Prompt => True,
-- Underline => True);
--
-- when 'p' | 'P' =>
-- Editor.Cursor.Previous
-- (Prompt => True, Underline => True);
--
-- when others =>
-- Editor.Noop;
-- end case;
--
--
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
--
-- when S_F2 =>
--
-- --[Analysis Commands]
--
-- case Key2 is
--
-- when 's' | 'S' =>
-- Speller.Check_Image;
--
-- when 'u' | 'U' =>
-- Ada.Show_Usage (Name => "<CURSOR>",
-- Global => True,
-- Limit => "<ALL_WORLDS>",
-- Closure => False);
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
--
-- when C_F2 =>
--
-- --[CMVC Commands]
--
-- case Key2 is
--
-- when 'c' | 'C' =>
--
-- case Key3 is
--
-- when 'o' | 'O' =>
-- Cmvc.Check_Out;
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
-- when 'e' | 'E' =>
-- Cmvc.Edit;
--
-- when 'm' | 'M' =>
-- Cmvc.Make_Controlled
-- (What_Object => "<CURSOR>",
-- Reservation_Token_Name => "<AUTO_GENERATE>",
-- Join_With_View => "<NONE>",
-- Save_Source => True,
-- Comments => "",
-- Work_Order => "<DEFAULT>",
-- Response => "<PROFILE>");
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
-- case Key2 is
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
--
-- when Cm_F2 =>
--
-- --[Mail Commands]
--
-- case Key2 is
--
-- when 'f' | 'F' =>
-- Mail.Forward;
--
-- when 'o' | 'O' =>
-- Mail.Edit;
--
-- when 'r' | 'R' =>
-- Mail.Reply (To_All => True);
--
-- when 's' | 'S' =>
-- Mail.Send;
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
--
-- when Cs_F2 =>
--
-- --[Debug Commands]
--
-- case Key2 is
--
-- when 'x' | 'X' =>
-- Debug.Execute;
--
-- when 'p' | 'P' =>
-- Debug.Put;
--
-- when 'b' | 'B' =>
-- Debug.Break;
--
-- when 's' | 'S' =>
-- Debug.Source;
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
--
--
-- --[Create Commands]
--
-- when Ms_F2 =>
--
-- case Key2 is
--
-- when 'p' | 'P' =>
-- Ada.Create_Private;
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
--
--
-- when Cms_F2 =>
--
-- --[Promotion/Demotion Commands]
--
-- case Key2 is
--
-- when 'c' | 'C' =>
--
-- case Key3 is
--
-- when 'a' | 'A' =>
-- Compilation.Promote
-- (Unit => "<IMAGE>",
-- Scope => Compilation.Subunits_Too,
-- Goal => Compilation.Coded,
-- Limit => "<ALL_WORLDS>",
-- Effort_Only => False,
-- Response => "<PROFILE>");
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
-- when 'i' | 'I' =>
--
-- case Key3 is
--
-- when 'a' | 'A' =>
-- Compilation.Promote
-- (Unit => "<IMAGE>",
-- Scope => Compilation.Subunits_Too,
-- Goal => Compilation.Installed,
-- Limit => "<ALL_WORLDS>",
-- Effort_Only => False,
-- Response => "<PROFILE>");
--
-- when 'w' | 'W' =>
-- Compilation.Promote
-- (Unit => "<IMAGE>",
-- Scope => Compilation.Subunits_Too,
-- Goal => Compilation.Installed,
-- Limit => "<WORLDS>",
-- Effort_Only => False,
-- Response => "<PROFILE>");
--
-- when 'u' | 'U' =>
-- Ada.Install_Unit;
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
-- when 's' | 'S' =>
--
-- case Key3 is
--
-- when 'a' | 'A' =>
-- Compilation.Demote
-- (Unit => "<SELECTION>",
-- Goal => Compilation.Source,
-- Limit => "<ALL_WORLDS>",
-- Effort_Only => False,
-- Response => "<PROFILE>");
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
--
-- when others =>
-- Editor.Noop;
--
-- end case;
--
--
-- --[End Virtual Keys]
--
--[Ins (key=45) on the PC]
when Insert =>
Editor.Key.Prompt;
--[General Cursor Movement]
when Home =>
Editor.Line.Beginning_Of;
when End_Key =>
Editor.Line.End_Of;
when Up =>
Editor.Cursor.Up;
when Down =>
Editor.Cursor.Down;
when Left =>
Editor.Cursor.Left;
when Right =>
Editor.Cursor.Right;
--[General Editor Operations]
when ' ' | S_Space =>
Editor.Char.Insert_Character (1, ' ');
when Backspace =>
Editor.Char.Delete_Backward;
when Enter =>
Editor.Line.Indent;
when Delete =>
Editor.Char.Delete_Forward;
--[Search/Replace Operations]
when C_S | C_F =>
Editor.Search.Next (Target => "", Wildcard => False);
when C_R | C_B =>
Editor.Search.Previous (Target => "", Wildcard => False);
when M_S | M_F =>
Editor.Search.Replace_Next (Target => "",
Replacement => "",
Repeat => 1,
Wildcard => False);
when M_R | M_B =>
Editor.Search.Replace_Previous (Target => "",
Replacement => "",
Repeat => 1,
Wildcard => False);
--[Image Operations]
when Page_Up =>
Editor.Image.Up;
when Page_Down =>
Editor.Image.Down;
when S_Home | C_Home =>
Editor.Image.Beginning_Of;
when S_End_Key | C_End_Key =>
Editor.Image.End_Of;
when S_Up =>
Editor.Image.Up;
when S_Down =>
Editor.Image.Down;
--[Accelerated Object Operations]
when C_Up =>
Common.Object.Previous;
when C_Down =>
Common.Object.Next;
when C_Left =>
Common.Object.Parent;
when C_Right =>
Common.Object.Child;
when C_Slash =>
Common.Explain;
--[Accelerated Traversal Operations]
when S_Left =>
Common.Enclosing (In_Place => True, Library => False);
when S_Right =>
Common.Definition
(Name => "<CURSOR>", In_Place => True, Visible => False);
when Cm_Left =>
Common.Enclosing (In_Place => False, Library => False);
when Cm_Right =>
Common.Definition (Name => "<CURSOR>",
In_Place => False,
Visible => False);
--[Accelerated Window Operations]
when M_V | Cm_Down =>
Editor.Window.Next;
when M_Z | Cm_Up =>
Editor.Window.Previous;
when Cm_Home =>
Editor.Window.Beginning_Of;
when Cm_End_Key =>
Editor.Window.End_Of;
when Cm_J =>
Editor.Window.Join;
when Cm_Backspace =>
Editor.Window.Join (-1);
when Cm_1 =>
Editor.Window.Expand (4);
when Cm_Period =>
Editor.Window.Expand (-4);
when Cm_D =>
Editor.Window.Delete;
--[Accelerated Word Operations]
when M_Home =>
Editor.Word.Beginning_Of;
when M_End_Key =>
Editor.Word.End_Of;
when M_Left =>
Editor.Word.Previous;
when M_Right =>
Editor.Word.Next;
when M_Comma | M_Less_Than =>
Editor.Word.Lower_Case;
when M_Period | M_Greater_Than =>
Editor.Word.Upper_Case;
when M_6 | M_Circumflex =>
Editor.Word.Capitalize;
when M_C | M_Y =>
Editor.Hold_Stack.Next;
when M_D =>
Editor.Word.Delete;
when M_E =>
Editor.Word.End_Of;
when M_K =>
Editor.Word.Delete_Forward;
when M_L =>
Editor.Screen.Clear;
when M_O =>
Editor.Line.Join;
when M_Q =>
Editor.Key.Prompt (Key_Code => "");
when M_T =>
Editor.Word.Transpose;
when M_Backspace =>
Editor.Word.Delete_Backward;
--[Accelerated Macro Operations]
when M_X =>
Editor.Macro.Execute;
when M_Left_Bracket =>
Editor.Macro.Start;
when M_Right_Bracket =>
Editor.Macro.Finish;
--[Accelerated Mark Operations]
when C_M =>
Editor.Mark.Push;
when M_M =>
Editor.Mark.Next;
--[Accelerated Item Operations]
when M_Down | M_N =>
Editor.Cursor.Next (Prompt => True, Underline => True);
when M_Up | M_U | M_P =>
Editor.Cursor.Previous (Prompt => True, Underline => True);
--[Accelerated RDF Commands]
when M_Minus =>
Editor.Char.Insert_String ("--| ");
when M_2 =>
case Key2 is
when 'r' | 'R' =>
Editor.Char.Insert_String ("--| @REQUIREMENT");
when 's' | 'S' =>
Editor.Char.Insert_String ("--| @SATISFIES ");
when others =>
Editor.Noop;
end case;
--[Numeric keypad]
when Numeric_0 | C_0 =>
Editor.Set.Argument_Digit (0);
when Numeric_1 | C_1 =>
Editor.Set.Argument_Digit (1);
when Numeric_2 | C_2 =>
Editor.Set.Argument_Digit (2);
when Numeric_3 | C_3 =>
Editor.Set.Argument_Digit (3);
when Numeric_4 | C_4 =>
Editor.Set.Argument_Digit (4);
when Numeric_5 | C_5 =>
Editor.Set.Argument_Digit (5);
when Numeric_6 | C_6 =>
Editor.Set.Argument_Digit (6);
when Numeric_7 | C_7 =>
Editor.Set.Argument_Digit (7);
when Numeric_8 | C_8 =>
Editor.Set.Argument_Digit (8);
when Numeric_9 | C_9 =>
Editor.Set.Argument_Digit (9);
when Numeric_Minus | C_Minus =>
Editor.Set.Argument_Minus;
when C_Equal | C_Plus =>
Editor.Char.Insert_String ("=>");
when C_Semicolon | C_Colon =>
Editor.Char.Insert_String (":=");
when C_Comma | C_Less_Than =>
Editor.Char.Lower_Case;
when C_Period | C_Greater_Than =>
Editor.Char.Upper_Case;
when C_Tick =>
Editor.Char.Quote;
when C_A =>
Editor.Line.Beginning_Of;
when C_C =>
Editor.Hold_Stack.Push;
when C_D =>
Editor.Char.Delete_Forward;
when C_H =>
Editor.Cursor.Left;
when C_I =>
Editor.Line.Insert (-1);
when C_J =>
Editor.Cursor.Right;
when C_K =>
Editor.Line.Delete_Forward;
when C_L =>
Editor.Screen.Redraw;
when C_N =>
Editor.Cursor.Down;
when C_O =>
Editor.Line.Open;
when C_Q =>
Editor.Key.Name;
when C_T =>
Editor.Char.Transpose;
when C_U =>
Editor.Cursor.Up;
when C_V =>
Editor.Image.Down;
when C_W =>
Editor.Region.Delete;
when C_X =>
Editor.Set.Designation_Off;
when C_Y =>
Editor.Hold_Stack.Top;
when C_Z =>
Editor.Image.Up;
when C_Left_Bracket | C_Left_Brace =>
Editor.Region.Start;
when C_Right_Bracket | C_Right_Brace =>
Editor.Region.Finish;
when C_Backspace =>
Editor.Char.Delete_Spaces;
when Tab =>
Editor.Char.Tab_Forward;
when C_Tab =>
Editor.Char.Tab_Backward;
when others =>
Editor.Noop;
end case;
end case;
end Pcbasic_Commands;