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 - downloadIndex: ┃ T V ┃
Length: 10526 (0x291e) Types: TextFile Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3 └─ ⟦fc9b38f02⟧ »DATA« └─⟦9b46a407a⟧ └─⟦12c68c704⟧ └─⟦this⟧ └─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS └─ ⟦91c658230⟧ »DATA« └─⟦458657fb6⟧ └─⟦220843204⟧ └─⟦this⟧
with Io_Exceptions; package Window_Io is pragma Subsystem (Object_Editor, Closed); pragma Module_Name (4, 2219); -- package for providing raw IO facilities to an image type File_Type is private; type File_Mode is (In_File, Out_File); -- the mode of the handle. Each image can be opened twice - once -- for input and once for output. -- Create an image for IO. -- Normally, a new empty image is created on this call. -- If an image is already open for this job with the given name, -- and the mode given /= the mode the image is open for, that -- image will be opened for the new mode. procedure Create (File : in out File_Type; Mode : File_Mode := Out_File; Name : String; Form : String := ""); -- Open a previously closed image. The same rules apply for create -- in the case one job opens the same image twice; once for input and -- once for output procedure Open (File : in out File_Type; Mode : File_Mode := Out_File; Name : String; Form : String := ""); -- Terminate operations on this image. procedure Close (File : in out File_Type); -- Delete the image. Any other handles on this image are implicitly -- closed. procedure Delete (File : in out File_Type); function Mode (File : File_Type) return File_Mode; function Name (File : File_Type) return String; function Form (File : File_Type) return String; function Is_Open (File : File_Type) return Boolean; package Raw is -- gain access to the keyboard for "raw" input. -- one channel may be opened per job. -- no echoing or local editing is performed. type Stream_Type is private; procedure Open (Stream : in out Stream_Type); procedure Close (Stream : in out Stream_Type; Flush_Pending_Input : Boolean := False); procedure Disconnect (Stream : in out Stream_Type); -- free users keyboard type Key is new Natural range 0 .. 1023; type Key_String is array (Positive range <>) of Key; -- a key is the basic bit of input. subtype Simple_Key is Key range 0 .. 127; -- a simple key represents the ascii characters procedure Get (Stream : Stream_Type; Item : out Key); procedure Get (Stream : Stream_Type; Item : out Key_String); -- converting keys to characters -- the ascii characters map directly to the first 128 keys function Convert (C : Character) return Simple_Key; function Convert (K : Simple_Key) return Character; -- keys are mapped to logical names -- these names correspond to the 'image attribute of the -- enumerations in machine.editor_data.visible_key_names subtype Terminal is String; -- supported terminal types are Cit500R, Vt100, Rational function Image (For_Key : Key; On_Terminal : Terminal) return String; -- image is "", if For_Key is not defined for this terminal type procedure Value (For_Key_Name : String; On_Terminal : Terminal; Result : out Key; Found : out Boolean); -- Found is false => For_Key_Name does not name a key on this terminal function Value (For_Key_Name : String; On_Terminal : Terminal) return Key; Unknown_Key : exception; -- raised by functional form of value end Raw; subtype Column_Number is Positive; subtype Line_Number is Positive; -- a file_type is initialized to column 1, line 1 subtype Count is Natural; subtype Positive_Count is Count range 1 .. Count'Last; -- output -- characters are displayed at the current cursor position -- control characters are displayed in reverse-video type Designation is (Text, Prompt, Protected); type Attribute is record Bold : Boolean; Faint : Boolean; Underscore : Boolean; Inverse : Boolean; Slow_Blink : Boolean; Rapid_Blink : Boolean; Unused_0 : Boolean; Unused_1 : Boolean; end record; Vanilla : constant Attribute := (others => False); type Character_Set is new Natural range 0 .. 15; Plain : constant Character_Set := 0; Graphics : constant Character_Set := 1; type Font is record Kind : Character_Set; Look : Attribute; end record; Normal : constant Font := Font'(Plain, Vanilla); function Default_Font (For_Type : Designation) return Font; -- the fonts normally used by the environment for these designations -- are returned procedure Position_Cursor (File : File_Type; Line : Line_Number := Line_Number'First; Column : Column_Number := Column_Number'First; Offset : Natural := 0); -- Position the cursor on the image. -- Offset is used to position the cursor relative to the top of the window. -- With an offset of 0, the cursor is made visible in the window using -- the normal editor defaults. -- With a positive offset, the image is scrolled in the window so the -- cursor is the offset line in the window. procedure Move_Cursor (File : File_Type; Delta_Lines : Integer; Delta_Columns : Integer; Offset : Natural := 0); procedure Report_Cursor (File : File_Type; Line : out Line_Number; Column : out Column_Number); procedure Overwrite (File : File_Type; Item : Character; Image : Font := Normal; Kind : Designation := Text); -- writes ITEM at the current cursor position and advances column by 1 procedure Overwrite (File : File_Type; Item : String; Image : Font := Normal; Kind : Designation := Text); -- writes ITEM at the current cursor position and advances column by -- ITEM'LENGTH procedure Insert (File : File_Type; Item : Character; Image : Font := Normal; Kind : Designation := Text); -- writes ITEM at the current cursor position and advances column by 1 procedure Insert (File : File_Type; Item : String; Image : Font := Normal; Kind : Designation := Text); -- writes ITEM at the current cursor position and advances column by -- ITEM'LENGTH procedure New_Line (File : File_Type; Lines : Count := 1); -- insert lines after the current line -- advances line by Lines, and sets column to 1. procedure Delete (File : File_Type; Characters : Count); -- deletes Count characters at current position. Position is unchanged procedure Delete_Lines (File : File_Type; Lines : Count := 1); -- deletes Lines including the current line. Position is unchanged -- input with editing -- an input prompt with contents PROMPT will be displayed at the current -- cursor position. Control of the keyboard will be returned to the -- core editor for user input at the prompt. procedure Get (File : File_Type; Prompt : String := "[input]"; Item : out Character); procedure Get (File : File_Type; Prompt : String := "[input]"; Item : out String); procedure Get_Line (File : File_Type; Prompt : String := "[input]"; Item : out String; Last : out Natural); function Get_Line (File : File_Type; Prompt : String := "[input]") return String; -- banner operations -- The value will be displayed in the banner for this image -- fields are defined from left to right. The first few fields -- are reserved for the editor. Users may specify field_names -- of the form "FIELD_0" .. "FIELD_9". Currently 0 .. 2 are used -- for job_number, start_time and blocked indication, but may be -- reused by the user. -- Calling set_banner with other values will be a noop. procedure Set_Banner (File : File_Type; Field_Name : String; Value : String); function Read_Banner (File : File_Type; Field_Name : String) return String; -- predefined field_names, may be passed to Set_Banner function Job_Number return String; function Job_Time return String; -- sound the terminal bell procedure Bell (File : File_Type); -- information about the current image function End_Of_Line (File : File_Type) return Boolean; function End_Of_File (File : File_Type) return Boolean; function Line_Length (File : File_Type) return Count; function Line_Image (File : File_Type) return String; function Char_At (File : File_Type) return Character; function Font_At (File : File_Type) return Font; function Last_Line (File : File_Type) return Line_Number; -- information about the current window -- the origin is the line and column number of the point of the image -- located in the upper right corner of the window procedure Report_Origin (File : File_Type; Line : out Line_Number; Column : out Column_Number); -- the size of the window in characters procedure Report_Size (File : File_Type; Lines : out Positive_Count; Columns : out Positive_Count); -- the location of the window on the screen -- the upper right corner of the screen is line 1, column 1 procedure Report_Location (File : File_Type; Line : out Line_Number; Column : out Column_Number); end Window_Io;